基于RFID的控制閥系統(tǒng)設(shè)計(jì)
摘要:射頻識(shí)別技術(shù)(RFID)是一項(xiàng)利用射頻信號(hào)通過(guò)空間耦合(交變磁場(chǎng)或電磁場(chǎng))實(shí)現(xiàn)無(wú)線方式對(duì)電子數(shù)據(jù)載體進(jìn)行識(shí)別的新興自動(dòng)識(shí)別技術(shù)。針對(duì)低功耗和高效性,設(shè)計(jì)了一種以Nuvoton Nano110低功耗MCU為核心的125KHz的RFID控制閾系統(tǒng)。該系統(tǒng)采用分立元件搭建了成本極低的ATA5567射頻卡讀寫電路,構(gòu)建了段碼式LCD顯示和控制閥門的電機(jī)驅(qū)動(dòng)模塊。通過(guò)實(shí)踐檢驗(yàn)了系統(tǒng)的穩(wěn)定性,可將其用于成本敏感的預(yù)付費(fèi)卡表(水表、燃?xì)獗砗蜔崃勘淼?。
本文引用地址:http://butianyuan.cn/article/201610/306801.htm當(dāng)前在中國(guó)的各類計(jì)量行業(yè)中,使用的計(jì)量表如水表、燃?xì)獗砗蜔崃勘淼?,絕大多數(shù)均不帶流量控制功能,經(jīng)常的做法是先使用后交費(fèi),這樣會(huì)給用戶造成很多不便,因此預(yù)付費(fèi)的計(jì)量表便應(yīng)運(yùn)而生。本文介紹了一種廣泛應(yīng)用于預(yù)付費(fèi)卡表的RFID控制閥門,與其它各類表的控制閥門的方式相比,用RFID控制閥門的優(yōu)勢(shì)在于:
1)在識(shí)別方面,使用RFID后,會(huì)使可識(shí)別的距離更靈活,具有無(wú)屏障閱讀和穿透性,可以穿透非磁性材料,比如水、塑膠、混凝土等。
2)在耐用性方面,RFID對(duì)水、油和腐蝕性較強(qiáng)的化學(xué)藥品等具有很強(qiáng)的抵抗性;同時(shí)RFID將數(shù)據(jù)存在芯片中,芯片和外界沒(méi)有直接接觸,因此可以免受污損。
3)在可重復(fù)使用方面,RFID標(biāo)簽則可以重復(fù)的修改、刪除RFID內(nèi)儲(chǔ)存的數(shù)據(jù),信息更新很方便。
4)在數(shù)據(jù)的安全性方面,RFID承載的是電子式信息,其數(shù)據(jù)內(nèi)容可經(jīng)由密碼保護(hù),使其內(nèi)容不易被偽造和變更。
5)成本低廉,可加入LC振蕩器到微控制器中來(lái)實(shí)現(xiàn)高性價(jià)比的收發(fā)器。
6)可實(shí)現(xiàn)低功耗設(shè)計(jì),尤其在接收端。
1 系統(tǒng)硬件設(shè)計(jì)
1.1 系統(tǒng)組成
控制閥系統(tǒng)主要由6部分組成:電子標(biāo)簽、射頻天線及調(diào)制電路、控制核心(MCU)、電機(jī)及其控制模塊、LCD顯示模塊和蜂嗚報(bào)警模塊。
1)電子標(biāo)簽:本系統(tǒng)采用的電子標(biāo)簽是ATA5567射頻卡,該射頻卡由內(nèi)置芯片、內(nèi)置天線和EEPROM組成。射頻卡中的EEPROM用于存儲(chǔ)數(shù)據(jù),其中數(shù)據(jù)可以反復(fù)的讀取和擦除,讀寫次數(shù)不少于10萬(wàn)次,內(nèi)置電線用于與射頻天線進(jìn)行通信。市面上常見(jiàn)的電子標(biāo)簽都是無(wú)源的,所以需要內(nèi)置天線接收射頻天線傳遞信息的同時(shí),通過(guò)耦合來(lái)提供EEPROM讀寫數(shù)據(jù)所需要的能量。內(nèi)置芯片用于接收命令并根據(jù)命令的內(nèi)容決定數(shù)據(jù)的發(fā)送方式。
2)射頻天線及調(diào)制電路:射頻天線主要用來(lái)與電子標(biāo)簽建立通信通路。調(diào)制電路一般包括:功率放大電路、檢波電路和濾波放大整形電路3個(gè)部分。
3)控制核心MCU:本系統(tǒng)采用臺(tái)灣新唐科技Nano100系列超低功耗的32位內(nèi)嵌ARM Cortex—MO核的MCU作為控制核心,其主要實(shí)現(xiàn)功能有:①通過(guò)CLKO輸出125 KHz的載波。②通過(guò)TC0捕獲調(diào)制電路輸出的波形信息。③通過(guò)GPIO和ADC驅(qū)動(dòng)直流有刷電機(jī)并在電機(jī)卡住時(shí)斷電保護(hù)。
④通過(guò)MCU內(nèi)部的LCD Driver驅(qū)動(dòng)段碼式LCD。⑤通過(guò)PWM控制蜂鳴器產(chǎn)生合適的報(bào)警聲音。
4)電機(jī)驅(qū)動(dòng)及控制模塊:通過(guò)H橋控制直流有刷電機(jī)的轉(zhuǎn)動(dòng),電機(jī)卡住時(shí)將斷電保護(hù)。
5)LCD顯示模塊:通過(guò)MCU驅(qū)動(dòng)段碼式LCD以顯示金額、開(kāi)閥、關(guān)閥等信息。
6)蜂鳴報(bào)警模塊:通過(guò)PWM控制蜂鳴器產(chǎn)生適當(dāng)?shù)膱?bào)警聲音。
1.2 天線及調(diào)制電路設(shè)計(jì)
1)載波產(chǎn)生和天線驅(qū)動(dòng)電路:由MCU的CLKO輸出頻率穩(wěn)定的125 kHz的方波,經(jīng)過(guò)三極管進(jìn)行功率放大。之后的串聯(lián)諧振電路中天線是漆包線繞制的線圈,電容采用的是精準(zhǔn)的校正電容,加入功率放大和產(chǎn)生諧振的目的是獲得最大的磁通量,從而產(chǎn)生最大的讀卡距離。
2)檢波電路,濾除載波信號(hào)。
3)放大電路,采用有低廉的LM358運(yùn)算放大器進(jìn)行兩級(jí)電壓放大。
4)捕獲及運(yùn)算,該部分是在MCU內(nèi)部完成的,由MCU中的Timer0工作在周期自由捕獲模式,完成碼元間隔時(shí)間的捕獲,然后經(jīng)過(guò)運(yùn)算,得出各個(gè)Block的數(shù)值。
1.3 電機(jī)驅(qū)動(dòng)設(shè)計(jì)
主體電路是由4個(gè)三極管組成的H橋驅(qū)動(dòng)電路,在同一時(shí)刻最多只有2個(gè)三極管處于導(dǎo)通狀態(tài),可以方便的控制電機(jī)的正傳和反轉(zhuǎn),再電機(jī)卡住時(shí),由于電流是正常工作時(shí)的6~7倍,所以通過(guò)MCU內(nèi)部的ADC檢測(cè)電阻上的電壓值,如果數(shù)值滿足條件,則會(huì)給電機(jī)斷電,并視情況發(fā)生報(bào)警,以免電機(jī)燒毀和設(shè)備的損壞。
2 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)的軟件設(shè)計(jì)主要由6個(gè)部分組成:1)讀卡;2)寫卡;3)GPIO控制電機(jī)和ADC過(guò)壓檢測(cè);4)PWM驅(qū)動(dòng)蜂鳴器;5)125 kHz載波產(chǎn)生;6)LCD顯示。其中最主要的當(dāng)屬1)讀卡和2)寫卡了,完成讀卡和寫卡后,系統(tǒng)的軀干就有了,然后3),4),5),6)就是在軀干上添枝加葉,讓這個(gè)系統(tǒng)完整起來(lái)。
2.1 ATA5567卡片的讀寫規(guī)則
ATA5567中的存儲(chǔ)是330bit的EEPROM,一共有10個(gè)塊(block),每個(gè)塊有33bit,其中第一位為鎖bit。一共分為兩頁(yè),第一頁(yè)包含8個(gè)block,編號(hào)分別為block0-block7。第二頁(yè)包含2個(gè)block,為只讀block,包含可回溯數(shù)據(jù),由AIMEL公司規(guī)劃。
ATA5567的數(shù)據(jù)率和調(diào)制方式是由block0決定。
對(duì)于本系統(tǒng)而言,做了很多的嘗試,找到了一種和MCU搭配比較合理的ATA5567配置方式。
1)主控鍵值,需執(zhí)行讀寫操作,所以主控鍵值選為8。
2)比特率,綜合MCU的性能和讀ATA5567所用時(shí)間,取一個(gè)折中,選擇的是RF/32,這樣一個(gè)碼元的周期
3)調(diào)制方式,一般選擇曼切斯特的調(diào)制方式。
4)AOR是按請(qǐng)求應(yīng)答,主要的作用是防碰撞機(jī)制。當(dāng)有多張ATA5567卡靠近應(yīng)答器時(shí),可以實(shí)現(xiàn)每張卡的逐次讀取。
5)最大塊,為了保證信息的完整性和保護(hù)密碼不被竊取,最大塊取6。
6)PWD,為了防止ATA5567被惡意改寫,密碼是一定需要的,即該位為1。
7)ST是為了方便以同步頭的方式實(shí)現(xiàn)數(shù)據(jù)的讀取。
2.2 ATA5567數(shù)據(jù)的存儲(chǔ)和編碼格式
對(duì)于ATA5567能操作的其實(shí)只有block0-block7,這幾塊的格式是一樣的,只不過(guò)block0作為控制塊,block7作為密碼塊,所以實(shí)際上真正能存儲(chǔ)用戶數(shù)據(jù)的只有block1-block6,共有6個(gè)塊。
ATA5567的編碼方式設(shè)定為曼切斯特編碼。曼切斯特編碼是基帶傳輸中廣泛應(yīng)用的一種數(shù)據(jù)傳輸編碼方式,這種編碼通常用于局域網(wǎng)傳輸,是一種自同步法編碼方式。在數(shù)據(jù)信號(hào)的波形中既有同步時(shí)鐘信號(hào)又有數(shù)據(jù)信號(hào)。在調(diào)制電路輸出的波形中,數(shù)據(jù)“1”對(duì)應(yīng)著曼切斯特編碼(下面簡(jiǎn)稱“曼碼”)電平的上跳沿,數(shù)據(jù)“0”對(duì)應(yīng)著曼碼電平的下跳沿。在所接收的一系列曼碼數(shù)據(jù),注意空跳變,假定兩個(gè)相鄰bit的間隔時(shí)間是1P。若兩個(gè)相鄰bit代表的數(shù)據(jù)極性相同(同為0或者同為1),那么在這兩個(gè)bit傳送之間,會(huì)出現(xiàn)一個(gè)預(yù)備性的非數(shù)據(jù)跳變。
根據(jù)上跳,下跳和空跳來(lái)分辨數(shù)據(jù)是“0”或者“1”,通過(guò)下圖的圖解可以發(fā)現(xiàn),如果通過(guò)定時(shí)器捕獲,最少會(huì)得到兩種時(shí)間間隔,一種為一個(gè)整傳送周期(256/μs),另一種為半個(gè)傳送周期(128μs)
2.3 ATA5567寫卡規(guī)則
在ATA5567卡片內(nèi)部有一個(gè)寫解碼器,該解碼器采用脈沖間隔編譯碼技術(shù)。在寫卡期間,寫解碼器會(huì)檢查寫數(shù)據(jù)流是否有效,并檢測(cè)場(chǎng)中斷間隔。
寫卡的首要工作是確定寫卡的時(shí)間間隔,結(jié)合上表中官方給出的數(shù)據(jù)和現(xiàn)場(chǎng)實(shí)踐,選擇時(shí)間如表1所示。
確定寫卡時(shí)間間隔之后,還要確定寫卡的命令。在使用一張從市場(chǎng)上買的新卡前,首先要做的就是在Block7當(dāng)中寫入32位秘鑰數(shù)據(jù),然后初始化Block0為0x800880d8,寫卡的命令及格式如下。
1)標(biāo)準(zhǔn)寫命令格式如表2所示。
此時(shí)的寫卡為“Standard Write”模式,由于能操作的只有第0頁(yè),所以p取0;
2)保護(hù)寫命令格式如表3所示。
初始化block0之后,寫卡操作變?yōu)?ldquo;Protected Write”模式,具體操作與“Standard Write”模式類似,唯一的不同點(diǎn)便是在寫入數(shù)據(jù)之前必須先寫入block7中存儲(chǔ)的秘鑰,如果秘鑰不對(duì),則卡進(jìn)入其他狀態(tài),這里不再贅述。
2.4 ATA5567讀卡規(guī)則和算法實(shí)現(xiàn)
對(duì)于ATA5567,讀卡命令如表4所示。
由于PWD位已經(jīng)置為1,所以選擇第一種格式,寫命令與之前講述的寫數(shù)據(jù)類似,此處不再講述。
發(fā)完寫命令后,Nano110單片機(jī)會(huì)捕獲到數(shù)據(jù),這些時(shí)間間隔數(shù)據(jù)是獲取二進(jìn)制數(shù)據(jù)來(lái)源。根據(jù)ATA5567數(shù)據(jù)的存儲(chǔ)和編碼格式,讀卡算法如下:
算法的核心是ReadNumber()函數(shù)的實(shí)現(xiàn),由于在發(fā)送完命令之后,ATA5567會(huì)根據(jù)發(fā)送命令中的地址信息,循環(huán)發(fā)送所選地址存儲(chǔ)是數(shù)據(jù)。由于每個(gè)block中存儲(chǔ)了32 bit的數(shù)據(jù),實(shí)際上轉(zhuǎn)換為曼碼對(duì)應(yīng)的波形最多有64個(gè)跳變,所以采集到的128個(gè)數(shù)據(jù)中一定至少有一個(gè)所需數(shù)據(jù)的完整遍歷。這時(shí)同步碼也包括在128個(gè)數(shù)據(jù)之中,通過(guò)同步碼來(lái)確定block中數(shù)據(jù)的起始位。同步碼的波形如圖8所示。
同步碼在所捕獲的數(shù)據(jù)中體現(xiàn)為:256或128,128,384,128(單位均為μs)。用圖4中的表示方式,上面的數(shù)據(jù)對(duì)應(yīng)的時(shí)長(zhǎng)分別為1P或0.5P,0.5P,1.5P,0.5P。因?yàn)樵趯?shí)際中的波形經(jīng)過(guò)調(diào)制后不可能為完美的方波,波形的好壞與標(biāo)簽和天線的距離有很大關(guān)系,此外還跟所選器件的精度、MCU的定時(shí)器捕獲精度有關(guān),所以允許捕獲的數(shù)據(jù)有誤差。定時(shí)器捕獲數(shù)據(jù)完成后,要進(jìn)行解碼,這里定義了兩個(gè)數(shù)組array[128],bit_array[32],前者用來(lái)存放捕獲的數(shù)據(jù),后者存放解碼后的數(shù)據(jù),找到同步碼形后1.5P的時(shí)長(zhǎng)對(duì)應(yīng)array[bitnum],bitnu m1的初始值為0。
程序執(zhí)行完畢后,bit_array[]數(shù)組中就存儲(chǔ)了某個(gè)block對(duì)應(yīng)的32bit的數(shù)據(jù),這些數(shù)據(jù)是二進(jìn)制數(shù)據(jù),可以根據(jù)需要將其轉(zhuǎn)換為十進(jìn)制或者十六進(jìn)制的數(shù)據(jù),因?yàn)樾枰诟鱾€(gè)block中存儲(chǔ)時(shí)間、日期、金額、流量(熱量)等信息,這里需要將其轉(zhuǎn)換為十進(jìn)制數(shù)據(jù)。
3 結(jié)束語(yǔ)
文中主要針對(duì)預(yù)付費(fèi)的表類(熱表、水表、氣表、電表),提出了一種低成本、低功耗、高可靠性的解決方案。由于篇幅所限,著重介紹了無(wú)需解碼芯片的RFID解碼電路的構(gòu)成,提出了一種針對(duì)ATA5567的高效的編解碼方案,這是整個(gè)系統(tǒng)架構(gòu)的核心。對(duì)于系統(tǒng)而言,大部分時(shí)間處于非工作狀態(tài),可以使其進(jìn)入PowerDown模式(ARM架構(gòu)MCU具有的功能),以節(jié)省電力。另外出于對(duì)數(shù)據(jù)備份和保護(hù)的目的,可以在系統(tǒng)里加入單獨(dú)的存儲(chǔ)單元,如SPI-Flash或者EEPROM,以期在設(shè)備損毀等場(chǎng)合盡最大可能的減少用戶的損失。在某些場(chǎng)合下,如果需要組網(wǎng),除了使用RS-485外還可以使用以太網(wǎng)或者無(wú)線方式(如433 MHz),這樣就可以實(shí)現(xiàn)與局域管理系統(tǒng)進(jìn)行實(shí)時(shí)對(duì)接。
評(píng)論