Maxim Integrated首款兼容家庭總線系統(HBS)的收發器MAX22088提高了惡劣工業環境的性能。MAX22088設計用于家庭總線系統,不限于這些網絡。本應用筆記演示了使用MAX22088 HBS兼容收發器對UART數據包進行編碼和發送的簡單解決方案。
介紹
Maxim Integrated推出的MAX22088,這是其首款兼容家庭總線系統(HBS)的收發器。MAX22088符合HBS標準,但也可用于其他類型的通信系統。本應用筆記演示如何使用MAX22088 HBS兼容收發器和MAX32660微控制器生成和發送UART數據包。MAX32660微控制器用于為主收發器生成UART數據包,另一個MAX32660用于解碼遠端收發器接收的數據(圖1)。該方法使用兩塊MAX22088評估板進行了驗證;介紹并討論了測試數據和代碼示例。
圖1.簡化框圖
家庭總線系統 (HBS) 標準
在當今的家庭自動化 (HA) 系統中,多個電器、設備和控制設備之間的信息交換需要標準化的通信協議來實現有效和強大的數據傳輸。HBS標準通過將這些設備連接到單個總線來簡化這些設備之間的通信,同時定義了同時提供電源和交換數據的傳輸標準。
MAX22088兼容HBS收發器支持在一對電線上傳輸數據和電源,用于HVAC等HBS應用以及遠程監控和檢測。標準HBS接線方案不允許主時鐘信號同步輸入和輸出數據位。相反,與標準串行UART通信類似,數據轉換在總線上檢測并由接收電路解碼。
使用MAX22088 HBS收發器發送UART數據包
UART協議是一種異步串行數據通信標準。UART不是主時鐘同步輸出位,而是使用數據包中的開始位和停止位來檢測正在傳輸的數據。UART通信是大多數微控制器的通用集成功能,包括MAX32660。
標準 HBS 電纜將電源和數據從控制器傳輸到下游遠程設備/節點。HBS數據傳輸使用替代標記反轉(AMI)和負邏輯編碼,占空比為50%,其中雙極性脈沖表示邏輯“0”。當收發器輸出處于高阻抗或非活動狀態時,會出現邏輯“1”。家庭總線通信的要求是總線上永遠不能有兩個同時邏輯“0”條件。這是為了避免在傳輸數據時線路出現飽和和功率問題。固件或通信軟件主要負責確保滿足此要求。
因此,UART數據包需要確保在正常的家庭總線系統中,每個邏輯“0”后面必須跟一個邏輯“1”。一個簡單的編碼解決方案是用邏輯“1”填充每隔一位。此方法使數據包長度加倍,并使UART通信的傳輸頻率減半。請注意,符合 HBS 標準的通信需要字符幀后面的奇偶校驗位,但此方法不包括奇偶校驗位。
MAX32660微控制器UART輸出包括8位數據:一個起始位和一個停止位,但不包括奇偶校驗位。8位數據擴展到總共兩個數據包,并通過家庭總線傳輸(圖2)。
下面提供的代碼用于對 UART 數據包進行編碼。它將 8 位數據拆分并分配給數據包的偶數位,并為數據包的奇數位分配邏輯“1”。
for (i = 0; i < TX_Length; i++) { txdata[(i*2) + 0] = (( tx_text[i] & 0x08) << 3 ) + (( tx_text[i] & 0x04) << 2 ) + (( tx_text[i] & 0x02) << 1 ) + (( tx_text[i] & 0x01)) + 0xaa; txdata[(i*2) + 1] = (( tx_text[i] & 0x80) >> 1 ) + (( tx_text[i] & 0x40) >> 2 ) + (( tx_text[i] & 0x20) >> 3 ) + (( tx_text[i] & 0x10) >> 4 ) + 0xaa; }
例如,如果要發送的數據 (tx_text[i]) 是 0x35 (0b'00110101),則編碼數據包 (txdata[i]) 將為 0b'10101111, 0b'10111011。
圖2.通過家庭總線發送的編碼UART數據包
圖3顯示了使用帶編碼的家庭總線成功傳輸UART數據0x35。
圖3.在帶編碼的家庭總線中傳輸0x35(0b'00110101)
UART數據的編碼使得每個“0”后跟一個“1”,并且數據從總線正確發送和接收。HBS發射器的數據輸入和HBS接收器的數據輸出匹配;接收器側的MAX32660對輸出位進行解碼,無誤差。
-
微控制器
+關注
關注
48文章
7641瀏覽量
151822 -
收發器
+關注
關注
10文章
3448瀏覽量
106156 -
總線
+關注
關注
10文章
2898瀏覽量
88262 -
uart
+關注
關注
22文章
1243瀏覽量
101604
發布評論請先 登錄
相關推薦
評論