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