基于USB接口的激光陀螺慣導系統數據通訊
在程序執行的初始時刻,設置指針sptr等于dptr。當IN端點FIFO滿時,DSP將數據按指針sptr存入圓形緩沖區,sptr隨之遞增,而dptr保持不變。當IN端點FIFO空時,DSP仍將數據按指針sptr存入圓形緩沖區,sptr隨之加1。但此時將從dptr指針處發送兩幀數據到FIFO中,這種dptr追趕sptr的機制,將保證圓形緩沖區不出現溢出現象:即不會出現sptr超過dptr一圈以上的情況。
1.4 通訊系統軟件整體設計
遵循軟件設計中盡量較少使用中斷的原則,這里只使用1個4 K中斷,其他三路信號都采用查詢方式,中斷分配如圖5所示。本文引用地址:http://www.104case.com/article/162228.htm
圖6為主程序流程。USB從管道0接收PC機發來的命令,命令寫入EP2端點中,此時在INT7管腳上產生USB中斷。DSP通過查詢INT7中斷,將EP2中的命令及數據讀出,對命令進行解析,并執行相應的指令工作。非周期指令執行完后,將接收數據寫入EP4端點,PC機從管道1中將數據取走;周期指令執行完后,將接收數據寫入EP6端點,PC機從管道2中將數據取走。
圖7中的4 K中斷流程主要完成陀螺和加速度計脈沖及溫度數據的采集工作,并向EP6端點寫入。
2 通訊效果測試
將激光陀螺慣性導航系統固定于振動模擬臺,按照軍用環境的要求進行了近千小時的振動實驗。實驗過程中導航計算機高速采集慣性儀表在振動環境下的輸出數據,并通過USB接口傳輸給PC機并保存下來。
當圓形緩沖區的兩個指針各自達到最大位置后將從0地址重新開始,長時間雙向通訊的測試結果表明:將采用上述方法后的輸出數據與串口輸出數據進行比對,發現無丟幀現象產生。在導航計算機上進行離線仿真以確定和分離各項誤差系數,通過實時誤差補償減小了部分誤差,從而提高了系統在強振動下的精度。當然,PC機在與導航計算機的數據傳輸過程中,建議盡量減少運行的任務數量,特別是占用CPU時間較多的任務,如殺毒、音頻視頻解碼等。
3 結論
本文將基于CY7C68013A的USB接口技術應用于慣導系統數據通信,創新性的設立圓形緩沖區解決了USB接口數據傳輸過程中的丟幀問題。近千小時測試結果表明:上述USB接口通訊裝置可實現導航計算機和PC機間高速實時數據傳輸且期間無丟幀現象發生,表明該裝置具有良好的穩定性與可靠性。
評論