有線M-Bus是專為家用儀表數(shù)據(jù)傳輸而設(shè)計(jì)的總線制系統(tǒng),它是一個(gè)層次化的系統(tǒng),由主設(shè)備、若干從設(shè)備和一對(duì)連接線組成。有線M-Bus的提出滿足了公用事業(yè)儀表組網(wǎng)和遠(yuǎn)程抄表的需要,同時(shí)可以滿足遠(yuǎn)程供電需求,在智能小區(qū)的自動(dòng)抄表系統(tǒng)中有廣泛應(yīng)用。可是有線M-Bus系統(tǒng)在網(wǎng)絡(luò)布線施工過(guò)程中往往需要破墻掘地,破壞周圍的環(huán)境。因此無(wú)線應(yīng)用給它在競(jìng)爭(zhēng)中帶來(lái)優(yōu)勢(shì),易于安裝和維護(hù),不會(huì)對(duì)周圍環(huán)境造成影響。無(wú)線M-Bus是專門(mén)用于水表、氣表、熱能表、電表和數(shù)據(jù)集中器之間的數(shù)據(jù)無(wú)線傳輸?shù)囊粋€(gè)通信標(biāo)準(zhǔn),它正廣泛被歐洲市場(chǎng)所接受。
現(xiàn)在大多數(shù)儀表都是用電池進(jìn)行供電的,因此對(duì)于低功耗的要求比較高。為了延長(zhǎng)電池的使用壽命,本文選用低功耗芯片Si1000組建一個(gè)無(wú)線M-Bus通信系統(tǒng),并對(duì)Si1000的低功耗性能問(wèn)題及在軟硬件上的實(shí)現(xiàn)進(jìn)行了分析。
1無(wú)線M-Bus
無(wú)線M-Bus標(biāo)準(zhǔn)規(guī)定了儀表和集中器之間的通信。圖1給出了一個(gè)簡(jiǎn)單的無(wú)線M-Bus通信系統(tǒng),其中集中器作為主節(jié)點(diǎn),儀表作為從節(jié)點(diǎn)。
主節(jié)點(diǎn)和從節(jié)點(diǎn)之間的通信,定義了3種不同的通信模式:
①S-mode靜止模式。S1-mode是從儀表到其他系統(tǒng)單元的單向通信;S1m-mode如同S1,但是數(shù)據(jù)采集裝置不能進(jìn)入低功耗模式;S2-mode是儀表和其他系統(tǒng)單元之間的雙向通信。
②T-mode頻繁傳送模式。T1-mode是從儀表到其他系統(tǒng)單元的單向通信;T2-mode是儀表和其他系統(tǒng)單元之間的雙向通信。
③R-mode是頻繁接收模式。R2-mode是儀表和其他系統(tǒng)單元之間的雙向通信。
當(dāng)儀表能夠和集中器直接進(jìn)行通信時(shí),其他系統(tǒng)單元就是圖1中的集中器。可是在實(shí)際應(yīng)用中,從節(jié)點(diǎn)儀表有時(shí)不能直接與主節(jié)點(diǎn)集中器進(jìn)行通信,那么就需要路由節(jié)點(diǎn)來(lái)轉(zhuǎn)接它們之間的數(shù)據(jù),此時(shí)的系統(tǒng)單元就是高性能網(wǎng)關(guān)。
2無(wú)線M-Bus收發(fā)系統(tǒng)設(shè)計(jì)
2.1無(wú)線M-Bus收發(fā)系統(tǒng)原理
儀表抄讀無(wú)線收發(fā)系統(tǒng)原理框圖如圖2所示。無(wú)線數(shù)據(jù)的收發(fā)由無(wú)線微控制器Si1000實(shí)現(xiàn)。主節(jié)點(diǎn)Si1000內(nèi)部的發(fā)送模塊將數(shù)據(jù)進(jìn)行編碼處理,以特定的格式經(jīng)天線發(fā)送給接收模塊。從節(jié)點(diǎn)Si1000內(nèi)部的接收模塊接收到有效數(shù)據(jù)后,Si1000內(nèi)部的微處理器通過(guò)擴(kuò)展接口讀取外部?jī)x表的數(shù)據(jù),并進(jìn)行相應(yīng)的調(diào)整、轉(zhuǎn)換處理后通過(guò)射頻發(fā)送給主節(jié)點(diǎn)。主節(jié)點(diǎn)通過(guò)GPRS與集抄中心進(jìn)行通信。
由于采用的是無(wú)線微控制器,主/從節(jié)點(diǎn)發(fā)送/接收模塊不需要使用傳統(tǒng)的MCU+RF模塊的設(shè)計(jì)方式,只需要一片Si1000就可以完成射頻通信。
2.2射頻部分
Si1000作為Si10xx系列的成員之一,在極精簡(jiǎn)的5 mm×7 mm封裝中結(jié)合了8051內(nèi)核、工作頻段為240~960 MHz高穿透力的EZRadioPRO RF收發(fā)器、64 KB的Flash和10位ADC.Si1000系列提供優(yōu)越的RF性能,具有最高輸出功率、接收靈敏度以及最低功耗的喚醒轉(zhuǎn)換等特性。該無(wú)線微控制器在工作模式下有最低的電流消耗(160μ/MHz),在休眠模式下,以內(nèi)部低頻振蕩器(LFO)作為頻率源的RTC工作時(shí),消耗電流低至315nA.在深度休眠模式下,僅需25 nA工作電流,且不會(huì)丟失RAM數(shù)據(jù)。圖3給出了射頻部分硬件原理圖。
從節(jié)點(diǎn)中,儀表與芯片Si1000的UART串口引腳P0.4/TX和P0.5/RX相連。主節(jié)點(diǎn)芯片Si1000的UART串口引腳P0.4/TX和 P0.5/RX與集中器進(jìn)行連接,集中器內(nèi)部MCU串口通過(guò)RS232與GPRS模塊相連,借助移動(dòng)網(wǎng)和Internet實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸。圖中可編程負(fù)載電容是可集成的,L1~L6和C1~C5的值是由頻率帶寬、天線阻抗和供給電壓決定的。
無(wú)線收發(fā)模塊的通信是以數(shù)據(jù)包的形式發(fā)送的,無(wú)線發(fā)送程序負(fù)責(zé)寫(xiě)入數(shù)據(jù),參考無(wú)線M-Bus通信協(xié)議,為數(shù)據(jù)加上前導(dǎo)碼、同步字、數(shù)據(jù)載荷長(zhǎng)度及CRC校驗(yàn)字節(jié),形成數(shù)據(jù)包將其發(fā)送出去。為保證接收到數(shù)據(jù)的正確性,無(wú)線接收程序負(fù)責(zé)接收數(shù)據(jù)包并檢驗(yàn)CRC字節(jié)。
2.3無(wú)線M-Bus協(xié)議棧實(shí)現(xiàn)
協(xié)議棧如圖4所示。物理層定義了位是如何編碼和傳輸?shù)摹F調(diào)制解調(diào)器的特性(碼率、前導(dǎo)碼和同步字)和RF參數(shù)(調(diào)制、中心頻率和頻率偏移)。物理層是通過(guò)硬件和嵌入式軟件結(jié)合來(lái)實(shí)現(xiàn)的,EZRadioPRO實(shí)現(xiàn)了所有RF和調(diào)制解調(diào)器的功能。MbusPhy.c模塊提供SPI接口、編碼/解碼、塊的讀 /寫(xiě)和數(shù)據(jù)包處理,并且管理收發(fā)器的狀態(tài)。
無(wú)線M-Bus數(shù)據(jù)鏈路層是在MbusLink.c模塊上實(shí)現(xiàn)的。M-Bus應(yīng)用程序編程接口由公共函數(shù)組成,這些公共函數(shù)可以從主線程的應(yīng)用層調(diào)用,MbusLink模塊也實(shí)現(xiàn)了數(shù)據(jù)鏈路層。數(shù)據(jù)鏈路層規(guī)定了數(shù)據(jù)的格式,為數(shù)據(jù)加上頭文件和循環(huán)冗余校驗(yàn),并且將數(shù)據(jù)從應(yīng)用程序TX緩沖區(qū)復(fù)制到 MbusPhy TX緩沖區(qū)。
Si1000的射頻芯片為發(fā)送和接收提供了一個(gè)64字節(jié)FIFO.在數(shù)據(jù)鏈路層實(shí)現(xiàn)了數(shù)據(jù)包的發(fā)送和接收,數(shù)據(jù)包發(fā)送和接收流程圖如圖5所示。
在發(fā)送時(shí),計(jì)算編碼字節(jié)的總數(shù)。如果編碼字節(jié)總數(shù)(包括前導(dǎo)碼)小于64字節(jié),那么將整個(gè)數(shù)據(jù)包寫(xiě)到FIFO,并且只有包發(fā)送中斷有效。大多數(shù)短包將在一個(gè)FIF0轉(zhuǎn)移中被發(fā)送。如果編碼字節(jié)的數(shù)量大于64字節(jié),那么需要多次FIFO轉(zhuǎn)移發(fā)送數(shù)據(jù)包。將前64個(gè)字節(jié)寫(xiě)到FI FO,包發(fā)送中斷和TX FIFO幾乎空中斷有效,把TXFIFO幾乎空閾值設(shè)置為10字節(jié)。在每一個(gè)nIRQ之前,讀取狀態(tài)2寄存器。首先檢查包發(fā)送位,如果數(shù)據(jù)包沒(méi)有被完全發(fā)送,那么將編碼數(shù)據(jù)接下來(lái)的32字節(jié)寫(xiě)到FIFO,重復(fù)上述過(guò)程直到所有編碼字節(jié)都被寫(xiě)到FIFO,并且包發(fā)送中斷發(fā)生。
在接收時(shí),最初只有同步字中斷是有效的。接收同步字后,同步字中斷無(wú)效且FIFO幾乎滿中斷有效。FIFO幾乎滿閾值設(shè)置到2字節(jié),首個(gè)FIFO幾乎滿中斷用于確認(rèn)這兩個(gè)長(zhǎng)度字節(jié)何時(shí)已收到。一旦接收到這個(gè)長(zhǎng)度,那么解碼這個(gè)長(zhǎng)度且計(jì)算出編碼字節(jié)的數(shù)目,然后將RXFIFO幾乎滿閾值設(shè)置到54字節(jié),RX FIFO幾乎滿中斷和有效數(shù)據(jù)包中斷有效。在接收到一個(gè)有效數(shù)據(jù)包中斷后,MCU等待接收FIFO幾乎滿中斷,然后從接收FIFO讀取32字節(jié)。重復(fù)上述過(guò)程直到全部字節(jié)有效載荷被接收。在CRC錯(cuò)誤的情況下,MCU將復(fù)位接收FIFO并丟棄數(shù)據(jù)包。
3無(wú)線M-Bus系統(tǒng)低功耗的實(shí)現(xiàn)
為了延長(zhǎng)電池的使用壽命,Si1000在工作過(guò)程中并不是一直運(yùn)行的。當(dāng)沒(méi)有數(shù)據(jù)要發(fā)送時(shí),Si1000處于休眠狀態(tài),其內(nèi)部的MCU和射頻都是關(guān)閉的,只有定時(shí)器在工作。經(jīng)過(guò)一定時(shí)間后,內(nèi)部MCU喚醒偵聽(tīng)載波,判斷是否有數(shù)據(jù)需要它來(lái)發(fā)送,當(dāng)有數(shù)據(jù)需要發(fā)送時(shí),Si1000發(fā)送數(shù)據(jù)。發(fā)送數(shù)據(jù)完成后,關(guān)閉MCU和射頻。這樣重復(fù)進(jìn)行,只有數(shù)據(jù)發(fā)送時(shí)它才進(jìn)行工作,否則一直處于休眠狀態(tài),這樣就大大延長(zhǎng)了電池的使用壽命。
結(jié)語(yǔ)
無(wú)線M-Bus是一種專門(mén)用于各種消費(fèi)類型儀表的遠(yuǎn)程讀數(shù)或讀取相關(guān)信息的通信標(biāo)準(zhǔn)。將無(wú)線M-Bus與Si1000應(yīng)用到各種消費(fèi)儀表上,可將數(shù)據(jù)收集并傳到中心集中器,然后通過(guò)GPRS傳送到集抄中心進(jìn)行相應(yīng)的處理。這樣就可以實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)實(shí)時(shí)采集、巡檢和監(jiān)控等功能。無(wú)線M-Bus在我國(guó)的應(yīng)用還處于起步階段,但考慮到它在計(jì)量應(yīng)用領(lǐng)域的優(yōu)勢(shì),應(yīng)用前景十分廣闊。
評(píng)論
查看更多