FPGA 之串列埠通訊協議

2021-08-20 18:13:36 字數 1377 閱讀 3887

串列埠通訊協議

串列埠通訊(uart)是一種用兩線(rx【傳送端】 、tx【接收端】)實現的非同步、全雙工通訊方式。

由於串列埠通訊沒有時鐘訊號線,由此而出現波特率(baundrate),即接收和傳送雙方規定好相同的波特率以此來保證傳送的資料的正確性;

※波特率:一秒鐘內傳送的位元組數目。

如下圖1是串列埠通訊協議(uart protocol),分為五個階段分別為:起始位(start)、有效資料位(vaild data bits)、奇偶校驗(parity)、停止位(stop)、空閒位(idle)。

以傳送1byte資料 且具有偶校驗和一位停止位為例:data:0x 1010_0000,奇偶校驗位用result來表示。 

在fpga程式中先設定parameter          parity  = 1'b0;

開始狀態: 由於接收端(rx)空閒時處於高電平轉態,當要接收資料時(一般是有標誌訊號),接收端被拉低,並維持乙個bit時間的低電平,接下來進入接收有效資料。

資料接送狀態:資料的接收方式為,先接收最低位資料0(lsb),最後接收最高位資料(msb)1.資料的接收在相同的波特率下進行;

奇偶校驗位:奇偶校驗是一種校驗接收資料正確性的一種方式。其中,偶校驗  :是要保證傳送的一幀資料中出現  1的數目是偶數個。如果前面的資料是奇數個 1 時,則校驗位則為1 ,以確保傳送的一幀資料是偶數個 1。其實,本質上是 校驗位和每個資料位分別異或的關係。以上面的例子為例,資料中出現 1 的個數是偶數個,即2個,所以奇偶校驗位  result  為0;

具體的實現為:

第一步:result <= parity  ^data[0];

第二步:result    <=result ^ data[i];   //i = 1,2,3,..........7;

最後的到result 的值為 0;

當然,奇校驗則相反,過程類似。

停止位:停止位為高電平,並維持乙個bit的時間。

FPGA 串列埠通訊協議

fpga 串列埠通訊協議 波特率 波特率就是串列埠的通訊速率,常見的波特率有12000bps 4800bps 9600bps 115200bps 256000bps 500000bps,這裡波特率的意思是每秒可以傳輸bit的個數,這裡的5207 500000000 9600 傳遞乙個位元組需要的時間...

UART串列埠通訊協議的FPGA實現

引言 uart串列埠通訊協議,全稱叫做通用非同步收發器 universal asynchronous receiver transmitter 通常稱作uart。uart是非同步通訊,它只需要一根線就可以進行資料的通訊。1 基本概念 具體的時序圖如下圖所示 2 verilog實現 module ua...

串列埠通訊協議

簡介 通訊協議分層理解 物理層和協議層 物理層規定通訊系統中具有機械 電子功能部分的特性,確保原始資料在物理 的傳輸。協議層規定通訊邏輯,統一收發雙方的資料打包 解包標準。物理層串列埠通訊結構圖 電平標準 ttl電平標準 理想狀態下使用5v表示二進位制邏輯1,使用0v表示二進位制邏輯0 rs232電...