矽實驗室標誌

AN451
無線 M-BUS 軟件實現

介紹

本應用筆記介紹了 Silicon Labs 使用 Silicon Labs C8051 MCU 和 EZRadioPRO® 實現無線 M-Bus。 無線 M-bus 是使用 868 MHz 頻段的抄表應用的歐洲標準。

堆棧層

無線 M-Bus 使用 3 層 IEC 模型,它是 7 層 OSI 模型的子集(見圖 1)。

SILICON LABS 無線 M-BUS 軟件實現 AN451EN 13757-4 中定義了物理 (PHY) 層。 物理層定義了比特的編碼和傳輸方式、RF 調製解調器特性(碼片速率、前導碼和同步字)和 RF 參數(調製、中心頻率和頻率偏差)。
PHY 層是使用硬件和固件的組合來實現的。 EZRadioPRO 執行所有 RF 和調製解調器功能。 EZRadioPRO 在 FIFO 模式下與數據包處理程序一起使用。 MbusPhy.c 模塊提供 SPI 接口、編碼/解碼、塊讀/寫和數據包處理並管理收發器狀態。
M-Bus 數據鏈路層在 MbusLink.c 模塊中實現。 M-Bus 應用程序編程接口由可以從主線程中的應用程序層調用的公共函數組成。 MbusLink 模塊還實現了數據鏈路層。 數據鏈路層將格式化應用程序 TX 緩衝區中的數據並將其複製到 MbusPhy TX 緩衝區,添加所需的標頭和 CRC。
應用層本身不是 M-bus 固件的一部分。 應用層定義瞭如何格式化各種數據以進行傳輸。 大多數儀表只需要傳輸一種或兩種類型的數據。 向電錶添加大量代碼以容納任何類型的數據會給電錶增加不必要的代碼和成本。 實現庫或頭文件可能是可行的 file 包含詳盡的數據類型列表。 但是,大多數計量客戶確切地知道他們需要傳輸什麼類型的數據,並且可以參考有關格式詳細信息的標準。 通用閱讀器或嗅探器可能會在 PC GUI 上實現一套完整的應用程序數據類型。 由於這些原因,應用層是使用 ex 實現的amp用於儀表和閱讀器的應用程序。

所需標準
  1. EN 13757-4
    EN 13757-4
    儀表通訊系統及遠程抄表
    第 4 部分:無線儀表讀數
    在 868 MHz 至 870 MHz SRD 頻段中運行的輻射計讀數
  2. EN 13757-3
    儀表通訊系統及遠程抄表
    第 3 部分:專用應用層
  3. IEC 60870-2-1:1992
    遙控設備和系統
    第 5 部分:傳輸協議
    第 1 節:鏈路傳輸程序
  4. IEC 60870-1-1:1990
    遙控設備和系統
    第 5 部分:傳輸協議
    第 1 節:傳輸幀格式
定義
  • M總線—M-Bus 是歐洲抄表的有線標準。
  • 無線 M-Bus— 用於歐洲抄表應用的無線 M-Bus。
  • 物理層— 物理層定義了數據位和字節的編碼和傳輸方式。
  • API——應用程序編程接口。
  • 關聯-數據鏈路層定義了塊和幀的傳輸方式。
  • CRC——循環冗餘校驗。
  • 頻移鍵控—頻移鍵控。
  • 芯片-傳輸數據的最小單位。 一個數據位被編碼為多個碼片。
  • 模塊-交流代碼源.c file.

M-Bus PHY 功能描述

前導序列

M-bus 規範指定的 Preamble 序列是一個整數,零和一交替。 一定義為較高頻率,零定義為較低頻率。
NX (01)
Si443x 的前導選項是整數個半字節,由交替的 XNUMX 和 XNUMX 組成。
NX (1010)
帶有額外前導碼的前導碼不會有問題,但是,同步字和有效載荷會錯位一位。
解決方案是通過設置調製控制 2 寄存器 (0x71) 中的引擎位來反轉整個數據包。 這將反轉前導碼、同步字和 TX/RX 數據。 因此,在寫入 TX 數據或讀取 RX 數據時應反轉數據。 此外,同步字在寫入 Si443x 同步字寄存器之前被反轉。

同步字

EN-13757-4 要求的同步字為模式 S 和模式 R 的 18 個芯片或模式 T 的 10 個芯片。Si443x 的同步字為 1 到 4 個字節。 然而,由於同步字總是在前導碼之前,前導碼的最後六位可以被認為是同步字的一部分; 因此,第一個同步字由三個重複的零填充,後跟一個 443。 同步字在寫入 SiXNUMXx 寄存器之前進行補碼。
表 1. 模式 S 和模式 R 的同步字

EN 13757-4 00 01110110 10010110 二進位
00 76 96 十六進制
墊 (01) x 3 01010100 01110110 10010110 二進位
54 76 96 十六進制
補充 10101011 10001001 01101001 二進位
AB 89 69 十六進制

表 2. 模式 T 表與其他同步字

同步 同步 同步
單字 單字 單字
3 2 1
發送前導碼長度

為四種不同的操作模式指定了最小前導碼。 可以接受比指定更長的前導碼。 減去前導碼的六個碼片得出 Si443x 前導碼的最小碼片數。 該實現在所有短前導碼模式中添加了兩個額外的前導碼半字節,以提高前導碼檢測和互操作性。 帶有長前導碼的模式 S 上的前導碼很長; 因此,使用最小前導碼。 半字節中的前導碼長度寫入前導碼長度 (0x34) 寄存器。 前導碼長度寄存器僅在傳輸時確定前導碼。 表 3 總結了最小規格和前導碼長度設置。
表 3. 發送前導碼長度

EN-13757-4
最低限度
Si443x 序言
設置
同步
單字
全部的 額外的
NX (01) 籌碼 蠶食 籌碼 籌碼 籌碼 籌碼
模式 S 短序言 15 30 8 32 6 38 8
模式 S 長前導 279 558 138 552 6 558 0
模式T(米-其他) 19 38 10 40 6 46 8
模式R 39 78 20 80 6 86 8

接收的最小前導碼由前導碼檢測控制寄存器 (0x35) 決定。 接收時,必須從指定的最小前導碼中減去同步字中的位數,以確定可用的前導碼。 如果啟用 AFC,接收器的最小建立時間為 16 片,如果禁用 AFC,則為 8 片。 接收器穩定時間也從可用前導碼中減去,以確定前導碼檢測控制寄存器的最小設置。

錯誤前導碼的概率取決於前導碼檢測控制寄存器的設置。 8 芯片的短設置可能會導致每隔幾秒鐘檢測到一個錯誤的前導碼。 20chips 的推薦設置使得錯誤前導檢測不太可能發生。 模式 R 和模式 SL 的前導碼長度對於要使用的推薦設置來說足夠長。
使前導檢測超過 20 個碼片幾乎沒有什麼好處。
對於帶有短前導碼的 Model S 和 Model T,AFC 被禁用。這減少了接收器建立時間並允許更長的前導碼檢測設置。 在禁用 AFC 的情況下,模式 T 可以使用 20 個芯片的推薦設置。 帶有短前導碼的 Model S 使用 4 個半字節或 20 個芯片的設置。 這使得該模型的錯誤前導檢測概率略高。
表 4. 前導檢測

EN-13757-4
最低限度
同步
單字
可用的
前言
接收建立 探測
分分鐘
Si443x 序言
檢測設定
NX (01) 籌碼 籌碼 籌碼 籌碼 籌碼 蠶食 籌碼
模式 S 短序言 15 30 6 24 8* 16 4 16
Model S 長序言 279 558 6 552 16 536 5 20
T型(儀表-其他) 19 38 6 32 8* 24 5 20
模式R 39 78 6 72 16 56 5 20
*筆記: 亞足聯禁用

接收器被配置為使用最小指定前導碼與發送器進行互操作。 這確保接收器將與任何 M 總線兼容的發送器互操作。
無線 M-Bus 規範需要至少 1 個芯片的模式 S558 的非常長的前導碼。 僅傳輸前導碼就需要大約 17 ms。 Si443x 不需要這麼長的前導,也不會受益於長前導。 雖然長前導碼對於模式 S2 是可選的,但沒有理由在 Si443x 中使用長前導碼。 如果需要單向通信,模式 T1 將提供更短的前導碼、更高的數據速率和更長的電池壽命。 如果需要使用模式 S2 進行雙向通信,建議使用較短的前導碼。
請注意,帶有長前導碼的 Model S 的檢測閾值比帶有短前導碼的 Model S 傳輸的前導半字節數長。 這意味著長前同步碼模式 S 接收器不會檢測到來自短前同步碼模式 S 發射機的前同步碼。 如果長前導模式 S 接收器要從長前導中獲得任何好處,這是必要的。
請注意,短前導模式 S 接收器將檢測前導並從短前導模式 S 接收數據包
發射機和一個長前導模式 S 發射機; 因此,一般情況下,抄表器應使用短前導模式 S 接收器配置。

編碼/解碼

無線 M-bus 規範需要兩種不同的編碼方法。 曼徹斯特編碼用於模式 S 和模式 R。曼徹斯特編碼也用於模型 T 中的其他到儀錶鍊接。模型 T 儀表到其他鏈接使用 3 種編碼中的 6 種。
1.曼徹斯特編碼/解碼
曼徹斯特編碼歷來在 RF 系統中很常見,以使用簡單且廉價的調製解調器提供強大的時鐘恢復和跟踪。 但是,像 Si443x 這樣的現代高性能無線電不需要曼徹斯特編碼。 支持曼徹斯特編碼主要是為了與現有標準兼容,但在不使用曼徹斯特編碼時,Si443x 的數據速率實際上翻了一番。
Si443x 支持在硬件中對整個數據包進行曼徹斯特編碼和解碼。 不幸的是,同步字不是曼徹斯特編碼的。 為同步字故意選擇了無效的曼徹斯特序列。 這使得曼徹斯特編碼與大多數現有無線電不兼容,包括 Si443x。 因此,曼徹斯特編碼和解碼必須由 MCU 執行。 未編碼數據上的每個字節由八個數據位組成。 使用曼徹斯特編碼,每個數據位都被編碼成一個雙碼片符號。 由於編碼數據必須一次寫入無線電 FIFO XNUMX 個芯片,因此一次編碼一個半字節數據並寫入 FIFO。
表 5. 曼徹斯特編碼

數據 Ox12 0x34 位元組
Ox1 0x2 0x3 0x4 蠶食
1 10 11 100 二進位
晶片 10101001 10100110 10100101 10011010 二進位
先進先出 氧A9 氧A6 氧A5 牛9A 十六進制

要傳輸的每個字節一次一個字節地傳遞給編碼字節函數。 編碼字節函數將調用編碼半字節函數兩次,首先是最重要的半字節,然後是最不重要的半字節。
軟件中的曼徹斯特編碼並不難。 從最高位開始,一個被編碼為“01”碼片序列。 零被編碼為“10”碼片序列。 這可以使用循環並為每個符號移動兩位來輕鬆實現。 然而,對每個半字節只使用一個簡單的 16 項查找表會更快。 編碼曼徹斯特半字節函數對半字節數據進行編碼,然後將其寫入 FIFO。 芯片在寫入 FIFO 之前被反轉,以解決反轉前導碼的要求。
接收時,FIFO 中的每個字節由 XNUMX 個芯片組成,並被解碼為半字節數據。 讀取塊函數一次從 FIFO 讀取一個字節並調用解碼字節函數。 芯片在從 FIFO 讀取後被反轉,以解決反轉前導碼的要求。 曼徹斯特編碼芯片的每個字節都被解碼為半字節數據。 使用寫入半字節 RX 緩衝區功能將解碼的半字節寫入 RX 緩衝區。
請注意,編碼和解碼都是在運行中一次執行一個數據半字節。 編碼到緩衝區需要兩倍於未編碼數據大小的附加緩衝區。 編碼和解碼比支持的最快數據速率(每秒 100 萬個芯片)快得多。 由於 Si443x 支持對 FIFO 的多字節讀取和寫入,因此僅使用單字節讀取和寫入的開銷很小。 10 個編碼芯片的開銷約為 100 µs。 好處是節省了 512 字節的 RAM。
2.六分之三的編碼解碼
EN-13757-4 中規定的六分之三編碼方法也在 MCU 的固件中實現。 這種編碼用於從米到其他的高速(每秒 100 k 碼片)模式 T。 T 型為無線儀表提供最短的傳輸時間和最長的電池壽命。
要傳輸的數據的每個字節被分成兩個半字節。 最重要的半字節首先被編碼和傳輸。 同樣,這是使用編碼字節函數實現的,該函數調用編碼半字節函數兩次。
每個半字節數據都被編碼為一個六碼片符號。 8 芯片符號序列必須寫入 XNUMX 芯片 FIFO。
在編碼期間,兩個字節的數據被編碼為四個半字節。 每個半字節是一個 6 碼片符號。 四個 6chip 符號聚合為三個字節。
表 6. 六分之三的編碼

數據 0x12 0x34 位元組
Ox1 0x2 0x3 0x4 蠶食
晶片 15 16 13 34 八進位
1101 1110 1011 11100 二進位
先進先出 110100 11100010 11011100 二進位
0x34 氧E2 氧化直流 十六進制

在軟件中,六分之三編碼是使用三個嵌套函數實現的。 編碼字節函數將調用編碼半字節函數兩次。 編碼半字節函數使用六碼片符號的查找表並將符號寫入六分之三的移位函數。 該函數在軟件中實現了一個 16 片的移位寄存器。 該符號被寫入移位寄存器的最低有效字節。 寄存器左移兩次。 這樣重複三遍。 當移位寄存器的高字節中出現完整字節時,它會被反轉並寫入 FIFO。
由於數據的每個字節都被編碼為一個半編碼字節,因此最初清除移位寄存器很重要,以便第一個編碼字節正確。 如果數據包長度為奇數,則在對所有字節進行編碼後,移位寄存器中仍會剩餘一個半字節。 這是通過後同步碼處理的,如下一節所述。
解碼六分之三的編碼是相反的過程。 解碼時,將三個編碼字節解碼為兩個數據字節。 軟件移位寄存器再次用於聚合解碼數據的字節。 使用 64 項逆向查找表進行解碼。 這使用更少的周期但更多的代碼存儲器。 在 16 個條目的查找表中搜索相應的符號需要更長的時間。
後序
無線 M-bus 規範對後同步碼或拖車有特定要求。 對於所有模式,最小為 8 個芯片,最大為 XNUMX 個芯片。 由於 FIFO 的最小原子單元是一個字節,所以模式 S 和模式 R 使用 XNUMX 片尾。如果數據包長度為偶數,則模式 T 後同步碼為 XNUMX 個芯片,如果數據包長度為奇數,則為 XNUMX 個芯片。 奇數包長度的四碼片後同步碼滿足至少有兩個交替碼片的要求。
表 7. 後同步碼長度

後同步碼長度(籌碼)
分分鐘 最大限度 執行 碼片序列
S模式 2 8 8 1010101
模式T 2 8 4 (奇怪的) 101
8 (甚至) 1010101
模式R 2 8 8 1010101
數據包處理程序

Si443x 上的數據包處理程序可用於可變數據包寬度模式或固定數據包寬度模式。 可變包寬模式需要在同步字和可選的報頭字節之後有一個包長字節。 接收後,無線電將使用長度字節來確定有效數據包的結尾。 在傳輸時,無線電將在報頭字節之後插入長度字段。
無線 M-bus 協議的 L 字段不能用於 Si443x 長度字段。 首先,L 字段不是實際的數據包長度。 它是不包括 CRC 字節或編碼的鏈路層有效載荷字節數。 其次,L 場本身使用曼徹斯特編碼或模式 T 儀表的六分之三編碼進行編碼。
該實現使用固定數據包寬度模式的數據包處理程序進行傳輸和接收。 傳輸時,PHY 層將讀取傳輸緩衝區中的 L 字段併計算編碼字節數,包括後同步碼。 要傳輸的編碼字節總數寫入數據包長度寄存器 (0x3E)。
接收時,對前兩個編碼字節進行解碼,並將 L 字段寫入接收緩衝區。 L 字段用於計算要接收的編碼字節數。 然後將要接收的編碼字節數寫入數據包長度寄存器 (0x3E)。 後同步碼被丟棄。
MCU 必須解碼 L 字段,計算編碼字節數,並在接收到可能的最短數據包長度之前將該值寫入數據包長度寄存器。 PHY 層允許的最短 L 字段為 9,提供 12 個未編碼字節。 這為模型 T 提供了 18 個編碼字節。前兩個字節已經被解碼。 因此,數據包長度寄存器必須以 16 字節的時間以 100 kbps 或 1.28 毫秒的速度更新。 這對於運行在 8051 MIPS 的 20 來說沒有問題。
要接收的字節數不包括後同步碼,除了用於具有奇數數據包長度的模式 T 數據包的四碼片後同步碼。 因此,接收器不需要後同步碼,除了模型 T 奇數長度數據包。 該後同步碼僅用於給出整數個編碼字節。 後導碼的內容被忽略; 因此,如果不發送後同步碼,則將接收並忽略四個噪聲碼片。 由於編碼字節的總數限制為 255 (0xFF),因此實現限制了不同模式的最大 L 字段。
表 8. 數據包大小限制

編碼的 解碼的 M-總線
位元組 位元組 L-場
十二月 十六進制 十二月 十六進制 十二月 十六進制
S模式 255 FF 127 7 樓 110 6E
模式T(米-其他) 255 FF 169 A9 148 94
模式R 255 FF 127 7 樓 110 6E

這些限制通常遠高於無線儀表的典型使用情況。 數據包長度應保持較小,以獲得盡可能長的電池壽命。
此外,用戶可以指定應接收的最大 L 場 (USER_RX_MAX_L_FIELD)。 這決定了接收緩衝區所需的大小 (USER_RX_BUFFER_SIZE)。
支持最大 L 字段 255 將需要 290 字節的接收緩衝區和最大 581 曼徹斯特編碼字節。 在這種情況下,需要禁用數據包處理程序並且無法使用數據包長度寄存器。 這是可行的,但如果可能,使用數據包處理程序更方便。

先進先出使用

Si4431 提供一個 64 字節的 FIFO 用於發送和接收。 由於編碼字節數為 255,因此整個編碼數據包可能無法容納在 64 字節緩衝區內。
傳染
在傳輸時,計算編碼字節的總數。 如果包括後同步碼在內的編碼字節總數小於 64 字節,則整個數據包將寫入 FIFO,並且僅啟用數據包發送中斷。 大多數短數據包將在一個 FIFO 傳輸中發送。
如果編碼字節數大於 64,則需要多次 FIFO 傳輸才能發送數據包。 前 64 個字節寫入 FIFO。 已啟用數據包發送和 TX FIFO 幾乎為空中斷。 TX FIFO 幾乎為空閾值設置為 16 字節 (25%)。 每次發生 IRQ 事件時,都會讀取狀態 2 寄存器。 首先檢查數據包發送位,如果數據包尚未完全發送,則接下來的 48 字節編碼數據將寫入 FIFO。 這種情況一直持續到所有編碼字節都已寫入並發生 Packet Sent 中斷。
1.接待
在接收時,最初僅啟用同步字中斷。 接收到同步字後,同步字中斷被禁止,FIFO 幾乎滿中斷被使能。 FIFO 幾乎滿閾值最初設置為 2 個字節。 第一個 FIFO 幾乎滿中斷用於知道何時接收到兩個長度字節。 一旦接收到長度,就對長度進行解碼併計算編碼字節數。 然後將 RX FIFO 幾乎滿閾值設置為 48 字節。 RX FIFO 幾乎已滿,有效數據包中斷已啟用。 在下一個 IRQ 事件時,讀取狀態 1 寄存器。 首先,檢查有效數據包位,然後檢查FIFO 幾乎滿位。 如果僅設置了 RX FIFO 幾乎已滿位,則從 FIFO 中讀取接下來的 48 個字節。 如果設置了有效數據包位,則從 FIFO 中讀取數據包的其餘部分。 MCU 會跟踪已讀取的字節數,並在最後一個字節後停止讀取。

數據鏈路層

數據鏈路層模塊實現了符合 13757-4:2005 的鏈路層。 數據鏈路層 (LINK) 提供物理層 (PHY) 和應用層 (AL) 之間的接口。
數據鏈路層執行以下功能:

  • 提供在 PHY 和 AL 之間傳輸數據的功能
  • 為傳出消息生成 CRC
  • 檢測傳入消息中的 CRC 錯誤
  • 提供物理尋址
  • 確認雙向通信模式的傳輸
  • 幀數據位
  • 檢測傳入消息中的幀錯誤
鏈路層幀格式

EN 13757-4:2005 中使用的無線 M-Bus 幀格式源自 IEC3-3-60870 的 FT5(幀類型 2)幀格式。 該幀由一個或多個數據塊組成。 每個塊包括一個 16 位的 CRC 字段。 第一個塊是一個 12 字節的固定長度塊,包括 L 字段、C 字段、M 字段和 A 字段。

  1. L-場
    L 字段是鏈路層數據有效載荷的長度。 這不包括 L 字段本身或任何 CRC 字節。 它確實包括 L 場、C 場、M 場和 A 場。 這些是 PHY 有效載荷的一部分。
    由於編碼字節數限制為 255 字節,因此 M 字段的最大支持值對於曼徹斯特編碼數據為 110 字節,對於模式 T 六選一編碼數據為 148 字節。
    鏈路層負責計算傳輸時的 L 場。 鏈路層將在接收時使用 L 字段。
    請注意,L 字段不指示 PHY 負載長度或編碼字節數。 傳輸時,PHY 將計算 PHY 負載長度和編碼字節數。 收到後,PHY 將解碼 L 字段併計算要解碼的字節數。
  2. C場
    C 字段是幀控製字段。 該字段標識幀類型並用於鏈路數據交換服務原語。 C 字段指示幀類型 - SEND、CONFIRM、REQUEST 或 RESPOND。 在 SEND 和 REQUEST 幀的情況下,C 字段指示是 CONFIRM 還是 RESPOND。
    使用基本的 Link TX 功能時,可以使用任何 C 值。 使用鏈接服務原語時,C 字段會根據 EN 13757-4:2005 自動填充。
  3. 磁場
    M 字段是製造商的代碼。 製造商可以從以下位置索取三字母代碼 web 地址: http://www.dlms.com/flag/INDEX.HTM 三字母代碼的每個字符都被編碼為五位。 將ASCII碼減去5x0(“A”)即可得到40位碼。 三個 5 位代碼連接起來形成 15 位。 最高有效位為零。

  4. 地址字段是每個設備的唯一 6 字節地址。 唯一地址應由製造商分配。 每個製造商都有責任確保每個設備都有一個唯一的 6 字節地址。 發送和請求幀的地址是儀表或其他設備的自地址。 使用發起設備的地址發送確認和響應數據幀。
  5. CI-場
    CI 字段是應用程序標頭,指定應用程序數據有效負載中的數據類型。 雖然 EN13757-4:2005 指定了有限數量的值,但鏈接服務原語將允許使用任何值。
  6. CRC
    EN13757-4:2005 中規定了 CRC。
    CRC 多項式是:
    X16 + X13 + X12 + X11 + X10 + X8 + X6 + X5 + X2 + 1
    請注意,M-Bus CRC 是針對每個 16 字節塊計算的。 結果是每16個字節的數據需要傳輸18個字節,
附加資訊

有關鏈路層實現的更多信息,請參見“AN452:無線 M-Bus 協議棧程序員指南”。

電源管理

圖 2 顯示了儀表 ex 的電源管理時間表ample 使用模式 T1。

MCU 應盡可能處於休眠模式以節省能源。 在這個前ample,當 RTC 運行時,等待無線電晶體啟動時,以及從 FIFO 發送時,MCU 處於休眠狀態。 MCU 將從連接到端口匹配喚醒的 EZRadioPRO IRQ 信號中喚醒。
當傳輸超過一個塊的消息時,MCU 必須喚醒以填充 FIFO(基於 FIFO 幾乎為空的中斷),然後返回休眠狀態。
從 ADC 讀取數據時,MCU 應處於空閒模式,由低功耗振盪器或突發模式振盪器運行。 ADC 需要一個 SAR 時鐘。
不使用時,EZRadioPRO 應處於關閉模式,SDN 引腳驅動為高電平。 這需要與 MCU 進行硬連線連接。 EZ Radio Pro 寄存器在關機模式下不保留; 因此,EZRadioPro 在每個 RTC 間隔上初始化。 初始化無線電所需的時間不到 100 µs,可節省 400 nA。 基於 10 秒的時間間隔,這可節省 10 µJ 的能量。
EZRadioPRO 晶體進行 POR 大約需要 16 ms。 這足以計算大約八個塊的 CRC。 如果 MCU 在晶振穩定之前完成所有 CRC,則 MCU 將返回休眠狀態。 如果需要加密,也可以在等待晶體振盪器時啟動。
對於大多數任務,MCU 應使用低功耗振盪器以 20 MHz 的頻率運行。 需要精確超時的任務必須使用精確振盪器和空閒模式而不是睡眠模式。 RTC 為大多數任務提供足夠的分辨率。 T2 儀表 ex 的電源管理時間表amp應用程序如圖 3 所示。

應針對儀表喚醒且沒有讀取器存在的正常情況優化收發器實現。 最小/最大 ACK 超時足夠長,因此可以使用 C8051F930 RTC 並將 MCU 置於睡眠模式。
為不需要使用睡眠模式的電源或 USB 供電的讀卡器提供了構建選項。 將使用空閒模式而不是睡眠模式,以便 USB 和 UART 可能會中斷 MCU。

SILICON LABS 無線 M-BUS 軟件實現 AN451-1

簡約工作室
一鍵訪問 MCU 和無線工具、文檔、軟件、源代碼庫等。 適用於 Windows,
Mac 和 Linux!

物聯網產品組合 品質
物聯網產品組合
www.silabs.com/物聯網
軟件/硬件
www.silabs.com/simplicity
品質
www.silabs.com/quality
支持和社區
社區.silabs.com

免責聲明
Silicon Labs 旨在為客戶提供最新、準確且深入的所有周邊設備和模組的文檔,供使用或打算使用 Silicon Labs 產品的系統和軟體實施者使用。特性資料、可用模組和周邊裝置、記憶體大小和記憶體位址涉及每個特定裝置,並且提供的「典型」參數在不同的應用中可能並且確實有所不同。應用前amp此處描述的文件僅用於說明目的。 Silicon Labs 保留在不另行通知的情況下對此處的產品信息、規格和描述進行更改的權利,並且不保證所包含信息的準確性或完整性。 Silicon Labs 對使用此處提供的信息的後果不承擔任何責任。 本文檔並不暗示或明示根據本協議授予的設計或製造任何集成電路的版權許可。 未經 Silicon Labs 的明確書面同意,產品的設計或授權不得在任何生命支持系統中使用。 “生命支持系統”是指旨在支持或維持生命和/或健康的任何產品或系統,如果出現故障,可合理預期會導致重大人身傷害或死亡。 Silicon Labs 產品並非為軍事應用而設計或授權。 Silicon Labs 產品在任何情況下均不得用於大規模殺傷性武器,包括(但不限於)核、生物或化學武器,或能夠運載此類武器的導彈。
商標資訊
Silicon Laboratories Inc.®、Silicon Laboratories®、Silicon Labs®、SiLabs® 和 Silicon Labs logo®、Bluegiga®、Bluegiga Logo®、Clockbuilder®、CMEMS®、DSPLL®、EFM®、EFM32®、EFR、Ember® 、Energy Micro、Energy Micro 標誌及其組合、“世界上最節能的微控制器”、Ember®、EZLink®、EZRadio®、EZRadioPRO®、Gecko®、ISOmodem®、Precision32®、ProSLIC®、Simplicity Studio®、SiPHY® 、 Telegesis、 Telegesis Logo®、USBXpress® 和其他是 Silicon Labs 的商標或註冊商標。 ARM、CORTEX、Cortex-M3 和 thumbs 是 ARM Holdings 的商標或註冊商標。 Keil 是 ARM Limited 的註冊商標。 此處提及的所有其他產品或品牌名稱均為其各自所有者的商標。矽實驗室標誌

矽實驗室公司
400 西塞薩爾查韋斯
奧斯汀, 德州 78701
美國
http://www.silabs.com

文件/資源

SILICON LABS 無線 M-BUS 軟件實現 AN451 [pdf] 使用者指南
SILICON LABS、C8051、MCU 和 EZRadioPRO、無線 M-bus、無線、M-BUS、軟件、實施、AN451

參考

發表評論

您的電子郵件地址不會被公開。 必填欄位已標記 *