2009-02-13
评论2
楼主 2009/2/11 13:18:26
在接收屏蔽寄存器中值为1的位表示接收的CAN报文相应的位可以为1或者0,这样的设置情况下,用X表示的位不用关心,只要其它位与接收编码寄存器相应的位一致就行了,因此CAN控制器可以接收64中不同的报文。
SJA1000基本模式接收过滤
3.CAN总线收发接口电路芯片Philips 82C251
Philips 82C251是Philips公司于98年推出的CAN总线收发接口电路芯片。和以前的82C250相比,82C251具有25V过压保护的功能,在工艺上有也有一些改进。
对于CAN控制器及带有CAN总线接口的器件,CAN总线收发接口电路芯片并不是必须使用的器件,因为多数CAN控制器均具有配置灵活的总线收发接口,并允许总线故障,只是驱动能力一般只允许20个左右的节点连到同一条总线上,而82C250/82C251支持多达110个节点,并且能够以1Mbps的速率工作于恶劣的电气环境下。利用CAN总线收发接口电路芯片还可以方便的在CAN控制器与收发器之间建立光电隔离,从而实现总线上各节点之间的电气隔离。
DeviceNet正是利用CAN控制器的(如INTEL82527,Philips SJA1000)的双相位输出方式,通过设计适当的接口电路,实现了网络供电的功能。作为提供对CAN总线的差动发送和接收功能的器件,82C251的主要特性如下:
*与ISO 11898标准完全兼容;
*高速性(最高可达1Mbps);
*具有抗瞬时干扰,保护总线的能力;
*降低射频干扰的斜率控制及热保护;
*总线与电源及地之间的短路保护;
*25V的过压保护功能;
*低电流待机方式和掉电自动关闭输出;
*支持多达110个节点相连接。
DeviceNet通过24V的直流电源进行网络供电,由于82C251所具有的25V过压保护功能,可以避免接线错误对设备带来的损坏。因此我在DeviceNet节点设计时采用了82C251。
对于市场上众多的CAN芯片和微处理器,在DeviceNet的开发中没有一个通用的选用方案,下面我们给出一些基本的准则:
*所有使用11位标识符的CAN芯片都可以使用,DeviceNet对于29位长标识符即不要求也不能使用。
*对于仅支持Group2的设备,CAN控制器的基本工作模式有很好的性能。并且,DeviceNet协议对仅支持Group2的设备的通讯协议为基本工作模式作了优化。
*CAN有两种形式,独立式控制器和嵌入式控制器。使用嵌入式控制器可以减小电路设计的尺寸,但是我们推荐该种控制器仅仅用在某些局部的场合,当满足我们所有开发的需求时。选用独立式控制器允许设计时充分的灵活性。另外在决定选择何种CAN控制器之前,还可以考虑一些有关微处理器的仿真芯片及其功能。
*每个设备都需要有一个区别于其它厂商和区别同一厂商生产的其它设备的32位唯一系列号。因此设备可能要引入Non-Volatile,另外如果需要可设置的参数,那么必须要Non-Volatile存储。
*要特别注意当CAN重置和上电时CAN_H和CAN_L的状态。因为CAN控制器有可能会出现电压漂移或者总线电位不对。因而在实际设计时在TxD脚和收发器之间加上无源推拉电路或者变极器来增强信号抗干扰能力。
*不用的管脚(RX0或者RX1)不能处于漂移状态,可以把它们接到收发器的Vcc/2或者使用电压分频器,防止错误帧的产生。尽管有些CAN控制器可以通过寄存器设置来使某些管脚无效,但最保险的做法是让这些管脚处于正确的电位。
楼主 2009/2/13 16:12:35