??? 摘 要: 在射頻識(shí)別(RFID)領(lǐng)域中,超高頻(UHF)射頻標(biāo)簽一直是一項(xiàng)空白。本文闡述了一種基于MSP430F122單片機(jī)和芯片nRF401組成的433MHz射頻標(biāo)簽的設(shè)計(jì),并給出了系統(tǒng)的硬件原理圖和軟件設(shè)計(jì)方案。從成本和功耗等方面綜合考慮得出一種可投產(chǎn)的實(shí)用型標(biāo)簽。
??? 關(guān)鍵詞: nRF401;MSP430F122;實(shí)用型標(biāo)簽
?
??? 射頻識(shí)別RFID技術(shù)是直接繼承了雷達(dá)的原理,并由此發(fā)展起來(lái)的一種新的自動(dòng)識(shí)別技術(shù)。與傳統(tǒng)的識(shí)別技術(shù)相比,RFID有很多優(yōu)點(diǎn),如非接觸、目標(biāo)同時(shí)識(shí)別、對(duì)外界環(huán)境幾乎無(wú)要求、識(shí)別距離遠(yuǎn)、響應(yīng)速度快、壽命長(zhǎng)等,因而應(yīng)用十分廣泛。但對(duì)于當(dāng)今的RFID領(lǐng)域,在低頻、中頻段,都有相對(duì)應(yīng)的射頻標(biāo)簽,如125kHz范圍內(nèi)有T5557卡、E5550卡,13.56MHz有Mifire 1卡等,但在高頻領(lǐng)域或者甚高頻領(lǐng)域一般標(biāo)簽都要自己設(shè)計(jì),本課題就是由此引出的。
1 系統(tǒng)硬件設(shè)計(jì)
??? 在系統(tǒng)中,無(wú)線通信電路由無(wú)線射頻收發(fā)一體化芯片nRF401組建。系統(tǒng)的硬件設(shè)計(jì)中充分考慮了性價(jià)比,用最少的器件設(shè)計(jì)出滿足要求的硬件電路。該系統(tǒng)的總體結(jié)構(gòu)以MSP430F122單片機(jī)為核心,由存儲(chǔ)電路和射頻電路組成,具體電路原理圖如圖1所示。
1.1 單片機(jī)電路
??? 射頻標(biāo)簽發(fā)行量巨大且由電池供電,所以成本和功耗是首先要考慮的問(wèn)題。綜合考慮這兩個(gè)因素本設(shè)計(jì)選擇了MSP430F122。MSP430系列單片機(jī)是TI公司生產(chǎn)的16位系列單片機(jī),在電池供電的低功耗應(yīng)用中具有獨(dú)特的優(yōu)勢(shì)。其工作電壓為1.8V~3.6V,有四種低功耗模式,正常工作時(shí)電流為300μA左右,在休眠條件下工作的電流僅為0.8μA,具有16位的RISC結(jié)構(gòu),數(shù)字控制振蕩器提供從任何低功耗模式到激活模式小于6?滋s的快速喚醒時(shí)間,具有JTAG調(diào)試電路和在線燒錄程序接口。
??? JTAG電路:TDO、TDI、TMS、TCK、RST組成JTAG調(diào)試電路,該部分在調(diào)試階段必須具備,當(dāng)調(diào)試通過(guò)后,在量產(chǎn)階段可以去掉。在此對(duì)JTAG接口做個(gè)簡(jiǎn)要介紹,JTAG接口是1985年制定的檢測(cè)PCB和IC芯片的一個(gè)標(biāo)準(zhǔn),1990年被修改后成為IEEE的一個(gè)標(biāo)準(zhǔn)即IEEE1149.1。通過(guò)這個(gè)標(biāo)準(zhǔn),可對(duì)具有JTAG口芯片的硬件電路進(jìn)行邊界掃描和故障檢測(cè)。具有JTAG口的芯片都有如下JTAG引腳定義。
??? TCK(Test Clock Input):測(cè)試時(shí)鐘輸入,TCK為TAP操作提供了一個(gè)獨(dú)立的、基本的時(shí)鐘信號(hào),TAP的所有操作都是通過(guò)這個(gè)時(shí)鐘信號(hào)來(lái)驅(qū)動(dòng)的;
??? TDI(Test Data Input):測(cè)試數(shù)據(jù)輸入,數(shù)據(jù)通過(guò)TDI輸入JTAG口;
?? ?TDO(Test Data Output):測(cè)試數(shù)據(jù)輸出,數(shù)據(jù)通過(guò)TDO從JTAG口輸出;
??? TMS(Test Mode Selection Input):測(cè)試模式選擇,TMS用來(lái)設(shè)置JTAG口處于某種特定的測(cè)試模式,TMS信號(hào)在TCK的上升沿有效。
?? ?這四個(gè)信號(hào)在IEEE 1149.1標(biāo)準(zhǔn)里是強(qiáng)制要求的。
?? ?TRST(Test Reset Input):測(cè)試復(fù)位,輸入引腳,低電平有效,TRST信號(hào)在IEEE 1149.1標(biāo)準(zhǔn)里不是強(qiáng)制要求的。
?? ?BSL(bootstrap loader)電路:MSP430的bootstrap loader(BSL)使用戶可以使用一個(gè)UART串行接口對(duì)Flash存儲(chǔ)器或RAM進(jìn)行編程,方便系統(tǒng)進(jìn)行升級(jí)。MSP430F122的BSL電路由P1.1(BSLTX)、P2.2(BSLRX)、TCK、RST四個(gè)引腳組成。
??? P3.6、P3.7為I2C總線接口電路,由于MSP430F122無(wú)I2C硬件接口,本系統(tǒng)用I/O口來(lái)模擬I2C接口電路。P3.4、P3.5為串行通訊電路,P3.4為串口的TXD發(fā)送端,P3.5為串口的RXD接收端,分別與nRF401的Din和Dout腳連接。P3.0接nRF401的CS頻道選擇端,CS=0為433.92MHz,CS=1為434.33MHz。P3.1連接nRF401的節(jié)電控制端PWR_UP,PWR_UP=0 時(shí)nRF401處于待機(jī)模式,PWR_UP=1為活動(dòng)模式。P3.2接nRF401的發(fā)射接收控制端TXEN,TXEN=1為發(fā)射模式,TXEN=0為接收模式。
1.2 模擬射頻電路
??? 在本系統(tǒng)設(shè)計(jì)中模擬射頻電路采用nRF401芯片為主控芯片,該芯片采用FSK調(diào)制解調(diào)技術(shù),最高工作速率可達(dá)到20Kb/s,發(fā)射功率可以調(diào)整,最大發(fā)射功率是+10dBm。
??? nRF401的天線接口設(shè)計(jì)為差分天線,以便于使用低成本的PCB天線。它所需要的外圍元件少,無(wú)需聲表濾波器、變?nèi)莨艿劝嘿F元件,只需要便宜且易于獲得的4MHz晶體,收發(fā)天線合一,無(wú)需進(jìn)行初始化和配置,不需要對(duì)數(shù)據(jù)進(jìn)行曼徹斯特編碼,有兩個(gè)工作頻寬(433.92/434.33MHz),工作電壓為2.7V~5V,還具有待機(jī)模式,可以更省電和高效。因此非常適合便攜式產(chǎn)品設(shè)計(jì)。其結(jié)構(gòu)框圖如圖2所示。
?
??? nRF401有3種工作模式:收模式(RX)、發(fā)模式(TX)和等待模式(Stand.by),其具體工作模式可由3個(gè)引腳設(shè)定,分別是TXEN、CS和PWR_UP。因此可以通過(guò)單片機(jī)控制nRF401的工作模式,使其處于接收、發(fā)射、等待中的任一種狀態(tài),實(shí)現(xiàn)半雙工通信。若PWR=0,TXEN和CS任意,則系統(tǒng)為待機(jī)狀態(tài);若TXEN=1,則為發(fā)送狀態(tài);TXEN=0,為接收狀態(tài)。CS為信道選通端,CS=0選通信道為433.92MHz;CS=1選通信道為434.33MHz。RF_PWR為發(fā)射功率設(shè)置,調(diào)節(jié)電阻R3值可以調(diào)節(jié)輸出發(fā)射功率,最大發(fā)射功率可以調(diào)節(jié)到+10dBm。其主要特性如下:
??? (1)工作頻率為國(guó)際通用的數(shù)傳頻段;
?? ?(2)工作速率最高可達(dá)20Kb/s;
?? ?(3)FSK調(diào)制,抗干擾能力強(qiáng);
?? ?(4)采用PLL頻率合成技術(shù),頻率穩(wěn)定性極好;
?? ?(5)靈敏度高達(dá)-105dBm;
?? ?(6)功耗小,接收狀態(tài)250μA,待機(jī)狀態(tài)僅為8μA;
?? ?(7)最大發(fā)射功率達(dá)+10dBm;
?? ?(8)低工作電壓(2.7V),可滿足低功耗設(shè)備的要求;
?? ?(9)具有多個(gè)頻道,可方便地切換工作頻率;
?? ?(10)因采用了低發(fā)射功率、高接收靈敏度的設(shè)計(jì),使用無(wú)需申請(qǐng)?jiān)S可證,開闊地的使用距離最遠(yuǎn)可達(dá)1000m。
?? ?nRF401接收機(jī)使用頻移鍵控(FSK)調(diào)制方式,改善了噪聲環(huán)境的系統(tǒng)性能。nRF401另一個(gè)非重要的特性是接收機(jī)的頻帶外阻抗很高,這意味著它不需要外部聲面波(SAW)濾波器。
??? 本系統(tǒng)的無(wú)線通訊模塊發(fā)送部分是通過(guò)單片機(jī)串行口發(fā)送到nRF401的Din腳進(jìn)行發(fā)送,而接收部分是由模塊接收到數(shù)據(jù)以后,由Dout輸入到單片機(jī)的串行口的,連接示意圖如圖3所示。
?
1.3 存儲(chǔ)電路
??? 存儲(chǔ)電路使用的芯片為AT24C01,是128B的EEPROM。該芯片是用來(lái)存儲(chǔ)標(biāo)簽密鑰,在發(fā)行射頻標(biāo)簽時(shí)通過(guò)讀寫器的射頻芯片發(fā)射傳播一串密鑰。例如,12B的數(shù)據(jù)通過(guò)射頻標(biāo)簽的nRF401芯片接收后送到單片機(jī)的串行口,再經(jīng)過(guò)單片機(jī)的處理后寫入到I2C存儲(chǔ)器AT24C01中,以后每次對(duì)卡片進(jìn)行讀寫操作時(shí),首先要進(jìn)行密鑰判斷,如果密鑰正確才能進(jìn)行相應(yīng)的讀寫操作,從而有效防止該射頻標(biāo)簽被誤讀,只有發(fā)行該卡片的讀寫器才能對(duì)其進(jìn)行讀寫。
1.4 電池工作壽命的計(jì)算與工作循環(huán)的關(guān)系
??? (1)一個(gè)CR2032型鋰電池(標(biāo)稱容量>210mAh),要讓該電池工作半年以上(4380h)。
??? (2)為滿足該連續(xù)工作時(shí)間,理論上要求平均工作電流為:
??? I=210mA.h/4380h=47.9μA
??? (3)在工作模式轉(zhuǎn)換中,從待機(jī)到接收穩(wěn)定最多需要5ms的時(shí)間,另外加上10ms時(shí)間來(lái)搜索前置碼,所以設(shè)計(jì)工作時(shí)間為15ms,待機(jī)時(shí)間為3.45s,此時(shí)理論平均工作電流為:
??? I=11mA×(15ms/3.45s)=47.8μA
??? nRF401接收電流為11mA,這也意味著為了喚醒標(biāo)簽,讀卡器每次發(fā)送數(shù)據(jù)時(shí)必須先發(fā)送至少3.45s的前置碼,以保證能夠可靠喚醒標(biāo)簽。對(duì)于標(biāo)簽來(lái)說(shuō),每工作15ms若搜索不到前置碼,即進(jìn)入待機(jī)模式3.45s。利用在待機(jī)模式和接收模式之間的切換來(lái)減小功耗。當(dāng)加大電池容量后,就可以延長(zhǎng)電池的使用時(shí)間和縮短待機(jī)時(shí)間。
1.5 系統(tǒng)開發(fā)環(huán)境
??? (1)編譯器使用MSP430的IAR C編譯器。
?? ?(2)仿真器使用杭州利爾達(dá)公司LSD-FET430P120。
?? ?(3)編程器使用杭州利爾達(dá)公司的LSD-430PRGS-IIIA。
2 系統(tǒng)軟件設(shè)計(jì)
??? 系統(tǒng)軟件采用模塊化程序設(shè)計(jì),用C語(yǔ)言編寫。主要由四部分組成,包括:主程序模塊、通信程序模塊、I2C通訊模塊、存儲(chǔ)程序模塊。主程序流程圖如圖4所示。
?
2.1 主程序模塊
?? ?主程序模塊主要完成各種參數(shù)的設(shè)置,時(shí)鐘源選擇,定時(shí)器參數(shù)設(shè)置等。由于51單片機(jī)的廣泛應(yīng)用,大家都比較熟悉,基于此,在此主要對(duì)MSP430相對(duì)51單片機(jī)在編程上的一些不同做簡(jiǎn)單說(shuō)明:
??? (1)時(shí)鐘源選擇
?? ?MSP430單片機(jī)有多個(gè)時(shí)鐘源,在程序的開始,必須編寫時(shí)鐘選擇程序,選擇相應(yīng)的時(shí)鐘,如選擇外部時(shí)鐘源并等待時(shí)鐘穩(wěn)定的程序:
void WaitXT2Oscillate(void)
{
??? uint i;
??? FLL_CTL1 &=~XT2OFF;/*打開XT2振蕩器*/
??? do
{
?? ?? IFG1 &=~OFIFG;/*清除振蕩器失效標(biāo)志*/
????? for (i=0xFF;i>0;i--);/*延時(shí),等待XT2起振*/
??? }
??? while ((IFG1 & OFIFG) !=0);/*判斷XT2是否起振*/
??? FLL_CTL1 |=SELM1;/*選擇XT2為MCLK的時(shí)鐘源*/
}
?? ?(2)中斷函數(shù)的應(yīng)用
?? ?每個(gè)中斷函數(shù)都有相應(yīng)的入口地址,在IAR編譯環(huán)境下,必須用以下格式對(duì)中斷函數(shù)進(jìn)行描述。
?? ?定時(shí)器中斷函數(shù):
#pragma vector=TIMERA0_VECTOR
/*表示定時(shí)器T0的中斷入口地址*/
__interrupt void TimerA0(void)/*__interrupt中斷函數(shù)關(guān)鍵字*/
{?}???/*函數(shù)體*/
??? 串口中斷函數(shù):
#pragma vector=UART1RX_VECTOR
/*表示串口1的中斷入口地址*/
__interrupt void UARTReceiveProcess(void)
{?}
?? ?只有這樣定義,當(dāng)中斷發(fā)生時(shí)才能進(jìn)入相應(yīng)的中斷函數(shù)。
?? ?(3)進(jìn)入和退出低功耗模式
{LPM3;}????????? ?/*進(jìn)入低功耗模式3*/
{LPM3_EXIT;}????? /*退出低功耗模式3*/
2.2 通信程序模塊
??? 為了省電,射頻標(biāo)簽大部分時(shí)間處于待機(jī)模式,單片機(jī)平時(shí)處于低功耗模式3{LPM3;},此時(shí)只有32KHz的晶振工作,工作電流僅為0.8μA,通過(guò)中斷可喚醒單片機(jī),每隔一定的時(shí)間(3.45s,1.4節(jié)算出的值),控制PWR_UP腳為1進(jìn)入工作狀態(tài),同時(shí)控制TXEN的值為0使標(biāo)簽進(jìn)入接收狀態(tài)(工作時(shí)間為15ms),對(duì)接收到的數(shù)據(jù)進(jìn)行判斷,看是否符合協(xié)議要求。若符合協(xié)議格式,nRF401轉(zhuǎn)入發(fā)射模式,發(fā)送返回的數(shù)據(jù),發(fā)送完后nRF401又回到待機(jī)模式,同時(shí)MSP430進(jìn)入LPM3低功耗模式狀態(tài)。
??? 每隔一段時(shí)間轉(zhuǎn)入接收模式狀態(tài),當(dāng)接收到數(shù)據(jù)后,經(jīng)數(shù)據(jù)處理后轉(zhuǎn)化為發(fā)射狀態(tài),發(fā)射完后又轉(zhuǎn)入待機(jī)模式。所以在編寫程序時(shí),要特別注意這兩個(gè)狀態(tài)在轉(zhuǎn)換過(guò)程中所需要的時(shí)間。
?? ?(1)從待機(jī)模式到接收模式的轉(zhuǎn)化時(shí)間至少為5ms;
?? ?(2)從接收模式轉(zhuǎn)化為發(fā)射模式時(shí),數(shù)據(jù)輸入腳(Din)必須保持為高至少1ms才能發(fā)送數(shù)據(jù)。
2.3 存儲(chǔ)模塊程序
??? 主要包括I2C總線程序和AT24C01的讀寫操作函數(shù)。AT24C01是串行存儲(chǔ)器,通過(guò)I2C總線進(jìn)行存儲(chǔ)數(shù)據(jù),在此用單片機(jī)的P3.6和P3.7模擬I2C總線傳輸。AT24C01在3V條件下工作,I2C的傳輸速率典型值為100kHz,MSP430單片機(jī)是單周期指令,即一個(gè)時(shí)鐘周期為一個(gè)機(jī)器周期。在本系統(tǒng)中晶振頻率為4MHz,每條指令的最小時(shí)間為0.25μs,因此在每條指令后要加相應(yīng)的延時(shí)。例如SDA模擬輸出程序如下:
#define I2C_SDA_1()?
{P3OUT |=BIT6;Lite_Delay();}/*SDA引腳輸出1*/
#define I2C_SDA_0()?
{P3OUT &=~BIT6;Lite_Delay();}/*SDA引腳輸出0*/
#define? Lite_Delay()/*執(zhí)行20個(gè)空操作,延時(shí)5μs*/
{
_NOP();_NOP();_NOP();_NOP();_NOP();
_NOP();_NOP();_NOP();_NOP();_NOP();
_NOP();_NOP();_NOP();_NOP();_NOP();
_NOP();_NOP();_NOP();_NOP();_NOP();
}
?? ?本文利用nRF401芯片來(lái)設(shè)計(jì)相應(yīng)的標(biāo)簽,這種標(biāo)簽可以用由nRF401芯片設(shè)計(jì)的讀寫器進(jìn)行讀寫;利用無(wú)線射頻芯片nRF401,設(shè)計(jì)實(shí)現(xiàn)了簡(jiǎn)單、低功耗的無(wú)線射頻標(biāo)簽。兩個(gè)工作頻寬(433.92/433.33MHz)可根據(jù)需要進(jìn)行選擇,適用于需要進(jìn)行較遠(yuǎn)距離讀寫的各種射頻應(yīng)用場(chǎng)合;充分考慮芯片選型的成本和價(jià)格,為廠家進(jìn)行大批量生產(chǎn)提供借鑒。
參考文獻(xiàn)
[1] 胡大可.MSP430系列超低功耗16位單片機(jī)原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2000.
[2] 胡大可.MSP430系列單片機(jī)C語(yǔ)言程序設(shè)計(jì)與開發(fā)[M].北京:北京航空航天大學(xué)出版社,2002.
[3] 畢大園,楊鈺.基于nRF系列無(wú)線收發(fā)芯片的線路智能識(shí)別系統(tǒng)設(shè)計(jì)[J].紅河學(xué)院學(xué)報(bào),2002,4(2).
[4] 謝敏.基于MSP430的低功耗儀表系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007,23(8).