串口通信问题排查总结

串口通信问题排查

排查原则:

  • 软件从发送处理到接收处理,核查驱动、控制及发送接收数据是否正常。
  • 硬件从发送到接收,针对信号经过的各段,分段核对信号是否正常。示波器、逻辑分析仪。
  • 用万用表、示波器、逻辑分析仪等工具,确保电路电源、接地正常,信号物理链路导通正常,信号波形及电平正常。

串口通信问题排查方法

在这里插入图片描述

在这里插入图片描述

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

  2. 排查硬件层
    通过逻辑分析仪、示波器等仪器来判断发送端、接收端在发送、接收、空闲时的引脚波形是否正常。串口空闲时为高电平,有数据时才会有电平变化。同时需要确定电压是否正常。波形测量的位置先从最终点开始测量,然后依次排查中间部分的探测点,来判断问题位置。
    如果发现波形变形、失真、电压不正常等情况,请让硬件工程师协助进行排查。在其起始点可以看到波形,但是终点看不到,需要使用万用表来确定是否引脚存在虚焊。

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

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

    1. 发送端与接收端数据协议有问题,例如CRC、帧头帧尾校验、解析数据包等方面。
    2. 发送端与接收端串口配置的参数:波特率、校验位不一致,导致无法通信。

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

    1. 由于信号容易被干扰,建议使用带屏蔽线,并且接线一定要严格,需要接地的最好接地。有些rs485总线通信,还需要考虑接上终端电阻来匹配。如果是RS232总线通信,尽量不要让线太长。
    2. 因为很多设备通过外部晶振或者内部时钟计算的波特率都是存在误差的。这样的话如果一旦报文过长,会导致误差累积,进而出现串口识别乱码或者收不到的情况。
    3. 在一些可能会存在干扰的地方,可以考虑使用奇校验或者偶校验,这样可以将错误的报文过滤掉或者尽量使用一些数据校验协议,防止数据出错。

其他串口通信排查方法:

  1. 通信共地,检查并确保设备间的GND(地线)连接是正确的。
  2. 串口参数,通信双方的串口参数包括波特率、数据位、停止位和校验位等。
  3. 硬件连接,使用示波器等硬件分析工具来检查线路上的电压、数据格式和波特率等参数是否正确。
  4. 设备兼容,不同的设备之间电气特性、波特率等可能存在兼容性问题。
  5. 数据传输,检查软件设置和硬件连接,确保没有误操作或损坏的部件。
  6. 回环检测,Loopback检测是一种诊断方法,将串口的发送和接收端短接来测试串口是否正常工作。
  7. 软件配置,检查软件中的串口配置,确保与硬件设置相匹配。
  8. 外部干扰,某些环境下电磁干扰可能会影响串口通信的质量,尝试更换通信线或使用屏蔽线。
  9. 电源问题,不稳定的电源或电源不足也可能导致通信故障。
SUDT SerialTrace提供了全部符合串口标准的高级过滤功能,对各种串口输入、输出控制码(IOCTLS)也提供了良好的参数显示支持。经SerialTrace侦听、拦截得到的信息,完全符合RS232/422/485接口标准。<br><br>SerialTrace支持串行中继功能,可拦截两台设备间的通信信息。其原理是,利用计算机的两个串口分别与两台设备互联,通过SerialTrace进行设备间的报文中继转发,并在此基础上实现数据监控。<br><br>SerialTrace的界面美观精致,侦听、显示、仿真功能简捷易用,符合用户的操作和心理习惯。软件针对不同专业用户的关注内容,对信息进行分类,提供了 具有信息染色功能的多视图窗口供显示、分析使用,并提供查找功能方便用户查找相关信息。<br><br>SerialTrace拥有强大的实时数据捕捉、记录功能,支持高强度大数据量的侦听。数据信息可以 按照指定的格式显示(如:二进制、八进制、十进制、十六进制),便于用户观察数据。<br><br>SerialTrace内置仿真终端,支持全双工模式,最高波特率超过256000。并且为用户提供了数据“双击复制”功能,便于用户复制数据及时仿真。在当前任务运行或任务话文件被导入,并且仿真终端窗口可见的情况下,只要双击Dump View窗口中带下划线的读写数据行(或Table View的读写数据行),即可将数据以十六进制字符串的形式复制到仿真终端的发送窗口,便于用户仿真测试。SerialTrace实现了侦听、拦截、分析、仿真功能的单窗口集中式服务。如上图所示。<br><br>SerialTrace提供了强大的任务话导入、导出功能,可将每一次侦听任务过程中的所有数据导出为单一的话文件文件供日后导入分析使用,也可以 将每个视图窗口的内容导出为RTF标准格式文档以及普通文本,为用户在多种场合下使用数据提供了方便。<br><br>SerialTrace还提供了详尽的参数设置,允许用户细致地设定每个视图的染色信息、显示内容、数据格式等,让用户能集中精力关注关键的信息。<br>
特点: 1).监控串口:具有端口监控功能,可以监控、拦截、保存所收发的数据(NT/2K/XP/Vista/Win7)。 2).串口调试:支持常用的串口操作功能,支持大数据量的收发、保存,支持自动发送。 3).动态变参:在不改变当前所打开端口的情况下,能动态改变端口参数(如:波特率、校验位、流控制等)。 4).双模编辑:数据发送区内嵌十六进制编辑器(类似UltraEdit),支持十六进制文本双模式切换编辑,支持unicode。 5).国际版本:国际版,支持多国语言。 6).无需安装:界面友好,方便易用。 简要描述: 1).用于串口调试,支持常用的110-256000波特率,支持自定义波特率。 2).能以字符或十六进制接收或发送任何数据,能发送、接收任意大小的文件。 3).在不改变当前所打开端口的情况下,能动态改变端口参数(如:波特率、校验位、流控制等)。 4).数据发送区可实时编辑、发送文本数据。 5).能将所接收的原始数据以及显示数据分别保存。 6).数据发送区允许设置发送周期,自动发送数据。 7).可调试的端口范围是COM1-COM255,支持扩展端口(USBRS232)。 8).可设置字体、文字颜色、背景颜色。 9).允许将发送区的数据在接收区回显,模拟终端操作。 10).允许发送区数据以回车键作为发送操作信号。 11).Terminal模式支持自动应答功能,支持Hex、Text、浮点数等类型。 12).Terminal模式支持预定义数据发送,支持Hex、Text、浮点数等类型。 13).Monitor模式支持彩色文本显示,便于更好的区分、观察数据. 14).允许Monitor模式下拦截到的数据以十六进制或字符方式显示。 15).允许接收区在接收到的数据后添加回车字符(CRLF),便于观察数据。 16).可将Terminal模式下接收到的数据按照十六进制文本方式导出到文件或剪贴板。 17).允许保存程序环境变量。 18).定义热键,方便操作。 19).国际版,支持多国语言。 20).数据发送区内嵌十六进制编辑器,支持unicode。 21).支持串口监控功能,可以监控串口设置以及收发的数据。 22).在线自动更新提示功能,当有可用新版本时提示用户下载。 23).本程序线程安全,可以同时启动多个副本调试多个串口。 A.程序拥有端口监控功能,可以监控内核事件并拦截所有通过指定端口收发的数据,该功能 目前只在2000/XP/2003平台上有效。 1.在使用监控功能前必须保证所要监控的端口处于关闭状态。 2.运行本程序,选择所要监控的端口并启动监控功能,然后启动要被监控的端口; B.程序第一次启动时自动设置语言,也可以手动在View->Language菜单项选择相应的语言, 目前支持英文、简体中文、繁体中文。 2.运行环境 --------------------- Windows 9x/2000/XP/2003/Vista/Win7 3.安装与卸载 --------------------- 运行解压软件,将压缩包解压到指定目录完成安装。卸载时只需将程序目录删除。 4.软件使用 --------------------- SUDT AccessPort 安装完成后即可使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值