前言:本站为你精心整理了探析CAN总线控制系统在汽车上的运用范文,希望能为你的创作提供参考价值,我们的客服老师可以帮助你提供个性化的参考范文,欢迎咨询。
1车身控制系统硬件设计
1.1通用模块设计
为使系统适于分布式安装,节省大量的线束和继电器,将信号采集和功率控制节点设计为具有良好互换性的通用模块。通用模块选用飞思卡尔的MC9S08DZ60为主控制芯片,实现对开关、模拟、脉冲信号的采集功能和对功率负载的控制功能,同时具备SPI和can通信功能以及通信地址的可配置功能。为实现开关信号、模拟量信号的采集和通信地址可配置,选用多路复用芯片MC33993,它通过SPI与MC9S08DZ60通信,可实现共22路开关信号的输入,开关信号输入引脚还可以作为模拟量信号的输入引脚。当作为模拟信号输入引脚时,通过SI写入控制命令,在片选信号CS的上升沿时,将需要采集的模拟量信号接入到AMUX,并在下一个SO输出数据中将对应引脚位的值置为0。AMUX将捕捉到的最高为VDD电压的模拟信号接入到主控芯片,实现该信号的A/D转换。脉冲信号的采集处理,利用三极管的开关通断特性,实现对脉冲信号的计数处理。功率负载的输出控制选用芯片BTS840,它可提供单路12A电流和双路24A电流,并具备过热保护和短路、断路诊断反馈功能,可实现对外接负载工作状态的监控。
1.2数字化仪表设计
仪表选用飞思卡尔的MC9S12D64为主控制芯片。该芯片为112脚封装,有丰富的I/O资源和工业控制专用的通信模块[4],特别适用于汽车。仪表作为系统主控单元,不必配置通信地址,故可将芯片MC33993的输入引脚全部用作采集开关信号。为实时监控车辆状态信息,在仪表上侧布有30个LED指示灯阵列,由主控芯片根据对车辆状态数据进行逻辑运算后,通过I/O引脚控制对应状态指示灯。对发动机转速、车速、机油压力、蓄电池电压、发动机冷却水温、燃油量和前后桥气压等参数,采取驱动步进电机带动指针来指示刻度表盘的实现方式。步进电机的驱动芯片选用MC33976,通过SPI与主控芯片通信,每个驱动芯片可驱动2个步进电机。仪表采用240x120像素的LCD屏,在主页面显示LOGO、重要参数和报警信息,并可分页显示更多信息。仪表还设计有四个按键,主控芯片通过中断方式接收按键信号,通过选择不同按键,可实现LCD屏的分页显示信息,还可以设置日期、时间、主减速比和单圈脉冲数等参数。
1.3CAN通信设计
仪表和通用模块通过CAN总线进行通信。为提高CAN通信性能,选用基于iCoupler磁耦隔离技术的ADUM1201代替常规的光电耦合器,它是符合车用等级的双通道数字隔离器,具有比光电耦合器更高的数据传输速率、时序精度和瞬态共模抑制能力,在性能、功耗等各方面明显优于光电隔离器件[5],具体电路如图2所示。为消除通信线路信号串扰,在ADUM1201两侧分别采用隔离电源供电。高速CAN收发器TJA1040T通过CANH和CANL与总线相连,经过ADUM1201的隔离,再通过TXCAN和RXCAN与主控芯片内CAN控制器相连,实现数据的接收和发送。
1.4CAN通信网络组成
为实现节点间的数据通信,将仪表、通用模块、发动机ECU和尿素液位ECU通过双绞线相连,组成CAN总线网络,同时,为提高通信时的抗干扰能力,在总线两端各配备一个120欧姆的电阻。
2车身控制系统软件设计
系统的软件开发环境为Metrowerks公司的CodeWarrior。仪表将所有采集或通过总线接收到的状态数据经过逻辑运算后,通过LED阵列、LCD屏和步进电机带动指针显示当前车辆状态,并经过CAN总线将控制命令发送给相应模块,实时控制功率负载的启停。车身控制系统各个节点间通过CAN总线收发数据,各个节点的控制模块在主程序中先对CAN控制器进行初始化,分别分配一段内存空间作为接收和发送数据的队列,并通过中断完成CAN总线数据的接收和发送。
3结束语
本文设计了符合CAN通信协议的仪表和通用模块,并与发动机ECU和尿素液位ECU通过CAN总线连接组成整车控制网络,实现了对车辆状态信息的实时监控。采用ADUM1201作为隔离器件,提高了CAN通信的抗干扰能力。信号和负载的通用处理和仪表的集中控制逻辑运算,使系统的售后维护变得更便捷、灵活。本系统已小批量装车后运行数万公里,具有良好的稳定性和可靠性。
作者:廖吉春嵇黎明单位:航天新长征电动汽车技术有限公司重庆长安新能源汽车有限公司