RS-485软件的编程-SKY网络电话
您的位置:SKY网络电话 >> 行业信息>> RS-485软件的编程

RS-485软件的编程

来源:网上转载-RS-485软件  发布时间:2014-08-25 16:05:46

SN75LBC184在接收方式时,A、B为输人,R为输出;在发送方式时,D为输人,A、B为输出。当传送方向改变一次后,如果输人未变化,则此时输出为随机状态,直至输人状态变化一次,输出状态才确定。显然,在由发送方式转人接收方式后,如果A、B状态变化前,R为低电平,在第一个数据起始位时,R仍为低电平,CPU认为此时无起始位,直到出现第一个下降沿,CPU才开始接收第一个数据,这将导致接收错误。由接收方式转入发送方式后,D变化前,若A与B之间为低电压,发送第一个数据起始位时,A与B之间仍为低电压,A、B引脚无起始位,同样会导致发送错误。克服这种后果的方案是:主机连续发送两个同步字,同步字要包含多次边沿变化(如5H,oAAH),并发送两次(第一次可能接收错误而忽略),接收端收到同步字后,就可以传送数据了,从而保证正确通信。

RS-485为了更可靠地工作,在RS-485总线状态切换时需要适当延时,再进行数据的收发。具体的做法是在数据发送状态下,先将控制端置“1”,延时0.5ms左右的时间,再发送有效的数据,数据发送结束后,再延时0.5ms,将控制端置“o”。这样的处理会使总线在状态切换时,有一个稳定的工作过程。数据通信程序基本流程图如图2所示。

 

RS-485软件

 

RS-485单片机通信节点的程序基本上可以分为6个主要部分,分别为预定义部分、初始化部分、主程序部分、设备状态检测部分、帧接收部分和帧发送部分。预定义部分主要定义了通信中使用的握手信号,用于保存设备信息的缓冲区和保存本节点设备号的变量。设备状态检测部分应能在程序初始化后,当硬件发生故障时,作出相应的反应。主程序部分应能接收命令帧,并根据命令的内容作出相应的回应。为缩短篇幅,这里仅给出主程序部分的代码。如下所示:

 

RS-485软件

 

RS-485由于使用了差分电平传输信号,传输距离比RS一232更长,最多可以达到300om,因此很适合工业环境下的应用。但与CAN总线等更为先进的现场工业总线相比,其处理错误的能力还稍显逊色,所以在软件部分还需要进行特别的设计,以避免数据错误等情况发生。另外,系统的数据冗余量较大,对于速度要求高的应用场所不适宜用RS-485总线。虽然RS-485总线存在一些缺点,但由于它的线路设计简单、价格低廉、控制方便,只要处理好细节,在某些工程应用中仍然能发挥良好的作用。总之,解决可靠性的关键在于工程开始施工前就要全盘考虑可采取的措施,这样才能从根本上解决问题,而不要等到工程后期再去亡羊补牢。

上一条:RS-485硬件电路设计中需注意的问题
下一条:关于网络电话的H.323协议