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