《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動(dòng)態(tài) > 等時(shí)間間隔指令分組并行處理的只讀型射頻卡讀卡器的設(shè)計(jì)

等時(shí)間間隔指令分組并行處理的只讀型射頻卡讀卡器的設(shè)計(jì)

2008-07-17
作者:徐寅林,,倪維柱,,朱松盛

??? 摘 要: 傳統(tǒng)只讀射頻卡讀卡器的設(shè)計(jì)一般采用U2270B或P4095讀寫基站芯片加MCU模式,,其成本高,、功耗大。本文介紹一種僅采用一片89C2051加少量普通元件構(gòu)成的讀卡器電路以及獨(dú)特的等時(shí)間間隔" title="時(shí)間間隔">時(shí)間間隔指令分組并行處理" title="并行處理">并行處理的程序設(shè)計(jì)方案,,電路簡單,、功耗小、成本低,。
??? 關(guān)鍵詞: 射頻卡讀卡器? 等時(shí)間間隔指令分組? 并行處理

?

??? 非接觸式只讀型IC卡又稱只讀射頻卡(RFID),,經(jīng)過多年的發(fā)展和推廣,,已經(jīng)廣泛應(yīng)用于身份識(shí)別和尋址控制,如門禁,、保安,、考勤、食堂等領(lǐng)域,。目前已逐步擴(kuò)展應(yīng)用到展覽會(huì),、公園、旅店,、餐廳等公共場(chǎng)所的門票,、優(yōu)惠卡以及生產(chǎn)過程、郵政包裹,、航空鐵路運(yùn)輸、產(chǎn)品包裝,、交通等部門的物流,、電子標(biāo)簽、防偽標(biāo)志,、一次性票證等眾多領(lǐng)域,。
??? 射頻卡與讀卡設(shè)備之間無須接觸,采用無線耦合和電磁感應(yīng)方式與讀卡設(shè)備之間通訊。射頻卡按照其工作頻率可以分為低頻卡和高頻卡兩類,。低頻卡的工作頻率為125kHz,,高頻卡的工作頻率為13.56MHz。其中瑞士EM微電子公司的EM4100低頻卡及兼容系列由于價(jià)格低,、讀卡距離遠(yuǎn),、讀卡器簡單而應(yīng)用最為廣泛。
?? ?傳統(tǒng)的低頻射頻卡讀卡器的設(shè)計(jì)一般采用U2270B或P4095讀寫基站芯片+MCU模式,,電路相對(duì)復(fù)雜,,成本較高。本文介紹一種新穎的射頻卡讀卡器,,該讀卡器采用獨(dú)特的等時(shí)間間隔指令分組并行處理的程序設(shè)計(jì)方案,,充分利用89C2051的潛在功能,舍去了讀寫基站芯片,,因而硬件電路大大簡化,。該類型的讀卡器讀卡距離與采用讀寫基站芯片的讀卡器相當(dāng),但電路功耗低,、硬件成本僅為傳統(tǒng)讀卡器的一半左右,,因此多年來已生產(chǎn)大量產(chǎn)品,運(yùn)行使用情況良好,。
1 EM4100射頻卡簡介
??? EM4100是一種廣為使用的只讀射頻感應(yīng)卡,,其內(nèi)部ROM保存著10位十進(jìn)制卡號(hào)數(shù)據(jù),。當(dāng)它被放在一個(gè)頻率125kHz交變電磁場(chǎng)時(shí)感應(yīng)獲得能量驅(qū)動(dòng),射頻卡內(nèi)置天線環(huán)路等效負(fù)載的改變,,勢(shì)必造成射頻卡對(duì)交變電磁場(chǎng)能量吸收數(shù)量的改變,。如果這個(gè)天線環(huán)路等效負(fù)載是按照一定時(shí)序變化的,就可以對(duì)該外部交變電磁場(chǎng)實(shí)現(xiàn)反調(diào)制,,從而將其內(nèi)部芯片數(shù)據(jù)反饋傳遞給讀卡器,。
??? EM4100采用Manchester(曼徹斯特)調(diào)制格式編碼。一旦射頻卡獲得有效能量,,它就會(huì)周而復(fù)始地向外發(fā)送64個(gè)數(shù)據(jù)位信息(稱之為一幀數(shù)據(jù)),,位傳送率為RF/64,即每一位信息時(shí)長為64個(gè)外部電磁場(chǎng)波動(dòng)周期,,也就是64位信息位中包括9位‘1’的同步引導(dǎo)頭,,40位的卡號(hào)數(shù)據(jù),14位奇偶校驗(yàn)以及 1位停止位,。全部64位信息由制造商生產(chǎn)時(shí)編程刻錄在ROM中,,其卡號(hào)數(shù)據(jù)是全球唯一的。

?


??? 圖1為曼徹斯特編碼" title="曼徹斯特編碼">曼徹斯特編碼示意圖,,在一個(gè)數(shù)據(jù)位的中間時(shí)刻,,信號(hào)的上跳變" title="跳變">跳變表示數(shù)據(jù)“1”的編碼;信號(hào)的下跳變表示數(shù)據(jù)“0”的編碼,。
??? 表1為EM4100射頻卡內(nèi)部64數(shù)據(jù)位信息定義,。

?

??? 其中D20~D23,D30~D33,,……,,D80~D83,D90~D93 32個(gè)數(shù)據(jù)位依次由低到高存放4個(gè)字節(jié)的卡號(hào)數(shù)據(jù),。所以最大卡號(hào)數(shù)據(jù)為0FFFFFFFFH,,也就是10位十進(jìn)制數(shù)的“4294967295”。
2 射頻卡讀卡器的設(shè)計(jì)
2.1 電路設(shè)計(jì)方案

??? 按照射頻卡工作原理,,讀卡器的電路設(shè)計(jì)分為125kHz電磁波產(chǎn)生電路,、電磁波的接收及解調(diào)電路、曼徹斯特編碼信號(hào)的解碼電路三個(gè)部分,。
??? 圖2為射頻卡讀卡器電路圖,。

?


??? (1)125kHz電磁波產(chǎn)生電路
??? 為了充分利用硬件資源,125kHz信號(hào)直接由U1單片機(jī)的P1.7口提供,,用軟件在P1.7口產(chǎn)生精確的矩形波" title="矩形波">矩形波周期信號(hào),。U2A的6個(gè)并接反相器74HC04起到功率放大驅(qū)動(dòng)的作用,125kHz信號(hào)通過限流電阻R5提供給天線L1,、電容C1組成的串聯(lián)諧振電路,。適當(dāng)調(diào)節(jié)天線L1的電感量,,使LC串聯(lián)諧振電路在125Hz達(dá)到諧振,此時(shí)在C1兩端能觀察到峰峰值高達(dá)80V的正弦信號(hào),。由于C1兩端電壓較高,,所以在選擇元件參數(shù)時(shí)要注意電容的耐壓問題。
??? (2)電磁波的接收及解調(diào)電路
??? 如圖2所示,,D1,、D2,C2~C6,,R1~R4共同構(gòu)成了電磁波接收及解調(diào)電路,。
??? 在讀卡器附近沒有射頻卡的情況下,在測(cè)試點(diǎn)①處得到的是125kHz的等幅振蕩信號(hào),。一旦有卡片進(jìn)入讀卡范圍,,由于卡片天線環(huán)路等效負(fù)載的反調(diào)制作用,在①處得到的信號(hào)將如圖1第三行所示的調(diào)制波形,。該調(diào)制波經(jīng)C2耦合,,同時(shí)送到D1、C5及D2,、C6組成的檢波電路。在測(cè)試點(diǎn)②③處將得到圖1第二行所示的解調(diào)包絡(luò)波形,,不過②③兩點(diǎn)的波形剛好互為反相,。解調(diào)波形再經(jīng)過電阻R1、R4電容C3(下半部分電路為電阻R2,、R3電容C4)構(gòu)成的π型濾波器進(jìn)一步濾去殘余的125kHz載波信號(hào),,得到較為理想的解調(diào)信號(hào)送至單片機(jī)的兩個(gè)輸入端P1.0、P1.1,。
??? (3)曼徹斯特編碼信號(hào)的解碼
??? 單片機(jī)的兩個(gè)輸入端P1.0,、P1.1連接其內(nèi)部比較器+、-輸入端,,比較器的輸出端直接連接內(nèi)部P3.6腳,。程序讀P3.6腳就可獲得較為理想的解調(diào)后的編碼信號(hào),曼徹斯特編碼信號(hào)的解碼是通過程序軟件實(shí)現(xiàn)的,。
2.2 程序設(shè)計(jì)
??? (1)數(shù)據(jù)位檢測(cè)
??? 數(shù)據(jù)位的檢測(cè)就是曼徹斯特編碼信號(hào)的解碼,,主要在于P3.6引腳信號(hào)的跳變邊沿檢測(cè)。因?yàn)閮蓚€(gè)數(shù)據(jù)位的時(shí)間間隔為512μs,,所以在檢測(cè)到一個(gè)跳變后,,再分別檢測(cè)P3.6在延時(shí)400μs、600μs時(shí)的狀態(tài),,從而判定下一個(gè)跳變是上升沿還是下降沿,。但是這樣的檢測(cè)存在一點(diǎn)問題,,曼徹斯特編碼信號(hào)的跳變不僅發(fā)生在每個(gè)數(shù)據(jù)位的中間,也會(huì)發(fā)生在兩個(gè)相同數(shù)據(jù)位(相鄰兩個(gè)數(shù)據(jù)位為11或00)的交界處,,見圖1曼徹斯特編碼信號(hào)波形第3,、4數(shù)據(jù)位交界處有個(gè)下降沿,第5,、6數(shù)據(jù)位交界處有個(gè)上升沿,。仔細(xì)分析圖1曼徹斯特編碼波形圖,可以發(fā)現(xiàn),,只有當(dāng)相隔512μs后仍能檢測(cè)到跳變,,當(dāng)前的跳變才有可能是數(shù)據(jù)位中間的跳變,如果512μs后檢測(cè)不到跳變,,則當(dāng)前的跳變就是數(shù)據(jù)位連接處的跳變,。一旦判斷表明當(dāng)前的跳變是數(shù)據(jù)位連接處的跳變,就需要從下一個(gè)邊沿重新開始檢測(cè)所有的數(shù)據(jù)位,。
??? (2)同步頭檢測(cè)
??? 按照上述方法,,如果連續(xù)檢測(cè)到9個(gè)上升沿(即9位數(shù)據(jù)1的同步頭)就意味著新的一幀數(shù)據(jù)開始到來。但是,,由于邊沿檢測(cè)程序及9個(gè)1的同步頭判斷程序需要花費(fèi)不少時(shí)間,,所以不采用邊檢測(cè)邊判斷同步頭的方法,而是一次性連續(xù)讀入128位(這樣肯定能獲得完整的一幀數(shù)據(jù)),,然后在這128位中尋找同步頭,,再進(jìn)行后續(xù)的數(shù)據(jù)位處理。通過實(shí)踐發(fā)現(xiàn),,經(jīng)過這樣處理后讀卡器讀卡最靈敏,。
??? (3)等時(shí)間間隔指令分組產(chǎn)生125kHz矩形波
??? 125kHz矩形波的周期是8μs,利用P1.7產(chǎn)生該信號(hào)意味著每隔4μs P1.7就要取反一次,。在采用12MHz晶振的單片機(jī)系統(tǒng)中,,顯然是無法用定時(shí)器中斷來實(shí)現(xiàn)的,因?yàn)楣馐侵袛囗憫?yīng)最長時(shí)就要達(dá)到8個(gè)機(jī)器周期,,超過了4μs,。
??? 為了既能產(chǎn)生125kHz矩形波又能同時(shí)做數(shù)據(jù)位檢測(cè)等其他工作,采用等時(shí)間間隔指令分組方法實(shí)現(xiàn)了并行處理算法,。具體思路如下:在連續(xù)讀入128數(shù)據(jù)位時(shí),,為實(shí)現(xiàn)該工作而編寫的指令代碼都按執(zhí)行時(shí)間被劃分為4μs一組,每組的第一條指令必定是CPL P1.7以產(chǎn)生125kHz矩形波信號(hào)(如圖3所示),,而同組的其他指令才用于實(shí)現(xiàn)邊沿檢測(cè),、數(shù)據(jù)存儲(chǔ)等工作。圖3中左邊的“并行處理算法示意圖”和右邊的“程序片斷”僅用于示例,兩者沒有對(duì)應(yīng)關(guān)系,。

?


??? 本文介紹了一種新型只讀型射頻卡讀卡器的電路及程序?qū)崿F(xiàn)方法,。該讀卡器采用等時(shí)間間隔指令分組并行處理算法最大化,利用了89C2051的功能,,相比同類型讀卡器不需要U2270或P4095讀寫基站芯片,,因此電路簡潔、成本低,、功耗小,。
參考文獻(xiàn)
[1] ATMEL89系列Flash單片機(jī)原理及應(yīng)用.北京:電子工業(yè)出版杜,2001.
[2] EM4100 datasheet(EM4100數(shù)據(jù)手冊(cè)).
[3] Temic U2270B datasheet(U2270B數(shù)據(jù)手冊(cè)).
[4] www.sefea.com/pdf/P4095_B.pdf(P4095數(shù)據(jù)手冊(cè)).

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。