图3.1.2 CAN-LIN总线拓扑结构
3.2 硬件设计
车灯部分是其中较为复杂的部分,下面就以车灯节点为例进行车身系统的硬件设计。车灯部分的LIN子网络由一个主节点和五个从节点构成(如图4)。
车灯主节点可以划分成以下几个模块:电源管理模块、LIN通讯模块、CAN通讯模块、输入及控制模块。电源管理模块,主要的功能是把蓄电池的电压转换成稳定的+12V,并用两个7805芯片把+12V的电源转化成VCC和+5V,以供给其它元件使用,同时分别连接到信号地和电源地,以增强抗干扰能力,如图5。LIN通讯模块执行和从节点的信息交换任务,硬件上采用的是MC33399LIN收发器,其中RX和TX引脚分别和主控制器的串口连接,在主节点中需要在LIN引脚上加一个阻值为1K的上拉电阻如图6所示。CAN通讯模块
图3.2(a) 电源管理模块 图3.2(b) LIN通讯模块
采用SJA1000 CAN控制器和82C250 CAN收发器,并用两个光耦6N137进行光电隔离。输入及控制模块是主节点的核心模块,接收控制信号,即灯的开关信号,这里用的微控制器是AT89S52,开关管理芯片为 MC33287,该芯片具有很强的控制功能,并且自带诊断功能,可以很好的管理输入信号,输入信号有左转、右转、雾灯、示廓灯、远光和近光,其中刹车灯和倒车灯的信号来自于上层的CAN网络,不是由这个节点直接控制的。
车灯从节点(以左前灯节点为例)可以划分成以下几个模块:电源管理模块、LIN通讯模块、输出控制模块。电源管理模块和LIN通讯模块都是和主节点类似的,但是从节点LIN通讯模块的MC33399芯片的LIN引脚不用接上拉电阻。输出控制模块的微控制器采用AT89S51。由于功率芯片控制稳定,在车灯的驱动上,均采用功率芯片进行驱动。具体的芯片应用如下:远光灯(65W)用BTS6144,近光灯(55W)用BTS6144,转向灯(27W)和雾灯(27W)用BTS5234L。
3.3 软件设计
在LIN总线系统仿真的软件方面,最重要的就是主节点和从节点的软件设计。本课题要求学生掌握LIN总线网络,并以此设计制作一个类似的节点通讯软件。在此基础上我设计制作了一个UDP通讯软件,通过传输层设计来模拟LIN总线数据帧以及通过网络实现LIN总线的通信方式。
UDP是User Data Protocol的简称,中文名是用户数据包协议,该协议是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。由于UDP是一个无连接协议,传输数据之前源端和终端不建立连接,也就不需要文护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息,即由一个主节点向多个从节点发送信息,比如驾驶员在下车时,通过汽车中控系统同时将车窗关闭。
在LIN总线这一串行通讯网络里,为何使用UDP而非TCP协议?UDP本身是一种不可靠的网络协议,那么还有什么使用价值或必要呢?LIN的目标是为现有汽车网络提供辅助功能,因此LIN总线本身只是一种辅助的总线网络,在不需要CAN 总线的带宽和多功能的场合,比如智能传感器和制动装置之间的通讯使用LIN总线可大大节省成本。在这些情况下UDP协议可能会变得非常有用。因为UDP具有TCP所所不具备的速度优势。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。而反观UDP,由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,因此极大降低了执行时间,使信息传送速度得到了保证。对于LIN总线网络,相对于可靠性来说,该网络内的应用更加注重实际性能,所以为了获得更好的使用效果,权衡了TCP和UDP这两个协议之后,我还是选择了以UDP为核心制作这次的LIN总线仿真系统的通讯软件。 LIN总线车身系统逻辑控制的仿真设计(9):http://www.751com.cn/jisuanji/lunwen_2446.html