基于嵌入式的無線條碼掃描儀系統(tǒng)的設(shè)計(jì)
1 引 言
條碼技術(shù)是自動(dòng)識(shí)別技術(shù)中最成熟,也是應(yīng)用最廣泛和最成功的技術(shù)。條碼技術(shù)為快速準(zhǔn)確的數(shù)據(jù)采集、數(shù)據(jù)錄入提供了有效、可靠的手段,他與計(jì)算機(jī)、網(wǎng)絡(luò)通訊等一起構(gòu)成了現(xiàn)代商業(yè)自動(dòng)化的基礎(chǔ)。條碼符號(hào)制作容易,掃描操作簡(jiǎn)單易行,信息采集速度快,采集信息量大,設(shè)備結(jié)構(gòu)簡(jiǎn)單,成本低。因此在大型超市和物流系統(tǒng)中有著廣泛的運(yùn)用。
傳統(tǒng)的在線采集終端與計(jì)算機(jī)之間由電纜連接傳輸數(shù)據(jù),不能脫機(jī)使用。因此,在線式數(shù)據(jù)采集終端必須安裝在固定的位置,并且需把帶條碼符號(hào)的物品拿到掃描器前閱讀。由于在線式數(shù)據(jù)采集終端在使用距離上有一定的限制,使其不能應(yīng)用在需要脫機(jī)使用的場(chǎng)合,如較大新庫(kù)存盤點(diǎn),大件物品的掃描等。為了彌補(bǔ)在線式數(shù)據(jù)采集終端的不足之處,無線數(shù)據(jù)采集終端應(yīng)運(yùn)而生。而目前市面上的無線條碼掃描儀傳輸距離一般為30~100m的范圍內(nèi)。本系統(tǒng)所設(shè)計(jì)的基于嵌入式的無線條碼掃描儀,傳送距離可達(dá)800 m,并且系統(tǒng)本身具有一定的數(shù)據(jù)處理功能,很大程度上提高了無線條碼掃描的距離,增強(qiáng)了系統(tǒng)的功能。
2 系統(tǒng)設(shè)計(jì)
整個(gè)嵌入式無線條碼掃描系統(tǒng)由3部分組成,一是數(shù)據(jù)采集與發(fā)射裝置,主要由LPC2142和ADF7020無線收發(fā)芯片構(gòu)成;二是數(shù)據(jù)接收和終端接口電路,由ADF7020為核心構(gòu)成的接收電路,并由LPC2142進(jìn)行數(shù)據(jù)處理和與終端主機(jī)進(jìn)行數(shù)據(jù)傳輸;三是HOST主機(jī)數(shù)據(jù)庫(kù)管理系統(tǒng),對(duì)收集到的條碼數(shù)據(jù)進(jìn)行管理。
2.1 系統(tǒng)硬件構(gòu)成
系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
系統(tǒng)工作原理如下:條碼掃描儀讀取條碼信息,通過條碼掃描儀自帶的USB接口,和嵌入式接收裝置連接并傳輸數(shù)據(jù)。LPC2142將接收的數(shù)據(jù)通過串口送給ADF7020,ADF7020再通過無線網(wǎng)絡(luò)發(fā)給無線接收設(shè)備。與HOST連接的無線接收裝置接收到數(shù)據(jù)后,將數(shù)據(jù)通過串口傳到HOST主機(jī),由主機(jī)上的應(yīng)用數(shù)據(jù)系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行處理。
2.2 主要芯片介紹
本系統(tǒng)所使用的主要芯片分別是PHILIPS公司的LPC2142 ARM嵌入式芯片和ADI公司ADF7020無線收發(fā)芯片。
2.2.1 LPC2142芯片介紹
LPC2142是基于一個(gè)支持實(shí)時(shí)仿真和嵌入式跟蹤的32/16位ARM7TDMI—S CPU的微控制器,并帶有32kB和512 kB嵌入的高速FLASH存儲(chǔ)器。128位寬的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16 位Thumb模式將代碼規(guī)模降低超過30%,而性能的損失卻很小。
較小的封裝和很低的功耗使LPC2142特別適用于訪問控制POS機(jī)等小型應(yīng)用中;由于內(nèi)置了寬范圍的串行通信接口(從USB 2.0全速器件、多個(gè)UART,SPI,SSP到I2C總線)和8~40kB的片內(nèi)SRAM,他們也非常適合于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、軟Modem、語(yǔ)音識(shí)別、低端成像,為這些應(yīng)用提供大規(guī)模的緩沖區(qū)和強(qiáng)大的處理功能。多個(gè)32位定時(shí)器、1個(gè)或2個(gè)10位ADC,10位DAC,PWM通道、45個(gè)高速 GPIO以及多達(dá)9個(gè)邊沿或電平觸發(fā)的外部中斷管腳,使他們特別適用于工業(yè)控制和醫(yī)療系統(tǒng)。LPC2142是屬于工業(yè)級(jí)的應(yīng)用芯片,其工作溫度為 -40~+85℃,具有最優(yōu)化的電池消耗,特別適合運(yùn)用在小型手持系統(tǒng)之中。
在本系統(tǒng)運(yùn)用中,LPC2142起到2個(gè)作用,在數(shù)據(jù)采集與發(fā)射裝置端,其作用是通過接口電路,接收條碼掃描儀的掃描信息,并將其存儲(chǔ)在自帶的存儲(chǔ)器中,最后數(shù)據(jù)傳送到發(fā)射模塊。在數(shù)據(jù)接收和終端接口電路端,他的作用是接收從接收模塊輸送來的數(shù)據(jù),并通過其接口電路將數(shù)據(jù)傳輸?shù)浇K端主機(jī)。
2.2.2 ADF7020芯片介紹
ADF7020是ADI公司的產(chǎn)品,是一種低功耗,低IFISM頻段收發(fā)器,工作在433 MHz,868 MHz和915 MHz,電壓2.3~3.6 V,可編輸出功率從-16~13 dBm,1 kb/sFSK模式的接收靈敏度為-117.5 dBm或9.6 kb/s的-110.5 dBm,接收模式的功率為20 mA,10 dBm輸出的發(fā)送模式的功率為30 mA,其他特性包括VCO,分?jǐn)?shù)N PLL,片內(nèi)7位ADC,數(shù)字接收信號(hào)強(qiáng)度指示(RSSI),溫度傳感器以及全自動(dòng)AFC回路,關(guān)斷模式的電流小于1μA,在信號(hào)良好的情況下,傳輸距離可達(dá)800 m。在低成本數(shù)據(jù)傳輸器,遙控/安全系統(tǒng),無線測(cè)量和無鍵盤輸入方面有很大的應(yīng)用前景。
在本系統(tǒng)中,ADF7020是無線數(shù)據(jù)通信模塊的主要芯片,利用芯片本身集成的射頻、濾波、放大、數(shù)字信號(hào)處理的模塊,搭建收發(fā)一體的無線通信模塊。由于芯片無線通信距離遠(yuǎn)及其高度的集成化,使得無線模塊電路設(shè)計(jì)簡(jiǎn)單,調(diào)試方便,系統(tǒng)工作也更穩(wěn)定。
2.3 主要電路介紹
本系統(tǒng)硬件電路分為3個(gè)部分:條碼掃描儀和LPC2142之間的數(shù)據(jù)傳輸接口;數(shù)據(jù)無線收發(fā)電路;LPC2142和終端主機(jī)之間的接口電路,本系統(tǒng)采用串口與主機(jī)進(jìn)行數(shù)據(jù)通訊。
主要電路的設(shè)計(jì)介紹如下:
2.3.1 條碼接收電路
目前絕大多數(shù)條碼掃描儀的數(shù)據(jù)接口有USB和串口2種形式,USB接口數(shù)據(jù)傳輸速度快和安裝簡(jiǎn)單的優(yōu)點(diǎn)。在系統(tǒng)設(shè)計(jì)中,我們采用USB接口的掃描儀。條碼掃描儀讀取條碼信息后,通過USB將條碼信息傳送入LPC2142,LPC2142接收到條碼信息后,驅(qū)動(dòng)無線模塊將數(shù)據(jù)發(fā)送出去。
LPC2142帶有USB設(shè)備控制器,他由寄存器接口、串行接口引擎、端點(diǎn)緩沖存儲(chǔ)器和DMA控制器組成。串行接口引擎對(duì)USB數(shù)據(jù)流進(jìn)行譯碼,并將數(shù)據(jù)寫入相應(yīng)的端點(diǎn)緩沖存儲(chǔ)器。通過該控制器直接與USB接口的設(shè)備相連,其連接電路圖2所示。
2.3.2 無線收發(fā)模塊電路
ADF7020芯片集成了完整的無線收發(fā)電路。在接收模式下,相當(dāng)于一個(gè)傳統(tǒng)的超外差接收器,RF(射頻)輸入信號(hào)通過從RFIN管腳引出的天線,經(jīng)LNA(低噪聲放大器)放大后翻轉(zhuǎn)進(jìn)入混頻器,通過混頻器混頻產(chǎn)生IF(中頻)信號(hào)。在IF處理階段,該信號(hào)在送入解調(diào)器前被放大和濾波。解調(diào)后從引腳DATA I/O輸出解調(diào)數(shù)字信號(hào),解調(diào)信號(hào)的同步由芯片提供的時(shí)鐘信號(hào)完成。
ADF7020芯片自帶SDATA、DATAI/O兩個(gè)串行接口實(shí)現(xiàn)數(shù)據(jù)收發(fā)功能,能夠與多種單片機(jī)(MSC51,ARM,AVR,PIC等) 直接兼容連接。在本系統(tǒng)中,LPC2142和ADF7020無線收發(fā)模塊之間通過串口相連,采用SP3232E芯片進(jìn)行RS232電平轉(zhuǎn)換。具體電路如圖 3所示。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)包括USB的驅(qū)動(dòng)和基于USB的數(shù)據(jù)傳輸,無線數(shù)據(jù)的收發(fā),終端主機(jī)上數(shù)據(jù)庫(kù)應(yīng)用程序的開發(fā)。
3.1 USB的驅(qū)動(dòng)和基于USB的數(shù)據(jù)傳輸
本系統(tǒng)的USB通信采用標(biāo)準(zhǔn)USB2.O協(xié)議,與USB控制器之間12 Mb/s的數(shù)據(jù)傳輸。該軟件編程是用C語(yǔ)言實(shí)現(xiàn)的,通信過程主要包括2部分:并口數(shù)據(jù)的采集和初始化。
并口數(shù)據(jù)的采集是通過輪詢的方式來進(jìn)行的。在系統(tǒng)上電后,LPC2142掃描USB端口,當(dāng)條碼掃描儀準(zhǔn)備工作,發(fā)送請(qǐng)求接收數(shù)據(jù)信號(hào)時(shí),LPC2142接收到信號(hào)后,則從條碼掃描儀的數(shù)據(jù)端口將并口數(shù)據(jù)讀出。利用LPC2142芯片自帶的串行接口引擎對(duì)USB數(shù)據(jù)流進(jìn)行譯碼,并將數(shù)據(jù)寫入相應(yīng)的端點(diǎn)緩沖存儲(chǔ)器。在從條碼掃描儀向LPC2142進(jìn)行數(shù)據(jù)傳輸過程中,LPC2142向條碼掃描儀發(fā)送一個(gè)IN令牌,在條碼掃描儀接收到令牌后對(duì)數(shù)據(jù)進(jìn)行響應(yīng)。
初始化過程分2部分:ARM芯片的初始化和條碼掃描儀的初始化。ARM芯片的初始化過程就是直接向相應(yīng)的I/O口寫初始化值及設(shè)置看門狗,調(diào)用函數(shù)watchdog_init()實(shí)現(xiàn)設(shè)置看門狗。條碼掃描儀的初始化包含以下一些步驟:獲取設(shè)備描述符、設(shè)置條碼掃描儀USB地址、獲取配置描述符、加載USB配置值、發(fā)送數(shù)據(jù)接收符。
3.2 無線數(shù)據(jù)的收發(fā)
無線數(shù)據(jù)收發(fā)軟件設(shè)計(jì),首先是在LPC2142接收到條碼掃描儀發(fā)送的數(shù)據(jù)后,發(fā)送一個(gè)信號(hào)給無線發(fā)送模塊,兩模塊之間的連接是采用RS 232轉(zhuǎn)接器來實(shí)現(xiàn),在接收到LPC2142的發(fā)送信號(hào)后,無線模塊返回接收信號(hào),并打開RS 232轉(zhuǎn)接器,LPC2142接收到信號(hào)后,發(fā)送數(shù)據(jù)到收發(fā)模塊,收發(fā)模塊具有接收和發(fā)送的功能,在軟件的控制下實(shí)現(xiàn)數(shù)據(jù)收發(fā)。
3.3 數(shù)據(jù)庫(kù)應(yīng)用程序
本系統(tǒng)可為中、小型規(guī)模企業(yè)用戶提供完整的庫(kù)存業(yè)務(wù)管理和物料管理方案。他能徹底改善企業(yè)庫(kù)房管理不暢、貨物調(diào)配不及時(shí)、庫(kù)存查詢繁瑣、庫(kù)管人員太忙等不良工作狀況。本系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)包含:基礎(chǔ)檔案、系統(tǒng)管理、庫(kù)存業(yè)務(wù)管理、綜合查詢等模塊。具體框圖如圖4所示。
4 結(jié)語(yǔ)
本文提出了一種基于嵌入式無線條碼掃描儀的方案,并提出由ADF7020芯片構(gòu)成的無線收發(fā)模塊。系統(tǒng)能保證遠(yuǎn)距離數(shù)據(jù)通訊的可靠性,具有功能齊全、系統(tǒng)擴(kuò)展靈活、性能/價(jià)格比高等特點(diǎn)。以嵌入式為基礎(chǔ)的無線條碼掃描儀系統(tǒng),具有很大的實(shí)現(xiàn)性,在倉(cāng)管、超市、圖書、郵件等物品流通行業(yè)更有其優(yōu)勢(shì)。