UART——学习总结

UART

一、含义:
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称作UART) 是一种串行异步收发协议,.
二、工作原理:
将数据的二进制位一位一位的进行传输。在UART通讯协议中信号线上的状态位高电平代表1低电平代表0。当然两个设备使用UART串口通讯时,必须先约定好传输速率和一些数据位。
三、通信协议

  • 1、空闲位:UART协议规定,当总线处于空闲状态时信号线的状态为1即高电平
  • 2、起始位:开始进行数据传输时发送方要先发出一个低电平0来表示传输字符的开始。因为空闲位一直是高电平所以开始第一次通讯时先发送一个明显区别于空闲状态的信号即为低电平。
  • 3、数据位:起始位之后就是要传输的数据,数据可以是5,6,7,8,9位,构成一个字符,一般都是8位。先发送最低位最后发送最高位。
  • 4、奇偶校验位:数据位传送完成后,要进行奇偶校验,校验位其实是调整个数,串口校验分几种方式:
    (1)无校验:(no parity)
    (2)奇校验:(odd
    parity):如果数据位中1的数目是偶数,则校验位为1,如果1的数目是奇数,校验位为0。
    (3)偶校验:(even
    parity):如果数据为中1的数目是偶数,则校验位为0,如果为奇数,校验位为1。
    (4)奇偶校验:mark parity:校验位始终为1
    (5)空间对等校验:space parity:校验位始终为0
  • 5、停止位:数据结束标志,可以是1位,1.5位,2位的高电平。
  • 6、波特率:数据传输速率使用波特率来表示,单位bps(bits per second),常见的波特率9600bps,115200bps等等,其他标准的波特率是1200,2400,4800,19200,38400,57600。举个例子,如果串口波特率设置为9600bps,那么传输一个比特需要的时间是1/9600≈104.2us。
    在这里插入图片描述
    四、示例
    以9600 8N1(9600波特率,8个数据位,没有校验位,1位停止位)为例,这是目前最常用的串口配置,现在我们传输‘o’‘k’两个ASCII值,‘o’的ASCII为79,对应的二进制数据为01001111 ,‘k’对应的二进制数据为01001011 ,传输的格式数据如下图所示。
    串口波特率为9600,1bit传输时间大约为104us,传送一个数据实际是10个比特(开始位,8个数据位,停止位),一个bytes传输速率实际为9600*8/10=7680bps。
    在这里插入图片描述
    五、优缺点
    因为UART没有时钟信号,无法控制何时发送数据,也无法保证按照完全相同的速度接收数据。因此,双方以不同的速度进行数据接收和发送,就会出现问题。而且数据帧最大支持9位数据,不支持多主机或多从机的主从系统;
    六、参考链接
    UART数据发送和接收(Verilog)
    UART详解
    UART协议快速扫盲(图文并茂+超详细)
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
学习K210的UART串口通信可以按照以下步骤进行: 1. 硬件准备:确保你已经正确连接了K210开发板上的UART串口。通常,UART串口有TX(发送)和RX(接收)两个引脚,分别与外部设备的对应引脚相连。 2. 学习UART串口通信基础知识:了解UART串口通信的原理、工作方式和常用的配置参数,如波特率、数据位、奇偶校验位和停止位等。 3. 掌握K210的UART库或驱动:K210开发板通常会提供相应的UART库或驱动,用于在代码中实现对UART串口的控制和数据传输。学习如何初始化UART,配置相关参数以及发送和接收数据等功能。 4. 编写示例代码:尝试编写简单的示例代码,通过UART串口发送和接收数据。例如,可以编写一个程序,在K210开发板上发送一条消息,然后监听串口接收到的数据并进行处理。 5. 调试和测试:使用示例代码进行调试和测试。确保串口连接正确,并检查数据的传输是否正常。可以使用终端程序或串口调试助手等工具来验证数据的发送和接收。 6. 扩展应用:一旦掌握了基本的UART串口通信,可以尝试更复杂的应用场景,如与外部传感器、显示屏或其他设备进行数据交互。 通过以上步骤,你可以逐步学习和理解K210的UART串口通信,掌握相关的开发技巧,并将其应用于实际项目中。记得查阅相关文档和参考资料,以便更好地理解和应用UART串口通信。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱生活的fuyao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值