李 鳴
(中國測試技術研究院,四川 成都 610021)
標準光源在光軌上運行,要求運行平穩(wěn)、振動小、重復定位精度高。系統(tǒng)采用光柵反饋位移信號,步進電機驅(qū)動組成的全閉環(huán)控制系統(tǒng),有著良好的的位移、定位精度。設計中MCU完成數(shù)據(jù)處理、運算、控制驅(qū)動、通信功能,利用CPLD器件速度快、程序設計靈活、抗干擾能力強、與外圍電路接口方便等特點,集成設計了光柵采樣、數(shù)據(jù)鎖存、程控變頻、運行警戒等硬件電路。這樣提高了CPU的管理效率,也增強了數(shù)據(jù)采集、監(jiān)控的實時性[1-5]。
控制系統(tǒng)設計對上位機開放了2種控制功能:
(1)MCU對CPLD存儲的光柵信息和運行狀態(tài)信息進行實時采集,并將采集的二進制編碼轉(zhuǎn)換為ASCII碼后,通過串行接口傳送至上位機,上位機對收到的數(shù)據(jù)進行運算、處理后,反饋控制指令。MCU收到指令后進行解碼,根據(jù)指令要求執(zhí)行相應的動作。
(2)系統(tǒng)備有十級調(diào)速檔,速度檔與頻率的對應關系見表1。當收到上位機發(fā)來的控制位移量后,MCU將ASCII碼轉(zhuǎn)換成二進制碼,通過模糊運算,并甄別當前位置狀態(tài)后自動控制運行。
控制系統(tǒng)除具備上位機控制功能外,針對長距離的設備安裝、調(diào)試等,輔助設計有遙控控制功能。遙控能夠?qū)崿F(xiàn)前進、后退、停車、增速、減速等速度控制功能,對于較長距離的裝置檢修、調(diào)試十分方便。系統(tǒng)設計原理圖如圖1[6]。
圖1 系統(tǒng)設計原理圖
MCU微處理器采用Silicon Storage Technology,Inc.公司的SST89E58RD2芯片為核心處理器,其特點是兼容MCS-51/52指令系統(tǒng),+5V工作電壓,工作頻率0~40MHz,內(nèi)部RAM 1K,內(nèi)含2塊高性能Super Flash存儲器(EEPROM),主存儲塊32K,次存儲塊8K,支持最大64K的外部程序和數(shù)據(jù)存儲空間,3個16位定時/計數(shù)器,全雙工增強型串行通信口(UART),8個中斷源,4個優(yōu)先級,帶內(nèi)部可編程看門狗(WDT),可編程計數(shù)器陣列(PCA),降低EMI模式,雙DPTR指針,支持掉電檢測。
CPLD (complex programmable logic device)與FPGA(field programmable gate array)均屬超大規(guī)??删幊踢壿嬈骷?。設計采用了Altera公司生產(chǎn)的MAX7128S器件,其結(jié)構(gòu)是將多個可編程陣列器件集成到一個芯片內(nèi),CPLD內(nèi)部結(jié)構(gòu)如圖2所示。主要包含3個部分,分別為可編程邏輯陣列塊(LAB)、可編程互聯(lián)陣列(PIA)、可編程I/O控制模塊,基本結(jié)構(gòu)是宏單元,包括邏輯陣列、16乘積項選擇矩陣和可編程觸發(fā)器3種功能塊,每16個宏單元組成一個LAB,所有邏輯塊都連接到同一個可編程互聯(lián)陣列(PIA)。由于CPLD內(nèi)部采用固定長度的金屬線進行各邏輯塊的互連,所以設計的邏輯電路具有時間可預測性,避免了分段式互連結(jié)構(gòu)時序不完全預測的缺點。其特性是編程靈活、集成度高、設計開發(fā)周期短、適用范圍寬、開發(fā)工具先進。
圖2 MAX7128S的結(jié)構(gòu)圖
利用SST89E58RD2內(nèi)部的豐富資源和CPLD設計靈活的特性,這樣就構(gòu)成了系統(tǒng)體積小、功能強且有很高性價比的控制系統(tǒng)。
控制電路原理圖如圖3,MCU通過8位數(shù)據(jù)總線與CPLD內(nèi)部8位數(shù)據(jù)總線連接,進行數(shù)據(jù)交換,地址線用于選擇不同的工作單元和接口,RD控制線(有效)讀取CPLD內(nèi)部存儲器數(shù)據(jù)和節(jié)點狀態(tài)信息,WR控制線(有效)將數(shù)據(jù)/指令送入相應工作單元或?qū)狪/O控制口線。
圖3 控制電路示意圖
CPLD內(nèi)部電路設計有地址譯碼器,地址譯碼器用于識別組件單元、I/O口線等。對光柵傳感器信號設計有判相、倍頻電路、計數(shù)器、鎖存器等??刂乞?qū)動設計有程控分頻器、脈沖輸出、方向控制等。輔助設計有內(nèi)部節(jié)點狀態(tài)監(jiān)測、限位甄別等。CPLD內(nèi)部控制電路原理圖如圖4所示[7-8]。
控制系統(tǒng)應具有以下功能:
(1)將數(shù)據(jù)和狀態(tài)信息實時傳送至上位機,內(nèi)容包括位移值、限位傳感器信號、節(jié)點信息、速度控制狀態(tài)。
圖4 CPLD內(nèi)部電路原理圖
(2)運動控制包括行進方向、步進電機工作頻率、啟動、停止。
(3)位移控制包括按絕對坐標運行和按相對坐標運行。絕對坐標運行是指從當前位置運行至指定位置。相對坐標運行是指從當前位置運行至當前所在坐標+位移值(或當前所在坐標值-位移值)。
(4)在位移控制方式,軟件能通過位移變化量,經(jīng)模糊運算反饋速度輸出。
(5)控制系統(tǒng)內(nèi)十檔速度參數(shù)可由上位機設置。
(6)根據(jù)以上要求提出程序設計思想。
控制系統(tǒng)程序設計流程圖如圖4所示。
程序設計由匯編語言(assembly language)實現(xiàn),程序包括主程序和中斷程序。主程的一個控制流程,首先對指令標志進行檢測,當有指令標志時,則按照指令轉(zhuǎn)到相應分支程序執(zhí)行動作,控制指令由中斷程序接收。當指令動作執(zhí)行完畢,則清除指令標志,等待接收下一次控制指令。當未有指令標志時,程序?qū)?zhí)行光柵數(shù)據(jù)、狀態(tài)信息采集,然后將采集的數(shù)據(jù)和狀態(tài)信息數(shù)據(jù)處理后送至指定單元,啟動發(fā)送,將數(shù)據(jù)由串口傳送至上位機[9-10]。
為傳送一組完整的數(shù)據(jù),啟動通信后設置通信標志,當程序循環(huán)至此時,對通信標志進行判斷。如通信標志“忙”表示該組數(shù)據(jù)未傳送完畢,跳過執(zhí)行;如通信標志“閑”表示數(shù)據(jù)已傳送完畢,可以進行新的數(shù)據(jù)傳送。至此,主程序的一個控制流程結(jié)束,返回至指令標志判斷。程序設計流程圖見圖5。
利用中斷處理具有實時性好的特點,將SST89E58RD2串口中斷作為與上位機實時數(shù)據(jù)交換,外部中斷0(INT0)作為CPLD對遙控信號解碼完成后的指令觸發(fā)。當串口中斷發(fā)生時,在中斷程序中將上位機指令通過處理后送至指令單元,并設置指令標志,串口中斷程序結(jié)束。
圖5 主程序設計流程圖
外部中斷0產(chǎn)生中斷時,通過調(diào)取CPLD的解碼單元,經(jīng)處理后送指令單元,同時設置指令標志,INT0中斷程序結(jié)束。中斷程序流程圖見圖6
圖6 中斷程序設計流程圖
CPLD編程采用Altera公司的Quartus II10.1設計軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(altera hardware description language)等多種設計輸入形式。該文采用原理圖設計形式,通過硬件描述語言(AHDL、VHDL、Verilog)轉(zhuǎn)換原理圖,生成相應的目標文件,通過下載電纜將代碼傳送到目標芯片中,實現(xiàn)設計的數(shù)字系統(tǒng)[11-12]。
在測試系統(tǒng)中,光柵柵距為0.05mm,驅(qū)動機構(gòu)采用的步進電機57HB76-306和與其配套的驅(qū)動器YKA2304MA,驅(qū)動器的最高工作頻率200 kHz,64細分。系統(tǒng)中使用的時鐘頻率為20MHz,經(jīng)分頻后送至驅(qū)動器。按照系統(tǒng)運行平穩(wěn)、低噪音的技術要求應首先調(diào)整分頻系數(shù),并以此作為設備運行的極限工作頻率。以此向下確定10檔速度頻率,供速度控制使用。在項目應用中,通過計算機控制軟件,調(diào)試確定的速度/頻率關系見表1,計算機操作界面見圖7。
表1 速度與頻率關系及頻率系數(shù)
表2 控制速度與位移關系
圖7 計算機控制界面示意圖
然后,對運動控制指令進行測試,如前進、后退、停車、增速、減速等控制指令。
位移控制方式,首先確定速度與位移關系,測試中采用計算機做閉環(huán)控制,位移距離設為2000mm,按表1速度檔分別測試,測試結(jié)果見表2。由控制速度與位移關系,建立速度-位移關系模型。利用MCU+CPLD控制系統(tǒng)響應速度快的特性,將每次采集的位移變化量,經(jīng)模糊運算處理后反饋速度輸出。經(jīng)測試,在8m長光軌上,輸入任意位置后控制運行,其設置位移與實際位移的偏差均在≤0.1mm范圍內(nèi)。
CPLD的高度集成化和大容量設計,不僅完成了脈沖計數(shù)、存儲、I/O控制等功能,還可將控制運算程式用硬件方式設計于數(shù)字系統(tǒng)。這對于控制環(huán)節(jié)來說,替代由CPU完成運算后再反饋的處理方式,其實時性和抗干擾能力均有很大的提高。在實際應用中,基于CPLD+MCU的閉環(huán)控制系統(tǒng),結(jié)構(gòu)簡潔、開發(fā)周期短、響應速度快、可靠性好,有著很好的產(chǎn)品應用前景。
[1]許俊巧,李鍵,金晶,等.利用單片機形成的速度閉環(huán)控制系統(tǒng)[J].自動化與儀表,2005(4):21-25.
[2]李現(xiàn)勇.Visual C++串口通信技術與工程實踐[M].北京:人民郵電出版社,2002.
[3]李翠敏,高有行.用寄存器實現(xiàn)步進電機速度控制[J].微特電機,2003,31(5):31-32.
[4]郭軍團,高有行,范慧敏,等.基于單片機的光柵測試系統(tǒng)的硬件設計和實現(xiàn)[J].西安工業(yè)大學學報,2006(26):423-426.
[5]劉帥,祖靜,張紅艷.基于單片機的步進電機控制系統(tǒng)設計[J].電子設計工程,2010,18(4):38-40.
[6]李穎,張伏生,張志勇.基于X-Y控制平臺的步進電機閉環(huán)控制系統(tǒng)[J].微電機,2005,38(2):50-52.
[7]董秀潔,楊艷,周游.FPGA/CPLD選型與設計優(yōu)化[J].化工自動化及儀表,2009,36(3):60-63.
[8]高欽和.可編程控制器應用技術與設計實例[M].北京:人民郵電出版社,2004.
[9]何立民.單片機高級教程應用與設計[M].北京:北京航空航天大學出版社,2002.
[10]黃向慧.基于高速單片機控制的位移測量系統(tǒng)設計[J].工礦自動化,2006(4):44-45.
[11]張弘.USB接口設計[M].西安:西安電子科技大學出版社,2002.
[12]劉森,慕春棣.基于可編程邏輯器件的嵌入式系統(tǒng)硬件原型設計[J].微計算機信息,2006,22(2):20-22.