欢迎来到天天文库
浏览记录
ID:40983983
大小:23.64 KB
页数:5页
时间:2019-08-12
《客车车身传统电器的网络化设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
客车车身传统电器的网络化设计 随着现代电子技术的不断发展和在汽车上的广泛应用,在使汽车舒适性越来越高的同时,也使得汽车电子与电器系统变得越来越复杂。传统的控制系统大都采用继电器和点对点的对立模式控制,这使车身布线庞大而复杂,安装空间紧缺,同时还会造成严重的电磁干扰,使系统的安全性降低,维修难度增加。据统计,一辆采用传统布线方法的高级汽车中,其电线长度可达2km,电气节点多达1500个。汽车网络技术的应用,使大批的数据信息可以在不同的电子单元中共享,提高了信号的利用率,使信息交换变得安全高效。 在本文讨论的燃料电池大客车中,是在一般客车基础上增加了多种控制部件,形成了信息与数据采集系统、高低压配电系统、电压24V电源系统、整车电器系统、氢检测系统等组成的复杂的电路网络,除了车身电器系统,其它系统都采用了网络技术。由于车身电器的功率消耗很大(在极端的情况下,包括前照灯、雾灯、转向灯、刮水电动机、后视镜、其它照明灯等全部工作时,功率可达800W以上),燃料电池系统需要知道此功率消耗,以更好地调整其性能。所以有必要对燃料电池大客车车身电器进行网络化改造。 一、方案设计 现代汽车上总线应用最广泛的是CAN和LIN总线。燃料电池大客车上层网络采用了CAN网络。 (一)CAN总线 CAN(ControllerAreaNetwork)总线是德国BOSCH从20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯协议。CAN总线属于SAE的B类总线范畴,有以下主要特点。 1.CAN总线为多主站总线,各节点可在任意时刻向网络上的其他节点发送信息,且不分主从。 2.采用独特的非破坏性总线仲裁技术,高优先级节点优先传送数据,故实时性好。 3.具有点对点、一点对多点及全局广播传送数据的功能。 4.采用短帧结构,每帧有效字节数最多为8个,数据传输时间短,并有CRC及其它校验措施,数据出错率极低。 5.CAN总线上某一节点出现严重错误时,可自动脱离总线,而总线上的其他操作不受影响。 6.CAN总线系统扩充时,可直接将新节点挂在总线上,因而走线少,系统扩充容易,改型灵活。 7.最大传输速率可达1Mb/s,直接通讯距离最远可达到10km(速率在5kb/s以下)。 8.CAN总线上的节点数取决于总线驱动电路。 在标准帧(11位报文标识符)时可达到110个,而在扩展帧(29位报文标识符)时,个数不受限。 (二)LIN总线 LIN(LocalInterconnectNetwork)总线使用串行通讯协议,可以有效地支持汽车上分布式机械电子节点的控制。LIN总线属于SAE的A类总线范畴,有以下主要特点。 1.采用12V单线作为通讯介质。信号编码方式为NRZ(8N1)串行数据格式,通讯速率最大可达20kb/s。 2.采用6位信息标识符对传送的数据作标记,即共定义了64个不同的标识符,在整个网络中,该标识符是惟一的。采用该方式可使不同的节点同时接收到相同的数据。 3.采用单主机/多从机模式,无需仲裁机制,数据的优先级由主机节点确定,可以根据需要灵活改变。 4.具有监控总线、数据校验和、标识符双重奇偶校验等错误检测功能,保证数据传输的可靠性。 5.保证信号传输的延迟时间。 6.从机节点无需石英或陶瓷振荡器即可实现自同步。 和CAN相比,LIN最大的优点是成本低。客车车身较长,节点多,使用LIN总线技术可以大大节省成本,并且,车身传统电器网络对实时性要求不高,LIN总线的通讯速率完全能够达到要求;客车车身电器的开关量输入绝大部分都在驾驶员位置,其它位置节点只需接受开关状态报文,控制负载运行即可,所以LIN总线节点的主从关系完全可以满足要求。因此,在燃料电池大客车车身电器系统改造中采用了LIN总线技术。 二、客车网络结构设计 以前的LIN总线技术大都应用于某一小型子网络,例如:灯控系统[1,3,5,6]、车门系统[2,4,7]、车窗与后视镜系统[8],本文将LIN总线技术应用于整个客车车身传统电器网络。 客车车身电器很多,负载类型复杂,主要包括:车灯、电动后视镜、刮水器、门控电磁阀、仪表板指示灯;同时网络要监测的驾驶员位置控制开关量众多,包括:车灯开关、电动后视镜开关、刮水器和车门开关等,总数达20个;车身开关量还包括车门位置的行程开关和车身后侧的后背门报警开关。 考虑到燃料电池大客车车身较长,车身电器较多,将网络按位置分为5个节点,包括1个主节点,左前节点、右前节点、中间节点和后部节点4个子节点,如图1所示。行程开关和后背门报警开关是在子节点位置,而LIN网络是单主多从的结构,子节点不能自主发送报文,在正常状态下,主节点可以通过定时查询的方式来得到其状态信息,在网络睡眠状态下,子节点要能够监测到其状态改变,并唤醒网络,从而将状态信息发送到主节点。各个节点的负载情况如图1所示。 (一)主节点 主节点的主要功能是:网关——作为LIN网络的主任务模块,同时接受CAN报文并将车身电器负载情况发送到上层CAN网络;监测开关量输入;控制仪表板指示灯输出。如图2所示。 主节点要监测的开关量输入很多,采用Freescale公司为汽车而设计的具有睡眠功能的开关监测芯片MC33972来监测开关量的输入,MC33972可以同时监测22个开关,其中14路是监测低有效开关,其它7路可以设置为监测低有效或高有效开关,如图3所示。在微控制器睡眠的情况下可以使MC33972也进入睡眠模式,从而减少功耗。MC33972通过SPI将开关状态信息发送到微控制器。 主节点LIN总线硬件接口电路如图4所示。MC33661是Freescale公司专门为LIN总线设计的具有睡眠功能的物理层接口芯片:兼容LIN2.0标准,支持20kb/s,在特殊条件下可高达100kb/s;睡眠状态下电流为8μA;具有本地和远程唤醒功能;具有短路保护功能。管脚RX、TX分别和单片机的输入输出引脚相连,LIN-Bus是LIN总线,INH和唤醒电路相连。当总线有唤醒信号出现时,总线唤醒信号使MC33661芯片INH管脚电平由低变为高,触发IRQ外部中断,使MCU脱离STOP模式,并唤醒LIN收发器芯片。此唤醒电路只需要1个三极管和其匹配的电阻即可,成本很低。 (二)子节点 子节点要实现的功能比较简单,只需要接受LIN总线上的报文,控制负载(主要是车灯和电机)的开和关,并报告负载的故障信息。一般情况下,需要有微控制器、电源变换电路、LIN物理层接口电路、高端开关、H桥驱动、其它逻辑控制电路。Freescale公司专门为LIN子节点提供了一款智能芯片MM908E625,此芯片包含3部分:8位微控制器MC68HC908EY16内核,接口电路(电压变换,Watchdog,LIN总线物理层驱动)以及应用驱动部分(4个半桥驱动,高/低端开关及一些特殊用途的I/O口)。使用此芯片可以大大简化子节点电路,降低成本。 下面以左前节点为例简要说明子节点的硬件电路。左前节点要驱动的负载包括:左侧的后视镜,左前侧的前照灯、雾灯、小灯,以及前端的转向灯。转向灯、前照灯和前雾灯的驱动是通过微控制器的I/O口控制功率驱动芯片;而后视镜电动机和前小灯是通过芯片本身的应用驱动部分来驱动,控制信息是通过SPI传送的;LIN物理层接口已经集成在芯片中。图5所示为左前节点示意图。微控制器的外部中断输入(IRQ)、复位(RST)分别和应用驱动模块的外部中断输入(IRQ_A)、复位(RST_A)相连,这样就可以保证微控制器和应用驱动模块同时复位。同时,也可以实现外部LIN报文唤醒此子节点:在系统睡眠状态下,LIN物理层接口如果接收到LIN报文,会产生一个外部中断(IRQ_A),从而唤醒微控制器,进入正常模式车门位置的行程开关是在中间节点,其状态监测是通过PTA口,正常状态下,将其设为输入即可,用查询的方式即可得到其状态;在网络要进入睡眠状态,MCU进入STOP模式前,将其设为键盘中断,从而在其状态改变的时候可以唤醒MCU,进而唤醒整个网络。后侧节点的后背门报警开关同样设置。 三、总线通讯模块设计 主节点作为网关要和上层CAN网络和下层LIN子网络通讯,所以需要有CAN总线通讯和LIN总线通讯。子节点只有LIN总线通讯。 (一)CAN总线通讯 网络要求主节点可以接收并过滤上层CAN总线报文,响应某特定的CAN报文,将当前负载状态信息发送到上层CAN网络。CAN总线通讯主要包括3部分:MSCAN初始化、MSCAN接收中断函数和MSCAN报文发送函数。微控制器在STOP模式下,上层CAN报文也可以通过MSCAN接收中断函数唤醒微控制器。 (二)LIN总线通讯 主节点的LIN总线正常通讯函数有Lin_Send()和Lin_Request(),Lin_Send()包含主任务和从任务,Lin_Request()只包含从任务。以数据场长度是2为例来说明2个函数的流程步骤。以下a~c步为主机任务,d~g步为从机任务。 1.发送同步间隔场。 2.验证同步间隔场,并发送同步场。 3.验证同步场,并发送标志符场。 4.验证标志符场,并发送第1个数据字节。 5.验证第1个数据字节,并发送第2个数据字节。 6.验证第2个数据字节,并计算和发送校验和场。 7.接收校验和场。 Lin_Send()执行以上全部步骤,在以上步骤的验证中,如果发生错误,会重新执行一次Lin_Send(),如果依然出现错误,也不再重复。Lin_Request()执行步骤a~c,之后等待接收从机反应(数据场和校验和场),如果在一定的时间内仍然没有接收到从机反应,则不再等待,仪表板相应的指示灯按默认状态显示,同时相应从机不响应错误计数器(例:SlaveNode07_No_Response)加8,如果接收成功,则减1。 只在开关状态变化的时候才会调用Lin_Send()函数。而为了保证仪表板指示灯正确反应当前负载的状态,必须周期性(周期为100ms)地请求相应子节点发送故障信息,这就需要调用Lin_Request()函数。如果某从机不响应错误达到一定值(SlaveNode_No_Response_Limit)时(例如:在某子节点电源断路时),则请求相应子节点发送故障信息的周期改变至5s,这样就可以保证某子节点失效不会影响到整个网络的实时性,同时,如果此时此子节点又重新连接到网络上,通讯也可以回到正常模式。 LIN通讯还包括2个睡眠和唤醒函数:Lin_Sleep(),Lin_Wakeup()。Lin_Sleep()发送睡眠报文,只能由主节点发出,包含主任务和从任务,其格式是标志符场(ID)为0x3C,数据场长度为2,数据与校验和都为0x00。子节点接收到睡眠报文立刻进入睡眠模式,主节点使MC33661和MC33972进入睡眠模式后,微控制器也进入STOP模式。Lin_Wakeup()发送唤醒报文,可以由主节点发出也可以由子节点发出,其格式是只有数据场且只有一个数据字节0x80。由于需要监测车门行程开关和后背门报警开关的状态,在网络正常状态下,主节点可以通过Lin_Request()请求其状态,在子节点进入睡眠状态前,将开关输入设为键盘中断,这样在睡眠状态时,其开关状态的改变就可以唤醒子节点,从而唤醒整个网络。
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处