1. even 每个字节传送整个过程中bit为1的个数是偶数个(校验位调整个数)

2. odd 每个字节穿送整个过程中bit为1的个数是奇数个(校验位调整个数)

3. noparity没有校验位

4. space 校验位总为0

5. mark 校验位总为1

UART数据波形分析

摘要:本文通过对异步串行数据格式的分析,阐述通过波形分析方法调试UART数据收发的原理和方法。

经常遇到初学者,对单片机串行通讯出了问题不知道如何办的情况。其实最有效的调试方法是用示波器观察收发数据的波形。通过观察波形可以确定以下情况:

1.         是否有数据接收或发送;

2.         数据是否正确;

3.         波特率是否正确;

一、    串行数据的格式

异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1 位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。

起始位是一个值为0的位,所以对于正逻辑的TTL电平,起始位是一位时间的低电平;停止位是值为1的位,所以对于正逻辑的TTL电平,停止位是高电平。对于负逻辑(如RS-232电平)则相反。

例如,对于16进制数据55aaH,当采用8位数据位、1位停止位传输时,它在信号线上的波形如图1(TTL电平)和图2(RS-232电平)所示。

 

图1 TTL电平的串行数据帧格式(55aah)

图2 RS-232电平的串行数据帧格式(55aah)

二、    根据波形图计算波特率

如图3是图1在示波器中的显示示意,其中灰色线是示波器的时间分度线,此时假设是200ms/格。

  

图3 波特率计算示意图

可以看了,第一个字节的10位(1位起始位,8位数据位和1位停止位)共占约1.05ms,这样可计算出其波特率约为:

10bit / 1.05ms X 1000 ≈ 9600 bit/s

如果上图中的时间轴是100ms/格,同样可以计算出波特率应是19200bit/s。

当通讯不正常,又能观察到波形时,就可根据上述方法,从波形图计算一下波特率是否正确。

三、    根据波形图判断RS-485收发数据的正确与否

RS-485是一种半双工的串行通讯方式,485电平芯片所以要正确接收和发送数据,必需保证控制信号和数据的同步,否则要么发送数据丢失,要么接收数据可能丢失。

RS-485发送数据时的正确时序如图4所示。

  

图4 RS-485的正确发送数据时序

在图4中,发送控制信号的宽度基本与数据信号的宽度一致,所以能保证发送数据的正确和发送后及时转为接收。

图5 和图6 分别是控制信号太短和控制信号太长的情况。

  

图5 RS-485控制信号太短时的时序

图6 RS-485控制信号太短时的时序

在图5中,由于控制信号关闭过早,则第二个字节的后两位将发送错误;在图6中,由于控制信号关闭过迟,使485芯片在发送数据后,不能及时转到接收状态,此时总线若有数据过来,则本单元将不能正确接收。

总结:只要掌握上述波形分析方法,任何异步串行数据的接收和发送问题,基本都可以得到解决。

串口通信校验方式(even,odd,space,mark)UART数据波形分析相关推荐

  1. 串口通信校验方式:奇偶校验、累加和校验

    转载自:https://zhuanlan.zhihu.com/p/29693940 串口通信校验方式:奇偶校验.累加和校验 许佳伟 利用串口传输数据时,近距离传输还好,远距离传输由于线路长度影响,可能 ...

  2. 串口通信 校验码_一文读懂S7-200 SMART自由口通信!

    学习S7-200 SMART时了解到,基于RS485接口可实现一下几种通信: 1)modbus RTU通信 2)PPI协议通信 3)USS协议通信 4)自由口通信 何为自由口通信呢? 前三种通信必须要 ...

  3. 2021-912--51单片机串口通信--SCON方式1

    计算机的通信分为:串行通信和并行通信 串行通信分为:异步通信和同步通信 异步通信:发送设备与接受设备有各自的时钟,通信时双方的时钟尽量保持一致, 以字符为单位进行传输, 字符与字符间的时间间隔是任意的 ...

  4. C++串口通信API方式

    参考 龚建伟 熊光明编著的 <VisualC++ TurboC 串口通信编程实践> 电子版及源码地址 http://u.163.com/jHELKgtJ  提取码: J0NtoY5V 根据 ...

  5. UART串口校验方式(无校验、奇偶校验、固定校验)

    UART串口校验方式(奇偶校验.固定校验.无校验) 串口通信校验方式 奇偶校验位 固定校验位(Stick) 无校验位 校验位:串口通信中的检错方式.串口在接收数据时,如果无检验位,则只要检测到串口出现 ...

  6. stm32中断方式的串口通信——上位机控制串口收发

    文章目录 前言 一.什么是串口通信 二.什么是中断--STM32 1.中断的概念 2.STM32下NVIC的介绍 3.中断优先级的介绍 4.外部中断的介绍 三.串口通信keil工程文件 1.新建工程模 ...

  7. 英伟达Jeston nano<3>使用Python实现三种方式串口通信

    英伟达Jeston nano<3>使用Python实现三种方式串口通信 前言 通信配置过程 基本信息 配置过程 方案一:Python-40pinEXpansion Header 方案二:P ...

  8. android qt 串口通信,Qt串口通信开发之QSerialPort模块详细使用方法与实例

    Qt串口通信开发之QSerialPort模块详细使用方法与实例 发布时间:2020-10-23 12:19:05 来源:脚本之家 阅读:111 作者:沧海一笑-dj Qt串口通信基础及名词说明 串口通 ...

  9. STM32常用协议之串口通信详解

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.相关理论概念 1.1 通信基本概念 1.1.1 串行/并行 1.1.2 单工/半双工/全双工 1.1.3 同步/异 ...

  10. 51单片机——中断系统、外部中断、定时器中断、串口通信C语言入门编程

    目录 中断系统: 外部中断: 1.外部中断0.1:当触发时,LED状态取反 定时器中断: 1.定时器0.1:LED以1S为周期闪烁 串口通信: 1.串口中断:通过串口发送什么数据给单片机,单片机再通过 ...

最新文章

  1. su如何变成实体_不用建模就能生成地形,SU怎么办到的?
  2. 大话设计模式读书笔记11----建造者模式(Builder)
  3. boost::mp11::mp_set_contains相关用法的测试程序
  4. Object类Objects类总结
  5. Nginx深入详解之过滤模块
  6. 广播网关GPC为MDS多媒体调度再添虎翼
  7. 中标麒麟安装rpm包命令_在 Fedora 中安装替代版本的 RPM 包
  8. devops定义_在层中定义DevOps
  9. smokeping主从同步报错
  10. ES6学习(三)—字符串的扩展
  11. HF-NET环境配置与安装
  12. linux6.8设置中文界面,Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面
  13. leetcode算法88.合并两个有序数组
  14. 兔子进洞算法_下兔子洞:一个varnishreload错误的故事-第1部分
  15. 医院预约挂号系统 ssm
  16. 后缀–ize_常见词性后缀
  17. 计算机的声卡怎么安装教程,外置声卡怎么连接电脑 外置声卡安装教程【图文】...
  18. 数据可视化 d3操作汇总(一):d3以及直方图绘制简介
  19. 编译原理:flex与bison--从0到1完成一个编译器(sample语言)①
  20. 视频点播和OSS两个产品之间的区别与联系

热门文章

  1. 游侠更新仙剑全系列免CD补丁(支持WIN7 SP1)【转载】
  2. 《此生未完成》:她说,名利权情,没有一样是不辛苦的
  3. 生活在压力下不得不读的好书---《此生未完成》读后感
  4. K线形态识别—三K线之卖出型三日K线组合
  5. 蓝牙模块定位_详解蓝牙4.0BLEbeacon室内定位原理
  6. IDEA版本控制:文件导航各种颜色含义
  7. Deeplink最全解析
  8. 给网站加上 开心网 转帖功能
  9. 关于修改文件拒绝访问的问题
  10. 直播视频卡顿延迟时如何优化