基于ARM和μC/OS-II的人造提花毛皮機(jī)控制系統(tǒng)
人造提花毛皮機(jī)是生產(chǎn)人造提花毛皮的針織機(jī)械。人造提花毛皮廣泛用于服裝、玩具、裝飾等。隨著人民生活水平的不斷提高,市場(chǎng)對(duì)人造提花毛皮機(jī)的需求量也在大幅度上升。同時(shí),對(duì)人造毛皮的質(zhì)量標(biāo)準(zhǔn)也愈加嚴(yán)格,這就要求進(jìn)一步提高人造
提花毛皮機(jī)的控制精度和工作效率。ARM處理器具備高性能、低功耗、低成本等優(yōu)點(diǎn),將其應(yīng)用于人造提花毛皮機(jī)控制系統(tǒng),可以提高人造提花毛皮機(jī)的處理速度和精度,結(jié)合μC/OS-II實(shí)時(shí)操作系統(tǒng),實(shí)現(xiàn)實(shí)時(shí)控制,并簡(jiǎn)化設(shè)計(jì)系統(tǒng)軟件。
嵌入式的發(fā)展方向是32位內(nèi)核,因此結(jié)合LCD顯示及USB存儲(chǔ)技術(shù),設(shè)計(jì)基于ARM和μC/OS-II的人造提花機(jī)控制系統(tǒng)具有現(xiàn)實(shí)意義。
2 系統(tǒng)總體結(jié)構(gòu)
本系統(tǒng)主要由ARM微處理器、存儲(chǔ)器、USB接口、步進(jìn)電機(jī)控制、選針器控制、D/A轉(zhuǎn)換電路和鍵盤及LCD顯示等模塊組成。系統(tǒng)啟動(dòng)后,微處理器根據(jù)設(shè)定的針筒轉(zhuǎn)速參數(shù)、反饋針筒脈沖數(shù)以及梳理頭密度參數(shù)來控制提花過程,不斷檢測(cè)斷毛、斷線
等自停信號(hào),并根據(jù)反饋的針筒脈沖來統(tǒng)計(jì)產(chǎn)量和定長(zhǎng)自停。USB接口模塊主要用于輸入花型數(shù)據(jù)等參數(shù),LCD模塊用于顯示花型數(shù)據(jù)。串口通信模塊用于實(shí)現(xiàn)與人造提花機(jī)主機(jī)的通訊。其系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
3 硬件電路設(shè)計(jì)
在傳統(tǒng)提花機(jī)的基礎(chǔ)上,本系統(tǒng)更新了ARM模塊、USB模塊以及LCD顯示模塊,符合人造提花機(jī)的發(fā)展趨勢(shì),滿足市場(chǎng)需求。
3.1 ARM微處理器系統(tǒng)
ARM微處理系統(tǒng)用于管理整個(gè)提花控制過程。本系統(tǒng)采用Samsung公司的S3C44BOX微處理器。S3C244BOX微處理器采用ARM7TDMI內(nèi)核,工作在66 MHz,集成有8 KB Cache、外部存儲(chǔ)器控制器、LCD控制器、71個(gè)通用I/O端口、8個(gè)外部中斷源等。此外,本系統(tǒng)采用專用復(fù)位器件IMP811實(shí)現(xiàn)準(zhǔn)確、高效的復(fù)位。系統(tǒng)時(shí)鐘采用外接10MHz和32.768 kHz的晶體振蕩器同時(shí)工作,其中,10 MHz晶體振蕩器經(jīng)ARM內(nèi)部PLL倍頻轉(zhuǎn)換為66 M:Hz。32.768 kHz晶體振蕩器為ARM的RTC(實(shí)時(shí)時(shí)鐘)計(jì)時(shí)。OMO經(jīng)上拉電阻接高電平,OM1直接接地,確保OM[1:0]=01,從而確定nGCSO的總線寬度為16位。OM3,OM2同時(shí)接地,使得OM[3:2]=00,打開內(nèi)部PLL模式。PLL-CAD外接700 pF的系統(tǒng)時(shí)鐘環(huán)路電容;VDDRTC是RTC的電源接口,外接3 V電壓,為電池供電,不支持3.3 V電壓。VDD2外接2.5 V電壓,為內(nèi)核供電。ARM處理器基本系統(tǒng)電路如圖2所示。
3.2 USB接口模塊
本系統(tǒng)采用USB接口技術(shù),選用USB控制器SL811HS。SL811HS是Cypress公司可支持全速數(shù)據(jù)傳輸?shù)腢SB控制器,可作為USB主機(jī)或作為設(shè)備的接口控制器:提供全速和低速兩種USB總線速率:片上集成有SIE、單端口Hub、USB收發(fā)器以及256 Byte的RAM:3.3 V的工作電壓;硬件自動(dòng)產(chǎn)生幀起始包SOF和CRC5/16校驗(yàn)。采用S3C44BOX的nGCS5選通USB控制器SL811HS。SL811HS的其他
信號(hào)線與S3C344BOX的引腳對(duì)應(yīng)相連。CPU可從外部U盤提取花型數(shù)據(jù),具有即插即用功能,取代了傳統(tǒng)提花機(jī)中的串口通信模塊。USB接口硬件電路圖如圖3所示。
3.3 鍵盤及LCD顯示模塊
本系統(tǒng)采用TLC-VCT256/14G型控制器,可控制640480點(diǎn)陣彩色TFT液晶顯示屏,顯示256種顏色,實(shí)時(shí)效果好,CPU能隨時(shí)寫入顯示存儲(chǔ)器而不影響顯示效果。
4 系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)是指在μC/OS-II的支撐平臺(tái)上設(shè)計(jì)各硬件模塊電路的驅(qū)動(dòng)程序,創(chuàng)建和啟動(dòng)多項(xiàng)任務(wù),創(chuàng)建消息郵箱完成各任務(wù)間的通信,從而控制整個(gè)提花過程。
4.1 主程序設(shè)計(jì)
程序啟動(dòng)后,跳轉(zhuǎn)至主函數(shù)開始執(zhí)行,調(diào)用函數(shù)ARMT argetInit()初始化ARM系統(tǒng),包括:建立相關(guān)參數(shù)和變量,配置ARM處理器中斷端口,設(shè)置中斷,并初始化各個(gè)器件等。調(diào)用函數(shù)OSInit()初始化μC/OS-II操作系統(tǒng)。 調(diào)用函數(shù)OSTask Create
(Main_Task,(void*)0,(OS_STK*)Main_Task_Stack[TASK_STACK_SIZE-1],Main_Task_PRIO),創(chuàng)建主任務(wù),并在主任務(wù)中創(chuàng)建各分任務(wù),完成整個(gè)系統(tǒng)控制。調(diào)用函數(shù)OSStait(),μC/OS-II開始運(yùn)行,執(zhí)行主任務(wù)。
4.2 各分任務(wù)設(shè)計(jì)
分任務(wù)設(shè)計(jì)包括USB接口、步進(jìn)電機(jī)控制、選針器控制、D/A轉(zhuǎn)換電路、鍵盤LCD顯示等模塊。由于各任務(wù)間不完全獨(dú)立,因此要?jiǎng)?chuàng)建信號(hào)量、消息郵箱、消息隊(duì)列來完成任務(wù)間通信,該操作通過調(diào)用OSSemCreate(),OSM-boxCreate(),OSQGreate()函數(shù)完成。鍵盤掃描圖分任務(wù)函數(shù)為OSTask Create (Task KEY,(void*)0,(OS_STK*)Task_KEY_Stack[TASK_STACK_SIZE-1],Task_KEY_PRIO)。創(chuàng)建其他任務(wù)函數(shù),驅(qū)動(dòng)對(duì)應(yīng)硬件。而步進(jìn)電機(jī)控制模塊、選針器控制模塊、D/A轉(zhuǎn)換電路模塊則延用傳統(tǒng)提花機(jī)設(shè)計(jì),在此不做介紹,以下主要介紹改進(jìn)的鍵盤LCD顯示和USB接口模塊。
4.2.1 鍵盤及LCD顯示
鍵盤用于管理顯示以及系統(tǒng)所需的其他操作。當(dāng)LCD任務(wù)和讀取任務(wù)都掛起,讀取任務(wù)向LCD任務(wù)提供顯示所必要的數(shù)據(jù)。各任務(wù)間的通信通過對(duì)應(yīng)的信號(hào)量,消息隊(duì)列和消息郵箱來完成,任務(wù)流程如圖4所示。采用TLC-VCT256/14G控制器進(jìn)行顯示,編程簡(jiǎn)單。該控制器指令格式如表1所列。
其中,D3為保留位,DISP為顯示開關(guān)位,A16、A17、A18為第17、18、19位顯示地址,CMD2、CMD1、CMD0為組合選擇內(nèi)部寄存器通道位“000”時(shí)為地址低8位寄存器,“001”時(shí)為地址高8位寄存器,“010”為數(shù)據(jù)讀寫通道,“100”’時(shí)為4頁(yè)功能寄存器。
對(duì)于LCD任務(wù),首先創(chuàng)建LCD顯示任務(wù)函數(shù):OST askCreate(Task_LCD,(void*)0,(OS_STK*)Task_LCD_Stac [TASK_STACK_SIZE-l],Task_LCD_PRI-O)。任務(wù)掛起,等待讀取任務(wù)發(fā)送的消息隊(duì)列數(shù)據(jù),收到消息隊(duì)列后,LCD任務(wù)就緒,得到CPU控制權(quán),先調(diào)用地址寫入函數(shù)void write addr (U32 address);再調(diào)用數(shù)據(jù)寫入函數(shù)void write data(U8 color);最后
調(diào)用具體顯示函數(shù)實(shí)現(xiàn)屏幕顯示,顯示函數(shù)原型:void write_word(U16 rowi,U16 tier,U8 eolr1,U8 col-or2,U16 rel)。調(diào)用完成后返回,等待下一個(gè)消息的到來,以便執(zhí)行下一環(huán)節(jié)的顯示任務(wù)。
4.2.2 USB接口
USB接口主要用于傳輸花型數(shù)據(jù)。USB任務(wù)與中斷服務(wù)函數(shù)以及存儲(chǔ)任務(wù)同步執(zhí)行。USB插入后,產(chǎn)生中斷,中斷服務(wù)函數(shù)向USB任務(wù)發(fā)送OS-SemPost()信號(hào)量,告知USB任務(wù)CPU可與外部USB設(shè)備通信以及數(shù)據(jù)處理,USB任務(wù)接收該信號(hào)量后,獲得CPU的控制權(quán),開始執(zhí)行相關(guān)函數(shù)。當(dāng)讀完USB設(shè)備中的數(shù)據(jù)后,需要將數(shù)據(jù)存儲(chǔ),進(jìn)而向存儲(chǔ)任務(wù)發(fā)送消息隊(duì)列OSOPost(),存儲(chǔ)任務(wù)開始把發(fā)送的數(shù)據(jù)進(jìn)行存儲(chǔ)。USB數(shù)據(jù)讀取及存儲(chǔ)任務(wù)流程如圖5所示。
創(chuàng)建USB通信任務(wù)函數(shù):OSTaskCreate(Task-USB,(void*)0,(OS_STK*)Task_USB_Stack[TASK_STACK_SIZE-1],Task_USB_PRIO)。任務(wù)掛起,等待來自中斷處理函數(shù)的信號(hào)量:設(shè)計(jì)USB中斷處理函數(shù)(USB-INTRQ.C)負(fù)責(zé)發(fā)送設(shè)備命令,接收設(shè)備狀態(tài)信息,配置設(shè)備,供給電源;設(shè)計(jì)USB枚舉函數(shù)(USB_MU.C)實(shí)現(xiàn)硬件枚舉;設(shè)計(jì)Mass Storage類設(shè)備的枚舉函數(shù)(UJSB_MS.C)實(shí)現(xiàn)Mass Storage類協(xié)議中的命令操作,實(shí)現(xiàn)數(shù)據(jù)讀取:設(shè)計(jì)FAT文件系統(tǒng)操作函數(shù)(USB_FAT.C)操作文件系統(tǒng),對(duì)FAT表定位,搜索和讀/寫等操作;設(shè)計(jì)數(shù)據(jù)讀取函數(shù)(DAT.C),完成ARM處理器通過數(shù)據(jù)線,片選線及讀/寫控制線完成USBN9603數(shù)據(jù)的讀取。當(dāng)檢測(cè)到USB設(shè)備接入(中斷來臨)時(shí)檢測(cè)設(shè)備狀態(tài),響應(yīng)設(shè)置命令,發(fā)送狀態(tài)信息,發(fā)送數(shù)據(jù)報(bào)告,主機(jī)開始識(shí)別這個(gè)外接設(shè)備,在確定了該設(shè)備為USB Mass Storage類的基礎(chǔ)上,主機(jī)得到USB閃存的介質(zhì)信息和文件系統(tǒng)信息,實(shí)現(xiàn)文件打開和讀寫操作。
5 結(jié)束語(yǔ)
人造提花毛皮機(jī)控制系統(tǒng)結(jié)合先進(jìn)的ARM技術(shù)以及性能優(yōu)越的μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng),精度高,效率好。采用USB技術(shù)及LCD顯示技術(shù)取代傳統(tǒng)提花機(jī)中的串口通信和數(shù)碼顯示,符合當(dāng)今市場(chǎng)發(fā)展趨勢(shì),因此本提花控制系統(tǒng)具備良好的應(yīng)用前景。
評(píng)論