0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

串口通信校驗(yàn)方式:奇偶校驗(yàn)、累加和校驗(yàn)

FPGA設(shè)計(jì)論壇 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 作者:FPGA設(shè)計(jì)論壇 ? 2022-04-12 10:09 ? 次閱讀

串口通信校驗(yàn)方式:奇偶校驗(yàn)、累加和校驗(yàn)

利用串口傳輸數(shù)據(jù)時(shí),近距離傳輸還好,遠(yuǎn)距離傳輸由于線路長(zhǎng)度影響,可能會(huì)使信號(hào)在傳輸過(guò)程中出現(xiàn)不可預(yù)知的錯(cuò)誤,為了達(dá)到通信的穩(wěn)定性,在遠(yuǎn)距離通信時(shí)一般要引入一種校驗(yàn)方式來(lái)去除干擾。

這里主要介紹幾種常見(jiàn)的校驗(yàn)方式,也是我們串口通訊板子上需要添加的幾種校驗(yàn)方式。

即奇校驗(yàn)ODD,偶校驗(yàn)EVEN,累加和校驗(yàn),CRC循環(huán)碼冗余碼校驗(yàn)

方便簡(jiǎn)單的奇偶校驗(yàn)

奇偶校驗(yàn)需要一位校驗(yàn)位,即使用串口通信的方式2或方式3(8位數(shù)據(jù)位+1位校驗(yàn)位)。

奇校驗(yàn)(odd parity):讓傳輸?shù)臄?shù)據(jù)(包含校驗(yàn)位)中1的個(gè)數(shù)為奇數(shù)。

即:如果傳輸字節(jié)中1的個(gè)數(shù)是偶數(shù),則校驗(yàn)位為“1”,奇數(shù)相反。

以發(fā)送字符:10101010為例

f82feeb6-b9c6-11ec-aa7f-dac502259ad0.jpg

偶校驗(yàn)(even parity):讓傳輸?shù)臄?shù)據(jù)(包含校驗(yàn)位)中1的個(gè)數(shù)為偶數(shù)。

即:如果傳輸字節(jié)中1的個(gè)數(shù)是偶數(shù),則校驗(yàn)位為“0”,奇數(shù)相反。

還是以發(fā)送字符:10101010為例

f843e2e0-b9c6-11ec-aa7f-dac502259ad0.jpg

數(shù)據(jù)和校驗(yàn)位發(fā)送給接受方后,接收方再次對(duì)數(shù)據(jù)中1的個(gè)數(shù)進(jìn)行計(jì)算,如果為奇數(shù)則校驗(yàn)通過(guò),表示此次傳輸過(guò)程未發(fā)生錯(cuò)誤。如果不是奇數(shù),則表示有錯(cuò)誤發(fā)生,此時(shí)接收方可以向發(fā)送方發(fā)送請(qǐng)求,要求重新發(fā)送一遍數(shù)據(jù)。

優(yōu)缺點(diǎn):

奇偶校驗(yàn)的檢錯(cuò)率只有50%,因?yàn)橹挥衅鏀?shù)個(gè)數(shù)據(jù)位發(fā)生變化能檢測(cè)到,如果偶數(shù)個(gè)數(shù)據(jù)位發(fā)生變化則無(wú)能為力了╮(╯﹏╰)╭

奇偶校驗(yàn)每傳輸一個(gè)字節(jié)都需要加一位校驗(yàn)位,對(duì)傳輸效率影響很大。

奇偶校驗(yàn)只能發(fā)現(xiàn)錯(cuò)誤,但不能糾正錯(cuò)誤,也就是說(shuō)它只能告訴你出錯(cuò)了,但不能告訴你怎么出錯(cuò)了,一旦發(fā)現(xiàn)錯(cuò)誤,只好重發(fā)。

雖然奇偶校驗(yàn)有很多缺點(diǎn),但因?yàn)槠涫褂闷饋?lái)十分簡(jiǎn)單,故目前仍被廣泛使用。

應(yīng)用:

如何用編程確定一個(gè)字節(jié)中“1”個(gè)數(shù)的奇偶性?我們可以利用二進(jìn)制數(shù)相加的特點(diǎn):

0+0=0、1+0=1、1+1=0

可以看出,如果我們將一個(gè)字節(jié)的所有位相加

有奇數(shù)個(gè)“1”的字節(jié)的和為1

有偶數(shù)個(gè)“1”的字節(jié)的和為0

由此即可通過(guò)編程完成判斷。實(shí)際應(yīng)用中,實(shí)現(xiàn)方法很多,但這是相對(duì)簡(jiǎn)單的一種,這里不再贅述。

累加和校驗(yàn)

所謂的累加和校驗(yàn)有很多種,最常見(jiàn)的一種是在每次通信數(shù)據(jù)包最后都加一個(gè)字節(jié)的校驗(yàn)數(shù)據(jù),這個(gè)校驗(yàn)字節(jié)里的數(shù)據(jù)是通信數(shù)據(jù)包里所有數(shù)據(jù)的不進(jìn)位累加和。例如:

f85f7bea-b9c6-11ec-aa7f-dac502259ad0.jpg

接收方接收到數(shù)據(jù)后同樣對(duì)一個(gè)數(shù)據(jù)包的數(shù)據(jù)進(jìn)行不進(jìn)位累加和計(jì)算,如果累加出的結(jié)果與校驗(yàn)位相同的話就認(rèn)為傳輸?shù)臄?shù)據(jù)沒(méi)有錯(cuò)誤。

優(yōu)缺點(diǎn):

實(shí)現(xiàn)起來(lái)方便簡(jiǎn)單,被廣泛運(yùn)用。

檢錯(cuò)率一般,例如一個(gè)字節(jié)多1,一個(gè)字節(jié)少1,則會(huì)出現(xiàn)誤判。

和奇偶校驗(yàn)一樣,只能發(fā)現(xiàn)錯(cuò)誤,但不能糾正錯(cuò)誤。

另外,累加和校驗(yàn)的數(shù)據(jù)傳輸格式可以表示為:通訊數(shù)據(jù)+校驗(yàn)數(shù)據(jù)。這與我們之后要說(shuō)的CRC循環(huán)冗余碼校驗(yàn)是相同的。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1626

    瀏覽量

    55526
  • 串口傳輸
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    1797

原文標(biāo)題:FPGA學(xué)習(xí)-串口通信校驗(yàn)方式:奇偶校驗(yàn)、累加和校驗(yàn)

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    串口通信奇偶校驗(yàn)問(wèn)題

    求助!請(qǐng)問(wèn)串口通信模式三帶奇偶校驗(yàn)的程序,在串口調(diào)試助手上選擇奇校驗(yàn)為什么單片機(jī)接收不到?多謝各位大神指導(dǎo)!/*模式3 接收*/uchar
    發(fā)表于 01-19 17:19

    奇偶校驗(yàn)

    奇偶校驗(yàn)碼   奇偶校驗(yàn)碼是一種開(kāi)銷最小,能發(fā)現(xiàn)數(shù)據(jù)代碼中一位出錯(cuò)情況的編碼,常用于存儲(chǔ)器讀寫檢查,或ASCII字符、其它類
    發(fā)表于 10-13 16:42 ?5352次閱讀

    奇偶校驗(yàn)器,奇偶校驗(yàn)器是什么意思

    奇偶校驗(yàn)器,奇偶校驗(yàn)器是什么意思 奇偶校驗(yàn)器定義 為了系統(tǒng)的可靠性,對(duì)于位數(shù)
    發(fā)表于 03-08 17:32 ?2223次閱讀

    奇偶校驗(yàn)碼,奇偶校驗(yàn)碼原理是什么?

    奇偶校驗(yàn)碼,奇偶校驗(yàn)碼原理是什么? 奇偶校驗(yàn)碼是奇校驗(yàn)碼和偶校驗(yàn)碼的統(tǒng)稱,是一種最基本的檢錯(cuò)碼。它是由n-1位信息元和1位
    發(fā)表于 03-17 17:39 ?6.3w次閱讀

    奇偶校驗(yàn)器_奇偶校驗(yàn)設(shè)計(jì)程序

    本內(nèi)容提供了奇偶校驗(yàn)器_奇偶校驗(yàn)設(shè)計(jì)的程序代碼,希望對(duì)大家有幫助
    發(fā)表于 11-11 10:04 ?5723次閱讀

    循環(huán)冗余校驗(yàn)奇偶校驗(yàn)累加和校驗(yàn)等知識(shí)分享

    CRC校驗(yàn)(循環(huán)冗余校驗(yàn))是數(shù)據(jù)通訊中最常采用的校驗(yàn)方式。在嵌入式軟件開(kāi)發(fā)中,經(jīng)常要用到CRC
    的頭像 發(fā)表于 11-08 09:31 ?8737次閱讀
    循環(huán)冗余<b class='flag-5'>校驗(yàn)</b><b class='flag-5'>奇偶校驗(yàn)</b><b class='flag-5'>累加</b><b class='flag-5'>和校驗(yàn)</b>等知識(shí)分享

    stm32串口奇偶校驗(yàn)

    STM32串口通信使用奇偶校驗(yàn)的時(shí)候應(yīng)該設(shè)置數(shù)據(jù)位長(zhǎng)度9bit,奇偶校驗(yàn)是硬件完成的,并且stm32用校驗(yàn)位時(shí),數(shù)據(jù)位要選9位,8位會(huì)出現(xiàn)故
    的頭像 發(fā)表于 07-23 09:26 ?1.1w次閱讀

    stm32 usart奇偶校驗(yàn)如何配置

    stm32 usart奇偶校驗(yàn)如何配置?或許你在stm32 usart奇偶校驗(yàn)過(guò)程中會(huì)遇到如下一些坑,stm32 usart偶校驗(yàn)錯(cuò)誤標(biāo)志位以及出現(xiàn)偶校驗(yàn)錯(cuò)誤,
    的頭像 發(fā)表于 07-23 09:55 ?7563次閱讀
    stm32 usart<b class='flag-5'>奇偶校驗(yàn)</b>如何配置

    奇偶校驗(yàn)的優(yōu)缺點(diǎn)及奇偶校驗(yàn)代碼實(shí)現(xiàn)

    奇偶校驗(yàn)需要一位校驗(yàn)位,即使用串口通信方式2或方式3(8位數(shù)據(jù)位+1位
    的頭像 發(fā)表于 06-18 18:14 ?1.5w次閱讀
    <b class='flag-5'>奇偶校驗(yàn)</b>的優(yōu)缺點(diǎn)及<b class='flag-5'>奇偶校驗(yàn)</b>代碼實(shí)現(xiàn)

    增強(qiáng)FIFO模式下的奇偶校驗(yàn)

    自昊芯推出專題講解SCI串口通訊奇偶校驗(yàn),分為兩期講解,上期主要講解標(biāo)準(zhǔn)SCI模式下的奇偶校驗(yàn),本期主要講解增強(qiáng)FIFO模式下的奇偶校驗(yàn)。
    的頭像 發(fā)表于 11-02 09:30 ?1049次閱讀

    FPGA奇偶校驗(yàn)的基本原理及實(shí)現(xiàn)方法

    在數(shù)字電路中,數(shù)據(jù)的正確性非常重要。為了保證數(shù)據(jù)的正確性,在傳輸數(shù)據(jù)時(shí)需要添加一些冗余信息,以便在接收端進(jìn)行校驗(yàn)。其中一種常用的校驗(yàn)方式奇偶校驗(yàn)(Parity Check)。本文將介紹奇偶校
    的頭像 發(fā)表于 05-14 14:59 ?3050次閱讀
    FPGA<b class='flag-5'>奇偶校驗(yàn)</b>的基本原理及實(shí)現(xiàn)方法

    什么是奇偶校驗(yàn) 奇偶校驗(yàn)的基本原理 奇偶校驗(yàn)電路什么意思

    什么是奇偶校驗(yàn) 奇偶校驗(yàn)的基本原理 奇偶校驗(yàn)電路什么意思? 奇偶校驗(yàn)是一種用于檢測(cè)二進(jìn)制數(shù)據(jù)中錯(cuò)誤的方法。它的基本原理是在二進(jìn)制數(shù)據(jù)的末尾添加一個(gè)額外的位,使得數(shù)據(jù)中二進(jìn)制 1 的數(shù)量
    的頭像 發(fā)表于 10-17 16:16 ?3735次閱讀

    什么是奇偶校驗(yàn)電路?奇偶校驗(yàn)器是時(shí)序邏輯電路嗎?

    什么是奇偶校驗(yàn)電路?奇偶校驗(yàn)器是時(shí)序邏輯電路嗎? 奇偶校驗(yàn)電路是一種數(shù)字電路,在數(shù)據(jù)傳輸過(guò)程中用于檢測(cè)數(shù)據(jù)是否發(fā)生錯(cuò)誤。在每個(gè)數(shù)據(jù)字節(jié)(通常是8位)的最高位添加一位(偶校驗(yàn))或兩位(奇
    的頭像 發(fā)表于 10-17 16:16 ?3649次閱讀

    什么是奇校驗(yàn)和偶校驗(yàn)?常見(jiàn)的奇偶校驗(yàn)方式有哪些?

    什么是奇校驗(yàn)和偶校驗(yàn)?常見(jiàn)的奇偶校驗(yàn)方式有哪些? 1. 奇偶校驗(yàn)是指在數(shù)字通信中采用一種技術(shù)對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行
    的頭像 發(fā)表于 10-17 16:28 ?1w次閱讀

    奇偶校驗(yàn)和crc校驗(yàn)的區(qū)別 CRC校驗(yàn)奇偶校驗(yàn)之間有什么關(guān)系?

    奇偶校驗(yàn)和crc校驗(yàn)的區(qū)別 CRC校驗(yàn)奇偶校驗(yàn)之間有什么關(guān)系? 奇偶校驗(yàn)和 CRC(Cyclic Redundancy Check)
    的頭像 發(fā)表于 10-17 16:28 ?3406次閱讀