宏观理解串口通讯

  • 串口
  • RS232 RS485
  • RS232 RS485区别
  • 协议
  • 串口232与485转换

开发中,经常要和硬件用串口通讯读写数据,一直以来,只懂应用,不懂基理,于是乎,这篇文章诞生了。

串口

COM口即串行通讯端口,简称串口。这里区别于USB的“通用串行总线”和硬盘的“SATA”。一般我们见到的是两种物理标准。D型9针插头,和4针杜邦头两种。这是常见的4针串口,在电路板上常见,经常上边还带有杜邦插针。有时候有第五根针,接电源端。

下面这个就是D型9针串口(通俗说法)。在台式电脑后边都可以看到。这种接口的协议只有两种:RS-232和RS-485。不会是TTL电平的(除非特殊应用)。我们一般只接出RXD TXD两针,外加GND。

TTL、RS-232、RS-485是什么

嵌入式里面说的串口,一般是指UART口, 但是我们经常搞不清楚它和COM口的区别, 以及RS232, TTL等关系, 实际上UART,COM指的物理接口形式(硬件), 而TTL、RS-232、RS-485是指的电平标准(电信号),都是一种逻辑电平的表示方式。

1. TTL

TTL指双极型三极管逻辑电路,市面上很多USB转TTL模块,实际上是USB转TTL电平的串口模块。这种信号0对应0V,1对应3.3V或者5V。与单片机、SOC的IO电平兼容。不过实际也不一定是TTL电平,因为现在大部分数字逻辑都是CMOS工艺做的,只是沿用了TTL的说法。我们进行串口通信的时候,从单片机直接出来的基本是都是TTL电平。

TTL电平:全双工(逻辑1: 2.4V–5V 逻辑0: 0V–0.5V)

  • 硬件框图如下,TTL用于两个MCU间通信

  • 0和1表示
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KQFlVxGt-1607954693373)(https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/1fc03ff6e1d53ef74b8537f7824e2258)]

2. RS232

RS232是电子工业协会(EIA)制定的异步传输标准接口,同时对应着电平标准和通信协议(时序),其电平标准:+3V~+15V对应0,-3V~-15V对应1。RS232 的逻辑电平和TTL不一样但是协议一样。

RS-232电平:全双工(逻辑1:-15V–5V 逻辑0:+3V–+15V)

  • 硬件框图如下,TTL用于MCU与PC机之间通信

  • 0和1表示

3. RS485

RS485是一种串口接口标准,为了长距离传输采用差分方式传输,传输的是差分信号,抗干扰能力比RS232强很多。两线压差为-(26)V表示0,两线压差为+(26)V表示1。

RS-485:半双工、(逻辑1:+2V–+6V 逻辑0: -6V—2V)这里的电平指AB 两线间的电压差。

  • 硬件框图如下

  • 0和1表示

协议

协议分为硬件协议和软件协议,而通讯协议属于软件协议。协议就是规定了一种"暗语",让主从站之间可以"通话"。也就是把0和1翻译成双方都明白的命令。协议它包含报头包围的格式,MODBUS是应用层的通讯协议,主要用于传送和接收文件包的格式。而RS232,RS485是物理层的串行接口,它可以支持几十种通讯协议,MODBUS只是其中的一种。MODBUS可分为 MODBUS RTU/ACSI,MODBUS+(也叫MODBUS PLUS)和MODBUS tcp/ip等。前两种是在串行链路上使用的通讯协议(串口通讯),后一种是在以太网口基于TCP/IP协议的MODBUS通讯协议。

看概念还很模糊,举个例子就明白了。一个人从香港去澳门,人就是文件,香港是主机,澳门是从机。从香港去澳门可以走水路或航空,水路可以是RS232,RS485(二者之间RS485速度更快些,没有太大的区别),航空可以是以太网。交通工具船和飞机可以分别看成应用层的MODBUSRTU/MODBUS PLUS和MODBUSTCP/IP。而在这里当然船也可以是轮船或汽艇,可以是RS485支持的其他通讯协议RS232和RS485只负责把路修好,连通后MODBUS就像车和船等交通工具,路修好了如果有码头就可以走船,如果有车站就可以走汽车。(一个是路一个是更高一层的交通工具)

串口只是硬件形式,RS232,RS485是基于这个硬件形式传输电平信号,基于这个硬件形式和信号,可以定义很多种通讯协议,如标准的MODBUS协议。

232与485的区别

1. 传输信号不同

RS485是差分(差分信号)传输,RS232是非差分(同分信号)传输的。

2. 抗干扰能力不同

232只能是点对点,而485可以一对多(一主多从),还有485用的电流环方式,搞干扰强,传输距离远(232是电压型信号,一般10来米就差不多了,485理论上可以到1000米,不过我实际上最好不要超过600米,速率在9600以下)。232最少是3线,收发地,485是2线方式(所谓A/B线)。

对于软件来说,RS485通信和串口通信是一回事,都是操作串口。这两者只是硬件上的区别而已,跟软件没关系的。就编程上来看,RS485与RS232并没有区别。对于计算机来说如果在232串口上进行485通讯的话,要加入一个RS232/RS485转换模块才行。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

峰晨朴朴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值