在工業(yè)環(huán)境中運行的電子系統(tǒng)必須經(jīng)常承受極端溫度、電氣噪聲環(huán)境或其他惡劣條件,然而,它們正常工作至關(guān)重要。例如,如果發(fā)送到控制機械臂位置的DAC的數(shù)據(jù)被破壞,則該臂可能會向意想不到的方向移動。這不僅危險而且代價高昂:想象一下,在生產(chǎn)線上,手臂撞到一輛新車的側(cè)面,或者更糟糕的是,撞到生產(chǎn)工人。
有幾種方法可用于確保在采取行動之前收到正確的數(shù)據(jù)。最簡單的方法是讓控制器讀回發(fā)送的數(shù)據(jù)。如果接收到的數(shù)據(jù)與發(fā)送的數(shù)據(jù)不匹配,則其中一個已損壞,必須發(fā)送和驗證新數(shù)據(jù)。這種方法是可靠的,但它也有很大的開銷:每條數(shù)據(jù)都必須經(jīng)過驗證,使傳輸?shù)臄?shù)據(jù)量翻倍。
另一種方法是循環(huán)冗余校驗 (CRC),即為每個數(shù)據(jù)包發(fā)送校驗和。接收設(shè)備將指示是否出現(xiàn)問題,因此控制器不需要驗證接收。校驗和通常是通過對數(shù)據(jù)應(yīng)用多項式方程來生成的。CRC-8 在應(yīng)用于 24 位字時產(chǎn)生 8 位校驗和。將校驗和與數(shù)據(jù)相結(jié)合,將所有32位傳輸?shù)娇梢苑治鼋M合的設(shè)備,并指示發(fā)生的錯誤(盡管不是一個完全完美的解決方案),比寫入和讀取方法更有效。
許多ADI公司的DAC以數(shù)據(jù)包錯誤檢查(PEC)的形式實現(xiàn)CRC。當不需要 PEC 功能時,將寫入 24 位數(shù)據(jù)。為了添加 PEC 函數(shù),24 位數(shù)據(jù)通過相應(yīng)的 8 位校驗和進行擴充。如果收到的校驗和與數(shù)據(jù)不一致,則輸出引腳調(diào)低以指示錯誤??刂破髑宄e誤,返回引腳高電平,然后重新發(fā)送數(shù)據(jù)。圖 1 顯示了如何使用 SPI 接口應(yīng)用數(shù)據(jù)的示例。表1列出了可以使用數(shù)據(jù)包錯誤檢查的ADI器件示例。
圖1.SPI 寫入時帶或不帶數(shù)據(jù)包錯誤檢查。
表 1.使用數(shù)據(jù)包錯誤檢查的ADI器件示例
部件號 | 描述 |
AD5360/AD5361 | 16 通道、16/14 位、±10V DAC |
AD5362/AD5363 | 8 通道、16/14 位、±10V DAC |
AD5748 | 工業(yè)電流/電壓輸出驅(qū)動器 |
AD5749 | 工業(yè)電流輸出驅(qū)動器 |
AD5750/AD5750-1 |
具有可編程范圍的工業(yè)電流/電壓輸出驅(qū)動器 |
AD5751 |
工業(yè)電流/電壓輸出驅(qū)動器 |
AD5755/AD5735 | 4通道、16位、4mA至20mA電流和電壓輸出DAC |
AD5757/AD5737 | 4通道、16位、4mA至20mA電流輸出DAC |
ADT7470 | 溫度傳感器集線器和風(fēng)扇控制器 |
生成數(shù)據(jù)包錯誤校驗和
CRC-8 算法使用多項式 C(x) = x8+ x2+ x1 +1. 對于 x = 2,這相當于二進制值100000111。為了生成校驗和,將 24 位數(shù)據(jù)左移 8 位,以創(chuàng)建一個以 8 個邏輯 0 結(jié)尾的 32 位數(shù)字。CRC 多項式對齊,使其 MSB 與 32 位數(shù)據(jù)最左側(cè)的邏輯 1 相鄰。對數(shù)據(jù)應(yīng)用獨占或 (XOR) 函數(shù)以生成新的(較短的)數(shù)字。(匹配的數(shù)字給出邏輯 0,不匹配的數(shù)字給出邏輯 1。CRC多項式再次對齊,使其MSB與第一個結(jié)果的最左側(cè)邏輯1相鄰,并重復(fù)該過程。最終,原始數(shù)據(jù)將減少到小于CRC多項式的值。這是 8 位校驗和。圖 2 演示了如何開發(fā)校驗和。
圖2.生成 24 位數(shù)字 (0x654321) 的校驗和。
結(jié)論
圖 2 中所示的示例使用 0x654321 的 (十六進制) 值作為示例 24 位數(shù)據(jù)字。將 CRC-8 多項式應(yīng)用于數(shù)據(jù)會生成 0x86 的校驗和。當數(shù)據(jù)和校驗和發(fā)送到兼容的ADI產(chǎn)品時,只有在兩條數(shù)據(jù)都正確到達時,才會接受數(shù)據(jù)。此方法提高了數(shù)據(jù)傳輸?shù)目煽啃?,并確保幾乎永遠不會接受損壞的數(shù)據(jù)。
審核編輯:郭婷
-
控制器
+關(guān)注
關(guān)注
112文章
16376瀏覽量
178224 -
dac
+關(guān)注
關(guān)注
43文章
2296瀏覽量
191115
發(fā)布評論請先 登錄
相關(guān)推薦
評論