- 相關(guān)推薦
基于MSP430和nRF40l的 無線自動(dòng)抄表系統(tǒng)
摘要:介紹了一種基于MSP430和nRF401的家用射頻無線自動(dòng)抄表系統(tǒng),詳細(xì)地?cái)⑹隽讼到y(tǒng)設(shè)計(jì)原理與軟硬件的實(shí)現(xiàn)方法。關(guān)鍵詞:MSP430nRF401無線傳輸自動(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)部的短距離無線抄表系統(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è)為433MHzISM頻段設(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.1pμ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+256ByteFlashMemory和256ByteRAM以及一個(gè)串口和一個(gè)定時(shí)器。485芯片使用MAX公司的MAX3485芯片,不需485總線傳輸時(shí)可工作在關(guān)斷模式下,在該模式下所需的電流小于1μA。
圖3
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ā)來的比較長的數(shù)據(jù)幀拆分為短的數(shù)據(jù)幀,并加上包頭和校驗(yàn)和,重新打包后發(fā)送出去。接收數(shù)據(jù)時(shí),將接收到的數(shù)據(jù)解包并重新組合成完整的長數(shù)據(jù),移交給應(yīng)用層。
數(shù)據(jù)鏈路層的數(shù)據(jù)幀格式為:0x550x55地址類型編號(hào)數(shù)據(jù)(十字節(jié))校驗(yàn)和每幀包括兩個(gè)字節(jié)的起始幀頭,一個(gè)字節(jié)的地址,一個(gè)字節(jié)的幀類型,一個(gè)字節(jié)的幀編號(hào),十個(gè)字節(jié)的數(shù)據(jù)和兩個(gè)字節(jié)的校驗(yàn)和。無線通訊容易受到干擾,一次發(fā)送的數(shù)據(jù)越長,受干擾的可能性越大。所以應(yīng)該把比較長的數(shù)據(jù)分成小的數(shù)據(jù)包分別發(fā)送。本系統(tǒng)每個(gè)數(shù)據(jù)包的有效數(shù)據(jù)長度為十個(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)閷⑤^長的數(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í)處于LPMl狀態(tài)。在此狀態(tài)下,Vcc=3V時(shí)工作電流低于50μA。系統(tǒng)中的485芯片使用MAXIM公司的MAX3485,在關(guān)斷模式下,所需電流小于lμA。系統(tǒng)低功耗設(shè)計(jì)的重點(diǎn)是nRF401的控制。當(dāng)它處于接收狀態(tài)時(shí),工作電流為l0mA左右,如果始終處于接收狀態(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)延長。本系統(tǒng)使用8ms。處于休眠的時(shí)間因儀表抄送反映速度的要求而定。如儀表反映時(shí)間要求不嚴(yán)格,可加長處于休眠的時(shí)間,以便進(jìn)一步降低功耗。本系統(tǒng)使用的周期為1s。上層模塊抄表需要喚醒下層模塊時(shí),首先發(fā)送喚醒碼,時(shí)長需要超過一個(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)化控制遙控裝置等。
【基于MSP430和nRF40l的 無線自動(dòng)抄表系統(tǒng)】相關(guān)文章:
基于MSP430的極低功耗系統(tǒng)設(shè)計(jì)08-06
一種基于無線通訊與公用電話網(wǎng)的智能抄表系統(tǒng)08-06
基于DSP的自動(dòng)對(duì)焦系統(tǒng)08-06
基于Rhapsody和VxWorks的自動(dòng)取款機(jī)系統(tǒng)08-06
基于MSP430的三相電能表SA9904B采集系統(tǒng)08-06
藍(lán)牙無線抄表傳感器的設(shè)計(jì)08-06
基于MSP430單片機(jī)的實(shí)時(shí)多任務(wù)操作系統(tǒng)08-06
基于試題庫的試卷管理和自動(dòng)排版系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)08-20