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

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

3天内不再提示

【蓝桥杯嵌入式】第六章 串口通信理论知识

撞上电子 2023-10-10 09:26 次阅读

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

第一节 硬件连接

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

025dae20-670c-11ee-9788-92fbcf53809c.png

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

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

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

第二节 软件通信协议

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

026daeb0-670c-11ee-9788-92fbcf53809c.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。

0271b064-670c-11ee-9788-92fbcf53809c.png

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

02908174-670c-11ee-9788-92fbcf53809c.png

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

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

    关注

    5069

    文章

    19021

    浏览量

    303373
  • 通信
    +关注

    关注

    18

    文章

    5973

    浏览量

    135864
  • 串口
    +关注

    关注

    14

    文章

    1543

    浏览量

    76205
收藏 人收藏

    评论

    相关推荐

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第7-8学习心得

    这是一本很好的学习嵌入式的书籍。 在深入学习《嵌入式Hypervisor:架构、原理与应用》的第7-8后,我对嵌入式Hypervisor的架构、原理及其在实际应用中的重要性有了更为深
    发表于 10-09 18:50

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第一二读后感

    类型和产品,以及嵌入式Hypervisor的基础知识,这些内容让我对Hypervisor的应用领域有了更广泛的认识。 接着,第二详细对比了两种嵌入式Hypervisor的实现方式:基
    发表于 10-09 18:22

    《DNK210使用指南 -CanMV版 V1.0》第六章 Kendryte K210固件烧录

    第六章 Kendryte K210固件烧录 本章将为读者介绍Kendryte K210的固件烧录,以及Kendryte K210外部NOR Flash的空间分布。本章分为如下几个小节:6.1 外部
    发表于 09-12 14:20

    【「ARM MCU嵌入式开发 | 基于国产GD32F10x芯片」阅读体验】+书籍整体概况

    ,这里包含系统滴答定时器SysTick,RTC实时时钟,看门狗(独立看门狗与窗口看门狗),定时器(基本定时器、通用定时器、高级定时器),以及PWM实现呼吸灯效果实验。第六章为通用同步/异步串行通信
    发表于 08-25 22:48

    学习hypervisor嵌入式产品安全设计

    第一部分(第1~2)介绍Hypervisor基础,涵盖虚拟化技术与实现、主流的嵌入式Hypervisor产品,以及基于分离内核的嵌入式Hypervisor等内容。第二部分(第3~12
    发表于 08-25 09:11

    第六章-电机驱动和PWM STM32项目

    万字笔记、12多个小时视频、20多章节代码手把手教会你如何开发和调试。让你更快掌握嵌入式系统开发。** V3.3.0-STM32智能小车 视频: https
    的头像 发表于 08-21 16:46 578次阅读
    <b class='flag-5'>第六章</b>-电机驱动和PWM STM32项目

    嵌入式机电一体化系统设计与实现》读后感

    理解不仅拓宽了我的知识视野,更为后续章节的学习打下了坚实的基础。 书中第二重点讨论了基于Linux的嵌入式系统设计,这一节对我而言尤为关键。Linux作为开源的操作系统,在
    发表于 08-21 08:45

    RT-Thread出席第六届中国嵌入式技术大会,共话嵌入式操作系统与智能工业

    第六届中国嵌入式技术大会将于8月27-28日在深圳会展中心(福田)1号馆举行。本届大会以“AI与开源,开启嵌入式系统智能新时代”为主题,聚焦人工智能与嵌入式应用、
    的头像 发表于 08-03 08:35 369次阅读
    RT-Thread出席<b class='flag-5'>第六</b>届中国<b class='flag-5'>嵌入式</b>技术大会,共话<b class='flag-5'>嵌入式</b>操作系统与智能工业

    【峰会同期活动】第六届国产嵌入式操作系统技术与产业发展论坛即将召开

    每年一度的国产嵌入式操作系统论坛即将在杭州滨江举办,今年是第六届了,又是中国嵌入式系统新朋老友相聚的时刻。大模型催生AI走人千家万户、唤醒端侧AI的需求爆发。以机器人、无人驾驶和智能制造为代表的智能
    的头像 发表于 08-01 08:36 319次阅读
    【峰会同期活动】<b class='flag-5'>第六</b>届国产<b class='flag-5'>嵌入式</b>操作系统技术与产业发展论坛即将召开

    第六届国产嵌入式操作系统技术与产业发展论坛议程发布

    每年一度的国产嵌入式操作系统论坛即将在杭州滨江举办,今年是第六届了,又是中国嵌入式系统新朋老友相聚的时刻。大模型催生AI走人千家万户、唤醒端侧AI的需求爆发。以机器人、无人驾驶和智能制造为代表的智能
    发表于 07-26 10:54

    双麒麟系统!迅为RK3588开发板+银河麒麟/开放麒麟

    Build root系统功能测试 第四 Ubuntu系统功能测试 第五 Debian系统功能测试 第六章 openkylin系统功能测试 第七 银河麒麟系统功能测试
    发表于 07-15 10:35

    嵌入式系统软硬件基础知识大全

    。总之,嵌入式系统的硬件基础知识包括处理器架构和指令集、存储器类型和层次结构,以及外设接口和通信协议。通过对这些知识点的深入理解,我们可以更好地设计和实现
    发表于 05-09 14:12

    如何成为一名嵌入式C语言高手?

    。 三、通过实践项目提升技能理论知识是建立在实践基础之上的。选择一些小型的嵌入式项目,例如LED闪烁、温度监测等简单的应用,将所学的C语言知识应用到实际中。通过实践,你可以了解如何将C语言程序移植到
    发表于 04-07 16:03

    如何成为一名嵌入式C语言高手?

    。 三、通过实践项目提升技能理论知识是建立在实践基础之上的。选择一些小型的嵌入式项目,例如LED闪烁、温度监测等简单的应用,将所学的C语言知识应用到实际中。通过实践,你可以了解如何将C语言程序移植到
    发表于 03-25 14:12

    嵌入式软件开发应该掌握哪些知识?

    嵌入式软件开发应该掌握哪些知识? 一、 什么是嵌入式软件? 嵌入式软件通常是指嵌入式系统中运行的软件,
    发表于 02-19 11:23