一種基于RFID的控制閥系統設計
5)最大塊,為了保證信息的完整性和保護密碼不被竊取,最大塊取6。
本文引用地址:http://dyxdggzs.com/article/247102.htm6)PWD,為了防止ATA5567被惡意改寫(xiě),密碼是一定需要的,即該位為1。
7)ST是為了方便以同步頭的方式實(shí)現數據的讀取。
2.2 ATA5567數據的存儲和編碼格式
對于A(yíng)TA5567能操作的其實(shí)只有block0-block7,這幾塊的格式是一樣的,只不過(guò)block0作為控制塊,block7作為密碼塊,所以實(shí)際上真正能存儲用戶(hù)數據的只有block1-block6,共有6個(gè)塊。
ATA5567的編碼方式設定為曼切斯特編碼。曼切斯特編碼是基帶傳輸中廣泛應用的一種數據傳輸編碼方式,這種編碼通常用于局域網(wǎng)傳輸,是一種自同步法編碼方式。在數據信號的波形中既有同步時(shí)鐘信號又有數據信號。在調制電路輸出的波形中,數據“1”對應著(zhù)曼切斯特編碼(下面簡(jiǎn)稱(chēng)“曼碼”)電平的上跳沿,數據“0”對應著(zhù)曼碼電平的下跳沿。在所接收的一系列曼碼數據,注意空跳變,假定兩個(gè)相鄰bit的間隔時(shí)間是1P。若兩個(gè)相鄰bit代表的數據極性相同(同為0或者同為1),那么在這兩個(gè)bit傳送之間,會(huì )出現一個(gè)預備性的非數據跳變。

根據上跳,下跳和空跳來(lái)分辨數據是“0”或者“1”,通過(guò)下圖的圖解可以發(fā)現,如果通過(guò)定時(shí)器捕獲,最少會(huì )得到兩種時(shí)間間隔,一種為一個(gè)整傳送周期(256/μs),另一種為半個(gè)傳送周期(128μs)
2.3 ATA5567寫(xiě)卡規則
在A(yíng)TA5567卡片內部有一個(gè)寫(xiě)解碼器,該解碼器采用脈沖間隔編譯碼技術(shù)。在寫(xiě)卡期間,寫(xiě)解碼器會(huì )檢查寫(xiě)數據流是否有效,并檢測場(chǎng)中斷間隔。

寫(xiě)卡的首要工作是確定寫(xiě)卡的時(shí)間間隔,結合上表中官方給出的數據和現場(chǎng)實(shí)踐,選擇時(shí)間如表1所示。

確定寫(xiě)卡時(shí)間間隔之后,還要確定寫(xiě)卡的命令。在使用一張從市場(chǎng)上買(mǎi)的新卡前,首先要做的就是在Block7當中寫(xiě)入32位秘鑰數據,然后初始化Block0為0x800880d8,寫(xiě)卡的命令及格式如下。
1)標準寫(xiě)命令格式如表2所示。

此時(shí)的寫(xiě)卡為“Standard Write”模式,由于能操作的只有第0頁(yè),所以p取0;
2)保護寫(xiě)命令格式如表3所示。

初始化block0之后,寫(xiě)卡操作變?yōu)?ldquo;Protected Write”模式,具體操作與“Standard Write”模式類(lèi)似,唯一的不同點(diǎn)便是在寫(xiě)入數據之前必須先寫(xiě)入block7中存儲的秘鑰,如果秘鑰不對,則卡進(jìn)入其他狀態(tài),這里不再贅述。

2.4 ATA5567讀卡規則和算法實(shí)現
對于A(yíng)TA5567,讀卡命令如表4所示。

由于PWD位已經(jīng)置為1,所以選擇第一種格式,寫(xiě)命令與之前講述的寫(xiě)數據類(lèi)似,此處不再講述。
發(fā)完寫(xiě)命令后,Nano110單片機會(huì )捕獲到數據,這些時(shí)間間隔數據是獲取二進(jìn)制數據來(lái)源。根據ATA5567數據的存儲和編碼格式,讀卡算法如下:
算法的核心是ReadNumber()函數的實(shí)現,由于在發(fā)送完命令之后,ATA5567會(huì )根據發(fā)送命令中的地址信息,循環(huán)發(fā)送所選地址存儲是數據。由于每個(gè)block中存儲了32 bit的數據,實(shí)際上轉換為曼碼對應的波形最多有64個(gè)跳變,所以采集到的128個(gè)數據中一定至少有一個(gè)所需數據的完整遍歷。這時(shí)同步碼也包括在128個(gè)數據之中,通過(guò)同步碼來(lái)確定block中數據的起始位。同步碼的波形如圖8所示。

同步碼在所捕獲的數據中體現為:256或128,128,384,128(單位均為μs)。用圖4中的表示方式,上面的數據對應的時(shí)長(cháng)分別為1P或0.5P,0.5P,1.5P,0.5P。因為在實(shí)際中的波形經(jīng)過(guò)調制后不可能為完美的方波,波形的好壞與標簽和天線(xiàn)的距離有很大關(guān)系,此外還跟所選器件的精度、MCU的定時(shí)器捕獲精度有關(guān),所以允許捕獲的數據有誤差。定時(shí)器捕獲數據完成后,要進(jìn)行解碼,這里定義了兩個(gè)數組array[128],bit_array[32],前者用來(lái)存放捕獲的數據,后者存放解碼后的數據,找到同步碼形后1.5P的時(shí)長(cháng)對應array[bitnum],bitnu m1的初始值為0。
程序執行完畢后,bit_array[]數組中就存儲了某個(gè)block對應的32bit的數據,這些數據是二進(jìn)制數據,可以根據需要將其轉換為十進(jìn)制或者十六進(jìn)制的數據,因為需要在各個(gè)block中存儲時(shí)間、日期、金額、流量(熱量)等信息,這里需要將其轉換為十進(jìn)制數據。
3 結束語(yǔ)
文中主要針對預付費的表類(lèi)(熱表、水表、氣表、電表),提出了一種低成本、低功耗、高可靠性的解決方案。由于篇幅所限,著(zhù)重介紹了無(wú)需解碼芯片的RFID解碼電路的構成,提出了一種針對ATA5567的高效的編解碼方案,這是整個(gè)系統架構的核心。對于系統而言,大部分時(shí)間處于非工作狀態(tài),可以使其進(jìn)入PowerDown模式(ARM架構MCU具有的功能),以節省電力。另外出于對數據備份和保護的目的,可以在系統里加入單獨的存儲單元,如SPI-Flash或者EEPROM,以期在設備損毀等場(chǎng)合盡最大可能的減少用戶(hù)的損失。在某些場(chǎng)合下,如果需要組網(wǎng),除了使用RS-485外還可以使用以太網(wǎng)或者無(wú)線(xiàn)方式(如433 MHz),這樣就可以實(shí)現與局域管理系統進(jìn)行實(shí)時(shí)對接。
手機電池相關(guān)文章:手機電池修復
負離子發(fā)生器相關(guān)文章:負離子發(fā)生器原理 蜂鳴器相關(guān)文章:蜂鳴器原理 離子色譜儀相關(guān)文章:離子色譜儀原理
評論