SJA1000的初始化主要是在SJA1000的复位模式下设置相应寄存器。在初始化CAN内部寄存器时应注意同一网络中各模块的通信速率的设置应一致。下面给出SJA1000工作在BasiCCAN模式下的简单的初始化源程序:
以上程序段可以正确初始化SJA1000,为了提高程序可靠性和容错性,实际应用中应该读出SJA1000寄存器内容并加以比较,从而判断是否正确写入。
结束语
基于以上所述的软、硬件设计实现了CAN协议所包括数据链路层和物理层,由于 CAN总线 协议没有定义应用层,因此在实际的应用中有必要定义高层通信协议,即相应的命令、参数和数据的格式。国际上比较流行的基于CAN底层协议的高层协议有DeviceNet和CANopen,我们在简单应用中,采用了自定义的简单通信协议,在此不作叙述。设计的智能数据采集模块应用于电液伺服控制系统以来,运行情况良好,由于CAN总线的应用,大大提高了分布式数据采集和控制系统的灵活性、可靠性和实时性,建立了一个有效的现场总线控制系统的实验教学平台。同时该数据采集模块也可以方便地移植到工业上的其它控制系统中,与其它基于CAN总线的智能控制模块组成CAN现场总线控制系统。