·上一文章:汽车LED照明系统的挑战和解决方案
·下一文章:汽车导航系统的功耗问题研究
2.3 CAN总线接口功能设计
CAN正常工作需要具备CAN控制器以及CAN总线驱动器。前者实现网络层次结构中数据链路层和物理层的功能,后者则提供CAN控制器与物理总线之间的接口以及对CAN总线的差动发送和接收功能。LPC2292微控制器包含两个CAN控制器,单个总线上的数据传输速率高达1 Mbps,具有32位寄存器和RAM访问功能,带有全局滤波器和验收滤波器。本系统采用CTM8251D双路带隔离CAN收发器,至少可连接110个节点,通过扩展CAN总线接口,使得串行通信方式的选择更加多样化。当车内仪表也具有CAN总线接口的时候,它们可以直接利用此接口与记录仪通信。CAN总线接口电路如图4所示。
CAN通信与一般的串口通信类似,在数据通信前先要对CAN总线进行初始化操作,包括CAN控制器的选择、数据寄存器的设置、通信波特率的设置等。初始化完成后,需要设置双方的通信协议,建立彼此的连接。只有在同一协议下工作的双方才能正确进行数据的交换。本系统设置的CAN通信协议为:无过滤条件、 bypass模式、波特率可以预先设置。
本系统提供的CAN-BUS通信函数接口如下:
①初始化CAN:int CAN_Init(int cannum,uint32volatile baudset)。
函数入口参数:cannum为CAN控制器的选择标志符,为1选择CAN0控制器,为2选择CAN1控制器;baudset为波特率,可以预先设置。
函数出口参数:初始化成功返回0,失败则返回1。
函数功能:对CAN控制器进行初始化。