0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

uart串口通信原理是什么?

淘晶驰串口屏 2022-12-02 14:55 次阅读

UART通信协议是什么?
UART作为异步串口通信协议的一种,工作原理是将传输数据的每一个字符一位一位地传输。其中每一位(bit)的意义如下:
起始位:先发出一个逻辑“0”的信号,表示传输字符开始。
数据位:紧接着起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。
奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以次来校验数据传送的正确性。
停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。因为数据是在传输线上定时的,并且每一个设备有其自己的时钟,所以很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率也就越慢。
空闲位:处于逻辑“1”状态,表示当前线路上没有数据传输。


UART串口通信的工作原理
(1)发送数据过程
空闲状态,线路处于高电平;当收到发送指令后,拉低线路的一个数据位的时间T,接着数据按低位到高位依次发送,数据发送完毕后,接着发送奇偶校验位和停止位,一帧数据发送完成。
(2)数据接收过程:
空闲状态,线路处于高电平;当检测到线路的下降沿(高电平变为低电平)时说明线路有数据传输,按照约定的波特率从低位到高位接收数据,数据接收完毕后,接着接收并比较奇偶校验位是否正确,如果正确则通知后续设备接收数据或存入缓冲。
由于UART是异步传输,没有传输同步时钟,为了保证数据的正确性,UART采用16倍数据波特率的时钟进行采样。每个数据有16个时钟采样,取中间的采样值,以保证采样不会滑码或误吗。一般UART一帧的数据位数为8,这样即使每个数据有一个时钟的误差,接收端也能正确地采样到数据。
UART的接收数据时序为:当检测到数据的下降沿时,表明线路上有数据进行传输,这是计数器CNT开始计数,当计数器为24=16+8时,采样的值为第0位数据;当计数器的值为40时,采样的值为第一位数据,依次类推,进行后面6个数据的采样。如果需要进行奇偶校验,则当计数器的值为152时,采样的值即为奇偶位;当计数器的值为168时,采样的值为“1”表示停止位,数据接收完成。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44514

    浏览量

    632934
  • 触摸屏
    +关注

    关注

    42

    文章

    2290

    浏览量

    115990
  • 串口屏
    +关注

    关注

    8

    文章

    530

    浏览量

    37318
收藏 人收藏

    评论

    相关推荐

    【AG32开发板体验连载】AG32VF407 UART串口通信测试

    【AG32开发板体验连载】--智能蒸烤箱 AG32VF407 UART串口通信测试 由AG32VF407 MCU手册可知, AG32VF407 MCU自带的UART
    发表于 11-23 23:23

    串口屏如何与主控制器进行通信

    一、串口通信基础 串口通信是一种通过串行数据传输的方式进行通信的方法。在串口
    的头像 发表于 11-20 09:32 75次阅读
    <b class='flag-5'>串口</b>屏如何与主控制器进行<b class='flag-5'>通信</b>?

    通信技术:UART串口通信开源代码实操!

    今天我们分享的是关于UART串口通信示例,欢迎大家探讨
    的头像 发表于 11-05 11:56 2779次阅读
    <b class='flag-5'>通信</b>技术:<b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>开源代码实操!

    UART串口通信示例:开启通信宝藏之门的定位模组LuatOS入门

    今天我们要讲解的是UART串口通信示例,关于Air201资产定位模组LuatOS入门,我会从搭建环境、代码烧录、示例效果等来细说:
    的头像 发表于 11-03 19:55 778次阅读
    <b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>示例:开启<b class='flag-5'>通信</b>宝藏之门的定位模组LuatOS入门

    uart波特率和传输频率的关系 UART串口的常用波特率为多少

    UART(Universal Asynchronous Receiver/Transmitter)是一种广泛使用的异步串行通信技术,它允许两台设备之间进行双向数据传输。在UART通信
    的头像 发表于 10-06 16:12 1754次阅读
    <b class='flag-5'>uart</b>波特率和传输频率的关系 <b class='flag-5'>UART</b><b class='flag-5'>串口</b>的常用波特率为多少

    求助,esp32在rs485模式下单字节收发怎么做?

    我的esp32一端通过wifi与电脑通信,另一端通过uart串口通信。当由电脑通过wifi发送数据到esp32,esp32再通过uart
    发表于 06-26 06:50

    STM32 HAL库UART发送信号的波形错误是什么原因导致的?

    STM32 新手,目前在使用STM32F769I-DISCO 板子与NUCLEO-F401RE 板子的UART串口通信,使用的是HAL库的指令,测试结果是接收方一直没办法收到正确的数据, 按照其他
    发表于 04-25 07:09

    STM32F411RE NUCLEO UART串口通信无法接收的原因?

    STM32F411RE NUCLEO UART串口通信无法接收
    发表于 04-03 08:02

    UART串口通信实验及工作原理

    UART通信过程需要设置波特率、数据长度、开始/停止位等参数。波特率决定了发送数据的速度,而数据长度和开始/停止位则用于确保数据的正确传输和接收。
    的头像 发表于 03-21 17:10 3720次阅读
    <b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>实验及工作原理

    UART串口通信协议是什么?

    UART (Universal Asynchronous Receiver/Transmitter) 是一种通信接口协议,用于实现串口通信。它是一种简单的、可靠的、广泛应用的
    的头像 发表于 03-19 17:26 1255次阅读

    UART串口通信使用16倍过采样数据的原因

    标准UART可以选16倍采样,也可以选64倍采样,个人觉得应该是方便分频设计。
    的头像 发表于 02-21 13:38 1804次阅读
    <b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>使用16倍过采样数据的原因

    常见通信的底层数据传输原理(UART、SPI、I2C)

    UART:Universal Asynchronous Receiver/Transmitter,通用异步收发传输器。 UART串口是最常见的一种串口
    发表于 01-15 10:41 821次阅读
    常见<b class='flag-5'>通信</b>的底层数据传输原理(<b class='flag-5'>UART</b>、SPI、I2C)

    什么是串口(UART)?串口的组成和FPGA实现

    串口作为常用的三大低速总线(UART、SPI、IIC)之一,在设计众多通信接口和调试时占有重要地位。
    的头像 发表于 01-03 11:43 1.3w次阅读
    什么是<b class='flag-5'>串口</b>(<b class='flag-5'>UART</b>)?<b class='flag-5'>串口</b>的组成和FPGA实现

    地平线机器人开发UART串口通信程序

    运行示例程序 接下来就可以运行串口通信的例程了。 $ sudo python3 test_serial.py 实物接线完成后,在旭日X3派的终端中输入指令启动例程,很快就可以在终端中看到串口向外发送
    的头像 发表于 11-27 10:55 374次阅读

    串口通信原理分析

    现在的传感器和执行器种类越来越多,需要和控制器传输的数据也是多种多样,只用GPIO来控制和读取的话,只有0和1的状态,未免还是有点麻烦,各种各样的通信方法也层出不穷,UART串口通信
    的头像 发表于 11-27 10:51 795次阅读
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>原理分析