摘 要:本文綜合運用嵌入式系統(tǒng)技術(shù)和運動控制技術(shù),采用X86架構(gòu)的PC104作為核心中央處理器的方案,詳細(xì)介紹了嵌入式運動控制器的硬件設(shè)計,及如何使用Windows CE Platform Builder開發(fā)平臺,進(jìn)行裁減和定制嵌入式運動控制器的Windows CE操作系統(tǒng)平臺,進(jìn)行軟件設(shè)計。
關(guān)鍵詞:嵌入式系統(tǒng),運動控制器,自動控制
1 引言
目前,嵌入式技術(shù)已成為通訊、控制和消費類產(chǎn)品的發(fā)展方向,嵌入式系統(tǒng)主要由嵌入式處理器、相關(guān)支撐硬件、嵌入式操作系統(tǒng)及應(yīng)用軟件系統(tǒng)等組成,它的開發(fā)應(yīng)用已被列入國家重點科技發(fā)展計劃,以其體積小、功能強、價格低的優(yōu)勢而得到日益廣泛的應(yīng)用,已成為工業(yè)自動化應(yīng)用的一種趨勢。
運動控制器技術(shù),是綜合應(yīng)用自動控制、計算機控制等相關(guān)技術(shù),對機械傳動裝置中電機的位置、速度進(jìn)行實時的控制管理,使運動部件按照預(yù)期的軌跡和規(guī)定的運動參數(shù)完成相應(yīng)的動作。嵌入式結(jié)構(gòu)的運動控制器把計算機嵌入到運動控制器中,能夠獨立運行,它與計算機之間的通信采用了可靠的總線連接方式(采用針式連接器) ,更加適合工業(yè)應(yīng)用。
2 系統(tǒng)硬件平臺設(shè)計
嵌入式運動控制器主要包括兩個部分:嵌入式CPU主板和運動控制模塊[1][2][3][12]。運動控制模塊可采用固高科技有限公司的高性能運動控制板卡,在高性能運動模塊的基礎(chǔ)上,對嵌入式處理器部分有嚴(yán)格的要求,例如:對實時多任務(wù)有很強的支持能力,能完成多任務(wù)并且有較短的中斷響應(yīng)時間;具有功能較強的存儲區(qū)保護(hù)功能;可擴展生長的處理器結(jié)構(gòu),能迅速地開發(fā)出滿足各種應(yīng)用性能的嵌入式微處理器;功耗很低等等。
[align=center]
圖 1 PC104模塊[/align]
可選的方案包括:1)基于單片機,適合于數(shù)據(jù)量小、速度較低、功能簡單的現(xiàn)場控制,無法勝任要求高速、高精度的運動控制器。 2)基于ARM架構(gòu)或其他微控制器,優(yōu)勢在于簡單的設(shè)計和高效的指令集,但是目前對現(xiàn)有通用軟件的兼容性不理想,必須培訓(xùn)專門的軟件人員。 3)PC104的X86架構(gòu),即X86體系結(jié)構(gòu)的CPU,主要是Intel公司的CPU,也包括AMD、威盛、ICOP(昭營科技)等公司與其兼容的CPU。通過PC104總線,連接X86架構(gòu)的PC機主板與運動控制板卡,組成嵌入式運動控制器。在非常成熟的運動控制板卡技術(shù)的基礎(chǔ)上,這種形式的嵌入式運動控制器實現(xiàn)簡單,開發(fā)時間較短。
因此選用了ICOP-6070嵌入式主板作為系統(tǒng)核心,具體接口見圖 1。除了核心控制模塊外,就是運動控制模塊,它是具體動作的執(zhí)行者。嵌入式PC104主機板通過插件直接插裝在運動控制卡上,運控卡上有兩個DB62插座,連接到端子板上,再由端子板給出控制電機信號。由于運動控制器和計算機模塊之間分別采用插針式的連接,相互獨立,運動控制器和PC板都可以作為一個獨立的模塊,生產(chǎn)升級容易,維修方便,可靠性也相對較高。
圖 2為嵌入式PC104主板和運動控制卡之間機械連接示意圖。
[align=center]
圖 2 核心模塊與運控模塊的連接示意圖[/align]
系統(tǒng)的完整構(gòu)建過程如下:
(1) 將ICOP-6070嵌入式主板與固高運動控制卡通過PC104接口裝在一起。
(2) 然后將外部輸入設(shè)備和輸出設(shè)備接到嵌入式主板上。
?。?) 其次通過兩個根62PIN的數(shù)據(jù)線將固高IO端子板和固高控制卡接在一起。
最后將24V的輸入信號,輸入給固高IO端子板和嵌入式主板。
3 軟件平臺設(shè)計
工業(yè)嵌入式系統(tǒng)的主要指標(biāo)是:實時性、高效率、安全穩(wěn)定性與可靠性以及結(jié)構(gòu)緊湊、易于剪裁、良好的開放性??晒┣度胧綉?yīng)用的圖形操作系統(tǒng)有多種,比如Windows CE、Palm OS等,而Palm OS一般只應(yīng)用在手持設(shè)備上。適合工業(yè)環(huán)境應(yīng)用(過程)標(biāo)準(zhǔn)的系統(tǒng),目前有Windows CE 和Linux等幾種。
WinCE是微軟開發(fā)的多任務(wù)嵌入式操作系統(tǒng),模塊化及可伸縮性、實時性能好,通信能力強大,支持很多種嵌入式CPU(包括X86,arm等)。選擇Windows CE .net嵌入式操作系統(tǒng),作為本嵌入式運動控制系統(tǒng)的操作平臺,最主要考慮Windows操作簡單實用,多任務(wù)的操作,功能的強大,性能的穩(wěn)定,最主要是Windows程序移植方便,熟悉Windows程序開發(fā)的人員,能夠迅速掌握Windows CE .net程序的開發(fā),同時減少程序開發(fā)人員的難度。
3.1 操作系統(tǒng)平臺設(shè)計
為了能夠能在Windows CE .net操作系統(tǒng),必須定制一個Windows CE .net操作系統(tǒng)平臺,平臺的生成可以使用Windows CE .net的工具Platform Builder 4.2。其生成平臺主要步驟如下:
?。?) 將Windows CE .net 4.2的操作平臺裝入PC機。
?。?) 將ICOP 6070的BSP程序安裝到PC機。
?。?) 執(zhí)行“Platform Builder”,進(jìn)入平臺創(chuàng)建向?qū)υ捒颍c擊“NEXT”接鈕。
在此對話框,須要為ICOP主板選擇“ICOP_VORTEX86”BSP程序。
?。?) 繼續(xù)點取“NEXT”按鈕,在對話框中,可以選擇“Industrial Controller”功能項。
當(dāng)嵌入式平臺創(chuàng)建成功后,則需要對此平臺進(jìn)行編譯設(shè)置;在采用平臺創(chuàng)建向?qū)傻囊粋€平臺后,可能此平臺存在不需要的文件信息,又或缺少相關(guān)文件。
為此,要對此平臺進(jìn)行刪除、添加相關(guān)文件,配置相關(guān)編譯信息。
(1) 手動添加對存儲硬盤和FAT文件系統(tǒng)的支持。先在目錄顯示區(qū)中的“Device Drivers” ->“Storage Devices”->“Storage Devices”找到“ATAPI PCI/IDE Storage Block Driver”信息,在此欄上點擊鼠標(biāo)右鍵,在彈出的對話框中,點取“Add to platform”一項,此時,此相關(guān)信息就被加入到平臺工程中。采用同樣方法,在目錄顯示區(qū)中的“Core OS” ->“Display based devices”->“File Systems and Data Store” ->“Store Manager”找到“FAT File System”信息,在此欄上點擊鼠標(biāo)右鍵,在彈出的對話框中,點取“Add to platform”,相關(guān)信息就被加入到平臺工程中。
?。?) 需向平臺工程中加入對Windows SDK和MFC類庫的支持. MFC類庫支持在目錄顯示區(qū)中的“Core OS” ->“Display based devices”->“Applications and Services Development” ->“Microfot Foundation Classes(MFC)”。
(3) 嵌入式平臺的工程基本功能添加完畢后,就可以編譯此平臺。在編譯平臺之前,先進(jìn)行平臺設(shè)置,在“Platform Settings”對話框,選中選項“Enable Images Larger than 32MB”,保存更改設(shè)置。
?。?) 編譯平臺,生成Windows CE .NET操作系統(tǒng)的映像文件 NK.bin。
(5) 完成了嵌入式平臺的工程,可以將NK.bin下載到主板運行,也以通過網(wǎng)絡(luò)下載到嵌入式主板上運行。
3.2 嵌入式運動控制器驅(qū)動程序
在使用運動控制器之前,必須先安裝運動控制器的驅(qū)動程序,這樣才可以正確使用運動控制器,加入此驅(qū)動程序的步驟如下:
?。?) 將運動控制器驅(qū)動程序文件GooGolDriver.dll拷貝到平臺的Release目錄下。
?。?) 在平臺編輯環(huán)境中打開工程中project.reg文件,將如下文本內(nèi)容復(fù)制到此文件中。
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GooGolDriver]
"Dll"="GooGolDriver.dll"
"Order"=dword:0
"Index"=dword:1
"Prefix"="GOL"
?。?) 在平臺編輯環(huán)境中打開工程中project.bib文件,將如下文本內(nèi)容復(fù)制到此文件中。
GooGolDriver.dll $(_FLATRELEASEDIR)\GooGolDriver.dll NK SH
?。?) 上述操作可用于注冊驅(qū)動程序和將驅(qū)動程序GooGolDriver.dll打包到映像NK.bin。驅(qū)動程序文件GooGolDriver.dll導(dǎo)出十個函數(shù),用于提供給系統(tǒng)調(diào)用,函數(shù)分別如下:GOL_Close,GOL_Deinit,GOL_Init,GOL_IOControl,GOL_Open,GOL_PowerDown,GOL_PowerUp,GOL_Read, GOL_Seek, GOL_Write。這十個函數(shù)不能夠直接調(diào)用,Windows CE .NET有專用的API函數(shù)可以調(diào)用它們。
3.3 運動控制器動態(tài)鏈接庫安裝:
在使用運動控制器之前,須先安裝運動控制器的動態(tài)鏈接庫,才可以正確使用運動控制器。動態(tài)鏈接庫包含對運動控制器的運動函數(shù)指令,如直線運動指令GT_LnXYZ,圓弧運動指令GT_ArcXY等等。加入此驅(qū)動程序的步驟如下:
?。?) 將文件gtdll.dll拷貝到平臺的Release目錄下。
?。?) 在平臺編輯環(huán)境中打開工程中project.bib文件,將如下文本內(nèi)容復(fù)制到此文件中。
gtdll.dll $(_FLATRELEASEDIR)\gtdll.dll NK SH
?。?) 上述操作可用于注冊驅(qū)動程序和將驅(qū)動程序GooGolDriver.dll打包到映像NK.bin中。
4 控制軟件的設(shè)計
構(gòu)建了系統(tǒng)軟件后,還需要進(jìn)行應(yīng)用軟件的開發(fā)設(shè)計。嵌入式軟件的開發(fā)平臺有多種,較為常見的開發(fā)平臺為:eMbedded Visual C++,與Windows操作系統(tǒng)下的開發(fā)環(huán)境Visual C++非常類似,所以熟悉windows操作系統(tǒng)Visual C++開發(fā)環(huán)境的人能夠較快掌握eMbedded Visual C++。
使用eMbedded Visual C++開發(fā)之前先安裝嵌入式操作平臺的SDK,否則無法打開eMbedded Visual C++。構(gòu)建嵌入式操作平臺的SDK操作如下:
(1)Platform Builder平臺開發(fā)環(huán)境中,點取“Project”->“Configure SDK”,配置將生成的SDK。在配置對話框中,可以修改將導(dǎo)出的SDK的文件名及其存入目錄、相關(guān)信息。SDK的文件名為ICOP6072_SDK.msi。
?。?)配置好SDK導(dǎo)出的相關(guān)信息后,再點取“Project”->“Build SDK”,在此對話框中,可以導(dǎo)出一個SDK,在配置文件設(shè)置目錄下,創(chuàng)建一個ICOP6072_SDK.msi的文件。
?。?)在Windows操作系統(tǒng)下雙擊ICOP6072_SDK.msi文件,安裝Icop 5072的嵌入式系統(tǒng)的SDK。
?。?)至此,嵌入式系統(tǒng)的SDK安裝完畢,eMbedded Visual C++可以在此SDK的基礎(chǔ)下開發(fā)程序。
本軟件最主要的功能通過運動控制器的運動指令的調(diào)用,來實現(xiàn)在運動控制器的使用,滿足具體的應(yīng)用中的控制過程。
工業(yè)控制軟件是工控系統(tǒng)中用于控制工業(yè)生產(chǎn)的軟件部分,其安全性和可靠性的要求是非常高了。本控制軟件除了具有工業(yè)控制軟件的基本特點之外,還需有具有以下特點:系統(tǒng)軟件的長期穩(wěn)定工作的特性;控制軟件實時性;控制軟件操作的實用性、簡單性;
根據(jù)工業(yè)控制軟件特點,因此本軟件中沒有豐富的圖形顯示界面,主要從功能實現(xiàn)、軟件穩(wěn)定性、控制的實時性、軟件操作簡單上編寫。以能夠完好的達(dá)到功能演示為目的編寫此程序。
在對嵌入式運動控制器操作之前,先必須初始化嵌入式運動控制器;為了更好的反應(yīng)當(dāng)前加工狀態(tài),須要實時讀取當(dāng)前加工機床的實際位置,根據(jù)此位置信息,把實際的加工情況用簡單的三維圖形顯示出來。
5 小結(jié)
傳統(tǒng)基于PC的運動控制器,采用軟件實現(xiàn)的控制方法,無論性能如何提高,也不能勝任越來越高的高速高精度要求。嵌入式運動控制器的研究是一個系統(tǒng)的過程,為了確保性能的穩(wěn)定和可靠性,必須對軟硬件的設(shè)計有一個全面地認(rèn)識。本文提出的PC104設(shè)計方案解決了目前市場對嵌入式運動控制器的強大需求。本文的研究內(nèi)容將對今后的研究工作起到一定的指導(dǎo)作用。
6 結(jié)束語
本系統(tǒng)是固高科技有限公司目前在嵌入式運動控制領(lǐng)域開發(fā)出的一套功能強、性能穩(wěn)定、體積小、價格低、適合工業(yè)控制的運動控制系統(tǒng),是在傳統(tǒng)PC-Based 運動控制器基礎(chǔ)上的重要創(chuàng)新。本文的創(chuàng)新在于:目前對嵌入式控制器的應(yīng)用介紹得較多,沒能夠?qū)诵牡难邪l(fā)技術(shù)進(jìn)行研究;另外本文對嵌入式系統(tǒng)操作系統(tǒng)平臺Windows CE的研究,使得客戶現(xiàn)有的Windows下編譯的應(yīng)用軟件,可以很方便的移植到CE下使用,減少開發(fā)周期,降低開發(fā)成本,快速見效益。
參考文獻(xiàn)
[1] 趙明富, 嵌入式系統(tǒng)的總線技術(shù)及其應(yīng)用,微計算機信息,2005,21(06Z).-42-44,3
[2] 余張國、李眾立、李磊民,基于ARM和MCX314A的嵌入式運動控制器,微計算機信息,2005,16
[3] 王田苗,嵌入式系統(tǒng)設(shè)計與實例開發(fā). 清華大學(xué)出版社, 2002:36~44
[4] 居效密、張中能, 嵌入式數(shù)據(jù)庫在數(shù)據(jù)密集型軟件中的應(yīng)用,計算機工程. 2003, 11:186~189
[5] 張東升, 基于嵌入式技術(shù)的數(shù)據(jù)采集器在通信監(jiān)控系統(tǒng)中的應(yīng)用. 哈爾濱工業(yè)大學(xué)碩士論文. 2003:8~14
[6] 蔣亞群、張春元, ARM微處理器體系結(jié)構(gòu)及其嵌入式SOC, 計算機工程, 2002, 28(11): 4~6
[7] 張連明、霍迎輝,嵌入式系統(tǒng)的設(shè)計與開發(fā). 國外電子元器件. 2004, (1):20~21
[8] 胡安平. PC104在工程中的應(yīng)用. 電子產(chǎn)品世界. 2002, (8):60~61
[9] 魏忠, 蔡勇, 雷紅衛(wèi). 嵌入式開發(fā)詳解. 電子工業(yè)出版社, 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
基于嵌入式運動控制器系統(tǒng)的設(shè)計與開發(fā)