亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        高解析噴碼機(jī)嵌入式系統(tǒng)的設(shè)計與實(shí)現(xiàn)

        2013-09-10 08:33:40王宏文王藝伶高維國
        自動化儀表 2013年4期
        關(guān)鍵詞:噴碼機(jī)驅(qū)動程序調(diào)用

        王宏文 王藝伶 高維國

        (河北工業(yè)大學(xué)控制科學(xué)與工程學(xué)院,天津 300130)

        0 引言

        隨著消費(fèi)者對產(chǎn)品的質(zhì)量意識日益增強(qiáng),政府相關(guān)部門不斷出臺新的法律法規(guī)對市場進(jìn)行嚴(yán)格的規(guī)范和管理,加上進(jìn)出口貿(mào)易規(guī)模的不斷擴(kuò)大,客觀要求國內(nèi)商品標(biāo)示及識別技術(shù)與國際標(biāo)準(zhǔn)接軌。噴碼機(jī)以其非觸噴印的特點(diǎn),非常適合在各種不同規(guī)格的產(chǎn)品本身或外表進(jìn)行噴印,它適合自動化流水線的生產(chǎn)方式,使其成為各行業(yè)生產(chǎn)商的首選方式[1]。噴碼機(jī)系統(tǒng)的發(fā)展正是嵌入式系統(tǒng)發(fā)展的典型代表。

        針對早期高解析噴碼機(jī)系統(tǒng)體積大、效率低、速度慢等缺點(diǎn),本文開發(fā)出基于WinCE+ARM9的嵌入式系統(tǒng)。WinCE操作系統(tǒng)環(huán)境下的應(yīng)用程序可直接進(jìn)行數(shù)據(jù)處理,驅(qū)動程序傳輸數(shù)據(jù),提供噴頭所需信號。該程序完善精簡了整個噴碼機(jī)系統(tǒng),提高了噴碼效率,具備小型便攜、通用性強(qiáng)、機(jī)動性高、可靠性好等特點(diǎn);且光電編碼器能夠?qū)崿F(xiàn)對傳送帶速度及方向的檢測,實(shí)現(xiàn)了實(shí)時測控。

        1 噴碼機(jī)系統(tǒng)的硬件設(shè)計

        按工作方式劃分,噴碼機(jī)可分為連續(xù)式噴印和按需噴印。但是連續(xù)式噴印廢墨,質(zhì)量較低,所以選擇按需噴印的高解析噴碼機(jī)[2]。高解析噴碼機(jī)為無壓力驅(qū)動工作,其通過墨水自身的重力自行噴出,噴印的字體類似于打印機(jī),解析度高,字體清晰[3]。

        1.1 工作原理

        高解析噴碼機(jī)的噴印頭由一系列緊密排列的細(xì)小噴嘴組成,油墨從噴嘴中噴出,可以噴出噴嘴寬度的二進(jìn)制二位圖形。所以噴頭每次所需的數(shù)據(jù)是可以噴印一列的數(shù)據(jù),而位圖數(shù)據(jù)信息是按照左下角到右上角的順序排列的,所以在把位圖轉(zhuǎn)換成二進(jìn)制位圖后,需要旋轉(zhuǎn)圖形數(shù)據(jù)信息,才能夠讀出位圖一列的數(shù)據(jù)。處理后位圖的高低位的放置與噴頭的串行接收數(shù)據(jù)方式相關(guān),噴頭在接收128 bit數(shù)據(jù)時,高位在前,所以在提取圖像點(diǎn)陣數(shù)據(jù)時應(yīng)把低位放在前面[4]。

        1.2 系統(tǒng)硬件設(shè)計

        賽爾(Xaar)公司的按需噴墨技術(shù)目前在包裝印刷領(lǐng)域特別是條碼標(biāo)識噴印方面,日益成為一種主流技術(shù)。

        噴印頭技術(shù)也在迅速改進(jìn),更大的噴印頭被研制出來,以適應(yīng)更大的覆蓋面,并具有更高的分辨率和更多的墨滴大小變化,以達(dá)到更好的噴印效果。系統(tǒng)采用的噴頭型號是賽爾XJ128噴頭。

        1.2.1 總體硬件設(shè)計

        噴碼機(jī)系統(tǒng)采用天嵌TQ2440開發(fā)板。底板上必須包括的電路有:33 V供電電路、復(fù)位電路、Jtag電路和Nor/Nand啟動選擇電路,否則可能導(dǎo)致開發(fā)板不能正常啟動。

        處理器選用三星公司生產(chǎn)的具有ARM9內(nèi)核的S3C2440,LCD選用天嵌14.33 cm觸摸屏作為操作界面,開發(fā)板和噴頭之間使用串行外設(shè)接口(serial peripheral interface,SPI)總線通信,主要用于將應(yīng)用程序處理好的數(shù)據(jù)傳輸給噴頭。噴頭可以接收并噴印該數(shù)據(jù),光電傳感器用于檢測傳輸帶的速度和方向并反饋給處理器,定時器向噴頭發(fā)送時鐘信號。根據(jù)應(yīng)用的需要,本系統(tǒng)采用了3種存儲器:①NOR Flash,用于存放系統(tǒng)引導(dǎo)程序等;②NAND Flash,作為程序存儲器,存放WinCE操作系統(tǒng)和應(yīng)用軟件等;③SDRAM,用作系統(tǒng)的內(nèi)存。

        系統(tǒng)硬件結(jié)構(gòu)如圖1所示。

        圖1 系統(tǒng)硬件結(jié)構(gòu)框圖Fig.1 Block diagram of the system hardware structure

        1.2.2 SPI總線接口原理與協(xié)議

        S3C2440A的SPI接口為串行數(shù)據(jù)傳輸接口。S3C2440A包括兩個SPI接口,每個接口分別有兩個8位的數(shù)據(jù)移位器用于發(fā)送和接收。傳輸8位串行數(shù)據(jù)的頻率由相應(yīng)的控制寄存器設(shè)置決定。同步信息移位和數(shù)據(jù)線的數(shù)據(jù)采集采用串行時鐘線。SPI分主設(shè)備和從設(shè)備,兩者通過SPI協(xié)議通信。SPI有4種模式,從設(shè)備的模式?jīng)Q定了主設(shè)備的模式。當(dāng)主設(shè)備的模式和從設(shè)備相同時,即可正常通信[5]。

        2 噴碼機(jī)系統(tǒng)的軟件設(shè)計

        WinCE是高度模塊化的嵌入式操作系統(tǒng),用戶可通過PB(PowerBuilder)工具根據(jù)具體的應(yīng)用需要,選擇需要的操作系統(tǒng)功能組件,然后生成操作系統(tǒng)運(yùn)行時的映像,同時導(dǎo)出特定的軟件開發(fā)工具包(software development kit,SDK)。

        2.1 應(yīng)用程序設(shè)計

        高解析噴碼機(jī)是點(diǎn)陣噴印,XJ128型號的噴嘴一列有128個噴眼,即噴印的圖形需轉(zhuǎn)換成一列共128個點(diǎn)(1代表有墨,0代表沒墨),一次性向噴碼機(jī)輸送128個數(shù)據(jù)。

        噴碼機(jī)系統(tǒng)的應(yīng)用程序按噴印信息分為6個模塊,分別是中英文文本模塊、位圖模塊、日期時間模塊、有效期模塊、序列號模塊和條形碼模塊[6]。系統(tǒng)需要處理的對象分為矢量字體和位圖。

        對于矢量字體,需要將其轉(zhuǎn)化為點(diǎn)陣以便噴碼機(jī)噴印,系統(tǒng)利用API函數(shù)TextOut實(shí)現(xiàn)矢量字體的顯示和轉(zhuǎn)化。在微軟基礎(chǔ)類(Microsoft foundation classes,MFC)中調(diào)用 Create-CompatibleDc和 CreateDIBSection函數(shù)可以創(chuàng)建一個兼容DC和兼容位圖,pDC->TextOut可以顯示矢量字體,然后將這個DC保存為位圖,就可以得到矢量字體的點(diǎn)陣數(shù)據(jù)[7]。

        對于位圖,盡管其已經(jīng)是點(diǎn)陣數(shù)據(jù),但是由于位圖的位深度各有不同,而噴印需要的數(shù)據(jù)僅僅是一位圖,因此為了可以噴印各種位圖,必須先進(jìn)行位圖的數(shù)據(jù)處理。WinCE操作系統(tǒng)中的API函數(shù)是Windows API函數(shù)的子集,在MFC中同樣沒有可以處理數(shù)字圖形的類,因此需要用類向?qū)砑右粋€Cdib類,用于處理數(shù)字圖形[8]。

        主要成員函數(shù)如下。

        數(shù)據(jù)處理完成后,將處理好的點(diǎn)陣數(shù)據(jù)存儲到數(shù)組中,通過串口通信噴頭進(jìn)行字體噴印。

        由于噴碼機(jī)需要不斷地傳輸二進(jìn)制碼,所以驅(qū)動程序是典型的流式驅(qū)動,WinCE提供流式接口驅(qū)動程序管理流式設(shè)備。在流式接口驅(qū)動程序中,驅(qū)動程序負(fù)責(zé)把外設(shè)抽象成一個文件,而應(yīng)用程序則使用操作系統(tǒng)提供的API對外設(shè)進(jìn)行訪問[9]。下面是程序的部分代碼。

        數(shù)據(jù)處理流程圖如圖2所示,這一部分是噴碼機(jī)應(yīng)用程序的重要功能。

        圖2 數(shù)據(jù)處理流程圖Fig.2 Flowchart of data processing

        2.2 驅(qū)動程序設(shè)計

        為了便于驅(qū)動程序的維護(hù)和移植,驅(qū)動設(shè)計采用分層驅(qū)動,包括模型設(shè)備驅(qū)動層(model device driver,MDD)和平臺相關(guān)驅(qū)動層(platform dependence diver,PDD)。MDD層包含某一類型的驅(qū)動程序所通用的相關(guān)代碼,PDD層包含特定的硬件或平臺專用的代碼。操作系統(tǒng)通過設(shè)備驅(qū)動程序接口(device driver interface,DDI)函數(shù)調(diào)用MDD,MDD通過設(shè)備驅(qū)動程序服務(wù)接口(device driver service interface,DDSI)函數(shù)調(diào)用PDD[10]。SPI驅(qū)動設(shè)計具體介紹如下。

        操作系統(tǒng)需要通過DDI接口與驅(qū)動MDD層交互。MDD層暴露的DDI函數(shù)GetRegistryData用來得到保存在注冊表中的硬件信息、獲取通信模式、時鐘極性、時鐘相位以及分頻值;函數(shù)InternalMapRegisters的功能是將SPI寄存器、GPIO寄存器、時鐘寄存器物理地址映射為虛擬地址,方便系統(tǒng)的調(diào)用和統(tǒng)一管理。SPI_Open的功能為打開設(shè)備進(jìn)行讀/寫操作,該函數(shù)在調(diào)用API函數(shù)CreateFile()時調(diào)用;SPI_Close的功能為關(guān)閉設(shè)備,該函數(shù)在調(diào)用API函數(shù)CloseHandle時調(diào)用。這些DDI函數(shù)需要調(diào)用PPD層暴露的DDSI函數(shù)實(shí)現(xiàn)與硬件的交互。分層驅(qū)動程序調(diào)用流程圖如圖3所示。

        圖3 分層驅(qū)動程序調(diào)用流程圖Fig.3 Flowchart of hierarchical driver calls

        MDD層通過調(diào)用DDSI接口函數(shù)實(shí)現(xiàn)與硬件的交互。PDD層中的HW_Init函數(shù)將MDD層獲得的參數(shù)傳遞給SPI寄存器賦值,并且初始化模式和傳輸數(shù)據(jù)。SPI驅(qū)動程序傳輸數(shù)據(jù)流程圖如圖4所示。

        圖4 SPI驅(qū)動程序傳輸數(shù)據(jù)流程圖Fig.4 Flowchart of SPI driver data transmission

        當(dāng)系統(tǒng)啟動后,設(shè)備管理器就會枚舉[HKEY_CAL_CHINEDriversBuiltIn]下的所有鍵值,并調(diào)用驅(qū)動的SPI_Init函數(shù)。如果函數(shù)調(diào)用成功,設(shè)備管理器就會將該驅(qū)動的信息寫入到[HKEY_LOCAL_MACHINEDriversActive]。當(dāng)系統(tǒng)不再使用該設(shè)備時,應(yīng)用程序可調(diào)用DeactivateDevice()函數(shù)把該驅(qū)動程序卸載。設(shè)備管理器會負(fù)責(zé)將sampledev.dll從vice.exe的虛擬地址空間中移除,并且從HKEY_CAL_MACHINEDriversActive鍵下移除對該設(shè)備驅(qū)動的記錄[11]。

        3 試驗結(jié)果

        測試表明,系統(tǒng)穩(wěn)定性強(qiáng),噴印速度較快,噴印效果清晰。噴印圖樣如圖5所示。

        圖5 噴印樣品Fig.5 Printed samples

        4 結(jié)束語

        本文研究和開發(fā)了工業(yè)生產(chǎn)應(yīng)用中的噴印控制系統(tǒng),包括硬件系統(tǒng)模塊化設(shè)計、圖形處理、界面開發(fā)、SPI總線協(xié)議的實(shí)現(xiàn)、流式驅(qū)動程序的編寫。系統(tǒng)將ARM9強(qiáng)大的處理和控制能力和WinCE的實(shí)時性、可剪裁性等特點(diǎn)結(jié)合起來,滿足系統(tǒng)微型化、高性能、實(shí)時性強(qiáng)的要求。

        [1]菲爾·依威斯.噴墨印刷技術(shù)的發(fā)展[J].印刷工業(yè),2007(3):12.

        [2]李小虎,王寶生.淺談噴碼機(jī)的使用和維護(hù)[J].包裝與食品機(jī)械,2006,24(5):50 -52.

        [3]姚晶,王尚偉.數(shù)字化噴碼技術(shù)的應(yīng)用與發(fā)展[J].絲網(wǎng)印刷,2007(2):40-42.

        [4]方耀祥.基于FPGA的高解析噴碼機(jī)控制器設(shè)計與實(shí)現(xiàn)[D].長沙:湖南大學(xué),2007.

        [5]陳淑珍,石波.基于Windows多線程環(huán)境下的串口通信[J].武漢大學(xué)學(xué)報:自然科學(xué)版,2000,15(3):373 -374.

        [6]曹景勝,霍春寶,王海星,等.基于WINCE的高解析噴碼系統(tǒng)上位機(jī)設(shè)計與實(shí)現(xiàn)[J].遼寧工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2010,30(5):281 -284.

        [7]周師亮.嵌入式噴印系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].長沙:湖南大學(xué),2005.

        [8]周長發(fā).精通Visual C++圖像處理編程[M].北京:電子工業(yè)出版社,2006.

        [9]秦紅勇,魏守水,徐從娟,等.基于ARM 和WinCE系統(tǒng)的圓圖無紙記錄儀的設(shè)計[J].自動化儀表,2011,32(2):81 -83,86.

        [10]何宗健.Widows CE嵌入式系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,2006.

        [11]莫雨.WindowsCE大排檔[M].北京:北京航空航天大學(xué)出版社,2011.

        猜你喜歡
        噴碼機(jī)驅(qū)動程序調(diào)用
        船用型材切割智能生產(chǎn)線噴碼機(jī)運(yùn)動控制研究
        核電項目物項調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        新型小字符噴碼機(jī)提供高質(zhì)量編碼和可靠性
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        馬肯依瑪士小字符噴碼機(jī)9400系列全新上市
        馬肯依瑪士9000系列新成員9028全新上市
        利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        亚洲国产美女在线观看| 精品国产青草久久久久福利| 国产福利一区二区三区在线视频| 欧美嫩交一区二区三区| 毛多水多www偷窥小便| 精品无码av不卡一区二区三区| 特一级熟女毛片免费观看| 蜜桃av无码免费看永久| 成人短篇在线视频夫妻刺激自拍| 久久麻传媒亚洲av国产| 中文字幕乱码高清完整版| 性欧美暴力猛交69hd| 成人午夜视频一区二区无码| 日本香蕉久久一区二区视频| 欧美成人a在线网站| 久久婷婷夜色精品国产| 国产精品nv在线观看| 懂色av一区二区三区网久久| 99riav国产精品视频| 久久成人国产精品免费软件| 摸进她的内裤里疯狂揉她动视频| 黑人性受xxxx黑人xyx性爽| 日本成人三级视频网站| 国产精品女直播一区二区| 97日日碰曰曰摸日日澡| 好吊色欧美一区二区三区四区| 日韩第四页| 亚洲av男人免费久久| 久久中文字幕暴力一区| 日本丰满少妇裸体自慰| 秋霞鲁丝片av无码| 欧美巨大精品欧美一区二区| 国产一区二区高清不卡在线| 日本最新一区二区三区视频观看 | 中国精品视频一区二区三区| 亚洲中文字幕高清乱码毛片| 久久久免费精品国产色夜| 免费看黄色亚洲一区久久| 国产精品无码av无码| 狠狠躁夜夜躁无码中文字幕| 久久精品国产亚洲精品色婷婷|