基于嵌入式的無線條碼掃描儀系統(tǒng)的設(shè)計
2.3.2 無線收發(fā)模塊電路
ADF7020芯片集成了完整的無線收發(fā)電路。在接收模式下,相當(dāng)于一個傳統(tǒng)的超外差接收器,RF(射頻)輸入信號通過從RFIN管腳引出的天線,經(jīng)LNA(低噪聲放大器)放大后翻轉(zhuǎn)進(jìn)入混頻器,通過混頻器混頻產(chǎn)生IF(中頻)信號。在IF處理階段,該信號在送入解調(diào)器前被放大和濾波。解調(diào)后從引腳DATA I/O輸出解調(diào)數(shù)字信號,解調(diào)信號的同步由芯片提供的時鐘信號完成。
ADF7020芯片自帶SDATA、DATAI/O兩個串行接口實現(xiàn)數(shù)據(jù)收發(fā)功能,能夠與多種單片機(jī)(MSC51,ARM,AVR,PIC等) 直接兼容連接。在本系統(tǒng)中,LPC2142和ADF7020無線收發(fā)模塊之間通過串口相連,采用SP3232E芯片進(jìn)行RS232電平轉(zhuǎn)換。具體電路如圖 3所示。
系統(tǒng)軟件設(shè)計包括USB的驅(qū)動和基于USB的數(shù)據(jù)傳輸,無線數(shù)據(jù)的收發(fā),終端主機(jī)上數(shù)據(jù)庫應(yīng)用程序的開發(fā)。
3.1 USB的驅(qū)動和基于USB的數(shù)據(jù)傳輸
本系統(tǒng)的USB通信采用標(biāo)準(zhǔn)USB2.O協(xié)議,與USB控制器之間12 Mb/s的數(shù)據(jù)傳輸。該軟件編程是用C語言實現(xiàn)的,通信過程主要包括2部分:并口數(shù)據(jù)的采集和初始化。
并口數(shù)據(jù)的采集是通過輪詢的方式來進(jìn)行的。在系統(tǒng)上電后,LPC2142掃描USB端口,當(dāng)條碼掃描儀準(zhǔn)備工作,發(fā)送請求接收數(shù)據(jù)信號時,LPC2142接收到信號后,則從條碼掃描儀的數(shù)據(jù)端口將并口數(shù)據(jù)讀出。利用LPC2142芯片自帶的串行接口引擎對USB數(shù)據(jù)流進(jìn)行譯碼,并將數(shù)據(jù)寫入相應(yīng)的端點緩沖存儲器。在從條碼掃描儀向LPC2142進(jìn)行數(shù)據(jù)傳輸過程中,LPC2142向條碼掃描儀發(fā)送一個IN令牌,在條碼掃描儀接收到令牌后對數(shù)據(jù)進(jìn)行響應(yīng)。
初始化過程分2部分:ARM芯片的初始化和條碼掃描儀的初始化。ARM芯片的初始化過程就是直接向相應(yīng)的I/O口寫初始化值及設(shè)置看門狗,調(diào)用函數(shù)watchdog_init()實現(xiàn)設(shè)置看門狗。條碼掃描儀的初始化包含以下一些步驟:獲取設(shè)備描述符、設(shè)置條碼掃描儀USB地址、獲取配置描述符、加載USB配置值、發(fā)送數(shù)據(jù)接收符。
3.2 無線數(shù)據(jù)的收發(fā)
無線數(shù)據(jù)收發(fā)軟件設(shè)計,首先是在LPC2142接收到條碼掃描儀發(fā)送的數(shù)據(jù)后,發(fā)送一個信號給無線發(fā)送模塊,兩模塊之間的連接是采用RS 232轉(zhuǎn)接器來實現(xiàn),在接收到LPC2142的發(fā)送信號后,無線模塊返回接收信號,并打開RS 232轉(zhuǎn)接器,LPC2142接收到信號后,發(fā)送數(shù)據(jù)到收發(fā)模塊,收發(fā)模塊具有接收和發(fā)送的功能,在軟件的控制下實現(xiàn)數(shù)據(jù)收發(fā)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)pos機(jī)相關(guān)文章:pos機(jī)原理
評論