基于FPGA的多軸控制器設計
摘要:介紹了一種基于FPGA的多軸控制器,控制器主要由ARM7(LPC2214)和FPGA(EP2C5T144C8)及其外圍電路組成,用于同時(shí)控制多路電機的運動(dòng)。利用Verilog HDL硬件描述語(yǔ)言在FPGA中實(shí)現了電機控制邏輯,主要包括脈沖控制信號產(chǎn)生、加減速控制、編碼器反饋信號的辨向和細分、絕對位移記錄、限位信號保護邏輯等。論文中給出了FPGA內部一些核心邏輯單元的實(shí)現,并利用QuartusⅡ、Modelsim SE軟件對關(guān)鍵邏輯及時(shí)序進(jìn)行了仿真。實(shí)際使用表明該控制器可以很好控制多軸電機的運動(dòng),并且能夠實(shí)現高精度地位置控制。
關(guān)鍵詞:VerilogHDL;FPGA;多軸控制器;編碼器;四細分
隨著(zhù)電機廣泛地應用于數字控制系統中,對電機控制的實(shí)時(shí)性和精度上的要求越來(lái)越高。如何靈活、有效地控制電機的運行成為研究的主要方向。文中采用現場(chǎng)可編程邏輯門(mén)陣列(Field Programmable Gate Array,FPGA),通過(guò)Verilog語(yǔ)言編程來(lái)實(shí)現電機的控制。利用FPGA設計具有硬件設計軟件化、高度集成化、高工作頻率等優(yōu)點(diǎn)。FPGA最大的特點(diǎn)就是靈活,實(shí)現你想實(shí)現的任何數字電路,可以定制各種電路,減少受制于專(zhuān)用芯片的束縛,真正為自己的產(chǎn)品量身定做。在設計的過(guò)程中可以靈活的更改設計,而且它強大的邏輯資源和寄存器資源可以讓你輕松的去發(fā)揮設計理念。其并行執行,硬件實(shí)現的方式可以應對設計中大量的高速電子線(xiàn)路設計需求。
1 多軸控制器主要功能
多軸控制器與上位機、電機驅動(dòng)器等配合使用,圖1為采用多軸控制器組成的控制系統總體示意圖??刂破鹘邮丈衔粰C發(fā)送的控制指令,分析處理并產(chǎn)生相應的方向信號、脈沖信號給驅動(dòng)器,從而達到控制電機運行的目的。為了提高系統的控制精度,將電機的編碼器信號作為反饋信號輸入給控制器(內部實(shí)現自動(dòng)辨向及四細分)。在各軸運動(dòng)過(guò)程中,專(zhuān)用控制器對電機運行的絕對位移進(jìn)行記錄,并且可以實(shí)時(shí)地將各軸的絕對位置信息上傳給上位機。另外在電機運行的過(guò)程中,為了保證電機運行的安全性,控制器還采用了限位信號反饋實(shí)現全硬件保護措施。
2 多軸控制器組成
專(zhuān)用控制器由ARM(LPC2214)、FPGA(EP2C5T144C8)、驅動(dòng)器接口電路、編碼器接口電路、限位檢測電路和電源電路等組成,如圖2為一個(gè)八軸電機控制器的硬件組成圖。ARM通過(guò)串口實(shí)現與上位機之間的通信,解析從上位機獲得的控制指令,并通過(guò)FPGA產(chǎn)生相應輸出信號給驅動(dòng)器接口,驅動(dòng)器接口外接驅動(dòng)器。編碼器信號作為位置反饋信號同編碼器接口相連,形成位置環(huán)反饋。限位信號作為安全檢測信號同限位檢測接口相連,為整個(gè)系統添加一道安全保障。
3 FPGA控制邏輯
專(zhuān)用控制器在完成整個(gè)控制的過(guò)程中,ARM只負責指令解析、控制指令發(fā)送、實(shí)時(shí)數據上傳等任務(wù),FPGA才是多軸專(zhuān)用控制器的核心。通過(guò)Verilog HDL語(yǔ)言在FPGA內部實(shí)現了加減速曲線(xiàn)、編碼器信號辯向及四細分、絕對位移記錄等功能。圖3為電機控制的整體輸入、輸出信號圖,通過(guò)片選信號CS、讀有效信號rd_enable、寫(xiě)有效圖信號wr_enable進(jìn)行電機通道選擇。圖4給出了1#通道控制的FPGA內部邏輯示意圖,下面將逐一對各主要模塊進(jìn)行詳細介紹。
1)加減速曲線(xiàn)模塊
為了更有效、更理想地控制電機的運行,在FPGA內部設計了加減速曲線(xiàn)模塊。文中采用了一種近似指數加減速曲線(xiàn)的方法,如圖5為近似指數加速曲線(xiàn),減速曲線(xiàn)與之對稱(chēng)。速度等距分布,那么在該速度級上保持的時(shí)間不一樣場(chǎng)。為了簡(jiǎn)化,用速度級數N與一個(gè)常數C的乘積去模擬并且保持的時(shí)間用不熟來(lái)代替。因此,速度每升一級,電機都要在該速度級上走NC步(其中N為該速度級數)。
建立兩個(gè)名為rom_pos、rom_div的ROM模塊,如圖6所示,rom_pos為脈沖個(gè)數存儲器,rom_div為分頻值存儲器。通過(guò)相同的地址線(xiàn)將兩個(gè)存儲器連接起來(lái),使一個(gè)地址對應一組脈沖個(gè)數和分頻值。
FPGA獲得方向信號、脈沖(距離)信號、目標分頻值之后.如果電機運行過(guò)程中不需要加減速,直接以目標分頻值控制脈沖信號的發(fā)送即可。如果需要執行加減速,則FPGA內部要調用加減速模塊。根據地址線(xiàn)獲取一組數據,即脈沖個(gè)數pul_cnt和分頻值div_num,以div_num大小的分頻值發(fā)送pul_cnt個(gè)脈沖,然后再按照下一組數據值發(fā)送脈沖,直到分頻值達到目標分頻值為止,減速過(guò)程與加速過(guò)程對稱(chēng)。當電機按照脈沖(距離)信號運行到一半行程的時(shí)候,如果分頻值還未達到目標分頻值,此時(shí)就要進(jìn)行強制減速。
編寫(xiě)仿真程序,使兩個(gè)存儲器地址線(xiàn)相同,對存儲器地址address做加1運算,從而可一次性讀取兩個(gè)存儲器所對應存儲單元的數據。利用Modulesim仿真工具對加減速模塊進(jìn)行功能仿真,仿真結果如圖7所示,訪(fǎng)問(wèn)一個(gè)存儲器地址就對應著(zhù)一組脈沖個(gè)數和分頻值的輸出。
2)編碼器反饋辨向及四細分
編碼器反饋信號由A、B、Z三相信號組成。A、B兩相信號相位相差90度,一個(gè)周期內A、B相信號會(huì )出現4種不同的組合狀態(tài),根據這一特征可以對編碼器信號進(jìn)行辯相和四細分處理。Z相信號為編碼器零位信號,當編碼器旋轉一圈,Z相就會(huì )有信號輸出。
在QuartusⅡ編譯環(huán)境下成功編譯之后,調用Modulesim仿真軟件,編寫(xiě)仿真程序,使之產(chǎn)生全局時(shí)鐘、復位信號、相位差為90度的A、B相信號和Z相信號。如圖8所示,給出了該多軸控制器中所采用的編碼器信號辯相及四細分的功能仿真圖。
3)絕對位移記錄
多軸專(zhuān)用控制器可以將電機運行的絕對位移實(shí)時(shí)地上傳給上位機,這一功能的實(shí)現就有賴(lài)于FPGA中的絕對位移記錄部分的邏輯功能。在FPGA內部設置一個(gè)絕對位移寄存器,用來(lái)對編碼器反饋信號(辨向四細分之后)進(jìn)行計數運算。當編碼器信號的一個(gè)脈沖到來(lái)時(shí),根據辯向后的方向信號做不同的運算處理。方向為正則絕對位移寄存器的值就進(jìn)行加1運算,否則進(jìn)行減1運算,從而達到對絕對位移進(jìn)行記錄的目的。并且ARM可以隨時(shí)讀取該絕對位移寄存器的值,然后將其值上傳給上位機,從而完成實(shí)時(shí)上傳電機運行位置信息的功能。編寫(xiě)仿真程序對絕對位移寄存器進(jìn)行功能仿真,結果如圖9所示。
4 結束語(yǔ)
該方案成功已應用于某6軸Stewart平臺運動(dòng)控制中,在實(shí)現了0.1μm的運動(dòng)定位精度的同時(shí),運動(dòng)機構得到了很好的保護,多次實(shí)驗及實(shí)際使用中,該專(zhuān)用控制器運行安全可靠。
評論