【正文】
被掛起,且被記錄到等待消息的任務(wù)表中,直到收到消息。消息郵箱也可以當(dāng)作只取兩個(gè)值的信號(hào)量來(lái)用。μC/OSⅡ系統(tǒng)允許中斷嵌套,即高優(yōu)先級(jí)別的中斷源的中斷請(qǐng)求可以中斷低優(yōu)先級(jí)別的中斷服務(wù)程序的運(yùn)行。Ⅱ軟、硬件體系結(jié)構(gòu)圖,ARM7系列的LPC2220微處理器完全滿足上述移植條件[32]。typedef signed short INT16S。μC /OSⅡ定義了兩個(gè)宏來(lái)禁止和允許中斷。OS_TASK_SW()只會(huì)簡(jiǎn)單的調(diào)用OSCtxSw()而不是將向量指向OSCtxSw()。OSTaskStkInit()具體實(shí)現(xiàn)代碼如下:Os_STK *OSTaskStkInit(viod(*task)(void *pd),void*pdata,OS_STK *ptos,INT16U opt){ OS_STK *stk?!?/r10 *stk=0?!?/r2 *stk=0。在OSStart()多任務(wù)啟動(dòng)后,OSStartHighRdy函數(shù)負(fù)責(zé)從最高優(yōu)先級(jí)任務(wù)的TCB控制塊中獲得該任務(wù)的堆棧指針SP,,通過(guò)SP依次將CPU現(xiàn)場(chǎng)恢復(fù),這時(shí)系統(tǒng)就將控制權(quán)交給用戶創(chuàng)建的該任務(wù)進(jìn)程,直到該任務(wù)被阻塞或者被其他更高優(yōu)先級(jí)的任務(wù)搶占CPU。在時(shí)鐘中斷ISR(中斷服務(wù)例程)中發(fā)現(xiàn)有高優(yōu)先級(jí)任務(wù)等待的時(shí)鐘信號(hào)到來(lái),則在中斷退出后并不返回被中斷任務(wù),而是直接調(diào)度就緒的高優(yōu)先級(jí)任務(wù)執(zhí)行,從而能夠盡快地讓高優(yōu)先級(jí)的任務(wù)得到響應(yīng),保證系統(tǒng)的實(shí)時(shí)性能。這樣就完成了一次任務(wù)切換。這幾個(gè)函數(shù)也可以用嵌入式C語(yǔ)言來(lái)完成。 //r4 *stk=0?!?/r12 *stk=0。 任務(wù)堆棧結(jié)構(gòu)其中OsEnterSum不是CPU的寄存器,而是為了保存關(guān)中斷的次數(shù)而設(shè)的全局變量。OS_TASK_SW()的實(shí)現(xiàn)可以通過(guò)兩種途徑:其一,用OS_TASK_SW()模擬中斷,并且中斷向量地址必須指向匯編語(yǔ)言函數(shù)OSCtxSw(),當(dāng)任務(wù)切換時(shí),通過(guò)執(zhí)行OS_TASK_SW()來(lái)產(chǎn)生中斷,終端服務(wù)子程序OSCtxSw()實(shí)現(xiàn)任務(wù)的切換;其二,用于特定的不提供軟件中斷機(jī)制的處理器。 OS_ENTER_CRITICAL()和OS_EXIT_CREITICAL()的編寫與所有的實(shí)時(shí)內(nèi)核一樣,μC /OSⅡ需要先禁止中斷在訪問(wèn)代碼的臨界段,并且在訪問(wèn)完畢后重新允許中斷。typedef singed char INT8S。(4)處理器支持能夠容納一定量數(shù)據(jù)(可能是幾千字節(jié))的硬件堆棧。μC/OSⅡ通過(guò)兩條特殊指令:關(guān)中斷(OS_ENTER_CRITICAL)和開中斷 (OS_EXIT_CRITICAL),可以讓微處理器不響應(yīng)或能夠響應(yīng)中斷。如果郵箱內(nèi)有消息,就接受這則消息。同樣,一個(gè)或多個(gè)任務(wù)可以通過(guò)內(nèi)核服務(wù)接收這則消息。OSSemPost():發(fā)出一個(gè)信號(hào)量。使用信號(hào)量之前先要建立該信號(hào)量,通過(guò)用該函數(shù)來(lái)建立信號(hào)量,并賦初值。(4)恢復(fù)任務(wù)堆棧中的值到寄存器中。任務(wù)調(diào)度包括任務(wù)級(jí)的任務(wù)調(diào)度和中斷級(jí)的任務(wù)調(diào)度,所采用的調(diào)度算法是相同的。[31]。 μC/OSⅡ的工作原理μC/OSⅡ是一個(gè)典型的微內(nèi)核實(shí)時(shí)操作系統(tǒng),為嵌入式系統(tǒng)提供任務(wù)調(diào)度、任務(wù)管理、時(shí)間管理和任務(wù)間的通信等。(3) μC/OSⅡ是一個(gè)可剝奪型的內(nèi)核,即己經(jīng)準(zhǔn)備就緒的高優(yōu)先級(jí)任務(wù)可以剝奪在運(yùn)行的低優(yōu)先級(jí)任務(wù)的CPU使用權(quán)。容易移植和良好的開發(fā)手段支持。實(shí)時(shí)系統(tǒng)的及時(shí)性是以被控對(duì)象所要求的開始、截止時(shí)間或完成時(shí)間來(lái)確定的,一般為微秒級(jí)。傳統(tǒng)的數(shù)控系統(tǒng)通常采用前后臺(tái)的體系結(jié)構(gòu),前臺(tái)是通過(guò)無(wú)限循環(huán)不斷查詢?nèi)蝿?wù)標(biāo)志量,通過(guò)中斷來(lái)激活后臺(tái)任務(wù)。因此在設(shè)計(jì)電路將5V邏輯與一個(gè)RS232端口連接時(shí)需要電平轉(zhuǎn)換。那些附加的信號(hào)線是用于與同步調(diào)制解調(diào)器一起使用,第二傳輸通道和在雙重速率調(diào)制解調(diào)器上選擇傳輸速度時(shí)使用。液晶模塊的片選信號(hào)由LPC2220的CSA2A22和A21進(jìn)行地址譯碼得到。SED13305液晶顯示控制器多用于中小規(guī)模的液品顯示器件。在本系統(tǒng)中CPLD主要用于精插補(bǔ)、碼盤輸入、I/O控制等功能。因?yàn)楫?dāng)LPC2220上電或復(fù)位時(shí),Bank0可以引導(dǎo)程序。一些微控制器自己上電時(shí)會(huì)產(chǎn)生復(fù)位信號(hào),但是多數(shù)控制器需要外部輸入這個(gè)信號(hào),因此它的穩(wěn)定性和可靠性對(duì)微控制器的正常工作有重大影響。這個(gè)型號(hào)的芯片具有很低的靜態(tài)電流,當(dāng)輸出電流減少時(shí),靜態(tài)電流隨負(fù)載變化,并提高效率[21]。帶外部晶體的片內(nèi)振蕩器頻率范圍:1~30 MHz,外部振蕩器的頻率高達(dá)50MHz。 LPC2220功能框圖LPC2220特性:(1)16/32 位ARM7TDMIS 微控制器,擁有64KB片內(nèi)靜態(tài)RAM,通過(guò)外部存儲(chǔ)器控制器可擴(kuò)展4 組,每組的容量高達(dá)16Mb,數(shù)據(jù)寬度為8/16/32 位。其中包括國(guó)際著名的Intel、IBM、LG半導(dǎo)體、NEC、PHILIPS、SAMSUNG公司等[18]。 本章小結(jié)本章通過(guò)對(duì)嵌入式數(shù)控車床控制系統(tǒng)的功能需求分析,基于ARM和μC/OSⅡ,提出了實(shí)現(xiàn)系統(tǒng)的軟硬件的架構(gòu),并對(duì)系統(tǒng)的總體結(jié)構(gòu)、硬件部分各模塊、軟件部分各模塊的功能和實(shí)現(xiàn)方法分別作了簡(jiǎn)要的說(shuō)明和介紹。 數(shù)據(jù)處理控制數(shù)據(jù)處理主要完成NC代碼的譯碼和刀具補(bǔ)償。保證加在電機(jī)上的脈沖頻率或電壓逐漸減小。3)對(duì)NC程序進(jìn)行加工過(guò)程中的刀尖軌跡仿真、在LCD上顯示刀具軌跡路徑,用戶可以檢驗(yàn)刀具所走過(guò)的軌跡判斷NC程序是否正確。采用專用的鍵盤芯片可以采用中斷的方式實(shí)現(xiàn)對(duì)鍵碼的讀取,免去對(duì)鍵盤的循環(huán)掃描,節(jié)約了CPU 的運(yùn)算資源,同時(shí)節(jié)省了很多任務(wù)切換和內(nèi)部信號(hào)量處理時(shí)間。能夠很方便實(shí)現(xiàn)嵌入式數(shù)控的精插補(bǔ)、碼盤輸入、I/O控制等功能,同時(shí)對(duì)產(chǎn)品可以加密保護(hù)。嵌入式微處理器選用ARM7系列的LPC2220,它是32位的高性能、低成本的嵌入式RISC微處理器,具有數(shù)據(jù)處理能力強(qiáng),穩(wěn)定可靠,可支持操作系統(tǒng),低功耗和低成本的特點(diǎn)。 嵌入式數(shù)控系統(tǒng)的總體設(shè)計(jì)嵌入式車床數(shù)控系統(tǒng)在結(jié)構(gòu)上由硬件和軟件兩大部分組成。數(shù)控車床作為使用最多、功能相對(duì)簡(jiǎn)單的機(jī)床種類,非常適合采用嵌入式系統(tǒng)。我國(guó)是一個(gè)制造業(yè)大國(guó),但數(shù)控技術(shù)的水平還不是很高,跟歐美、日本還有很大的差距,這嚴(yán)重制約著我國(guó)制造業(yè)水平的提高。這一階段的操作系統(tǒng)實(shí)時(shí)性得到了很大改善,已經(jīng)能夠運(yùn)行在各種不同類型的微處理器上,具有高度的模塊化和擴(kuò)展性。這一階段系統(tǒng)的主要特點(diǎn)是:系統(tǒng)結(jié)構(gòu)和功能相對(duì)單一,處理效率較低,存儲(chǔ)容量較小,幾乎沒有用戶接口。如立臥轉(zhuǎn)換加工中心、車銑萬(wàn)能加工中心及四軸聯(lián)動(dòng)(X、Y、Z、C)的車削中心等。數(shù)控控制軟件的功能更加豐富,具有自診斷及保護(hù)功能。為了滿足市場(chǎng)和科學(xué)技術(shù)發(fā)展的需要,達(dá)到現(xiàn)代制造技術(shù)對(duì)數(shù)控技術(shù)提出的更高的要求,當(dāng)前,世界數(shù)控技術(shù)及其裝備發(fā)展趨勢(shì)主要體現(xiàn)在以下幾個(gè)方面:(l)高速度、高精度 機(jī)床向高速化方向發(fā)展,可充分發(fā)揮現(xiàn)代刀具材料的性能,不但可大幅度提高加工效率、降低加工成本,而且還可提高零件的表面加工質(zhì)量和精度。但由于歷史的原因,一直沒有取得實(shí)質(zhì)性的成果。技術(shù)發(fā)展特征表現(xiàn)為技術(shù)的融合化;產(chǎn)品的發(fā)展特征表現(xiàn)為高附加值化、智能化和系統(tǒng)化;系統(tǒng)管理的發(fā)展特征表現(xiàn)為集成化(包括系統(tǒng)集成、軟件集成、技術(shù)集成和接口集成)和網(wǎng)絡(luò)化。(4)基于PC的開放式CNC的開發(fā)與應(yīng)用進(jìn)入九十年代,個(gè)人計(jì)算機(jī)(Personal Computer, PC)的性能已發(fā)展到很高的階段,從8位、16位發(fā)展到32位,可以滿足作為數(shù)控系統(tǒng)核心部件的要求,而且PC機(jī)生產(chǎn)批量很大,價(jià)格便宜,可靠性高。這一發(fā)展真正實(shí)現(xiàn)了機(jī)電一體化,進(jìn)一步縮小了體積,降低了成本,簡(jiǎn)化了編程和操作,使數(shù)控系統(tǒng)達(dá)到了普及的程度。隨著元器件的發(fā)展,這個(gè)階段歷經(jīng)了三代,即 1952年第一代一電子管。近年來(lái)我國(guó)機(jī)床需求旺盛,市場(chǎng)巨大。重點(diǎn)分析了子程序調(diào)用和返回的機(jī)制及其實(shí)現(xiàn)方法。本文旨在研究和設(shè)計(jì)一種基于ARM7的嵌入式數(shù)控車床控制系統(tǒng)。盡我所知,除文中已經(jīng)注明引用的內(nèi)容外,本學(xué)位論文的研究成果不包含任何他人享有著作權(quán)的內(nèi)容。軟件平臺(tái)以源代碼公開的μC/OSⅡ?qū)崟r(shí)操作系統(tǒng)為基礎(chǔ),開發(fā)系統(tǒng)所需的驅(qū)動(dòng)程序和應(yīng)用軟件。關(guān)鍵詞:嵌入式車床數(shù)控系統(tǒng),ARM,CPLD,μC/OSⅡ,程序解釋 AbstractTo gain high cost perfermence, traditional CNC for lathes usually adopts 8bit or 16bit mcu and fine interpolator. With the development of the embedded system, high perfermence 32bit CPU has been popularization. ARM as a typical product of 32 bits processors, being of high speed in putation and function and low costs, can be pletely used to develop embedded CNC with higher cost perfermence. In this papar an Embended CNC for lathes based on ARM is designed and developed.Based on general analysis of embedded systems and NC technology, the hardware and software platform of embedded CNC for lathes are chosed. A 32bit CPU LPC2220 is used as the kernel of hardware, together with a fine interpolatorimplemented with a CPLD, and some other necessary peripheral modules. The software of the embedded CNC is based on μC/OS–II, a realtime embedded operating system with open source code. Some equipment driver and application program are included in the software.For the development of the embedded CNC for lathes based on μC/OS–II, control tasks in the system are firstly planed and the munication coordination mechanism among each task is then designed. Seven tasks is involved in the CNC: main control, LCD display, file service, NC program interpretation, ACC/DEC control, interpolation and PLC. Upon the service of mailbox and semaphore provided by μC/OS–II, the munication and synchronization can be efficiently realized among tasks or between task and ISR.In addition, the implementation method of the interpretation of NC program for lathes is investigated. First, a lexical analyzer of NC program is constructed by finite state automaton (DFA) which can transform character streams to inner token streams. Then, syntax and semantic analysis are used for the NC program. Finally, the errorfree machining information is stored in a specifical datas tructure which can be received and used by both the task of ACC/DEC control and PLC. The mechanism and implementation of call and return for subroutines are analyzed and given.Finally, the instruments of debugging and development for hardware and software are introduced. By testing, the embedded CNC for lathes can meet the expected design demands.Key Words: embedded CNC for lathes, ARM, CPLD, μC/OS–II, program interpretation目 錄第一章 緒論 1 數(shù)控技術(shù)概況 1 數(shù)控技術(shù)發(fā)展背景 1 國(guó)外數(shù)控發(fā)展現(xiàn)狀 2 國(guó)內(nèi)數(shù)控發(fā)展現(xiàn)狀 3 數(shù)控技術(shù)的發(fā)展趨勢(shì) 3 嵌入式系統(tǒng)概況 4 本文研究意義及主要工作 5 5 6第二章 嵌入式數(shù)控車床系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) 7 嵌入式數(shù)控系統(tǒng)的總體設(shè)計(jì) 7 嵌入式數(shù)控系統(tǒng)的硬件組成 7 ARM子系統(tǒng) 8 CPLD子系統(tǒng) 8 液晶模塊 8 鍵盤模塊