基于SJA1000的CAN总线系统节点仿真平台的实现
2009-09-22 来源:电子设计应用
引言
控制器局域网(CoNtrollerAreaNetwork,CAN),是德国Bosch公司为汽车的监控系统而设计的总线式串行通信网络,它具有良好的组网灵活性、开放性、扩展性和兼容性,它的抗干扰、自诊断、自监控和纠错能力强,可靠性高,它的协议模型结构简单,实时性好,性价比高,便于开发,它是目前唯一有国际标准的现场总线,它的应用范围已经远远超出汽车监控系统,它适用于许多领域中分布式自动控制系统,如:工业过程控制和自动化,智能结构和分布管理等,成为很有推广普及应用潜力的现场总线。
为便于CAN总线在不同领域的推广普及应用,研制一种通用的CAN总线系统基本组成单元――节点的仿真平台,通过仿真使研究开发CAN总线系统的成本和周期降低,这是很有实际应用价值的。
本仿真平台选用Philips公司的SJA1000芯片作为CAN控制器,它除了具有基本CANPCA82C200芯片标准模式的所有功能外,更增加了一种新的工作模式―PeliCAN模式,这种模式支持具有很多新特性的CAN2。0B协议,如:兼容性和扩展性更强,检错和纠错能力更强,支持热插拔等,设计更方便灵活,而芯片价格低廉,很适合作通用的CAN总线系统节点仿真平台之用。
为了适应多种不同领域的自动控制系统仿真需要,可采用普通PC机作为各种不同的自动控制系统的传感器、执行器和人机键控和显示接口的仿真器,形成仿真平台,提高节点的通用性,灵活性和可扩展性。通过仿真PC机可模拟各种不同应用系统。
仿真平台的硬件设计
所设计的CAN总线系统节点仿真平台硬件系统框图如图1所示。
图1CAN总线系统节点仿真平台
总线系统采用价格低廉而安装方便的双绞线作为通信介质,将各节点联接成网络系统。每个节点由CAN控制器、CAN收发器、微处理器和仿真PC机四个功能模块组成。
CAN控制器SJA1000作为核心,执行CAN协议,包括数据的成帧和解帧以及帧的收发等等。
由于SJA1000的总线驱动能力有限,它通过CAN收发器PCA82C250芯片与物理总线联接起来。CAN收发器将来自CAN控制器的逻辑电平信号转换成适合在CAN总线上传输且能被CAN收发器接收的逻辑电平信号,起到抗瞬间干扰和射频干扰,增大通信距离和保护总线等作用;为了进一步增强抗干扰能力,在SJA1000与PCA82C250之间,可用高速光电耦合器6N137实现总线上各CAN节点间的电平隔离。
CAN控制器和收发器配合完成CAN协议中物理层和数据链路层的通信协议功能。微处理器89C51控制SJA1000的功能,包括初始化和监控管理,实现数据的收发通信,执行应用层功能。
仿真PC机通过串口芯片MAX232实现与微处理器之间的电平转换和通信,从而实现与CAN总线通信。PC机可作为各种不同的自动控制系统的传感器、执行器和人机键控和显示接口的仿真器,形成仿真平台,提高节点的通用性,灵活性和可扩展性。通过仿真PC机可模拟各种不同的应用系统。
仿真平台的软件设计(图2)
软件设计主要是对微处理器进行应用编程,实现SJA1000的初始化(包括工作模式、滤波器、中断使能寄存器等初始值的设置),监控管理和键控显示。微处理器采用中断工作模式,使响应速度提高,支持系统实时性。中断流程如图2。
图2中断流程图
软件设计的核心是微处理器与CAN控制器之间的数据通信。最终实现CAN网络节点间的数据通信。编程采用模块化方式,方便修改、升级和调试,支持系统灵活性、开放性和可扩展性。
小结
本文的基于SJA1000的CAN总线系统节点仿真平台,经测试得,可实现两个节点间的数据正确的发送和接收,并实现了节点和仿真PC机之间的通信以及键控输入、数据显示等功能。它的硬件结构简单价廉,软件灵活,易修改、升级和进一步组网等的开发,通过仿真PC机可模拟各种不同应用系统。通过仿真使研究开发CAN总线系统的成本和周期降低,该仿真平台为CAN总线系统在汽车及其它多种不同领域的自动控制系统中推广应用,提供了方便的研究开发条件,为CAN的普及和提高提供了有益的参考实例。