(中煤科工集團重慶研究院有限公司,重慶 400037)
射頻識別技術[1](radio frequency identification,RFID)是近年迅速發展起來的一種非接觸式的自動識別技術,它利用射頻在空間耦合的方式實現非接觸式信息傳遞。RFID技術的標簽具有耐高溫、識別距離遠、多卡識別、防水、防磁、容量大、抗干擾能力強等優點,被廣泛應用于身份識別、物流管理、工業生產、交通運輸、動物識別和圖書館等領域。本文采用超低功耗的STC10L16XE單片機和CC2500射頻芯片,設計了一種具有讀取距離遠、可靠性高、成本低、功耗低等特點的集收發一體的有源電子標簽結構。
本文設計的有源標簽主要由射頻前端、微控制器、存儲器和電源模塊組成,其結構如圖1所示。射頻前端負責對收發信號進行調制解調;微控制器用于配置射頻芯片寄存器,使其正常工作,同時實現讀取接收信息和寫入發送信息,完成標簽間的通信;EEPROM存儲器用于存儲射頻標簽相關信息;電源模塊為整個系統提供3.3 V電源。

圖1 電子標簽結構框圖
1.2.1 微處理器芯片
STC10L16XE[2-3]是一款針對高速通信和強干擾場合的8位微型計算機,與工業標準MCS-51指令集和引腳結構兼容,STC10L16XE速度比普通的51單片機快8~12倍。STC10L16XE具有以下功能: 16 kB Flash存儲器、2個16位可編程定時器/計數器、128 B RAM、40個I/O引腳、5路外部中斷口、1.8~3.6 V的工作電壓。該芯片滿足系統的設計要求。
1.2.2 無線射頻收發芯片
針對有源標簽設計的功耗問題,一般有以下兩種途徑實現低功耗設計的要求:一種是選擇低功耗的元器件,另一種是利用科學的軟件實現。
本文從這兩個方面入手,首先選用CC2500超低功耗射頻芯片[3-6],當速率為250 kbit/s時,CC2500芯片接收的電流消耗僅為13.3 mA,與業界同類芯片相比功耗相對很低;然后合理使用該芯片的4種主要狀態,即TX、RX、Idle、Sleep。當CC2500芯片處于Sleep狀態時,功耗僅為900 nA。因此,只要保證在一個完整的工作周期內,標簽絕大部分時間都處于休眠狀態,就可以大大降低標簽的功耗。CC2500的工作電壓為1.9~3.6 V,支持FSK、GFSK、OOK和MSK等多種調制方式,沒有復雜的通信協議,數據傳輸速率最高可達500 kbit/s,糾錯能力強、誤碼率低,只需極少外圍元件即可工作[7]。
CC2500芯片內置頻率合成器、功率放大器、A/D轉換器、相位轉換器、調制解調器等功能模塊,輸出功率和通信頻道可通過程序進行配置。無線射頻收發過程如圖2所示。

圖2 射頻收發模塊系統框圖
本文選用的CC2500射頻芯片具有數據白化和清理信道訪問(clear channel assessment,CCA)功能。
① 數據白化
現實中通信的數據通常含有很長序列的0和1。對于這種情況,一般采用在傳輸數據之前將其白化、在接收端對其反白化的方法,以提高性能。將CC2500芯片中PKTCTRL0.WHITE_DATA位設置為1,即可實現數據白化。該過程由CC2500芯片自動完成。
除前導和同步詞匯外,所有數據在傳輸前將同一個9位偽隨機的隨意序列(PN9)進行異或運算,實現數據白化。在接收端,數據被同一偽隨機的隨意序列異或。這樣,白化被反運算得到原始數據。
② 清理信道訪問
清理信道訪問(CCA)用來指示當前信道是否忙碌。信道的當前CCA狀態在任一GDO腳上均可知。當CC2500芯片處于RX狀態且STX或SFSTXON命令濾波被給出時,若滿足清理信道要求,則進入TX狀態;否則保持在RX狀態。利用這個功能可以檢測出信道是否被占用,從而有效地防止信息碰撞的發生。
微控制器部分采用STC10L16XE最小系統,微控制器通過P1.0~P1.5分別與CC2500芯片相連接,由CS、CLK、SI、SO組成SPI接口,負責微控制器與CC2500芯片之間數據的傳送。
射頻部分采用CC2500芯片,該芯片的外圍器件相對簡單。CC2500芯片的RF-N與RF-P是差分射頻信號輸出引腳,由一對電容電阻組成一個平衡轉換器,將CC2500芯片上的RF端口轉換成單端RF信號。射頻部分偏置電阻R1用于設置一個精確的偏置電流;通過去藕電容為PCB板提供精確的功率供給;通過一個π型LC濾波器網絡作用,與天線達到最佳的阻抗匹配。
系統天線部分采用在PCB板上設計的倒F型天線。倒F型天線具有結構簡單、制造成本低、輻射效率高、容易實現多頻段工作等獨特優點。有源標簽電路原理圖[8-9]如圖3所示。

圖3 有源標簽電路原理
射頻電路中,印制電路板設計的合理性至關重要。印制電路板設計不當,則會影響電子設備的可靠性和功能。
設計中,當有源電子標簽PCB板布局和布線時,要優先對RF端口的元件進行布局,用以保證RF端口布線最短,達到最佳的阻抗匹配和信號傳輸。為了將數字信號和模擬信號分開,濾波網絡必須就近連接,最后,退藕電容要盡量靠近芯片引腳。
由于CC2500芯片沒有復雜的數據協議要求,因此軟件設計主要實現如下操作[10]:①初始化CC2500芯片,對寄存器進行配置;②無線數據收發和處理。
系統在實現STC10L-16XE單片機具體的功能要求時采用C語言編程。
CC2500芯片采用電磁激活方式,當有數據包接收或發送時,無線收發系統被喚醒;當數據發送完畢后,系統將自動進入休眠模式。系統數據收發流程如圖4所示。

圖4 系統數據收發流程圖
系統上電后,首先進行定時器和串口的初始化,通過CC2500芯片的寄存器配置射頻收發器的傳輸速率、發送頻率、收發模式、數據白化以及CRC校驗的長度和有效數據的長度等信息;然后進入激活模式,等待發送接收信息。當進入發送模式時,首先進行CCA判斷,當信道未被占用時則發送數據,數據發送完畢后系統進入休眠模式。當進入接收模式時,首先將接收的數據進行反白化處理,即將接收到的信號還原成原始數據。當接收完畢后,將數據保存在EEPROM中,通過串口打印接收信息,以檢驗數據的正確性。系統通過配置寄存器配置不同的發送速率,發送一定長度的信息,檢測數據收發的誤碼率,以驗證系統的可靠性。
軟件系統采用模塊化編程,包括主函數、串口中斷函數和發射子函數。主程序為順序結構,依次完成射頻模塊、中斷、串口的初始化設置和循環調用串口中斷服務和發射子程序。當PC機向串口發送數據時,中斷程序接收PC機所發數據;然后射頻發射模塊進入發射狀態,芯片自動為發送數據添加前導碼和同步碼,并封裝需發送的數據。數據域中的數據具體格式如下:第一個字節為數據長度L,第二個字節為常數1,第三個字節為L-2,從第四個字節開始為所要傳輸的數據。如發送數據長度為100,主程序代碼如下。
send_buf[100]={100,1,98,1,2,3,4,5……};
while(1)
{spi_strobe(CCxxx0_SIDLE);
//芯片在空閑狀態
rf_send_packet(r_buf,r_buf[2]+3);
delay(3);
spi_strobe(CCxxx0_SFTX);}
為確保發送數據的可靠性,數據發送前芯片必須處于空閑狀態,且數據發送后需延時3 ms。
接收軟件模塊主要由無線接收和液晶顯示兩部分組成。主程序在完成射頻通信、定時中斷、液晶顯示等初始化設置后,循環調用接收函數和液晶顯示函數。其中,顯示單元采用集成中文字庫和帶串行模式的LM12832液晶顯示。為保證接收到正確的數據,在接收數據前需將芯片設定在空閑狀態,之后準備接收數據,最后在液晶屏上依次顯示接收到的數據。接收端的主程序如下。
while(1)
{int i,len=255;
spi_strobe(CCxxx0_SIDLE);
if(rece_packet(rxBuffer,len))
{for(i=0;i< rxBuffer[2]:i++)
openshow(rxBuffer[i],0x83);
delay(3);}
spi_strobe(CCxxx0_SFRX);}
為了驗證本文介紹的基于CC2500芯片和STC10L16XE芯片的有源標簽系統的可靠性和數據傳輸正確性,采用如下方法進行測試。
(1) 空曠環境下
① 收發相距35 m,每間隔3 ms發送長度為100 B的數據,測試數據是否正確接收。
測試結果如表1所示。

表1 相距35 m、間隔3 ms測試結果(空曠環境)
由表1可知,在數據完整性方面,當收發相距35 m時,所有數據全部被接收;在數據準確性方面,將隨機抽取接收到的數據樣品進行對比,數據也幾乎完全正確。
② 收發相距75 m,每間隔3 ms發送長度為100 B的數據,測試數據是否正確接收。
測試結果如表2所示。

表2 相距75 m、間隔3 ms測試結果(空曠環境)
由表2可知,當收發相距75 m時,系統仍然可以較穩定可靠地工作,接收到的數據正確性仍可達到98%。
(2) 遮擋環境下
① 收發相距35 m、每間隔3 ms發送長度為100 B的數據,測試數據是否正確接收。
測試結果如表3所示。

表3 相距35 m、間隔3 ms測試結果(遮擋環境)
由表3可知,在有遮擋情況下,收發相距35 m時,系統仍可較穩定可靠地工作,接收到的數據正確性依然較高。
② 收發相距50 m、每間隔3 ms發送長度為100 B的數據,測試數據是否正確接收。
測試結果如表4所示。

表4 相距50 m、間隔3 ms測試結果(遮擋環境)
由表4可知,在有遮擋情況下,收發相距50 m時,系統仍可較穩定可靠地工作,接收到的數據正確性有所下降。
經上述測試表明,系統在空曠環境下、間距75 m時可以實現穩定可靠的數據傳輸;當中間有障礙物遮擋、間距為50 m的苛刻條件下,系統依然可以較穩定可靠的傳輸數據。由此可見,系統在傳輸距離、可靠性方面均優于同類模塊。
本文選用低功耗的STC10L16XE單片機芯片和CC2500射頻芯片[11-15],在設計本系統時從阻抗匹配、天線設計以及PCB板布局等方面進行優化,設計了一款成本功耗低、傳輸距離遠、數據準確性高的有源標簽。實踐證明,本方案具有一定的使用價值和應用前景。
未來的研究將基于本系統,通過優化軟件設計進一步提升系統的傳輸性能,以及降低系統功耗。
[1] Finkenzeller K.射頻識別技術[M]. 3版.吳曉峰,陳大才,譯.北京:電子工業出版社, 2006:15-121.
[2] 李華.MCS-51系列單片機實用接口技術[M].北京:北京航空航天大學出版社,2004:27-49.
[3] 張毅剛,彭喜元.單片機原理及接口技術[M].北京:人民郵電出版社,2011:163-195.
[4] 吳泳.無線射頻技術(RFID)及應用[J].長沙通信職業技術學院學報,2006,5(1):45-50.
[5] 孟海斌,張紅雨.基于有源標簽RFID的極低功耗溫濕度傳感標簽的設計[J].微型機與應用,2011(5):17-20.
[6] 王睿,趙龒. RFID技術及其應用系統架構的研究[J].通信技術,2009(5):116-118.
[7] 楊江峰,李勃,郭贊,等.超低功耗有源RFID標簽的分析與實現[J].云南民族大學學報:自然科學版,2009,18(2):187-190.
[8] 黃智偉.無線數字收發電路設計-電路原理與應用實例[M].北京:電子工業出版社,2003:23-58.
[9] 譚暉.Nordic中短距離無線應用入門與實踐[M].北京:北京航空航天大學出版社,2009:156-189.
[10]武慧芝,朱云龍,羅海波.基于物流倉儲管理的RFID讀寫器設計[J].電子技術應用,2006(3):75-78.
[11]樓燃苗,李光飛. 51 系列單片機設計實例[M].北京:航空航天大學出版社,2003.
[12]譚暉.nRF無線SOC單片機原理與高級應用[M].北京:北京航空航天大學出版社,2009:10-20.
[13]曾勇,楊濤,馮月暉.基于nRF24L01的超低功耗無線傳感器網絡節點設計[J].電子技術應用,2008(7):45-48.
[14]李建忠.單片機原理及應用[M].西安:電子科技大學出版社,2002:44-78,113-222.
[15]周文舉.基于NRF401的單片機無線抄表系統[J].自動化儀表,2006,27(4):53-56.