第1類(lèi)是以單片機等微處理器作為控制核心的運動(dòng)控制器。這類(lèi)運動(dòng)控制器速度較慢、精度不高、成本相對較低,只能在一些低速運行和對軌跡要求不高的輪廓運動(dòng)控制場(chǎng)合應用。
第2類(lèi)是以專(zhuān)用芯片(ASIC)作為核心處理器的運動(dòng)控制器,這類(lèi)運動(dòng)控制器結構比較簡(jiǎn)單,大多只能輸出脈沖信號,工作于開(kāi)環(huán)控制方式。由于這類(lèi)控制器不能提供連續插補功能,也沒(méi)有前饋功能,特別是對于大量的小線(xiàn)段連續運動(dòng)的場(chǎng)合不能使用這類(lèi)控制器。
第3類(lèi)是基于PC總線(xiàn)的以DSP或FPGA作為核心處理器的開(kāi)放式運動(dòng)控制器。這類(lèi)開(kāi)放式運動(dòng)控制器以DSP芯片作為運動(dòng)控制器的核心處理器,以PC機作為信息處理平臺,運動(dòng)控制器以插件形式嵌入PC機,即“PC+運動(dòng)控制器”的模式。這樣的運動(dòng)控制器具有信息處理能力強,開(kāi)放程度高,運動(dòng)軌跡控制準確,通用性好的特點(diǎn)。但是這種方式存在以下缺點(diǎn):運動(dòng)控制卡需要插入計算機主板的PCI或者ISA插槽,因此每個(gè)具體應用都必須配置一臺PC機作為上位機。這無(wú)疑對設備的體積、成本和運行環(huán)境都有一定的限制,難以獨立運行和小型化。
針對這些問(wèn)題,設計了一種基于A(yíng)RM+DSP的嵌入式運動(dòng)控制器。該控制器將嵌入式CPU與專(zhuān)用運動(dòng)控制芯片相結合,將運動(dòng)控制功能以功能模塊的方式嵌入到ARM主控板的架構,把不需要的設備裁減掉,既兼顧功能又節省成本。該控制器是一種可以脫離上位機單獨運行的一種獨立型運動(dòng)控制器,具有良好的應用前景。
1 嵌入式運動(dòng)控制器的硬件平臺設計
嵌入式運動(dòng)控制器的硬件主要包括兩個(gè)部分:ARM主控板和DSP運動(dòng)控制板。這兩塊控制板通過(guò)通用I/O口以總線(xiàn)的方式連接在一起。在設計時(shí),可以分別對ARM主控板和DSP運動(dòng)控制板進(jìn)行設計,*再調試。這種將ARM主控板和DSP運動(dòng)控制板分開(kāi)設計和調試的硬件方案,將設計難點(diǎn)分散,使設計和調試更簡(jiǎn)單。
1.1 ARM主控板部分
本系統采用的ARM芯片為Samsung公司推出的16/32位RISC處理器S3C2440A,主頻為400 MHz,*頻率可達533 MHz。ARM主控板以嵌入式處理器S3C2440A為核心,外擴存儲器和通用設備接口。ARM主控板的硬件結構框圖如圖1所示。
通過(guò)通用I/O接口與DSP運動(dòng)控制板通信,實(shí)現ARM主控板與運動(dòng)控制板之間數據的實(shí)時(shí)雙向傳送;外部NAND Flash存儲器(64 MB),用于存儲系統參數及運動(dòng)指令;NOR Flash存儲器(2 MB),用于存放系統運行程序;SDRAM存儲器(64 MB),用于存放臨時(shí)數據;通過(guò)串口、以太網(wǎng)接口、USB接口與上位機系統通信,實(shí)現兩者之間數據的傳送;通過(guò)LCD接口,實(shí)現320×240分辨率液晶屏的圖形與字符顯示,并具有觸摸屏接口,提供友好的人機交互界面;通過(guò)I/O擴展接口,提供可編程的數字I/O通道;通過(guò)JTAG接口與PC機通信,實(shí)現系統運行程序的仿真調試及下載,軟件升級接口。
1.2 DSP運動(dòng)控制板部分
本系統DSP運動(dòng)控制芯片選用PCL6045B。PCL6045B是一種功能十分強大的DSP運動(dòng)控制芯片。芯片能夠控制四軸,并實(shí)現兩軸到四軸直線(xiàn)差補、兩軸圓弧差補。所有插補計算由芯片完成,上位機只需寫(xiě)入圓弧的參數即可,其多軸插補控制功能特別優(yōu)秀。系統硬件采用主從式雙CPU結構模式。主CPU為ARM處理器,負責鍵盤(pán)、顯示、網(wǎng)絡(luò )通信等管理工作;從CPU為PCL6045B運動(dòng)控制芯片,專(zhuān)門(mén)負責運動(dòng)控制的處理工作。PCL6045B與ARM的通信是靠讀寫(xiě)I/O總線(xiàn)上的幾個(gè)地址來(lái)進(jìn)行指令和數據的傳輸??刂葡到y硬件結構框圖如圖2所示。
1.3 ARM處理器與運動(dòng)控制芯片的連接
通過(guò)設置引腳IF0與IF1,PCL6045B芯片與不同的CPU相連,如表1所列。
本系統設置IF1:IF0=0:1,CPU連接如圖3所示。
2 嵌入式運動(dòng)控制器的軟件設計
本系統可根據被控對象的特征設計不同的模塊化用戶(hù)軟件,來(lái)滿(mǎn)足不同的運動(dòng)控制任務(wù)。模塊化軟件恰好是Linux操作系統的優(yōu)點(diǎn)。Linux還可以根據用戶(hù)的需求實(shí)現內核的裁減和定制,源碼開(kāi)放,網(wǎng)絡(luò )支持功能強大,價(jià)格上也更具有競爭優(yōu)勢等。所以該控制器選用Linux作為片上系統(SoC)。但是,Linux并不是一個(gè)實(shí)時(shí)操作系統,因此,通過(guò)實(shí)時(shí)內核補丁RTAI(Real Time Application In-terface),在硬件平臺的基礎上增加一個(gè)實(shí)時(shí)內核,將Linux內核當作它的優(yōu)先級*的任務(wù)執行,從而保證運動(dòng)控制系統的實(shí)時(shí)性。系統的控制軟件分為兩個(gè)區域:非實(shí)時(shí)域和實(shí)時(shí)域。非實(shí)時(shí)域是建立在普通Linux內核基礎上的,其主要包括系統初始化和通信模塊。
①系統初始化:進(jìn)行微處理器的硬件初始化,包括輸入/輸出接口的配置、具體總線(xiàn)通信方式的配置以及伺服系統相關(guān)的接口參數配置。
②通信模塊:負責運動(dòng)控制卡和上位機之間的坐標值、速度值、數控系統的I/O接口狀態(tài)、報警狀態(tài)以及數據鏈表的傳輸。
實(shí)時(shí)域建立在RTAI實(shí)時(shí)內核的基礎上。其實(shí)時(shí)任務(wù)通過(guò)實(shí)時(shí)進(jìn)程的方式來(lái)完成,一種為周期性(peri_odic)實(shí)時(shí)進(jìn)程,另一種為一次性(one shot)實(shí)時(shí)進(jìn)程。實(shí)時(shí)域主要包括如下4個(gè)周期性實(shí)時(shí)線(xiàn)程:
①狀態(tài)檢測線(xiàn)程(rt_monitor_thread)。本任務(wù)對設備運行狀態(tài)進(jìn)行檢測,負責從I/O端口讀入各個(gè)連接的I/O設備值,然后將狀態(tài)寫(xiě)入狀態(tài)檢測緩沖區中,對設備急停、伺服報警、限位