协议篇-串口通信

        串口通信作为最常用通讯协议是每一个工程师需要掌握的基本知识,本章将详细介绍串口基本理论知识。

        串口通信有两根通讯线,一根接收数据(uart_rxd),一根输出数据(uart_txd),串口传输速度单位为波特率,bps代表每秒钟传输的二进制数的位数。常用的波特率有9600bps,38400bps,115200bps。

        如下图所示为串口通信时序图:

                                                              图1 串口时序图

总线接收数据时序解析:

1、空闲状态总线处于高电平,起始位为1个bit低电平;

2、紧接着传输8bit数据位,小端传输(从最低位开始传输);

3、奇偶校验位主要验证链路传输是否有误,如果奇偶校验位为 0(偶数奇偶校验),则数据帧中的 1 或逻辑高位总计应为偶数。如果奇偶校验位为 1(奇数奇偶校验),则数据帧中的 1 或逻辑高位总计应为奇数。通常设计中选择无奇偶校验位,传输数据会另外加帧做数据接收判断。

4、停止位,通常选用一1个bit高电平作为结束位。

综上所述通常情况下传输一个Byte(8个bit数据)需要10位,起始位(1bit)+数据位(8bit)+结束位(1bit)。而如果添加奇偶校验则需要传输11位。

如下图所示为FPGA实现串口仿真图:

                                                                图2 FPGA 串口仿真

        如上图所示信号定义如下:

        en_flag:输出数据有效信号;

        uart_din:输出数据;

        tx_cnt:输出bit标志位,0~9代表10个bit位;

        uart_txd:串口输出信号。

        en_flag输出一个工作时钟周期(100MHz)有效位代表uart_din数据有效,输出数据为0x12,串口开始输出1bit起始位(0),紧接着输出0100_1000数据,再输出1bit结束位(1);串口数据传输结束。

        以上为串口通信理论知识,如有疑问可以留言。

        

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值