FPGA 串列埠接收不準確,有誤碼

2021-09-29 12:00:54 字數 374 閱讀 2746

協議:1位起始位,8位資料位,1位停止位;

fpga的串列埠接收設計,由於:在串列埠傳輸8bit資料時需要10bit 才可以,在接收bit位時,將8bit資料接收完成後,還有1bit 的停止位,如果在接收時嚴格的等待結束位完成之後再去檢測起始位的下降沿,或者是檢測起始位的開始位,在這種情況下:如果傳送端的時鐘,或波特率有誤差,會導致資料接收出現問題,原因在於由於波特率存在誤差,每bit資料都會有誤差,當10bit全部傳輸完成時,由於誤差的不斷積累,可能會錯過起始位的檢測(如果檢測起始位的下降沿容錯率更低)或者導致資料的bit 位接收錯位,導致資料接收誤碼。

2.解決辦法:

在 資料的第8bit位接收結束之後,可以檢測幾個時鐘的結束位,然後去檢測起始位。這樣可以有效的減少接收誤碼的可能性。

FPGA實現資料的串列埠接收

module uart rx input clk 50m,input rst n,input data in,output reg 7 0 rx data,output reg rx done localparam clk frequency 50 000 000,baud rate 9600,bp...

ffmpeg r引數不準確

ffmpeg r 30,那麼一秒鐘發出的rtmp msg包應該為30個左右。但實際上,2017 02 23 13 48 36 debug 5325 5325 16 rtmp recv video 9 csid 4 timestamp 56200 mlen 2773 msid 1 nbufs 22 2...

UITextView frame計算不準確

uitextview在上下左右分別有乙個8px的padding 需要將uitextview.contentsize.width減去16畫素 左右的padding 2 x 8px 同時返回的高度中再加上16畫素 上下的padding 這樣得到的才是uitextview真正適應內容的高度。width 是...