M-BUS協議基礎知識

虛線左邊的時間段是主站到從站的bit流傳輸,總線電壓在Vspace和Vmark間切換,從站電流維持Imark不變;虛線右邊的時間段是從到主的bit流傳輸,從站所取電流在Imark和Ispace間切換,總線電壓基本維持Vmark不變,但由于MBus電源輸出阻抗的存在,使得電流增大時總線電壓略有減小。這表明數據傳輸過程中任意時刻MBus總線上要么傳輸電壓信號,要么傳輸電流信號,所以MBus只能工作在主從半雙工方式下。
主站通過檢測總線上是否出現11-20mA脈沖電流確定接收“0”還是“1”;從站接收數據時,由于總線絕對電壓會隨著距離和總線電流變化而變化,故通過檢測總線電壓與動態參考電壓是否相差10V以上來確定接收“0”還是“1”。TI公司的MBus接口芯片TSS721A采用的就是這種動態電平識別邏輯,它的動態參考電壓由從站接入位置處的Vmark對芯片內的一個電容充電獲得。該電容充放電電流之比約為40,在波特率大于300的情況下只要在傳輸的bit流中每11位至少出現一個“1”(Vmark),就可以保證動態參考電壓始終維持在Vmark附近。
1.2.2
MBus數據鏈路層以國際電工委員會IEC870-5(遙控裝置和系統傳輸協議)為基礎,規定了MBus的信號傳輸方式、字節表示、幀格式以及主從站的連接過程等。
根據物理層的特點,MBus采用半雙工、異步串行信號傳輸方式,波特率為300~9600。信號格式采用起止式異步協議(IEC870-5-1),以字節為單位進行傳輸,先傳低位bit(LSB)再傳高位bit(MSB)。總線上表示一個字節的11位bit流按傳輸順序是:起始位/8bit字節/奇偶校驗位/停止位。由于MBus的空閑位(Vmark,Imark)為邏輯“1”,所以起始位定義為邏輯“0”,而停止位定義為邏輯“1”。這樣,一個字節的傳輸過程中包括起始、數據、校驗、停止共11比特,其中至少有一個邏輯“1”,滿足MBus從站的電平要求。
MBus采用FT1.2異步式字節傳輸幀格式(IEC870-5-2),由多個字節組成,傳輸時字節間不允許停頓。FT1.2定義了三種幀格式,分別是單字節幀(表1-3)、定長短幀(表1-4)和變長長幀(表1-5)。其中S:表示起始位;D:未加說明均表示一個字節;P:表示奇偶校驗位;E:表示停止位;發送順序從左至右,從上至下。
表1-3單字節幀
S | D | P | E |
0 | E5H | 1 | 1 |
表1-4定長短幀
S | D | P | E |
0 | 10H | 1 | 1 |
0 | C字段 | P | 1 |
0 | A字段 | P | 1 |
0 | CS字段 | P | 1 |
0 | 16H | 1 | 1 |
表1-5變長長幀
S | D | P | E |
0 | 68H | 1 | 1 |
0 | L字段 | P | 1 |
0 | L字段 | P | 1 |
0 | 68H | 1 | 1 |
0 | C字段 | P | 1 |
0 | A字段 | P | 1 |
0 | CI字段 | P | 1 |
0 | 用戶數據區0~252字節 | P | 1 |
0 | CS字段 | P | 1 |
0 | 16H | 1 | 1 |
單字節幀E5H用于接收確認,定長短幀用于主站向從站發送指令,變長長幀用于主從站間的數據交換。后兩種格式除了起始字節(如10H,68H)、終止字節(16H)外,還定義了C、A、L、CI和CS字段,變長長幀還封裝了一個長達252個字節的用戶數據區,各字段的意義如下。
MBus的通信完全由主站控制,主從站之間按以下兩種非平衡式傳輸規則交換報文幀:
1.
SND-NKE<>E5H,主站發送SND-NKE,被呼叫從站以E5H單字節幀確認,用于通信開始或者通信中斷后的初始化。
SND-UD<>E5H,主站發送SND-UD,被呼叫從站以E5H單字節幀確認,用于主站向從站傳輸數據或者控制信息,如設定波特率等。
2.
REQ_UD2<> RSP_UD,主站發送REQ_UD2,被呼叫從站以RSP_UD回復,用于主站采集從站的測量數據,如熱量、流量等,這些數據位于RSP_UD的用戶數據區。
1.2.3
MBus應用層定義了測量記錄的數據類型和數據結構。從站利用這些數據類型和結構將測量記錄進行編碼處理,并封裝在長幀的用戶數據區內發送;主站則根據這些數據類型和結構的定義,對長幀的用戶數據區進行相應的解碼,從而獲取從站的測量數據。因此用戶數據區的數據類型和數據結構的定義對于MBus的應用具有重要的意義,MBus在這方面針對消耗量計量儀表的測量數據進行了專門的設計。
MBus定義了多種數據類型,包括無符號BCD整型、二進制整型、無符號二進制整型、布爾型、32bit復合型(表示測量類型、物理單位等)、32bit日期時間型、16bit日期型、浮點型。在這些數據類型的基礎上,MBus定義了兩種數據結構:固定數據結構和可變數據結構。長幀的用戶數據區實際上就是一個用固定數據結構或可變數據結構表示的數據塊。
1.
分為6個字段,按順序分別是:從站標識號碼/訪問次數/從站狀態/測量量類型和單位/計數器1數據/計數器2數據。這種數據結構只能傳輸兩個計數器的數據,且對測量記錄只能進行固定長度的編碼,因此適用于從站只有一兩個測量量的場合。
2.
可變數據結構分為4個部分,按順序分別是:固定數據頭/數據記錄塊(DRB)/廠商數據頭/廠商自定義數據塊。固定數據頭同固定數據結構的前3個字段的意義基本類似;數據記錄塊由若干子數據塊組成,子數據塊數目以及每個子數據塊的類型、長度、意義都是可變的,每個子數據塊保存一個測量數據;廠商數據頭是一個標識符(0FH或者1FH),表明自此以后是廠商自定義數據塊;廠商自定義數據塊使得在主從站間可以按照自定義的規則交換數據,不受標準的約束,進一步增加了使用的靈活性。可變數據結構能充分滿足遠程讀數的需要,適用于從站有多種測量量的場合。
對于熱力站監控系統來說,可變數據結構中的數據記錄塊保存的各個子數據塊是最重要的,因為它們保存了熱量表的測量數據。每個字數據塊由三部分組成,按順序分別是:數據信息塊(DIB)/量值信息塊(VIB)/數據編碼塊(DCB)。數據信息塊由一個或多個字節表示,說明測量數據的編碼類型(二進制還是BCD以及數據編碼塊的位數)、數據類別(瞬時值還是平均值等);量值信息塊也是由一個或多個字節表示,說明測量值的量綱和量級;數據編碼塊保存該測量數值的編碼。
應用層除了定義測量記錄類型和數據結構外還有其它用途。實際上最新的MBus標準中通過規定許多新的CI字段控制字節,并結合用戶數據區存儲的信息,為用戶提供了許多新的功能。隨著MBus協議的不斷發展,應用層功能將不斷擴展和完善,包括尋址、設定參數、報警以及更為靈活的抄表方式等。
1.2.4
熱力站監控系統中,MBus從站(Slave)是各公司生產的熱量表,其核心部分是一塊高度集成的控制芯片,它可以完成流量、溫度等物理量的測量,并可以進行熱量值的積分計算。熱量表為了便于遠程抄讀,一般都提供了MBus接口,熱量表的核心控制芯片也提供了對MBus協議的支持。熱量表MBus接口電路廣泛使用了TSS721A收發芯片。
TSS721A接口芯片是MBus協議組織與TI公司合作開發的MBus協議從站專用接口芯片,遵循EN1434-3標準。借助TI公司的強大技術力量,TSS721A接口芯片實現了MBus協議對物理層的各項規定要求,有力地推動了MBus協議的推廣。根據MBus總線物理層的相關定義,TSS721A從站接口芯片具備檢測總線電壓(接收數據)和調制總線電流(發送數據)的功能,關于TSS721A的通信電路原理可以參閱有關文獻。TSS721A除了MBus通信功能外,還對MBus總線遠程供電和電池供電提供了很好的支持。


評論