王宏文 黃金蘭 董苗
摘 要: 在現(xiàn)代的生產(chǎn)流水線上離不開噴碼機的使用,國內(nèi)傳統(tǒng)的噴碼機大部分都是以8/16位單片機為控制器的系統(tǒng),依托于龐大的上位機,成本昂貴且不利于維護,為了提高噴印效率的同時又能降低噴碼機的成本以及方便使用,設(shè)計一種嵌入式噴碼機。采用三星公司基于ARM920T內(nèi)核的S3C2440A芯片作為中央處理器,利用XAAR公司的XJ128噴頭搭建嵌入式系統(tǒng)硬件平臺,基于WinCE操作系統(tǒng),開發(fā)相應(yīng)的噴碼器應(yīng)用程序。該系統(tǒng)體積小巧,靈活性強,并且?guī)в杏|摸屏,操作簡單,成本較低易于移動,同時也更方便后期維護和升級。
關(guān)鍵詞: 嵌入式; 噴碼機; S3C2440A; WinCE
中圖分類號: TN06?34; TP23 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2014)09?0107?04
0 引 言
對于生產(chǎn)線上需要噴印的產(chǎn)品,噴印的圖像既要清晰又要快速。如何更好地保證噴印質(zhì)量和效率是噴碼設(shè)備生產(chǎn)企業(yè)一直不斷創(chuàng)新的方向。噴碼設(shè)備對于建立產(chǎn)品個性化特點,通過包裝展現(xiàn)產(chǎn)品的獨特個性,是企業(yè)贏得消費者的關(guān)鍵。目前墨水噴碼機的市場很大部分已被激光噴碼機占據(jù),但激光噴碼機因為材質(zhì)的限制也不可能完全替代墨水噴碼機。而且現(xiàn)在國內(nèi)主流的墨水噴碼機一般都采用8/16位單片機作為其控制器,利用PC機做上位機,這在一定程度上加大了成本,浪費了資源,此外,由于尺寸的限制,不利于后期的維護和移動。由此設(shè)計一種體積小巧,攜帶方便,不依賴于PC機的基于S3C2440A的嵌入式噴碼機系統(tǒng)。
1 總體設(shè)計
嵌入式噴碼機的設(shè)計包括硬件系統(tǒng)和軟件系統(tǒng)的設(shè)計,硬件系統(tǒng)主要以S3C2440A芯片為中央處理器,采用XAAR公司的XJ128噴頭,并結(jié)合外圍電路。軟件系統(tǒng)主要基于WinCE操作系統(tǒng),根據(jù)硬件電路,開發(fā)出WinCE的驅(qū)動程序,編寫針對噴碼機功能操作界面的應(yīng)用程序。開機后,操作者只需在噴碼機自帶的觸摸屏上點擊選擇噴印內(nèi)容,點擊打印,噴碼機開始噴印工作。操作簡單,噴印內(nèi)容也可以隨意更改。
2 硬件設(shè)計
三星公司推出的16/32位RISC微處理器S3C2440A[1]為手持設(shè)備提供了低價、低功耗、高性能小型微控制器的解決方案。S3C2440A基于ARM920T內(nèi)核[1],采用了AMBA(Advanced Micro controller Bus Architecture)的總線架構(gòu)。
英國賽爾(XAAR)公司的XJ128噴頭由128個并行排列的通道組成,噴頭中的128個噴嘴都是以“二態(tài)”形式動作的。噴頭的電氣接口主要是負(fù)責(zé)數(shù)據(jù)的傳輸和命令的控制,即外部控制器可以通過電氣接口使噴頭正常工作。
系統(tǒng)總體硬件設(shè)計圖如圖1所示。以S3C2440A微處理器為中心,包括電源電路和復(fù)位電路、ARM芯片的外部擴展電路及屏幕顯示、串口通信等電路等。
圖1 總體硬件設(shè)計圖
2.1 電源和復(fù)位電路
由于芯片S3C2440A需要3.3 V的外部I/O供電,1.8 V/2.5 V/3.3 V的存儲器供電,1.25 V的內(nèi)核供電,而且噴頭需要5 V和35 V兩種供電電壓,后續(xù)使用的光電傳感器需要12 V的電源供電,所以在硬件設(shè)計中不得不考慮到電源部分的設(shè)計[2]。電源示意圖如圖2所示。
圖2 電源示意圖
圖2中,220 V交流電壓經(jīng)過變壓器,整流、濾波和穩(wěn)壓電路,輸出穩(wěn)定的直流電壓12 V,12 V分別通過XL6009E1升壓芯片和LM2596降壓兩種電壓轉(zhuǎn)換電路,得到35 V和其他較小的電壓值,35 V通過濾波電容后給XJ128噴頭提供電源,其他電壓則給S3C2440A內(nèi)核及其他外圍電路供電。運用電壓轉(zhuǎn)換芯片的好處是結(jié)構(gòu)簡單,轉(zhuǎn)換效率高,輸出負(fù)載電流大。
復(fù)位電路采用專用的復(fù)位芯片MAX811組成復(fù)位電路,帶有手動復(fù)位引腳。
2.2 外部擴展電路
S3C2440A處理器內(nèi)部集成的ROM和RAM容量較小,需要擴展存儲[3],而且其芯片內(nèi)部集成了SDRAM控制器和NAND FLASH控制器。SDRAM相當(dāng)于計算機的內(nèi)存,主要用于執(zhí)行程序,但是掉電后里面的數(shù)據(jù)會丟失。NAND FLASH相當(dāng)于計算機的硬盤,容量較大,存儲單位比特數(shù)據(jù)的成本低,但是需要按照特定的時序?qū)λM(jìn)行讀寫操作,CPU對其中數(shù)據(jù)的讀寫是通過專門的NAND FLASH 控制器來進(jìn)行的,因此NAND FLASH更適合于存儲數(shù)據(jù)。NOR FLASH 容量小,速度快,對它進(jìn)行讀寫操作時輸入地址,然后給出讀寫信號即可從數(shù)據(jù)總線上得到數(shù)據(jù),但是價格一般比NAND FLASH 高,因此適合做程序存儲器。所以,NOR FLASH 可以直接連接到ARM總線上,而NAND FLASH 需要通過NAND FLASH控制器與S3C2440A相連接。上電后通過識別OM[1:0]的電平來選擇是NOR FLASH還是NAND FLASH啟動。
圖3 S3C2440A外部擴展
S3C2440A與外部存儲器的連接示意圖如圖3所示,S3C2440A處理器可以尋址1 GB的空間,它將這個空間分為8個區(qū)域,每個區(qū)域稱為一個bank,即整個存儲空間被分成了bank0~bank7。S3C2440A有27根地址線ADDR[26:0],8個片選信號nGCS0~nGCS7,對應(yīng)bank0~bank7,當(dāng)nGCSx引腳為低電平時即訪問bankx的地址空間,選中外設(shè)[3]。
系統(tǒng)采用的Micron(美光)SDRAM芯片MT48LC16M16A2?75D的nSCS管腳接在S3C2440A SDRAM控制器的nGCS6,即接在了bank6上,所以SDRAM的物理地址從0x30000000開始。因為每塊內(nèi)存芯片的接口線寬為16位,這里選擇2片內(nèi)存芯片并接成32位,與S3C2440A的32根數(shù)據(jù)線相連,總?cè)萘繛?4 MB,所以SDRAM的地址為:0x30000000~0x3FFFFFFF。
NOR FLASH芯片EN29LV160AB大小為2 MB,數(shù)據(jù)總線位寬為16位,接在nGCS0,即接在了bank0上,所以NOR的物理地址為0x00000000~0x001FFFFF。
NAND FLASH芯片K9F1G08UOA不需要通過CPU的地址線訪問,所以存儲空間大小可達(dá)1 GB。NAND是由硬件本身識別的,不存在物理地址。
2.3 TFT LCD觸摸屏
本系統(tǒng)液晶型號選用的是WXCAT43,即東華4.3寸TFT真彩液晶屏,觸摸屏集成在此液晶屏上,LCDCON1~LCDCON4初始化主要是針對時序信號的時間參數(shù)進(jìn)行的初始化,LCDCON5針對的是信號極性的初始化,LCDADDR1~LCDADDR3為幀內(nèi)存地址寄存器,用于告訴LCD控制器幀內(nèi)存地址。
硬件連接時只需要將控制器的輸出引腳和TFT LCD相應(yīng)的信號線連接即可,LCD的電源接在S3C2440A的GPG4引腳上,因此初始化時,需要將該引腳配置成輸出,高電平時給LCD供電。
2.4 外部接口電路
在噴碼機使用中,當(dāng)噴印的圖形發(fā)生改變時,可以通過插入U盤的方式進(jìn)行更改噴印圖片內(nèi)容,或者使用SD卡,來選擇不同的噴印圖片。此外帶有RS 232串口與網(wǎng)絡(luò)接口,方便與其他設(shè)備進(jìn)行通信。
2.5 SPI通信接口
本系統(tǒng)運用S3C2440A集成的SPI功能模塊與XJ128噴頭進(jìn)行通信,并驅(qū)動噴頭工作。S3C2440A有兩路SPI[1],每路都有8位數(shù)據(jù)移位寄存器分別進(jìn)行發(fā)送和接收。噴頭的nSS1、nSS2和nFIRE分別由S3C2440A的通用I/O口GPG13,GPG14,GPG1控制。S3C2440A設(shè)置為主機模式,噴頭的MOSI0,CLK分別連接到S3C2440A的SPIMOSI0,SPICLK引腳,用PWM Timer 為噴頭提供工作時鐘,使噴頭噴印過程中打印速度適中,用EINT8管腳連接噴頭READY引腳用于檢測噴頭工作狀態(tài)。如圖4所示。
圖4 S3C2440A與XJ128的連接
3 軟件系統(tǒng)
噴碼機圖形化的操作程序是基于WinCE 6.0平臺下開發(fā)的,WinCE 6.0是一種模塊化的、易裁剪、定制移植方便的多任務(wù)嵌入式操作系統(tǒng),支持多種硬件平臺,能滿足系統(tǒng)對實時性、穩(wěn)定性的要求。軟件系統(tǒng)設(shè)計主要分為操作系統(tǒng)的定制與移植、應(yīng)用程序的開發(fā)。
根據(jù)硬件電路,對WinCE 6.0提供的BSP(板機支持包)進(jìn)行修改,以便于上層軟件能正確調(diào)用底層的硬件設(shè)備,使用WinCE 6.0操作系統(tǒng)的開發(fā)工具Platform Builder進(jìn)行操作系統(tǒng)的裁剪,生成BSP。由于篇幅有限,本文僅對驅(qū)動程序結(jié)構(gòu)加以說明。
在本系統(tǒng)中,顯示驅(qū)動等特定驅(qū)動程序都不需改變,主要涉及對流接口[4]驅(qū)動程序的修改。大部分Windows CE下的驅(qū)動程序采用了分層驅(qū)動的結(jié)構(gòu),在這種結(jié)構(gòu)中,驅(qū)動程序被分為兩部分,上層是模型設(shè)備驅(qū)動(MDD),下層是硬件平臺相關(guān)驅(qū)動(PDD)。如圖5所示。
圖5 流接口驅(qū)動架構(gòu)
由于本系統(tǒng)的主要外在物理功能主要是芯片與噴頭之間的數(shù)據(jù)傳輸,所以采用流接口驅(qū)動的方式。流接口驅(qū)動基于分層結(jié)構(gòu)設(shè)計,MDD層提供框架性的實現(xiàn),與具體硬件無關(guān);而PDD層提供對硬件操作的相應(yīng)代碼。微軟提供MDD層,對于所有的平臺和函數(shù)都是通用的,既可以作為源代碼也可作為鏈接庫,無需對MDD層進(jìn)行改動。MDD層提供供操作系統(tǒng)調(diào)用的設(shè)備驅(qū)動程序接口(DDI)。設(shè)備驅(qū)動服務(wù)供應(yīng)接口(DDSI)是由PDD層提供給MDD層調(diào)用的函數(shù)集[5]。流接口驅(qū)動遵循流接口驅(qū)動模型和一般的流接口函數(shù)規(guī)范,由Device. exe直接調(diào)用,主要通過基于流接口驅(qū)動程序所需的函數(shù)實現(xiàn),例如: XXX_Init,XXX_Deinit,XXX_Open,XXX_Close,XXX_Read,XXX_Write,XXX_Seek,XXX_IOControl等基本實現(xiàn)函數(shù)。
流接口驅(qū)動被設(shè)計為與文件系統(tǒng)API相匹配的形式,這些API包括ReadFile、IOControl等。應(yīng)用程序可以通過文件系統(tǒng)來調(diào)用流接口驅(qū)動。應(yīng)用程序與驅(qū)動程序之間通過文件系統(tǒng)中打開的特殊文件來進(jìn)行交互。
噴碼機工作時存儲記錄儀記錄的噴頭接口的波形圖如圖6所示。
圖6 噴碼機工作時存儲記錄儀記錄的噴頭接口的波形圖
圖6中,噴頭接口的信號時序正確,由此可見,基于S3C2440A的嵌入式噴碼機系統(tǒng)工作穩(wěn)定。
4 結(jié) 語
各個生產(chǎn)領(lǐng)域都離不開噴碼機,噴碼機噴印質(zhì)量和效率對于生產(chǎn)廠家來說就是產(chǎn)品流水線上最后的一個挑戰(zhàn)。依賴PC機的基于低端單片機的噴碼機成本大,并且造成PC機大材小用,浪費資源,靈活性差,勢必將被基于更先進(jìn)微處理器作為控制器的嵌入式噴碼機所取代。嵌入式噴碼機的體積小,方便移動,使其不必依賴于上位機,節(jié)省了成本,用戶完全可以在觸摸屏上操作控制噴頭,操作簡單,噴印效率高,而且方便后期維護和升級。此外,帶有網(wǎng)絡(luò)和RS 232等接口,方便與其他設(shè)備進(jìn)行交互。
參考文獻(xiàn)
[1] Samsung Electronics. S3C2440A 32?bit CMOS microcontroller user′s manual [R]. Republic of Korea: Samsung Electronics, 2004.
[2] 蔡理金.嵌入式手持終端電源設(shè)計技術(shù)與實現(xiàn)[J].電源技術(shù)應(yīng)用,2011,14(8):57?60.
[3] 王小強.ARM處理器裸機開發(fā)實戰(zhàn):機制而非策略[M].北京:電子工業(yè)出版社,2012.
[4] 華清遠(yuǎn)見嵌入式培訓(xùn)中心.Windows CE嵌入式開發(fā)標(biāo)準(zhǔn)教程(修訂版)[M].北京:人民郵電出版社,2010.
[5] 胡軍山,白瑞林,李浩.基于WinCE的電梯監(jiān)控系統(tǒng)多串口通信實現(xiàn)[J].自動化儀表,2009,30(7):11?14.
[6] 李文新,王廣龍,陳建輝.基于S3C2440和WinCE的嵌入式傳感測控系統(tǒng)[J].計算機測量與控制,2009,17(8):1498?1500.
系統(tǒng)采用的Micron(美光)SDRAM芯片MT48LC16M16A2?75D的nSCS管腳接在S3C2440A SDRAM控制器的nGCS6,即接在了bank6上,所以SDRAM的物理地址從0x30000000開始。因為每塊內(nèi)存芯片的接口線寬為16位,這里選擇2片內(nèi)存芯片并接成32位,與S3C2440A的32根數(shù)據(jù)線相連,總?cè)萘繛?4 MB,所以SDRAM的地址為:0x30000000~0x3FFFFFFF。
NOR FLASH芯片EN29LV160AB大小為2 MB,數(shù)據(jù)總線位寬為16位,接在nGCS0,即接在了bank0上,所以NOR的物理地址為0x00000000~0x001FFFFF。
NAND FLASH芯片K9F1G08UOA不需要通過CPU的地址線訪問,所以存儲空間大小可達(dá)1 GB。NAND是由硬件本身識別的,不存在物理地址。
2.3 TFT LCD觸摸屏
本系統(tǒng)液晶型號選用的是WXCAT43,即東華4.3寸TFT真彩液晶屏,觸摸屏集成在此液晶屏上,LCDCON1~LCDCON4初始化主要是針對時序信號的時間參數(shù)進(jìn)行的初始化,LCDCON5針對的是信號極性的初始化,LCDADDR1~LCDADDR3為幀內(nèi)存地址寄存器,用于告訴LCD控制器幀內(nèi)存地址。
硬件連接時只需要將控制器的輸出引腳和TFT LCD相應(yīng)的信號線連接即可,LCD的電源接在S3C2440A的GPG4引腳上,因此初始化時,需要將該引腳配置成輸出,高電平時給LCD供電。
2.4 外部接口電路
在噴碼機使用中,當(dāng)噴印的圖形發(fā)生改變時,可以通過插入U盤的方式進(jìn)行更改噴印圖片內(nèi)容,或者使用SD卡,來選擇不同的噴印圖片。此外帶有RS 232串口與網(wǎng)絡(luò)接口,方便與其他設(shè)備進(jìn)行通信。
2.5 SPI通信接口
本系統(tǒng)運用S3C2440A集成的SPI功能模塊與XJ128噴頭進(jìn)行通信,并驅(qū)動噴頭工作。S3C2440A有兩路SPI[1],每路都有8位數(shù)據(jù)移位寄存器分別進(jìn)行發(fā)送和接收。噴頭的nSS1、nSS2和nFIRE分別由S3C2440A的通用I/O口GPG13,GPG14,GPG1控制。S3C2440A設(shè)置為主機模式,噴頭的MOSI0,CLK分別連接到S3C2440A的SPIMOSI0,SPICLK引腳,用PWM Timer 為噴頭提供工作時鐘,使噴頭噴印過程中打印速度適中,用EINT8管腳連接噴頭READY引腳用于檢測噴頭工作狀態(tài)。如圖4所示。
圖4 S3C2440A與XJ128的連接
3 軟件系統(tǒng)
噴碼機圖形化的操作程序是基于WinCE 6.0平臺下開發(fā)的,WinCE 6.0是一種模塊化的、易裁剪、定制移植方便的多任務(wù)嵌入式操作系統(tǒng),支持多種硬件平臺,能滿足系統(tǒng)對實時性、穩(wěn)定性的要求。軟件系統(tǒng)設(shè)計主要分為操作系統(tǒng)的定制與移植、應(yīng)用程序的開發(fā)。
根據(jù)硬件電路,對WinCE 6.0提供的BSP(板機支持包)進(jìn)行修改,以便于上層軟件能正確調(diào)用底層的硬件設(shè)備,使用WinCE 6.0操作系統(tǒng)的開發(fā)工具Platform Builder進(jìn)行操作系統(tǒng)的裁剪,生成BSP。由于篇幅有限,本文僅對驅(qū)動程序結(jié)構(gòu)加以說明。
在本系統(tǒng)中,顯示驅(qū)動等特定驅(qū)動程序都不需改變,主要涉及對流接口[4]驅(qū)動程序的修改。大部分Windows CE下的驅(qū)動程序采用了分層驅(qū)動的結(jié)構(gòu),在這種結(jié)構(gòu)中,驅(qū)動程序被分為兩部分,上層是模型設(shè)備驅(qū)動(MDD),下層是硬件平臺相關(guān)驅(qū)動(PDD)。如圖5所示。
圖5 流接口驅(qū)動架構(gòu)
由于本系統(tǒng)的主要外在物理功能主要是芯片與噴頭之間的數(shù)據(jù)傳輸,所以采用流接口驅(qū)動的方式。流接口驅(qū)動基于分層結(jié)構(gòu)設(shè)計,MDD層提供框架性的實現(xiàn),與具體硬件無關(guān);而PDD層提供對硬件操作的相應(yīng)代碼。微軟提供MDD層,對于所有的平臺和函數(shù)都是通用的,既可以作為源代碼也可作為鏈接庫,無需對MDD層進(jìn)行改動。MDD層提供供操作系統(tǒng)調(diào)用的設(shè)備驅(qū)動程序接口(DDI)。設(shè)備驅(qū)動服務(wù)供應(yīng)接口(DDSI)是由PDD層提供給MDD層調(diào)用的函數(shù)集[5]。流接口驅(qū)動遵循流接口驅(qū)動模型和一般的流接口函數(shù)規(guī)范,由Device. exe直接調(diào)用,主要通過基于流接口驅(qū)動程序所需的函數(shù)實現(xiàn),例如: XXX_Init,XXX_Deinit,XXX_Open,XXX_Close,XXX_Read,XXX_Write,XXX_Seek,XXX_IOControl等基本實現(xiàn)函數(shù)。
流接口驅(qū)動被設(shè)計為與文件系統(tǒng)API相匹配的形式,這些API包括ReadFile、IOControl等。應(yīng)用程序可以通過文件系統(tǒng)來調(diào)用流接口驅(qū)動。應(yīng)用程序與驅(qū)動程序之間通過文件系統(tǒng)中打開的特殊文件來進(jìn)行交互。
噴碼機工作時存儲記錄儀記錄的噴頭接口的波形圖如圖6所示。
圖6 噴碼機工作時存儲記錄儀記錄的噴頭接口的波形圖
圖6中,噴頭接口的信號時序正確,由此可見,基于S3C2440A的嵌入式噴碼機系統(tǒng)工作穩(wěn)定。
4 結(jié) 語
各個生產(chǎn)領(lǐng)域都離不開噴碼機,噴碼機噴印質(zhì)量和效率對于生產(chǎn)廠家來說就是產(chǎn)品流水線上最后的一個挑戰(zhàn)。依賴PC機的基于低端單片機的噴碼機成本大,并且造成PC機大材小用,浪費資源,靈活性差,勢必將被基于更先進(jìn)微處理器作為控制器的嵌入式噴碼機所取代。嵌入式噴碼機的體積小,方便移動,使其不必依賴于上位機,節(jié)省了成本,用戶完全可以在觸摸屏上操作控制噴頭,操作簡單,噴印效率高,而且方便后期維護和升級。此外,帶有網(wǎng)絡(luò)和RS 232等接口,方便與其他設(shè)備進(jìn)行交互。
參考文獻(xiàn)
[1] Samsung Electronics. S3C2440A 32?bit CMOS microcontroller user′s manual [R]. Republic of Korea: Samsung Electronics, 2004.
[2] 蔡理金.嵌入式手持終端電源設(shè)計技術(shù)與實現(xiàn)[J].電源技術(shù)應(yīng)用,2011,14(8):57?60.
[3] 王小強.ARM處理器裸機開發(fā)實戰(zhàn):機制而非策略[M].北京:電子工業(yè)出版社,2012.
[4] 華清遠(yuǎn)見嵌入式培訓(xùn)中心.Windows CE嵌入式開發(fā)標(biāo)準(zhǔn)教程(修訂版)[M].北京:人民郵電出版社,2010.
[5] 胡軍山,白瑞林,李浩.基于WinCE的電梯監(jiān)控系統(tǒng)多串口通信實現(xiàn)[J].自動化儀表,2009,30(7):11?14.
[6] 李文新,王廣龍,陳建輝.基于S3C2440和WinCE的嵌入式傳感測控系統(tǒng)[J].計算機測量與控制,2009,17(8):1498?1500.
系統(tǒng)采用的Micron(美光)SDRAM芯片MT48LC16M16A2?75D的nSCS管腳接在S3C2440A SDRAM控制器的nGCS6,即接在了bank6上,所以SDRAM的物理地址從0x30000000開始。因為每塊內(nèi)存芯片的接口線寬為16位,這里選擇2片內(nèi)存芯片并接成32位,與S3C2440A的32根數(shù)據(jù)線相連,總?cè)萘繛?4 MB,所以SDRAM的地址為:0x30000000~0x3FFFFFFF。
NOR FLASH芯片EN29LV160AB大小為2 MB,數(shù)據(jù)總線位寬為16位,接在nGCS0,即接在了bank0上,所以NOR的物理地址為0x00000000~0x001FFFFF。
NAND FLASH芯片K9F1G08UOA不需要通過CPU的地址線訪問,所以存儲空間大小可達(dá)1 GB。NAND是由硬件本身識別的,不存在物理地址。
2.3 TFT LCD觸摸屏
本系統(tǒng)液晶型號選用的是WXCAT43,即東華4.3寸TFT真彩液晶屏,觸摸屏集成在此液晶屏上,LCDCON1~LCDCON4初始化主要是針對時序信號的時間參數(shù)進(jìn)行的初始化,LCDCON5針對的是信號極性的初始化,LCDADDR1~LCDADDR3為幀內(nèi)存地址寄存器,用于告訴LCD控制器幀內(nèi)存地址。
硬件連接時只需要將控制器的輸出引腳和TFT LCD相應(yīng)的信號線連接即可,LCD的電源接在S3C2440A的GPG4引腳上,因此初始化時,需要將該引腳配置成輸出,高電平時給LCD供電。
2.4 外部接口電路
在噴碼機使用中,當(dāng)噴印的圖形發(fā)生改變時,可以通過插入U盤的方式進(jìn)行更改噴印圖片內(nèi)容,或者使用SD卡,來選擇不同的噴印圖片。此外帶有RS 232串口與網(wǎng)絡(luò)接口,方便與其他設(shè)備進(jìn)行通信。
2.5 SPI通信接口
本系統(tǒng)運用S3C2440A集成的SPI功能模塊與XJ128噴頭進(jìn)行通信,并驅(qū)動噴頭工作。S3C2440A有兩路SPI[1],每路都有8位數(shù)據(jù)移位寄存器分別進(jìn)行發(fā)送和接收。噴頭的nSS1、nSS2和nFIRE分別由S3C2440A的通用I/O口GPG13,GPG14,GPG1控制。S3C2440A設(shè)置為主機模式,噴頭的MOSI0,CLK分別連接到S3C2440A的SPIMOSI0,SPICLK引腳,用PWM Timer 為噴頭提供工作時鐘,使噴頭噴印過程中打印速度適中,用EINT8管腳連接噴頭READY引腳用于檢測噴頭工作狀態(tài)。如圖4所示。
圖4 S3C2440A與XJ128的連接
3 軟件系統(tǒng)
噴碼機圖形化的操作程序是基于WinCE 6.0平臺下開發(fā)的,WinCE 6.0是一種模塊化的、易裁剪、定制移植方便的多任務(wù)嵌入式操作系統(tǒng),支持多種硬件平臺,能滿足系統(tǒng)對實時性、穩(wěn)定性的要求。軟件系統(tǒng)設(shè)計主要分為操作系統(tǒng)的定制與移植、應(yīng)用程序的開發(fā)。
根據(jù)硬件電路,對WinCE 6.0提供的BSP(板機支持包)進(jìn)行修改,以便于上層軟件能正確調(diào)用底層的硬件設(shè)備,使用WinCE 6.0操作系統(tǒng)的開發(fā)工具Platform Builder進(jìn)行操作系統(tǒng)的裁剪,生成BSP。由于篇幅有限,本文僅對驅(qū)動程序結(jié)構(gòu)加以說明。
在本系統(tǒng)中,顯示驅(qū)動等特定驅(qū)動程序都不需改變,主要涉及對流接口[4]驅(qū)動程序的修改。大部分Windows CE下的驅(qū)動程序采用了分層驅(qū)動的結(jié)構(gòu),在這種結(jié)構(gòu)中,驅(qū)動程序被分為兩部分,上層是模型設(shè)備驅(qū)動(MDD),下層是硬件平臺相關(guān)驅(qū)動(PDD)。如圖5所示。
圖5 流接口驅(qū)動架構(gòu)
由于本系統(tǒng)的主要外在物理功能主要是芯片與噴頭之間的數(shù)據(jù)傳輸,所以采用流接口驅(qū)動的方式。流接口驅(qū)動基于分層結(jié)構(gòu)設(shè)計,MDD層提供框架性的實現(xiàn),與具體硬件無關(guān);而PDD層提供對硬件操作的相應(yīng)代碼。微軟提供MDD層,對于所有的平臺和函數(shù)都是通用的,既可以作為源代碼也可作為鏈接庫,無需對MDD層進(jìn)行改動。MDD層提供供操作系統(tǒng)調(diào)用的設(shè)備驅(qū)動程序接口(DDI)。設(shè)備驅(qū)動服務(wù)供應(yīng)接口(DDSI)是由PDD層提供給MDD層調(diào)用的函數(shù)集[5]。流接口驅(qū)動遵循流接口驅(qū)動模型和一般的流接口函數(shù)規(guī)范,由Device. exe直接調(diào)用,主要通過基于流接口驅(qū)動程序所需的函數(shù)實現(xiàn),例如: XXX_Init,XXX_Deinit,XXX_Open,XXX_Close,XXX_Read,XXX_Write,XXX_Seek,XXX_IOControl等基本實現(xiàn)函數(shù)。
流接口驅(qū)動被設(shè)計為與文件系統(tǒng)API相匹配的形式,這些API包括ReadFile、IOControl等。應(yīng)用程序可以通過文件系統(tǒng)來調(diào)用流接口驅(qū)動。應(yīng)用程序與驅(qū)動程序之間通過文件系統(tǒng)中打開的特殊文件來進(jìn)行交互。
噴碼機工作時存儲記錄儀記錄的噴頭接口的波形圖如圖6所示。
圖6 噴碼機工作時存儲記錄儀記錄的噴頭接口的波形圖
圖6中,噴頭接口的信號時序正確,由此可見,基于S3C2440A的嵌入式噴碼機系統(tǒng)工作穩(wěn)定。
4 結(jié) 語
各個生產(chǎn)領(lǐng)域都離不開噴碼機,噴碼機噴印質(zhì)量和效率對于生產(chǎn)廠家來說就是產(chǎn)品流水線上最后的一個挑戰(zhàn)。依賴PC機的基于低端單片機的噴碼機成本大,并且造成PC機大材小用,浪費資源,靈活性差,勢必將被基于更先進(jìn)微處理器作為控制器的嵌入式噴碼機所取代。嵌入式噴碼機的體積小,方便移動,使其不必依賴于上位機,節(jié)省了成本,用戶完全可以在觸摸屏上操作控制噴頭,操作簡單,噴印效率高,而且方便后期維護和升級。此外,帶有網(wǎng)絡(luò)和RS 232等接口,方便與其他設(shè)備進(jìn)行交互。
參考文獻(xiàn)
[1] Samsung Electronics. S3C2440A 32?bit CMOS microcontroller user′s manual [R]. Republic of Korea: Samsung Electronics, 2004.
[2] 蔡理金.嵌入式手持終端電源設(shè)計技術(shù)與實現(xiàn)[J].電源技術(shù)應(yīng)用,2011,14(8):57?60.
[3] 王小強.ARM處理器裸機開發(fā)實戰(zhàn):機制而非策略[M].北京:電子工業(yè)出版社,2012.
[4] 華清遠(yuǎn)見嵌入式培訓(xùn)中心.Windows CE嵌入式開發(fā)標(biāo)準(zhǔn)教程(修訂版)[M].北京:人民郵電出版社,2010.
[5] 胡軍山,白瑞林,李浩.基于WinCE的電梯監(jiān)控系統(tǒng)多串口通信實現(xiàn)[J].自動化儀表,2009,30(7):11?14.
[6] 李文新,王廣龍,陳建輝.基于S3C2440和WinCE的嵌入式傳感測控系統(tǒng)[J].計算機測量與控制,2009,17(8):1498?1500.