<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用GreenPAK實現二進制奇偶校驗生成器和檢查器

科技觀察員 ? 來源:allaboutcircuits ? 作者:馬吉迪·法赫姆 ? 2022-04-27 16:43 ? 次閱讀

本應用筆記實現了一個二進制奇偶校驗生成器和校驗器,具有兩個數據輸入變體、一個并行數據輸入和一個串行數據輸入。它描述了實現的邏輯、GreenPAKs 的實現以及獲得的結果。

二進制串行傳輸是使用有線或無線傳輸在設備之間共享信息的最廣泛使用的技術之一。在這些傳輸中,數據錯誤是必須分析以獲得可靠通信系統的最重要問題之一。

奇偶校驗生成/校驗方法是數據傳輸中使用最廣泛的錯誤檢測技術之一。將奇偶校驗位附加到傳輸的數據中,以使二進制數據的 1 之和為偶數或奇數。該位用于檢測二進制數據傳輸過程中的錯誤。

包含數據位以及奇偶校驗位的消息從發送器節點傳輸到接收器節點。在接收方節點中,計算消息中的高位位數。如果這個數字與傳輸的奇偶校驗位不匹配,則意味著接收到的數據有錯誤。

有幾種不同品牌的商業 IC(CD40101、74HC/HCT280)可以實現奇偶校驗生成器/檢查器。補充 Dialog GreenPAK 設計可以對設計的可負擔性、尺寸和模塊化產生積極影響。例如,無論預期的 I/O 是高電平有效、低電平有效還是混合,都可以使用相同的通用 GreenPAK 設計。

在本應用筆記中,實現了由控制信號管理的集成奇偶校驗發生器/校驗器所需的數字邏輯。為此,應用筆記實現了奇偶校驗的兩種變體。第一種變體具有并行輸入,以便同時加載要驗證的數據位。第二個變體實現了一個串行輸入,通過異步串行數據傳輸加載數據。為此,在 GreenPAK 中實現了串并轉換。

為了實現并行輸入二進制奇偶校驗生成器和檢查器,使用了 SLG46536V。為了實現串行輸入變體,使用了 SLG46620V。

數字通信和奇偶校驗位

在數字通信中,奇偶校驗位是添加到二進制流中的位,以確保 1 值位的總數是偶數或奇數。這種技術是一種簡單且廣泛使用的錯誤檢測方法。有兩種校驗位方法,稱為偶校驗位和奇校驗位。

奇校驗位系統包括對數據流中值為 1 的位的出現次數進行計數。如果數字是偶數,則奇偶校驗位值設置為 1,因此包括奇偶校驗位在內的整個流中高位出現的總計數為奇數。如果高位計數為奇數,則奇偶校驗位值為 0。示例如圖 1 所示。

poYBAGJpAkOAHKv4AAAId63FUa0577.jpg

圖 1. 奇校驗二進制系統

偶校驗位方法采用逆邏輯。如果數據流中值為 1 的位計數為偶數,則奇偶校驗位值設置為 0,使包括奇偶校驗在內的整個流中的高位總計數為偶數。如果值為 1 的位計數為奇數,則奇偶校驗位設置為 1,因此整個流具有偶數個高位。

pYYBAGJpAkSAbuOtAAAJwz8Maj4045.jpg

圖 2.系統圖

為了檢測錯誤,接收器必須計算接收到的二進制數據流的奇偶校驗位,并將其與接收到的奇偶校驗位進行比較。如果奇偶校驗位相同,則不會檢測到錯誤。如果它們不同,則檢測到錯誤。

奇偶校驗位僅用于檢測錯誤。它無法糾正任何錯誤,因為無法確定流中哪個位不正確。如果接收到有錯誤的二進制流,接收者必須丟棄它。

這使得奇偶校驗位錯誤方法不適用于高信噪比介質,因為成功傳輸可能需要很長時間。這種方法的優點是只需要一個比特來檢測錯誤,這樣可以增加一個周期內的傳輸次數。

例如,奇校驗位發送器發送先前分析的流。如果流中的某個位發生了變化,則接收方如果將其與發送的校驗位進行比較,則會獲得不同的奇偶校驗位。這種效果如圖 3 所示。

poYBAGJpAkWAYeR0AAALv1cW5VU358.jpg

圖 3.錯誤流的奇偶校驗

奇偶校驗位用于需要簡單的錯誤檢測器并且如果發生錯誤可以重復傳輸的應用。最重要的應用是串行數據傳輸。它基于 7 或 8 個數據位、一個偶校驗位和一個或兩個停止位的通用格式。

奇偶校驗位的其他應用是 SCSI 總線、PCI 總線和許多微處理器指令高速緩存。因為 L-cache 數據只是主存的一個副本,所以如果發現它被損壞,可以忽略它并重新獲取它。

邏輯實現

用于錯誤檢測的奇偶校驗位的主要優點之一是其計算簡單。為了獲得偶校驗,只需要對二進制流中的數據位進行模 2 和或 XOR 即可獲得奇偶校驗位。

一旦獲得偶校驗,奇校驗可以作為偶校驗的倒數獲得。

如前所述,本應用筆記實現了二進制奇偶校驗生成器和校驗器的兩種變體。兩者都有一個偶數輸出位和一個奇數輸出位,如果檢測到相應的奇偶校驗,則將其設置為高電平。此外,它們有一個啟用輸入。如果使能高,則計算奇偶校驗。否則,兩個奇偶校驗輸出都設置為低電平。

在并行變體中,生成器或檢查器獲取 9 長度二進制流的奇偶校驗位。有了這個長度,它可以被生成器用作 9 位處理器或僅使用 MSB(第 9 位)作為另一個處理器的級聯輸入的 9 位以上的處理器。

圖 4 顯示了 9 位長度并行輸入奇偶校驗器的邏輯圖。

pYYBAGJpAkaAL6iSAABDCZ_98Do511.jpg

圖 4.奇偶校驗生成器邏輯圖。

表 1 顯示了奇偶校驗生成器和校驗器的功能表。

poYBAGJpAkeABs8bAAApu1Xcj84140.jpg

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

pYYBAGJpAkiADqK3AAAulvHMdlw720.jpg

圖 5.串行輸入奇偶校驗發生器示意圖

此變體還包括一個額外的級聯輸入,因此可以使用多個 8 位奇偶校驗檢查器處理更多位。

串行到并行數據轉換基于 Dialog 的 AN-1120。

當串行輸入引腳上沒有數據時,串行總線保持高電平。當要發送一個字節時,會在該字節之前發送一個邏輯低起始位以指示傳輸。之后,發送八個數據位,最后發送一個停止高電平位。這個序列可以在圖 6 中看到。

poYBAGJpAkiAaumvAAAdsO8DCXY655.jpg

圖 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 中看到。

pYYBAGJpAkmASHqFAABT_yUT_9A350.jpg

圖 7.位反相器

通過使用兩個 4 位 LUT,實現 XOR 以獲取每個半字節數據的結果位。它們的配置如圖 8 所示。由于沒有更多的 2 位 LUT 可用,兩個半字節之間的 XOR 由 3 位 LUT3 處理,第三個輸入連接到 GND。

poYBAGJpAkqACJ4OAABiz38GD5Q398.jpg

圖 8. XOR 處理器

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

pYYBAGJpAkuAWC_WAABgLlIvDcY334.jpg

圖 9.第9 位 XOR

poYBAGJpAkyAYzkqAABegBbqoms445.jpg

圖 10.第 9 位 XNOR

最后,偶數位和奇數位分別使用 3 位 LUT14 和 3 位 LUT15 分別與使能位和 VDD 相乘。這些配置可以在圖 11 和圖 12 中看到。

pYYBAGJpAk2AXo08AABkFpW6lW8085.jpg

圖 11.偶數輸出控制

poYBAGJpAk6ACZc4AABc7lXtO70924.jpg

圖 12.奇數輸出控制

整個并行輸入奇偶校驗生成器和檢查器設計如圖 13 所示。

pYYBAGJpAk-AVoBPAABwlXbGWoM185.jpg

圖 13.并行輸入奇偶校驗生成器和檢查器

串行輸入變體通過 SLG46536V 實現。它有兩個可以互連的矩陣,因此其中一個用于實現串并轉換器,另一個用于實現奇偶邏輯。

在圖 14 和圖 15 中,可以看到 SLG46536V 的矩陣 0 與實現的串并轉換器。

poYBAGJpAlCAAXJvAABiDWtQjdQ754.jpg

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

pYYBAGJpAlGAF-4LAABgpguGw8I374.jpg

圖 15. 串并轉換器(矩陣 1)

引腳 10 用作串行數據輸入。如前所述,具有延遲輸出的下降沿檢測器通過 P DLY0 實現。該信號用于指示接收開始,由 DFF0 和 DLY6 保持。

一旦傳輸開始,CNT2 產生一個頻率等于 9600 的信號。這是通過對振蕩器的輸出時鐘進行分頻來完成的,該時鐘對應于由 2 位 L1 控制的內部環形振蕩器。CNT2 配置如圖 16 所示。

poYBAGJpAlKAe_ybAABL8Fa8Wsw880.jpg

圖 16. CNT2 配置

數據由 SPI 模塊接收,配置為 S2P 模式,數據長度為 8 位。這可以在圖 17 中看到。

poYBAGJpAlOAe5iXAABL8Fa8Wsw425.jpg

圖 17. SPI 配置

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

pYYBAGJpAlSAREE8AABKuYA7U9M796.jpg

圖 18. CNT5 配置

接收到數據后,將由矩陣 1 中實現的邏輯進行處理。矩陣 1 可以在圖 19 中看到。

poYBAGJpAlSADagCAABieZ-agz0937.jpg

圖 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 中,記錄的信號顯示為正確運行。

poYBAGJpAlWAdrvsAABGcR1Q-ds396.jpg

圖 20.并行輸入奇偶校驗發生器測試

通過獨立傳輸兩個字節、處理它們并驗證結果來測試串行輸入奇偶校驗生成器變體。選擇傳輸的字節來分析奇數字節和偶數字節。

在奇數數據情況下,使用的數據是

奇數數據

11001101

圖 21 顯示了使用邏輯分析儀記錄的串行輸入數據和奇偶檢測輸出。

pYYBAGJpAlaARxTJAAAcS3uMsf8728.jpg

圖 21.串行輸入奇偶校驗發生器奇數測試

奇數輸出為低,直到收到奇數數據。之后,奇數檢測輸出為高電平,偶數檢測輸出為低電平。

在偶數數據情況下,使用的數據是 10011001。

圖 22 顯示了使用邏輯分析儀記錄的串行輸入數據和奇偶檢測輸出。

poYBAGJpAleARi3eAAAb949uwKk755.jpg

圖 22.串行輸入奇偶校驗發生器偶數測試

在這種情況下,先前的奇數數據被重新發送,因此奇數輸出為高電平,而偶數輸出在接收偶數數據之前為低電平。接收到偶數數據后,奇數檢測輸出為低電平,偶數檢測輸出為高電平。

結論

在本應用筆記中,我們實現了二進制奇偶校驗生成器和檢查器的兩種變體,用作數據傳輸的錯誤檢測技術。將奇偶校驗位添加到傳輸的數據中,以使 1 的數量為偶數或奇數。該位用于檢測二進制數據傳輸過程中的錯誤。一些商用 IC 可以用 Dialog GreenPAK 代替,從而可以降低應用規模和成本。這兩個變體顯示了數據輸入方法如何可以是并行或串行的。這對于在不同的應用程序中應用奇偶校驗生成器很有用。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 二進制
    +關注

    關注

    2

    文章

    719

    瀏覽量

    41335
  • 生成器
    +關注

    關注

    7

    文章

    306

    瀏覽量

    20530
  • 校驗器
    +關注

    關注

    0

    文章

    7

    瀏覽量

    2189
收藏 人收藏

    評論

    相關推薦

    常用編碼(BCD編碼、余3碼、格雷反射碼、奇偶校驗碼)

    使用8421BCD碼時一定要注意其有效的編碼僅十個,即:0000~1001。四位二進制數的其余六個編碼1010,1011,1100,1101,1110,1111不是有效編碼。 2、余3碼    余3碼也是一種
    發表于 04-11 10:00

    嵌入式里數據差錯控制技術之奇偶校驗

      一般在同步傳輸方式中常采用奇校驗,而在異步傳輸方式中常采用偶校驗。1.2 奇偶校驗位為了實現奇偶校驗,通常會在傳輸的這組
    發表于 04-16 09:25

    串口通信的奇偶校驗位的兩種類型介紹

      奇偶校驗位是一個二進制數,指示給定位置號的二進制數中的1的數目是奇數還是偶數。奇偶校驗位是最簡單的錯誤檢測代碼。奇偶校驗位有兩種類型:偶
    發表于 09-04 17:54

    奇偶校驗

    奇偶校驗碼   奇偶校驗碼是一種開銷最小,能發現數據代碼中一位出錯情況的編碼,常用于存儲器讀寫檢查,或ASCII字符、其它類
    發表于 10-13 16:42 ?4917次閱讀

    奇偶校驗器,奇偶校驗器是什么意思

    奇偶校驗器,奇偶校驗器是什么意思 奇偶校驗器定義 為了系統的可靠性,對于位數
    發表于 03-08 17:32 ?2095次閱讀

    奇偶校驗碼,奇偶校驗碼原理是什么?

    奇偶校驗碼,奇偶校驗碼原理是什么? 奇偶校驗碼是奇校驗碼和偶校驗碼的統稱,是一種最基本的檢錯碼。它是由n-1位信息元和1位
    發表于 03-17 17:39 ?6.2w次閱讀

    奇偶校驗器_奇偶校驗設計程序

    本內容提供了奇偶校驗器_奇偶校驗設計的程序代碼,希望對大家有幫助
    發表于 11-11 10:04 ?5569次閱讀

    奇偶校驗是什么

    校驗依據:判斷傳輸的一組二進制數據中”1”的個數是奇數還是偶數 奇校驗:如果以二進制數據中1的個數是奇數為依據,則是奇校驗
    發表于 07-31 17:35 ?4次下載
    <b class='flag-5'>奇偶校驗</b>是什么

    stm32串口奇偶校驗

    STM32串口通信使用奇偶校驗的時候應該設置數據位長度9bit,奇偶校驗是硬件完成的,并且stm32用校驗位時,數據位要選9位,8位會出現故障可能。
    的頭像 發表于 07-23 09:26 ?1w次閱讀

    增強FIFO模式下的奇偶校驗

    自昊芯推出專題講解SCI串口通訊奇偶校驗,分為兩期講解,上期主要講解標準SCI模式下的奇偶校驗,本期主要講解增強FIFO模式下的奇偶校驗。
    的頭像 發表于 11-02 09:30 ?767次閱讀

    9 位奇/偶校驗生成器/校驗器-74HC_HCT280

    9 位奇/偶校驗生成器/校驗器-74HC_HCT280
    發表于 02-15 19:53 ?0次下載
    9 位奇/偶<b class='flag-5'>校驗</b><b class='flag-5'>生成器</b>/<b class='flag-5'>校驗</b>器-74HC_HCT280

    芯教程|平頭哥助力昊芯HX2000系列芯片專題SCI串口通訊奇偶校驗(二)SCI增強FIFO

    [PARITYENA]使能,啟動奇偶校驗;采用SCICCR[PARITY]選擇,使用奇或偶校驗,對每個字符增加一個額外的校驗位,以校驗收發數據的二進
    的頭像 發表于 11-08 10:08 ?483次閱讀
    芯教程|平頭哥助力昊芯HX2000系列芯片專題SCI串口通訊<b class='flag-5'>奇偶校驗</b>(二)SCI增強FIFO

    什么是奇偶校驗 奇偶校驗的基本原理 奇偶校驗電路什么意思

    什么是奇偶校驗 奇偶校驗的基本原理 奇偶校驗電路什么意思? 奇偶校驗是一種用于檢測二進制數據中錯誤的方法。它的基本原理是在
    的頭像 發表于 10-17 16:16 ?2999次閱讀

    什么是奇校驗和偶校驗?常見的奇偶校驗方式有哪些?

    校驗,以保證正確性。常用的校驗方法有奇偶校驗、循環冗余校驗(CRC)、海明碼等。 2. 奇偶校驗是一種最簡單的
    的頭像 發表于 10-17 16:28 ?8913次閱讀

    奇偶校驗和crc校驗的區別 CRC校驗奇偶校驗之間有什么關系?

    奇偶校驗和crc校驗的區別 CRC校驗奇偶校驗之間有什么關系? 奇偶校驗和 CRC(Cyclic Redundancy Check)
    的頭像 發表于 10-17 16:28 ?2682次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>