用單片機自制一款RFID讀卡器,RFID CARD READER
關鍵字:ATtiny13,ATtiny2313,射頻讀卡電路圖
作者:樊文輝
也可以用微處理器ATtiny2313制作RFID讀卡器,可以隨意的從EM4102中讀取數據,其中包括從軟件下載的數據。這個制作更有趣的部分是向我們展示如何隨心所欲的做你自己的RFID標簽。我們接著看到如何將傳感器連接到標簽,并且與讀卡器的傳感器讀卡器建立通信傳遞數據。這些傳感器在電氣上是絕緣的并且能在空間自由移動。
一、能量傳遞
EM41022型號的電子標簽的能量獲得是需要通過頻率為125kHz時的電感耦合來實現的,作者認為這個設備能勝任的,自制RFID標簽就不成問題。此外,通過EM4102提供的數據速率不是很高,簡單的微型控制器都適用。
EM41022型號的電子標簽的能量獲得是需要通過頻率為125kHz時的電感耦合來實現的,作者認為這個設備能勝任的,自制RFID標簽就不成問題。此外,通過EM4102提供的數據速率不是很高,簡單的微型控制器都適用。
下圖中電路是用來確定從接收線圈傳遞來的能力有多大。RFID讀卡器適用下列推薦數據:電感L=750μH,直徑為0.25mm,線圈匝數為85匝,漆包線直徑為0.25mm,線圈直徑為50mm。
接收線圈(L1)為95匝、1mH,并聯于L1的諧振電容C1調諧與125KHz。發送和接收線圈的位置高于其他元件,且相距20mm。電流和電壓的曲線通過調節R測出如下圖示。下圖(a)是測量電壓與電流的函數關系,而下圖(b)顯示的是傳輸在負載上功率曲線。三條曲線分別顯示調諧于200pF、遠大于,遠小于200pF的情況,以示失諧情況的影響。下圖中可以看到在輸出3V電壓時它能耦合數十毫瓦的能量。一個ATtiny微型控制器在時鐘頻率為1MHz,電壓為3V的情況下電流大概為2mA;在125kHz的情況下電流是低于O.1mA。因此看起來提供微型控制器運行所需的足夠功率不是難題。
RFID集成電路EM4102通過調制讀卡器負載來傳送ID。每個數據位傳遞需要占據125kHz載波的64個時鐘周期,折合為波特率為1953.125BPS。一個完整的數據包32.768ms內完成傳輸。使用125kHz信號作為RFID控制器的時鐘是可以的。這種自動化確保位時鐘與讀卡器同步,由于上述時鐘的慢擺動,電流消耗是非常低的。也意味著CPU只需要計數64個時鐘周期才轉移到下一位:這就是對CPU(ATtiny3)進行匯編編程的原因。
下圖顯示制作的電子標簽的完整電路圖。通過L1和C1形成的諧振回路提供微型控制器時鐘。同時125kHz的AC信號經過二極管整流提供給CPU電源(或功率)。NMOS管T1的導通使諧振電路加上R3負載使振蕩幅度減小,并且它通過調制信號實現微型控制器傳輸數據。但是,信號幅度必須不能過度減少,否則微型控制器因時鐘失步而造成出錯。
本制作的印制電路板的電路如下圖(略)。線圈并聯在C1,并且焊接在C1引線腳的兩側相鄰近的焊點上。
AVR/GCC)嵌入。讀卡器的最佳設計是元器件使用SMD封裝,本制作使用C(AVR/GCC)編程并燒錄芯片。
讀卡器的電路如下下圖示,是非常簡單的并且很容易手工繪制電路板。但是按翻拍會使制作PCB更簡單,裝有EM4095的4號板與5號板通過接口K3連接。在電路板上連接點為ANT1和ANT2外接線圈,其電感量為750μH,這并不嚴格,由于EM4095內部有一個鎖相環會自動調節頻率。
從RFID標簽的數據串是通過EM4095解碼]然后以曼徹斯特碼流方式傳給微型控制器。微型控制器的第一項工作是提取數據位。這項工作是在中斷服務程序中實施的,每秒要進行31250中斷,(8MHz/256=31250)。1個完整的數據位占16個中斷周期見下下圖示。(注:一個數據位占64個125kHz/8μS脈沖,即512μS:定時器一個中斷間隔為1S/31250=32μS,兩者相除512/32=16。可見連續16個低電平則為數據O,連續16個高電平為數據1)。
以上為曼徹斯特碼的代碼片斷。碼長測量由接口PIND.4的電平實現:只有輸入數據串的位數與原來的位數相同時電平是穩定的。當電平改變時,原有位數添入了一個或者兩個半位。根據測量持續時間,一個或者兩個半位儲存在一個先進先出隊列中供后續處理。
解碼程序本身占FIFO隊列的半位。第一個任務是識別數據包的起始位:為了實現這個目的,程序沿著移位寄存器逐個移動半位直到同步序列被找到。后續的數據串被解碼并且在RS232端口輸出(19200波特,8N1格式)。不斷有新的半位數據到達并且在FIFO隊列等待主程序處理,確保沒有丟失數據。RFID讀卡器能讀取任何標準的RFID標簽且與EM4102兼容。
電感其中d是導線的直徑,D是線圈的直徑,N是線圈的圈數。
下表的第4列是根據公式計算的電感量,第5列是用電感測量儀實測的電感量,可以看出,后者比前者偏小且不超過10%,實際制作時根據公式計算的值已經足以使用,也可以根據實測電感找出制作參數來。
三、RFID軟件
根據時鐘速率為125KHz,半個數據位持續32個時鐘周期,為了避免復雜的計算,可以使用定時器0的PWM功能。
根據時鐘速率為125KHz,半個數據位持續32個時鐘周期,為了避免復雜的計算,可以使用定時器0的PWM功能。
設置計時器O計數64就溢出,返回O重新計數,(通過軟件設置OCROA為64-1=63),并設置了PWM值為50%(軟件設置OCROB為32)。定時器0的PWM發生器每到計數值到達32時,可以安插在高至低的跳變(如圖8最左邊箭頭示).也可以安插在低至高的跳變。上圖中上面一排是5位曼徹斯特碼流值,下右側標注定時器計數值。
因此,只需通過改變PWM發生器的寄存器堆的一位,我們就可以產生符合曼徹斯特碼編碼的一個0或1。這一過程在中斷服務程序實現。
寄存器IntBit包括了被傳輸的數據位,并且將IntMail設置為1作為應答,表示確認該位已被接收。主程序只是逐位傳輸數據及產生校驗碼,確保系統在一個不穩定的電源電壓系統下能穩定工作,將欠壓檢測閾值設置為1.8V且啟動看門狗。
四、數據包和有效載荷
一個完整的數據包,形成如下表所示。
一個完整的數據包,形成如下表所示。
數據包包括9個部分。前導的同步碼連續9個1不能出現在數據包的其他地方,因此可以用來識別它的開始。正確的數據位和有效荷載在前同步碼的后面。有效載荷由十組4位二進制數或半字節組成。前兩個半字節是客戶ID后面是8位半字節數據跟隨。先發送一個半字節列校驗位(每列10個二進制數中有奇數個1為1否則為0),緊隨其后的是一個0。所以總的數據包包含9(起始)+10×(4+1)(有效載荷)+4(列校)+1(最后位0)=64bits。每位持續64位的125kHz的時鐘周期,所以比特率是1935.125BPS。故一個完整的數據包需要32.768mS傳輸。
使用此協議的RFID標簽,內部含有有8個半字節數據和兩個半字節ID碼,總共有10位十六進制數字或40位二進制數。這足以傳輸大量信息。如果需要進一步擴展,也可照此類推。
因為本制作中RFID標簽已經寫入用戶碼,做一個新的RFID標簽就需要修改程序重新寫入。
在印制電路板上的插頭Kl可以用來連接開關、電位器和通過讀卡器進行無線訪問的其它線圈。
線圈可旋轉或移動盡可能實現讀標簽,同理還可以在高壓環境進行電氣隔離。在液態物質中線圈操作暫停,在干燥的情況下又可以恢復。
六、動態ID和狀態請求
第一個例子,我們認為一個RFID標簽可以經過編程在兩個ID代碼之間進行切換,這個思路可以用來制作來一把RFID鑰匙開多把RFID鎖。
第一個例子,我們認為一個RFID標簽可以經過編程在兩個ID代碼之間進行切換,這個思路可以用來制作來一把RFID鑰匙開多把RFID鎖。
第一個方案是使用一個開關在兩種代碼之間來選擇。有兩種實施辦法:遙控改變開關的位置,或通過按鈕改變標簽的ID。此開關是連接接口B.4(ATtiny13的第3腳)和GND之間的端口。
第二個方案多數字輸入量的采集。自從RFID標簽使用了微控制器,實現這一目標有很寬范圍的選項。設計者必須始終考慮電流消耗,因為標簽所有的能量最終均來自傳輸線圈。一個簡單的選項用移位寄存器來實現并行到串行的轉換。如下圖所示,8個開關的狀態串行通過PB4經過K1接口連接到RFID的主板上。
該軟件包中包括實現兩路A/D轉換的程序,將模擬量轉換為8位數字量,并且將這些數字量通過ID代碼方式返回至讀卡器。A/D轉換的參考電壓取自ATtiny13的供電的電壓,這有一定的好處也有缺點:例如,如果有必要去讀取的兩個電位器的位置時,它們可以輕易地與ATtiny13的電源連接,滑動片接模擬輸入端。其結果是,轉換的結果與電源電壓無關,被測電壓高低只是與電源電壓‘比例’在變化:稱之為比例轉換。所以被測傳感器必需與ATtiny13同電源供電。如MMA7260加速度測量傳感器。測量兩路加速度經過比例轉換,結果只與加速度有關而與電源電壓無關。如果不是電位器而是獨立電源的話,結果就不是這樣。這種情況下,用Zener二極管或微型3.3V穩壓器用來為微控制器和傳感器提供電源穩壓。用來測量絕對電壓。也就是供應RFID標簽的電壓等于A/D轉換參考電壓,此電壓一定要大于3.3V或更高。這就取決于標簽與讀卡器的距離。還有另一種設計方案是使用如LM385低功耗參考電壓源(如2.5伏)給一路A/D轉換器輸入,另一路則是被測電壓的比例轉換,并以此來校準電源電壓的影響。經過精確的測量和校準,然后才能算出被測電壓。
八、RFID溫度傳感器
Dallas/MaximDS1820的溫度傳感器通過它的單總線接口的連接。這個接口很容易在軟件中實現,盡管它速度相對緩慢。當訪問DS1820的溫度傳感器時,RFID標簽中的微控制器必須停止對讀卡器的響應。
Dallas/MaximDS1820的溫度傳感器通過它的單總線接口的連接。這個接口很容易在軟件中實現,盡管它速度相對緩慢。當訪問DS1820的溫度傳感器時,RFID標簽中的微控制器必須停止對讀卡器的響應。
這對讀卡器來說不是問題,因為它發送起始碼期間通常需要等待片刻,經過與傳感器IC通信完成,溫度值轉換為十進制值,然后被轉為ID代碼格式。因此,RFID傳感器提供的溫度值幾乎為“純文本”。下圖顯示了如何將DS1820連接至RFID主板。原則上,軟件可以處理若干溫度傳感器或其他單總線集成電路。
九、RFID傳感器調試
我們前面討論的例子展示它是如何建立自己的RFID標簽。當你測試自己的應用程序開發和調試必須始終牢記。最簡單的方法是使用ISP接口技術。然而,靠來自線圈的能量不足以維持標簽的微控制器編程需要,并為此開發了如下圖的適配器接口。可以通過ISP的接口對包含了RFID和傳感器的軟件的ATtiny13進行編程,而且像RFID主板上的K1一樣,同樣的傳感器可以連接到K3的這塊板上。適配器上的插座K2與讀卡器上的K4連接,然后讀卡器提供給ATtiny13125KHz時鐘,通過它在PB1口進行數據流輸出。這種方法可以很方便的測試新的RFID傳感器軟件。
我們前面討論的例子展示它是如何建立自己的RFID標簽。當你測試自己的應用程序開發和調試必須始終牢記。最簡單的方法是使用ISP接口技術。然而,靠來自線圈的能量不足以維持標簽的微控制器編程需要,并為此開發了如下圖的適配器接口。可以通過ISP的接口對包含了RFID和傳感器的軟件的ATtiny13進行編程,而且像RFID主板上的K1一樣,同樣的傳感器可以連接到K3的這塊板上。適配器上的插座K2與讀卡器上的K4連接,然后讀卡器提供給ATtiny13125KHz時鐘,通過它在PB1口進行數據流輸出。這種方法可以很方便的測試新的RFID傳感器軟件。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
發布評論請先 登錄
相關推薦
RFID手持終端的工作原理
基礎 RFID技術是一種利用無線電波進行自動識別和跟蹤目標的技術。它通過無線電波在標簽(Tag)和閱讀器(Reader)之間傳輸信息。RFID
AGV讀卡器在AGV自動搬運小車上應用方案
AGV小車上的AGV讀卡器通過讀取地面軌道的RFID電子標簽信息,做出相應的動作(如改變速度、選擇軌道、定位和停車等)。在AGV小車經過站點A處時,AGV讀卡器讀取A處的電子標簽ID號,AGV小車
巴魯夫rfid讀頭國產平替版——高頻RFID讀寫器
隨著RFID技術的不斷發展,國內RFID企業的數量也在不斷地變多,國產RFID讀寫器的質量也越來越高。具有著價格實惠、質量可靠等特點,成為了可平替國外
二代身份證識別儀身份證閱讀器讀卡器
身份證讀卡器通用版 醫院社保讀卡器 APP集成識別讀取身份證 云解碼讀卡 身份證網絡讀卡模塊 網絡身份證模塊 IC卡多合一讀卡器 NFC
發表于 09-07 15:09
RFID芯片摜蛋牌-你了解多少?
RFID芯片是一種通過無線電波進行數據通信的技術,可以用于追蹤、監控和管理各種物品。在摜蛋游戲中,可以被用于制作智能撲克牌,在牌中嵌入RFID芯片,通過讀卡器自動識別牌面,使游戲更加智
RFID在汽車制造中的應用如何改變行業
的信息,可通過RFID讀卡器讀取RFID標簽內的信息,再上傳到管理系統中進行檢驗識別通信,或通過特定的RFID手持機進行查看。
IO-Link RFID讀卡器系統方案設計與挑戰
如圖2這個IO-Link RFID傳感器的方案,使用了L6364和STM32G0通用電路來支持IO-Link的協議轉換,使用ST25R3916來作為NFC的讀卡器芯片。
發表于 04-02 10:56
?562次閱讀
半導體行業RFID讀卡器的常用通信方式詳解
JY-V640是一款低頻134.2kHz系列的半導體RFID讀寫器,兼容TI系列的低頻玻璃管標簽,讀取距離0-80mm,符合世界SEMI標準。通信協議采用了SECS(SEMI Equipment
射頻識別RFID
設備簡單。尤其是隨著NFC技術在智能手機上逐漸普及,每個用戶的手機都將成為最簡單的RFID閱讀器。
NYFEA****通用非接觸通訊芯片 RF522
產品簡介
522 是一款高度集成的工作在
發表于 02-28 11:31
低頻RFID讀寫器畜牧業系列介紹
、利拉伐、阿菲金所有電子耳標及國產低頻電子耳標,最遠可識讀90cm。通過帶有RFID電子耳標的牲畜,當它們經過讀卡器時,讀卡器會自動識別目標的信息并上傳到控制中心,用戶可以實時監測牲畜的信息,根據
評論