论文部分内容阅读
基于LPC2294的汽车高性能CAN总线网关控制器的研发随着汽车电子的不断发展,汽车内部各个电控单元之间的通信不再是传统的点对点通信,而是采用了CAN (Controller Area Network)总线进行通信。CAN总线最初出现在80年代末的汽车工业中,由德国Bosch公司最先提出。CAN总线属于现场总线的一种,与其它的现场总线(如Lon Works、基金会现场总线、HATR等)相比,CAN总线具有如下特性:工作在多主工作方式,即任何时刻,总线上的节点都可以向其它节点发送数据;还具有可靠的错误处理和检测机制,当发送的信息遭到破坏后,可以自动重发;在节点发生严重的错误的情况下,节点可以自动退出总线,这样就不会影响总线上的其它节点。正是CAN总线具有以上特性,使它不仅非常适合应用在汽车上,而且广泛应用于各种工业控制之中。在汽车上,各种电子设备对CAN总线的传输速率要求不完全一样,有的需要较高的传输速率(500Kbps),如ABS防抱死制动系统;有的需要较低的传输速率(125Kbps),如空调舒适系统。对于不同速率的电子单元,如果需要进行信息传输,就需要CAN网关来完成。然而,汽车在道路上行驶难免会发生碰撞,造成CAN总线部分导线的断开,使汽车部分电控单元无法运行,甚至整车无法行驶。因此,这也就对CAN网关的稳定性提出了要求。本文研究的是基于LPC2294的汽车高性能CAN总线网关控制器,与传统的CAN网关不同的是,本次设计的CAN网关除了一组连接高速(500Kbps) CAN网和低速(125Kbps) CAN网的CAN总线(称为主CAN网)以外,还有另外一组相同的CAN总线(称为辅CAN网)。当主CAN网发生故障时,网关控制器检测到该故障,在做出最优分析以后,决定是否启用辅CAN网。这样,就大大提高了整个CAN总线系统的稳定性。这也正是本文的创新之处,也是研究目的。为了完成以上内容,实现高性能CAN网关控制器的设计,论文主要对以下内容进行了研究:首先,详细讲述了CAN总线的协议。由于半导体公司生产的CAN控制器件几乎都支持CAN2.0B规范,而2.0B完全兼容2.0A,因此本文只讲述CAN2.0B。在CAN总线上传输的是差分信号,CAN通信是一种点对多点的传输协议,不是基于地址的传统的点对点传输协议。当一个点传输数据时,总线上的其它点都可以为接受方,它们可以通过ID来作出对总线上传送数据的处理(接收或者丢弃),并且当数据被正确接收到以后,接收方便会作出应答响应。CAN协议还有一个很实用的功能,就是总线上的任一个节点可以请求其它节点向其发送数据,这被称作远程发送请求(RTR)。除此以外,CAN协议还有一个优点,当总线新加入一个节点进行通信时无需更改原有的程序,新节点只要通过ID就可以知道是接收还是丢弃数据。CAN总线有四种帧类型:数据帧,远程帧,错误帧和超载帧。它强大的错误检测机制,使它能够很好的抗干扰,大大增强传输的稳定性。其次,介绍了此次设计的硬件电路图。介绍硬件电路图时,采用分模块介绍的方法。主要介绍了中心控制器(LPC2294),它内部含有4路CAN控制器,非常适合作为网关使用。CAN收发器采用的是PCA82C250,它可以将CAN信号转换为差分信号。为了便于程序的扩展和操作系统的移植,外扩了SRAM和NORFLASH,同时外接了SD卡电路,能够存储一些掉电易失的数据。为了能够更好的进行人机交互,设计了液晶接口电路和按键电路。当然,还有ISP下载的串口电路和JTAG接口电路。然后,在硬件的基础上,介绍了整个系统的软件框图和具体功能的实现情况。为了能够完成整个CAN通信,CAN控制器的初始化至关重要,这就需要对CAN协议的扎实掌握和对CAN术语的深刻理解。在初始化完成以后,才能进一步完成CAN收发程序和滤波接收程序。在以上成功完成的基础上,制定了CAN网关应用层协议。在系统上电以后,首先启动主CAN网,然后发送广播,查看主CAN网上的节点数,如果主CAN网上的节点比实际数目少,则启动辅CAN网,同样也发送广播,如果也比实际的节点少,则CAN控制器会对两个网络的CAN节点进行最有分析,决定是否启用辅CAN网。最后,为了提高系统的实时性,讲述了u C/OS-Ⅱ操作系统的移植和应用。u C/OS-Ⅱ是著名的嵌入式实时操作系统,是可剥夺型内核操作系统。它的成功移植,可以使用户不必再去关心内存的分配,只需要根据优先级创建任务就可以。操作系统可以管理任务的内存和优先级,并且根据优先级的高低,实时的运行各个任务。在论文中,还介绍了一些调试方法,以及调试硬件的心得和体会。良好的调试方法,可以达到事半功倍的效果。本次设计是在实验室条件下完成的。为了能够完成CAN节点信息交互,在实验室里模拟了多个汽车节点,分别连接于主CAN网和辅CAN网。手动模拟部分节点脱离主CAN网,然而测试CAN网关的稳定性。由于本次设计是在实验室条件下完成的,所以存在很多不足。在未来需要进一步完善硬件PCB板和网关应用层设计,尽可能的利用汽车电子单元进行测试,这样完成的设计才会更加接近实际。