新聞中心

EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 通信技術(shù)在三坐標(biāo)測量系統(tǒng)中的應(yīng)用

通信技術(shù)在三坐標(biāo)測量系統(tǒng)中的應(yīng)用

作者: 時(shí)間:2009-04-14 來源:網(wǎng)絡(luò) 收藏

  ③I2C接收模塊[7]的FPGA實(shí)現(xiàn)

  接收模塊接收到總線監(jiān)視模塊發(fā)送來的起始位信號后,準(zhǔn)備接收總線上的數(shù)據(jù),接收到的地址后,判斷接收到的地址和電路板地址是否一致;當(dāng)兩者一致時(shí),向總線置應(yīng)答信號ACK,繼續(xù)接收下面的數(shù)據(jù),收到的數(shù)據(jù)置于接收FIFO中;如果地址不一致,則放棄總線。使用Modelsim對I2C接收模塊進(jìn)行仿真如圖4。


  I2CbusIsBusy:總線狀態(tài);I2C_start:起始信號

  myAddr:電路板的地址; rxBuf:接收寄存器

  rxFIFO_wr:接收FIFO的寫信號

  3、通訊協(xié)議

  上位機(jī)和橋接板之間采用RS232總線進(jìn)行數(shù)據(jù)傳輸,橋接卡和控制卡以及各個(gè)控制卡之間采用I2C總線進(jìn)行數(shù)據(jù)的傳輸,通訊采用主叫和應(yīng)答方式,數(shù)據(jù)傳輸中使用單片機(jī)進(jìn)行解碼[8]。

  主叫方發(fā)出指令后,等待對方響應(yīng),如果主叫方寫指令到被叫方,則被叫方收到指令執(zhí)行操作后返回確認(rèn)信號;如果從主叫方讀指令,則被叫方在下一時(shí)刻占用總線后發(fā)送數(shù)據(jù)到主叫方,主叫方在0.5s內(nèi)沒有收到響應(yīng)包,表明傳輸失敗。若連續(xù)3次沒有響應(yīng),則與對方通信連接失敗。

  為了實(shí)現(xiàn)數(shù)據(jù)的一致性,RS-232和I2C總線采用相同的通信協(xié)議。

  數(shù)據(jù)傳輸時(shí)以“包”進(jìn)行封裝,中間加入長度位和奇偶校驗(yàn)位。封裝格式:起始字符+長度字符 +序列號+源地址+目的地址包類型+傳輸數(shù)據(jù)+包校驗(yàn)+結(jié)束字符;數(shù)據(jù)傳輸均采用ASCII碼。

  包的定義:起始位定義為‘#’,占用一個(gè)字節(jié),接收方接收到‘#’時(shí),表明數(shù)據(jù)開始傳輸;長度字符定義為除起始字符、結(jié)束字符和校驗(yàn)字符的所有原始字符的長度,占用一個(gè)字節(jié);源地址:發(fā)送方地址,占用一個(gè)字節(jié);目的地址:接收方地址,占用一個(gè)字節(jié),當(dāng)為‘00’時(shí),定義為廣播地址;包類型:占用一個(gè)字節(jié),表明數(shù)據(jù)的類型,接收方根據(jù)包類型執(zhí)行對應(yīng)操作;傳輸數(shù)據(jù):控制量的大??;包校驗(yàn):定義為長度字符,源地址,目的地址,包類型和數(shù)據(jù)之和,占用兩個(gè)字節(jié);結(jié)束位:定義為‘~’,當(dāng)接收方接收到結(jié)束字符時(shí),表明本包傳輸結(jié)束,對數(shù)據(jù)包進(jìn)行處理,長度位和校驗(yàn)位正確時(shí)執(zhí)行指令,否則,放棄改數(shù)據(jù)包。

  4、實(shí)驗(yàn)結(jié)果

  使用該通訊實(shí)現(xiàn)和四控制卡之間的通訊控制,使用串口助手進(jìn)行數(shù)據(jù)收發(fā),在發(fā)送數(shù)據(jù)間隔為5us的情況下對該通訊進(jìn)行測試,在進(jìn)行8小時(shí)的測試中,沒有出現(xiàn)數(shù)據(jù)丟失、錯(cuò)誤、死機(jī)現(xiàn)象;使用廣播地址進(jìn)行數(shù)據(jù)發(fā)送,返回信號正確,沒出現(xiàn)死機(jī)現(xiàn)象。

  使用該通訊系統(tǒng)對四個(gè)電機(jī)進(jìn)行控制,電機(jī)實(shí)際輸出情況如表1:

實(shí)驗(yàn)結(jié)果
  本實(shí)驗(yàn)數(shù)據(jù)證明了該通訊系統(tǒng)的可用性及數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。

  使用該系統(tǒng)采用廣播地址實(shí)現(xiàn)四個(gè)電機(jī)同步聯(lián)動(dòng),各個(gè)軸的運(yùn)動(dòng)情況如表2:

實(shí)驗(yàn)結(jié)果
  本實(shí)驗(yàn)數(shù)據(jù)證明了各個(gè)電機(jī)實(shí)現(xiàn)了指定的轉(zhuǎn)動(dòng)角度;各個(gè)軸運(yùn)動(dòng)期間,電機(jī)的狀態(tài)經(jīng)過I2C總線[9]及RS-232總線通訊系統(tǒng)成功的發(fā)送到了上位機(jī),通訊系統(tǒng)沒有出現(xiàn)死機(jī)和數(shù)據(jù)丟失,經(jīng)過該實(shí)驗(yàn),證明了數(shù)據(jù)傳輸?shù)恼_性。

  4、結(jié)論

  本系統(tǒng)采用FPGA進(jìn)行通訊系統(tǒng)的設(shè)計(jì),提高了數(shù)據(jù)的傳輸率和準(zhǔn)確性,實(shí)現(xiàn)了對控制機(jī)構(gòu)及時(shí)、快速的控制,有效防止突發(fā)事件的處理,經(jīng)實(shí)驗(yàn)證明,本系統(tǒng)快速、準(zhǔn)確的實(shí)現(xiàn)了數(shù)據(jù)的傳輸,可以有效快速的實(shí)現(xiàn)對電機(jī)的速度、位置控制、準(zhǔn)確的讀取電機(jī)的編碼器信號。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉