一種基于ARM11和RFID技術(shù)的智能物流管理系統(tǒng)設(shè)計(jì)
摘要:企業(yè)信息化建設(shè)的成敗,取決于完備和真實(shí)的數(shù)據(jù)自動(dòng)識(shí)別技術(shù),就是利用計(jì)算機(jī)系統(tǒng),進(jìn)行信息化數(shù)據(jù)自動(dòng)采集的一種信息技術(shù)。無線射頻識(shí)別技術(shù),RFID是自動(dòng)識(shí)別技術(shù)的一種高級(jí)形式具有獨(dú)特的技術(shù)優(yōu)勢(shì)。近年來RFID成為業(yè)界關(guān)注的焦點(diǎn),RFID在物流和供應(yīng)鏈管理中的應(yīng)用得到空前,應(yīng)用效果日益彰顯,成為物流和供應(yīng)鏈管理發(fā)展的巨大推動(dòng)力。本設(shè)計(jì)選擇ARM11當(dāng)下主流的MCU,結(jié)合RFID技術(shù),采用固定式RFID的讀卡器來采集信息,由串口發(fā)送至ARM11為核心的數(shù)據(jù)處理終端進(jìn)行處理,以簡(jiǎn)便的方式實(shí)現(xiàn)了物流系統(tǒng)中對(duì)貨品的出入庫(kù)操作。
本文引用地址:http://m.butianyuan.cn/article/248141.htm關(guān)鍵詞:RFID;ARM;智能物流;倉(cāng)庫(kù)管理系統(tǒng)
物流在整個(gè)企業(yè)的供應(yīng)鏈中占有非常重要的比重。通過RFID的批量識(shí)別,實(shí)現(xiàn)物流的出庫(kù),入庫(kù),和分揀流程。通過GPS定位系統(tǒng),實(shí)時(shí)獲取車輛在途信息。通過服務(wù)器和數(shù)據(jù)中心的實(shí)時(shí)數(shù)據(jù)分析和報(bào)表功能,可能掌握企業(yè)資源的動(dòng)態(tài)變化。智能物流系統(tǒng)大幅提升整個(gè)供應(yīng)鏈的效率。
1 系統(tǒng)方案
在本設(shè)計(jì)中采用固定式RFID的讀卡器來采集信息,由串口發(fā)送至ARM11為核心的數(shù)據(jù)處理終端進(jìn)行處理。因此該系統(tǒng)分為兩個(gè)部分。
第一部分:RFID電子標(biāo)簽信息的采集,主要是選擇固定式的讀卡器來識(shí)別RFID標(biāo)簽信息并發(fā)向終端;
第二部分:數(shù)據(jù)采集,該部分以ARM11為核心處理器的數(shù)據(jù)處理終端,在終端上搭載Linux操作系統(tǒng),并安裝有數(shù)據(jù)庫(kù)SQLite和QT/E來進(jìn)行數(shù)據(jù)的采集和存儲(chǔ)。
2 實(shí)現(xiàn)模塊
本系統(tǒng)的實(shí)現(xiàn)依賴于以下4個(gè)功能模塊:1)RFID信息的采集;2)串口數(shù)據(jù)的實(shí)時(shí)讀取;3)SQLite數(shù)據(jù)的操作;4)Qt/E用戶界面的設(shè)計(jì)。
2.1 RFID電子信息的采集
2.1.1 RFID電子標(biāo)簽
RFID電子標(biāo)簽分為被動(dòng)標(biāo)簽(Passive tags)和主動(dòng)標(biāo)簽(Aetlve tags)兩種。主動(dòng)標(biāo)簽自身帶有電池供電,讀/寫距離較遠(yuǎn),同時(shí)體積較大,與被動(dòng)標(biāo)簽相比成本更高,也稱為有源標(biāo)簽。被動(dòng)標(biāo)簽由閱讀器產(chǎn)生的磁場(chǎng)中獲得工作所需的能量,成本很低并具有很長(zhǎng)的使用壽命,比主動(dòng)標(biāo)簽更小也更輕,讀寫距離則較近,也稱為無源標(biāo)簽。一般來說,無源標(biāo)簽是取代條形碼標(biāo)簽的主要發(fā)展方向,有源標(biāo)簽因?yàn)槠溟L(zhǎng)距離識(shí)別的優(yōu)勢(shì),主要應(yīng)用于大型的高速運(yùn)動(dòng)物體的標(biāo)識(shí)識(shí)別之上。如機(jī)動(dòng)車的跟蹤和識(shí)別、動(dòng)物或人類身份的跟蹤和識(shí)別。
下面主要是以無源標(biāo)簽為例介紹其原理和性能的。
RFID電子標(biāo)簽由天線和專用芯片組成,天線是存塑料片基上鍍上的銅膜線圈,在塑料基片上還嵌有體積非常小的集成電路芯片,在這個(gè)集成電路芯片中有高速的射頻接口,控制單元,EEPROM 3個(gè)模塊組成。如圖1所示。
2.1.2 電子標(biāo)簽識(shí)別系統(tǒng)
一個(gè)真正的RFID電子標(biāo)簽識(shí)別系統(tǒng)至少應(yīng)包含電子標(biāo)簽、閱讀器、數(shù)據(jù)處理和存儲(chǔ)的設(shè)備以及系統(tǒng)軟件。通常閱讀器與電腦相連,所讀取的標(biāo)簽信息被傳送到電腦上進(jìn)行下一步處理。閱讀器通過天線發(fā)送出一定頻率的射頻信號(hào),當(dāng)標(biāo)簽進(jìn)入這一定頻率的射頻信號(hào)磁場(chǎng)時(shí)產(chǎn)生感應(yīng)電流從而獲得電能,產(chǎn)生電壓供給電子標(biāo)簽內(nèi)集成電路工作,并通過自身的RFID電子標(biāo)簽天線發(fā)送出自身編碼等信息,由閱讀器接收天線接收讀取并解碼后送至電腦主機(jī)進(jìn)行相關(guān)處理。
2.1.3 射頻讀卡模塊
本設(shè)計(jì)采用的讀卡器是TX125系列射頻讀卡模塊。TX125系列非接觸IC卡射頻讀卡模塊采用125K射頻基站。當(dāng)有卡靠近模塊時(shí),模塊會(huì)以韋根或UART方式輸出ID卡卡號(hào),用戶僅需簡(jiǎn)單的讀取即可。該讀卡模塊完全支持EM、TEMIC、TK及其兼容卡片的操作。
數(shù)據(jù)格式:6字節(jié)數(shù)據(jù),高位在前,格式為5字節(jié)數(shù)據(jù)+1字節(jié)校驗(yàn)和(異或和)。例如:卡號(hào)數(shù)據(jù)為0B00D5FOC7,則輸出為0x0B 0x00 0xD5 0xF0 0xC7 0xE9(校驗(yàn)和計(jì)算:0x0B^0x00^0xD5^0xF0^0xC7=0xE9)。第一個(gè)字節(jié)0x0B一般是廠家碼。中間4個(gè)字節(jié)0x00 0xD5 0xF0 0xC7是卡片的序列號(hào)。一般卡片上印刷的都是10進(jìn)制碼。例如:001402807213 61639。上面的數(shù)據(jù)可以通過轉(zhuǎn)換得到。轉(zhuǎn)換方式如下:將中間4個(gè)字節(jié)卡號(hào)0x00D5F0C7轉(zhuǎn)換為十進(jìn)制,即得001402807;將卡號(hào)的第二字節(jié)0xD5轉(zhuǎn)換為十進(jìn)制,即得213,將卡號(hào)的最后兩字節(jié)0xF0C7轉(zhuǎn)換為十進(jìn)制,即得61639。
在串口方式下,可工作存主動(dòng)與被動(dòng)模式。主動(dòng)模式:當(dāng)有卡進(jìn)入該射頻區(qū)域內(nèi)時(shí),主動(dòng)發(fā)出以上格式的卡號(hào)數(shù)據(jù)。被動(dòng)模式:CLK的下降沿觸發(fā)卡號(hào)的輸出,格式為以上數(shù)據(jù)格式。操作方法為:在準(zhǔn)備讀取卡號(hào)之前,打開串口中斷并啟動(dòng)超時(shí)定時(shí)器(80 ms),將一直保持高電平的CLK置低電平,產(chǎn)生下降沿并一直保持低電平,等待卡號(hào)數(shù)據(jù)接收,若接收到卡號(hào)后存儲(chǔ)待用,若在等待過程中無數(shù)據(jù)接收,且超時(shí)定時(shí)器已經(jīng)溢出,則表示本次讀取卡號(hào)失敗;無論成功與失敗最后都將CLK重新置高電平,進(jìn)入待機(jī)以便下一次讀取卡號(hào)。
串口通訊協(xié)議,就是讀卡模塊以何種格式把讀取到的卡號(hào)發(fā)送出來。TX125支持韋根接口和串口兩種協(xié)議。UART接口一幀的數(shù)據(jù)格式為:1個(gè)起始位、8個(gè)數(shù)據(jù)位、無奇偶校驗(yàn)位、1個(gè)停止位。波特率可選擇9 600 bps或者19 200 bps。在本設(shè)計(jì)中連接6 410網(wǎng)關(guān)設(shè)備的/dev/tty SAC1串口設(shè)備,選擇設(shè)置波特率為9 600。
采用多線程的方式等待RFID刷寫讀卡器,主要函數(shù):pthread_create (&th_kb,NULL,KeyBoardPthread,0);pthread_creat (&rf_ rev,NULL,RFIDRevPthread,0)。建立兩個(gè)線程,第一個(gè)是以鍵盤輸入的方式讀寫RFID信息,第二個(gè)線程的功能是監(jiān)控串口/dev/ttySAC1中的信息,已實(shí)現(xiàn)實(shí)時(shí)的捕捉刷寫RFID標(biāo)簽信息。
2.2 串口數(shù)據(jù)的實(shí)時(shí)讀取
在linux操作系統(tǒng)中,對(duì)外設(shè)的訪問往往都是使用open()函數(shù),以打開文件的方式讀取數(shù)據(jù)。在本設(shè)計(jì)中對(duì)串口數(shù)據(jù)的瀆取也正是通過open()函數(shù)打開/dev/ttySAC1這一串口驅(qū)動(dòng)文件,獲取由讀卡器發(fā)送給ARM11主核心板的數(shù)據(jù),實(shí)現(xiàn)函數(shù)為open(/dev/ttySAC1,O_RDWR | O_NOCTTY),標(biāo)志位為O_RDWR | O_NOCTTY,意義是系統(tǒng)以可讀寫的方式打開文件,如果欲打開的文件為終端設(shè)備時(shí),則不會(huì)將該終端當(dāng)成進(jìn)程控制終端。
評(píng)論