《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 激光陀螺慣導系統(tǒng)數(shù)據(jù)通訊軟件設(shè)計
激光陀螺慣導系統(tǒng)數(shù)據(jù)通訊軟件設(shè)計
摘要: 本文將基于CY7C68013A的USB接口技術(shù)應(yīng)用于慣導系統(tǒng)數(shù)據(jù)通信,創(chuàng)新性的設(shè)立圓形緩沖區(qū)解決了USB接口數(shù)據(jù)傳輸過程中的丟幀問題,。近千小時測試結(jié)果表明:上述USB接口通訊裝置可實現(xiàn)導航計算機和PC機間高速實時數(shù)據(jù)傳輸且期間無丟幀現(xiàn)象發(fā)生,,表明該裝置具有良好的穩(wěn)定性與可靠性,。
Abstract:
Key words :

  在激光陀螺捷聯(lián)慣導系統(tǒng)中,慣性儀表(激光陀螺和加速度計)直接“捆綁”在載體上,所承受的力學環(huán)境要比平臺惡劣,。在某些軍用環(huán)境所要求承受的強烈振動條件下,,由于慣性組合體在力和運動的激勵下產(chǎn)生多項誤差,系統(tǒng)姿態(tài)和位置誤差增長較快,。研究表明,,這些誤差項有一部分具有較好的補償性,可以通過誤差補償減小或消除部分誤差,,從而提高系統(tǒng)在強振動下的精度,。這就需要將慣性儀表在振動環(huán)境下的輸出數(shù)據(jù)高速采集并保存下來,然后在PC機上進行離線仿真以確定和分離各項誤差系數(shù),。

  由于數(shù)據(jù)量龐大,,無法直接存儲在導航計算機中:例如以8 kHz對慣性儀表輸出進行采樣,每秒的數(shù)據(jù)量約為200 K字節(jié),。而原有捷聯(lián)慣導系統(tǒng)采用RS422接口與外部通訊,其最大波特率為1 M,。不足以將高速數(shù)據(jù)傳送給PC機保存下來,。因此,有必要在導航計算機外圍擴展更高速的USB接口,,以實現(xiàn)導航計算機和PC機之間的高速通訊,。USB接口(Universal Serial Bus)是一種通用的高速串行通訊接口。USB2.0理論傳輸速度可達到480 Mb/s,,可以很好地解決數(shù)據(jù)在慣導系統(tǒng)與PC機之間的高速互傳問題,。

  1 激光陀螺捷聯(lián)慣導系統(tǒng)的USB接口設(shè)計

  1.1 USB接口芯片CY7C68013A

  CY7C68013A是CYPRESS公司最新推出的USB2.O控制器,它既負責USB事務(wù)處理也兼具微處理器的控制功能,,還可作為USB外部芯片的主控芯片,,其小巧的體積及較高的性價比使得該芯片在各種USB設(shè)備上得到了廣泛的應(yīng)用。該芯片包括帶16KB片上RAM的高速8051單片機,、4KBFIFO存儲器以及通用可編程接口(GPIF),、串行接口引擎(SIE)和USB2.0收發(fā)器,6條可編程控制輸出線,,9條地址輸出線和6條通用的準備輸入線,。數(shù)據(jù)線寬度可設(shè)為8位也可設(shè)為16位,方便與不同的CPU接口,。圖1是CY7C68013A的內(nèi)部結(jié)構(gòu)功能框圖,。

  

  由于CY7C68013A硬件邏輯并不復雜,加上可以充分利用FPGA的靈活性,,在導航計算機外圍擴展CY7C68013A的線路板設(shè)計工作相對簡單,,將CY7C68013A的總線和控制信號與DSP導航計算機的FPGA相應(yīng)引腳正確相連即可。

  USB接口的軟件設(shè)計要復雜一些,主要是編寫CY7C68013A自身的固件程序,。

  在激光陀螺捷聯(lián)慣導系統(tǒng)中,,慣性儀表(激光陀螺和加速度計)直接“捆綁”在載體上,所承受的力學環(huán)境要比平臺惡劣,。在某些軍用環(huán)境所要求承受的強烈振動條件下,,由于慣性組合體在力和運動的激勵下產(chǎn)生多項誤差,系統(tǒng)姿態(tài)和位置誤差增長較快,。研究表明,,這些誤差項有一部分具有較好的補償性,可以通過誤差補償減小或消除部分誤差,,從而提高系統(tǒng)在強振動下的精度,。這就需要將慣性儀表在振動環(huán)境下的輸出數(shù)據(jù)高速采集并保存下來,然后在PC機上進行離線仿真以確定和分離各項誤差系數(shù),。

  由于數(shù)據(jù)量龐大,,無法直接存儲在導航計算機中:例如以8 kHz對慣性儀表輸出進行采樣,每秒的數(shù)據(jù)量約為200 K字節(jié),。而原有捷聯(lián)慣導系統(tǒng)采用RS422接口與外部通訊,,其最大波特率為1 M。不足以將高速數(shù)據(jù)傳送給PC機保存下來,。因此,,有必要在導航計算機外圍擴展更高速的USB接口,以實現(xiàn)導航計算機和PC機之間的高速通訊,。USB接口(Universal Serial Bus)是一種通用的高速串行通訊接口,。USB2.0理論傳輸速度可達到480 Mb/s,可以很好地解決數(shù)據(jù)在慣導系統(tǒng)與PC機之間的高速互傳問題,。

  1 激光陀螺捷聯(lián)慣導系統(tǒng)的USB接口設(shè)計

  1.1 USB接口芯片CY7C68013A

  CY7C68013A是CYPRESS公司最新推出的USB2.O控制器,,它既負責USB事務(wù)處理也兼具微處理器的控制功能,還可作為USB外部芯片的主控芯片,,其小巧的體積及較高的性價比使得該芯片在各種USB設(shè)備上得到了廣泛的應(yīng)用,。該芯片包括帶16KB片上RAM的高速8051單片機、4KBFIFO存儲器以及通用可編程接口(GPIF),、串行接口引擎(SIE)和USB2.0收發(fā)器,,6條可編程控制輸出線,9條地址輸出線和6條通用的準備輸入線,。數(shù)據(jù)線寬度可設(shè)為8位也可設(shè)為16位,,方便與不同的CPU接口。圖1是CY7C68013A的內(nèi)部結(jié)構(gòu)功能框圖,。

  

  由于CY7C68013A硬件邏輯并不復雜,,加上可以充分利用FPGA的靈活性,,在導航計算機外圍擴展CY7C68013A的線路板設(shè)計工作相對簡單,將CY7C68013A的總線和控制信號與DSP導航計算機的FPGA相應(yīng)引腳正確相連即可,。

  USB接口的軟件設(shè)計要復雜一些,,主要是編寫CY7C68013A自身的固件程序。

  1.2 CY7C68013A的固件程序設(shè)計

  CY7C68013A的固件程序主要用于USB芯片的端點配置,、頻率設(shè)置,、數(shù)據(jù)寬度、可編程標志定義,、中斷定義及特定功能的8051程序編寫等,。固件程序主要完成如圖2所示的任務(wù)流程。

  

  在上述固件程序當中,,CY7C68013A的初始化子程序TD_Init()的開發(fā)按照以下步驟進行:按圖3中的規(guī)則配置端點,;使CY7C68013A工作在SLAVE FIFO模式,選擇BULK傳輸,,使用3個端點EP2,、EP4和EP6,全部采用雙緩沖方式,;3個端點FIFO標志分別定義為:FLGA為EP2的4字節(jié)接收可編程標志,,F(xiàn)IGB為EP6的滿標志,F(xiàn)LGC為EP2的空標志,;數(shù)據(jù)寬度設(shè)為16位。

  

  1.3 丟幀問題及解決措施

  在導航計算機與PC機間通過USB接口進行了雙向高速通訊測試,。測試方法如下:PC機向?qū)Ш接嬎銠C傳輸一個數(shù)據(jù)包,,導航計算機接收后回傳,PC機接收后進行正確性校驗,、傳輸,、回傳和校驗過程循環(huán)進行。測試中發(fā)現(xiàn)偶爾有丟幀現(xiàn)象出現(xiàn),。嘗試改變上位機中數(shù)據(jù)采集與后臺實時寫內(nèi)存線程的優(yōu)先級和改變CY7C68013A的端點大小及緩沖級別(如三緩沖,、四緩沖)來解決這個問題,但是丟幀現(xiàn)象依然存在,。

  經(jīng)過較長時間的分析與驗證,,找到了問題所在:PC機中運行的Windows操作系統(tǒng)是一個多任務(wù)的操作系統(tǒng),同時運行著多個進程,,系統(tǒng)在給每個進程分配時間片時也是有一定的優(yōu)先級的,,優(yōu)先級高的進程占用時間片較多,如果PC機在執(zhí)行某些其他進程時占用時間超過了一定的限度,,就可能導致該讀出的數(shù)據(jù)沒有及時讀出,,而下一幀數(shù)據(jù)又已送到緩沖區(qū),,覆蓋前一幀數(shù)據(jù),從而造成丟幀,。

  解決丟幀的辦法是在DSP的內(nèi)存中設(shè)置一個圓形緩沖區(qū),,如果發(fā)現(xiàn)IN型端點的FIFO已滿(說明PC機未及時讀走FIFO中數(shù)據(jù)),則將本幀數(shù)據(jù)存入圓形緩沖區(qū)里,,直到FIFO完全為空,。

  圓形緩沖區(qū)的結(jié)構(gòu)如圖4所示。

  

  在圖4中,,sptr為寫入數(shù)據(jù)指針,,dptr為發(fā)送數(shù)據(jù)指針。整個圓形緩沖區(qū)的大小設(shè)置為256 K字(32位),。若按8 K的數(shù)據(jù)存入速率,,可以保存8 s數(shù)據(jù)。在PC機不能及時讀取IN端點FIFO數(shù)據(jù)的情況下,,這個圓形緩沖區(qū)可以起到很好的緩沖作用,。

  在程序執(zhí)行的初始時刻,設(shè)置指針sptr等于dptr,。當IN端點FIFO滿時,,DSP將數(shù)據(jù)按指針sptr存入圓形緩沖區(qū),sptr隨之遞增,,而dptr保持不變,。當IN端點FIFO空時,DSP仍將數(shù)據(jù)按指針sptr存入圓形緩沖區(qū),,sptr隨之加1,。但此時將從dptr指針處發(fā)送兩幀數(shù)據(jù)到FIFO中,這種dptr追趕sptr的機制,,將保證圓形緩沖區(qū)不出現(xiàn)溢出現(xiàn)象:即不會出現(xiàn)sptr超過dptr一圈以上的情況,。

  1.4 通訊系統(tǒng)軟件整體設(shè)計

  遵循軟件設(shè)計中盡量較少使用中斷的原則,這里只使用1個4 K中斷,,其他三路信號都采用查詢方式,,中斷分配如圖5所示。

  

  圖6為主程序流程,。USB從管道0接收PC機發(fā)來的命令,,命令寫入EP2端點中,此時在INT7管腳上產(chǎn)生USB中斷,。DSP通過查詢INT7中斷,,將EP2中的命令及數(shù)據(jù)讀出,對命令進行解析,,并執(zhí)行相應(yīng)的指令工作,。非周期指令執(zhí)行完后,,將接收數(shù)據(jù)寫入EP4端點,PC機從管道1中將數(shù)據(jù)取走,;周期指令執(zhí)行完后,,將接收數(shù)據(jù)寫入EP6端點,PC機從管道2中將數(shù)據(jù)取走,。

  

  圖7中的4 K中斷流程主要完成陀螺和加速度計脈沖及溫度數(shù)據(jù)的采集工作,,并向EP6端點寫入。

  

  2 通訊效果測試

  將激光陀螺慣性導航系統(tǒng)固定于振動模擬臺,,按照軍用環(huán)境的要求進行了近千小時的振動實驗,。實驗過程中導航計算機高速采集慣性儀表在振動環(huán)境下的輸出數(shù)據(jù),并通過USB接口傳輸給PC機并保存下來,。

  當圓形緩沖區(qū)的兩個指針各自達到最大位置后將從0地址重新開始,,長時間雙向通訊的測試結(jié)果表明:將采用上述方法后的輸出數(shù)據(jù)與串口輸出數(shù)據(jù)進行比對,發(fā)現(xiàn)無丟幀現(xiàn)象產(chǎn)生,。在導航計算機上進行離線仿真以確定和分離各項誤差系數(shù),,通過實時誤差補償減小了部分誤差,從而提高了系統(tǒng)在強振動下的精度,。當然,,PC機在與導航計算機的數(shù)據(jù)傳輸過程中,建議盡量減少運行的任務(wù)數(shù)量,,特別是占用CPU時間較多的任務(wù),,如殺毒、音頻視頻解碼等,。

  3 結(jié)論

  本文將基于CY7C68013A的USB接口技術(shù)應(yīng)用于慣導系統(tǒng)數(shù)據(jù)通信,,創(chuàng)新性的設(shè)立圓形緩沖區(qū)解決了USB接口數(shù)據(jù)傳輸過程中的丟幀問題。近千小時測試結(jié)果表明:上述USB接口通訊裝置可實現(xiàn)導航計算機和PC機間高速實時數(shù)據(jù)傳輸且期間無丟幀現(xiàn)象發(fā)生,,表明該裝置具有良好的穩(wěn)定性與可靠性。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。