这一篇讲的是Com通信的基本知识,下一篇讲一下Com开发实例

1.串口通信:指外设和计算机之间,通过数据信号线,地线等,按位进行传输数据的一种通讯方式

串口通讯是一种接口标准,它规定了电器标准,没有规定接口插件电缆以及使用的协议

2.串口通讯的数据格式

一个字符一个字符的传输,每一个字符一位一位的传输,并且传输一个字符时,总是以“起始位”开始,以“终止位结束”,字符之间没有固定的时间间隔要求。

每一个字符前面都有一个起始位(低电平),字符本身由7位数据位组成,接着字符后面是一位校验位(可以分为奇校验/偶校验/无校验位),最后是一位/一位半/二位停止位,停止位后面是不定长的空闲位,停止位和空闲位都规定位高电平。实际传输时信号宽度与波特率有关,波特率越高,宽度越小,传之前,双方要使用同一个波特率设置

3.通讯方式

单工模式:数据传输是单向的,发送端和接收端是固定的。信息沿着一个方向传输,使用一根传输线

半双工:既可以接收数据也可以传输数据,但是不能同时进行,每一方都只能在一个时间点只接收或者只输出.使用一根传输线,半双工每端都需要一个收发切换电子开关,通过切换决定数据传输方向。

全双工:通信允许数据同时在两个方向上传输。要求发送设备和接收设备都有独立的接收和发送能力

4.奇偶校验

在标准ASCII码中,其中最高位(b7)用作奇偶校验位。是指在代码传输过程中用来检验是否出错的一种方法,分为奇校验和偶校验。

奇校验:正确的代码中一个字节中1的个数必须是奇数, 如果不是奇数,则在最高位b7添1.

偶校验:正确的代码中一个字节中1的个数为偶数,非偶数则在最高位b7添1

5.停止位

停止位是按长度计算的。串行异步通讯从计时开始,以单位时间为间隔(一个时间就是波特率的倒数),依次接收所规定的数据位和校验位,并拼装成一个字符的并行字节;此后接收到规定长度的停止位“1”,所以停止位都是“1”,停止位的单位时间长度为1,1.5,2.

6.波特率

指每秒传输的数据位数。

单位是每秒比特数(bps),常用的波特率:600/1200/4800/9600/19200/38400.

称重仪表与pc通讯常用9600bps,19200bps.   pc与大屏幕通讯常用:600bps.

7 典型的串口通讯标准
    EIA RS232(通常简称“RS232”): 1962年由美国电子工业协会(EIA)制定。
    EIA RS485(通常简称“RS485”): 1983年由美国电子工业协会(EIA)制定。

8 RS232串口
    RS232是计算机与通信工业应用中最广泛一种串行接口。它以全双工方式工作,需要地线、发送线和接收线三条线。RS232只能实现点对点的通信方式。
8.1 RS232串口缺点
    ●接口信号电平值较高,接口电路芯片容易损坏。
    ●传输速率低,最高波特率19200bps。
    ●抗干扰能力较差。
    ●传输距离有限,一般在15m以内。
    ●只能实现点对点的通讯方式。
8.2 RS232串口接口定义
    RXD:接收数据,TXD:发送数据,GND/SG:信号地。
8.3 电脑DB9针接口定义
    电脑DB9针接口是常见的RS232串口,其引脚定义如下:
    2号脚:RXD(接收数据)
    3号脚:TXD(发送数据)
    5号脚:SG或GND(信号地)
    其它脚:我们不用

9 RS485串口
9.1 RS485串口特点
    ●RS485采用平衡发送和差分接收,具有良好的抗干扰能力,信号能传输上千米。
    ●RS485有两线制和四线制两种接线。采用四线制时,只能实现点对多的通讯(即只能有一个主设备,其余为从设备)。四线制现在很少采用,现在多采用两线制接线方式。
    ●两线制RS485只能以半双式方式工作,收发不能同时进行。
    ●RS485在同一总线上最多可以接32个结点,可实现真正的多点通讯,但一般采用的是主从通信方式,即一个主机带多个从机。
    ●因RS485接口具有良好的抗干扰能力,长的传输距离和多站能力等优点使其成为首选的串行接口。
9.2 485抑制共模干扰示意图
    
9.3 RS485串口接口定义
    A或Data+(D+)或+:信号正;
    B或Data-(D-)或-:信号负。
9.4 计算机与RS485仪表通讯
    计算机自带的串口只有RS232,没有RS485,如果计算机要与RS485串口的仪表进行通讯,必须使用串口转换器或装上RS485串口转换卡后才能进行通讯。
9.5 RS485串口的终端电阻
    ●一般情况下不需要增加终端电阻,只有在RS485通信距离超过100米的情况下,要在RS485通讯的开始端和结束端增加终端电阻,RS485典型终端电阻是120欧。
    ●终端电阻是为了消除在通信电缆中的信号反射在通信过程中,有两种信号因导致信号反射:阻抗不连续和阻抗不匹配。
    阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射。消除这种反射的方法,就必须在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端可跨接一个同样大小的终端电阻。
    引起信号反射的另一原因是数据收发器与传输电缆之间的阻抗不匹配。这种原因引起的反射,主要表现在通讯线路处在空闲方式时,整个网络数据混乱。要减弱反射信号对通讯线路的影响,通常采用噪声抑制和加偏置电阻的方法。在实际应用中,对于比较小的反射信号,为简单方便,经常采用加偏置电阻的方法。

10 串口通讯硬件常见的注意事项
    ●通讯电缆端子一定接牢,不可有任何松动,否则,可能会烧坏仪表或上位机的通讯板。
    ●不可带电拔插通讯端子,否则,可能会烧坏仪表或上位机的通讯板,一定要关闭仪表电源后才能去拔插通讯端子或接通讯线。
    ●通讯用的屏蔽电缆最好选用双层隔离型屏蔽电缆,其次选用单层屏蔽电缆,最好不要选用无屏蔽层的电缆,且电缆屏蔽层一定要能完全屏蔽,有些质量差的电缆,屏蔽层很松散,根本起不到屏蔽的作用。单层屏蔽的电缆屏蔽层应一端接地,双层屏蔽的电缆屏蔽层其外层(含铠装)应两端接地,内层屏蔽则应一端接地。
    ●仪表使用RS232通讯时,通讯电缆长度不得超过15米。
    ●一般RS485协议的接头没有固定的标准,可能根据厂家的不同引脚顺序和管脚功能可能不尽相同,用户可以查阅相关产品RS485的引脚图。
    ●RS485通讯电缆最好选用阻阬匹配、低衰减的RS485专用通讯电缆(双绞线),不要使用普通的双绞电缆或质量较差的通讯电缆。因为普通电缆或质量差的通讯电缆,可能阻抗不匹配、衰减大、绞合度不够、屏蔽层太松散,这样会导致干扰将非常大,会造成通讯不畅,甚至通讯不上。
    ●仪表使用RS485通讯时,每台仪表必须手牵手地串下去,不可以有星型连接或者分叉,如果有星型连接或者分叉,干扰将非常大,会造成通讯不畅,甚至通讯不上。

●485总线结构理论上传输距离达到1200米,一般是指通讯线材优质达标,波特率9600,只有一台485设备才能使得通讯距离达到1200米,而且能通讯并不代表每次通讯都正常,所以通常485总线实际的稳定通讯距离远远达不到1200米。负载485设备多,线材阻抗不同时,通讯距离更短。
    ●仪表使用RS485通讯时,必要时,请接入终端电阻,以增强系统的抗干扰性,典型的终端电阻阻值是120欧。

11 串口通讯软件设置要点
11.1 有关通讯的一些基本概念
    ●主机与从机:在通讯系统中起主要作用、发布主要命令的称为主机,接受命令的称为从机。
    ●连续方式:指主机不需要发布命令,从机就能自动地向主机发送数据。
    ●指令方式:指主机向从机发布命令,从机根据指令执行动作,并将结果“应答”给主机的模式。
    ●输出数据类型:指在连续方式通讯时,从机输出给主机的数据类型。
    ●通讯协议:指主机与从机通讯时,按哪一种编码规则来通讯。
    ●波特率:主从机之间通讯的速度。
    ●数据位:每次传输数据时,数据由几位组成。
    ●校验位:数据传输错误检测,可以是奇校验、偶校验或无校验。
    ●地址:每一台从机的编号。
11.2 主从机之间通讯设置要点
    ●要点一:主/从RS232/485硬件有无设置正确,通讯线有无接对。有些通讯板卡是RS422与RS485共用的,依靠板上跳线来实现的,有些仪表RS232/485也需要通讯跳线来实现。
    ●要点二:主机上的通讯端口有无设置正确;超时(一般设置为2s)、通讯延时(一般设置为5~20ms)、ACK信号延时(一般设置为0ms)有无设置正确。
    ●要点三:主/从机通讯协议有无选择正确。
    ●要点四:主/从机波特率有无选择正确。
    ●要点五:主/从机数据位有无选择正确。数据位可以选择7位,8位。
    ●要点六:主/从机校验位有无选择正确。校验位一般可选择偶校验、奇校验、无校验。
    ●要点七:主/从机停止位有无选择正确。停止位可以选择1位、1.5位还是2位。
    ●要点八:从机地址有无选择正确。
    ●要点九:主/从机的通讯方式有无选择正确。

进行通讯测试的时候经常会进行线路测试,测试所用的串口线是否可用,方法有二如下:

1  把串口线接到不同的串口,用串口调试工具从一个串口发数据,另一个能正常收到说明串口线是OK的。

2  把串口线的一端短接(用金属把2,3号脚连通),用万用表测另一端的2,3号如果正常的话会有嘀嘀的短接报警声。

串口通信基本知识及实例开发1(Com口通信简介)相关推荐

  1. 串口通信与并口通信的浅理解

    在说到通信的时候,一般都会提到窜口通信和并口通信的问题,以前一直都是听别人说,我一点也不明白,毕竟这个概念还是偏硬件了点,但是人还是要往前进的,今天多google了几下,总结了下理解方式,算是一次学习 ...

  2. python socket编程之双方相互通信简单实例_扣丁学堂Python开发socket实现简单通信功能实例...

    扣丁学堂Python开发socket实现简单通信功能实例 2018-08-21 14:12:38 747浏览 今天扣丁学堂Python培训老师给大家结合实例介绍一下关于socket实现的简单通信功能, ...

  3. 【STM32H7教程】第65章 STM32H7的低功耗串口LPUART基础知识和HAL库API

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第65章       STM32H7的低功耗串口LPUART基 ...

  4. 2.19 haas506 2.0开发教程 - bluetooth - 蓝牙通信(仅支持2.2以上版本)

    haas506 2.0开发教程 - bluetooth - 蓝牙通信 蓝牙 案例说明 从机测试(支持601与320) 1. 蓝牙调试工具 2. 设备端开发 3. 功能测试 主机测试(仅支持320) 1 ...

  5. WSE3.0构建Web服务安全(3):WSE3.0策略配置、证书、签名、与实例开发

    继WSE3.0构建Web服务安全(1):WSE3.0安全机制与实例开发和WSE3.0构建Web服务安全(2):非对称加密.公钥.密钥.证书.签名的区别和联系以及X.509 证书的获得和管理之后,今天我 ...

  6. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 完整代码示例 )

    文章目录 前言 一.Android 端完整代码示例 二.Flutter 端完整代码示例 三.相关资源 前言 前置博客 : [Flutter]Flutter 混合开发 ( Flutter 与 Nativ ...

  7. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | Android 端实现 MethodChannel 通信 )

    文章目录 前言 一.Android 端 MethodChannel 构造函数 二.Android 端 setMethodCallHandler 方法 三.Android 端实现 MethodChann ...

  8. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | Android 端实现 EventChannel 通信 )

    文章目录 前言 一.Android 端 EventChannel 构造函数 二.Android 端 setStreamHandler 方法 三.Android 端实现 EventChannel 通信步 ...

  9. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | Android 端实现 BasicMessageChannel 通信 )

    文章目录 前言 一.Android 端 BasicMessageChannel 构造函数 二.Android 端 MessageCodec 子类实现 三.Android 端 setMessageHan ...

最新文章

  1. js基础--数据类型检测的相关知识
  2. 移植uboot第八步:裁剪、修改默认参数、分区
  3. boost::callable_traits添加成员指针的测试程序
  4. linux下的精确wait
  5. ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard
  6. skywalking(1) 基于opentracing规范的APM系统
  7. 迭代器 java_百战程序员:Java设计模式之迭代器模式
  8. 【scarletthln 关于算法的一点总结】
  9. 八邻域轮廓跟踪算法_结合mRMR选择和IFCM聚类的遥感影像分类算法
  10. 某集网将我的信息给了谁?还是不良卖家不想卖东西
  11. 剑指 Offer II 042. 最近请求次数【队列方法】
  12. 深度学习之---yolo源代码部分分析
  13. 可视化报表Superser
  14. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-3.微信Oauth2.0交互流程讲解...
  15. 转载 《Python爬虫学习系列教程》学习笔记
  16. Vscode搭建jdk源码阅读环境 wsl
  17. metricbeat的基本使用
  18. wifi大师分销多开v3.1.5安装教程附带源码
  19. Android剥洋葱式解析JSON数据
  20. 启动RocketMQ报错:Please set the JAVA_HOME variable in your environment, We need java 64

热门文章

  1. MySQL查询显示行号
  2. 上海计算机等级考试一级题库软件,‎计算机等级考试一级最新题库 App Storessa...
  3. 真正的美剧字幕组翻译高手教你如何学好英语!心得经验之谈啊!
  4. 三体文明量子计算机,三体文明有多先进?人类有可能追上他们吗?科学家计算出了期限...
  5. 淘宝女装店铺之客服回复技巧
  6. 计算机显卡发展史,从模拟到数字 显卡输出接口演变史简述
  7. 原生 js 九九乘法表
  8. Android仿微信聊天界面
  9. java微信测试公众号实现文本、图片消息回复
  10. python字典合并去重_十三、深入Python字典和集合