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