摘 要:本文綜合運用嵌入式系統技術和運動控制技術,采用X86架構的PC104作為核心中央處理器的方案,詳細介紹了嵌入式運動控制器的硬件設計,及如何使用Windows CE Platform Builder開發平臺,進行裁減和定制嵌入式運動控制器的Windows CE操作系統平臺,進行軟件設計。
關鍵詞:嵌入式系統,運動控制器,自動控制
1 引言
目前,嵌入式技術已成為通訊、控制和消費類產品的發展方向,嵌入式系統主要由嵌入式處理器、相關支撐硬件、嵌入式操作系統及應用軟件系統等組成,它的開發應用已被列入國家重點科技發展計劃,以其體積小、功能強、價格低的優勢而得到日益廣泛的應用,已成為工業自動化應用的一種趨勢。
運動控制器技術,是綜合應用自動控制、計算機控制等相關技術,對機械傳動裝置中電機的位置、速度進行實時的控制管理,使運動部件按照預期的軌跡和規定的運動參數完成相應的動作。嵌入式結構的運動控制器把計算機嵌入到運動控制器中,能夠獨立運行,它與計算機之間的通信采用了可靠的總線連接方式(采用針式連接器) ,更加適合工業應用。
2 系統硬件平臺設計
嵌入式運動控制器主要包括兩個部分:嵌入式CPU主板和運動控制模塊[1][2][3][12]。運動控制模塊可采用固高科技有限公司的高性能運動控制板卡,在高性能運動模塊的基礎上,對嵌入式處理器部分有嚴格的要求,例如:對實時多任務有很強的支持能力,能完成多任務并且有較短的中斷響應時間;具有功能較強的存儲區保護功能;可擴展生長的處理器結構,能迅速地開發出滿足各種應用性能的嵌入式微處理器;功耗很低等等。
[align=center]

圖 1 PC104模塊[/align]
可選的方案包括:1)基于單片機,適合于數據量小、速度較低、功能簡單的現場控制,無法勝任要求高速、高精度的運動控制器。 2)基于ARM架構或其他微控制器,優勢在于簡單的設計和高效的指令集,但是目前對現有通用軟件的兼容性不理想,必須培訓專門的軟件人員。 3)PC104的X86架構,即X86體系結構的CPU,主要是Intel公司的CPU,也包括AMD、威盛、ICOP(昭營科技)等公司與其兼容的CPU。通過PC104總線,連接X86架構的PC機主板與運動控制板卡,組成嵌入式運動控制器。在非常成熟的運動控制板卡技術的基礎上,這種形式的嵌入式運動控制器實現簡單,開發時間較短。
因此選用了ICOP-6070嵌入式主板作為系統核心,具體接口見圖 1。除了核心控制模塊外,就是運動控制模塊,它是具體動作的執行者。嵌入式PC104主機板通過插件直接插裝在運動控制卡上,運控卡上有兩個DB62插座,連接到端子板上,再由端子板給出控制電機信號。由于運動控制器和計算機模塊之間分別采用插針式的連接,相互獨立,運動控制器和PC板都可以作為一個獨立的模塊,生產升級容易,維修方便,可靠性也相對較高。
圖 2為嵌入式PC104主板和運動控制卡之間機械連接示意圖。
[align=center]

圖 2 核心模塊與運控模塊的連接示意圖[/align]
系統的完整構建過程如下:
(1) 將ICOP-6070嵌入式主板與固高運動控制卡通過PC104接口裝在一起。
(2) 然后將外部輸入設備和輸出設備接到嵌入式主板上。
(3) 其次通過兩個根62PIN的數據線將固高IO端子板和固高控制卡接在一起。
最后將24V的輸入信號,輸入給固高IO端子板和嵌入式主板。
3 軟件平臺設計
工業嵌入式系統的主要指標是:實時性、高效率、安全穩定性與可靠性以及結構緊湊、易于剪裁、良好的開放性。可供嵌入式應用的圖形操作系統有多種,比如Windows CE、Palm OS等,而Palm OS一般只應用在手持設備上。適合工業環境應用(過程)標準的系統,目前有Windows CE 和Linux等幾種。
WinCE是微軟開發的多任務嵌入式操作系統,模塊化及可伸縮性、實時性能好,通信能力強大,支持很多種嵌入式CPU(包括X86,arm等)。選擇Windows CE .net嵌入式操作系統,作為本嵌入式運動控制系統的操作平臺,最主要考慮Windows操作簡單實用,多任務的操作,功能的強大,性能的穩定,最主要是Windows程序移植方便,熟悉Windows程序開發的人員,能夠迅速掌握Windows CE .net程序的開發,同時減少程序開發人員的難度。
3.1 操作系統平臺設計
為了能夠能在Windows CE .net操作系統,必須定制一個Windows CE .net操作系統平臺,平臺的生成可以使用Windows CE .net的工具Platform Builder 4.2。其生成平臺主要步驟如下:
(1) 將Windows CE .net 4.2的操作平臺裝入PC機。
(2) 將ICOP 6070的BSP程序安裝到PC機。
(3) 執行“Platform Builder”,進入平臺創建向導對話框,點擊“NEXT”接鈕。
在此對話框,須要為ICOP主板選擇“ICOP_VORTEX86”BSP程序。
(4) 繼續點取“NEXT”按鈕,在對話框中,可以選擇“Industrial Controller”功能項。
當嵌入式平臺創建成功后,則需要對此平臺進行編譯設置;在采用平臺創建向導生成的一個平臺后,可能此平臺存在不需要的文件信息,又或缺少相關文件。
為此,要對此平臺進行刪除、添加相關文件,配置相關編譯信息。
(1) 手動添加對存儲硬盤和FAT文件系統的支持。先在目錄顯示區中的“Device Drivers” ->“Storage Devices”->“Storage Devices”找到“ATAPI PCI/IDE Storage Block Driver”信息,在此欄上點擊鼠標右鍵,在彈出的對話框中,點取“Add to platform”一項,此時,此相關信息就被加入到平臺工程中。采用同樣方法,在目錄顯示區中的“Core OS” ->“Display based devices”->“File Systems and Data Store” ->“Store Manager”找到“FAT File System”信息,在此欄上點擊鼠標右鍵,在彈出的對話框中,點取“Add to platform”,相關信息就被加入到平臺工程中。
(2) 需向平臺工程中加入對Windows SDK和MFC類庫的支持. MFC類庫支持在目錄顯示區中的“Core OS” ->“Display based devices”->“Applications and Services Development” ->“Microfot Foundation Classes(MFC)”。
(3) 嵌入式平臺的工程基本功能添加完畢后,就可以編譯此平臺。在編譯平臺之前,先進行平臺設置,在“Platform Settings”對話框,選中選項“Enable Images Larger than 32MB”,保存更改設置。
(4) 編譯平臺,生成Windows CE .NET操作系統的映像文件 NK.bin。
(5) 完成了嵌入式平臺的工程,可以將NK.bin下載到主板運行,也以通過網絡下載到嵌入式主板上運行。
3.2 嵌入式運動控制器驅動程序
在使用運動控制器之前,必須先安裝運動控制器的驅動程序,這樣才可以正確使用運動控制器,加入此驅動程序的步驟如下:
(1) 將運動控制器驅動程序文件GooGolDriver.dll拷貝到平臺的Release目錄下。
(2) 在平臺編輯環境中打開工程中project.reg文件,將如下文本內容復制到此文件中。
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GooGolDriver]
"Dll"="GooGolDriver.dll"
"Order"=dword:0
"Index"=dword:1
"Prefix"="GOL"
(3) 在平臺編輯環境中打開工程中project.bib文件,將如下文本內容復制到此文件中。
GooGolDriver.dll $(_FLATRELEASEDIR)\GooGolDriver.dll NK SH
(4) 上述操作可用于注冊驅動程序和將驅動程序GooGolDriver.dll打包到映像NK.bin。驅動程序文件GooGolDriver.dll導出十個函數,用于提供給系統調用,函數分別如下:GOL_Close,GOL_Deinit,GOL_Init,GOL_IOControl,GOL_Open,GOL_PowerDown,GOL_PowerUp,GOL_Read, GOL_Seek, GOL_Write。這十個函數不能夠直接調用,Windows CE .NET有專用的API函數可以調用它們。
3.3 運動控制器動態鏈接庫安裝:
在使用運動控制器之前,須先安裝運動控制器的動態鏈接庫,才可以正確使用運動控制器。動態鏈接庫包含對運動控制器的運動函數指令,如直線運動指令GT_LnXYZ,圓弧運動指令GT_ArcXY等等。加入此驅動程序的步驟如下:
(1) 將文件gtdll.dll拷貝到平臺的Release目錄下。
(2) 在平臺編輯環境中打開工程中project.bib文件,將如下文本內容復制到此文件中。
gtdll.dll $(_FLATRELEASEDIR)\gtdll.dll NK SH
(3) 上述操作可用于注冊驅動程序和將驅動程序GooGolDriver.dll打包到映像NK.bin中。
4 控制軟件的設計
構建了系統軟件后,還需要進行應用軟件的開發設計。嵌入式軟件的開發平臺有多種,較為常見的開發平臺為:eMbedded Visual C++,與Windows操作系統下的開發環境Visual C++非常類似,所以熟悉windows操作系統Visual C++開發環境的人能夠較快掌握eMbedded Visual C++。
使用eMbedded Visual C++開發之前先安裝嵌入式操作平臺的SDK,否則無法打開eMbedded Visual C++。構建嵌入式操作平臺的SDK操作如下:
(1)Platform Builder平臺開發環境中,點取“Project”->“Configure SDK”,配置將生成的SDK。在配置對話框中,可以修改將導出的SDK的文件名及其存入目錄、相關信息。SDK的文件名為ICOP6072_SDK.msi。
(2)配置好SDK導出的相關信息后,再點取“Project”->“Build SDK”,在此對話框中,可以導出一個SDK,在配置文件設置目錄下,創建一個ICOP6072_SDK.msi的文件。
(3)在Windows操作系統下雙擊ICOP6072_SDK.msi文件,安裝Icop 5072的嵌入式系統的SDK。
(4)至此,嵌入式系統的SDK安裝完畢,eMbedded Visual C++可以在此SDK的基礎下開發程序。
本軟件最主要的功能通過運動控制器的運動指令的調用,來實現在運動控制器的使用,滿足具體的應用中的控制過程。
工業控制軟件是工控系統中用于控制工業生產的軟件部分,其安全性和可靠性的要求是非常高了。本控制軟件除了具有工業控制軟件的基本特點之外,還需有具有以下特點:系統軟件的長期穩定工作的特性;控制軟件實時性;控制軟件操作的實用性、簡單性;
根據工業控制軟件特點,因此本軟件中沒有豐富的圖形顯示界面,主要從功能實現、軟件穩定性、控制的實時性、軟件操作簡單上編寫。以能夠完好的達到功能演示為目的編寫此程序。
在對嵌入式運動控制器操作之前,先必須初始化嵌入式運動控制器;為了更好的反應當前加工狀態,須要實時讀取當前加工機床的實際位置,根據此位置信息,把實際的加工情況用簡單的三維圖形顯示出來。
5 小結
傳統基于PC的運動控制器,采用軟件實現的控制方法,無論性能如何提高,也不能勝任越來越高的高速高精度要求。嵌入式運動控制器的研究是一個系統的過程,為了確保性能的穩定和可靠性,必須對軟硬件的設計有一個全面地認識。本文提出的PC104設計方案解決了目前市場對嵌入式運動控制器的強大需求。本文的研究內容將對今后的研究工作起到一定的指導作用。
6 結束語
本系統是固高科技有限公司目前在嵌入式運動控制領域開發出的一套功能強、性能穩定、體積小、價格低、適合工業控制的運動控制系統,是在傳統PC-Based 運動控制器基礎上的重要創新。本文的創新在于:目前對嵌入式控制器的應用介紹得較多,沒能夠對核心的研發技術進行研究;另外本文對嵌入式系統操作系統平臺Windows CE的研究,使得客戶現有的Windows下編譯的應用軟件,可以很方便的移植到CE下使用,減少開發周期,降低開發成本,快速見效益。
參考文獻
[1] 趙明富, 嵌入式系統的總線技術及其應用,微計算機信息,2005,21(06Z).-42-44,3
[2] 余張國、李眾立、李磊民,基于ARM和MCX314A的嵌入式運動控制器,微計算機信息,2005,16
[3] 王田苗,嵌入式系統設計與實例開發. 清華大學出版社, 2002:36~44
[4] 居效密、張中能, 嵌入式數據庫在數據密集型軟件中的應用,計算機工程. 2003, 11:186~189
[5] 張東升, 基于嵌入式技術的數據采集器在通信監控系統中的應用. 哈爾濱工業大學碩士論文. 2003:8~14
[6] 蔣亞群、張春元, ARM微處理器體系結構及其嵌入式SOC, 計算機工程, 2002, 28(11): 4~6
[7] 張連明、霍迎輝,嵌入式系統的設計與開發. 國外電子元器件. 2004, (1):20~21
[8] 胡安平. PC104在工程中的應用. 電子產品世界. 2002, (8):60~61
[9] 魏忠, 蔡勇, 雷紅衛. 嵌入式開發詳解. 電子工業出版社, 2003:30~56
[10] Abraham Silberschatz, Peter Galvin, Greg Gagne. Applied operating system concepts. John Wiley & Sons, Inc, 2000:100~125
[11] Jack Ganssle. Changes in Embedded Design Methodology. Embedded System Programming. 1999, 9:35~40
[12] J.E.Coolirg. Software design for real-time Systems. Chapman and Hall World Publishing Crop, 1998:200~221
基于嵌入式運動控制器系統的設計與開發