通信技術(shù)在三坐標(biāo)測量系統(tǒng)中的應(yīng)用
③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é)果
使用該通訊系統(tǒng)實(shí)現(xiàn)和四控制卡之間的通訊控制,使用串口助手進(jìn)行數(shù)據(jù)收發(fā),在發(fā)送數(shù)據(jù)間隔為5us的情況下對該通訊系統(tǒng)進(jìn)行測試,在進(jìn)行8小時(shí)的測試中,系統(tǒng)沒有出現(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)數(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)數(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ī)的編碼器信號。
評論