技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 生產(chǎn)線嵌入式RFID終端讀寫器設(shè)計(jì)

生產(chǎn)線嵌入式RFID終端讀寫器設(shè)計(jì)

時(shí)間:2010-04-26 16:47:08來源:wuyue

導(dǎo)語(yǔ):?本文中描述了嵌入式RFID 終端讀取器及其在生產(chǎn)線上的實(shí)際應(yīng)用。
一、研究背景及設(shè)計(jì)方案

      RFID 是射頻識(shí)別技術(shù)(Radio Frequency Identification)的英文縮寫,射頻識(shí)別技術(shù)是一種非接觸式的自動(dòng)識(shí)別技術(shù),它使用射頻電磁波通過空間耦合(交變磁場(chǎng)或電磁場(chǎng))在閱讀器和要進(jìn)行識(shí)別、分類和跟蹤的移動(dòng)物品(物品上附著有RFID 標(biāo)簽)之間實(shí)現(xiàn)無接觸信息傳遞并通過所傳遞的信息達(dá)到識(shí)別目的的技術(shù)。RFID 是一種自動(dòng)識(shí)別和數(shù)據(jù)捕獲技術(shù),可以提供無人看管的自動(dòng)監(jiān)視與報(bào)告作業(yè)。

      RFID 閱讀器的工作原理如下:閱讀器通過天線發(fā)送出一定頻率的射頻信號(hào),當(dāng)標(biāo)簽進(jìn)入磁場(chǎng)時(shí)產(chǎn)生感應(yīng)電流從而獲得能量,發(fā)送出自身編碼和相關(guān)信息被讀取器讀取并解碼后送回到計(jì)算機(jī)中進(jìn)行有關(guān)處理,。識(shí)別工作無須人工干預(yù),可工作于各種惡劣環(huán)境。高性能的RFID 讀寫器可以同時(shí)識(shí)別多個(gè)物體。

      在工業(yè)生產(chǎn)線RFID 系統(tǒng)中,由于生產(chǎn)線現(xiàn)場(chǎng)的工作環(huán)境復(fù)雜,各類電磁干擾源非常多,采集點(diǎn)的數(shù)量多,而通常的RFID 讀寫器,由于采用單片機(jī)為主控制器,運(yùn)算能力弱,本地不具備數(shù)據(jù)分析和存儲(chǔ)能力,不具備較強(qiáng)的抗干擾能力,對(duì)后臺(tái)系統(tǒng)數(shù)據(jù)處理能力要求較高,而在工業(yè)生產(chǎn)線上,如果直接將所有采集點(diǎn)(通常多達(dá)數(shù)百點(diǎn))所讀取的信息直接傳回服務(wù)器,由于要在服務(wù)器上進(jìn)行繁重的數(shù)據(jù)分析和干擾排除,過大的數(shù)據(jù)量和計(jì)算量很容易造成服務(wù)器端的信息堵塞,進(jìn)而影響系統(tǒng)的穩(wěn)定性。所以現(xiàn)有的解決方案往往直接使用價(jià)格昂貴的工業(yè)PC 機(jī)完成前端工作,但這樣無疑大大增加了總體的部署成本。本系統(tǒng)的設(shè)計(jì)思路見圖(1)通過功能強(qiáng)大的RFID 嵌入式終端,直接在本地完成復(fù)雜的標(biāo)簽讀取,數(shù)據(jù)糾錯(cuò),干擾排除,信息提取和數(shù)據(jù)保存等工作,僅將有效信息通過網(wǎng)絡(luò)傳輸給后臺(tái)服務(wù)器,這樣就大大降低網(wǎng)絡(luò)通信的開銷,降低了服務(wù)器的資源占用,從而提高了系統(tǒng)整體的運(yùn)行效率,提高了穩(wěn)定性,增加了業(yè)務(wù)的靈活性。

二、系統(tǒng)的總體硬件設(shè)計(jì)

      為了達(dá)到設(shè)計(jì)功能和環(huán)境需求,本系統(tǒng)底板采用了PCB 6 層設(shè)計(jì),機(jī)殼加裝了電磁屏蔽網(wǎng),另外專門配備了PCMCIA 接口用來外接RFID 讀寫模塊,采用的主要元件如下:

① 微處理器(MPU):針對(duì)終端需要高速運(yùn)算和數(shù)據(jù)庫(kù)操作的需要,并考慮到系統(tǒng)外圍設(shè)備的需求情況,本系統(tǒng)采用ARM9 核的SAMSUNG S3C2410 處理器。最高主頻可達(dá)203MHz。 

② SDRAM 存儲(chǔ)部分:采用兩顆Hynix 公司的HY57V561620CT 內(nèi)存,大小為32M。 

③ FLASH 存儲(chǔ)器:采用SAMSUNG 公司的K9F1208UOM Nand Flash,大小為64M。 

④ RFID 閱讀器模塊:采用了WJ 公司的MPR6000 系列產(chǎn)品,PCMCIA 接口。 

⑤ 網(wǎng)絡(luò)通信模塊:采用了Realtek 8039 芯片,支持10M/100M 網(wǎng)絡(luò)通信。

三、系統(tǒng)的軟件系統(tǒng)介紹

      系統(tǒng)的軟件部分主要由Linux 基本系統(tǒng)、RFID 標(biāo)簽識(shí)別解析模塊、嵌入式數(shù)據(jù)庫(kù)操作模塊、網(wǎng)絡(luò)通信等模組成,軟件模塊關(guān)系如圖(2),下面簡(jiǎn)單介紹一下各模塊的功能和主要函數(shù)。

① Linux 基本系統(tǒng)

      由于Linux 成本低,代碼開放,穩(wěn)定性高,多線程,支持USB、Flash 等多種外設(shè),底層支持TCP/IP 網(wǎng)絡(luò),故本系統(tǒng)將其移植到ARM9 上作為操作系統(tǒng),內(nèi)核版本號(hào)為2.4.1。由于文件系統(tǒng)涉及數(shù)據(jù)庫(kù)文檔保存,故采用了YAFFS 文件系統(tǒng),另外就是針對(duì)本系統(tǒng)采用的外設(shè)和功能對(duì)Linux 內(nèi)核作了相應(yīng)裁減,以降低其內(nèi)存占用。提高速度。

② RFID 標(biāo)簽識(shí)別解析模塊

      在設(shè)計(jì)中采用了WJ 公司PCMCIA 接口的RFID 讀寫器模塊MPR6000,該模塊通過UART-over-PC BUS 總線與嵌入式主機(jī)進(jìn)行數(shù)據(jù)通信,其通信的特點(diǎn)如下:遵循命令-回復(fù)的通信模式,首先由系統(tǒng)向RFID 讀寫模塊發(fā)命令幀,讀寫模塊在識(shí)別到通信包頭的時(shí)候讀取命令字,并進(jìn)行CRC 糾錯(cuò),如果錯(cuò)誤的話則忽略該幀,有效地話則執(zhí)行相關(guān)指令,并將讀取的標(biāo)簽信息及結(jié)果編成返回?cái)?shù)據(jù)幀傳給系統(tǒng),系統(tǒng)收到通信幀時(shí)也同樣進(jìn)行包頭識(shí)別和CRC 糾錯(cuò),如正確的話就進(jìn)行解包并取得標(biāo)簽相關(guān)信息。

命令包的格式如下

      命令幀范例樣本如下:01 00 0D 11 00 1E 01 18 30 18 2E B7 69 CC通過解包后表示如下內(nèi)容:從一號(hào)天線,以1E 的功率,讀取過濾碼(即標(biāo)簽前幾位的ID 號(hào))為30 18 2E B7 的RFID EPC Class0 標(biāo)簽,幀長(zhǎng)度為0D,CRC 糾錯(cuò)碼為69CC。

返回幀的格式如下

      返回幀范例樣本如下:01 00 11 01 01 30 18 2E B7 20 00 00 00 00 00 00 74 F6 
 
      通過解包后表示如下內(nèi)容:讀取到一個(gè)96bit 的EPC 標(biāo)簽,標(biāo)簽ID 為 30 18 2E B7 20 00 00 00 00 00 00 00 ,讀取操作完成,數(shù)據(jù)幀長(zhǎng)度為11,CRC 糾錯(cuò)碼為74F6。

      針對(duì)通信幀的特點(diǎn)設(shè)計(jì)的Linux 平臺(tái)驅(qū)動(dòng)軟件由以下幾個(gè)主要的子函數(shù)組成:

1、 unsigned short CalculateBlockCRC16(int len, unsigned char *pBuf);進(jìn)行CRC計(jì)算和驗(yàn)證 

2、 int AppendCRC(void *pBuf, unsigned short CRC);將算出的CRC 值添加到請(qǐng)求包指定位置 

3、 int UartSend(void *pBuf,int uart_num);將算出的CRC 及命令字發(fā)送到指定串口 

4、 int UartRead(unsigned char *pBuf, int uart_num);從指定的串口讀入返回的數(shù)據(jù)包 

5、 int CRCcheck(unsigned char *pBuf, unsigned short CRC);比對(duì)得到的CRC與數(shù)據(jù)包是否正確 

6、 int ProcessTag(unsigned char *pBuf, unsigned char Tags[ ]);

      處理得到的返回楨,分離出讀取到的條碼編號(hào),并存入數(shù)組進(jìn)行暫存,為下一步數(shù)據(jù)庫(kù)存取做好準(zhǔn)備除以上子函數(shù)外,還有其它相應(yīng)的函數(shù)來進(jìn)行剔除干擾數(shù)據(jù)包,處理異常等工作,經(jīng)本模塊處理后,已經(jīng)可以確??梢赃^濾絕大多部分的干擾信息了,這樣處理完的數(shù)據(jù)就可以直接進(jìn)行數(shù)據(jù)庫(kù)記錄和通過網(wǎng)絡(luò)傳輸給后臺(tái)數(shù)據(jù)庫(kù)了。

③ 嵌入式數(shù)據(jù)庫(kù)操作模塊

      嵌入式數(shù)據(jù)庫(kù)是整個(gè)系統(tǒng)的重要組成部分,在本系統(tǒng)中采用了開源的小型嵌入式數(shù)據(jù)庫(kù)SQLite,支持SQL 92 標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)操作語(yǔ)句和事務(wù),其工作流程如下:當(dāng)讀取到條碼時(shí),本模塊將條碼號(hào)、讀取時(shí)間、條碼內(nèi)容、采集點(diǎn)編號(hào),操作狀態(tài)等信息寫入本地?cái)?shù)據(jù)庫(kù),從而實(shí)現(xiàn)采集數(shù)據(jù)的本地初步存儲(chǔ),數(shù)據(jù)庫(kù)在此列舉幾個(gè)主要的子函數(shù)如下:

1、int Query_Init(string *p_command, struct *p_DB_Status, int type);選擇基本的SQL 操作符符號(hào)和初始值設(shè)置,為執(zhí)行數(shù)據(jù)庫(kù)操作做好準(zhǔn)備。 

2、int Query_Exec(int db,string *p_command,void (* p_fuction) (*str),(void *)&res);選擇數(shù)據(jù)庫(kù),根據(jù)SQL 操作符進(jìn)行數(shù)據(jù)庫(kù)操作,并將返回?cái)?shù)據(jù)通過p_function 函數(shù)處理。 

3、int Query_CallBack(void *p_data, int num, char **value, char **column);將數(shù)據(jù)庫(kù)操作返回的數(shù)據(jù)列表暫存到數(shù)組中,以待下一步處理。

      除以上函數(shù)外,還預(yù)留了相應(yīng)的接口用來完成前端數(shù)據(jù)庫(kù)和后臺(tái)數(shù)據(jù)庫(kù)的同步,經(jīng)測(cè)試,平均插入一條數(shù)據(jù)的時(shí)間<=0.01 秒,滿足了系統(tǒng)的即時(shí)性上的需求。

④ 網(wǎng)絡(luò)通信模塊

      本系統(tǒng)的特色就是通過嵌入式Linux 操作系統(tǒng)的網(wǎng)絡(luò)底層支持,以多種網(wǎng)絡(luò)傳輸途徑,將數(shù)據(jù)和后臺(tái)數(shù)據(jù)服務(wù)器進(jìn)行數(shù)據(jù)傳輸。在本系統(tǒng)的網(wǎng)絡(luò)部分設(shè)計(jì)中,在局域網(wǎng)內(nèi)利用Linux系統(tǒng)的提供的TCP/IP 協(xié)議支持,在編程中采用了動(dòng)態(tài)與服務(wù)器建立連接的方法,在讀取到RFID 芯片并解碼出有效信息的時(shí)候,向服務(wù)器相應(yīng)端口發(fā)送相應(yīng)的Socket 請(qǐng)求信息,服務(wù)器端接受到請(qǐng)求后建立連接并新建Socket 端口來和終端進(jìn)行通信;只有在讀取數(shù)據(jù)的時(shí)候數(shù)據(jù)庫(kù)和終端間才產(chǎn)生數(shù)據(jù)傳輸和占用服務(wù)器端資源,從而降低了網(wǎng)絡(luò)占有率和服務(wù)器端的負(fù)荷,通信部分終端客戶端部分的主要子函數(shù)如下:

1、int Net_Init(struct *p_net_Status,int type);初始化通信,根據(jù)選擇通信的類型建立和服務(wù)器端的網(wǎng)絡(luò)連接,取得服務(wù)器基本信息,并建立Socket 連接。 

2、int Net_Send(string *p_data, int len, struct sockaddr *p_addr);發(fā)送指定大小字符串到連結(jié)的服務(wù)器端口。

3、int Net_Receive(string *p_buffer, int len, struct sockaddr *p_addr);從服務(wù)器接受數(shù)據(jù)(主要是接受指令)到指定緩沖區(qū)內(nèi)。

      由于Linux 底層提供了TCP 支持,可以保證通信的可靠性,大大降低了編程復(fù)雜度,所以只要經(jīng)過簡(jiǎn)單的對(duì)Socket 函數(shù)進(jìn)行了封裝來實(shí)現(xiàn)數(shù)據(jù)網(wǎng)絡(luò)傳輸,配合服務(wù)器端程序即可將標(biāo)簽信息保存到后臺(tái)的主數(shù)據(jù)庫(kù)中,并由后臺(tái)服務(wù)器根據(jù)通信內(nèi)容進(jìn)行數(shù)據(jù)保存,發(fā)送控制命令等操作。

四、結(jié)論

      本文中描述的嵌入式RFID 終端讀取器,在冰箱生產(chǎn)線中進(jìn)行了實(shí)用,基本滿足了生產(chǎn)線RFID 系統(tǒng)對(duì)前端RFID 標(biāo)簽數(shù)據(jù)采集、處理、通信方面的要求,在功能上和穩(wěn)定性方面已經(jīng)能夠替代現(xiàn)有的工業(yè)PC,因?yàn)椴捎昧嗣赓M(fèi)的開源Linux 操作系統(tǒng)和開源數(shù)據(jù)庫(kù)Sqlite,大大降低了總體成本,對(duì)在生產(chǎn)線上進(jìn)行RFID 讀寫終端的大量部署非常有利。

      本文作者創(chuàng)新點(diǎn):通過設(shè)計(jì)使用功能強(qiáng)大的RFID 嵌入式讀寫終端,將抗干擾、信息提取、日志保存等功能在終端進(jìn)行本地處理,從而大大降低了網(wǎng)絡(luò)通訊負(fù)擔(dān)和后臺(tái)服務(wù)器占用,滿足了生產(chǎn)線上的工作環(huán)境和需求。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:磨削加工過程中主動(dòng)測(cè)量?jī)x控...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)