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

二進(jìn)制編碼和二進(jìn)制數(shù)據(jù)
奇偶校驗(yàn)碼
什么是二進(jìn)制計(jì)數(shù)器,二進(jìn)制計(jì)數(shù)器原理是什么?
奇偶校驗(yàn)器,奇偶校驗(yàn)器是什么意思
奇偶校驗(yàn)碼,奇偶校驗(yàn)碼原理是什么?
奇偶校驗(yàn)器_奇偶校驗(yàn)設(shè)計(jì)程序
奇偶校驗(yàn)是什么

數(shù)字二進(jìn)制計(jì)數(shù)器的設(shè)計(jì)和實(shí)現(xiàn)

增強(qiáng)FIFO模式下的奇偶校驗(yàn)
芯教程|平頭哥助力昊芯HX2000系列芯片專題SCI串口通訊奇偶校驗(yàn)(二)SCI增強(qiáng)FIFO

評論