碧波液压网 欢迎你,游客。 登录 注册

基于单片机控制的RS-485中继器

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  1 引言

  rs-485总线通讯距离远,抗干扰能力强,结构简单,可靠性高,广泛应用于多机远距离通信系统中。其最大传输距离在数据传输速 率为100kbps时为120m,传输速率为10kbps时为1.2km,传输速率降为300bps时可超过4km。最大传输距离的增加是牺牲数据传输速 率为代价的。如果即要保证传输速度,而传输距离又超过rs-485的可靠通讯距离时,必须加中继器延长其通讯距离。

  中继器的设计方案很多,传统的 中继器用一片双可再触发单稳多频振荡器如74hc123和两片rs-485接口芯片来完成数据中转,中转完全由硬件控制,收发时间采用电阻电容组成延时电 路来控制,缺点是电阻或电容本身的误差或运行一段时间后电子器件老化产生的误差及温度的变化,都会影响延时的准确;再者这种中继器要求两个字节之间的通信 时间间隔必须大于一个字节数据的通信时间才能确保不丢失数据,由此就降低了通信速率。

  本文提出的rs-485中继器设计方案用单片机定时器精确控 制收发延时,克服上述缺点,可靠性高。

  2 系统硬件设计

  本中继器采用两个max487来进行数据的中转,一个负责从总线的一端接收数据,一个负责将数据转发到总线的另一端,这种结构达到了增强驱动能力的效果。原理图如图1:

  图1 原理图

  本设计的工作原理其实与传统中继器原理一致,两片max487的ro和di交叉相连并接至单片机的两个中断脚,输出使 能端/re和驱动使能端de短接并分别由p3.4、p3.5来控制收发,电平为低时接收数据,为高是发送数据;a1、b1,a2、b2分别接置总线的两端。系统在空闲状态时p3.4、p3.5经程序开机初始化将两片max487使能端置低,即两端处于接收状态,当有数据时,收到数据的max487输出端 ro会有一个电平低跳变(数据起始位),从而引发单片机中断,进入中断立即将另一片的max487使能端置1将收到的数据发送到总线另一端,并打开定时 器,定时时间到表示一个字节的数据已经中转完毕,再将相应使能端置0,也就是让两个max487都处于接收状态,等待中转下一个字节的数据。需要说明的是,单片机刚上电还没经初始化时io脚电平会为高电平,此时两个max487使能端为高,有时会向外误发一个0,因此在软件中初始化设置一个标志位 sign, 初始化化中将sign置1,只有在sign为1的时候才中转数据,否则有数据时不进行处理,这就排除了误发0的问题。

  3 系统软件设计

  软件由c语言编写,软件主要有初始化函数和中断函数两部分组成。

  初始化函数函数有如下功能:将p3.4、 p3.5置零,使max487使能端为零,总线两端处于等待接收状态;开外部中断等待中转数据开始;置为位中转标志位sign。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论