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

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

3天内不再提示

剖析单片机串口最底层的本质​

jf_pJlTbmA9 来源:嵌入式资讯精选 作者:嵌入式资讯精选 2023-10-18 18:16 次阅读

嵌入式开发中,UART串口是最常见的一种通信接口,你知道为啥串口这么常见吗?本文就带你深入了解串口最底层的本质内容。

一、什么是串口通讯?

串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。

典型的串口通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,所以端口能够在一根线上发送数据同时在另一根线上接收数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶的校验。对于两个需要进行串口通信的端口,这些参数必须匹配,这也是能够实现串口通讯的前提。

100564718-274146-1.png

图1:串行通讯示数据传输意图

二、串口通讯的通讯协议?

最初数据是模拟信号输出简单过程量,后来仪表接口出现了RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现联网功能,这就促生了RS485

我们知道串口通信的数据传输都是0和1,在单总线、I2C、UART中都是通过一根线的高低电平来判断逻辑1或者逻辑0,但这种信号线的GND再与其他设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。所以差分通信、支持多机通信、抗干扰强的RS485就被广泛的使用了。

RS485通信最大特点就是传输速度可以达到10Mb/s以上,传输距离可以达到3000米左右。大家需要注意的是虽然485最大速度和最大传输距离都很大,但是传输的速度是会随距离的增加而变慢的,所以两者是不可以兼得的。

三、串口通讯的物理层

串口通讯的物理层有很多标准,例如上面提到的,我们主要讲解RS-232标准,RS-232标准主要规定了信号的用途、通讯接口以及信号的电平标准。

100564718-274147-2.png

在上面的通讯方式中,两个通讯设备的"DB9接口"之间通过串口信号线建立起连接,串口信号线中使用"RS-232标准"传输数据信号。由于RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个"电平转换芯片"转换成控制器能识别的"TTL校准"的电平信号,才能实现通讯。

下图为DB9标准串口通讯接口:

100564718-274148-3.png

DB9引脚说明:

100564718-274149-4.png

上表中的是计算机端的DB9公头标准接法,由于两个通讯设备之间的收发信号(RXD与TXD)应交叉相连,所以调制调解器端的DB9母头的收发信号接法一般与公头的相反,两个设备之间连接时,只要使用"直通型"的串口线连接起来即可。

100564718-274150-5.png

串口线中的RTS、CTS、DSR、DTR及DCD信号,使用逻辑 1表示信号有效,逻辑0表示信号无效。例如,当计算机端控制DTR信号线表示为逻辑1时,它是为了告知远端的调制调解器,本机已准备好接收数据,0则表示还没准备就绪。

四、波特率

波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示;

100564718-274151-6.png

比如波特率为9600bps;代表的就是每秒中传输9600bit,也就是相当于每一秒中划分成了9600等份。

因此,那么每1bit的时间就是1/9600秒=104.1666...us。约0.1ms。既然是9600等份,即每1bit紧接着下一个比特,不存在额外的间隔。两台设备要想实现串口通讯,这收发端设置的波特率必须相同,否则是没办法实现通讯的。

收发波特率一致可以实现通讯:

100564718-274152-7.gif

收发波特率不一致,导致RX端不能正常接收:

100564718-274153-8.gif

五、串口通讯的数据结构

100564718-274154-9.png

起始位: 起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步。

数据位: 数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定。传输数据时先传送字符的低位,后传送字符的高位。

奇偶校验位: 奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。

停止位: 停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是逻辑1电平,标志着传输一个字符的结束。

空闲位: 空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。

六、单双工通讯

单工: 数据传输只支持数据在一个方向上传输;

半双工: 允许数据在两个方向上传输,但某一时刻只允许数据在一个方向上传输,实际上是一种切换方向的单工通信,不需要独立的接收端和发送端,两者可合并为一个端口;

全双工: 允许数据同时在两个方向上传输,因此全双工通信是两个单工方式的结合,需要独立的接收端和发送端。

100564718-274155-10.png

七、STM32中的串口通讯

STM32串口通信接口有两种,分别是:UART(通用异步收发器)、USART(通用同步异步收发器),对于大容量STM32F10x系列芯片,分别由3个USART和两个UART。

100564718-274156-11.png

对于两芯片的间的连接,两个芯片GND共地,同时TXD和RXD交叉连接,这样两个芯片间可进行TTL电平通信。

但如果对于芯片和PC机相连,除了共地条件外,不能使用如上的直接交叉连接,虽然两者都有TXD和RXD引脚,但通常PC机使用的是RS232接口(9针),通常是TXC和RXD经过电平转换得到,故如果要使芯片与PC机的RS232接口直接通信,需要将芯片的输入输出端口也电平转换为RS232类型,再交叉连接,二者的电平标准不同:

单片机的点评标准(TTL电平):+5V表示1,0V表示0;RS232电平标准:+15/+13V表示0,-15/-13表示1。

100564718-274157-12.png

因此单片机与PC机进行串口通信应该遵循:在单片机串口与上位机给出的RS232口之间,通过电平转换电路实现TTL电平与RS232电平间的转换。如果使用USB转串口也可以实现串口通讯,USB转串口电路图如下所示。

100564718-274158-13.jpg

来源:嵌入式资讯精选
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理

审核编辑 黄宇

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

    关注

    6035

    文章

    44554

    浏览量

    634697
  • 串口
    +关注

    关注

    14

    文章

    1551

    浏览量

    76433
  • uart
    +关注

    关注

    22

    文章

    1235

    浏览量

    101355
收藏 人收藏

    评论

    相关推荐

    PLC与单片机本质区别是什么?

     从本质上说,PLC其实就是一套已经做好的单片机单片机范围很广的)系统。
    发表于 02-22 13:50 1.3w次阅读

    单片机复位的本质是什么呢

    学习和使用单片机的伙伴,对于单片机的复位(Reset)功能,应该是了然于胸了,因为这个功能是学习单片机最先需要了解的功能。那么,单片机复位的本质
    发表于 11-03 09:16

    STM32单片机串口中断程序的本质及控制流程是怎样的?

    串口通讯原理是什么?STM32单片机串口中断程序的本质及控制流程是怎样的?
    发表于 12-07 07:06

    单片机的多串口扩展技术的设计

    针对大多数单片机都只有一个串口的局限, 在多数情况下限制它们的应用。利用单片机串口扩展技术, 以MCS51 系列单片机8751 为例进行串行
    发表于 10-28 17:04 246次下载
    <b class='flag-5'>单片机</b>的多<b class='flag-5'>串口</b>扩展技术的设计

    单片机串口通讯程序

    基于51单片机单片机串口通讯程序源代码
    发表于 11-16 19:15 37次下载

    单片机与PC串口通信显示

    单片机基础学习,串口学习。使单片机与PC串口通信,简单的显示字符,且循环100次,运用STC-ICP
    发表于 06-01 17:48 15次下载

    DSP与单片机串口通信的设计与实现

    DSP与单片机串口通信的设计与实现
    发表于 10-20 10:11 5次下载
    DSP与<b class='flag-5'>单片机</b><b class='flag-5'>串口</b>通信的设计与实现

    什么是单片机串口通信?

    串口通信是单片机一个重要的部分,单片机和PC,单片机单片机之间的通信大都用串口
    发表于 07-25 07:36 6.1w次阅读
    什么是<b class='flag-5'>单片机</b>的<b class='flag-5'>串口</b>通信?

    单片机汇总_常用单片机优缺点详细剖析

    市面上的单片机种类繁多,在选用单片机进行开发时你是不是总是难以抉择,本文为大家带来51单片机、STC单片机等六种单片机的优缺点
    发表于 01-04 08:33 3.8w次阅读

    单片机串口实验 串口介绍 串口原理

    文章目录1 串口的硬件初步认识2 中间桥梁芯片硬件电路3 电脑如何识别 中间桥梁芯片4 串口调试助手5 为什么需要CH340模块6 CH340模块可以换成别的吗7 单片机开发版设计理念18
    发表于 11-10 20:20 16次下载
    <b class='flag-5'>单片机</b>的<b class='flag-5'>串口</b>实验 <b class='flag-5'>串口</b>介绍 <b class='flag-5'>串口</b>原理

    串口通信详解(51单片机

    串口传输,实现单片机与PC的双机通信。串口控制(51单片机)实现单片机与PC
    发表于 11-12 10:06 81次下载
    <b class='flag-5'>串口</b>通信详解(51<b class='flag-5'>单片机</b>)

    51单片机串口通信

    51单片机串口通信文章目录51单片机串口通信串口介绍硬件电路电平标准常见通信接口比较相关术语51单片机
    发表于 11-18 14:06 22次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>串口</b>通信

    51单片机串口通信

    51单片机串口通信文章目录51单片机串口通信串口介绍硬件电路电平标准常见通信接口比较相关术语51单片机
    发表于 11-21 20:36 64次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>串口</b>通信

    单片机学习笔记————51单片机实现从串口收发

    单片机学习笔记————51单片机实现从串口收发
    发表于 11-23 17:06 42次下载
    <b class='flag-5'>单片机</b>学习笔记————51<b class='flag-5'>单片机</b>实现从<b class='flag-5'>机</b>的<b class='flag-5'>串口</b>收发

    详解单片机串口通信

    在使用计算机的大多数时间中,我们需要通过一定的物理接口,达到与外界通信的目的,单片机本质上也是计算机,麻雀虽小,五脏俱全,不同于USB这样的庞然大物,绝大多数单片机都拥有串口UART,
    的头像 发表于 09-13 10:39 3323次阅读