RFID閱讀器的驅動(dòng)程序撰寫(xiě)
文章出處:http://psychicreadingswithdeb.com 作者:T博士研發(fā)團隊 人氣: 發(fā)表時(shí)間:2011年10月27日
本文將介紹如何以MCU簡(jiǎn)單的設計一個(gè)RFID的閱讀器,所示范的的程序模塊是采用HOLTEK MCU HT49R50A-1的匯編語(yǔ)言,希望透過(guò)程序模塊的分享以達到共同討論的目的。
RFID是英文“Radio Frequency Identification”的縮寫(xiě),中文名稱(chēng)為「無(wú)線(xiàn)射頻身份識別」是為目前相當受到重用的感應式電子芯片或是近接卡、感應卡、非接觸卡...等等,非接觸式自動(dòng)識別技術(shù)的一種。是一種內建有無(wú)線(xiàn)電技術(shù)的芯片,芯片中還可紀錄一系列信息,如產(chǎn)品別、位置、日期等,最大的好處是能提高物品管理效率。
目前市面上以使用條形碼,將物品的相關(guān)信息多記錄在條形碼上,而再以?huà)呙鑳x掃瞄條形碼取得信息,而RFID只需在一定范圍內感應,并可一次讀取大量訊息。射頻識別系統(RFID)最早在1948年即被提出,利用無(wú)線(xiàn)電波傳送識別數據,達到身分識別的目的。無(wú)須接觸即可自動(dòng)讀取及收集資料的一種科技,乃屬于自動(dòng)資料搜集(Automated Data Collection, ADC)技術(shù)之一種,可無(wú)線(xiàn)讀取卷標信息。傳輸頻率分為低頻(LF:125~134KHz),高頻(HF:13.56MHz),超高頻 (UHF: 400~ 1000MHz),微波(Microwave; 1GHz以上),其中以超高頻之技術(shù)較先進(jìn)且其穩定度與應用效果較佳。
于本文將介紹如何以MCU簡(jiǎn)單的設計一個(gè)RFID的接收器,所使用的是為高頻(13.56 MHz)的頻域,于本文中的程序模塊是采用Holtek MCU HT49R50A-1的匯編語(yǔ)言來(lái)撰寫(xiě),希望透過(guò)程序模塊的分享以達到共同討論的目的。
RFID的特性
條形碼是一種只讀式的、需要對準標的、一次只能讀一個(gè)、且容易破損;而RFID是可擦寫(xiě)的、使用時(shí)不需對準標的、同時(shí)可讀取多個(gè)、堅固全天候使用,可不需人力介入操作。RFID具有許多條形碼所難以達成的下列特性:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
(一) 數據的讀寫(xiě)(Read Write)機能:只要通過(guò)RFID Reader即可不需接觸,直接讀取訊息至數據庫內,且可一次處理多個(gè)標簽,并可以將物流處理的狀態(tài)寫(xiě)入標簽,供下一階段物流處理的讀取判斷之用。
(二) 容易小型化和多樣化的形狀:RFID在讀取上并不受尺寸大小與形狀之限制,不需為了讀取精確度而配合紙張的固定尺寸和印刷品質(zhì)。此外,RFID TAG更可往小型化與多樣型態(tài)發(fā)展,以應用在不同產(chǎn)品。
(三) 耐環(huán)境性:紙張一受到臟污就會(huì )看不到,但RFID對水、油和藥品等物質(zhì)卻有強力的抗污性。RFID在黑暗或臟污的環(huán)境之中,也可以讀取數據。
(四) 可重復使用:由于RFID為電子數據,可以反復被覆寫(xiě),因此可以回收標簽重復使用。如被動(dòng)式RFID,不需要電池就可以使用,沒(méi)有維護保養的需要。
(五) 穿透性:RFID若被紙張、木材和塑料等非金屬或非透明的材質(zhì)包覆的話(huà),也可以進(jìn)行穿透性通訊。不過(guò)如果是鐵質(zhì)金屬的話(huà),就無(wú)法進(jìn)行通訊。
(六) 數據的記憶容量大:數據容量會(huì )隨著(zhù)記憶規格的發(fā)展而擴大,未來(lái)物品所需攜帶的資料量愈來(lái)愈大,對卷標所能擴充容量的需求也增加,對此RFID不會(huì )受到限制。為期
RFID所使用的頻率介紹
為避免各國無(wú)線(xiàn)電頻率使用標準不一,造成使用上的混亂與困擾,國際上大多遵守國際電信聯(lián)合會(huì )(ITU)的規范。目前RFID使用的頻率有6種,分別為135KHz以下、13.56MHz、433.92MHz、860M~930MHz(即UHF)、2.45GHz以及5.8GHz,其各有特色和缺陷。135KHz以下傳輸距離短約10公分左右,通訊速度慢。此頻段在絕大多數的國家屬于開(kāi)放,不涉及法規開(kāi)放和執照申請的問(wèn)題,因此使用最廣,主要使用在寵物、門(mén)禁管制和防盜追蹤。 13.56MHz薄化的效果最佳傳輸距離為1公尺以下,代表性應用為會(huì )員卡、識別證、飛機機票和建筑物出入管理,通訊距離10公分左右的近距離非接觸式IC卡發(fā)展快速。
RFID系統的基本架構
RFID的基本組成組件及其主要的功能為:
•讀取器:負責讀/寫(xiě)電子卷標上的數據。
• 電子卷標/卡(Transponder; Tag):分為被動(dòng)與主動(dòng)兩種結構如圖1所示,如表1所示主要負責除存被識別物的相關(guān)資料,如品號,品名,規格等等,可以藉由讀取器來(lái)偵測,另外于表2所示則為頻率與Tag的關(guān)系及被使用的特性。
•計算機:負責系統平臺的操作,將RFID的讀取器與計算機系統整合就可以偵測到物品的移動(dòng)狀況和信息。
圖1 Tag的基本結構
等級(Class) |
內存 |
電源 |
特性 |
應用領(lǐng)域 |
Class 0 |
無(wú) |
被動(dòng)式的感應偶合 |
1位的Tag |
EAS商品防竊 |
Class 1 |
只讀式 |
被動(dòng)式的感應偶合 |
只能寫(xiě)入一次 |
EPC識別碼 |
Class 2 |
讀/寫(xiě)式 |
被動(dòng)式的感應偶合 |
可編密碼 |
EPC識別碼 |
Class 3 |
讀/寫(xiě)式 |
半被動(dòng)式內建有電源 |
接收能量才讀寫(xiě) |
環(huán)境感應型 |
Class 4 |
讀/寫(xiě)式 |
主動(dòng)式內建有電源 |
多任務(wù)Tag讀寫(xiě) |
智能型 |
Class 5 |
讀/寫(xiě)式 |
主動(dòng)式內建有電源 |
具有上述的綜合 |
遠距無(wú)線(xiàn)網(wǎng)絡(luò ) |
表1 Tag的等級分類(lèi)表
|
低頻(LF 125 KHz) |
高頻 |
超高頻(UHF; 860-930 MHz) |
微波(2.45- 5.8 MHz) | |||
性統型態(tài) |
被動(dòng)式 |
14443 |
15693 |
被動(dòng)式 |
主動(dòng)式 |
被動(dòng)式 |
主動(dòng)式 |
讀取距離 |
<0.5m |
<0.5m |
<1.5m |
3-10m |
>10m |
3-10m |
>10m |
內存bytes |
64-1k |
8k-128k |
256k-512k |
64k-512k |
- |
16k-64k |
- |
傳輸功率 |
72dBμA/m |
42dBμA/m |
10mW-4W |
4W(USA),0.5W | |||
讀取方法 |
感應線(xiàn)圈 |
感應線(xiàn)圈 |
電容式電場(chǎng)效應 |
電容式電場(chǎng)效應 | |||
讀取速度 |
慢 ←→ 快 | ||||||
環(huán)境適應性 |
佳 ←→ 差 | ||||||
尺寸 |
大 ←→ 小 |
表2 Tag與頻率的關(guān)系
RFID的應用領(lǐng)域
RFID之應用相當廣泛,最常見(jiàn)的應用為:
* 門(mén)禁管制:人員出入門(mén)禁監控、管制及上下班人事管理
* 回收資產(chǎn):棧板、貨柜、臺車(chē)、籠車(chē)等可回收容器管理
* 貨物管理:航空運輸的行李識別,存貨、物流運輸管理
* 物料處理:工廠(chǎng)的物料清點(diǎn)、物料控制系統
* 廢物處理:垃圾回收處理、廢棄物管控系統
* 醫療應用:醫院的病歷系統、危險或管制之生化物品管理
* 交通運輸:高速公路的收費系統
* 防盜應用:超市的防盜、圖書(shū)館或書(shū)店的防盜管理
* 動(dòng)物監控:畜牧動(dòng)物管理、寵物識別、野生動(dòng)物生態(tài)的追蹤
* 自動(dòng)控制:汽車(chē)、家電、電子業(yè)之組裝生產(chǎn)
* 聯(lián)合票證:聯(lián)合多種用途的智能型儲值卡、紅利積點(diǎn)卡
以下對幾個(gè)應用作深入的介紹說(shuō)明:
一般消費品
實(shí)務(wù)應用:從倉儲到商品架的有效管理長(cháng)久以來(lái),消費品制造商一直苦于如何將適切的產(chǎn)品,在適當的時(shí)間運交給適當的零售商。而藉由 RFID 解決方案,制造商可以有效追蹤貨品,管理庫存水準,并維持適當的庫存量以滿(mǎn)足零售商的需求。導入 RFID 解決方案后,工廠(chǎng)內的貨品棧板無(wú)需人工檢視可直接運出,取貨疏失的情形減少,退貨管理的效率提升,又免了實(shí)際的存貨盤(pán)點(diǎn)作業(yè),廠(chǎng)商可以降低人事成本。
零售業(yè)
實(shí)務(wù)應用:協(xié)助提升獲利能力,在零售業(yè),競爭慘烈、資本成本高,消費者的反復無(wú)常也是眾所周知,想要維持獲利率,特別艱難。從增加銷(xiāo)售額、改善促銷(xiāo)活動(dòng)到降低失竊率,零售業(yè)者必須全心全力尋找創(chuàng )新的方式才能提升利潤。
制藥業(yè)
實(shí)務(wù)應用:在嚴格管制的環(huán)境中提高生產(chǎn)效率,制藥業(yè)者除了在發(fā)展及配銷(xiāo)藥品等方面。
物流業(yè)
實(shí)務(wù)應用:發(fā)揮貨運及配送流程的最高效率除了倉儲,貨柜場(chǎng)也可以利用 RFID 方案來(lái)建立高效率的配送及貨運流程。將商品從消費性產(chǎn)品業(yè)者運交到零售商的流程,是供應鏈中絕不可缺少的一環(huán)。
運輸業(yè)
實(shí)務(wù)應用:密切監控運輸中的資產(chǎn),RFID 可用來(lái)追蹤載貨卡車(chē)與軌道車(chē)輛的位置,也可以收集在特定地點(diǎn)的貨運車(chē)輛上最新存貨數字。實(shí)際出貨期間,RFID
可以根據貨車(chē)所在的最新地點(diǎn)追蹤商品,并監督這些貨運車(chē)輛所載送的商品明細
實(shí)務(wù)應用:密切監控運輸中的資產(chǎn),RFID 可用來(lái)追蹤載貨卡車(chē)與軌道車(chē)輛的位置,也可以收集在特定地點(diǎn)的貨運車(chē)輛上最新存貨數字。實(shí)際出貨期間,RFID 可以根據貨車(chē)所在的最新地點(diǎn)追蹤商品,并監督這些貨運車(chē)輛所載送的商品明細。
接收器的制作及程序
于圖2所示為RFID接收器的結構圖,是由Holtek MCU HT49R50A-1所控制,由于RFID的技術(shù)目前尚處于商業(yè)保密期,故于短時(shí)間內可能無(wú)法公開(kāi)時(shí)感抱歉,有關(guān)系統的程序模塊,主要有三大部分所成如圖3所示,分別為主程序是為負責:鍵的掃描,LCD顯示,聲響,LED指示,以及RFID中的Tag數據的核對。外部中斷子程序為負責計數的管理;最后主中斷子程序的控制主要負責計數移位,數據接收等工作。相關(guān)的處和語(yǔ)言的詳列及說(shuō)明如圖4。
圖2 RFID 接收器的實(shí)際電路圖
圖3 程序流程圖
于圖2所示為本文中所舉RFID接收器范例的實(shí)際電路圖,程序使用一組Timer及一組External Interrupt來(lái)搭配接收RFID Data,其中應特別注意的是所使用的外部Clock Sounce需要精準,以達到接收數據的穩定性及正確性。于圖3所示為程序的設計流程,所設計的程序如圖4所示。 .
ODE .SECTION AT 00H 'CODE'
;------------------
;--- START 開(kāi)始副程式 ---
ORG 00H
JMP START
;------------------
;--- INT0 中斷0副程式 ---
ORG 04H
JMP EXTERNAL_INTERRUPT0
;------------------
;--- INT1 中斷1副程式---
ORG 08H
JMP EXTERNAL_INTERRUPT1
;------------------
;--- TIMER 0 計時(shí)器0副程式 ---
ORG 0CH
JMP TIMER0_INT
;------------------
;--- TIMER 1 計時(shí)器1副程式 ---
ORG 010H
JMP TIMER1_INT
;------------------
;--- TB ---
ORG 014H
RETI
;------------------
;--- RTC ---
ORG 018H
RETI
ORG 020H
;================================
;=
;= INT PROGRAM
;=
;===============================
;=
;= TIMER 0 INTERRUPT 100uS
;=
;===============================
TIMER0_INT:
MOV S_ACC,A ;SAVE ACC&STATUS TO MEMORY
MOV A,STATUS ;push pop
MOV S_STA,A
;---------------------------
RL M_DATA_BUFFER ;EVERY 100uS SHIFT LEFT ONCE
SNZ P_RFID_DATA
JMP RFIDGETDATA0
RFIDGETDATA1:
CLR M_DATA_BUFFER.0 ;RECEIVER DATA "1"
JMP CHECK_RFID_LEADING_CODE
RFIDGETDATA0:
SET M_DATA_BUFFER.0 ;RECEIVER DATA "0"
CHECK_RFID_LEADING_CODE:
SZ F_RFID_1ST_OK
JMP BIT8_RECEIVER
MOV A,098H ;FIRST ID 98H
XOR A,M_DATA_BUFFER ;CHECK LEAD CODE
SNZ Z
JMP RESET_TIMER0
SET F_RFID_1ST_OK
MOV A,12
MOV M_RFID_BYTES_COUNT,A ;TOTAL DATA 12 BYTES
MOV A,0F3H
MOV MP0,A
SAVE_RF_ID_DATA:
INC MP0
MOV A,M_DATA_BUFFER
MOV R0,A
CLR M_DATA_BUFFER
SDZ M_RFID_BYTES_COUNT
JMP RESET_TIMER0
CLR F_RFID_1ST_OK
;
CALL CRC_CHECK_PROCESS ;CHECK CRC
SNZ ACC.0 ;ACC=FFH DATA OK
JMP TIMER0_INT_END
SET F_RFID_RX_OK
JMP TIMER0_INT_END
BIT8_RECEIVER:
SDZ M_ROTATE_COUNT
JMP RESET_TIMER0
MOV A,08
MOV M_ROTATE_COUNT,A
JMP SAVE_RF_ID_DATA
;
RESET_TIMER0:
CLR TMR0C.4 ;TIMER0 COUNTING 100uS
MOV A,154 ;TIMR0 100uS TIMEOUT FOR RFID
MOV TMR0,A
;---------------------------
TIMER0_INT_END:
MOV A,S_STA ;RELOAD ACC&STATUS
MOV STATUS,A ;Pop acc Status Regiter
MOV A,S_ACC
RETI
;===============================
;=
;= EXTERNAL_INTERRUPT 0
;=
;===============================
EXTERNAL_INTERRUPT0:
SNZ F_RFID_RX_OK
SET TMR0C.4 ;Enable TIMER0 START COUNTING 100uS
RETI
;=============================================================
;=
;= MAIN PROGRAM
;=
;=============================================================
START:
;--- POWER ON RESET ---
MOV A,11111111B ;I/O port initial
MOV PA,A
MOV A,11111111B
MOV PB,A
MOV A,11111111B
MOV PC,A
;--- TIMER 0 ---
MOV A,159 ;Initial TIMR0 100uS TIMEOUT FOR RFID Receiver
MOV TMR0,A
MOV A,10100000B
MOV TMR0C,A
;--- TIMER 1 ---
MOV A,56 ;TIMR1 FOR MAIN LOOP
MOV TMR1,A
MOV A,10110000B
MOV TMR1C,A
;--- INT 0,1 ---
MOV A,00001001B
MOV INTC0,A ;Enable Mcu interrupt founction
MOV A,00000101B
MOV INTC1,A
;--------------------------------------------------
;---- CLEAR WORK RAM ----
CALL CLEAR_RAM ;CLEAR MCU RAM
;==========================
;= MAIN
;==========================
MAIN:
;------- MAIN LOOP 20MS ---------
SNZ F_20MSTIMEOUT
JMP MAIN
CLR F_20MSTIMEOUT ;MAIN LOOP 20MS FOR CYCLE
;*********************************
;----- Make some function --------
;ex:
; CALL KEY_SCAN
; CALL SHOW_LCD
; CALL BEEP_SOUND
; CALL SHOW_LED
JMP MAIN
;===============================================
圖4系統程序語(yǔ)言
結語(yǔ)
整體看來(lái),RFID無(wú)線(xiàn)射頻身份識別系統在未來(lái)的發(fā)展在很多的產(chǎn)業(yè)都是相當被看好的,雖然目前該技術(shù)有一些潛在問(wèn)題,但科技的發(fā)達日新月異,相信要克服RFID的種種隱憂(yōu),所需要的也只是時(shí)間上的問(wèn)題而已。舉例說(shuō)隱私權問(wèn)題,現正研發(fā)自毀型卷標或消磁型卷標來(lái)解決這問(wèn)題;配合奈米技術(shù)所研發(fā)適用于特殊物品的超小型標簽;還有WhereNet新版物流管理軟件可支持物流業(yè)者使用RFID系統。因此我們可以預見(jiàn)RFID將會(huì )促使相當多產(chǎn)業(yè)產(chǎn)生一場(chǎng)大的變革。然而RFID對印刷產(chǎn)業(yè)有多大的影響呢?是否會(huì )為印刷產(chǎn)業(yè)帶來(lái)重大的商機嗎?從上述文章的內容,相信在可預見(jiàn)的未來(lái),不論是各式產(chǎn)品包裝盒、食物外包裝或是圖書(shū)雜志里,只要是目前有條形碼標簽的印刷品上,將來(lái)就會(huì )有RFID的身影,甚至沒(méi)有條形碼標簽的也可能會(huì )有RFID。所以不論是印制包裝外盒的業(yè)者(厚紙)或是印制書(shū)籍雜志的業(yè)者(薄紙)都應會(huì )產(chǎn)生影響,尤其是對目前專(zhuān)門(mén)印制條形碼卷標或是條形碼報表的業(yè)者所產(chǎn)生的影響更大。目前使用的RFID的天線(xiàn)部份,都是使用銅片制作,黏貼在一般自黏標簽上,再轉貼到所需的位置上。希望將來(lái)RFID的天線(xiàn)部份以印刷方式印上,就如同目前印制條形碼一般。