嵌入式噴碼機(jī)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)_第1頁(yè)
嵌入式噴碼機(jī)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)_第2頁(yè)
嵌入式噴碼機(jī)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)_第3頁(yè)
嵌入式噴碼機(jī)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)_第4頁(yè)
嵌入式噴碼機(jī)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

嵌入式噴碼機(jī)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)王宏文淳B章亮;寧樂(lè);雷盼霎【摘要】Accordingtotheefficientandstablecharacteristicsofmodernproductionassemblylinework,akindofnewinkjetprintercontrolsystemisdesignedwhichusesS3C6410processorandWINCE6.0operatingsystemasitscore.Byadoptingtheideaofmodularization,theinkjetprinterpowersupplycircuitisdesignedandfinishedthedesignofotherperiph-eralcircuit.UsingthePlatformBuilder,itcompletesthedevelopmentoftheXJ128print-headdriverandtheintegrateddesignoftheDM9000Adriver,meanwhiletheWINCE6.0operatingsystemiscustomized.VS2005softwareisusedforhuman-machineinterfacedevelopmentbyadoptingmultithreadedprogrammingtechnique.Theexperimentalresultsprovethattheinkjetprintercontrolsystemrunsstableandreliable,theimageprintedisveryclear,meettherequirementofthemanufacturer.%針對(duì)現(xiàn)代生產(chǎn)流水線作業(yè)高效、穩(wěn)定特點(diǎn),設(shè)計(jì)了一種基于S3C6410處理器和WINCE6.0系統(tǒng)為核心的新型噴碼機(jī)控制系統(tǒng).采用模塊化的思想對(duì)噴碼機(jī)的電源電路進(jìn)行了設(shè)計(jì)并完成了其他外圍電路的硬件實(shí)現(xiàn).利用PlatformBuilder完成了XJ128噴頭驅(qū)動(dòng)的開(kāi)發(fā)和DM9000A網(wǎng)卡驅(qū)動(dòng)的集成設(shè)計(jì)并定制了WINCE6.0操作系統(tǒng).通過(guò)VS2005采用多線程編程技術(shù)進(jìn)行了人機(jī)界面開(kāi)發(fā).實(shí)驗(yàn)結(jié)果表明該系統(tǒng)運(yùn)行穩(wěn)定可靠,噴印圖像清晰,滿足了生產(chǎn)廠商對(duì)高效率噴碼機(jī)系統(tǒng)的要求.【期刊名稱(chēng)】《計(jì)算機(jī)工程與應(yīng)用》【年(卷),期】2017(053)024【總頁(yè)數(shù)】7頁(yè)(P226-232)【關(guān)鍵詞】S3C6410處理器;WINCE6.0系統(tǒng);噴碼機(jī)控制系統(tǒng);XJ128噴頭驅(qū)動(dòng);人機(jī)界面【作者】王宏文淳障亮;寧樂(lè);雷盼霎【作者單位】河北工業(yè)大學(xué)控制科學(xué)與工程學(xué)院沃津300130;河北工業(yè)大學(xué)控制科學(xué)與工程學(xué)院沃津300130;河北工業(yè)大學(xué)控制科學(xué)與工程學(xué)院沃津300130;河北工業(yè)大學(xué)控制科學(xué)與工程學(xué)院,天津300130【正文語(yǔ)種】中文【中圖分類(lèi)】TP23近年來(lái),隨著現(xiàn)代工業(yè)的飛速發(fā)展,越來(lái)越多的生產(chǎn)企業(yè)對(duì)產(chǎn)品標(biāo)識(shí)技術(shù)提出了更高的要求。更快、更好的噴印質(zhì)量和更低的生產(chǎn)成本成為噴墨打印機(jī)系統(tǒng)發(fā)展的主要挑戰(zhàn)[1]。目前國(guó)內(nèi)噴碼機(jī)設(shè)備多數(shù)采用單片機(jī)控制,存在著噴印效率低、結(jié)構(gòu)復(fù)雜和功能單一等缺點(diǎn),不能滿足現(xiàn)代企業(yè)流水式作業(yè)的要求。基于此現(xiàn)狀,文獻(xiàn)[2-5]提出了一種嵌入式噴碼機(jī)系統(tǒng),通過(guò)將嵌入式ARM9技術(shù)和WINCE5.0系統(tǒng)應(yīng)用于噴碼機(jī)系統(tǒng)中,對(duì)噴碼機(jī)系統(tǒng)做出了重大改進(jìn)并為國(guó)內(nèi)噴碼機(jī)行業(yè)的發(fā)展提供了技術(shù)性支持,但以上方案仍存在不足之處。例如,其中電源電路的設(shè)計(jì)大多采用變壓整流方案,雖然使系統(tǒng)更加緊湊,但是系統(tǒng)存在發(fā)熱且易受電磁干擾的問(wèn)題。噴印環(huán)節(jié)采用非中斷模式,因此噴印效率比較低,未能滿足現(xiàn)代企業(yè)流水式作業(yè)的要求。同時(shí)存在應(yīng)用軟件不足的問(wèn)題。針對(duì)以上問(wèn)題,本文結(jié)合項(xiàng)目的需求從硬件和軟件兩個(gè)方面對(duì)系統(tǒng)進(jìn)行了升級(jí)和改進(jìn),設(shè)計(jì)了一種基于S3C6410處理器和WICNE6.0操作系統(tǒng)為核心的高解析噴碼機(jī)控制系統(tǒng)。該系統(tǒng)完善了電源電路的設(shè)計(jì),提高了系統(tǒng)抗電磁干擾的能力,采用中斷的方式完成了噴頭驅(qū)動(dòng)程序的開(kāi)發(fā)提高了噴印效率,對(duì)噴碼機(jī)應(yīng)用程序進(jìn)行了重新設(shè)計(jì),增加了圖像處理和快捷菜單等功能,同時(shí)通過(guò)添加DM9000A網(wǎng)卡模塊實(shí)現(xiàn)了遠(yuǎn)程動(dòng)態(tài)監(jiān)測(cè)功能。通過(guò)對(duì)上述模塊和功能的完善,最終設(shè)計(jì)出一款人機(jī)操作簡(jiǎn)單、噴印質(zhì)量高和執(zhí)行效率快的嵌入式噴碼機(jī)系統(tǒng)。高解析噴碼機(jī)系統(tǒng)由控制系統(tǒng)、輸入輸出接口、檢測(cè)設(shè)備和XJ128噴頭組成??刂葡到y(tǒng)的主控制芯片采用S3C6410,它是一款低功耗、性能高的RISC處理器[6],負(fù)責(zé)檢測(cè)流水線上傳送帶的轉(zhuǎn)速,待噴印物體是否到達(dá)噴印區(qū)域,圖像數(shù)據(jù)的加載和處理,并控制XJ128噴頭實(shí)現(xiàn)高效噴印。輸入輸出接口包含USB攝像頭接口、LCD觸摸屏接口、9針和15針串口等。檢測(cè)設(shè)備主要由歐姆龍系列的E6B2-CWZ6C增量型旋轉(zhuǎn)編碼器和E3ZB61光電傳感器組成。XJ128噴頭是由英國(guó)賽爾(XAAR)公司生產(chǎn)的一款按需噴印式噴頭,XJ128噴頭可實(shí)現(xiàn)200dpi分辨率[7]的噴印效果。高解析噴碼機(jī)系統(tǒng)的總體結(jié)構(gòu)圖如圖1所示。系統(tǒng)上電后,首先光電編碼器采用變M/T法[8]用于檢測(cè)流水線上傳送帶的速度和方向,并將檢測(cè)到的數(shù)字脈沖信號(hào)反饋給控制系統(tǒng),控制系統(tǒng)將此信息與設(shè)定值進(jìn)行比較,用于保持傳送帶速度的穩(wěn)定。當(dāng)激光傳感器檢測(cè)到傳送帶上的待噴印物體時(shí),觸發(fā)噴印中斷事件,中斷處理程序調(diào)用ISR(InterruptServiceRoutine)通知內(nèi)核觸發(fā)噴印事件,同時(shí)該事件的IST(InterruptServiceThread)進(jìn)入就緒狀態(tài),在中斷處理線程函數(shù)IntProcesThread()中,控制系統(tǒng)采用曲線擬合的方法用于控制噴頭的點(diǎn)火頻率和SPI的傳輸速率,然后驅(qū)動(dòng)XJ128噴頭將從應(yīng)用程序?qū)氲膱D像數(shù)據(jù)打印到待噴印物體上。攝像頭模塊負(fù)責(zé)監(jiān)測(cè)噴碼機(jī)控制臺(tái)的工作狀態(tài)并將相應(yīng)的數(shù)據(jù)通過(guò)以太網(wǎng)發(fā)送到遠(yuǎn)程數(shù)據(jù)服務(wù)中心。系統(tǒng)硬件電路主要由ARM11主控制電路、噴頭轉(zhuǎn)接電路、電源電路和輸入輸出接口電路組成。系統(tǒng)主控制器S3C6410配有1GB的NANDFLASH和256MB的SDRAM,分別用于存儲(chǔ)系統(tǒng)程序、配置文件、系統(tǒng)正常運(yùn)行時(shí)產(chǎn)生的用戶(hù)程序和程序正常運(yùn)行時(shí)臨時(shí)數(shù)據(jù)的存儲(chǔ)區(qū)。硬件系統(tǒng)的總體框圖如圖2。噴碼機(jī)系統(tǒng)的電源電路采用模塊化的設(shè)計(jì)思想。為了降低系統(tǒng)的開(kāi)發(fā)難度、提高系統(tǒng)的穩(wěn)定性、安全性和抗電磁干擾的能力,本設(shè)計(jì)放棄了原先的變壓整流供電方案,采用24V12W的直流電源適配器供電。電源電路主要提供4部分電源:S3C6410主控制器和其他外設(shè)芯片正常工作所需要的3.3V系統(tǒng)電源;USB模塊、LCD模塊、電平轉(zhuǎn)換電路和噴頭的邏輯電壓5V電源;檢測(cè)裝置中所需要的12V的檢測(cè)電壓;XJ128噴頭正常工作所需要的36V驅(qū)動(dòng)電壓。為了防止不同模塊之間由于功耗不同造成的電磁干擾,各模塊之間均采用獨(dú)立供電即每個(gè)模塊都需要單獨(dú)與直流電源適配器連接。在設(shè)計(jì)XJ128噴頭的36V驅(qū)動(dòng)電壓時(shí),由于市場(chǎng)上很難找到輸出為36V的穩(wěn)壓模塊,最后采用2片金升陽(yáng)帶隔離的DC-DC模塊VRB_MP-8W-24V和VRB_MP-8W-12V相疊加得到,并在電路的輸出端接入470Uf/50V的電解電容和0.1pF的貼片電容進(jìn)行穩(wěn)壓濾波。噴碼機(jī)電源電路在設(shè)計(jì)時(shí)選用了3個(gè)三端穩(wěn)壓芯片LM2575。該穩(wěn)壓電源是降壓型開(kāi)關(guān)穩(wěn)壓器的集成電路,采用貼片式封裝具有良好的散熱性,芯片內(nèi)部有完善的保護(hù)電路,其電壓輸出可調(diào)范圍為1.23~37V,開(kāi)關(guān)頻率為52kHz。例如,圖3為該芯片為檢測(cè)裝置提供12V的檢測(cè)電壓電路。其中VMP為開(kāi)關(guān)電源適配器的24V電壓輸出端,為了保證轉(zhuǎn)換電路的安全穩(wěn)定,在電路的輸入端接有濾波電容,考慮到電容的ESP應(yīng)盡可能小以減少電容漏電損耗,故選用了100pF/50V的電解電容,在電解電容兩端并聯(lián)了一個(gè)0.1pF的貼片電容以實(shí)現(xiàn)對(duì)高頻及脈動(dòng)干擾信號(hào)的有效濾除。電路輸出端接有肖特基二極管B340A用于續(xù)流,根據(jù)公式(1)并結(jié)合負(fù)載電流約為0.5A最終選用470pH的線圈磁芯電感。最后考慮到電容的等效串聯(lián)電阻和耐壓值等因素,最終選用470mF的電解電容,在其兩端并聯(lián)0.1pF的貼片電容進(jìn)行高頻濾波。式(1)中,VI表示LM2575的輸入電壓,VO為芯片的輸出電壓,f表示開(kāi)關(guān)頻率,T表示開(kāi)關(guān)周期,E表示線圈的感應(yīng)電動(dòng)勢(shì)。處理器要想實(shí)現(xiàn)對(duì)XJ128噴頭的控制以及圖像數(shù)據(jù)的傳輸,首先需要進(jìn)行電平轉(zhuǎn)換,本設(shè)計(jì)采用了2片74LVC4245用于完成處理器的3.3VCMOS邏輯電平和噴頭的5VTTL邏輯電平之間的轉(zhuǎn)換。74LVC4245為三態(tài)雙轉(zhuǎn)換總線接收發(fā)器[9],每個(gè)芯片擁有8路轉(zhuǎn)換接口,其中DIR引腳用于控制電平的轉(zhuǎn)換方向。S3C6410與XJ128噴頭之間主要通過(guò)11條信號(hào)線進(jìn)行數(shù)據(jù)傳輸,處理器通過(guò)其中的8條信號(hào)線向XJ128噴頭發(fā)送數(shù)據(jù)及控制指令,通過(guò)另外的3條信號(hào)線接收XJ128噴頭反饋的指令信息。圖4為S3C6410與噴頭的15針串口的連接示意圖。網(wǎng)絡(luò)模塊設(shè)計(jì)時(shí)采用DM9000A網(wǎng)卡芯片負(fù)責(zé)遠(yuǎn)程數(shù)據(jù)的傳輸,該網(wǎng)卡控制器支持10/100MB的傳輸模式和RJ-45標(biāo)準(zhǔn)接口[10],內(nèi)部帶有16KByte的SRAM作為數(shù)據(jù)的收發(fā)FIFO緩沖區(qū)。圖5為S3C6410與DM9000A的連接電路。本設(shè)計(jì)中,S3C6410與DM9000A采用16位模式相連,即DM9000A的SD0~SD15引腳分別與S3C6410的低16位數(shù)據(jù)線相連。片選信號(hào)CS引腳與處理器的Bank1引腳Xm0CS1相連,所以該芯片的物理基地址為0x18000000。DM9000A具有2個(gè)可以訪問(wèn)的端口,地址端口和數(shù)據(jù)端口,數(shù)據(jù)地址信息復(fù)用通過(guò)CMD引腳進(jìn)行選擇,例如:當(dāng)Xm0ADDR[2]為低電平時(shí),訪問(wèn)的為數(shù)據(jù)端口。另外DM9000A的中斷引腳與S3C6410處理器的EINT5相連,處理器通過(guò)EINT5引腳接收DM9000A的中斷請(qǐng)求。系統(tǒng)軟件設(shè)計(jì)主要包括XJ128噴頭驅(qū)動(dòng)程序設(shè)計(jì)和DM9000A網(wǎng)卡驅(qū)動(dòng)程序設(shè)計(jì)以及噴碼機(jī)應(yīng)用軟件設(shè)計(jì)。為方便應(yīng)用程序?qū)姶a機(jī)的硬件設(shè)備進(jìn)行靈活的控制,噴頭驅(qū)動(dòng)和網(wǎng)卡驅(qū)動(dòng)均采用流接口驅(qū)動(dòng)形式進(jìn)行編寫(xiě)。在流驅(qū)動(dòng)中外設(shè)被抽象成一個(gè)文件,應(yīng)用程序通過(guò)使用操作系統(tǒng)提供的文件API調(diào)用對(duì)應(yīng)的流式接口函數(shù)訪問(wèn)外設(shè)[11],即把對(duì)噴頭、網(wǎng)卡等硬件的操作轉(zhuǎn)變成對(duì)相應(yīng)文件的讀寫(xiě)控制。用戶(hù)只需要在相應(yīng)的接口函數(shù)中根據(jù)硬件設(shè)備的操作時(shí)序編寫(xiě)控制命令即可。流接口設(shè)備驅(qū)動(dòng)提供給操作系統(tǒng)標(biāo)準(zhǔn)的流接口,如:XXX_Init()、XXX_Read()和XXX_IOControl()等。4.1.1XJ128噴頭設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)噴頭驅(qū)動(dòng)程序的編寫(xiě)必須嚴(yán)格按照XJ128噴頭的邏輯時(shí)序進(jìn)行編寫(xiě),為了提高系統(tǒng)的效率,噴印環(huán)節(jié)是在中斷服務(wù)線程IST中完成的。當(dāng)E3Z-B61激光傳感器檢測(cè)到待噴印物體時(shí),與E3Z-B61的輸出端相連的EINT0弓I腳會(huì)接收到一個(gè)低電平信號(hào)從而產(chǎn)生一個(gè)IRQ(InterruptReQuset),該IRQ通過(guò)ISR被映射為OEM(OriginalEquipmentManufacturer)定義的邏輯中斷,操作系統(tǒng)根據(jù)該邏輯中斷通知內(nèi)核觸發(fā)噴印事件,然后該事件的IST便進(jìn)入就緒狀態(tài)并調(diào)度執(zhí)行噴印動(dòng)作。在編寫(xiě)噴頭的驅(qū)動(dòng)之前,需要完成的工作有兩點(diǎn):(1)5V邏輯電壓和36V驅(qū)動(dòng)電壓的上掉電時(shí)序控制,主要通過(guò)控制與GPE3和GPE4引腳相連的2個(gè)繼電器的通斷,分別實(shí)現(xiàn)對(duì)36V驅(qū)動(dòng)電壓和5V邏輯電壓的控制。需要注意的是:XJ128噴頭的驅(qū)動(dòng)電壓、邏輯電壓和復(fù)位必須滿足一定的上掉電順序[12],否則會(huì)縮短噴頭壽命甚至燒毀噴頭。(2)PWMTimer和SPI的設(shè)置,系統(tǒng)需要通過(guò)設(shè)置PWMTimer的TCFG0、TCFG1、TCMPB0、TCNTB0、TCON寄存器為XJ128噴頭提供1MHz的主時(shí)鐘。XJ128噴頭內(nèi)部有2個(gè)64位的移位寄存器[13],應(yīng)用程序中的數(shù)據(jù)通過(guò)SPI的MOSI引腳裝載到該寄存器中。通過(guò)配置SPI的MODE_CFG寄存器設(shè)置傳送模式為32位,只需要2次便可完成數(shù)據(jù)的裝載。因?yàn)閿?shù)據(jù)傳輸模式即可在查詢(xún)中又可在中斷中完成,為了進(jìn)一步提高數(shù)據(jù)傳輸?shù)乃俾?,本設(shè)計(jì)采用中斷模式,當(dāng)檢測(cè)到TX_DONE標(biāo)志位為1后立即進(jìn)入中斷函數(shù)完成數(shù)據(jù)傳輸。另外卜需要通過(guò)設(shè)置SPI的CLK_CFG寄存器使串口波特率跟噴頭的主時(shí)鐘保持一致。噴頭的邏輯時(shí)序圖如圖6。在WINCE6.0系統(tǒng)下,要完成XJ128噴頭設(shè)備驅(qū)動(dòng)程序的編寫(xiě),首先需要將寄存器的物理地址轉(zhuǎn)變成程序可以訪問(wèn)虛擬地址。具體實(shí)現(xiàn)方法是先通過(guò)函數(shù)VirtualAlloc()在,hareMemory上申請(qǐng)一段地址空間,然后通過(guò)函數(shù)VirtualCopy()將該地址映射到Kernel中虛擬地址上,這樣便可以通過(guò)程序?qū)崿F(xiàn)對(duì)噴頭、網(wǎng)卡等硬件設(shè)備的控制。完成地址映射后,接下來(lái)需要在函數(shù)PRT_Init()中完成相應(yīng)寄存器的配置工作,主要是對(duì)與XJ128噴頭的nREST(復(fù)位)、nFIRE(點(diǎn)火)、READY、nSS1和nSS2(片選)信號(hào)相連的GPG1、GPB8、GPB6、GPG14和GPG13弓I腳的寄存器進(jìn)行輸入輸出配置。同時(shí)要完成中斷初始化工作,具體實(shí)現(xiàn)是通過(guò)函數(shù)CreateEvent()創(chuàng)建噴印中斷事件并將該內(nèi)核事件賦值給句柄hPRTEvent,利用函數(shù)KernelIoControl()獲取IRQ的邏輯中斷服務(wù)號(hào)并賦值給dwPRTSysIrq,通過(guò)函數(shù)InterruptInitialize(hPRTEvent,wPRTSysIrq)將邏輯中斷號(hào)與中斷事件進(jìn)行綁定。最后通過(guò)函數(shù)CreateThread()、CeSetThreadPriority()創(chuàng)建該事件的IST并設(shè)置噴印事件為最高中斷優(yōu)先級(jí)。當(dāng)觸發(fā)噴印中斷事件,進(jìn)入函數(shù)PRTThread()后,先清除該事件的中斷標(biāo)志位,然后根據(jù)XJ128噴頭的控制時(shí)序完成噴頭驅(qū)動(dòng)程序的編寫(xiě)。圖7為噴頭設(shè)備驅(qū)動(dòng)程序的具體實(shí)現(xiàn)流程圖如下。4.1.2DM9000A網(wǎng)卡驅(qū)動(dòng)的集成設(shè)計(jì)網(wǎng)卡驅(qū)動(dòng)程序的集成設(shè)計(jì)主要包括DM9000A網(wǎng)卡芯片的初始化和數(shù)據(jù)幀的接收和發(fā)送。網(wǎng)卡的初始化部分是在初始化接口函數(shù)DM9_Init()中實(shí)現(xiàn)的,主要完成地址映射和相關(guān)寄存器的配置工作。首先完成地址的映射,本設(shè)計(jì)中直接在OEM層地址配置表(oemaddrtab_cff.inc)中查找到DM9000A芯片所使用的SROM的BANK1的虛擬地址為0x94000000,再經(jīng)過(guò)映射后作為網(wǎng)卡芯片內(nèi)部寄存器的首地址,這樣驅(qū)動(dòng)程序便可以直接訪問(wèn)該地址。然后,S3C6410需要通過(guò)對(duì)其外部控制總線和數(shù)據(jù)總線的讀寫(xiě)操作實(shí)現(xiàn)對(duì)DM9000A的相應(yīng)的控制寄存器的配置工作,其中關(guān)鍵寄存器的配置步驟如下:(1)完成芯片的復(fù)位喚醒工作后,通過(guò)配置芯片的GPR寄存器激活內(nèi)部PHY°(2)通過(guò)配置NCR寄存器設(shè)置芯片的軟復(fù)位并設(shè)置工作模式為回環(huán)模式。(3)設(shè)置IMR寄存器第8位為1,使能SRAM的讀寫(xiě)指針并通過(guò)向PAR寄存器寫(xiě)入6個(gè)字節(jié)的以太網(wǎng)節(jié)點(diǎn)地址設(shè)置MAC地址。(4)通過(guò)設(shè)置NCR寄存器使芯片工作模式切換到正常模式。(5)通過(guò)向NSR和ISR寄存器讀寫(xiě)1,分別清除發(fā)送標(biāo)志位和中斷狀態(tài)標(biāo)志位。(6)通過(guò)設(shè)置IMR寄存器開(kāi)啟DM9000A的讀寫(xiě)中斷使能。(7)設(shè)置RCR寄存器的第0位為1,開(kāi)啟網(wǎng)卡芯片的接收使能。完成以上寄存器的配置后,網(wǎng)卡芯片便可以正常啟動(dòng),完成數(shù)據(jù)包的接收和發(fā)送。數(shù)據(jù)幀的發(fā)送和接受是在DM9_IOControl()函數(shù)完成的,該函數(shù)中主要包含網(wǎng)卡的發(fā)送函數(shù)dm9000a_send(pInBuf,nInBufSize)和網(wǎng)卡的接收函數(shù)dm9000a_receive(pOutBuf,nOutBufsize)。其中pInBuf和pOutBuf分別為流接口函數(shù)傳入的發(fā)送數(shù)據(jù)指針和就收數(shù)據(jù)指針,nInBufSize和nOutBufsize為流接口函數(shù)傳入的相應(yīng)的發(fā)送、接收數(shù)據(jù)的長(zhǎng)度。本設(shè)計(jì)中網(wǎng)卡模塊主要完成噴碼機(jī)系統(tǒng)現(xiàn)場(chǎng)數(shù)據(jù)的采集工作即數(shù)據(jù)的發(fā)送環(huán)節(jié)。發(fā)送函數(shù)的具體實(shí)現(xiàn)流程如下:首先,將待發(fā)送的數(shù)據(jù)寫(xiě)入DM9000A的發(fā)送緩沖區(qū),將數(shù)據(jù)的長(zhǎng)度寫(xiě)入到發(fā)送數(shù)據(jù)包長(zhǎng)度寄存器(TXPLL/TXPLH)中,然后將發(fā)送控制寄存器(TCR)的第0位TXREQ位置1開(kāi)始發(fā)送數(shù)據(jù),檢測(cè)網(wǎng)絡(luò)狀態(tài)寄存器(NSR)的完成標(biāo)志位,需要注意的是PT標(biāo)志屬于ISR寄存器中的發(fā)送中斷標(biāo)志位,當(dāng)數(shù)據(jù)發(fā)送完畢后,PT會(huì)被置0,等到一幀數(shù)據(jù)發(fā)送完成后需要清除PT發(fā)送標(biāo)志位以方便發(fā)送新的數(shù)據(jù)幀。圖8為發(fā)送函數(shù)的工作流程圖。本設(shè)計(jì)采用PlatformBuilder6.0根據(jù)噴碼機(jī)系統(tǒng)的硬件配置對(duì)WINCE系統(tǒng)進(jìn)行了定制。主要是對(duì)S3C6410開(kāi)發(fā)板的BSP包的源碼進(jìn)行相應(yīng)的修改,修改內(nèi)容主要有:通過(guò)在OEMInit()函數(shù)中添加與噴頭、網(wǎng)卡和USB攝像頭等硬件相關(guān)的I/O端口配置代碼,完成噴碼機(jī)系統(tǒng)硬件設(shè)備的初始化工作。通過(guò)修改源碼配置文件中的Dirs、Source、MakeFile文件以及注冊(cè)表文件BIB和REG為系統(tǒng)添加噴頭驅(qū)動(dòng)、網(wǎng)卡驅(qū)動(dòng)和攝像頭驅(qū)動(dòng)等,并刪除系統(tǒng)不需要的驅(qū)動(dòng)功能。最后對(duì)修改好的BSP進(jìn)行編譯即可完成了系統(tǒng)定制工作,編譯后最終生成3個(gè)重要的文件:STEPLDR.nb1、EBOOT.nb0和NK.bin。系統(tǒng)定制完成后同時(shí)可以導(dǎo)出特定的SDK(SoftwareDevelopmentKit)供開(kāi)發(fā)噴碼機(jī)應(yīng)用程序使用。噴碼機(jī)應(yīng)用程序的開(kāi)發(fā)是在VS2005編譯環(huán)境下完成。程序設(shè)計(jì)中使用C++語(yǔ)言以及面向?qū)ο蟮脑O(shè)計(jì)思想,通過(guò)采用MFC編程方式[14]和多線程編程技術(shù)實(shí)現(xiàn)噴碼機(jī)應(yīng)用程序的開(kāi)發(fā)。該應(yīng)用軟件主要功能有:(1)讀取BMP位圖信息并實(shí)現(xiàn)位圖信息的加載與顯示;(2)通過(guò)數(shù)字圖像算法實(shí)現(xiàn)對(duì)位圖信息的幾何變換;(3)通過(guò)觸摸屏上的按鈕實(shí)現(xiàn)對(duì)噴碼機(jī)硬件的控制并與硬件進(jìn)行數(shù)據(jù)通信;(4)通過(guò)設(shè)置相應(yīng)的參數(shù)改變噴頭噴印的速度。圖9為噴碼機(jī)軟件主界面。根據(jù)以上功能應(yīng)用程序的編寫(xiě)采用了4個(gè)線程,其中主界面程序作為系統(tǒng)的主線程,在主線程中開(kāi)辟了位圖信息處理、軟硬件通信和噴印調(diào)速3個(gè)子線程。下面主要對(duì)新添加的位圖處理模塊進(jìn)行介紹。商標(biāo)等復(fù)雜的位圖文件的噴印是高解析噴碼機(jī)的重要功能,在噴印之前需要讀取位圖的有效數(shù)據(jù)并經(jīng)過(guò)編程驅(qū)動(dòng)后才能完成圖像的噴印。本設(shè)計(jì)通過(guò)創(chuàng)建CImgCenter類(lèi)實(shí)現(xiàn)對(duì)位圖信息的讀取,即通過(guò)函數(shù)read(LPCTSTRlpimgpathname)讀取保存在結(jié)構(gòu)體BITMAPFILEHEADER、BITMAPINFOH-HEADER和RGBQUAD中的數(shù)據(jù)實(shí)現(xiàn)對(duì)位圖文件頭、信息頭和調(diào)色板信息的讀取。通過(guò)函數(shù)write(LPCTSTRlpimgname)實(shí)現(xiàn)對(duì)已打開(kāi)的位圖文件的數(shù)據(jù)進(jìn)行修改。讀取完位圖數(shù)據(jù)后,需要對(duì)位圖信息進(jìn)行算法處理,即對(duì)位圖進(jìn)行幾何變換。該部分函數(shù)主要是在GeometryTrans類(lèi)中實(shí)現(xiàn)的。主要包含對(duì)位圖的放縮、旋轉(zhuǎn)和鏡像處理等。由于篇幅所限這里就不在螯述,下面以圖像的水平鏡像為例進(jìn)行介紹,水平鏡像是指對(duì)圖像進(jìn)行像素位置變換,形成一個(gè)與鏡面水平對(duì)稱(chēng)的另一圖像的過(guò)程[15],圖10為水平鏡像的坐標(biāo)示意圖。假設(shè)輸入的位圖寬度為w像素,則原圖中的像素點(diǎn)坐標(biāo)為(x0,y0)經(jīng)過(guò)水平鏡像后的坐標(biāo)為(w-1-x0,y0),于是水平鏡像的變換公式為:在GeometryTrans類(lèi)中,根據(jù)以上公式編寫(xiě)相應(yīng)的程序即可在應(yīng)用程序中實(shí)現(xiàn)位圖的鏡像處理。以噴印蘋(píng)果笑臉標(biāo)志為例對(duì)噴碼機(jī)系統(tǒng)進(jìn)行測(cè)試,首先通過(guò)DNW軟件依次STEPLDR.nb1、EBOOT.nb0和NK.bin文件下載到噴碼機(jī)系統(tǒng)的目標(biāo)板當(dāng)中,系統(tǒng)正常啟動(dòng)后,便可以通過(guò)U盤(pán)將應(yīng)用程序的可執(zhí)行文件(prt.exe)加載到目標(biāo)板的NANDFLASH當(dāng)中。然后關(guān)掉系統(tǒng)電源并連接好外圍硬件電路,主要是將XJ128噴頭、E6B2-CWZ6編碼器和E3Z-B61光電傳感器等器件連接到目標(biāo)板上。給噴碼機(jī)系統(tǒng)上電,通過(guò)應(yīng)用程序?qū)盤(pán)中的蘋(píng)果笑臉圖片加載到目標(biāo)板的NANDFLASH中,在應(yīng)用程序中打開(kāi)圖片并調(diào)節(jié)圖片大小為128x128,并調(diào)節(jié)噴頭噴印速度為44m/min,然后對(duì)圖片進(jìn)行鏡像調(diào)整并點(diǎn)擊噴印按鈕。等到傳送帶轉(zhuǎn)速穩(wěn)定在213r/min后,將實(shí)驗(yàn)用的白色紙盒放到傳送帶上,當(dāng)光電傳感器檢測(cè)到待噴印物體后,噴頭開(kāi)始噴印。其中圖11為待噴印的位圖圖片,圖12為實(shí)際的噴印結(jié)果。經(jīng)過(guò)實(shí)驗(yàn)測(cè)試表明:噴印過(guò)程中系統(tǒng)運(yùn)行穩(wěn)定,幾乎不存在電磁干擾的問(wèn)題;噴印速度表明改進(jìn)后的噴碼機(jī)系統(tǒng)噴印效率較高;增加了圖像處理和快捷菜單的噴碼機(jī)應(yīng)用軟件功能更加的豐富;實(shí)際圖像與噴印圖片存在鏡像關(guān)系且經(jīng)過(guò)應(yīng)用程序處理后的圖像數(shù)據(jù)噴印出來(lái)的圖像更加清晰。設(shè)計(jì)達(dá)到了預(yù)期效果。本文介紹了一種基于S3C6410和WINCE6.0為核心的高解析噴碼機(jī)系統(tǒng),從硬件和軟件兩個(gè)方面對(duì)噴碼機(jī)系統(tǒng)進(jìn)行了設(shè)計(jì)與開(kāi)發(fā)。模塊化的電源設(shè)計(jì)增強(qiáng)了系統(tǒng)的抗電磁干擾能力,檢測(cè)裝置的加入構(gòu)成了閉環(huán)控制系統(tǒng),使系統(tǒng)運(yùn)行更加的穩(wěn)定。中斷模式的加入,提高了系統(tǒng)的運(yùn)行效率。攝像頭和網(wǎng)卡模塊的加入,系統(tǒng)可以進(jìn)行遠(yuǎn)程動(dòng)態(tài)監(jiān)測(cè)。應(yīng)用軟件的開(kāi)發(fā)實(shí)現(xiàn)了噴碼機(jī)系統(tǒng)的人機(jī)交互。實(shí)驗(yàn)測(cè)試表明該系統(tǒng)運(yùn)行穩(wěn)定,噴印效果好,提高現(xiàn)代生產(chǎn)流水線作業(yè)的效率,具有很好的市場(chǎng)應(yīng)用價(jià)值。【相關(guān)文獻(xiàn)】EzzeldinM,vandenBoschPPJ,WeilanS,etal.Towardbetterprintingqualityforadrop-on-demandink-jetprinter:improvingperformancebyminimizingvariationsindropproperties[J].C

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論