<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于FPGA的帶CRC校驗的異步串口通信

基于FPGA的帶CRC校驗的異步串口通信

作者: 時(shí)間:2010-12-23 來(lái)源:網(wǎng)絡(luò ) 收藏

1.2.1 波特率設置
系統時(shí)鐘是由PFGA的16引腳輸入的24 MHz時(shí)鐘,而的波特率設置為9 600 b/s,所以需要對主頻進(jìn)行分頻。分頻過(guò)程定義了2個(gè)常量,分別用來(lái)存儲波特率96 000 b/s的分頻計數最大值bpspara和分頻計數的一半bps_para_2。每個(gè)系統時(shí)鐘的上升沿來(lái)臨時(shí)計數器cnt加1,每bps_para_2個(gè)系統時(shí)鐘周期clk_bps改變1次狀態(tài),這樣就產(chǎn)生了96 000 b/s的波特率。部分分頻代碼如下:
c.JPG
1.2.2 數據接收
數據接收模塊所要完成的任務(wù)包括:
(1)連續接收3個(gè)字節:1個(gè)字節的數據信息和2個(gè)字節的數據信息的校驗碼;
(2)取出這3個(gè)字節的第一個(gè)字節,重新生成碼;
(3)講新生成的碼與接收到得CRC比較,若相同則傳輸過(guò)程中沒(méi)有出現錯誤;若不相同則傳輸過(guò)程有錯誤,等待接收下一組數據。
①單字節串/并轉換
串口發(fā)送數據的格式:1位起始位(低),8位數據位,1位停止位(高),共10位(這里沒(méi)有校驗位ParityBit)傳輸時(shí)的順序是:起始位+數據位低位---數據位高位+停止位,其時(shí)序圖如圖3所示;
d.JPG

②3字節連續接收并儲存
為了連續接收3個(gè)字節數據,定義中斷寄存器neg_int和計數器count,復位時(shí)都清零,開(kāi)始接收數據時(shí)rx_int置高,每接受完1個(gè)字節,rx_int清零,此時(shí)檢測rx_int的下降沿,下降沿到來(lái)時(shí)計數器count加1,直到接收完第3個(gè)字節時(shí)count的值是3。部分程序如下:
e.JPG
因為HDL是硬件描述語(yǔ)言,所以必須時(shí)刻檢測是否有起始位到來(lái),需用幾個(gè)并行的always語(yǔ)句塊來(lái)處理。在接受完第1個(gè)字節后繼續檢測下降沿,并把接收到的數據暫存到寄存器data中,接收完第2個(gè)字節后仍繼續檢測下降沿,并暫存數據到crc16[15:8],接收完第3個(gè)字節繼續檢測下降沿,暫存數據到crc16[7:O]。等待下面的校驗處理。下面用case語(yǔ)句塊來(lái)暫存數據。

fpga相關(guān)文章:fpga是什么


通信相關(guān)文章:通信原理




關(guān)鍵詞: FPGA CRC 異步串口 通信

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>