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

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

3天内不再提示

【分享】什么是串口通信?串口常见通信问题如何解决?

亿佰特物联网应用专家 2023-06-21 17:45 次阅读

在之前的文章中小编介绍了什么是CAN总线,包括CAN总线的数据格式和通信特点等方面的内容,今天将分享串口通信相关知识内容。CAN总线、串口通信都属于比较常见的有线传输方式。

前文指路《还不知道什么是CAN总线?一定要看这篇文章!》

有线传输方式

第二期:串口通信

什么是串口通信?

串口通信(Serial Communication),是指外设和计算机之间通过数据信号线、地线等按位进行传输数据的一种通信方式。

特点:数据位的传输按位顺序执行,最少只需一根传输线即可完成;成本低但传输速度慢。串口通信的距离可以从几米到几千米。

串口通信的数据格式

一个完整的串口数据格式包括起始位、数据位、校验位、停止位、波特率等几个参数

5a2f52e8-1018-11ee-a579-dac502259ad0.png

起始位:起始位必须是持续一个bit时间的逻辑0电平,它标志传输一个字符的开始。接收端可通过起始位使自身时钟与发送端的数据同步。

数据位:数据位在起始位的后面,是串口通信的有效信息。数据位的位数可以由通信双方共同约定,通常为8个bit。传输数据时先传输字符的低位,后传输字符的高位。

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

5a4365bc-1018-11ee-a579-dac502259ad0.png

停止位:停止位可以是1位、1.5位或2位。必须是逻辑1电平,它标志传输一个字符的结束。

空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示传输线路处于空闲状态,串口空闲时处于高电平。

波特率:波特率是串口通信中最常用的重要参数。它指的是串口通信的速率,也就是串口通信时每秒钟可以传输多少个二进制位。例如波特率为9600,则说明每秒钟可以传输9600个二进制位,即传输一个二进制位需要的时间为1/9600秒。

电平标准

根据通讯使用的电平标准不同,串口通讯可分为TTL 标准及RS-232 标准,见下表。

5a568322-1018-11ee-a579-dac502259ad0.png

我们知道常见的电子电路中常使用TTL的电平标准,理想状态下,使用5V表示二进制逻辑1,使用0V表示逻辑0;而RS232为了增加串口通讯的远距离传输及抗干扰能力,它使用-15V 表示逻辑1,+15V 表示逻辑0。

因为控制器一般使用TTL电平标准,所以常常会使用MA3232芯片对TTL及RS-232电平的信号进行互相转换。

主要的串口通信方式

先简单了解下什么是单双工通讯。

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

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

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

5a7a6ce2-1018-11ee-a579-dac502259ad0.png

串口通信主要分为RS232、RS422RS485三种通信方式。

RS232

RS-232是IBM-PC及其兼容机上的串行连接标准。全双工通信,需要地线、发送线和接收线三条线。RS-232只限于PC串口和设备间点对点的通信,抗干扰能力较差,最远通信距离是50英尺。RS-232可用于许多用途,比如连接鼠标、打印机、工业仪器仪表,也用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。

RS422

RS-422(EIA RS-422-A Standard)是Apple的Macintosh计算机的串口连接标准。采用全双工通讯方式,有4根信号线,收与发是分开的,可以同时进行收和发。RS-422接口的最大传输距离为4000英尺(约1219米),最大传输速率为10Mb/s。

RS-422使用差分信号以及非平衡参考地的信号。差分传输使用两根线发送和接收信号,对比RS-232,它能更好地抗噪声和有更远的传输距离,在工业环境中尤为适用。

RS485

RS-485采用半双工通讯方式,支持多点数据通信。因为它增加了设备的个数,同时定义了在最大设备个数情况下的电气特性,以保证足够的信号电压。RS-485具有出色抗噪和多设备能力,RS-485可用超过4000英尺的线进行串行通行。RS485采用平衡发送和差分接收,具有良好的抗干扰能力,信号能传输上千米。RS-422设备可以被RS-485控制。

串口通信问题排查

我们排查串口通信问题的方向基本为以下几部分,如图所示。

5a9910d4-1018-11ee-a579-dac502259ad0.png

1.检查中间件

串口通信必然存在发送端和接收端,且两者通过中间件(例如导线),遇到问题,首先应该保证导线连接正常。如果这一部分没有确定,直接排查其他方向,很可能在做无用功。

2.排查硬件

通过逻辑分析仪、示波器等仪器来判断发送端、接收端在发送、接收、空闲时的引脚波形是否正常。串口空闲时为高电平,有数据时才会有电平变化。同时需要确定电压是否正常。波形测量的位置先从最终点开始测量,然后依次排查中间部分的探测点,来判断问题位置。

如果发现波形变形、失真、电压不正常等情况,请让硬件工程师协助进行排查。在其起始点可以看到波形,但是终点看不到,需要使用万用表来确定是否引脚存在虚焊。

3.检查串口驱动层

如果排查了硬件无问题以后,但是发送端串口没有波形,这时候就需要检查串口驱动是否配置成功了。可以先将发送端的Tx、Rx引脚短接,进行回环测试。最好先用一个简单例程进行测试,尽量排除多个变量的影响。排查时需要特别注意的是,不能只看代码逻辑,要注重实际调试,善于利用软件调试窗口来观察相关寄存器的值。

4.应用协议层

通过以上方向的排查,可以证明自发自收没有问题。接下来就验证双方是否可以正常通信。应用协议层可能存在的问题有:

①发送端与接收端数据协议有问题,例如CRC、帧头帧尾校验、解析数据包等方面。

②发送端与接收端串口配置的参数:波特率、校验位不一致,导致无法通信。

另外大家也需要注意下面这几点:

①由于信号容易被干扰,建议使用带屏蔽线,并且接线一定要严格,需要接地的最好接地。有些485通信,还需要考虑接上终端电阻来匹配。如果是RS232通信,尽量不要让线太长。

②因为很多设备通过外部晶振或者内部时钟计算的波特率都是存在误差的。这样的话一旦报文过长,会导致误差累积,进而出现串口识别乱码或者收不到的情况。

③在一些可能会存在干扰的地方,可以考虑使用奇校验或者偶校验,这样可以将错误的报文过滤掉或者尽量使用一些数据校验协议,防止数据出错。

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

    关注

    18

    文章

    5706

    浏览量

    134403
  • 串口
    +关注

    关注

    14

    文章

    1483

    浏览量

    74514
收藏 人收藏

    评论

    相关推荐

    常见串口通信的几个问题请教?

    有关常见串口通信的几个问题请教论坛里的专家? 1、常见串口通信CAN,DP,PN,ETHER I
    发表于 04-04 16:30

    串口通信常见的错误和故障排除方法

    在进行串口通信时,确实可能会遇到一些常见的错误和问题。
    的头像 发表于 03-02 14:19 1122次阅读

    QT串口通信的简单使用

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

    单片机串口通信的接收与发送程序

    单片机串口通信的接收与发送程序 一、引言 单片机串口通信是一种常见通信方式,广泛应用于各种嵌入
    的头像 发表于 12-19 13:57 984次阅读

    3.3v串口与5v串口通信问题

    在嵌入式系统和通信领域,串口(Serial Port)是一种常见的接口类型,用于进行数据传输。然而,不同的设备可能使用不同的电压标准,例如3.3V和5V。当需要在这两种电压设备之间进行通信
    的头像 发表于 12-19 13:51 1601次阅读

    STM32里的串口通信

    STM32里的串口通信 在STM32里,串口通信是USART,STM32可以通过串口和其他设备进行传输并行数据,是全双工,异步时钟控制,设备
    的头像 发表于 11-10 15:58 1534次阅读
    STM32里的<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    licheepi 4a串口通信(usb串口)

    licheepi 4a串口通信(usb串口)
    的头像 发表于 11-08 09:09 304次阅读
    licheepi 4a<b class='flag-5'>串口</b><b class='flag-5'>通信</b>(usb<b class='flag-5'>串口</b>)

    什么是串口波特率?串口通信为什么要设置波特率?

    在电子设备的世界中,数据是通过各种方式进行传输的。其中,串口通信是一种常见的数据传输方式,它以其简单、可靠和广泛的特性,成为了电子设备间通信的重要手段。而在
    的头像 发表于 11-03 08:21 1605次阅读
    什么是<b class='flag-5'>串口</b>波特率?<b class='flag-5'>串口</b><b class='flag-5'>通信</b>为什么要设置波特率?

    如何排查串口通信问题?

    如何排查串口通信问题?
    的头像 发表于 09-18 10:58 679次阅读
    如何排查<b class='flag-5'>串口</b><b class='flag-5'>通信</b>问题?

    以太网通信串口通信区别

    以太网通信串口通信区别  以太网通信串口通信都是网络通信
    的头像 发表于 09-02 14:44 3858次阅读

    什么是M-Bus总线协议?

    有线传输方式第四期:M-Bus总线在之前的文章中小编介绍了其他几种常用的有线传输通信方式,感兴趣的小伙伴可以点击下方标题查看。前文指路《什么是CAN总线?》《什么是串口通信串口
    的头像 发表于 07-31 23:08 744次阅读
    什么是M-Bus总线协议?

    【分享】一文带你认识USB!

    USB接口在短距离硬件通信和硬件供电等各个方面具有着不可取代的作用,加之USBType-C技术的普及,USB更是受到人们的关注。前文指路《什么是CAN总线?》《什么是串口通信串口
    的头像 发表于 07-07 10:02 1254次阅读
    【分享】一文带你认识USB!

    串口通信是指什么?带你掌握串口通信

    串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口。
    的头像 发表于 06-26 15:49 3138次阅读
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>是指什么?带你掌握<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    有线传输方式之串口通信

    在之前的文章中小编介绍了什么是CAN总线,包括CAN总线的数据格式和通信特点等方面的内容,今天将分享串口通信相关知识内容。CAN总线、串口通信
    发表于 06-16 13:53 863次阅读
    有线传输方式之<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    串口屏与单片机通信

    串口屏与单片机通信需要通过串口进行数据传输。以下是一些简单的步骤:
    的头像 发表于 06-14 14:07 2110次阅读
    <b class='flag-5'>串口</b>屏与单片机<b class='flag-5'>通信</b>