1 【分享】什么是串口通信?串口常见通信问题如何解决?-德赢Vwin官网 网
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通信,尽量不要让线太长。

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

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

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

    关注

    18

    文章

    6024

    浏览量

    135949
  • 串口
    +关注

    关注

    14

    文章

    1551

    浏览量

    76419
收藏 人收藏

    评论

    相关推荐

    串口通信中常见的错误码含义

    串口通信中,常见的错误码及其含义对于诊断和解决通信问题至关重要。以下是一些常见串口
    的头像 发表于 11-22 09:26 576次阅读

    串口通信的开发环境配置

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

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

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

    串口通信常见问题及解决方案

    串口通信常见问题及解决方案 1. 串口通信原理简述 串口通信
    的头像 发表于 11-22 09:06 985次阅读

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

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

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

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

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

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

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

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

    串口通信的基本概念

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

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

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

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

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

    VC++串口通信详解

    德赢Vwin官网 网站提供《VC++串口通信详解.doc》资料免费下载
    发表于 03-24 09:36 0次下载

    UART串口通信协议是什么?

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

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

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

    QT串口通信的简单使用

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