尤義山, 曾 偉, 張金霞, 余 綜
(華北計(jì)算技術(shù)研究所,北京100083)
物聯(lián)網(wǎng)是在計(jì)算機(jī)互聯(lián)網(wǎng)的基礎(chǔ)上,利用無線射頻識別技術(shù)、無線數(shù)據(jù)通信等技術(shù),構(gòu)造一個覆蓋世界上萬事萬物的“InternetofThings”。在這個網(wǎng)絡(luò)中,物品(商品)能夠彼此進(jìn)行“交流”,而無需人的干預(yù)。其實(shí)質(zhì)是利用射頻自動識別技術(shù),通過計(jì)算機(jī)互聯(lián)網(wǎng)實(shí)現(xiàn)物品(商品)的自動識別和信息的互聯(lián)與共享。傳感技術(shù)主要服務(wù)于數(shù)據(jù)采集系統(tǒng)。數(shù)據(jù)采集是指將溫度、壓力、流量、位移等模擬量采集轉(zhuǎn)換成數(shù)字量后,再由計(jì)算機(jī)進(jìn)行存儲、處理、顯示或打印的過程。數(shù)據(jù)采集系統(tǒng)性能的好壞,主要取決于它的精度和速度。在保證精度的條件下,應(yīng)有盡可能高的采樣速度,以滿足實(shí)時采集、實(shí)時處理和實(shí)時控制的要求。
傳感器及智能標(biāo)簽的供電問題已成為制約其應(yīng)用的一個瓶頸。能量收集技術(shù)是將環(huán)境中的能量,如機(jī)械振動、光能、溫度變化、電磁能量、化學(xué)能、風(fēng)能、熱能等,進(jìn)行收集并實(shí)現(xiàn)應(yīng)用,以解決標(biāo)簽或傳感器使用中的供電問題。本方案嘗試采用無線射頻能量收集技術(shù)實(shí)現(xiàn)能量收集,由于收集的能量密度低,相應(yīng)的電源管理和低功耗技術(shù)對智能傳感標(biāo)簽的供電問題也至關(guān)重要。
無線射頻識別技術(shù)(radio frequencyidentification,RFID)是一種非接觸的自動識別技術(shù)。RFID技術(shù)同條形碼等傳統(tǒng)的識別技術(shù)相比,具有抗干擾能力強(qiáng)、信息量大、非視覺范圍讀寫和壽命長等特點(diǎn),被廣泛用于物流、供應(yīng)鏈、動物和車輛識別、門禁系統(tǒng)等領(lǐng)域。RFID的系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。RFID系統(tǒng)由3部分組成,第一部分是標(biāo)簽,它被固定在物體上,并由一個特殊的ID號(Identification)來標(biāo)定其身份。第二部分是讀寫器,讀寫器向標(biāo)簽發(fā)送命令,然后接收存儲在標(biāo)簽中的數(shù)據(jù)。最后一部分是數(shù)據(jù)管理系統(tǒng),它的功能是存儲信息和管理數(shù)據(jù)。數(shù)據(jù)管理系統(tǒng)能夠與固定在遠(yuǎn)處的閱讀器進(jìn)行通信,從而能夠在任意時間獲取標(biāo)簽中的信息。
標(biāo)簽可以分為無源標(biāo)簽、半有源標(biāo)簽、有源標(biāo)簽和智能傳感標(biāo)簽[1]。無源標(biāo)簽具有被無線射頻識別技術(shù)識別的功能,半有源標(biāo)簽相對于無源標(biāo)簽增加了自動處理傳感數(shù)據(jù)的功能,有源標(biāo)簽相對于半有源標(biāo)簽增加了電源管理的功能,而智能傳感標(biāo)簽相對于有源標(biāo)簽增加了智能感知周圍環(huán)境的功能。
圖1 RFID系統(tǒng)結(jié)構(gòu)
在某些應(yīng)用場合當(dāng)中,傳統(tǒng)的電子標(biāo)簽已經(jīng)不能滿足要求。例如,許多食品和藥品等的包裝必須在特定的溫度和低污染環(huán)境下存儲運(yùn)輸,一般的標(biāo)簽無法了解和監(jiān)控商品保存的溫度和保質(zhì)情況,而智能傳感標(biāo)簽就可以在產(chǎn)品貯運(yùn)過程中實(shí)時監(jiān)控對溫度要求敏感、易腐爛的產(chǎn)品的溫度,警示廠商防止溫度變化對產(chǎn)品的影響。智能傳感標(biāo)簽在商品生產(chǎn)、儲運(yùn)、銷售的庫存管理等領(lǐng)域有廣闊的應(yīng)用空間。
本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于MSP430的智能傳感標(biāo)簽?zāi)M系統(tǒng)的設(shè)計(jì)方案。該智能傳感標(biāo)簽符合ISO/IEC18000-6C[2]標(biāo)準(zhǔn)。系統(tǒng)含有溫度傳感器和加速傳感器以及存儲系統(tǒng),可以定時的采集外部溫和加速度等數(shù)據(jù),采集的數(shù)據(jù)可以存放在EEPROM里面,符合ISO/IEC18000-6C標(biāo)準(zhǔn)的讀寫器可以讀取傳感器采集到的數(shù)據(jù)。該系統(tǒng)還可以無線收集能量[3],收集的能量存儲到一個超級電容里,給系統(tǒng)供電。
硬件結(jié)構(gòu)圖如圖2所示。系統(tǒng)采用MSP430系列低功耗單片機(jī)MSP430F2132作為微控制器,主要控制溫度傳感器、加速傳感器、EEPROM的讀寫、接收和發(fā)送數(shù)據(jù)、電源管理等。
圖2 智能傳感標(biāo)簽硬件結(jié)構(gòu)
MSP430F2132是一個16位的、低功耗的單片機(jī)[4]。當(dāng)MSP430F2132的工作電壓為2.2V,主頻率為1MHz時,其工作電流是200uA,當(dāng)單片機(jī)處于LPM3的低功耗模式時,其工作電流為0.7uA,因此選用MSP430F2132(以下簡稱MSP430)作為系統(tǒng)的微控制器。MSP430有3組I/O口,每組有8個I/O口引腳。MSP430的I/O口一般都是GPIO口和專用接口復(fù)用管腳。通過對 PXSEL寄存器的編程可以選定 I/O口引腳作為GPIO口或者是專用接口。MSP430的部分引腳功能定義見表1。
溫度傳感器和加速傳感器分別將外部溫度和加速度轉(zhuǎn)化為模擬電壓信號,然后通過MSP430內(nèi)部的ADC再將模擬電壓信號轉(zhuǎn)化為數(shù)字信號,因此,溫度傳感器和加速傳感器的模擬信號輸入分別接MSP430的ADC輸入通道P3.7、P2.0、P2.1和 P2.2。由于溫度傳感器和加速傳感器的工作電流很小,MSP430的IO口電流足以支持其進(jìn)行正常工作,因此設(shè)計(jì)系統(tǒng)時,將P1.0和P1.5分別作為溫度傳感器或者加速傳感器的供電接口。當(dāng)P1.0和P1.5置高時,溫度傳感器和加速傳感器可以正常工作;當(dāng)P1.0和P1.5置低時,溫度傳感器和加速傳感器關(guān)閉,從而實(shí)現(xiàn)利用IO口控制傳感器工作狀態(tài),以達(dá)到以減小系統(tǒng)的功耗的目的。
表1 MSP430的部分引腳功能定義
MSP430通過內(nèi)部IIC模塊讀寫EEPROM。P3.1和P3.2引腳作為MSP430內(nèi)部I2C模塊的數(shù)據(jù)信號線和時鐘信號線,分別連接EEPROM的數(shù)據(jù)線和時鐘線。
無線能量收集模塊將從環(huán)境收集的電磁能量轉(zhuǎn)換后進(jìn)行儲存,隨后分配到微控制器、射頻收發(fā)部件,保證其電源需求。無線能量收集主要采用倍壓整流的原理,利用濾波電容的存儲作用,由多個電容和二極管獲得幾倍于輸入電壓的輸出電壓。天線[5]接收到860MHz到960MHz頻段之間的無線電波信號將其轉(zhuǎn)化成交流電,經(jīng)過5級倍壓整流電路[6]和穩(wěn)壓電路后,轉(zhuǎn)化為直流電,給系統(tǒng)提供正常工作所需要的電壓,并且可以對超級電容充電,超級電容充當(dāng)電池的作用,使MSP430能夠持續(xù)工作。
當(dāng)超級電容的電壓大于或者等于1.8V時,MSP430才能正常工作。為了防止工作時,系統(tǒng)數(shù)據(jù)因?yàn)楣╇婋妷翰蛔愣鴣G失,當(dāng)超級電容的電壓低于2V時,MSP430將處于低功耗模式,此時,系統(tǒng)可以通過無線充電方式給超級電容充電,當(dāng)充電電壓大于2V,系統(tǒng)將正常工作。因此,對于電壓監(jiān)視引腳,需要配置成外部中斷方式,當(dāng)超級電容的電壓大于2V時,外部中斷將MSP430從低功耗模式喚醒。
系統(tǒng)軟件流程如圖3所示。系統(tǒng)軟件主要包括接收數(shù)據(jù)、發(fā)送數(shù)據(jù)、與讀寫器模塊交互狀態(tài)圖、傳感器定時采集數(shù)據(jù)以及數(shù)據(jù)存儲系統(tǒng)等5部分。當(dāng)系統(tǒng)供電電壓大于1.8V時,系統(tǒng)開始啟動。如果供電電壓小于2V,系統(tǒng)剛啟動后就會進(jìn)入休眠狀態(tài)。此時,系統(tǒng)繼續(xù)收集能量,當(dāng)供電電壓大于2V時,系統(tǒng)將被喚醒,開始定時的采集數(shù)據(jù),并做準(zhǔn)備接收數(shù)據(jù)的處理。該模擬標(biāo)簽等待接收數(shù)據(jù)時,將處于低功耗模式。標(biāo)簽接收到讀寫器發(fā)送的命令后,將對命令解析,并向讀寫器返回?cái)?shù)據(jù)。當(dāng)模擬標(biāo)簽與讀寫器完成一次完整的交互后,程序?qū)z測系統(tǒng)供電電壓是否低于2V,如果低于2V,系統(tǒng)將處于低功耗模式,否則標(biāo)簽等待與讀寫器進(jìn)行下一次交互。
圖3 系統(tǒng)軟件流程
ISO/IEC18000-6C標(biāo)準(zhǔn)規(guī)定,讀寫器向標(biāo)簽發(fā)送數(shù)據(jù)的編碼格式為PIE(pulse-intervalencoding)編碼,因此標(biāo)簽接收讀寫器發(fā)送的數(shù)據(jù)主要是對PIE編碼的解碼。PIE編碼格式如圖4所示。圖4中PW為脈沖寬度,Tari為一個比特0的長度,一般在6.25 s到25 s之間。
圖4 PIE編碼
發(fā)送數(shù)據(jù)之前,讀寫器首先發(fā)送一段界定符,界定符的長度大約為12.5 s,再發(fā)送一個比特0編碼,然后再發(fā)送RTcal(R=>Tcalibration,其長度等于比特0和比特1的編碼長度之和),如果是查詢命令(Query)則再發(fā)送TRcal(T=>Rcalibration,其長度在1.1倍的RTcal和3倍的RTcal之間),然后在發(fā)送數(shù)據(jù)。如果是其它命令,則讀寫器發(fā)送完RTcal之后直接發(fā)送數(shù)據(jù)。
系統(tǒng)采用MSP430計(jì)時器捕獲中斷的方式接收數(shù)據(jù)[7],接收數(shù)據(jù)的引腳P1.2為MSP430計(jì)時器的捕獲模式輸入,將捕獲模式設(shè)置成上升沿觸發(fā),每次捕獲中斷時可以記錄計(jì)時器的值,計(jì)時器的值即為捕獲時間。第二次捕獲中斷時捕獲時間即為RTcal的值,如果第三次捕獲中斷時,捕獲時間大于RTcal,則捕獲時間的值即為TRcal,否則為數(shù)據(jù)。第四次及其以后的捕獲中斷則為數(shù)據(jù),如果捕獲中斷時,捕獲時間大于RTcal的一半,則是比特1,如果捕獲時間小于RTcal的一半,則是比特0。
ISO/IEC18000-6C標(biāo)準(zhǔn)規(guī)定,標(biāo)簽向讀寫器發(fā)送數(shù)據(jù)的編碼格式為FM0、Miller2、Miller4或者是Miller8。FM0的編碼如圖5所示。其它3種編碼示意圖詳見ISO/IEC18000-6C標(biāo)準(zhǔn)。
圖5 FM0編碼
系統(tǒng)采用MSP430定時器的比較模式發(fā)送數(shù)據(jù)。首先對數(shù)據(jù)進(jìn)行編碼,然后再進(jìn)行發(fā)送。發(fā)送數(shù)據(jù)引腳P1.1為MSP430定時器的比較模式的輸出引腳,將比較模式的輸出設(shè)置成翻轉(zhuǎn)模式。首先初始化比較寄存器TACRR0,當(dāng)計(jì)數(shù)寄存器TAR的值大于或者等于TACRRO時,輸出的波形將發(fā)生翻轉(zhuǎn),程序只需在適當(dāng)?shù)臅r候改變比較寄存器TACRR0的值,即可得到相應(yīng)的編碼。
按照ISO/IEC 18000-6C標(biāo)準(zhǔn)的規(guī)定,標(biāo)簽在交互過程中有就緒、仲裁、回復(fù)、應(yīng)答、開放、保護(hù)、殺死等7種狀態(tài)。根據(jù)讀寫器發(fā)送不同的命令,標(biāo)簽將進(jìn)入對應(yīng)的狀態(tài)。標(biāo)簽的狀態(tài)變遷圖[8]如圖6所示。
智能傳感標(biāo)簽上電復(fù)位后將處于就緒態(tài),當(dāng)標(biāo)簽接收到Select命令時,將被標(biāo)記成已選標(biāo)記或者某一個會話方式,標(biāo)簽收到查詢命令后,如果檢測到查詢命令設(shè)定的選定標(biāo)記或者會話方式與最近一次收到的Select命令不相同,標(biāo)簽將停留在就緒態(tài),否則標(biāo)簽將進(jìn)入仲裁狀態(tài)或者回復(fù)狀態(tài)。處于仲裁狀態(tài)的標(biāo)簽,當(dāng)收到QueryAdjust或者QueryRep命令時,如果槽計(jì)數(shù)值不等于0,標(biāo)簽將停留在仲裁狀態(tài),否則標(biāo)簽將轉(zhuǎn)到回復(fù)狀態(tài)。處于回復(fù)狀態(tài)的標(biāo)簽,當(dāng)收到QueryAdjust命令時,如果槽計(jì)數(shù)值等于0,標(biāo)簽將停留在回復(fù)狀態(tài);當(dāng)收到QueryRep命令時,標(biāo)簽將轉(zhuǎn)到仲裁狀態(tài)。處于應(yīng)答狀態(tài)的標(biāo)簽,當(dāng)收到Reg_RN命令時,如果檢測到收到的16位隨機(jī)數(shù)與最近一次回復(fù)的隨機(jī)數(shù)不相同,標(biāo)簽將停留在應(yīng)答狀態(tài),否則標(biāo)簽將轉(zhuǎn)到開放或者保護(hù)狀態(tài)。處于開放狀態(tài)的標(biāo)簽,如果接收到Reg_RN、Read、Write、Lock等命令時,將停留在開放狀態(tài);如果接收到QueryRep、QueryAdjust命令,將轉(zhuǎn)到就緒狀態(tài);如果接收到Access命令,將轉(zhuǎn)到保護(hù)狀態(tài);如果接收到Kill命令,當(dāng)殺死密碼不等于0時將轉(zhuǎn)到殺死狀態(tài),否則維持開放狀態(tài)。處于保護(hù)狀態(tài)的標(biāo)簽,如果接收到Reg_RN、Read、Write、Lock等命令時,將停留在保護(hù)狀態(tài);如果接收到QueryRep、QueryAdjust命令,將轉(zhuǎn)到就緒狀態(tài);如果接收到Kill命令,當(dāng)殺死密碼不等于0時,將轉(zhuǎn)到殺死狀態(tài),否則維持保護(hù)狀態(tài)。
圖6 標(biāo)簽狀態(tài)變遷
系統(tǒng)根據(jù)圖6所示的狀態(tài)圖編程,在每種狀態(tài)下都要處理相應(yīng)的命令,程序根據(jù)命令碼以及命令的長度來判斷接收到的命令是否正確。部分18000-6C的命令碼以及長度見表2。
表2 部分命令編碼以及命令長度
傳感器定時采集數(shù)據(jù)采用MSP430定時器中斷方式實(shí)現(xiàn)。MSP430外部接了一個32.768KHz的低速晶振,作為MSP430的定時器的時鐘輸入。MSP430共有5種低功耗模式,分別為LPM0(low power mode 0)、LPM1、LPM2、LPM3、LPM4。LPM0到LPM4耗電量逐漸減少。由于 MSP430外部接了一個低速晶振,因此,該系統(tǒng)可以達(dá)到LPM3模式,處在LPM3模式的下的系統(tǒng)功耗僅為1uA(工作電壓2.2V,工作頻率1MHz)。溫度傳感器和加速傳感器分別將外部溫度和加速度轉(zhuǎn)化為模擬電壓信號,MSP430內(nèi)部的ADC再將模擬電壓信號轉(zhuǎn)化為數(shù)字信號。系統(tǒng)可以定時的采集外部溫度和加速度數(shù)據(jù),并存入EEPROM。定時器中斷服務(wù)程序流程圖如圖7所示。
系統(tǒng)的存儲器采用外部EEPROM。系統(tǒng)采用MSP430內(nèi)部集成內(nèi)部的I2C模塊接口讀寫EEPROM。MSP430內(nèi)部的I2C模塊主要包括控制寄存器UCBXCTL0和UCBXCTL1、波特率寄存器UCBXBR0和UCBXBR1、狀態(tài)寄存器UCBXSTAT、接收寄存器UCBXRXBUF、發(fā)送寄存器UCBXTXBUF、從機(jī)地址寄存器UCBXI2CSA以及中斷控制寄存器UCBXI2CIE等。寄存器UCBXCTL0和UCBXCTL1主要配置I2C的從機(jī)模式或者是主機(jī)模式、從機(jī)地址位數(shù)、I2C時鐘選擇、I2C總線開始和停止信號等。波特率寄存器UCBXBR0和UCBXBR1主要配置I2C總線的速率。狀態(tài)寄存器UCBXSTAT主要獲得I2C總線的狀態(tài)。發(fā)送寄存器UCBXTXBUF主要作為發(fā)送數(shù)據(jù)的緩沖寄存器。接收寄存器UCBXRXBUF主要作為接收數(shù)據(jù)的寄存器。
圖7 定時器中斷服務(wù)流程
從EEPROM讀取數(shù)據(jù)時,首先將MSP430初始化為主機(jī)模式,設(shè)置I2C時鐘信號的頻率,然后依次發(fā)送總線開始命令、向EEPROM寫入數(shù)據(jù)命令、EEPROM子地址命令、從EEPROM讀取數(shù)據(jù)命令,最后可以連續(xù)的從 EEPROM讀取數(shù)據(jù)。向EEPROM寫入數(shù)據(jù)時,首先將MSP430初始化為主機(jī)模式,設(shè)置 I2C時鐘信號的頻率,然后依次發(fā)送總線開始命令、向EEPROM寫入數(shù)據(jù)命令、EEPROM子地址命令,最后可以連續(xù)的向EEPROM寫入數(shù)據(jù)。
與普通的標(biāo)簽相比,文章中設(shè)計(jì)和實(shí)現(xiàn)的智能傳感標(biāo)簽增加了無線收集能量和定時采集外部溫度以及加速度數(shù)據(jù),并且能夠?qū)Σ杉臄?shù)據(jù)進(jìn)行相應(yīng)的分析處理和存儲的功能。該智能傳感標(biāo)簽體積小、功耗低。試驗(yàn)結(jié)果表明,當(dāng)智能傳感標(biāo)簽周圍的電磁場強(qiáng)達(dá)到600 W/cm2時,超級電容(容量0.1F,工作電壓5.5V)充滿電的時間是12分鐘,微控制器MSP430可以連續(xù)工作80小時以上,當(dāng)有讀寫器讀取智能傳感標(biāo)簽采集的數(shù)據(jù)時,超級電容可以利用讀寫器發(fā)出的場強(qiáng)繼續(xù)充電。無線收集能量可以保證模擬的智能傳感標(biāo)簽系統(tǒng)的供電,使智能傳感標(biāo)簽可以持續(xù)的工作。智能傳感標(biāo)簽每隔20s將采集一次外部溫度和加速度數(shù)據(jù),并存儲采集的數(shù)據(jù)。符合ISO/IEC 18000-6C標(biāo)準(zhǔn)的讀寫器可以讀取智能傳感標(biāo)簽采集的數(shù)據(jù)。
試驗(yàn)環(huán)境下,該模擬智能傳感標(biāo)簽已經(jīng)完全滿足智能傳感標(biāo)簽在供電、環(huán)境感知、數(shù)據(jù)存儲、無線數(shù)據(jù)傳輸?shù)确矫娴男枨?。該模擬智能傳感標(biāo)簽經(jīng)過優(yōu)化后,在商品生產(chǎn)、儲運(yùn)、銷售的庫存管理等領(lǐng)域?qū)袕V闊的應(yīng)用場景,根據(jù)實(shí)際需求選用不同的傳感器單元,還可以應(yīng)用于各種需實(shí)時感知環(huán)境,且對自供電較高要求的場合。
[1]Antti Ruhanen,Marko Hanhikorpi.Sensor-enabled RFID tag handbook[R].BRIDGE Project by the European Union,2007.
[2]ISO/IEC.Information technology-Radiofrequency identification for management Part 6:Parameters for air interface communications at 860MHz to 960 MHz[S].2006.
[3]Murugavel Raju.ULP meets energy harvesting:A game-changing combination for design engineers[R].Texas Instruments,2008.
[4]MSP430x2xx Family user's guide[EB/OL].Texas Instruments,http://www.ti.com,2008.
[5]李緒益.微波技術(shù)與微波電路[M].廣州:華南理工大學(xué)出版社,2005.
[6]Joshua Smith,David Weatherall,Polly Powledge,et al.Wireless identification and sensor platform project[Z].http://wisp.wikispaces.com,2009.
[7]沈建華,楊艷琴.MSP430系列16位超低功耗單片機(jī)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2004.
[8]馬倩,時良平,周立宏.ISO18000-6C標(biāo)準(zhǔn)的防碰撞算法研究[J].計(jì)算機(jī)應(yīng)用,2008,28(12):341-343.