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