《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于MSP430和nRF401的無線自動抄表系統(tǒng)
基于MSP430和nRF401的無線自動抄表系統(tǒng)
蔣正義 朱善安 韓東芳
摘要: 介紹了一種基于MSP430和nRF401的家用射頻無線自動抄表系統(tǒng),詳細(xì)地敘述了系統(tǒng)設(shè)計原理與軟硬件的實現(xiàn)方法。
Abstract:
Key words :

    摘  要:  介紹了一種基于ti" title="ti">title="MSP430">MSP430和nRF401" title="nRF401">nRF401的家用射頻無線自動抄表" title="自動抄表">自動抄表系統(tǒng),詳細(xì)地敘述了系統(tǒng)設(shè)計原理與軟硬件的實現(xiàn)方法。
    關(guān)鍵詞: MSP430  nRF401  無線傳輸  自動抄表  家庭內(nèi)部

     傳統(tǒng)的抄表收費方式存在許多弊端,如入戶麻煩、管理費用過高、存在安全隱患等,已不適應(yīng)現(xiàn)代物業(yè)管理的需要。小區(qū)自動抄表系統(tǒng)具有節(jié)省時間、人力、物力,提高工作效率,降低物業(yè)成本,可以準(zhǔn)確及時地將用戶三表數(shù)據(jù)抄送上來等優(yōu)點,是抄表收費系統(tǒng)發(fā)展的趨勢。為了在已建成的小區(qū)中方便地使用自動抄表系統(tǒng),免除家庭內(nèi)部重新布線的不便,設(shè)計了一個應(yīng)用于家庭內(nèi)部的短距離無線抄表" title="無線抄表">無線抄表系統(tǒng)。

1 系統(tǒng)的總體結(jié)構(gòu)
    圖1為短距離無線抄表系統(tǒng)的總體結(jié)構(gòu),它可用于家庭內(nèi)部三表或多表數(shù)據(jù)的抄送。系統(tǒng)下層直接與水表、電表、煤氣表等連接,上層可以通過電話、以太網(wǎng)、GSM或GPRS等與抄表中心連接,實現(xiàn)數(shù)據(jù)的遠(yuǎn)程抄送。

 


    系統(tǒng)一般使用被動抄表方式。上層模塊接收到儀表中心的抄表命令時,通過無線方式向下層模塊發(fā)送抄表指令。下層模塊接收到指令后通過485總線采集三表的數(shù)據(jù),將數(shù)據(jù)打包后通過無線通訊芯片發(fā)送出去。上層模塊收到數(shù)據(jù)后,將數(shù)據(jù)解包,發(fā)送給抄表中心。系統(tǒng)也可采用主動抄表,即下層模塊定時采集三表數(shù)據(jù),發(fā)送到上層模塊,再由上層模塊發(fā)送到儀表中心。
2 系統(tǒng)的硬件實現(xiàn)
2.1 系統(tǒng)硬件結(jié)構(gòu)

    圖2為系統(tǒng)的硬件結(jié)構(gòu)。系統(tǒng)的MCU使用TI公司MSP430系列中的F123型,通過nRF401芯片實現(xiàn)無線數(shù)據(jù)收發(fā),并通過MAX3485芯片及485總線與三表(下層模塊)或電話、網(wǎng)絡(luò)等(上層模塊)連接。如果需要與232總線或儀表總線等連接,只需更換轉(zhuǎn)換芯片即可方便地連接。通過液晶和簡易鍵盤,用戶可以查看三表的數(shù)據(jù)并對儀表地址進(jìn)行設(shè)定。

 


2.2 主要系統(tǒng)器件介紹 
    無線通訊使用Nordic公司的單片收發(fā)芯片nRF401。 這是一個為433MHz ISM頻段設(shè)計的真正單片UHF無線收發(fā)芯片,它采用FSK調(diào)制解調(diào)技術(shù)。nRF401的最高工作速度可以達(dá)到20kbps,發(fā)射功率可調(diào),最大為+10dBm。天線接口設(shè)計為差分天線,便于使用低成本的PCB天線。該芯片具有待機(jī)模式,可以更省電和高效。nRF401的工作電壓范圍為2.7V~5.25V,發(fā)射電流約為8mA~18mA(-10dB輸出),接收電流約為10mA,待機(jī)電流為8μA。
    nRF401可以通過串行接口與單片機(jī)直接相連,無需復(fù)雜的編碼,所需的外圍器件很少,使用簡單。其電路原理圖如圖3所示。

 


    系統(tǒng)的MCU使用TI公司的MSP430系列,是一種具有超低功耗特性的功能強(qiáng)大的16位單片機(jī)。當(dāng)運行在1MHz時鐘條件下時,工作電流可因工作模式不同在0.1μA~200μA(2.2V)之間,工作電壓為1.8V~3.6V。其高效率精簡16位指令結(jié)構(gòu)可以確保任何任務(wù)的快速執(zhí)行,大多數(shù)指令可以在一個時鐘周期內(nèi)完成;它還具有高級語言編程的能力,可以加速軟件的開發(fā)。
    本系統(tǒng)使用的是該系列的F123型,具有8KB+256Byte Flash Memory和256Byte RAM以及一個串口和一個定時器。
    485芯片使用MAX公司的MAX3485芯片,不需485總線傳輸時可工作在關(guān)斷模式下,在該模式下所需的電流小于1μA。
2.3  硬件設(shè)計中的注意事項
    射頻電路部分會受到數(shù)字電路部分的干擾。天線到射頻芯片的輸入信號可能小于1μV,所以數(shù)字信號與射頻信號強(qiáng)度之間的差別可以達(dá)到100萬倍(120dB)。如果這些信號沒有被恰當(dāng)?shù)馗綦x或屏蔽,射頻信號就將被干擾,傳輸性能會受到非常嚴(yán)重的影響。另外射頻部分對電壓的波動非常敏感,所以電源的噪聲會嚴(yán)重影響傳輸性能。
    因此,射頻部分電路的設(shè)計就顯得非常重要。在設(shè)計中應(yīng)遵循以下原則:首先一定要有一個可靠的地平面,電源地應(yīng)該直接與射頻部分的地相連;其次,與地平面的連接越短越好。與地連接的焊盤應(yīng)該在附近設(shè)置一個過孔,并且兩個接地焊盤不可以共用一個過孔。解耦電容應(yīng)該盡量靠近需要解耦的引腳,每個需要解耦的節(jié)點單獨使用一個解耦電容。恰當(dāng)?shù)剡x擇電容大小會起到很好的效果。電源要采用星形布線,即不同部分(數(shù)字部分、模擬部分、射頻部分)的電源線分別直接從總電源引出,并且分別解耦,如圖4所示。這樣可以有效地防止電源噪聲的干擾。
3 系統(tǒng)的軟件設(shè)計
3.1 軟件流程

    系統(tǒng)軟件分上層模塊軟件和下層模塊軟件兩部分,圖5和圖6分別為系統(tǒng)上、下層模塊軟件流程圖。

 

 


    上層模塊收到抄表中心的命令后,通過射頻無線通訊方式向下層模塊發(fā)送命令,同時開始計時。如果下層模塊沒有數(shù)據(jù)返回,超時后上層模塊會重新發(fā)送命令。如果超過三次仍未有數(shù)據(jù)返回,則認(rèn)為是下層模塊工作異常,向抄表中心返回異常信號。
    下層模塊收到上層模塊發(fā)來的抄表命令,首先檢查地址。如果地址不符,說明命令是發(fā)給其它模塊的,則丟棄命令,繼續(xù)等待。如果地址符合,則將上層模塊發(fā)來的命令轉(zhuǎn)發(fā)給儀表,等待數(shù)據(jù)返回。如果超時則重新發(fā)送,超時三次則認(rèn)為儀表故障,向上層返回異常信號。數(shù)據(jù)正常接收完畢后,模塊按照與儀表的協(xié)議檢驗數(shù)據(jù),如數(shù)據(jù)出現(xiàn)錯誤,則重新向儀表發(fā)送命令,如果正確則向上層發(fā)送數(shù)據(jù),之后重新進(jìn)入等待狀態(tài)。
    MSP430F123只有一個串口,而上下兩層的模塊需要兩個串口。第二個串口由定時器A的捕獲/比較功能實現(xiàn)。發(fā)送特性的實現(xiàn)采用比較功能將數(shù)據(jù)從輸出單元的引腳移出的方法,波特率用比較數(shù)據(jù)及中斷來獲得。接收特性的實現(xiàn)采用捕獲/比較功能將引腳數(shù)據(jù)經(jīng)SCCIx位移入內(nèi)存。
3.2 無線通訊協(xié)議
    本系統(tǒng)是一個簡單的點對多點通訊,所以通訊協(xié)議分為三層即可。第一層為物理層,由nRF401模塊硬件實現(xiàn);第二層為數(shù)據(jù)鏈路層;第三層為應(yīng)用層。
    數(shù)據(jù)鏈路層的功能是提供可靠的無線數(shù)據(jù)傳輸。發(fā)送數(shù)據(jù)時,將應(yīng)用層發(fā)來的比較長的數(shù)據(jù)幀拆分為短的數(shù)據(jù)幀,并加上包頭和校驗和,重新打包后發(fā)送出去。接收數(shù)據(jù)時,將接收到的數(shù)據(jù)解包并重新組合成完整的長數(shù)據(jù),移交給應(yīng)用層。
    數(shù)據(jù)鏈路層的數(shù)據(jù)幀格式為:

   
   每幀包括兩個字節(jié)的起始幀頭,一個字節(jié)的地址,一個字節(jié)的幀類型,一個字節(jié)的幀編號,十個字節(jié)的數(shù)據(jù)和兩個字節(jié)的校驗和。無線通訊容易受到干擾,一次發(fā)送的數(shù)據(jù)越長,受干擾的可能性越大。所以應(yīng)該把比較長的數(shù)據(jù)分成小的數(shù)據(jù)包分別發(fā)送。本系統(tǒng)每個數(shù)據(jù)包的有效數(shù)據(jù)長度為十個字節(jié),原始數(shù)據(jù)不足時用0補(bǔ)足。
    因為nRF401是高靈敏度的,在沒有進(jìn)行數(shù)據(jù)傳輸時,它的數(shù)據(jù)輸出腳會有雜波輸出,這些雜波會被MCU的串口接收并處理。當(dāng)一個有效數(shù)據(jù)幀頭到達(dá)時,串口可能正采樣到一個字節(jié)的中部。因為檢測到起始位對于正確讀取其后的數(shù)據(jù)是相當(dāng)重要的,在每個數(shù)據(jù)幀之前要先發(fā)幾個字節(jié)的同步碼以實現(xiàn)數(shù)據(jù)同步。四個字節(jié)的0xCC加一個字節(jié)的0xF0就可以確保在有效數(shù)據(jù)幀到達(dá)前雙方通訊實現(xiàn)同步。為了區(qū)分干擾雜波與有效數(shù)據(jù),需要數(shù)據(jù)幀加上幀頭。因為干擾雜波基本是隨機(jī)的,如果使用一個字節(jié)的幀頭,則可能無法區(qū)分干擾和有效數(shù)據(jù)。因此本系統(tǒng)協(xié)議使用兩個字節(jié)的幀頭,為兩個0x55。0x55加上起始位和停止位,實際發(fā)送的是0101010101,雜波產(chǎn)生連續(xù)兩個0x55的概率很小很小,可以確保有效數(shù)據(jù)的確認(rèn)。數(shù)據(jù)幀的類型包括抄表命令、正常返回數(shù)據(jù)、出錯要求重發(fā)、儀表異常信號、正確接收確認(rèn)等,用一個字節(jié)來標(biāo)示以便接收方分類處理。因為將較長的數(shù)據(jù)分成短的數(shù)據(jù)幀發(fā)送,所以每幀需要一個編號,以便接收方檢查是否丟幀。在十個字節(jié)的數(shù)據(jù)之后是校驗和,使用16位crc校驗,檢驗數(shù)據(jù)傳輸?shù)恼_性。接收方同樣計算crc后與校驗和比較,如果不同,即為傳輸中出現(xiàn)錯誤。接收方記下錯誤幀的編號,待全部數(shù)據(jù)發(fā)送完畢后,將錯誤編號返回,要求發(fā)送方重新發(fā)送這些幀。如果全部數(shù)據(jù)正常接收,則發(fā)回正確接收確認(rèn)。
    下層模塊的應(yīng)用層的功能是使儀表抄取與無線通訊相結(jié)合。對于不同的水表、電表或煤氣表,可能有不同的抄取協(xié)議或抄取方法。應(yīng)用層接收數(shù)據(jù)鏈路層發(fā)來的抄表命令,完成對儀表的抄取,并將數(shù)據(jù)打包發(fā)給數(shù)據(jù)鏈路層。上層模塊的應(yīng)用層負(fù)責(zé)與中心的鏈接。將中心發(fā)來的數(shù)據(jù)校驗處理后轉(zhuǎn)發(fā)給數(shù)據(jù)鏈路層,將數(shù)據(jù)鏈路層發(fā)來的抄表結(jié)果打包處理后發(fā)給中心。
因為協(xié)議是分層的,相鄰層之間的聯(lián)系只是調(diào)用發(fā)送接收函數(shù),因此實現(xiàn)了各層是獨立的。更換儀表或更換無線傳輸模塊所需做的改動都不會影響其它層,提高了系統(tǒng)的靈活性。
4 系統(tǒng)的低功耗設(shè)計
    系統(tǒng)中MSP430在等待時處于LPM1狀態(tài)。在此狀態(tài)下,Vcc=3V時工作電流低于50μA。系統(tǒng)中的485芯片使用MAXIM公司的MAX3485,在關(guān)斷模式下,所需電流小于1μA。系統(tǒng)低功耗設(shè)計的重點是nRF401的控制。當(dāng)它處于接收狀態(tài)時,工作電流為10mA左右,如果始終處于接收狀態(tài),整個系統(tǒng)的功耗就會過大,電池的電量將會很快耗盡。所以應(yīng)盡量使nRF401處于休眠狀態(tài)。但是休眠狀態(tài)中的nRF401是無法收到數(shù)據(jù)的。為了解決這個矛盾,可使nRF401間歇性地工作在接收狀態(tài)。nRF401從休眠到接收狀態(tài)的轉(zhuǎn)換時間為3ms,所以處于接收狀態(tài)的時間不能少于3ms;因為nRF401處于接收狀態(tài),并且空中無有效信號時,會有雜波干擾,所以正常喚醒至少需要收到兩個字節(jié)的喚醒碼。因為本系統(tǒng)使用9600的波特率,發(fā)送兩個字節(jié),加起始位與停止位共20bit。所以接收時間為2.08ms。為了確保能夠喚醒,應(yīng)再適當(dāng)延長。本系統(tǒng)使用8ms。處于休眠的時間因儀表抄送反映速度的要求而定。如儀表反映時間要求不嚴(yán)格,可加長處于休眠的時間,以便進(jìn)一步降低功耗。本系統(tǒng)使用的周期為1s。上層模塊抄表需要喚醒下層模塊時,首先發(fā)送喚醒碼,時長需要超過一個周期以確保喚醒,如圖7所示。本系統(tǒng)使用0xFF作為喚醒碼,即主機(jī)連續(xù)發(fā)送0xFF,從機(jī)收到連續(xù)兩個0xFF后即保持接收狀態(tài)而不進(jìn)入休眠,此時計時器開始工作。如果兩個周期內(nèi)沒有收到有效數(shù)據(jù)幀的幀頭,則視為雜波干擾,重新進(jìn)入休眠狀態(tài)。如此設(shè)定之后,nRF401的平均工作電流可降至250μA以下。下層模塊的nRF401工作在此狀態(tài)下,整個模塊的平均工作電流在300μA以下,按使用兩節(jié)5號AA電池計算,可以使用半年以上。上層模塊由于是主機(jī),所有的無線傳輸都由它發(fā)起,所以等待時nRF401可一直工作在休眠狀態(tài),整個模塊的平均工作電流在100μA以下,兩節(jié)電池可以使用一年半以上。

 


    小區(qū)自動抄表系統(tǒng)是未來發(fā)展的必然趨勢,而對于已經(jīng)建成的住宅小區(qū)的家庭內(nèi)自動抄表系統(tǒng)的改造,無線自動抄表系統(tǒng)具有使用方便、靈活、無需重新布線的優(yōu)點,并且價格適中。家庭內(nèi)部的三表可以統(tǒng)一抄送。此外,本系統(tǒng)略加改進(jìn)也可以應(yīng)用于報警與安全系統(tǒng)和家庭自動化控制遙控裝置等。
參考文獻(xiàn)
1 胡大可. MSP430系列單片機(jī)C語言程序設(shè)計與開發(fā).北京:北京航空航天大學(xué)出版社,2003
2 胡大可. MSP430系列FLASH型超低功耗16位單片機(jī).北京:北京航空航天大學(xué)出版社,2003
3 MSP430x12x MIXED SIGNAL MICROCONTROLLER.TI Data Sheet, 2001
4 蔣俊峰.無線收發(fā)芯片比較與選擇.今日電子,2003(9)
5 Frank Karlsen.Guidelines to Low Cost Wireless System Design.Nordic VLSI ASA,2001.7
6 Design-in of RF Circuit. Nordic VLSI ASA,2002-11-12

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。