本應用筆記實現了一個二進制奇偶校驗生成器和校驗器,具有兩個數據輸入變體、一個并行數據輸入和一個串行數據輸入。它描述了實現的邏輯、GreenPAKs 的實現以及獲得的結果。
二進制串行傳輸是使用有線或無線傳輸在設備之間共享信息的最廣泛使用的技術之一。在這些傳輸中,數據錯誤是必須分析以獲得可靠通信系統的最重要問題之一。
奇偶校驗生成/校驗方法是數據傳輸中使用最廣泛的錯誤檢測技術之一。將奇偶校驗位附加到傳輸的數據中,以使二進制數據的 1 之和為偶數或奇數。該位用于檢測二進制數據傳輸過程中的錯誤。
包含數據位以及奇偶校驗位的消息從發送器節點傳輸到接收器節點。在接收方節點中,計算消息中的高位位數。如果這個數字與傳輸的奇偶校驗位不匹配,則意味著接收到的數據有錯誤。
有幾種不同品牌的商業 IC(CD40101、74HC/HCT280)可以實現奇偶校驗生成器/檢查器。補充 Dialog GreenPAK 設計可以對設計的可負擔性、尺寸和模塊化產生積極影響。例如,無論預期的 I/O 是高電平有效、低電平有效還是混合,都可以使用相同的通用 GreenPAK 設計。
在本應用筆記中,實現了由控制信號管理的集成奇偶校驗發生器/校驗器所需的數字邏輯。為此,應用筆記實現了奇偶校驗的兩種變體。第一種變體具有并行輸入,以便同時加載要驗證的數據位。第二個變體實現了一個串行輸入,通過異步串行數據傳輸加載數據。為此,在 GreenPAK 中實現了串并轉換。
為了實現并行輸入二進制奇偶校驗生成器和檢查器,使用了 SLG46536V。為了實現串行輸入變體,使用了 SLG46620V。
數字通信和奇偶校驗位
在數字通信中,奇偶校驗位是添加到二進制流中的位,以確保 1 值位的總數是偶數或奇數。這種技術是一種簡單且廣泛使用的錯誤檢測方法。有兩種校驗位方法,稱為偶校驗位和奇校驗位。
奇校驗位系統包括對數據流中值為 1 的位的出現次數進行計數。如果數字是偶數,則奇偶校驗位值設置為 1,因此包括奇偶校驗位在內的整個流中高位出現的總計數為奇數。如果高位計數為奇數,則奇偶校驗位值為 0。示例如圖 1 所示。
圖 1. 奇校驗二進制系統
偶校驗位方法采用逆邏輯。如果數據流中值為 1 的位計數為偶數,則奇偶校驗位值設置為 0,使包括奇偶校驗在內的整個流中的高位總計數為偶數。如果值為 1 的位計數為奇數,則奇偶校驗位設置為 1,因此整個流具有偶數個高位。
圖 2.系統圖
為了檢測錯誤,接收器必須計算接收到的二進制數據流的奇偶校驗位,并將其與接收到的奇偶校驗位進行比較。如果奇偶校驗位相同,則不會檢測到錯誤。如果它們不同,則檢測到錯誤。
奇偶校驗位僅用于檢測錯誤。它無法糾正任何錯誤,因為無法確定流中哪個位不正確。如果接收到有錯誤的二進制流,接收者必須丟棄它。
這使得奇偶校驗位錯誤方法不適用于高信噪比介質,因為成功傳輸可能需要很長時間。這種方法的優點是只需要一個比特來檢測錯誤,這樣可以增加一個周期內的傳輸次數。
例如,奇校驗位發送器發送先前分析的流。如果流中的某個位發生了變化,則接收方如果將其與發送的校驗位進行比較,則會獲得不同的奇偶校驗位。這種效果如圖 3 所示。
圖 3.錯誤流的奇偶校驗
奇偶校驗位用于需要簡單的錯誤檢測器并且如果發生錯誤可以重復傳輸的應用。最重要的應用是串行數據傳輸。它基于 7 或 8 個數據位、一個偶校驗位和一個或兩個停止位的通用格式。
奇偶校驗位的其他應用是 SCSI 總線、PCI 總線和許多微處理器指令高速緩存。因為 L-cache 數據只是主存的一個副本,所以如果發現它被損壞,可以忽略它并重新獲取它。
邏輯實現
用于錯誤檢測的奇偶校驗位的主要優點之一是其計算簡單。為了獲得偶校驗,只需要對二進制流中的數據位進行模 2 和或 XOR 即可獲得奇偶校驗位。
一旦獲得偶校驗,奇校驗可以作為偶校驗的倒數獲得。
如前所述,本應用筆記實現了二進制奇偶校驗生成器和校驗器的兩種變體。兩者都有一個偶數輸出位和一個奇數輸出位,如果檢測到相應的奇偶校驗,則將其設置為高電平。此外,它們有一個啟用輸入。如果使能高,則計算奇偶校驗。否則,兩個奇偶校驗輸出都設置為低電平。
在并行變體中,生成器或檢查器獲取 9 長度二進制流的奇偶校驗位。有了這個長度,它可以被生成器用作 9 位處理器或僅使用 MSB(第 9 位)作為另一個處理器的級聯輸入的 9 位以上的處理器。
圖 4 顯示了 9 位長度并行輸入奇偶校驗器的邏輯圖。
圖 4.奇偶校驗生成器邏輯圖。
表 1 顯示了奇偶校驗生成器和校驗器的功能表。
在串行變體中,輸入級包括串并轉換,因此轉換器的輸出連接到奇偶校驗發生器電路。該方案如圖 5 所示。
圖 5.串行輸入奇偶校驗發生器示意圖
此變體還包括一個額外的級聯輸入,因此可以使用多個 8 位奇偶校驗檢查器處理更多位。
串行到并行數據轉換基于 Dialog 的 AN-1120。
當串行輸入引腳上沒有數據時,串行總線保持高電平。當要發送一個字節時,會在該字節之前發送一個邏輯低起始位以指示傳輸。之后,發送八個數據位,最后發送一個停止高電平位。這個序列可以在圖 6 中看到。
圖 6. 串行數據幀
在幾個 GreenPAK IC 中,SPI 模塊可用于實現串并轉換。串行通信的波特率必須為 9600。
實施下降沿檢測以檢測起始位。當檢測到它時,會設置一個連接標志位,以便觸發兩個計數器/延遲。其中一個名為 Bit Timer,被配置為具有等于位持續時間 (1/9600) 的周期。另一個名為幀延遲的計數器被配置為具有等于 10 位幀周期 (10/9600) 的延遲時間。
使用這些定時器,SPI 模塊被連接,因此串行數據輸入引腳連接到 MOSI 輸入,位定時器輸出連接到 CLK。八個數據位由 SPI 模塊接收。
附加邏輯用于控制時鐘信號,因此當幀周期過去時,SPI 時鐘停止,數據保存在寄存器中。
有關 SPI 到并行轉換器的更多詳細信息,請參閱 Dialog 的 AN-1120。
實現和配置
如前所述,奇偶校驗生成器和檢查器有兩種變體,使用兩個不同的 Dialog GreenPAK 實現。
并行輸入變體使用 SLG46536V 實現。
為了實現位反轉,如圖 4 所示,使用了 9 個 LUT,配置為反相器。這可以在圖 7 中看到。
圖 7.位反相器
通過使用兩個 4 位 LUT,實現 XOR 以獲取每個半字節數據的結果位。它們的配置如圖 8 所示。由于沒有更多的 2 位 LUT 可用,兩個半字節之間的 XOR 由 3 位 LUT3 處理,第三個輸入連接到 GND。
圖 8. XOR 處理器
為了獲得處理第 9 位輸入的結果位,通過將輸入 2 連接到地來使用 3 位 LUT11 和 3 位 LUT12。它們的配置如圖 9 和圖 10 所示,分別處理 XOR 和 XNOR。
圖 9.第9 位 XOR
圖 10.第 9 位 XNOR
最后,偶數位和奇數位分別使用 3 位 LUT14 和 3 位 LUT15 分別與使能位和 VDD 相乘。這些配置可以在圖 11 和圖 12 中看到。
圖 11.偶數輸出控制
圖 12.奇數輸出控制
整個并行輸入奇偶校驗生成器和檢查器設計如圖 13 所示。
圖 13.并行輸入奇偶校驗生成器和檢查器
串行輸入變體通過 SLG46536V 實現。它有兩個可以互連的矩陣,因此其中一個用于實現串并轉換器,另一個用于實現奇偶邏輯。
在圖 14 和圖 15 中,可以看到 SLG46536V 的矩陣 0 與實現的串并轉換器。
圖 14.串并轉換器(矩陣 0)
圖 15. 串并轉換器(矩陣 1)
引腳 10 用作串行數據輸入。如前所述,具有延遲輸出的下降沿檢測器通過 P DLY0 實現。該信號用于指示接收開始,由 DFF0 和 DLY6 保持。
一旦傳輸開始,CNT2 產生一個頻率等于 9600 的信號。這是通過對振蕩器的輸出時鐘進行分頻來完成的,該時鐘對應于由 2 位 L1 控制的內部環形振蕩器。CNT2 配置如圖 16 所示。
圖 16. CNT2 配置
數據由 SPI 模塊接收,配置為 S2P 模式,數據長度為 8 位。這可以在圖 17 中看到。
圖 17. SPI 配置
接收使能,直到 CNT5 達到最大計數,該最大計數被配置為 8/9600 以接收 8 個數據位。計數器使用內部 RC 振蕩器 (2 MHz) 除以 24。其配置如圖 18 所示。
圖 18. CNT5 配置
接收到數據后,將由矩陣 1 中實現的邏輯進行處理。矩陣 1 可以在圖 19 中看到。
圖 19.串行輸入奇偶校驗器
數據位來自 SPI 模塊的并行輸出。8 位的 XOR 使用 3 位 LUT10、4 位 LUT1、2 位 LUT4 和 2 位 LUT5 實現。最后,2 位 LUT6 和 2 位 LUT7 分別使用級聯輸入(引腳 12)實現 XOR 和 XNOR。啟用控件由 3 位 LUT8 和 LUT9 進行“與”運算。
結果
為了測試實現,分別分析了二進制奇偶校驗生成器和校驗器的兩個變體。
通過生成要由生成器處理的已知數據來測試并行輸入奇偶校驗生成器,以便檢查輸出。在這種情況下,使用的數據是
數據
0X1110011
X 會周期性地從 0 變為 1。這樣,當 X 為 0 時預期為奇數結果,而當 X 為 1 時預期為偶數結果。
使用邏輯分析儀測量的輸入信號和奇偶檢測輸出。在圖 20 中,記錄的信號顯示為正確運行。
圖 20.并行輸入奇偶校驗發生器測試
通過獨立傳輸兩個字節、處理它們并驗證結果來測試串行輸入奇偶校驗生成器變體。選擇傳輸的字節來分析奇數字節和偶數字節。
在奇數數據情況下,使用的數據是
奇數數據
11001101
圖 21 顯示了使用邏輯分析儀記錄的串行輸入數據和奇偶檢測輸出。
圖 21.串行輸入奇偶校驗發生器奇數測試
奇數輸出為低,直到收到奇數數據。之后,奇數檢測輸出為高電平,偶數檢測輸出為低電平。
在偶數數據情況下,使用的數據是 10011001。
圖 22 顯示了使用邏輯分析儀記錄的串行輸入數據和奇偶檢測輸出。
圖 22.串行輸入奇偶校驗發生器偶數測試
在這種情況下,先前的奇數數據被重新發送,因此奇數輸出為高電平,而偶數輸出在接收偶數數據之前為低電平。接收到偶數數據后,奇數檢測輸出為低電平,偶數檢測輸出為高電平。
結論
在本應用筆記中,我們實現了二進制奇偶校驗生成器和檢查器的兩種變體,用作數據傳輸的錯誤檢測技術。將奇偶校驗位添加到傳輸的數據中,以使 1 的數量為偶數或奇數。該位用于檢測二進制數據傳輸過程中的錯誤。一些商用 IC 可以用 Dialog GreenPAK 代替,從而可以降低應用規模和成本。這兩個變體顯示了數據輸入方法如何可以是并行或串行的。這對于在不同的應用程序中應用奇偶校驗生成器很有用。
-
二進制
+關注
關注
2文章
719瀏覽量
41335 -
生成器
+關注
關注
7文章
306瀏覽量
20530 -
校驗器
+關注
關注
0文章
7瀏覽量
2189
發布評論請先 登錄
相關推薦
評論