【USART串口】

 全双工、异步通讯方式.。接下来说单片机中最常用的USART串口,USART串口的协议相比于I2C要简单很多,它没有地址的概念,也没有主设备、从设备的区别,用户可以自己定义地址和主从,不定义也可以,完全自由开放。正因为USART本身的协议简单,硬性规定少,所以它有很好的扩展性。如【图3】所示,USART串口可以有3种常用的通信方式。最基本的是TTL电平直接连接,多用于单片机与带有USART串口的模块通信。比如WIFI模块、GPS模块、蓝牙模块都支持USART串口。另外它还常用于单片机与电脑的通信,今后我们要用电脑给单片机下载程序,就是通过USART串口。

还有一种基于USART串口的扩展接口,叫RS232。它用于工业控制类设备的通信接口,常见于电脑和工控设备之间的通信。比如电脑与PLC(工控常用的可编程控制器)之间的通信就是RS232。RS232接口并没有改变USART串口的协议规范,而是通过专用的RS232转换芯片,把TTL的5V电平转换成了正负12V电平。因为电平电压的升高,通信的距离和稳定性都有所提高。RS232的连接线可达20米长,在干扰众多的工业场合使用依然稳定。但是随着工业技术的发现,20米的距离已经满足不了需要,于是市场上又出来了性能更好的RS485接口。

RS485的通信线长度可达1000米,而且传输速度还要比RS232快很多。虽然RS232和RS485都可以挂接多个设备,可是因为RS232的通信距离太短,20米的距离内挂多个设备的意义不大。所以RS232多用于一对一通信,而RS485被用于多个设备挂接的总线,当然也可以一对一通信。

RS485的应用非常广泛,高层住宅和商场里的电梯直梯就是用RS485连接各楼层,控制叫梯和显示楼层信息。是属于非常成熟的通信接口之一。但不论如何,RS232和RS485的协议还是USART,本质上是一个功能的不同扩展。STM32单片机内部只有支持USART协议的TTL电平的接口,如果想使用RS232或RS485需要外接一个芯片才能实现。【图3】所示是USART串口的三种通信形式。

STM32F103单片机上有3个USART串口,都支持DMA功能。其中USART1的速度可达4.5MB/S,其他可达2.5MB/S,算是相当快的速度。在8051单片机中也有一种叫UART的串口,少了一个S,它们是什么关系呢?其实USART的全称是同步/异步收发器,而UART是异步收发器,它们之间差了一个“同步”,USART接口比UART多了一个“USART_CK”的同步时钟线,可以同步时钟通信,但这个功能很少用到,所以它们在应用上并没有什么差别。

【图3】USART串口电路连接示意图

RS-232、RS422 和 RS-485 区别

一、串口简介
        RS-232、RS-422 与 RS-485 都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232 在1962 年发布,命名为 EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-422 由 RS-232 发展而来,它是为弥补 RS-232 之不足而提出的。为改进 RS-232 通信距离短、速率低的缺点,RS-422 定义了一种平衡通信接口,将传输速率提高到 10Mb/s,传输距离延长到 4000 英尺(速率低于 100kb/s 时),并允许在一条平衡总线上连接最多 10 个接收器。RS-422 是一种单机发送、多机接收的单向、平衡传输规范,被命名为 TIA/EIA-422-A 标准。为扩展应用范围,EIA 又于 1983 年在 RS-422 基础上制定了 RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为 TIA/EIA-485-A 标准。由于 EIA 提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以 RS 作前缀称谓。

RS-232、RS-422 与RS-485 标准只对接口的电气特性做出规定,而不涉及接插件、电缆或应用层通信协议,在此基础上用户可以建立自己的高层通信协议。因此在视频界的应用,许多厂家都建立了一套高层通信协议,或公开或厂家独家使用。如录像机厂家中的Sony 与松下对录像机的 RS-422 控制协议是有差异的,视频服务器上的控制协议则更多了,如 Louth、Odetis协议是公开的,而ProLINK 则是基于 Profile 上的。

二、RS-232 串行接口标准
        目前 RS-232 是 PC 机与通信工业中应用最广泛的一种串行接口。RS-232 被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232 采取不平衡传输方式,即所谓单端通讯。
        收、发端的数据信号是相对于信号地,如从 DTE 设备发出的数据在使用 DB25 连接器时是 2 脚相对 7 脚(信号地)的电平。典型的 RS-232 信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V 电平。当无数据传输时,线上为 TTL,从开始传送数据到结束,线上电平从 TTL 电平到 RS-232 电平再返回 TTL 电平。接收器典型的工作电平在+3~+12V 与-3~-12V。由于发送电平与接收电平的差仅为 2V至 3V 左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约 15米,最高速率为 20kb/s。RS-232 是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为 3~7kΩ。所以RS-232 适合本地设备之间的通信。其有关电气参数参见下表。

三、RS-422 与 RS-485 串行接口标准

1. 平衡传输
       RS-422、RS-485 与 RS-232 不一样,数据信号采用差分传输方式,也称作平衡传输,使用一它对双绞线,将其中一线定义为 A,另一线定义为 B。通常情况下,发送驱动器A、B 之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~6V,是另一个逻辑状态。另有一个信号地C,在RS-485 中还有一“使能”端,而在RS-422中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。
       接收器也作与发送端相对的规定,收、发端通过平衡双绞线将A-A 与B-B 对应相连,当在收端AB 之间有大于+200mV 的电平时,输出正逻辑电平,小于-200mV 时,输出负逻辑电平。接收器接收平衡线上的电平范围通常在200mV 至6V 之间。

2.RS-422 电气规定
        RS-422 标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。实际上还有一根信号地线,共5 根线。由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10 个节点。即一个主设备(Master),其余为从设备(Salve),从设备之间不能通信,所以RS-422 支持点对多的双向通信。接收器输入阻抗为4k,故发端最大负载能力是10×4k+100Ω(终接电阻)。RS-422 四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF 握手)或硬件方式(一对单独的双绞线)实现。
        RS-422 的最大传输距离为4000 英尺(约1219 米),最大传输速率为10Mb/s。其平衡双绞线的长度与传输速率成反比,在100kb/s 速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100 米长的双绞线上所能获得的最大传输速率仅为1Mb/s。
        RS-422 需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300 米以下不需终接电阻。终接电阻接在传输电缆的最远端。
RS-422 有关电气参数见表 1

3.RS-485 电气规定
       由于RS-485 是从RS-422 基础上发展而来的,所以RS-485 许多电气规定与RS-422 相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485 可以采用二线与四线方式,二线制可实现真正的多点双向通信。而采用四线连接时,与RS-422 一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422 有改进,无论四线还是二线连接方式总线上可多接到32 个设备。
        RS-485 与RS-422 的不同还在于其共模输出电压是不同的,RS-485 是-7V 至+12V 之间,而RS-422 在-7V 至+7V 之间,RS-485 接收器最小输入阻抗为12k,RS-422 是4k;RS-485满足所有RS-422 的规范,所以RS-485 的驱动器可以用在RS-422 网络中应用。
RS-485 有关电气规定参见表1。
        RS-485 与RS-422 一样,其最大传输距离约为1219 米,最大传输速率为10Mb/s。平衡双绞线的长度与传输速率成反比,在100kb/s 速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100 米长双绞线最大传输速率仅为1Mb/s。

RS-485 需要2 个终接电阻,其阻值要求等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300 米以下不需终接电阻。终接电阻接在传输总线的两端。

RS-485 通讯协议(自定义应用层协议)

RS-485 标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议;因此,用户需要在RS-485 应用网络的基础上建立自己的应用层通信协议。由于RS-485 标准是基于PC 的UART 芯片上的处理方式,因此,其通讯协议也规定了串行数据单元的格式(8-N-1 格式):1 位逻辑0 的起始位,6/7/8 位数据位,1 位可选择的奇ODD)/偶(EVEN)校验位,1/2 位逻辑1 的停止位。

下面将分别对ModBus 协议(RTU 模式)、多功能电能表通讯规约(DL/T645-1997)进行简单介绍,便于大家对应用层通信协议有一个基本的概念与理解
1.4.1 ModBus 协议(RTU 模式)
        以下资料摘录于Modbus 协议(RTU 模式)的一部分,介绍了Modbus RTU 协议的基本构成、主要特点、参数规定;便于我们理解一个通讯协议的基本模式与要求。关于详细的ModBus 协议,用户可以从ModBus-IDA 协会 (www.modbus.org) 网站下载具体的内容。

1. 查询—响应周期
ModBus 协议遵循“查询—响应”模式,如图 1-23 所示。

USART(RS232/422/485)、I2C、SPI、CAN、USB总线相关推荐

  1. RS232 422 485定义、接口、接线图

    RS232接口 RS232接口是1970年由美国电子工业协会(EIA)联合贝尔系统.调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准.它的全名是"数据终端设备(DTE)和数据通 ...

  2. tcp转串口_单路RS232/422/485串口服务器产品介绍

    产品描述 本串口服务器是我公司基于自主软件研发而成的串口到10/100M以太网的高性能工业级串口联网服务器,它完成从串口到以太网网络的透明传输. 设备的串口支持RS232.RS422和RS485接口, ...

  3. 基于USB总线的高炮火控计算机测试系统设计

    设备组成 Etest_CPS系统主要由硬件部分与软件部分组成.硬件部分由PCI机箱.PCI控制器以及各种PCI接口板卡组成.软件部分由测试设计软件模块.测试执行服务软件模块.测试执行客户端软件模块.设 ...

  4. 【STM32】各类通信接口及协议简识(IIC、SPI、RS232、RS485、CAN、USB)

    开发板为洋桃一号开发板,MCU为STM32F103C8T6 目录 1.通信接口一览 2.各类通信接口区别(速率问题仅限至于本MCU条件下) 1.通信接口一览 ■ 多达9个通信接口 多达2个IIC接口( ...

  5. USB/UART/I2C/SPI等接口传输速率

    目录 USB总线 UART I2C总线 SPI总线 GPIO(RK3399) FMC 参考 USB总线 USB1.1: ---低速模式(low speed):1.5Mbps ---全速模式(full ...

  6. 开发调试工具:USB转IIC/I2C/SPI/UART适配器模块可编程开发板

    开发调试工具:USB转IIC/I2C/SPI/UART适配器模块可编程开发板 发个方便测试I2C.SPI.1Wire接口的工具模块 总的思路是通过USB或者UART接口发送一些协议字符串,由模块转换成 ...

  7. 【嵌入式05】串口协议+RS-232、485标准+CH430芯片的“USB/TTL转232”

    文章目录 一.串口协议 (一)串口 (二)串口通信 (三)串口通信协议 二.RS-232标准 三.RS-485标准 四.RS-232.485电平与TTL电平的区别 (一)RS-232与485的区别 ( ...

  8. 对UART、RS232、485通信的理解

    实际上这一篇博文想表达的就是想说清楚什么是串口通信. 先普及一下通信的基本知识点: 数据通信的种类:串行通信.并行通信.不管是什么类型的通信,再怎么复杂的,也是在这两种上面衍生出来的. 许多传输线或者 ...

  9. MPU6050开发 -- 进阶之I2C/SPI通信协议

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/78611309 上一篇基本概念讲了一通,大体上对MPU6050有了一个了解.对 ...

最新文章

  1. 由于这台计算机没有终端服务器客户端访问许可证,远程会话被中断解决办法...
  2. C#水晶报表,窗体不显示,闪退
  3. 常用的分隔符有哪三种_掌握这三种调漂方法,你想怎么钓就怎么钓,再也不用求人...
  4. 前端调数据会经常用到的事件处理
  5. OFFICE技术讲座:WP布局方向有哪些
  6. 二进制转8421bcd码_绝对值编码器当中的格雷码
  7. 【Python/Pytorch - Bug】-- RuntimeError: ,expected input[16,12,174,145] to have 8 channels,but got 12
  8. 关于游戏,能戒就戒吧
  9. 红米k30至尊纪念版和华为mate30pro哪个值得买
  10. 数字时代下,工厂的智能加工、检测与控制
  11. 微信小程序云函数安装wx-server-sdk依赖
  12. docker快速安装可道云
  13. ArcGIS属性表的计算
  14. C语言基础教程 之 系统关键字
  15. 一次百度0.1元年费VIP的购买体验
  16. [Bug FIX]安装 account_check_writing模块后采购收据打印报错的问题
  17. 2016计算机中级职称考试,2016.2年中级职称计算机考试模拟及题库.doc
  18. 怎么消除视频水印软件?哪个软件能去除视频水印?
  19. Python笔记:复杂的布尔表达式和正反面写法示例
  20. Lua与游戏的不解之缘

热门文章

  1. ZigBee快速入门02
  2. XP 文件引用了一个不可用的位置
  3. 搞电脑的必看,微软sysinternals超级工具包
  4. tensorflow兼容处理 tensorflow.compat.v1及module ‘tensorflow‘ has no attribute ‘reset_default_graph‘等问题汇总
  5. Google Earth Engine(GEE)计算长时序的月VCI和TCI
  6. 为什么WPF在code behind使用RelativeSource的binding会出现错误
  7. python最适合做什么生意-个人利用Python爬虫技术怎么挣钱-10万被动收入
  8. C++学习笔记(自己用的)
  9. Nginx上传文件大小、超时限制
  10. 奶牛晒衣服(二分查找)