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