本應(yīng)用筆記實現(xiàn)了一個二進(jìn)制奇偶校驗生成器和校驗器,具有兩個數(shù)據(jù)輸入變體、一個并行數(shù)據(jù)輸入和一個串行數(shù)據(jù)輸入。它描述了實現(xiàn)的邏輯、GreenPAKs 的實現(xiàn)以及獲得的結(jié)果。
二進(jìn)制串行傳輸是使用有線或無線傳輸在設(shè)備之間共享信息的最廣泛使用的技術(shù)之一。在這些傳輸中,數(shù)據(jù)錯誤是必須分析以獲得可靠通信系統(tǒng)的最重要問題之一。
奇偶校驗生成/校驗方法是數(shù)據(jù)傳輸中使用最廣泛的錯誤檢測技術(shù)之一。將奇偶校驗位附加到傳輸?shù)臄?shù)據(jù)中,以使二進(jìn)制數(shù)據(jù)的 1 之和為偶數(shù)或奇數(shù)。該位用于檢測二進(jìn)制數(shù)據(jù)傳輸過程中的錯誤。
包含數(shù)據(jù)位以及奇偶校驗位的消息從發(fā)送器節(jié)點傳輸?shù)?a target="_blank">接收器節(jié)點。在接收方節(jié)點中,計算消息中的高位位數(shù)。如果這個數(shù)字與傳輸?shù)钠媾夹r炍徊黄ヅ?,則意味著接收到的數(shù)據(jù)有錯誤。
有幾種不同品牌的商業(yè) IC(CD40101、74HC/HCT280)可以實現(xiàn)奇偶校驗生成器/檢查器。補(bǔ)充 Dialog GreenPAK 設(shè)計可以對設(shè)計的可負(fù)擔(dān)性、尺寸和模塊化產(chǎn)生積極影響。例如,無論預(yù)期的 I/O 是高電平有效、低電平有效還是混合,都可以使用相同的通用 GreenPAK 設(shè)計。
在本應(yīng)用筆記中,實現(xiàn)了由控制信號管理的集成奇偶校驗發(fā)生器/校驗器所需的數(shù)字邏輯。為此,應(yīng)用筆記實現(xiàn)了奇偶校驗的兩種變體。第一種變體具有并行輸入,以便同時加載要驗證的數(shù)據(jù)位。第二個變體實現(xiàn)了一個串行輸入,通過異步串行數(shù)據(jù)傳輸加載數(shù)據(jù)。為此,在 GreenPAK 中實現(xiàn)了串并轉(zhuǎn)換。
為了實現(xiàn)并行輸入二進(jìn)制奇偶校驗生成器和檢查器,使用了 SLG46536V。為了實現(xiàn)串行輸入變體,使用了 SLG46620V。
數(shù)字通信和奇偶校驗位
在數(shù)字通信中,奇偶校驗位是添加到二進(jìn)制流中的位,以確保 1 值位的總數(shù)是偶數(shù)或奇數(shù)。這種技術(shù)是一種簡單且廣泛使用的錯誤檢測方法。有兩種校驗位方法,稱為偶校驗位和奇校驗位。
奇校驗位系統(tǒng)包括對數(shù)據(jù)流中值為 1 的位的出現(xiàn)次數(shù)進(jìn)行計數(shù)。如果數(shù)字是偶數(shù),則奇偶校驗位值設(shè)置為 1,因此包括奇偶校驗位在內(nèi)的整個流中高位出現(xiàn)的總計數(shù)為奇數(shù)。如果高位計數(shù)為奇數(shù),則奇偶校驗位值為 0。示例如圖 1 所示。

圖 1. 奇校驗二進(jìn)制系統(tǒng)
偶校驗位方法采用逆邏輯。如果數(shù)據(jù)流中值為 1 的位計數(shù)為偶數(shù),則奇偶校驗位值設(shè)置為 0,使包括奇偶校驗在內(nèi)的整個流中的高位總計數(shù)為偶數(shù)。如果值為 1 的位計數(shù)為奇數(shù),則奇偶校驗位設(shè)置為 1,因此整個流具有偶數(shù)個高位。

圖 2.系統(tǒng)圖
為了檢測錯誤,接收器必須計算接收到的二進(jìn)制數(shù)據(jù)流的奇偶校驗位,并將其與接收到的奇偶校驗位進(jìn)行比較。如果奇偶校驗位相同,則不會檢測到錯誤。如果它們不同,則檢測到錯誤。
奇偶校驗位僅用于檢測錯誤。它無法糾正任何錯誤,因為無法確定流中哪個位不正確。如果接收到有錯誤的二進(jìn)制流,接收者必須丟棄它。
這使得奇偶校驗位錯誤方法不適用于高信噪比介質(zhì),因為成功傳輸可能需要很長時間。這種方法的優(yōu)點是只需要一個比特來檢測錯誤,這樣可以增加一個周期內(nèi)的傳輸次數(shù)。
例如,奇校驗位發(fā)送器發(fā)送先前分析的流。如果流中的某個位發(fā)生了變化,則接收方如果將其與發(fā)送的校驗位進(jìn)行比較,則會獲得不同的奇偶校驗位。這種效果如圖 3 所示。

圖 3.錯誤流的奇偶校驗
奇偶校驗位用于需要簡單的錯誤檢測器并且如果發(fā)生錯誤可以重復(fù)傳輸?shù)膽?yīng)用。最重要的應(yīng)用是串行數(shù)據(jù)傳輸。它基于 7 或 8 個數(shù)據(jù)位、一個偶校驗位和一個或兩個停止位的通用格式。
奇偶校驗位的其他應(yīng)用是 SCSI 總線、PCI 總線和許多微處理器指令高速緩存。因為 L-cache 數(shù)據(jù)只是主存的一個副本,所以如果發(fā)現(xiàn)它被損壞,可以忽略它并重新獲取它。
邏輯實現(xiàn)
用于錯誤檢測的奇偶校驗位的主要優(yōu)點之一是其計算簡單。為了獲得偶校驗,只需要對二進(jìn)制流中的數(shù)據(jù)位進(jìn)行模 2 和或 XOR 即可獲得奇偶校驗位。
一旦獲得偶校驗,奇校驗可以作為偶校驗的倒數(shù)獲得。
如前所述,本應(yīng)用筆記實現(xiàn)了二進(jìn)制奇偶校驗生成器和校驗器的兩種變體。兩者都有一個偶數(shù)輸出位和一個奇數(shù)輸出位,如果檢測到相應(yīng)的奇偶校驗,則將其設(shè)置為高電平。此外,它們有一個啟用輸入。如果使能高,則計算奇偶校驗。否則,兩個奇偶校驗輸出都設(shè)置為低電平。
在并行變體中,生成器或檢查器獲取 9 長度二進(jìn)制流的奇偶校驗位。有了這個長度,它可以被生成器用作 9 位處理器或僅使用 MSB(第 9 位)作為另一個處理器的級聯(lián)輸入的 9 位以上的處理器。
圖 4 顯示了 9 位長度并行輸入奇偶校驗器的邏輯圖。

圖 4.奇偶校驗生成器邏輯圖。
表 1 顯示了奇偶校驗生成器和校驗器的功能表。

在串行變體中,輸入級包括串并轉(zhuǎn)換,因此轉(zhuǎn)換器的輸出連接到奇偶校驗發(fā)生器電路。該方案如圖 5 所示。

圖 5.串行輸入奇偶校驗發(fā)生器示意圖
此變體還包括一個額外的級聯(lián)輸入,因此可以使用多個 8 位奇偶校驗檢查器處理更多位。
串行到并行數(shù)據(jù)轉(zhuǎn)換基于 Dialog 的 AN-1120。
當(dāng)串行輸入引腳上沒有數(shù)據(jù)時,串行總線保持高電平。當(dāng)要發(fā)送一個字節(jié)時,會在該字節(jié)之前發(fā)送一個邏輯低起始位以指示傳輸。之后,發(fā)送八個數(shù)據(jù)位,最后發(fā)送一個停止高電平位。這個序列可以在圖 6 中看到。

圖 6. 串行數(shù)據(jù)幀
在幾個 GreenPAK IC 中,SPI 模塊可用于實現(xiàn)串并轉(zhuǎn)換。串行通信的波特率必須為 9600。
實施下降沿檢測以檢測起始位。當(dāng)檢測到它時,會設(shè)置一個連接標(biāo)志位,以便觸發(fā)兩個計數(shù)器/延遲。其中一個名為 Bit Timer,被配置為具有等于位持續(xù)時間 (1/9600) 的周期。另一個名為幀延遲的計數(shù)器被配置為具有等于 10 位幀周期 (10/9600) 的延遲時間。
使用這些定時器,SPI 模塊被連接,因此串行數(shù)據(jù)輸入引腳連接到 MOSI 輸入,位定時器輸出連接到 CLK。八個數(shù)據(jù)位由 SPI 模塊接收。
附加邏輯用于控制時鐘信號,因此當(dāng)幀周期過去時,SPI 時鐘停止,數(shù)據(jù)保存在寄存器中。
有關(guān) SPI 到并行轉(zhuǎn)換器的更多詳細(xì)信息,請參閱 Dialog 的 AN-1120。
實現(xiàn)和配置
如前所述,奇偶校驗生成器和檢查器有兩種變體,使用兩個不同的 Dialog GreenPAK 實現(xiàn)。
并行輸入變體使用 SLG46536V 實現(xiàn)。
為了實現(xiàn)位反轉(zhuǎn),如圖 4 所示,使用了 9 個 LUT,配置為反相器。這可以在圖 7 中看到。

圖 7.位反相器
通過使用兩個 4 位 LUT,實現(xiàn) XOR 以獲取每個半字節(jié)數(shù)據(jù)的結(jié)果位。它們的配置如圖 8 所示。由于沒有更多的 2 位 LUT 可用,兩個半字節(jié)之間的 XOR 由 3 位 LUT3 處理,第三個輸入連接到 GND。

圖 8. XOR 處理器
為了獲得處理第 9 位輸入的結(jié)果位,通過將輸入 2 連接到地來使用 3 位 LUT11 和 3 位 LUT12。它們的配置如圖 9 和圖 10 所示,分別處理 XOR 和 XNOR。

圖 9.第9 位 XOR

圖 10.第 9 位 XNOR
最后,偶數(shù)位和奇數(shù)位分別使用 3 位 LUT14 和 3 位 LUT15 分別與使能位和 VDD 相乘。這些配置可以在圖 11 和圖 12 中看到。

圖 11.偶數(shù)輸出控制

圖 12.奇數(shù)輸出控制
整個并行輸入奇偶校驗生成器和檢查器設(shè)計如圖 13 所示。

圖 13.并行輸入奇偶校驗生成器和檢查器
串行輸入變體通過 SLG46536V 實現(xiàn)。它有兩個可以互連的矩陣,因此其中一個用于實現(xiàn)串并轉(zhuǎn)換器,另一個用于實現(xiàn)奇偶邏輯。
在圖 14 和圖 15 中,可以看到 SLG46536V 的矩陣 0 與實現(xiàn)的串并轉(zhuǎn)換器。

圖 14.串并轉(zhuǎn)換器(矩陣 0)

圖 15. 串并轉(zhuǎn)換器(矩陣 1)
引腳 10 用作串行數(shù)據(jù)輸入。如前所述,具有延遲輸出的下降沿檢測器通過 P DLY0 實現(xiàn)。該信號用于指示接收開始,由 DFF0 和 DLY6 保持。
一旦傳輸開始,CNT2 產(chǎn)生一個頻率等于 9600 的信號。這是通過對振蕩器的輸出時鐘進(jìn)行分頻來完成的,該時鐘對應(yīng)于由 2 位 L1 控制的內(nèi)部環(huán)形振蕩器。CNT2 配置如圖 16 所示。

圖 16. CNT2 配置
數(shù)據(jù)由 SPI 模塊接收,配置為 S2P 模式,數(shù)據(jù)長度為 8 位。這可以在圖 17 中看到。

圖 17. SPI 配置
接收使能,直到 CNT5 達(dá)到最大計數(shù),該最大計數(shù)被配置為 8/9600 以接收 8 個數(shù)據(jù)位。計數(shù)器使用內(nèi)部 RC 振蕩器 (2 MHz) 除以 24。其配置如圖 18 所示。

圖 18. CNT5 配置
接收到數(shù)據(jù)后,將由矩陣 1 中實現(xiàn)的邏輯進(jìn)行處理。矩陣 1 可以在圖 19 中看到。

圖 19.串行輸入奇偶校驗器
數(shù)據(jù)位來自 SPI 模塊的并行輸出。8 位的 XOR 使用 3 位 LUT10、4 位 LUT1、2 位 LUT4 和 2 位 LUT5 實現(xiàn)。最后,2 位 LUT6 和 2 位 LUT7 分別使用級聯(lián)輸入(引腳 12)實現(xiàn) XOR 和 XNOR。啟用控件由 3 位 LUT8 和 LUT9 進(jìn)行“與”運算。
結(jié)果
為了測試實現(xiàn),分別分析了二進(jìn)制奇偶校驗生成器和校驗器的兩個變體。
通過生成要由生成器處理的已知數(shù)據(jù)來測試并行輸入奇偶校驗生成器,以便檢查輸出。在這種情況下,使用的數(shù)據(jù)是
數(shù)據(jù)
0X1110011
X 會周期性地從 0 變?yōu)?1。這樣,當(dāng) X 為 0 時預(yù)期為奇數(shù)結(jié)果,而當(dāng) X 為 1 時預(yù)期為偶數(shù)結(jié)果。
使用邏輯分析儀測量的輸入信號和奇偶檢測輸出。在圖 20 中,記錄的信號顯示為正確運行。

圖 20.并行輸入奇偶校驗發(fā)生器測試
通過獨立傳輸兩個字節(jié)、處理它們并驗證結(jié)果來測試串行輸入奇偶校驗生成器變體。選擇傳輸?shù)淖止?jié)來分析奇數(shù)字節(jié)和偶數(shù)字節(jié)。
在奇數(shù)數(shù)據(jù)情況下,使用的數(shù)據(jù)是
奇數(shù)數(shù)據(jù)
11001101
圖 21 顯示了使用邏輯分析儀記錄的串行輸入數(shù)據(jù)和奇偶檢測輸出。

圖 21.串行輸入奇偶校驗發(fā)生器奇數(shù)測試
奇數(shù)輸出為低,直到收到奇數(shù)數(shù)據(jù)。之后,奇數(shù)檢測輸出為高電平,偶數(shù)檢測輸出為低電平。
在偶數(shù)數(shù)據(jù)情況下,使用的數(shù)據(jù)是 10011001。
圖 22 顯示了使用邏輯分析儀記錄的串行輸入數(shù)據(jù)和奇偶檢測輸出。

圖 22.串行輸入奇偶校驗發(fā)生器偶數(shù)測試
在這種情況下,先前的奇數(shù)數(shù)據(jù)被重新發(fā)送,因此奇數(shù)輸出為高電平,而偶數(shù)輸出在接收偶數(shù)數(shù)據(jù)之前為低電平。接收到偶數(shù)數(shù)據(jù)后,奇數(shù)檢測輸出為低電平,偶數(shù)檢測輸出為高電平。
結(jié)論
在本應(yīng)用筆記中,我們實現(xiàn)了二進(jìn)制奇偶校驗生成器和檢查器的兩種變體,用作數(shù)據(jù)傳輸?shù)腻e誤檢測技術(shù)。將奇偶校驗位添加到傳輸?shù)臄?shù)據(jù)中,以使 1 的數(shù)量為偶數(shù)或奇數(shù)。該位用于檢測二進(jìn)制數(shù)據(jù)傳輸過程中的錯誤。一些商用 IC 可以用 Dialog GreenPAK 代替,從而可以降低應(yīng)用規(guī)模和成本。這兩個變體顯示了數(shù)據(jù)輸入方法如何可以是并行或串行的。這對于在不同的應(yīng)用程序中應(yīng)用奇偶校驗生成器很有用。
-
二進(jìn)制
+關(guān)注
關(guān)注
2文章
809瀏覽量
43218 -
生成器
+關(guān)注
關(guān)注
7文章
322瀏覽量
22819 -
校驗器
+關(guān)注
關(guān)注
0文章
8瀏覽量
2396
發(fā)布評論請先 登錄
嵌入式里數(shù)據(jù)差錯控制技術(shù)之奇偶校驗
串口通信的奇偶校驗位的兩種類型介紹
二進(jìn)制編碼和二進(jìn)制數(shù)據(jù)
奇偶校驗碼
什么是二進(jìn)制計數(shù)器,二進(jìn)制計數(shù)器原理是什么?
奇偶校驗碼,奇偶校驗碼原理是什么?
奇偶校驗是什么
數(shù)字二進(jìn)制計數(shù)器的設(shè)計和實現(xiàn)
增強(qiáng)FIFO模式下的奇偶校驗
芯教程|平頭哥助力昊芯HX2000系列芯片專題SCI串口通訊奇偶校驗(二)SCI增強(qiáng)FIFO
如何使用GreenPAK實現(xiàn)二進(jìn)制奇偶校驗生成器和檢查器
評論