通信协议详解(一):UART串口(协议+数据格式+设计实现) |
您所在的位置:网站首页 › 通信协议包含的内容 › 通信协议详解(一):UART串口(协议+数据格式+设计实现) |
uart串口通信协议及verilog实现 文章目录 一、uart串口通信简介二、串口传输1、数据协议2、整体架构 三、串口传输实现1、发送模块2、接收模块 四、串口收发仿真总结 一、uart串口通信简介通用异步收发器 UART(Universal Asynchronous Receiver/Transmitter),是一种串行、异步、全双工的通信协议,将所需传输的数据一位接一位地传输,在UART通讯协议中信号线上的状态位高电平代表’1’,低电平代表’0’。其特点是通信线路简单,只要一对传输线就可以实现双向通信,大大降低了成本,但传送速度较慢。 二、串口传输 1、数据协议
串口协议用于与其他模块之间的信息交互,包含接收模块和发送模块,信号传输线上根据波特率完成码元的接收与发送,因而接收模块主要完成并串转换,串并转换是接收和发送模块必备的基本功能,发送模块完成并串转换,接收模块完成串并转换。 波特率与时钟频率关系如下(码元为单bit时): 代码如下 //=============== //author:LGYSSS //proj:uart_transimitter //=============== module uart_tx( clk , rst_n , data_vld , //有效信号 data_in, //输入信号 data_out, //并行转串行输出信号 rdy //模块有效信号,示意模块准备接收数据 ); parameter WIDTH =8; parameter CLK_CNT= 5208; //波特率baud=9600下单码元传输 码元宽度为104166 50MHz下一个时钟周期为20ns,传输一个数据位104166/20=5208个clk parameter NUM_CNT=10; //数据位个数 input clk; input rst_n; input [WIDTH-1:0]data_in; input data_vld; output data_out; output rdy; reg data_out; reg [WIDTH-1:0]data_in_reg; reg start_tx; wire [WIDTH-1+2:0] data; reg [12:0] cnt0; wire add_cnt0; wire end_cnt0; reg [3:0] cnt1; wire add_cnt1; wire end_cnt1; always@(posedge clk or negedge rst_n)begin if(!rst_n) start_tx |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |