隨著國(guó)內(nèi)射頻讀卡控制市場(chǎng)的不斷發(fā)展,非接觸式射頻讀卡系統(tǒng)被應(yīng)用于越來(lái)越多的領(lǐng)域,,智能門禁系統(tǒng),、汽車智能防盜報(bào)警裝置等都成為 RF讀卡控制的重要應(yīng)用領(lǐng)域,,而摩托車引擎點(diǎn)火等傳統(tǒng)控制領(lǐng)域也開始采用RF讀卡控制系統(tǒng),。射頻讀卡控制的便捷和安全性實(shí)現(xiàn)了科技對(duì)傳統(tǒng)控制領(lǐng)域的發(fā)展的促進(jìn),,同時(shí)工業(yè)控制中的各種電磁干擾也對(duì)射頻讀卡微控制器提出了更加嚴(yán)格的抗干擾要求性能,。為了迎合控制領(lǐng)域的這種需求,,很多半導(dǎo)體廠商發(fā)展了眾多新技術(shù)極大改善了單片機(jī)的多項(xiàng)性能指標(biāo),,擴(kuò)大了8位單片機(jī)的應(yīng)用范圍。 本文介紹了采用 8bit單片機(jī)的RF讀卡控制系統(tǒng)的方案原理及實(shí)現(xiàn),。
微控制器
本方案中以 8位單片機(jī) 作為控制系統(tǒng)中的控制芯片,,這里以微控制器 IC P89LPC932 為例,這是一款 8 位 FLASH 微控制器,,采用六倍速 80C51 內(nèi)核,。 P89LPC932 提供內(nèi)部 PWM 功能, I/O 口可承受 5V ,,所有 PIN 腳均有 20mA 的 LED 驅(qū)動(dòng)能力,。 P89LPC932A1 片內(nèi)有 512 字節(jié) E 2 PROM ,字節(jié)可擦除,,本方案中被用來(lái)存放器件序列碼或系統(tǒng)設(shè)置參數(shù),。
發(fā)射機(jī)應(yīng)答基站芯片
發(fā)射機(jī)應(yīng)答基站芯片用于驅(qū)動(dòng)發(fā)射應(yīng)答系統(tǒng)的天線,將數(shù)據(jù)調(diào)制到天線信號(hào)上發(fā)送出去,,檢測(cè)并解調(diào)發(fā)射 感應(yīng)器芯片 的響應(yīng),。
感應(yīng)器芯片是非接觸式 R/W 辨識(shí)集成電路,,連接到芯片上的單一天線線圈,被視為集成電路的電力驅(qū)動(dòng)補(bǔ)給和雙向信息的溝通接口,。天線和芯片一起構(gòu)成應(yīng)答式卡片,。在芯片內(nèi)部有存儲(chǔ)區(qū),可以存儲(chǔ)相應(yīng)的卡片信息(如 ID 號(hào)等),。
控制原理
RF 基站模塊上電后會(huì)通過(guò) 440uH 的線圈發(fā)射 134.2kHz 電磁波,,當(dāng) RF 感應(yīng)卡 進(jìn)入這個(gè)電磁場(chǎng)中時(shí),會(huì)自動(dòng)將電磁能轉(zhuǎn)化為電能并自行充電,。當(dāng) RF 卡充電完畢后,, P89LPC932 將控制基站模塊解碼、讀取存于射頻卡中的 ID 碼,,并將它與存于微控制器內(nèi)部的 EEPROM 中的 ID 碼比較,,如果兩者相同則微控制器會(huì)發(fā)出 PWM 信號(hào)控制點(diǎn)火過(guò)程,啟動(dòng)引擎,,如果不一致,,則發(fā)出相應(yīng)的報(bào)警信號(hào) ( 如指示燈閃動(dòng) ) 。
讀卡器" border="0" hspace="0" src="http://files.chinaaet.com/images/20100811/fdc1e931-11c9-4f81-b6d1-9c3aa9915bdb.jpg" style="WIDTH: 500px; HEIGHT: 182px" width="500" />
圖 1
方案介紹
硬件設(shè)計(jì)部分
在系統(tǒng)方案中,,硬件部分包括以下部分:信號(hào)接收部分(包括接收天線,,基站芯片),核心控制部分(控制芯片),,狀態(tài)指示部分(指示燈)。其中信號(hào)接收部分通過(guò)天線線圈和 ID 卡進(jìn)行信號(hào)交互,,解調(diào),、編解碼及為卡充電,控制芯片則負(fù)責(zé)系統(tǒng)的各項(xiàng)功能的實(shí)現(xiàn),,指示燈進(jìn)行各種狀態(tài)的指示(如異常狀態(tài)指示等),。以下從具體設(shè)計(jì)細(xì)節(jié)介紹。
1.IO驅(qū)動(dòng)
由于本方案中所采用的基站芯片為 5V(VDD)供電,,其邏輯輸入 (控制信號(hào)管腳TXCT, 數(shù)據(jù)信號(hào)管腳SCIO)的最小輸入高電平為: V HIGH =0.7*V DD =0.7*5V=3.5V ,, 高于 P89LPC932的邏輯高電平3.3V。在這個(gè)方案中,,從圖3中可以看出,,TXCT腳通過(guò)一個(gè)NPN管將邏輯高電平抬高,當(dāng)P89LPC932的P0.0腳高電平時(shí),,三極管導(dǎo)通,,TXCT腳為低電平。反之,,P0.0輸出低電平時(shí)三極管截止,,TXCT腳為高電平(>3.5V),,通過(guò)這種設(shè)計(jì)使微控制器輸出的高電平信號(hào)能夠被基站芯片識(shí)別。
P89LPC932的I/O口均為5V耐壓,,可直接接收5V高電平邏輯信號(hào),,因此SCIO直接與P89LPC932的P0.1相接。
2.警報(bào)閃爍
P89LPC900系列微控制器所有IO口均有LED驅(qū)動(dòng)能力(驅(qū)動(dòng)電流為20mA), 在本方案中,,如圖2,,P1.0與一個(gè)LED燈直接相接,通過(guò)控制P1.0的電平變化來(lái)實(shí)現(xiàn)LED燈閃爍,,從而發(fā)出警報(bào),,警報(bào)閃爍頻率和次數(shù)根據(jù)具體設(shè)計(jì)而定。
3.PWM操作
& nbsp; P89LPC932中有一個(gè)CCU單元可簡(jiǎn)單方便的提供PWM輸出控制,、輸入捕獲及輸出比較功能,。與基本的定時(shí)器操作方式的主要不同之處在于比較模塊的運(yùn)行差異,在PWM模式中此模塊用于PWM波形的生成,。
在方案中控制過(guò)程通過(guò) P89LPC932輸出PWM進(jìn)行控制,。
軟件設(shè)計(jì)部分
1.主流程(見圖3)
圖 3
如圖 3所示,系統(tǒng)上電后,,對(duì)系統(tǒng)初步初始化,,讀取RF卡中的ID碼,讀取后進(jìn)行CRC校驗(yàn),,如果正確后,,則根據(jù)卡的種類及卡的ID碼進(jìn)行相應(yīng)控制及卡的管理,不正確則報(bào)警,。當(dāng)系統(tǒng)控制完畢后,,進(jìn)入休閑模式,直到下一次控制,。
2.初始化設(shè)置
在 P89LPC932中除了(V dd ,V ss ,Reset/P1.5)三個(gè)腳外,,每個(gè)IO腳可被設(shè)置成四種I/O模式中的一
種,四種模式為:準(zhǔn)雙向模式(51單片機(jī)標(biāo)準(zhǔn)模式),,開漏模式,,推挽模式,只輸入模式(高阻),。本方案中,,如圖2,P0.0與SCIO相連,,P0.1與TXCT相連,,初始化設(shè)置為:
1) P0.0為只輸入模式(注:在本方案中,所用RF卡為只讀卡,,因此設(shè)置P0.0為只輸入模式,,可根據(jù)具體情況調(diào)整),,P0.1為準(zhǔn)雙向模式 。
2) WDSE設(shè)置為0,,這樣用戶可以設(shè)置WDCLK來(lái)設(shè)置選擇看門狗時(shí)鐘源,。
3 . RF ID 碼讀取
圖 4
圖 4 為讀卡通訊時(shí)序圖, 微控制器通過(guò) TXCT 和 SCIO 管腳與基站芯片交互并對(duì)其控制,,通過(guò)基站對(duì)感應(yīng)卡操作,,不同的基站芯片時(shí)序圖及通訊協(xié)議有所差異,因根據(jù)實(shí)際的方案加以改動(dòng),。當(dāng)系統(tǒng)上電后,,微控制器通過(guò)抬高 TXCT 電平并持續(xù)時(shí)間 t ini 來(lái)使基站芯片初始化并進(jìn)入空閑模式,隨后拉低 TXCT 電平并持續(xù)時(shí)間 t ch 來(lái)通過(guò)基站發(fā)出電磁場(chǎng)( RF field )對(duì)感應(yīng)卡充電,,然后抬高 TXCT 電平等候感應(yīng)卡發(fā)送數(shù)據(jù),,約過(guò)時(shí)間 t R 后,感應(yīng)卡將會(huì)響應(yīng)并發(fā)來(lái)數(shù)據(jù),。
圖 5
如圖 5所示,,微處理器與基站間的通訊以對(duì)射頻感應(yīng)卡的充電過(guò)程為開端。當(dāng)射頻卡充電結(jié)束,,將會(huì)發(fā)送起始位給射頻基站模塊并在其后發(fā)送卡中存儲(chǔ)的ID碼,,因此微控制器將會(huì)在射頻卡充電完畢后一直等待起始位的接收,當(dāng)讀取ID碼后返回主程序,。
圖 6
如前所述 ,在硬件初始化完成后,,TXCT腳會(huì)進(jìn)行設(shè)置以滿足時(shí)序要求。充電完成后,,腳P0.1電平拉高,。射頻卡會(huì)響應(yīng), 并根據(jù)發(fā)送包括數(shù)據(jù)信息的信號(hào)。圖6流程為圖5中讀取卡中ID碼步驟的詳細(xì)過(guò)程,。如圖6所示,協(xié)議規(guī)定起始位為高電平,,為獲得穩(wěn)定的信號(hào),,P89LPC932延時(shí)20us后判斷起始位是否為高電平,如果不是則程序跳到相應(yīng)的錯(cuò)誤處理程序進(jìn)行處理后返回主程序,。當(dāng)P89LPC932接收到正確的起始位后,,將延時(shí)64us以跳過(guò)起始位(每一個(gè)信號(hào)位持續(xù)64us)并讀取其后SCIO傳來(lái)的數(shù)據(jù)位?;灸K從射頻信號(hào)中解碼出來(lái)的數(shù)據(jù)是反邏輯的,,P89LPC932每讀完一位數(shù)據(jù),應(yīng)將其反轉(zhuǎn)后右移入累加器中存儲(chǔ),,并且延時(shí)64us以讀取下一個(gè)數(shù)據(jù)位,。當(dāng)8位數(shù)據(jù)均讀入,,P89LPC932將延時(shí)64us判斷結(jié)束位并等待結(jié)束位結(jié)束。當(dāng)結(jié)束位結(jié)束后,,微控制器將延時(shí)20us(等待下一個(gè)字節(jié)的穩(wěn)定信號(hào))并存儲(chǔ)整個(gè)字節(jié)并讀取下一個(gè)字節(jié),,當(dāng)所有的14個(gè)字節(jié)讀取完畢,返回主程序,。不同的基站模塊時(shí)序圖及通訊協(xié)議有所差異,可以根據(jù)實(shí)際的方案對(duì)以上設(shè)計(jì)參數(shù)加以相應(yīng)的修改,。
4.CRC校驗(yàn)
成功讀取 ID碼后,P89LPC932需要將ID碼與隨之而來(lái)的CRC碼進(jìn)行校驗(yàn),。在本方案中,,CRC碼是根據(jù)CRC-CCITT方式得到的。此算法的校驗(yàn)辦法由多種,,在此僅舉位校驗(yàn)算法為例 4 ,。
在 CRC校驗(yàn)過(guò)程中,定義一個(gè)16位的聯(lián)合體(union)regs,聯(lián)合中每一位均可進(jìn)行位操作。根據(jù)圖7中的結(jié)構(gòu),,在程序中定義一個(gè)函數(shù)對(duì)聯(lián)合體各位及輸入的A位進(jìn)行移位及異或操作,,將函數(shù)的輸入?yún)?shù)設(shè)為ID碼,當(dāng)運(yùn)行程序結(jié)束后,,結(jié)構(gòu) 體中的各位就應(yīng)該是與ID碼相對(duì)應(yīng)的CRC校驗(yàn)碼,。如果生成的校驗(yàn)碼與讀取的CRC校驗(yàn)碼相同,則校驗(yàn)通過(guò),,否則校驗(yàn)有誤,。
crcregs regs;
void crcInputBit(bit in)
{
bit a="regs".bits.bit0^in;
regs.bits.bit0=regs.bits.bit1;
regs.bits.bit1=regs.bits.bit2;
regs.bits.bit2=regs.bits.bit3;
regs.bits.bit3=regs.bits.bit4^a;
regs.bits.bit4=regs.bits.bit5;
……
regs.bits.bit8=regs.bits.bit9;
regs.bits.bit9=regs.bits.bit10;
regs.bits.bit10=regs.bits.bit11^a;
regs.bits.bit11=regs.bits.bit12;
……
regs.bits.bit14=regs.bits.bit15;
regs.bits.bit15=a;
}
圖 7
值得注意的是:在聯(lián)合的初始化中,不同的初始值根據(jù) CRC校驗(yàn)碼的計(jì)算相關(guān),,不同的初始值得出不同的校驗(yàn)碼結(jié)果,。
結(jié)語(yǔ)
本文利用 8位微控制器芯片控制發(fā)射機(jī)應(yīng)答基站芯片的方案為例,介紹了RF CDI的射頻讀卡控制系統(tǒng)的讀卡控制部份的設(shè)計(jì),。該方案充分利用了微控制器的PWM輸出功能,,片上EEPROM存儲(chǔ)ID碼,從而大大減少系統(tǒng)中元件的數(shù)目和電路板面積,,有利于系統(tǒng)EMI性能并降低系統(tǒng)的成本,。這些設(shè)計(jì)特點(diǎn)使該方案在控制領(lǐng)域具有極其明顯的優(yōu)勢(shì)。