基于ARM+FPGA的運動控制器設計與實現(xiàn)
3.1 FPGA 內部關鍵功能模塊設計
FPGA 不擅長對數(shù)據進行運算處理,但本系統(tǒng)對每個軸的控制都要進行相應的運算,因此在每個軸的控制模塊設計中盡量不涉及復雜的算法實現(xiàn),算法部分留給ARM 進行處理。原則上FPGA 僅僅接收經ARM 進行處理過的數(shù)據,而后按照ARM 主控單元的處理結果進行處理。
單軸控制模塊框圖如圖3 所示。在每個位置管理單元中都配置了兩個計數(shù)器:邏輯位置計數(shù)器和實際位置計數(shù)器。其中邏輯位置計數(shù)器的輸入端接到脈沖發(fā)生器的輸出端,其功能是計量從脈沖發(fā)生器實際發(fā)出的脈沖數(shù)量。實位計數(shù)器的輸入端接到編碼器的輸出端,其功能是計量從編碼器發(fā)出的脈沖個數(shù)。邏輯位置寄存器和實際位置寄存器實際上構成一個閉環(huán)系統(tǒng),前者為閉環(huán)系統(tǒng)的輸入,后者為閉環(huán)系統(tǒng)的輸出。當兩者的誤差范圍不超過某一個限度時,在FPGA中對實時的脈沖發(fā)送速率進行調節(jié);當兩者的誤差超過某一個設定的范圍時,F(xiàn)PGA 向ARM 發(fā)送一個中斷請求。當某個軸接收到減速信號SD 或者極限到位信號EL 時,在FPGA 內部經過同樣一個中斷發(fā)生器模塊向ARM 發(fā)送一個中斷。ARM 接收到中斷信號后,開啟運動控制進程,對PID 控制參數(shù)進行整定,計算控制量。
圖3 單軸控制模塊設計
3.2 驅動程序接口設計
在系統(tǒng)設計中,兩片F(xiàn)PGA 作為ARM 的外設,掛在ARM 的外設地址空間。當ARM 要訪問FPGA時,首先要在ARM 中運行包含F(xiàn)PGA 所在地址空間地址的指令,而后ARM 的片選線選中FPGA,F(xiàn)PGA檢測到自己被選中,從而開始檢測地址總線上傳來的ARM 指令所包含的地址數(shù)據。根據從ARM 地址線傳來的地址總線上的數(shù)據,F(xiàn)PGA 讀取從ARM 數(shù)據總線上傳來的數(shù)據總線上的數(shù)據,而后開始進行相應的動作,從而完成一次控制任務。寄存器是本運動控制系統(tǒng)的基本組成部分之一,ARM 對FPGA 的控制就是通過配置在FPGA 內部的寄存器來實現(xiàn)的。完成配置的FPGA 整體結構如圖4 所示。
圖4 FPGA 內部結構圖
4 控制算法設計與仿真
4.1 單神經元自適應PID 控制器設計
單神經元自適應PID 控制器的結構如圖5 所示。
圖5 單神經元自適應PID 控制器
圖5 中,神經元的3 個狀態(tài)變量分別為:
pid控制器相關文章:pid控制器原理
評論