您的位置 首页 IC

解析单片机RS485通讯接口、控制线、原理图及程序教育实例

RS232 标准是诞生于 RS485 之前的,但是 RS232 有几处不足的地方:接口的信号电平值较高,达到十几 V,使用不当容易损坏接口芯片,电平标准也与TTL 电

RS232 规范是诞生于 RS485 之前的,可是 RS232 有几处缺乏的当地:接口的信号电平值较高,到达十几 V,运用不当简略损坏接口芯片,电平规范也与TTL 电平不兼容。传输速率有限制,不能够过高,一般到一两百千比特每秒(Kb/s)就到极限了。接口运用信号线和 GND 与其它设备构成共地形式的通讯,这种共地形式传输简略发生搅扰,而且抗搅扰功用也比较弱。传输间隔有限,最多只能通讯几十米。通讯的时分只能两点之间进行通讯,不能够完结多机联网通讯。针对 RS232 接口的缺乏,就不断出现了一些新的接口规范,RS485 便是其间之一。 RS232 规范是诞生于 RS485 之前的,可是 RS232 有几处缺乏的当地:

接口的信号电平值较高,到达十几 V,运用不当简略损坏接口芯片,电平规范也与TTL 电平不兼容。

传输速率有限制,不能够过高,一般到一两百千比特每秒(Kb/s)就到极限了。

接口运用信号线和 GND 与其它设备构成共地形式的通讯,这种共地形式传输简略发生搅扰,而且抗搅扰功用也比较弱。

传输间隔有限,最多只能通讯几十米。

通讯的时分只能两点之间进行通讯,不能够完结多机联网通讯。

针对 RS232 接口的缺乏,就不断出现了一些新的接口规范,RS485 便是其间之一,它具有以下的特色:

选用差分信号。咱们在讲 A/D 的时分,讲过差分信号输入的概念,一同也介绍了差分输入的优点,最大的优势是能够按捺共模搅扰。特别当工业现场环境比较复杂,搅扰比较多时,选用差分办法能够有用的进步通讯可靠性。RS485 选用两根通讯线,通常用 A 和 B 或许 D+和 D-来表明。逻辑“1”以两线之间的电压差为+(0.2~6)V 表明,逻辑“0”以两线间的电压差为-(0.2~6)V 来表明,是一种典型的差分通讯。

RS485 通讯速率快,最大传输速度能够到达 10Mb/s 以上。

RS485 内部的物理结构,选用的是平衡驱动器和差分接纳器的组合,抗搅扰才干也大大增加。

传输间隔最远能够到达 1200 米左右,可是它的传输速率和传输间隔是成反比的,只要在 100Kb/s 以下的传输速度,才干到达最大的通讯间隔,假如需求传输更远间隔能够运用中继。

能够在总线上进行联网完结多机通讯,总线上答应挂多个收发器,从现有的 RS485芯片来看,有能够挂 32、64、128、256 等不同个设备的驱动器。

RS485 的接口十分简略,与 RS232 所运用的 MAX232 是相似的,只需求一个 RS485转化器,就能够直接与单片机的 UART 串口连接起来,而且运用彻底相同的异步串行通讯协议。可是由于 RS485 是差分通讯,因而接纳数据和发送数据是不能一同进行的,也便是说它是一种半双工通讯。那咱们怎么判别什么时分发送,什么时分接纳呢?

RS485 转化芯片许多,这节课咱们以典型的 MAX485 为例解说 RS485 通讯,如图 18-1所示。


图 18-1 MAX485 硬件接口

MAX485 是美信(Maxim)推出的一款常用 RS485 转化器。其间 5 脚和 8 脚是电源引脚;6脚和 7 脚便是 RS485 通讯中的 A 和 B 两个引脚;1 脚和 4 脚别离接到单片机的 RXD 和 TXD引脚上,直接运用单片机 UART 进行数据接纳和发送;2 脚和 3 脚是方向引脚,其间 2 脚是低电平使能接纳器,3 脚是高电平使能输出驱动器,咱们把这两个引脚连到一同,往常不发送数据的时分,坚持这两个引脚是低电平,让 MAX485 处于接纳状况,当需求发送数据的时分,把这个引脚拉高,发送数据,发送结束后再拉低这个引脚就能够了。为了进步 RS485 的抗搅扰才干,需求在接近 MAX485 的 A 和 B 引脚之间并接一个电阻,这个电阻阻值从 100欧到 1K 都是能够。

在这里咱们还要介绍一下怎么运用 KST-51 单片机开发板进行外围扩展试验。咱们的开发板只能把根本的功用给同学们做出来供给试验操练,可是同学们学习的脚步不应该停留在这个试验板上。假如想进行更多的试验,就能够经过单片机开发板的扩展接口进行扩展试验。咱们能够看到蓝绿色的单片机座周围有 32 个插针,这 32 个插针便是把单片机的 32 个 IO 引脚全部都引出来了。在原理图上体现出来的便是 J4、J5、J6、J7 这 4 个器材,如图 18-2 所示。


图 18-2 单片机扩展接口

这 32 个 IO 口中并不是一切的都能够用来对外扩展,其间既作为数据输出,又能够作为数据输入的引脚是不能够用的,比方 P3.2、P3.4、P3.6 引脚,这三个引脚是不可用的。比方P3.2 这个引脚,假如咱们用来扩展,发送的信号假如和 DS18B20 的时序符合,会导致 DS18B20拉低引脚,影响通讯。除这 3 个 IO 口以外的其它 29 个,都能够运用杜邦线接上插针,扩展出来运用。当然了,假如把当时的 IO 口应用于扩展功用了,板子上的相应功用就完结不了了,也便是说需求扩展功用和板载功用之间二选一。

在进行 RS485 试验中,咱们通讯用的引脚有必要是 P3.0 和 P3.1,此外还有一个方向操控引脚,咱们运用杜邦线将其连接到 P1.7 上去。RS485 的别的一端,咱们能够运用一个 USB转 RS485 模块,用双绞线把开发板和模块上的 A 和 B 别离对应连起来,USB 那头刺进电脑,然后就能够进行通讯了。

学习了第 13 章有用的串口通讯办法和程序后,做这种串口通讯的办法就很简略了,根本是共同的。咱们运用有用串口通讯例程的思路,做了一个简略的程序,经过串口调试帮手下发恣意个字符,单片机接纳到后在结尾增加“回车+换行”符后再送回,在调试帮手上从头显示出来,先把程序贴出来。

程序中需求留意的一点是:由于往常都是将 MAX485 设置为接纳状况,只要在发送数据的时分才将 MAX485 改为发送状况,所以在 UartWrite()函数最初将 MAX485 方向引脚拉高,函数退出前再拉低。可是这里有一个细节,便是单片机的发送和接纳中止发生的时刻都是在中止位的一半上,也便是说每逢中止位传送了一半的时分,RI 或 TI 就现已置位而且立刻进入中止(假如中止使能的话)函数了,接纳的时分天然不会存在问题,但发送的时分就不相同了:当紧接着向 SBUF 写入一个字节数据时,UART 硬件会在完结上一个中止位的发送后,再开端新字节的发送,但假如此刻不是持续发送下一个字节,而是现已发送结束了,要中止发送并将 MAX485 方向引脚拉低以使 MAX485 从头处于接纳状况时就有问题了,由于这时分最终的这个中止位实践只发送了一半,还没有彻底完结,所以就有了 UartWrite()函数内DelayX10us(5)这个操作,这是人为的增加了 50us 的延时,这 50us 的时刻正好让剩余的一半中止位完结,那么这个时刻天然便是由通讯波特率决议的了,为波特率周期的一半。

  • STM32单片机中文官网
  • STM32单片机官方开发工具
  • STM32单片机参阅规划

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/153122.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部