關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于USB接口的激光陀螺慣導系統數據通訊

        基于USB接口的激光陀螺慣導系統數據通訊

        作者: 時間:2011-04-02 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/162228.htm

        b.JPG


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

        c.JPG


        1.3 丟幀問題及解決措施
        在導航計算機與PC機間通過進行了雙向高速通訊測試。測試方法如下:PC機向導航計算機傳輸一個數據包,導航計算機接收后回傳,PC機接收后進行正確性校驗、傳輸、回傳和校驗過程循環進行。測試中發現偶爾有丟幀現象出現。嘗試改變上位機中數據采集與后臺實時寫內存線程的優先級和改變CY7C68013A的端點大小及緩沖級別(如三緩沖、四緩沖)來解決這個問題,但是丟幀現象依然存在。
        經過較長時間的分析與驗證,找到了問題所在:PC機中運行的Windows操作是一個多任務的操作,同時運行著多個進程,在給每個進程分配時間片時也是有一定的優先級的,優先級高的進程占用時間片較多,如果PC機在執行某些其他進程時占用時間超過了一定的限度,就可能導致該讀出的數據沒有及時讀出,而下一幀數據又已送到緩沖區,覆蓋前一幀數據,從而造成丟幀。
        解決丟幀的辦法是在DSP的內存中設置一個圓形緩沖區,如果發現IN型端點的FIFO已滿(說明PC機未及時讀走FIFO中數據),則將本幀數據存入圓形緩沖區里,直到FIFO完全為空。
        圓形緩沖區的結構如圖4所示。

        d.JPG


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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洛扎县| 广昌县| 泰来县| 汶上县| 唐河县| 揭阳市| 泗阳县| 林周县| 克山县| 长垣县| 宜城市| 常宁市| 台北县| 镶黄旗| 盖州市| 平果县| 高陵县| 乌苏市| 南宫市| 临泉县| 诏安县| 东乌珠穆沁旗| 南华县| 定日县| 宁南县| 鹤壁市| 东至县| 奈曼旗| 科尔| 东兴市| 巴彦淖尔市| 逊克县| 荃湾区| 菏泽市| 额济纳旗| 台江县| 天镇县| 安泽县| 余庆县| 朝阳区| 汝城县|