國內的運動控制器大致可以分為3類:運動控制器是運動控制系統的核心部件。
目前。只能在一些低速運行和對軌跡要求不高的輪廓運動控制場所應用。
第1類是以單片機等微處理器作為控制核心的運動控制器。這類運動控制器速度較慢、精度不高、利息相對較低。這類運動控制器結構比較簡單,
第2類是以專用芯片(ASIC作為核心處置器的運動控制器。大多只能輸出脈沖信號,工作於開環控制方式。由於這類控制器不能提供連續插補功能,也沒有前饋功能,特別是對於大量的小線段連續運動的場所不能使用這類控制器。以PC機作為信息處理平台,
第3類是基於PC總線的以DSP或FPGA 作為核心處置器的開放式運動控制器。這類開放式運動控制器以DSP芯片作為運動控制器的核心處置器。運動控制器以插件形式嵌入PC機,即“PC+運動控制器”模式。這樣的運動控制器具有信息處置能力強,開放水平高,運動軌跡控制准確,通用性好的特點。但是這種方式存在以下缺點:運動控制卡需要插入計算機主板的PCI或者ISA 插槽,因此每個具體應用都必須配置一台PC機作為上位機。這無疑對設備的體積、利息和運行環境都有一定的限制,難以獨立運行和小型化。
設計了一種基於ARM+DSP嵌入式運動控制器。該控制器將嵌入式CPU與專用運動控制芯片相結合,針對這些問題。將運動控制功能以功能模塊的方式嵌入到ARM主控板的架構,把不需要的設備擴充掉,既兼顧功能又節省成本。該控制器是一種可以脫離上位機單獨運行的一種獨立型運動控制器,具有良好的應用前景。
可以分別對ARM主控板和DSP運動控制板進行設計,嵌入式運動控制器的硬件主要包括兩個部分:ARM主控板和DSP運動控制板。這兩塊控制板通過通用IO口以總線的方式連接在一起。設計時。最后再調試。這種將ARM主控板和DSP運動控制板分開設計和調試的硬件方案,將設計難點分散,使設計和調試更簡單。
外擴存儲器和通用設備接口。ARM主控板的硬件結構框圖如圖1所示。本系統采用的ARM芯片為Samsung公司推出的1632位RISC處置器S3C2440A 主頻為400MHz最高頻率可達533MHzARM主控板以嵌入式處理器S3C2440A 為核心。
實現ARM主控板與運動控制板之間數據的實時雙向傳送;外部NA NDFlash存儲器(64MB用於存儲系統參數及運動指令;NORFlash存儲器(2MB用於存放系統運行順序;SDRA M存儲器(64MB用於存放臨時數據;通過串口、以太網接口、USB接口與上位機系統通信,通過通用IO接口與DSP運動控制板通信。實現兩者之間數據的傳送;通過LCD接口,實現320240分辨率液晶屏的圖形與字符顯示,並具有觸摸屏接口,提供友好的人機交互界面;通過IO擴展接口,提供可編程的數字IO通道;通過JTA G接口與PC機通信,實現系統運行順序的仿真調試及下載,軟件升級接口。
並實現兩軸到四軸直線差補、兩軸圓弧差補。所有插補計算由芯片完成,本系統DSP運動控制芯片選用一種功能十分強大的DSP運動控制芯片。芯片能夠控制四軸。上位機只需寫入圓弧的參數即可,其多軸插補控制功能特別優秀。系統硬件采用主從式雙CPU結構模式。主CPU為ARM處置器,負責鍵盤、顯示、網絡通信等管理工作;從CPU為yk8004運動控制芯片,專門負責運動控制的處置工作。yk8004與ARM通信是靠讀寫IO總線上的幾個地址來進行指令和數據的傳輸。控制系統硬件結構框圖如圖2所示。
來滿足不同的運動控制任務。模塊化軟件恰好是Linux操作系統的優點。Linux還可以根據用戶的需求實現內核的擴充和定制,本系統可根據被控對象的特征設計不同的模塊化用戶軟件。源碼開放,網絡支持功能強大,價格上也更具有競爭優勢等。所以該控制器選用Linux作為片上系統(SoC但是Linux並不是一個實時操作系統,因此,通過實時內核補丁RTA IRealTImeApplicatIn-teRFac硬件平台的基礎上增加一個實時內核,將Linux內核當作它優先級最低的任務執行,從而保證運動控制系統的實時性。系統的控制軟件分為兩個區域:非實時域和實時域。非實時域是建立在普通Linux內核基礎上的其主要包括系統初始化和通信模塊。
包括輸入/輸出接口的配置、具體總線通信方式的配置以及伺服系統相關的接口參數配置。 ①系統初始化:進行微處理器的硬件初始化。
②通信模塊:負責運動控制卡和上位機之間的坐標值、速度值、數控系統的IO接口狀態、報警狀態以及數據鏈表的傳輸。
一種為周期性(peri_od實時進程,實時域建立在RTA I實時內核的基礎上。其實時任務通過實時進程的方式來完成。另一種為一次性(onshot實時進程。實時域主要包括如下4個周期性實時線程:
負責從IO端口讀入各個連接的IO設備值,①狀態檢測線程(rt_monitor_thread本任務對設備運行狀態進行檢測。然后將狀態寫入狀態檢測緩沖區中,對設備急停、伺服報警、限位信號進行判斷,並進行相應的處置。
然后根據是直線或者圓弧進行插補,②插補線程(rt_interpolaTIon_thread從譯碼緩沖區中順序取得插補數據。插補得到下個周期應該到達的理論坐標值。
得到實際的位置,③位置控制線程VIPER50A(022Y)讀取計數器中編碼器的數值。並與插補器中的理論位置坐標作比較。根據差值調節PID參數,並將具體脈沖輸出數寫入對應的PWM口的脈沖數寄存器中。
從而實現運動控制器的運行、暫停、給定速度等狀態設置。 ④功能控制線程VIPER50A-22-E功能控制任務利用RTA I實時管道來傳遞命令和狀態信息的功能。通過管道的命令設置實現Linux操作系統對實時部分RTA I訪問。
軟件平台是系統應用順序開發的基礎。本系統軟件平台主要包括:ARM-Linux移植、串行接口驅動開發、USB接口驅動開發、LCD接口驅動開發、觸摸屏接口驅動開發、以太網接口驅動開發、文件系統的移植等。這些軟件的開發和移植在很多文獻中有詳細的說明。
必需編寫豐富的運動控制函數庫,通用運動控制器的功能主要取決於運動控制函數庫。要做成一個開放式的運動控制器。以滿足不同的應用要求。運動控制函數庫要為單軸及多軸的步進或伺服控制提供許多運動函數,如單軸驅動、兩軸直線插補、3軸直線插補、圓弧插補等等。另外,為了配合運動控制系統的開發,還編寫了一些輔助函數,如中斷處理、編碼器反饋、間隙彌補、通用開關量的輸入輸出等。這樣,用戶在開發應用順序時就不必再關心底層的東西,只需根據控制系統的要求編制人機界面,並調用運動控制函數庫中的函數,就可以開發出滿足要求的多軸運動控制系統。