摘 要: 介紹了一種基于ti" title="ti">title="MSP430">MSP430和nRF401" title="nRF401">nRF401的家用射頻無線自動(dòng)抄表" title="自動(dòng)抄表">自動(dòng)抄表系統(tǒng),,詳細(xì)地?cái)⑹隽讼到y(tǒng)設(shè)計(jì)原理與軟硬件的實(shí)現(xiàn)方法,。
關(guān)鍵詞: MSP430 nRF401 無線傳輸 自動(dòng)抄表 家庭內(nèi)部
傳統(tǒng)的抄表收費(fèi)方式存在許多弊端,如入戶麻煩,、管理費(fèi)用過高、存在安全隱患等,已不適應(yīng)現(xiàn)代物業(yè)管理的需要,。小區(qū)自動(dòng)抄表系統(tǒng)具有節(jié)省時(shí)間、人力,、物力,,提高工作效率,降低物業(yè)成本,,可以準(zhǔn)確及時(shí)地將用戶三表數(shù)據(jù)抄送上來等優(yōu)點(diǎn),,是抄表收費(fèi)系統(tǒng)發(fā)展的趨勢(shì)。為了在已建成的小區(qū)中方便地使用自動(dòng)抄表系統(tǒng),,免除家庭內(nèi)部重新布線的不便,,設(shè)計(jì)了一個(gè)應(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等與抄表中心連接,,實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程抄送,。
系統(tǒng)一般使用被動(dòng)抄表方式。上層模塊接收到儀表中心的抄表命令時(shí),,通過無線方式向下層模塊發(fā)送抄表指令,。下層模塊接收到指令后通過485總線采集三表的數(shù)據(jù),將數(shù)據(jù)打包后通過無線通訊芯片發(fā)送出去,。上層模塊收到數(shù)據(jù)后,,將數(shù)據(jù)解包,發(fā)送給抄表中心,。系統(tǒng)也可采用主動(dòng)抄表,,即下層模塊定時(shí)采集三表數(shù)據(jù),發(fā)送到上層模塊,,再由上層模塊發(fā)送到儀表中心,。
2 系統(tǒng)的硬件實(shí)現(xiàn)
2.1 系統(tǒng)硬件結(jié)構(gòu)
圖2為系統(tǒng)的硬件結(jié)構(gòu)。系統(tǒng)的MCU使用TI公司MSP430系列中的F123型,,通過nRF401芯片實(shí)現(xiàn)無線數(shù)據(jù)收發(fā),,并通過MAX3485芯片及485總線與三表(下層模塊)或電話、網(wǎng)絡(luò)等(上層模塊)連接,。如果需要與232總線或儀表總線等連接,,只需更換轉(zhuǎn)換芯片即可方便地連接。通過液晶和簡(jiǎn)易鍵盤,,用戶可以查看三表的數(shù)據(jù)并對(duì)儀表地址進(jìn)行設(shè)定,。
2.2 主要系統(tǒng)器件介紹
無線通訊使用Nordic公司的單片收發(fā)芯片nRF401。 這是一個(gè)為433MHz ISM頻段設(shè)計(jì)的真正單片UHF無線收發(fā)芯片,,它采用FSK調(diào)制解調(diào)技術(shù),。nRF401的最高工作速度可以達(dá)到20kbps,發(fā)射功率可調(diào),,最大為+10dBm,。天線接口設(shè)計(jì)為差分天線,便于使用低成本的PCB天線。該芯片具有待機(jī)模式,,可以更省電和高效,。nRF401的工作電壓范圍為2.7V~5.25V,發(fā)射電流約為8mA~18mA(-10dB輸出),,接收電流約為10mA,,待機(jī)電流為8μA。
nRF401可以通過串行接口與單片機(jī)直接相連,,無需復(fù)雜的編碼,,所需的外圍器件很少,使用簡(jiǎn)單,。其電路原理圖如圖3所示,。
系統(tǒng)的MCU使用TI公司的MSP430系列,是一種具有超低功耗特性的功能強(qiáng)大的16位單片機(jī)。當(dāng)運(yùn)行在1MHz時(shí)鐘條件下時(shí),,工作電流可因工作模式不同在0.1μA~200μA(2.2V)之間,,工作電壓為1.8V~3.6V。其高效率精簡(jiǎn)16位指令結(jié)構(gòu)可以確保任何任務(wù)的快速執(zhí)行,,大多數(shù)指令可以在一個(gè)時(shí)鐘周期內(nèi)完成,;它還具有高級(jí)語言編程的能力,可以加速軟件的開發(fā),。
本系統(tǒng)使用的是該系列的F123型,,具有8KB+256Byte Flash Memory和256Byte RAM以及一個(gè)串口和一個(gè)定時(shí)器。
485芯片使用MAX公司的MAX3485芯片,,不需485總線傳輸時(shí)可工作在關(guān)斷模式下,,在該模式下所需的電流小于1μA。
2.3 硬件設(shè)計(jì)中的注意事項(xiàng)
射頻電路部分會(huì)受到數(shù)字電路部分的干擾,。天線到射頻芯片的輸入信號(hào)可能小于1μV,所以數(shù)字信號(hào)與射頻信號(hào)強(qiáng)度之間的差別可以達(dá)到100萬倍(120dB),。如果這些信號(hào)沒有被恰當(dāng)?shù)馗綦x或屏蔽,射頻信號(hào)就將被干擾,,傳輸性能會(huì)受到非常嚴(yán)重的影響,。另外射頻部分對(duì)電壓的波動(dòng)非常敏感,所以電源的噪聲會(huì)嚴(yán)重影響傳輸性能,。
因此,,射頻部分電路的設(shè)計(jì)就顯得非常重要。在設(shè)計(jì)中應(yīng)遵循以下原則:首先一定要有一個(gè)可靠的地平面,,電源地應(yīng)該直接與射頻部分的地相連;其次,,與地平面的連接越短越好,。與地連接的焊盤應(yīng)該在附近設(shè)置一個(gè)過孔,并且兩個(gè)接地焊盤不可以共用一個(gè)過孔。解耦電容應(yīng)該盡量靠近需要解耦的引腳,,每個(gè)需要解耦的節(jié)點(diǎn)單獨(dú)使用一個(gè)解耦電容,。恰當(dāng)?shù)剡x擇電容大小會(huì)起到很好的效果。電源要采用星形布線,,即不同部分(數(shù)字部分,、模擬部分、射頻部分)的電源線分別直接從總電源引出,,并且分別解耦,,如圖4所示。這樣可以有效地防止電源噪聲的干擾,。
3 系統(tǒng)的軟件設(shè)計(jì)
3.1 軟件流程
系統(tǒng)軟件分上層模塊軟件和下層模塊軟件兩部分,,圖5和圖6分別為系統(tǒng)上、下層模塊軟件流程圖,。
上層模塊收到抄表中心的命令后,,通過射頻無線通訊方式向下層模塊發(fā)送命令,同時(shí)開始計(jì)時(shí),。如果下層模塊沒有數(shù)據(jù)返回,,超時(shí)后上層模塊會(huì)重新發(fā)送命令。如果超過三次仍未有數(shù)據(jù)返回,,則認(rèn)為是下層模塊工作異常,,向抄表中心返回異常信號(hào)。
下層模塊收到上層模塊發(fā)來的抄表命令,,首先檢查地址,。如果地址不符,說明命令是發(fā)給其它模塊的,,則丟棄命令,,繼續(xù)等待。如果地址符合,,則將上層模塊發(fā)來的命令轉(zhuǎn)發(fā)給儀表,,等待數(shù)據(jù)返回。如果超時(shí)則重新發(fā)送,,超時(shí)三次則認(rèn)為儀表故障,,向上層返回異常信號(hào)。數(shù)據(jù)正常接收完畢后,,模塊按照與儀表的協(xié)議檢驗(yàn)數(shù)據(jù),,如數(shù)據(jù)出現(xiàn)錯(cuò)誤,則重新向儀表發(fā)送命令,,如果正確則向上層發(fā)送數(shù)據(jù),,之后重新進(jìn)入等待狀態(tài),。
MSP430F123只有一個(gè)串口,而上下兩層的模塊需要兩個(gè)串口,。第二個(gè)串口由定時(shí)器A的捕獲/比較功能實(shí)現(xiàn),。發(fā)送特性的實(shí)現(xiàn)采用比較功能將數(shù)據(jù)從輸出單元的引腳移出的方法,波特率用比較數(shù)據(jù)及中斷來獲得,。接收特性的實(shí)現(xiàn)采用捕獲/比較功能將引腳數(shù)據(jù)經(jīng)SCCIx位移入內(nèi)存,。
3.2 無線通訊協(xié)議
本系統(tǒng)是一個(gè)簡(jiǎn)單的點(diǎn)對(duì)多點(diǎn)通訊,所以通訊協(xié)議分為三層即可,。第一層為物理層,,由nRF401模塊硬件實(shí)現(xiàn);第二層為數(shù)據(jù)鏈路層,;第三層為應(yīng)用層,。
數(shù)據(jù)鏈路層的功能是提供可靠的無線數(shù)據(jù)傳輸。發(fā)送數(shù)據(jù)時(shí),,將應(yīng)用層發(fā)來的比較長(zhǎng)的數(shù)據(jù)幀拆分為短的數(shù)據(jù)幀,,并加上包頭和校驗(yàn)和,重新打包后發(fā)送出去,。接收數(shù)據(jù)時(shí),,將接收到的數(shù)據(jù)解包并重新組合成完整的長(zhǎng)數(shù)據(jù),移交給應(yīng)用層,。
數(shù)據(jù)鏈路層的數(shù)據(jù)幀格式為:
每幀包括兩個(gè)字節(jié)的起始幀頭,,一個(gè)字節(jié)的地址,一個(gè)字節(jié)的幀類型,,一個(gè)字節(jié)的幀編號(hào),,十個(gè)字節(jié)的數(shù)據(jù)和兩個(gè)字節(jié)的校驗(yàn)和。無線通訊容易受到干擾,,一次發(fā)送的數(shù)據(jù)越長(zhǎng),,受干擾的可能性越大。所以應(yīng)該把比較長(zhǎng)的數(shù)據(jù)分成小的數(shù)據(jù)包分別發(fā)送,。本系統(tǒng)每個(gè)數(shù)據(jù)包的有效數(shù)據(jù)長(zhǎng)度為十個(gè)字節(jié),,原始數(shù)據(jù)不足時(shí)用0補(bǔ)足。
因?yàn)閚RF401是高靈敏度的,,在沒有進(jìn)行數(shù)據(jù)傳輸時(shí),,它的數(shù)據(jù)輸出腳會(huì)有雜波輸出,這些雜波會(huì)被MCU的串口接收并處理,。當(dāng)一個(gè)有效數(shù)據(jù)幀頭到達(dá)時(shí),,串口可能正采樣到一個(gè)字節(jié)的中部。因?yàn)闄z測(cè)到起始位對(duì)于正確讀取其后的數(shù)據(jù)是相當(dāng)重要的,,在每個(gè)數(shù)據(jù)幀之前要先發(fā)幾個(gè)字節(jié)的同步碼以實(shí)現(xiàn)數(shù)據(jù)同步,。四個(gè)字節(jié)的0xCC加一個(gè)字節(jié)的0xF0就可以確保在有效數(shù)據(jù)幀到達(dá)前雙方通訊實(shí)現(xiàn)同步,。為了區(qū)分干擾雜波與有效數(shù)據(jù),需要數(shù)據(jù)幀加上幀頭,。因?yàn)楦蓴_雜波基本是隨機(jī)的,如果使用一個(gè)字節(jié)的幀頭,,則可能無法區(qū)分干擾和有效數(shù)據(jù),。因此本系統(tǒng)協(xié)議使用兩個(gè)字節(jié)的幀頭,為兩個(gè)0x55,。0x55加上起始位和停止位,,實(shí)際發(fā)送的是0101010101,雜波產(chǎn)生連續(xù)兩個(gè)0x55的概率很小很小,,可以確保有效數(shù)據(jù)的確認(rèn),。數(shù)據(jù)幀的類型包括抄表命令、正常返回?cái)?shù)據(jù),、出錯(cuò)要求重發(fā),、儀表異常信號(hào)、正確接收確認(rèn)等,,用一個(gè)字節(jié)來標(biāo)示以便接收方分類處理,。因?yàn)閷⑤^長(zhǎng)的數(shù)據(jù)分成短的數(shù)據(jù)幀發(fā)送,所以每幀需要一個(gè)編號(hào),,以便接收方檢查是否丟幀,。在十個(gè)字節(jié)的數(shù)據(jù)之后是校驗(yàn)和,使用16位crc校驗(yàn),,檢驗(yàn)數(shù)據(jù)傳輸?shù)恼_性,。接收方同樣計(jì)算crc后與校驗(yàn)和比較,如果不同,,即為傳輸中出現(xiàn)錯(cuò)誤,。接收方記下錯(cuò)誤幀的編號(hào),待全部數(shù)據(jù)發(fā)送完畢后,,將錯(cuò)誤編號(hào)返回,,要求發(fā)送方重新發(fā)送這些幀。如果全部數(shù)據(jù)正常接收,,則發(fā)回正確接收確認(rèn),。
下層模塊的應(yīng)用層的功能是使儀表抄取與無線通訊相結(jié)合。對(duì)于不同的水表,、電表或煤氣表,,可能有不同的抄取協(xié)議或抄取方法。應(yīng)用層接收數(shù)據(jù)鏈路層發(fā)來的抄表命令,,完成對(duì)儀表的抄取,,并將數(shù)據(jù)打包發(fā)給數(shù)據(jù)鏈路層,。上層模塊的應(yīng)用層負(fù)責(zé)與中心的鏈接。將中心發(fā)來的數(shù)據(jù)校驗(yàn)處理后轉(zhuǎn)發(fā)給數(shù)據(jù)鏈路層,,將數(shù)據(jù)鏈路層發(fā)來的抄表結(jié)果打包處理后發(fā)給中心,。
因?yàn)閰f(xié)議是分層的,相鄰層之間的聯(lián)系只是調(diào)用發(fā)送接收函數(shù),,因此實(shí)現(xiàn)了各層是獨(dú)立的,。更換儀表或更換無線傳輸模塊所需做的改動(dòng)都不會(huì)影響其它層,提高了系統(tǒng)的靈活性,。
4 系統(tǒng)的低功耗設(shè)計(jì)
系統(tǒng)中MSP430在等待時(shí)處于LPM1狀態(tài),。在此狀態(tài)下,Vcc=3V時(shí)工作電流低于50μA,。系統(tǒng)中的485芯片使用MAXIM公司的MAX3485,,在關(guān)斷模式下,所需電流小于1μA,。系統(tǒng)低功耗設(shè)計(jì)的重點(diǎn)是nRF401的控制,。當(dāng)它處于接收狀態(tài)時(shí),工作電流為10mA左右,,如果始終處于接收狀態(tài),,整個(gè)系統(tǒng)的功耗就會(huì)過大,電池的電量將會(huì)很快耗盡,。所以應(yīng)盡量使nRF401處于休眠狀態(tài),。但是休眠狀態(tài)中的nRF401是無法收到數(shù)據(jù)的。為了解決這個(gè)矛盾,,可使nRF401間歇性地工作在接收狀態(tài),。nRF401從休眠到接收狀態(tài)的轉(zhuǎn)換時(shí)間為3ms,所以處于接收狀態(tài)的時(shí)間不能少于3ms,;因?yàn)閚RF401處于接收狀態(tài),,并且空中無有效信號(hào)時(shí),會(huì)有雜波干擾,,所以正常喚醒至少需要收到兩個(gè)字節(jié)的喚醒碼,。因?yàn)楸鞠到y(tǒng)使用9600的波特率,發(fā)送兩個(gè)字節(jié),,加起始位與停止位共20bit,。所以接收時(shí)間為2.08ms。為了確保能夠喚醒,,應(yīng)再適當(dāng)延長(zhǎng),。本系統(tǒng)使用8ms。處于休眠的時(shí)間因儀表抄送反映速度的要求而定,。如儀表反映時(shí)間要求不嚴(yán)格,,可加長(zhǎng)處于休眠的時(shí)間,,以便進(jìn)一步降低功耗。本系統(tǒng)使用的周期為1s,。上層模塊抄表需要喚醒下層模塊時(shí),,首先發(fā)送喚醒碼,時(shí)長(zhǎng)需要超過一個(gè)周期以確保喚醒,,如圖7所示,。本系統(tǒng)使用0xFF作為喚醒碼,即主機(jī)連續(xù)發(fā)送0xFF,,從機(jī)收到連續(xù)兩個(gè)0xFF后即保持接收狀態(tài)而不進(jìn)入休眠,此時(shí)計(jì)時(shí)器開始工作,。如果兩個(gè)周期內(nèi)沒有收到有效數(shù)據(jù)幀的幀頭,,則視為雜波干擾,重新進(jìn)入休眠狀態(tài),。如此設(shè)定之后,,nRF401的平均工作電流可降至250μA以下。下層模塊的nRF401工作在此狀態(tài)下,,整個(gè)模塊的平均工作電流在300μA以下,,按使用兩節(jié)5號(hào)AA電池計(jì)算,可以使用半年以上,。上層模塊由于是主機(jī),,所有的無線傳輸都由它發(fā)起,所以等待時(shí)nRF401可一直工作在休眠狀態(tài),,整個(gè)模塊的平均工作電流在100μA以下,,兩節(jié)電池可以使用一年半以上。
小區(qū)自動(dòng)抄表系統(tǒng)是未來發(fā)展的必然趨勢(shì),,而對(duì)于已經(jīng)建成的住宅小區(qū)的家庭內(nèi)自動(dòng)抄表系統(tǒng)的改造,,無線自動(dòng)抄表系統(tǒng)具有使用方便、靈活,、無需重新布線的優(yōu)點(diǎn),,并且價(jià)格適中。家庭內(nèi)部的三表可以統(tǒng)一抄送,。此外,,本系統(tǒng)略加改進(jìn)也可以應(yīng)用于報(bào)警與安全系統(tǒng)和家庭自動(dòng)化控制遙控裝置等。
參考文獻(xiàn)
1 胡大可. MSP430系列單片機(jī)C語言程序設(shè)計(jì)與開發(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