基于ARM的智能電子提花機(jī)控制系統(tǒng)設(shè)計(jì)
引 言
提花就是在織物的織造過(guò)程中對(duì)經(jīng)線的升降加以控制,使其具有凹凸不平的立體感。隨著電子技術(shù)的發(fā)展,紡織提花技術(shù)由最初的機(jī)械選針?lè)绞桨l(fā)展到現(xiàn)在的電磁選針?lè)绞?。電子提花與機(jī)械提花相比,結(jié)構(gòu)較為簡(jiǎn)單,花型控制更為靈活可靠。電子提花又有基于工控機(jī)和基于嵌入式單片機(jī)兩種方案,后者比前者在可靠性、成本等方面更具有優(yōu)勢(shì)。
1 電子提花機(jī)嵌入式控制系統(tǒng)硬件設(shè)計(jì)
設(shè)計(jì)方案中,本文采用了核心板+底板的方式。在不修改核心板電路圖的情況下,只要改變底板的功能單元,就可以方便得對(duì)系統(tǒng)的外圍接口進(jìn)行擴(kuò)展。有利于二次開(kāi)發(fā),核心板框和底板框圖如圖1、2所示。
核心板上集成Samsung S3C2410處理器,32M的SDRAM以及8M的Flash。
底板上提供了以下外設(shè)接口:一個(gè)15芯的和一個(gè)37芯的接口(用于實(shí)現(xiàn)對(duì)提花機(jī)進(jìn)行各種控制),2個(gè)四線RS232串口,2個(gè)USB HOST接口,一個(gè)10M/100M自適應(yīng)以太網(wǎng)接口,一個(gè)TFT LCD接口和一個(gè)觸摸屏接口。核心板和底板配合即構(gòu)成一個(gè)最小的完整的應(yīng)用系統(tǒng)。
由于S3C2410提供了117路復(fù)用的IO口線,本文利
用了其中的28路口線對(duì)提花機(jī)實(shí)現(xiàn)了各種控制。見(jiàn)表1和表2。
2 電子提花機(jī)系統(tǒng)軟件設(shè)計(jì)
電子提花機(jī)控制系統(tǒng)軟件主程序流程如圖3所示。
開(kāi)機(jī)以后,控制程序開(kāi)始運(yùn)行;讀取初始化的配置文件,該文件記錄了工作的任務(wù),磁鐵板的數(shù)量和過(guò)孔信息。根據(jù)工作任務(wù)文件,可以獲得花樣文件位置,將它讀入內(nèi)存中,并設(shè)置織造重復(fù)次數(shù)的數(shù)據(jù)變量。如果該操作不成功,則要求手動(dòng)輸入。
如果操作成功,就進(jìn)入硬件檢查部分。硬件檢查將通過(guò)CheckIO( )函數(shù),向磁鐵板上發(fā)送信息,并將信息讀回,以此判斷磁鐵板是否存在問(wèn)題。
如果硬件檢查沒(méi)有問(wèn)題,就開(kāi)始進(jìn)入控制送數(shù)的階段,該階段在SendData()中完成。
SendData( )函數(shù)是控制流程中最重要的一個(gè)函數(shù),它控制著織造的整個(gè)過(guò)程。
在SendData( )中也可能因各種情況而退出,如硬件錯(cuò)誤,送數(shù)錯(cuò)誤,工作單任務(wù)完成需要重新調(diào)配或者直接退出程序等;在退出SendData( )后,需要判斷退出的原因,對(duì)以上幾種情況分別做出處理:如果硬件錯(cuò)誤或送數(shù)出錯(cuò),則會(huì)等待清除錯(cuò)誤以及按鍵處理;如果是工作單完成,則等待操作人員的指示,可能是重新添加新的任務(wù),或者是重復(fù)原來(lái)的工作,也有可能是直接退出;在SendData( )內(nèi)也有可能因操作人員要求直接退出。
3 驅(qū)動(dòng)程序
在嵌入式Linux中通過(guò)設(shè)計(jì)相應(yīng)的設(shè)備驅(qū)動(dòng)程序來(lái)完成對(duì)ARM的GPIO端口的訪問(wèn)控制,進(jìn)而實(shí)現(xiàn)對(duì)提花機(jī)的各種控制。
內(nèi)核內(nèi)部通過(guò)file結(jié)構(gòu)識(shí)別設(shè)備,通過(guò)file_operations數(shù)據(jù)結(jié)構(gòu)提供文件系統(tǒng)的入口點(diǎn)函數(shù),也就是訪問(wèn)設(shè)備驅(qū)動(dòng)的函數(shù)。file_operations是定義在中的函數(shù)指針表。
以對(duì)磁鐵板發(fā)送串行數(shù)據(jù)為例,我們用S3C2410芯片GPB1引腳發(fā)送時(shí)鐘信號(hào)SCLK_O,GPB0引腳發(fā)送串行數(shù)據(jù)SDATA_O(見(jiàn)表1)。使用如下file_operations數(shù)據(jù)結(jié)構(gòu):
其中ioremap函數(shù)的作用是把GPB的控制寄存器和數(shù)據(jù)寄存器的物理地址映射成I/O內(nèi)存,這樣我們就可以訪問(wèn)I/O寄存器了。devfs_register( )函數(shù)的作用是向Linux內(nèi)核注冊(cè)設(shè)備驅(qū)動(dòng)程序。
有了驅(qū)動(dòng)的支持,在應(yīng)用程序中就可以直接對(duì)硬件設(shè)備(S3C2410的GPB0和GPB1引腳)進(jìn)行訪問(wèn)了。
4 實(shí)驗(yàn)結(jié)果及結(jié)論
圖4為示波器測(cè)得的B0、B1口的輸出。圖4的上方為B1,即SCLK_O;下方為B0,即SDATA_O。對(duì)SCLK_O信號(hào),示波器每個(gè)所代表的時(shí)間是2 μs,所得的時(shí)鐘周期是7μs,滿足系統(tǒng)所需要的送數(shù)速度;程序發(fā)送的串行數(shù)據(jù)SDATA_O為非周期性,所以使得B1輸出的信號(hào)也呈非周期性。經(jīng)現(xiàn)場(chǎng)調(diào)試,該系統(tǒng)能滿足對(duì)提花機(jī)的實(shí)時(shí)控制要求。
基于ARM的電子提花機(jī)控制系統(tǒng)與采用PC或工控機(jī)進(jìn)行現(xiàn)場(chǎng)控制的系統(tǒng)方案相比,有著穩(wěn)定性高、成本低的明顯優(yōu)勢(shì)。
評(píng)論