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

2021-10-25 00:26:53 字數 1320 閱讀 9548

引言

uart串列埠通訊協議,全稱叫做通用非同步收發器(universal asynchronous receiver/transmitter),通常稱作uart。uart是非同步通訊,它只需要一根線就可以進行資料的通訊。

1、基本概念

具體的時序圖如下圖所示:

2、verilog實現**

module uart_tx #(

parameter baud_div = 14'd10416 //波特率時鐘,9600bps,100mhz/9600=10416,波特率可調,意為一位資料占用多少時鐘週期)(

input clk, //100m時鐘

input [7:0] uart_tx_data_i, //待傳送資料

input uart_tx_en_i, //傳送傳送使能訊號

output uart_tx_o, //串列埠輸出

output uart_tx_done // 串列埠傳送結束訊號 1:正在傳送 0:傳送完成

);parameter baud_div_cap = baud_div / 2; //波特率時鐘中間取樣點,100mhz/9600/2=5208,波特率可調

//-------------------------串列埠計數,中值取樣----------------------

reg [13:0] baud_div=0; //波特率設定計數器

reg baud_bps=0; //資料傳送點訊號,高有效

reg uart_send_flag=0; //資料傳送標誌位

always@(posedge clk)

begin

if(baud_div==baud_div_cap) //當波特率計數器計數到資料傳送中點時,產生取樣訊號baud_bps,用來傳送資料

UART串列埠通訊協議

1.僅需兩根線即可進行全雙工資料傳輸 電源線除外 2.不需要時鐘或任何其他定時訊號。3.奇偶校驗位確保將基本錯誤檢查整合到資料報幀中。1.幀中資料的大小是有限的。2.與並行通訊相比,資料傳輸速度較慢。3.傳送器和接收器必須統一傳輸規則,並且必須選擇適當的波特率。4.不支援多個主機或從機。uart資料...

FPGA 串列埠通訊協議

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

FPGA 之串列埠通訊協議

串列埠通訊協議 串列埠通訊 uart 是一種用兩線 rx 傳送端 tx 接收端 實現的非同步 全雙工通訊方式。由於串列埠通訊沒有時鐘訊號線,由此而出現波特率 baundrate 即接收和傳送雙方規定好相同的波特率 以此來保證傳送的資料的正確性 波特率 一秒鐘內傳送的位元組數目。如下圖1是串列埠通訊協...