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

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

3天内不再提示

串口通信理论知识

撞上电子 2023-07-31 17:41 次阅读

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


第一节 硬件连接

硬件连接比较简单,仅需要3条线,注意连接时两个设备UART电平,如电平范围不一致请做电平转换后再连接,如下图所示:

5bb79e08-2f86-11ee-bbcf-dac502259ad0.png

TX:发送数据端,要接对面设备的RX

RX:接收数据端,要接对面设备的TX

GND:保证两设备共地,有统一的参考平面


第二节 软件通信协议

UART作为异步串口通信协议的一种,工作原理是将数据的字节一位接一位地传输。协议如下:

5bd5f39e-2f86-11ee-bbcf-dac502259ad0.png


A.空闲位:

UART协议规定,当总线处于空闲状态时信号线的状态为‘1’即高电平。

B.起始位:

开始进行数据传输时发送方要先发出一个低电平’0’来表示传输字符的开始。因为空闲位一直是高电平所以开始第一次通讯时先发送一个明显区别于空闲状态的信号即为低电平。

C.数据位:

起始位之后就是要传输的数据,数据可以是5,6,7,8,9位,构成一个字符,一般都是8位。先发送最低位最后发送最高位。

D.奇偶校验位:

数据位传送完成后,要进行奇偶校验,校验位其实是调整个数,串口校验分几种方式:

D.1.无校验(no parity)

D.2.奇校验(odd parity):如果数据位中’1’的数目是偶数,则校验位为’1’,如果’1’的数目是奇数,校验位为’0’。

D.3.偶校验(even parity):如果数据为中’1’的数目是偶数,则校验位为’0’,如果为奇数,校验位为’1’。

D.4.mark parity:校验位始终为1。

D.5.space parity:校验位始终为0。

E.停止位:

数据结束标志,可以是1位,1.5位,2位的高电平。

F.波特率:

数据传输速率使用波特率来表示,单位bps(bits per second),常见的波特率9600bps,115200bps等等,其他标准的波特率是1200,2400,4800,19200,38400,57600。举个例子,如果串口波特率设置为9600bps,那么传输一个比特需要的时间是1/9600≈104.2us。

5befceae-2f86-11ee-bbcf-dac502259ad0.png

以9600 8N1(9600波特率,8个数据位,没有校验位,1位停止位)为例,这是目前最常用的串口配置,现在我们传输’O’'K’两个ASCII值,'O’的ASCII为79,对应的二进制数据为01001111 ,'K’对应的二进制数据为01001011 ,传输的格式数据如下图所示:

5c145f6c-2f86-11ee-bbcf-dac502259ad0.png

串口波特率为9600,1bit传输时间大约为104us,传送一个数据实际是10个比特(开始位,8个数据位,停止位),一个bytes传输速率实际为9600*8/10=7680bps。

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

    关注

    18

    文章

    5969

    浏览量

    135837
  • 传输器
    +关注

    关注

    0

    文章

    39

    浏览量

    12915
  • 串口
    +关注

    关注

    14

    文章

    1543

    浏览量

    76169
收藏 人收藏

    评论

    相关推荐

    串口通信的开发环境配置

    串口通信的开发环境配置涉及多个方面,包括选择编程语言、安装必要的库或驱动程序、配置串口参数等。以下是一个基于Python的串口通信开发环境配
    的头像 发表于 11-22 09:21 127次阅读

    使用Python进行串口通信的案例

    当然!以下是一个使用Python进行串口通信的简单示例。这个示例展示了如何配置串口、发送数据以及接收数据。我们将使用 pyserial 库,这是一个非常流行的用于串口
    的头像 发表于 11-22 09:11 53次阅读

    串口通信与并口通信的区别

    在计算机和电子设备的数据传输领域,串口通信(Serial Communication)和并口通信(Parallel Communication)是两种基本的通信方式。它们各自有着独特的
    的头像 发表于 11-22 09:04 143次阅读

    串口通信协议解析 串口通信应用实例

    串口通信协议解析 串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。以下是
    的头像 发表于 11-21 17:03 199次阅读

    接口测试理论、疑问收录与扩展相关知识

    本文章使用王者荣耀游戏接口、企业微信接口的展示结合理论知识,讲解什么是接口测试、接口测试理论、疑问收录与扩展相关知识点的知识学院,快来一起看看吧~
    的头像 发表于 11-15 09:12 179次阅读
    接口测试<b class='flag-5'>理论</b>、疑问收录与扩展相关<b class='flag-5'>知识</b>点

    为什么通信要使用虚拟串口串口助手?

    串口助手和虚拟串口是什么?串口助手和虚拟串口串口通信中很常见。
    的头像 发表于 11-15 01:04 360次阅读
    为什么<b class='flag-5'>通信</b>要使用虚拟<b class='flag-5'>串口</b>和<b class='flag-5'>串口</b>助手?

    了解蓝牙模块串口通讯基础知识

    许多嵌入式系统和物联网(IoT)设备中广泛应用。以下是蓝牙串口UART的一些基础知识:一、UART基本概念接口又称串口,又称串行通信接口,一般也称COM口,这是一个
    的头像 发表于 09-02 16:16 1580次阅读
    了解蓝牙模块<b class='flag-5'>串口</b>通讯基础<b class='flag-5'>知识</b>

    串口通信的基本概念

    串口通信(Serial Communications)的基本概念可以归纳为以下几个方面:
    的头像 发表于 06-12 09:28 536次阅读
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>的基本概念

    什么是串口通信?它有哪些特点和应用?

    在现代电子通信和计算机领域中,串口通信(Serial Communications)扮演着至关重要的角色。它是一种按位(bit)发送和接收字节的通信方式,能够实现数据的远距离传输和高效
    的头像 发表于 05-23 16:23 2164次阅读

    QT串口通信的简单使用

    QT串口通信是上位机和下位机通信常用的通信方式, 也是学习QT必须学会的基础知识, 这篇就简单介绍一下QT
    的头像 发表于 01-15 09:27 1817次阅读
    QT<b class='flag-5'>串口</b><b class='flag-5'>通信</b>的简单使用

    WiFi理论知识与射频调试经验分享

    802.11a/g在20MHz模式下有48个可用子载波,速度可达54Mbps
    的头像 发表于 01-09 09:44 2023次阅读
    WiFi<b class='flag-5'>理论知识</b>与射频调试经验分享

    电工知识!电路原理图和接线习惯

    电工老师傅通常会告诉你:先把基础知识掌握了,基础知识最重要,往往最简单的理论知识积累却是很重要的环节,学习电工技术,没有理论知识,如何去积累实践经验?
    的头像 发表于 12-10 15:37 1663次阅读
    电工<b class='flag-5'>知识</b>!电路原理图和接线习惯

    关于霍尔开关的理论知识:什么是全极霍尔开关?

    本文介绍全极霍尔开关的知识 如何了解霍尔开关
    的头像 发表于 11-30 10:37 1214次阅读
    关于霍尔开关的<b class='flag-5'>理论知识</b>:什么是全极霍尔开关?

    代码分享之通信理论仿真

    ,内容一致。 通信理论是基础,在通信领域搞研发的人必须熟知。但很多到了工作岗位的人依旧会发现还有很多基础性的知识需要补。当年的我就遇到这个情况,于是依旧要回到最初的课本进行学习。所以我
    的头像 发表于 11-30 09:45 383次阅读
    代码分享之<b class='flag-5'>通信</b><b class='flag-5'>理论</b>仿真

    用proteus和keil实现串口通信仿真

    前面一课讲述了串行口通信的技术原理,本课通过安装虚拟串口,用proteus和keil实现串口通信仿真。
    的头像 发表于 11-27 16:42 5676次阅读
    用proteus和keil实现<b class='flag-5'>串口</b><b class='flag-5'>通信</b>仿真