AMICCOM SOC RF Chip for Wireless M-BUS協議棧
来源:AMICCOM笙科电子发布时间:2022-11-241034浏览
询问 AI
MBUS是以歐洲智能型儀表通訊的標準為基礎。用於定義水表、燃氣表、熱量表和電表等儀表通信集抄方式,這種連接可以是有線或無線,該標準則是在規範智能型儀表和數據收集器之間的通訊連接。該標準也應用在暖氣費用分配器和臨時或靜態的遠程抄表裝置上。以EN13757通信的歐洲標準,WM-Bus存在超過十年,並持續在歐洲各地的多項布建中成長。以Sub-GHz頻段(169 MHz、434 MHz和868 MHz)為基礎,無線MBUS採用的是簡單的星形網絡組態,協議則是針對智能型儀表裝置的需求來優化。相較於高頻率(如2.4 GHz),SubGHz頻率能發揮較好的傳輸特性。
較低的數據速率和小封裝尺寸可支持以小型軟體堆棧來實現的低功耗、遠程解決方案。低功耗對水錶和煤氣表至關重要,因為它們是靠電池來帶動,並需要穩定運轉十年以上。該標準所要求的頻率、調製模式(以FSK為基礎)和帶寬使它在譜頻上比通行的譜頻型協議要來得有效率。
以下開始介紹笙科電子標準WMBUS協議棧,並以A9159M0為主要開發IC。
1.MBUS協議概述
MBUS使用 3層 OSI 模型。 見圖 Fig1.
Fig1堆疊層
1-1. T模式
儀表每隔幾秒發送一個較短的幀(frame,通常為 3毫秒到 8毫秒),從而允許步行 (walk-by)抄讀資料或行車(drive-by)抄讀資料。
子模式 T1僅作為儀表 ID和讀數值的最小傳輸進行傳輸。
T2雙向子模式頻繁傳輸一個至少包含其ID的短幀,然後在每次傳輸後等待很短的時間以等待反應,從而觸發雙向通信。 或者,初始幀也包含讀值和回復,此回復是為特殊服務保留的反向通道。
注意:此案例僅支援 T1。
1-2. 加密
MBUS支援加密。 本案例僅支援 AES128-CBC。
1-3. “3outof6編碼”
在 T模式下,儀表傳輸的數據需要進行“3outof6編碼”。每個 4位數據應編碼為一個 6位元代碼。
NRZ-代碼 | 十進制 | 6位代碼 | 十進制 |
0000 | 0 | 010110 | 22 |
0001 | 1 | 001101 | 13 |
0010 | 2 | 001110 | 14 |
0011 | 3 | 001011 | 11 |
0100 | 4 | 011100 | 28 |
0101 | 5 | 011001 | 25 |
0110 | 6 | 011010 | 26 |
0111 | 7 | 010011 | 19 |
1000 | 8 | 101100 | 44 |
1001 | 9 | 100101 | 37 |
1010 | 10 | 100110 | 38 |
1011 | 11 | 100011 | 35 |
1100 | 12 | 110100 | 52 |
1101 | 13 | 110001 | 49 |
1110 | 14 | 110010 | 50 |
1111 | 15 | 101001 | 41 |
Table1“3outof 6” 數據編碼
1-4幀(Frame)格式
1-4-1. Frame格式 A
幀格式 A符合 EN60870-5-1,格式為 FT3類。
幀格式 A 的第一個區塊的第一個字節是一個數據包的長度,不包括 CRC 字節和 L欄位。如果 ((L-9)MOD16)不為零,則最後一個區塊應包含 ((L-9)MOD 16) 字節數據 + 2字節的 CRC。除第一個區塊外,所有區塊都包含 16字節數據和 2字節 CRC。
| L-field | C-field | M-field | A-field | CRC-field |
| 1 byte | 1 byte | 2 byte | 6 byte | 2 byte |
Table2第一區塊格式
| CI-field | Data-field | CRC-field |
| 1 byte | 15 orifitisthelastblock(((L-9)modulo16)-1)bytes | 2 bytes |
Table3第二區塊格式
| Data-field | CRC-field |
| 16orifitisthelastblock((L-9)modulo16)bytes | 2 bytes |
Table4其他(若有的話)區塊格式
1-4-2. Frame格式 B
幀格式 B 的第一區塊的第一個字節是包括 CRC 字節但不包括 L欄位的數據包的長度。
| L-field | C-field | M-field | A-field |
| 1 byte | 1 byte | 2 byte | 6 byte |
Table5第一區塊格式
| CI-field | Data-field | CRC-field |
| 1 byte | 115orifitisthelastblock(L-12)bytes | 2 bytes |
Table6第二區塊格式
| Data-field | CRC-field |
| (L-129 bytes) | 2 bytes |
Table7其他(若有的話)區塊格式
1-4-3. L欄位(L-field)
Frame格式 A:Frame格式 A的第一塊的第一個字節是數據包的長度,不包括 CRC字節和 L-欄位。
Frame格式 B:Frame格式 B的第一塊的第一個字節是數據包的長度,包括 CRC字節,但不包括 L-欄位。
1-4-4. C欄位(C-field)
Fig2C-欄位
RES:始終為 ‘0’。
PRM: ‘1’ 消息來自主(發起)站的。
‘0’ 消息來自輔助(反應)站的。
FCB, FCV和 ACD, DFC: 位編碼符合 EN 60870-5-2。
功能代碼: 請參考 EN 13757-4。
1-4-5. 製造商 ID (M-field)
M欄位是製造商的代碼。製造商可以將三字母代碼的每個字符編碼為五位。
這五位可以通過 ASCII碼減去 64得到。三字母代碼將編碼十五位。最高有效位為零。
1-4-6. 位址(A-field)
位址欄位是每個設備的唯一位址,由製造商分配。
位址是發送或請求的儀表或其他設備的自身位址。
1-4-7.CI-field
CI欄位指定協議類型。 詳情請參閱 EN 13757-4。
1-4-8.CRC-field
CRC根據 EN60870-5-1計算前一塊數據。公式如下:
初始值為 0。
最終的 CRC 為補充。
多項式為: x16+x13+x12+x11+x10+x8+x6+x5+x2+1
2.系統概述
本範例程式主要分二個部份,一個為 Meter端,另一個為 Collector端。
Master端:poweron、initial系統及 RF chip後,進入 Set TXFunction設定完資料後會進入 PM省電,直到 Timeout後會從 PM起來,若不是需要發射 TX時間則會繼續 PM,若是需要 TX時間,發射完 TX後,設定 TX資料再進入 PM。Note:使用者可基於每次 timeout時間決定設定 TX資料的時間。
Fig3Meter端的方塊圖
Collector端:poweron、initial系統及 RFchip後,進入 RX狀態後,會執行使用者所排序的 state,若中途 IDsync到,則會優先將 RX接收完並回到原先的 state並在下一次state進入 RX。
Note:使用者可自行編排所要的 state。
Fig4. Collector端的方塊圖
2.1系統方塊圖
程式動作說明:
在 Meter在 Sync_Flag=1情況下,會依照 EN13757-4公式 以及 MBUS_TNOM參數 所產生的時序發射 TX,範例程式預設資料為 SND_NR型態。
Collector收到資料會將資料透過 Uart在終端畫面(terminal)上顯示,若同一時間來不及處理資料,會先將資料放進Collector_Buf暫存,將資料處理完(此地方處理資料為透過 Uart 在終端畫面上顯示,使用者可自行調整)後會釋放該位置暫存資料。
Fig5系統方塊圖
3.韌體程式設計
3.1應用範例概述
使用者初始可從 MBUS_HEADER.hMBUS_PHY.h MBUS_FUNCTION.cmain.c調整相關設定

Fig6MBUS_HEADER.h
MBUS_TNOM: 調整Meter 約幾秒傳送一次資料(1/second)。
m[3] : 設定製造商的 ManufacturerID。
DeviceType: 設定device 種類。
Version: 設定製造商 Meter版本。
DevID: 設定address。
Fig7MBUS_PHY.h
MBUS_Frame_Type: 選擇Frame A or Frame B。
PINCHECK:內部測試用。
ERROR_CHECK : 打開後可通過Uart printf出 對應address 收到資料的情況。Note:預設address為0x00000001~0x0000000a。
Fig8MBUS_FUNCTION.c
Key : AES128-CBCkey。
MBUS_Set_Frame : 使用者可設定Meter端所要傳送的資料。(目前只有shorttransportlayerheader)
MBUSframe_Add0 : 增加 0bit 資料。
MBUSframe_Add8I : 增加 8bit 2進位資料。
MBUSframe_Add16I : 增加 16bit 2進位資料。
MBUSframe_Add24I : 增加 24bit 2進位資料。
MBUSframe_Add32I : 增加 32bit 2進位資料。
SetSTLHeader : 設定short transport layerheader。
SetDLLHeader : 設定data link layer header。

Fig9 main.c
Collector_Buf_Num : 選擇Collector端能暫存資料的封包數量。
Fig10 main.c
Flag_Master : 若為 1 則為 Meter 端,若為 0 則為 Collector 端。
Fig11 main.c
Sync_Flag : Synchrony bit,設為 1會依照 EN13757-4時序傳送資料;設為 0則會依照 MBUS_TNOM到
MBUS_TNOM+1時間內產生亂數時間點。
3.2傳送封包格式
為使 RF Chip能正常解出封包,建議發送的封包格式如下:
Preamblecode:建議 Preamblecode≧18bit。
Postamblecode:會在 “3out of6” encode資料後加上最後 bit相反之 01or10bit(例:最後bit為 0,會在最後增加10;最後 bit為 1,會在最後增加 01),此範例 Postamblecode增加長度為 4bit or8bit。
IDcode(Synccode) : 使用 IDcode為 4bytes,0x550x550x540x3D。傳送封包中的 IDcode,需與 RF chip中的IDcode相同。
Payload : 為傳送封包資料。
Note:Payload資料都會做 “3out of 6” encode。
| Preamble code | ID code( Sync code) | Payload |
Fig12TX packet format
Chip Block Diagram

A9159M0 QFN40 5x5 Package

ElectricalSpecification


現已開始供貨。並提供方案開發,歡迎索取IC樣品與評估模塊,並開始開發工作。
深圳代表处
518048深圳市福田区深南大道6011号NEO大厦A座34B
Phone: 13670056629(微信同号)
销售邮箱: Ktcheng@amiccom.com.tw

新闻来源:AMICCOM笙科电子,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。