发表于:2003-01-20 15:19:00
楼主
DeviceNet网络允许的波特率共有三种:500K、250K、125K。在设备联入网络之前,需要用户根据当前网络的要求选择一种工作波特率。为了满足设备热插拔的要求,很多接入设备除了提供波特率的人工设置之外,还必须具备波特率自动检测的功能。
根据CAN总线的特点,每一个网络上的节点对接收到的报文都具有自动应答机制,根据接收到的信息正确与否发出应答信息和出错信息。在设备联入CAN网络后,根据网络通信安全的要求,在没有得到波特率的正确设置前,不允许发送任何的信息,也就是说,接入节点必须具有“只听”功能。DeviceNet是基于CAN总线的协议规范,要实现接入设备的波特率自动检测,也必须使通讯接口在波特率没有确认前处于“只听”模式。
很多DeviceNet通讯接口在设计上都是采用CAN协议芯片或者内嵌式的CAN接口,为了实现其“只听”功能,可以在其发送接口与总线驱动芯片之间加上一级或门。也有一些CAN协议芯片内部具有“只听”功能,例如Philip的CAN控制芯片SJA1000,在其扩展CAN功能中就有对应的模式寄存器,可以在不增加其他外部电路的情况下完成“只听”模式的设置。
波特率的自动检测,是通过对网络信息的侦听来实现的,也就是说,网络上首先要具有正确传输的报文信息,接入设备才有可能识别出网络的波特率信息。
首先,需要保证接入设备在网络上电前已经加入网络。这时,当上电时,根据DeviceNet网络协议,每一个从站节点都会有自检和应答信息,这给自动波特率检测提供了较好的时机。
根据这一结论,还可以假想出波特率自动检测的比较极端的情况,那就是“孤立节点”的情况,网络上只有接入设备本身这一个节点,这时候网络上没有传输信息,也就无法侦听和识别波特率,这种情况下只有等待,直到有另一节点加入或者主站设备主动发送有效信息。