基于usb接口的嵌入式運動控制器設計
竇海斌,方建軍
(北方工業大學機電工程學院,北京100041)
摘要:開發出一種基于usb2. 0接口的嵌入式運動控制器,探討了該運動控制器的體系結構的實現并對usb接口模塊的軟件和硬件設計進行了詳細的介紹。將該嵌入式運動控制器應用于智能象棋機械手的控制過程中,實驗結果表明通過擴展usb設備可以容易的實現多軸聯動同時在實時性能要求不高的場合可以滿足運動控制的要求。
關鍵詞:usb2.0; dsp; fpca;嵌入式運動控制器
中圈分類號:tp273 文獻標志碼:a 文章編號:1001-6848(2010)06-0100-03
0引 言
多軸運動控制系統在激光加工、工業機器人、數控機床、辦公自動化設備、雷達和軍用武器隨動系統以及柔性制造系統的應用越來越廣泛。pci或isa接口的多軸運動控制器不能進行長距離傳輸,控制器要插到ipc擴展插槽里面,占用ipc外圍資源,從主機應用程序過來的數據多放到緩存fifo中,不能方便地區分對各個軸的指令和控制參數,開發t作也比較復雜。而usb2.0技術不僅可以實現高速數據傳輸,而且具有即插即用,功耗低,連接簡便,價格便宜的特點,同時可以實瑰不同軸指令及參數的分開,而不需要做復雜的技術處理。本文以智能象棋機器人嵌入式運動控制器為例,提出一種基于usb2. 0接口的多軸運動控制器。該運動控制器與上位機可以實現高速數據通信,完全滿足象棋機械手的控制性能要求。
1硬件結構設計
1.1總體結構設計
運動控制器硬件結構如圖l所示。運動控制器通過usb接口從上位pc機獲取位置指令、命令指令以及需要調整的參數(比如pid調節系數),運動控制器由dsp對位置指令進行粗插補,在每一個插補周期,dsp根據反饋的正交編碼脈沖信號獲取軸的實時位置,計算出期望值與實際值之間的偏差,對偏差進行pid調節,獲得各軸的進給量。將此進給量依次送人fpga的脈沖發生模塊完成精插補操作,產生輸出脈沖信號送人伺服驅動器控制電機運動。同時運動控制器可以根據pc機的命令指令向pc機上傳各伺服軸的運行狀況等信息并通過pc界面顯示出來。
1.2 usb模塊設計
sx2有5個端點:ep(o、2、4、6、8)。epo用基于usb接口的嵌入式運動控制器設計竇海斌,等來提供介于主機與設備之間的配置、命令或狀態的通信協議。在本設計中將ep2設置為out端點,負責傳送位置指令數據,配置為512字節雙緩沖的模式。ep6設置為out端點,負責傳送pc來的命令指令,配置為512字節雙緩沖的模式。ep4設置為in端點,負責傳送來自運動控制器的狀態信息,配置為512字節雙緩沖的模式。雙緩沖的模式可以使usb在讀或者寫一個數據包時,另一個數據包(同一個端點內的另一個緩沖器)可供dsp執行讀或者寫操作。通過建立兩級緩存可以極大提高數據的傳輸速度,更好地利用usb2.0的高速性。
sx2與fpga的連接圖如圖2所示。fifoadr[00: 02]用來選擇fifo和命令端口,具體的對應規則可查閱sx2的技術資料;slrd為sx2的讀有效信號常與sloe短接,與dsp的讀使能信號xrd相連;slwr為寫有效信號,與dsp的寫使能信號xwe相連;flaga、flagb、flagc報告由fifoadr[2:0]選擇的fifo的狀態;ready信號有效時通知dsp對sx2的fifo進行讀寫。flagx和ready的狀態均寫入fpga申的一個寄存器中,dsp將fpca配置在zonel空間內(ox4000h),通過a[3:4]選中此寄存器,再通過數據線d[0:7]將寄存器的內容送人dsp,dsp通過查詢各端口fifo的狀態執行相應的命令。
因為使用了雙緩沖的模式,充分的發揮了usb2.0的傳輸速度快的優勢。具體的工作過程為:當上位pc機要發送位置指令給運動控制器時,將位置指令發送到ep2,dsp通過讀fpga中的sx2的狀態寄存器得知ep2的fifo中有數據,然后將位置數據讀人dsp中進行粗插補算法。當上位pc機要讀出當前各軸的運行狀態時,將命令指令發送到ep6,dsp將命令指令讀人內部寄存器中判斷出命令所要求的具體任 |