基于嵌入式的無(wú)線條碼掃描儀系統(tǒng)的設(shè)計(jì)
2.3.2 無(wú)線收發(fā)模塊電路
ADF7020芯片集成了完整的無(wú)線收發(fā)電路。在接收模式下,相當(dāng)于一個(gè)傳統(tǒng)的超外差接收器,RF(射頻)輸入信號(hào)通過(guò)從RFIN管腳引出的天線,經(jīng)LNA(低噪聲放大器)放大后翻轉(zhuǎn)進(jìn)入混頻器,通過(guò)混頻器混頻產(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無(wú)線收發(fā)模塊之間通過(guò)串口相連,采用SP3232E芯片進(jìn)行RS232電平轉(zhuǎn)換。具體電路如圖 3所示。
系統(tǒng)軟件設(shè)計(jì)包括USB的驅(qū)動(dòng)和基于USB的數(shù)據(jù)傳輸,無(wú)線數(shù)據(jù)的收發(fā),終端主機(jī)上數(shù)據(jù)庫(kù)應(yīng)用程序的開(kāi)發(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)的,通信過(guò)程主要包括2部分:并口數(shù)據(jù)的采集和初始化。
并口數(shù)據(jù)的采集是通過(guò)輪詢的方式來(lái)進(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ù)寫(xiě)入相應(yīng)的端點(diǎn)緩沖存儲(chǔ)器。在從條碼掃描儀向LPC2142進(jìn)行數(shù)據(jù)傳輸過(guò)程中,LPC2142向條碼掃描儀發(fā)送一個(gè)IN令牌,在條碼掃描儀接收到令牌后對(duì)數(shù)據(jù)進(jìn)行響應(yīng)。
初始化過(guò)程分2部分:ARM芯片的初始化和條碼掃描儀的初始化。ARM芯片的初始化過(guò)程就是直接向相應(yīng)的I/O口寫(xiě)初始化值及設(shè)置看門(mén)狗,調(diào)用函數(shù)watchdog_init()實(shí)現(xiàn)設(shè)置看門(mén)狗。條碼掃描儀的初始化包含以下一些步驟:獲取設(shè)備描述符、設(shè)置條碼掃描儀USB地址、獲取配置描述符、加載USB配置值、發(fā)送數(shù)據(jù)接收符。
3.2 無(wú)線數(shù)據(jù)的收發(fā)
無(wú)線數(shù)據(jù)收發(fā)軟件設(shè)計(jì),首先是在LPC2142接收到條碼掃描儀發(fā)送的數(shù)據(jù)后,發(fā)送一個(gè)信號(hào)給無(wú)線發(fā)送模塊,兩模塊之間的連接是采用RS 232轉(zhuǎn)接器來(lái)實(shí)現(xiàn),在接收到LPC2142的發(fā)送信號(hào)后,無(wú)線模塊返回接收信號(hào),并打開(kāi)RS 232轉(zhuǎn)接器,LPC2142接收到信號(hào)后,發(fā)送數(shù)據(jù)到收發(fā)模塊,收發(fā)模塊具有接收和發(fā)送的功能,在軟件的控制下實(shí)現(xiàn)數(shù)據(jù)收發(fā)。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)pos機(jī)相關(guān)文章:pos機(jī)原理
評(píng)論