嵌入式四軸運(yùn)動(dòng)控制器:融合S3C2440與專用DSP技術(shù)
運(yùn)動(dòng)控制系統(tǒng)已被廣泛應(yīng)用于工業(yè)控制領(lǐng)域。近年來(lái),工業(yè)控制對(duì)運(yùn)動(dòng)控制系統(tǒng)的要求越來(lái)越高。傳統(tǒng)的基于PC及低端微控制器日漸暴露出高成本、高消耗、低可靠等問(wèn)題,已經(jīng)不能滿足現(xiàn)代制造的要求 。隨著嵌入式技術(shù)的日益成熟,嵌人式運(yùn)動(dòng)控制器已經(jīng)初露鋒芒?;贏RM技術(shù)的微處理器具有體積小、低成本、低功耗的特點(diǎn),決定其在運(yùn)動(dòng)控制領(lǐng)域具有良好的發(fā)展前景。
PCL6045BL是一種新型專用DSP運(yùn)動(dòng)控制芯片,它具有強(qiáng)大的數(shù)據(jù)處理能力和較高的運(yùn)行速度,可以實(shí)現(xiàn)高精度的多軸伺服控制。為解決精密制造對(duì)低成本、可移植性強(qiáng)的通用型多軸數(shù)控系統(tǒng)的迫切需求,文中給出一種基于ARM 微處理器S3C2440與DSP運(yùn)動(dòng)控制芯片PCL6045BL構(gòu)成的嵌入式四軸運(yùn)動(dòng)控制器。該運(yùn)動(dòng)控制器具有高性能、低成本、體積小、可獨(dú)立運(yùn)行等特點(diǎn),可以滿足運(yùn)動(dòng)控制系統(tǒng)高速、高精度的 要求。它可廣泛應(yīng)用于雕刻機(jī)、機(jī)器人、繡花機(jī)以及數(shù)控加工等工業(yè)控制領(lǐng)域。
為解決精密制造對(duì)低成本、可移植性強(qiáng)的通用型多軸數(shù)控系統(tǒng)的迫切需求,給出一種基于ARM微處理器S3C2440和專用DSP運(yùn)動(dòng)控制芯片PCL65045BL組合的嵌入式四軸運(yùn)動(dòng)控制器。硬件上該控制器采用ARM DSP的主從式雙CPU結(jié)構(gòu),結(jié)合ARM在人機(jī)界面顯示、通信接口方面的優(yōu)勢(shì)以及PCL6045BL高控制精度的優(yōu)點(diǎn)。軟件上在S3C2440上移植μC/OS-II實(shí)時(shí)操作系統(tǒng)來(lái)管理運(yùn)動(dòng)控制系統(tǒng)。該控制系統(tǒng)通用性較強(qiáng),可廣泛應(yīng)用于雕刻機(jī)、機(jī)器人、繡花機(jī)以及數(shù) 控加工等工業(yè)控制領(lǐng)域。
1 系統(tǒng)總體設(shè)計(jì)
嵌入式四軸運(yùn)動(dòng)控制器主要由硬件部分和軟件部分構(gòu)成。
硬件主要包括S3C2440嵌入式主控板和PCL6045BL運(yùn)動(dòng)控制板兩個(gè)部分。S3C2440嵌入式主控板和PCL6045BL運(yùn)動(dòng)控制板之間通過(guò)通用的IDE通信接口進(jìn)行連接。
軟件方面在硬件平臺(tái)的基礎(chǔ)上移植S3C2440實(shí)時(shí)嵌入式操作系統(tǒng),設(shè)計(jì)Boot Loader、外設(shè)驅(qū)動(dòng)以及運(yùn)動(dòng)控制系統(tǒng)的應(yīng)用程序。采用上述的軟硬件平臺(tái),嵌入式運(yùn)動(dòng)控制器可以達(dá)到開放性能好、精度高的要求。本嵌入式四軸運(yùn)動(dòng)控制器的結(jié)構(gòu)如圖1所示。
ARM具有豐富的片內(nèi)外圍電路,如USB接口、IIS接口、LCD控制器等,在人機(jī)界面的顯示、通信接口以及系統(tǒng)移植方面具有更強(qiáng)大的功能。PCL6045BL運(yùn)動(dòng)控制芯片速度快,可靠性高,性能好,在運(yùn)動(dòng)控制方面有很大的優(yōu)勢(shì)。
實(shí)時(shí)操作系統(tǒng)μC/OS-II包含了實(shí)時(shí)內(nèi)核、任務(wù)管理、時(shí)間管理、任務(wù)間通信同步和內(nèi)存管理等功能,可以使各個(gè)任務(wù)獨(dú)立工作,互不干涉,很容易實(shí)現(xiàn)準(zhǔn)時(shí)而且無(wú)誤地執(zhí)行,使實(shí)時(shí)應(yīng)用程序的設(shè)計(jì)和擴(kuò)展變得容易,使應(yīng)用程序的設(shè)計(jì)過(guò)程大為減化 。將S3C2440處理器、PCL6045BL 以及μC/OS-II三者的優(yōu)勢(shì)應(yīng)用到本嵌入式四軸運(yùn)動(dòng)控制器中可以使其具有強(qiáng)大的功能,并縮短開發(fā)時(shí)間。
本嵌入式四軸運(yùn)動(dòng)控制器以S3C2440為主控平臺(tái),在ARM上移植μC/OS-II實(shí)時(shí)操作系統(tǒng)來(lái)進(jìn)行人機(jī)界面的顯示、I/O的管理、任務(wù)問(wèn)的通信、指令的編譯等工作。PCL6045BL運(yùn)動(dòng)控制模塊主要負(fù)責(zé)位置控制,插補(bǔ)驅(qū)動(dòng),速度控制。用戶的指令通過(guò)S3C2440指令編譯系統(tǒng)的編譯,通過(guò)與PCL6045BL之問(wèn)的專用通信接口來(lái)控制DSP運(yùn)動(dòng)控制芯片發(fā)出脈沖以達(dá)到使伺服電機(jī)高速運(yùn)行。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 系統(tǒng)硬件平臺(tái)設(shè)計(jì)
在控制系統(tǒng)中,以S3C2440處理器為主控,PCL6045BL運(yùn)動(dòng)控制芯片為從CPU,構(gòu)建的嵌入式運(yùn)動(dòng)控制器結(jié)構(gòu)如圖2所示。
ARM DSP的嵌入式四軸運(yùn)動(dòng)控制器設(shè)計(jì)圖2 系統(tǒng)硬件
S3C2440是一款16/32位ARM920T RISC處理器,它實(shí)現(xiàn)了MMU、AMBA總線和獨(dú)立的16 KB指令和16 KB數(shù)據(jù)哈佛結(jié)構(gòu)的緩存,每個(gè)緩存均為8個(gè)字長(zhǎng)度的流水線。S3C2440提供全面的、通用的片上外設(shè),不需要配置額外的部件。PCL6045BL運(yùn)動(dòng)控制芯片,由NPM公司生產(chǎn),是一種通過(guò)總線接收CPU命令、并產(chǎn)生脈沖控制步進(jìn)電機(jī)或脈沖驅(qū)動(dòng)型伺服電機(jī)的CMOS大規(guī)模集成芯片,可提供多種輸出運(yùn)動(dòng)控制功能,包括連續(xù)、定長(zhǎng)、回原點(diǎn)等輸出方式。PCL6045BL可以實(shí)現(xiàn)2~4軸線性插補(bǔ)及任意兩軸圓弧插補(bǔ)。在這種主從結(jié)構(gòu)框架基礎(chǔ)上,主CPU S3C2440主要負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)、人機(jī)界面的顯示、網(wǎng)絡(luò)通信等管理工作。從CPU PCL6045BL輸出的脈沖發(fā)送給4個(gè)軸的伺服驅(qū)動(dòng)器。S3C2440只需要通過(guò)發(fā)送簡(jiǎn)單的指令給PCL6045BL,便可實(shí)現(xiàn)各種控制功能。
2.2 ARM 與PCL6045BL的連接
PCL6045 BL與ARM的通信是通過(guò)讀寫I/O總線上的幾個(gè)地址來(lái)進(jìn)行指令和數(shù)據(jù)的傳輸。PCL6045BL每個(gè)軸的內(nèi)部寄存器地址由A0、A1 和A2地址線輸人決定,其控制地址范圍由輸入端子A3和A4進(jìn)行選擇。因此在這種主從結(jié)構(gòu)的設(shè)計(jì)中,ARM與PCL6045BL的連接如圖3所示。
ARM DSP的嵌入式四軸運(yùn)動(dòng)控制器設(shè)計(jì)圖3 PCL6045BL與S3C2440的接口電路
2.3 I/O接口電路
嵌入式四軸運(yùn)動(dòng)控制器與伺服電機(jī)之間是通過(guò)I/O接口電路進(jìn)行連接的。I/O接口電路主要任務(wù)是完成輸入信號(hào)的光電隔離以及對(duì)輸出脈沖的驅(qū)動(dòng)。設(shè)計(jì)中采用光電耦合器將PCL6045BL芯片與后面的伺服電機(jī)驅(qū)動(dòng)器以及其他控制反饋等線路隔離。由于光耦合器輸入輸出問(wèn)互相隔離,電信號(hào)傳輸具有單向性等特點(diǎn),因而具有良好的電絕緣能力和抗干擾能力。又由于光耦合器的輸入端屬于電流型工作的低阻元件,因而具有很強(qiáng)的共模抑制能力。將PCL6045BL的輸出信號(hào)(如CP、CW等)和輸入信號(hào)(如報(bào)警、限位等)都使用光耦器件與PCL6045BL隔離,這樣能有效地防止干擾信號(hào)進(jìn)入主芯片損壞PCL6045BL。
3 軟件設(shè)計(jì)
系統(tǒng)軟件部分由μC/OS-II實(shí)時(shí)嵌入式操作系統(tǒng)及相關(guān)應(yīng)用軟件組成。μC/OS-II實(shí)時(shí)嵌入式操作系統(tǒng)僅僅提供了一個(gè)任務(wù)調(diào)度的實(shí)時(shí)內(nèi)核,因而需要自行開發(fā)一系列與系統(tǒng)運(yùn)行相關(guān)的設(shè)備驅(qū)動(dòng)程序、API函數(shù)及應(yīng)用程序,才能將μC/OS-II擴(kuò)展為一個(gè)完整、實(shí)用的實(shí)時(shí)操作系統(tǒng)。
3.1 Boot Loader的設(shè)計(jì)
嵌入式系統(tǒng)中,通常并沒(méi)有像BIOS那樣的固件程序,因此整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由Boot Loader來(lái)完成。Boot Loader是系統(tǒng)加電后運(yùn)行的段代碼,負(fù)責(zé)初始化系統(tǒng)并啟動(dòng)操縱系統(tǒng),相當(dāng)于PC機(jī)的程序。Boot Loader初始化硬件設(shè)備,建立內(nèi)存空間的映射圖,為終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。
Boot Loader分為階段1和階段2兩個(gè)部分,與CPU核以及存儲(chǔ)設(shè)備密切相關(guān)的處理工作通常都放在階段1中,且可以用匯編語(yǔ)言來(lái)實(shí)現(xiàn);而階段2則通常用C語(yǔ)言來(lái)實(shí)現(xiàn)一般的流程以及對(duì)板級(jí)的一些驅(qū)動(dòng)支持。
階段1主要進(jìn)行定義入口、設(shè)置中斷向量、系統(tǒng)寄存器配置、初始化寄存器等操作。而階段2主要完成調(diào)用初始化函數(shù)、初始化閃存設(shè)備、初始化內(nèi)存分配函數(shù)等操作。Boot Loader是嵌入式系統(tǒng)軟件開發(fā)的個(gè)環(huán)節(jié),把實(shí)時(shí)操作系統(tǒng)和硬件平臺(tái)緊密地結(jié)合起來(lái),對(duì)于嵌入式系統(tǒng)的軟件開發(fā)尤為重要。
3.2 μC/OS-II在S3132440的移植
嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II是一個(gè)源代碼公開的多任務(wù)實(shí)時(shí)操作系統(tǒng)內(nèi)核,它簡(jiǎn)化了應(yīng)用軟件的設(shè)計(jì),使控制系統(tǒng)的實(shí)時(shí)性得到保障。良好的多任務(wù)設(shè)計(jì),有助于提高控制系統(tǒng)的穩(wěn)定性和可靠性。所謂移植,就是通過(guò)修改操作系統(tǒng)內(nèi)核與處理器相關(guān)部分的源代碼,使一個(gè)實(shí)時(shí)內(nèi)核能在微處理器或微控制器上運(yùn)行。μC/OS-II的文件系統(tǒng)結(jié)構(gòu)包括代碼部分,配置代碼部分,處理器相關(guān)代碼部分,如圖4所示。其中處理器相關(guān)代碼部分包括OS_CPU.H,OS_CPU.A.ASM,OS_CPU.C.C 3個(gè)文件。將μC/OS-II移植到S3C2440只需要修改與處理器相關(guān)的代碼即可。
ARM DSP的嵌入式四軸運(yùn)動(dòng)控制器設(shè)計(jì)
3.3 系統(tǒng)應(yīng)用程序設(shè)計(jì)
實(shí)時(shí)應(yīng)用程序的設(shè)計(jì)過(guò)程包括如何把問(wèn)題分割為多個(gè)子任務(wù),每個(gè)子任務(wù)都是整個(gè)系統(tǒng)的一部分,都被賦予一定的優(yōu)先級(jí),有自己的一套CPU寄存器和堆??臻g。一個(gè)任務(wù),也叫一個(gè)線程,是一個(gè)簡(jiǎn)單的程序,該程序可以認(rèn)為CPU完全只屬于自己。在本設(shè)計(jì)中將任務(wù)劃分為人機(jī)界面的設(shè)計(jì)、數(shù)控指令編譯解釋、伺服單元采集任務(wù)、狀態(tài)監(jiān)視等。μC/OS-II可以按照優(yōu)先級(jí)啟動(dòng)各個(gè)任務(wù),并通過(guò)內(nèi)核來(lái)完成任務(wù)之間的調(diào)度。系統(tǒng)的基本流程如圖5所示。
S3C2440根據(jù)系統(tǒng)的應(yīng)用程序?qū)χ噶钸M(jìn)行解釋,調(diào)用運(yùn)動(dòng)控制函數(shù),繼而PCL6045BL發(fā)出脈沖控制伺服電機(jī)去控制執(zhí)行機(jī)構(gòu)動(dòng)作,實(shí)現(xiàn)運(yùn)動(dòng)控制的結(jié)果。
ARM DSP的嵌入式四軸運(yùn)動(dòng)控制器設(shè)計(jì)圖5 用戶程序流程
3.4 NC代碼解釋
運(yùn)動(dòng)控制器接受來(lái)自上位機(jī)發(fā)送過(guò)來(lái)的加工文件,但加工文件指令在程序中不能直接被識(shí)別,在執(zhí)行指令之前必須先對(duì)其進(jìn)行解析譯碼。解釋器的主要功能就是將用戶程序以程序段為處理單位,將程序中的輪廓信息、運(yùn)行速度和輔助功能信息,轉(zhuǎn)換成嵌入式運(yùn)動(dòng)控制器能夠執(zhí)行的格式。解釋過(guò)程主要包括數(shù)控文件的讀入、詞法分析、語(yǔ)法分析以及加工信息存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)等過(guò)程,如圖6所示。
ARM DSP的嵌入式四軸運(yùn)動(dòng)控制器設(shè)計(jì)圖6 程序處理流程
4 實(shí)例分析
上位機(jī)通過(guò)RS485總線與S3C2440連接,把NC指令文件輸入到ARM 中,經(jīng)過(guò)NC代碼解釋器,變成PCL6045BL能夠識(shí)別的代碼,從而完成規(guī)定的運(yùn)動(dòng)控制功能。用NC代碼編寫如下加工程序:
N001 COO X15 Y25//起始點(diǎn)選定
N002 G18//XY平面選擇
N003 G90 G01 X15 Y5//準(zhǔn)備直線插補(bǔ)
N004 X30 Y5//(15,5)到(30,5)
N005 X30 Y15//前行至點(diǎn)(30,15)
N006 X45 Y15//前行至點(diǎn)(45,15)
N007 X45 Y5//前行至點(diǎn)(45,5)
N008 X60 Y5//前行至點(diǎn)(60,5)
N009 X60 Y25//前行至點(diǎn)(60,25)
N010 X15 Y25//回到始點(diǎn)(15,25)
根據(jù)上面所給的代碼可以完成如圖7所示的多點(diǎn)之間直線插補(bǔ)的功能。
ARM DSP的嵌入式四軸運(yùn)動(dòng)控制器設(shè)計(jì)圖7 多線段直線插補(bǔ)運(yùn)動(dòng)軌跡
5 結(jié)語(yǔ)
該運(yùn)動(dòng)控制器的硬件結(jié)構(gòu)是基于微處理器S3C2440和PCL6045BL運(yùn)動(dòng)控制芯片設(shè)計(jì)的,它較好地發(fā)揮了ARM處理器的高性能、低成本和運(yùn)動(dòng)控制芯片的高可靠性、開發(fā)周期短的優(yōu)點(diǎn);在控制器硬件平臺(tái)上移植μC/OS-II實(shí)時(shí)操作系統(tǒng)既能使整個(gè)軟件系統(tǒng)結(jié)構(gòu)簡(jiǎn)結(jié)、層次清晰,又能很好地達(dá)到運(yùn)動(dòng)控制實(shí)時(shí)性的要求。
熱門文章
- 優(yōu)化物聯(lián)網(wǎng)邊緣設(shè)備以實(shí)現(xiàn)高效節(jié)能的策略 2024-09-05
- 單片機(jī)技術(shù):實(shí)現(xiàn)復(fù)雜分立邏輯的高效方案 2024-11-12
- 電路板上電容器的測(cè)試步驟 2024-08-05
- 精選電池方案:為保健醫(yī)療設(shè)備量身定制的高效能源選擇" 2024-08-27
- 嵌入式系統(tǒng)低功耗設(shè)計(jì)關(guān)鍵要素 2024-08-20
- 寧德時(shí)代發(fā)布“驍遙”超級(jí)增混電池:鈉離子電池技術(shù)引領(lǐng)新能源車型大規(guī)模革新 2024-10-28
- JTAG在嵌入式系統(tǒng)開發(fā)全生命周期中的系統(tǒng)調(diào)試與測(cè)試關(guān)鍵角色 2024-08-08
- 高通驍龍 8 至尊版 2 芯片曝光:?jiǎn)魏顺?4000 分,多核性能激增 20 2024-11-12
- 松下(Panasonic)6軸車載慣性傳感器 (6in1傳感器)產(chǎn)品選型手冊(cè)(2024) 2024-09-14
- Nordic Semiconductor 宣布裁員并取消收購(gòu) Novelda,UWB技術(shù)前景生變 2024-11-13