亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

數(shù)據(jù)發(fā)送過(guò)程中的crc碼校驗(yàn)方法

文檔序號(hào):7928500閱讀:1102來(lái)源:國(guó)知局
專利名稱:數(shù)據(jù)發(fā)送過(guò)程中的crc碼校驗(yàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及URAT異步通信領(lǐng)域,特別涉及一種數(shù)據(jù)發(fā)送過(guò)程中的CRC碼校驗(yàn)方 法。
背景技術(shù)
通用異步通信常見(jiàn)的控制芯片有16C450、16C550、16C750等。3位地址總線、8位 地址總線、讀寫(xiě)控制總線等接口 ,可實(shí)現(xiàn)波特率設(shè)置、停止位個(gè)數(shù)設(shè)置、數(shù)據(jù)位個(gè)數(shù)設(shè)置,同 時(shí)具有各種報(bào)錯(cuò)功能。通用異步通信控制芯片通信速率每秒已高達(dá)數(shù)兆位,可實(shí)現(xiàn)高速通信。 現(xiàn)有的異步通信應(yīng)用在RS485接口的多機(jī)通信網(wǎng)絡(luò)中,當(dāng)發(fā)送數(shù)據(jù)時(shí)采用CRC碼 (循環(huán)冗余校驗(yàn)碼)檢驗(yàn),需要先計(jì)算該幀的CRC校驗(yàn)碼,然后發(fā)送數(shù)據(jù)。計(jì)算過(guò)程也需要耗 費(fèi)時(shí)間,特別是在幀較長(zhǎng)和高速通信的時(shí)候,這種耗時(shí)較明顯,嚴(yán)重影響了數(shù)據(jù)發(fā)送效率。

發(fā)明內(nèi)容
本發(fā)明克服了上述缺點(diǎn),提供了 一種控制過(guò)程簡(jiǎn)單、效率高數(shù)據(jù)發(fā)送過(guò)程中的CRC 碼校驗(yàn)方法。 本發(fā)明解決其技術(shù)問(wèn)題所采取的技術(shù)方案是一種數(shù)據(jù)發(fā)送過(guò)程中的CRC碼校驗(yàn) 方法,包括如下步驟 從FIFO模塊接收要發(fā)送的數(shù)據(jù);
逐位發(fā)送數(shù)據(jù),并計(jì)算CRC碼;
發(fā)送通過(guò)上述計(jì)算獲得的CRC碼。 在所述逐位發(fā)送數(shù)據(jù)步驟,經(jīng)過(guò)循環(huán)達(dá)到一個(gè)字節(jié)后,發(fā)送奇偶校驗(yàn)位。 所述從FIFO模塊接收要發(fā)送的數(shù)據(jù)和CRC碼之前,還包括對(duì)CRC碼進(jìn)行初始化的步驟。 所述從FIFO模塊接收要發(fā)送的數(shù)據(jù)和發(fā)送CRC碼的步驟之前,還包括判斷FIFO 模塊是否為空的步驟,如果FIFO模塊為空,則逐位接收CRC碼。 所述逐位接收CRC碼的步驟,具體為先發(fā)送CRC碼低位字節(jié),然后再發(fā)送高位字 節(jié)。 本發(fā)明通過(guò)在逐字節(jié)發(fā)送信息幀的同時(shí)自動(dòng)計(jì)算CRC校驗(yàn)碼,發(fā)送信息幀的同時(shí) 自動(dòng)計(jì)算CRC校驗(yàn)碼,數(shù)據(jù)發(fā)送完畢后硬件自動(dòng)生成的CRC校驗(yàn)碼被自動(dòng)發(fā)送出去,省去了 CPU計(jì)算發(fā)送數(shù)據(jù)CRC碼過(guò)程,減少CPU數(shù)據(jù)準(zhǔn)備時(shí)間。


圖1為本發(fā)明所應(yīng)用的發(fā)送模塊框圖;
圖2為本發(fā)明的控制流程圖。
具體實(shí)施例方式
本發(fā)明可應(yīng)用于如圖1中所示的發(fā)送模塊中,發(fā)送模塊由9位發(fā)送保持?jǐn)?shù)據(jù)存儲(chǔ)
FIFO和串行發(fā)送控制模塊構(gòu)成,發(fā)送數(shù)據(jù)包括奇偶校驗(yàn)位存入FIFO中。當(dāng)FIFO不為空和
串行發(fā)送控制模塊為空時(shí),F(xiàn)IFO中的數(shù)據(jù)被寫(xiě)入串行發(fā)送控制模塊,在寫(xiě)入的過(guò)程中檢驗(yàn)
奇偶校驗(yàn)位確認(rèn)傳輸過(guò)程正確。串行發(fā)送控制模塊把并行數(shù)據(jù)串行化后發(fā)送到SOUT端口。
其中,各信號(hào)端的功能說(shuō)明如下 RESET :復(fù)位信號(hào); 16XCLK :波特率16倍時(shí)鐘信號(hào); SOUT :串行數(shù)據(jù)輸出信號(hào); WDf :寫(xiě)FIFO控制信號(hào); DAt:9位數(shù)據(jù)總線 Wtf :FIFO數(shù)據(jù)寫(xiě)入串行發(fā)送控制模塊的寫(xiě)入控制信號(hào);
Dt :9位數(shù)據(jù)總線; 基于上述結(jié)構(gòu),進(jìn)行數(shù)據(jù)幀發(fā)送的具體過(guò)程如圖2中所示。 步驟201 ,初始化后,檢測(cè)是否開(kāi)始發(fā)送信息幀。如果啟動(dòng)了發(fā)送信息幀后,則轉(zhuǎn)入 步驟202 ; 步驟202,初始化CRC碼(即CRC碼計(jì)算器); 步驟203,判斷FIFO模塊是否為空,是則轉(zhuǎn)入步驟212,否則轉(zhuǎn)入步驟204 ;
步驟204,判斷發(fā)送控制模塊是否為空; 步驟205,當(dāng)FIFO不為空,發(fā)送控制模塊為空時(shí),F(xiàn)IFO傳送一字節(jié)數(shù)據(jù)到發(fā)送控制 模塊,開(kāi)始把并行8位數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),按照起始位(步驟206)、數(shù)據(jù)位(步驟207)、 奇偶校驗(yàn)位(步驟211)、停止位(步驟217)順序發(fā)送。 步驟208,判斷發(fā)送數(shù)據(jù)過(guò)程中,發(fā)送的是否為CRC碼,如果是則直接跳轉(zhuǎn)到步驟 210,否則轉(zhuǎn)到步驟209 ; 步驟209,在發(fā)送過(guò)程中計(jì)算CRC碼; 步驟210,判斷當(dāng)前字節(jié)的8位數(shù)據(jù)是否發(fā)送完畢,從而循環(huán)發(fā)送8位數(shù)據(jù)位并進(jìn) 行CRC碼計(jì)算; 步驟212,如果FIFO為空,等待串行發(fā)送控制模塊也為空后,轉(zhuǎn)入步驟213 ; 步驟213 216,從CRC碼計(jì)算器中向發(fā)送控制模塊發(fā)送CRC碼低位字節(jié),然后再
發(fā)送高位字節(jié)。在發(fā)送CRC碼過(guò)程中,停止CRC碼計(jì)算。該步驟在數(shù)據(jù)后跟隨該數(shù)據(jù)組的
CRC碼,用于接收檢驗(yàn)。發(fā)低位字節(jié),再發(fā)高位字節(jié),這樣發(fā)送方便硬件解碼。 當(dāng)一個(gè)數(shù)據(jù)的停止位發(fā)送(步驟217)完畢后,如果FIFO不為空則繼續(xù)發(fā)送其他數(shù)據(jù)。 根據(jù)上述過(guò)程可知,在逐字節(jié)發(fā)送信息幀的同時(shí)自動(dòng)計(jì)算CRC校驗(yàn)碼,數(shù)據(jù)發(fā)送 完畢后硬件自動(dòng)生成的CRC校驗(yàn)碼,并隨著數(shù)據(jù)的發(fā)送被自動(dòng)發(fā)送出去,省去了 CPU計(jì)算發(fā) 送數(shù)據(jù)CRC碼過(guò)程,減少CPU數(shù)據(jù)準(zhǔn)備時(shí)間。此外,CPU與異步通信控制器之間采用9位數(shù) 據(jù)總線,其中第9位即是發(fā)送數(shù)據(jù)奇偶校驗(yàn)位,從而提高數(shù)據(jù)與CPU并行傳輸?shù)目煽啃浴?
以上對(duì)本發(fā)明所提供的數(shù)據(jù)發(fā)送過(guò)程中的CRC碼校驗(yàn)方法進(jìn)行了詳細(xì)介紹,本文 中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思 想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì) 本發(fā)明的限制。
權(quán)利要求
一種數(shù)據(jù)發(fā)送過(guò)程中的CRC碼校驗(yàn)方法,其特征在于包括如下步驟從FIFO模塊接收要發(fā)送的數(shù)據(jù);逐位發(fā)送數(shù)據(jù),并計(jì)算CRC碼;發(fā)送通過(guò)上述計(jì)算獲得的CRC碼。
2. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)發(fā)送過(guò)程中的CRC碼校驗(yàn)方法,其特征在于在所述逐位發(fā)送數(shù)據(jù)步驟,經(jīng)過(guò)循環(huán)達(dá)到一個(gè)字節(jié)后,發(fā)送奇偶校驗(yàn)位。
3. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)發(fā)送過(guò)程中的CRC碼校驗(yàn)方法,其特征在于所述從 FIFO模塊接收要發(fā)送的數(shù)據(jù)步驟之前,還包括判斷FIFO模塊是否為空的步驟,如果FIFO模 塊為空,則準(zhǔn)備進(jìn)入CRC碼發(fā)送狀態(tài)。
4. 根據(jù)權(quán)利要求3所述的數(shù)據(jù)發(fā)送過(guò)程中的CRC碼校驗(yàn)方法,其特征在于所述逐位 發(fā)送CRC碼的步驟,具體為先發(fā)送CRC碼低位字節(jié),然后再發(fā)送高位字節(jié)。
5 根據(jù)權(quán)利要求1 4中任一項(xiàng)所述的數(shù)據(jù)發(fā)送過(guò)程中的CRC碼校驗(yàn)方法,其特征在 于所述從FIFO模塊接收要發(fā)送的數(shù)據(jù)和發(fā)送CRC碼之前,還包括對(duì)CRC碼進(jìn)行初始化的 步驟。
全文摘要
本發(fā)明涉及URAT異步通信領(lǐng)域,特別涉及一種數(shù)據(jù)發(fā)送過(guò)程中的CRC碼校驗(yàn)方法,本發(fā)明所采用的技術(shù)方案為,從FIFO模塊接收要發(fā)送的數(shù)據(jù)和CRC碼;逐位發(fā)送數(shù)據(jù),并計(jì)算CRC碼;發(fā)送通過(guò)上述計(jì)算獲得CRC碼。本發(fā)明通過(guò)在逐字節(jié)發(fā)送信息幀的同時(shí)自動(dòng)計(jì)算CRC校驗(yàn)碼,發(fā)送信息幀的同時(shí)自動(dòng)計(jì)算CRC校驗(yàn)碼,數(shù)據(jù)發(fā)送完畢后硬件自動(dòng)生成的CRC校驗(yàn)碼被自動(dòng)發(fā)送出去,省去了CPU計(jì)算發(fā)送數(shù)據(jù)CRC碼過(guò)程,減少CPU數(shù)據(jù)準(zhǔn)備時(shí)間。
文檔編號(hào)H04L1/00GK101764670SQ200810237268
公開(kāi)日2010年6月30日 申請(qǐng)日期2008年12月21日 優(yōu)先權(quán)日2008年12月21日
發(fā)明者劉渝新 申請(qǐng)人:重慶川儀自動(dòng)化股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1