新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA和PCI的高精度測速板卡的設計與實現

        基于FPGA和PCI的高精度測速板卡的設計與實現

        作者: 時間:2011-01-24 來源:網絡 收藏

        (1)空閑狀態為從設備的初始狀態,在沒有任何操作的時候,從設備將始終保持這個狀態;
        (2)每次數據傳輸時首先傳出地址和命令字,根據地址和命令字確定是不是對本設備的訪問,并確定訪問的首地址;從設備則從命令字中識別該訪問是讀操作還是寫操作;
        (3)讀訪問只有在信號IRDY,TRDY,DEVSEL都為低狀態時才能進行;
        (4)猝發傳輸需要通過地址遞增邏輯來實現地址的自動遞加;其地址遞增的周期為數據周期和最后傳輸周期總和,在等待周期暫停遞增;
        (5)主從設備中任一方沒有準備好,操作中都需要能夠引起等待狀態插入的活動;
        (6)讀操作還有一個中間準備過程。
        那么完成本狀態機需要6個狀態:idle表示空閑狀態;addr表示地址周期;turnad表示讀轉換周期;data表示數據傳輸周期;lasttra表示最后傳輸周期;wait表示等待周期;在各個狀態到來時還要對中間信號、輸出信號和本地信號執行相應的操作:
        (1)idle,addr,turnad周期對_TFRDYn和PCIDEVSELn置高電平;addr周期依據地址信號確定是否選中本機,識別是否為讀操作;addr周期輸出PCI_AD[3:2]對寄存器進行尋址,實現讀操作。
        (2)data,lasttra周期對PCI_TRDYn和PCI_DEVSELn置低電平;data,lasttra周期置DATA_EN有效并輸出。
        (3)addr,data,lasttra周期置奇偶校驗有效。
        (4)等待周期置PCI_TRDYn和PCI_DEVSELn低電平。
        根據對PCI總線傳輸時序的分析,影響各個狀態相互轉化的因素是:幀同步信號PCI_FRAMEn、主設備準備好信號PCI_IRDYn、讀識別信號READn。其中,READn用來標識狀態addr產生的中間識別信號。

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

        3 測試平臺與仿真測試
        這種改進M/T數字及位置檢測算法的硬件采用Xilinx公司的 XC3S400。使用36 000刻的增量式碼盤,速度環采樣周期T設定為1 ms,高頻時標信號的頻率為40 MHz,結合PC運算的數字算法可以在速度O.001~150(°)/s的范圍內獲得±2.5×10-5 s的精度。與此同時,動態位置檢測算法可以使位置反饋的動態測量分辨率提高到10-2~10-6個脈沖當量。
        對編寫好的VHDL程序采用ISE進行綜合,并編寫測試平臺,用ModelSim對其進行仿真測試。圖6為PCI控制器的仿真圖,圖中state表示狀態機在內部轉換的過程,狀態1表示空閑狀態,狀態2表示地址周期,狀態4表示讀轉換周期,狀態8表示最后傳輸周期,狀態9表示猝發讀寫周期。

        k.jpg
        該I/O讀操作,將地址為1的寄存器讀出。這里設定I/O地址為0X200~0X20F這4個雙字空間,那么在地址周期中地址0X204的2~3位尋址于寄存器的第一個雙字,其后緊跟的是讀的轉換周期,猝發讀寫周期和最后一位讀寫周期。可以看出,這兩個周期都對這個寄存器進行了讀操作。

        4 結語
        本文介紹了使用設計和實現基于PCI總線傳輸的改進型M/T法測速電路,它克服了經典測速方法的幾個缺點,在較大速度范圍內都具有良好的精度。同時使用設計和實現了PCI從設備控制器,使得測速電路的設計與PCI總線的設計成為一個整體,節省了板上器件,也使得整個設計信號在FPGA內部流動,具有更加良好的抗干擾能力和穩定性。


        上一頁 1 2 3 4 下一頁

        關鍵詞: FPGA PCI 高精度 測速

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 廉江市| 凤城市| 新巴尔虎左旗| 腾冲县| 新化县| 曲松县| 南皮县| 临高县| 甘德县| 九江县| 贞丰县| 通辽市| 漯河市| 崇仁县| 滕州市| 方正县| 故城县| 玉田县| 台湾省| 荥经县| 齐河县| 南昌县| 巴林右旗| 铁岭市| 精河县| 襄城县| 历史| 雷波县| 盖州市| 西充县| 景德镇市| 和田市| 苏尼特右旗| 泰和县| 桂平市| 大名县| 额济纳旗| 枞阳县| 康平县| 刚察县| 萨嘎县|