发表于:2009/9/14 21:10:25
#0楼
简介:本文主要是基于can/lin网络,在硬件、软件两方面,针对车身电子系统的功能要求,利用控制器和can/lin网络实现控制。该控制系统实现了整车电器连接的总线化,提高了系统的安全性、可维护性、可扩展性,满足了现代汽车的控制和管理要求。
1 前言
随着电子技术的高速发展和广泛应用,实现汽车电子化、智能化和网络化是现代汽车发展的必然趋势,尤其车身电子控制系统是汽车电气系统中对功能要求较多的一部分。为简化日益增加的汽车电控设备的线路连接,提高系统的可靠性和故障诊断水平,实现各电控设备之间的数据资源共享,并建成开放的标准化、模块化结构,汽车网络总线技术得到了很大发展。其中结合应用can (control area network)总线和lin(local interconnect network)总线,已成为汽车电子技术上的一大发展。
2 总线简介及其通信协议
can总线是德国bosch公司开发的一种串行数据通信总线,特别适用于智能设备之间的互联,以构成智能系统或子系统,目前在汽车上使用的高速网络系统采用的大部分是基于can总线的标准。can网络系统采用总线拓扑结构,传感器、控制器和执行器通过can总线连接起来,所有节点共用一条信道,信道利用率较高,同一时刻只有一个节点是主站并可进行发送,同时can是一种多主方式的串行通讯总线,位速率高,抗电磁干扰性强,能够检测出产生的任何错误并具有优先权和仲裁功能,多个控制模块通过can控制器一起挂到can-bus上,每个节点都有单独的通信处理能力,形成多主机局部网络,其可靠性和实时性远高于普通的通信技术。
can总线通信协议——j1939 通信协议。j1939 协议以can 2. 0b为基础,是can 总线的应用层协议。j1939协议将can标识符划分为如下几个部分:优先级(p)、数据页( pgn)、协议数据单元(pdu) 格式、pdu 特定域(ps) 和源地址(sa)。j1939/ 71应用层文档定义了车辆控制的各种参数及命令的pgn。
lin总线作为使用广泛的can通讯网络的辅助,它基于主从结构,使用单线通讯,减少了大量线束的重量和费用。其目标应用是不需要 can 的性能、带宽及复杂性的低速系统,如开关类负载或位置型系统,包括车的后视镜、车锁、车座椅、车窗等的控制。lin 总线基于通用uart接口,无需硬件协议控制器,几乎所有微控制器都具备lin必需的硬件。和can 总线一样,不需要改变lin,从节点的硬件和软件就可以在网络上增加节点。
lin总线通信协议——是一种建立在通用的sci 或uart 硬件接口上、用于将车辆中分布的智能传感器和执行器连接到车内主控制器的单总线(12v) 串行通信协议。lin协议包括传输协议、传输媒介、开发工具界面以及应用软件等。一个lin 网络由一个lin主节点和多个从节点组成,报文的传送方向和时间由主节点决定。通过l in 总线传输的实体为帧。一个报文帧由帧头以及回应(数据) 部分组成,每个报文帧包括报头和响应两部分。报头由主节点发送,内有同步间歇信号、同步字段信号和标识字段信号;而响应部分可能由主节点或者从节点发送,包含报文长度1~8个字节的有效载荷和1个校验字节。
3 系统硬件总体设计
车身电子控制系统在保证系统可靠工作和降低成本的条件下,具有通用性、实时性和可扩展性等特点。系统控制模块采用微控制器为控制单元,根据功能要求,车身控制系统采用 can/lin总线网络。其中can网络用于车身控制模块和门/窗控制系统模块之间的通讯;lin网络用于各功能系统如门/窗的通信。can总线为多主式,具有速度快,故障检测能力强的特点;lin总线为can总线的简化形式,为单主多从式,总线速度较慢,故障检测能力较差,但系统价格便宜,适于对实时性要求不高的系统。
系统硬件结构如图1所示。由图中可以看出系统硬件主要由主节点模块(can/ lin网关)、从节点模块、can网络和lin网络、读取各电气开关的开关电路模块、电源电路和执行器驱动电路模块等组成。由于can总线和lin总线的传输协议、速度和地址分配空间等均不相同,所以在can网和lin网之间需设置网关。
3.1主节点和从节点
主/从节点的核心是数字信号控制器dspic30f6011,它是16位单片嵌入式控制器,它无缝集成了单片机的控制功能及数字信号处理器的计算能力和数据吞吐能力。dspic30f6011数字信号控制器提供了功能强大的16位单片机所具备的所有功能:快速、复杂和灵活的中断处理;丰富的数字和模拟外围;电源管理;可灵活选择多种时钟模式;上电复位;掉电保护;看门狗定时器;代码加密;全速实时仿真及全速在线调试。输入电源直接来自车载电池,电源部分使用了汽车级的低压差稳压器lm2937,它具有内部短路保护功能和电池反极保护功能,瞬间输入电压可达60v。
3.2 can总线驱动电路与lin总线驱动电路
can控制器和系统物理总线之间的接口采用microchip的can收发器mcp2551,如图2所示。mcp2551符合iso11898标准,其网络节点的数据率可达1 mbps。它适用于12v和24v系统,可承受±250v的瞬态电压和±40v的短路电压,适用于汽车和工业应用。该器件不受自动热偶短路线路的过流损害,这种过流将使得节点温度超过165℃的额定温度时关闭输出驱动器。
图2 can接口驱动电路
lin 总线驱动电路如图3所示,采用microchip的mcp201。该器件遵循lin1.3规范,工作电压范围在6.0v~18v,工作温度在-40~+125℃,可以和标准的uart器件接口。mcp201内部包含一个电压调整电路,可输出5%精度、50 ma 的5v 电源,可为电路板上其它元件提供电源。lin 总线内部包括上拉电阻和二极管,输出驱动大于40ma。该器件还具有过热保护、过流保护、休眠等功能以保证节点的功耗以及器件的安全。在与mcu 接口方面,该器件提供了片选控制信号以及错误/ 休眠状态输出。在图中,二极管d5 用于防止系统电源反接输入对器件产生的破坏。二极管d6 和电阻r9 构成上拉以满足lin1.3规范中对主节点的要求,27v 稳压管d4 可对器件进行保护(mcp201最高输入电压为30v)
图3 lin接口驱动电路
3.3组合开关模块
组合开关模块主要完成电气设备开关的状态检测,它是一个能够在开关触点和控制器之间提供带有低静电流休眠/ 唤醒模式接口功能的集成组件。
3.4驱动电路模块
驱动电路模块带有故障检测、保护和自恢复功能。当电流增大或输出端发生短路时,能自动减小或切断输出电流,保护模块和电气设备不被损坏,并能在故障排除后自动恢复正常工作,代替了原来的继电器和熔断器。驱动模块在自身进行保护的同时,可以通过状态反馈或者内部的总线把信息反馈给mcu,由mcu 进行故障处理,同时mcu把故障信息反馈给仪表,通过仪表指示或者报警。
4 系统软件设计
系统软件设计包括主节点与从节点两部分。
车身控制模块主节点通过can 总线接收车身网络总控制单元的控制命令, 并返回当前控制状态以及故障信息。同时, 它向车身控制模块的子节点发送控制命令, 接收状态信息。主节点作为车身网络中的网关, 将各种控制命令、车身状态数据在lin 总线与can总线之间转发, 使lin总线与can总线无缝结合为一个整体。由网关的功能框图4可以看出,网关具有5个主要的功能,对应的函数分别为:can发送函数fcantrans()、can接收函数fcanrec()、lin发送函数flintrans()、lin接收函数flinrec()以及can/lin协议转换函数fprotocolexchange()。此外,网关要正常工作,还具有初始化函数fcaninit()、设置函数fcanconfig()、发生严重故障时的mcu复位函数fcanreset()以及各种中断处理函数等。
系统中的can总线采用can2.0b标准帧格式通信,标准格式的can2.0b数据帧包括仲裁场、控制场、数据场三部分,如图5所示。sof( 帧起始) 标志数据帧和远程帧的开始,由一个显位构成。仲裁场由标识符和rtr( 远程发送请求位) 组成。rtr 在数据帧为显位, 而在远程帧中必须为隐位,主节点的标识符为0x50。控制场中,标准帧的ide位为显位, r0 为保留位,dlc 为数据长度码。
子系统模块的主程序结构是一个循环结构,在循环内分别调用相关的子程序程序来处理上述功能。另外包括一个中断处理服务程序于对不同中断进行相应处理。图6是从节点主程序的流程示意图。接收lin报文帧处理主要是根据接收到的完整的报文内容调用相应处理程序。发送完lin报文帧处理主要完成帧发送完毕后的处理。通讯错误处理将根据错误类型做相应处理,包括通讯波特率的校正。在检测到总线没有活动时,节点将调用睡眠处理以降低功耗。
从节点lin的通讯是通过中断服务程序来完成的。根据通讯波特率设置定时器timer2,每隔一个位时间产生一次中断,并在中断中调用lin总线时间计时以及通讯处理子程序。lin总线时间计时可用于确认帧是否超时,并检测总线空闲是否超过规定时间。中断服务程序通过帧结束标志位可通知主程序当前帧的通讯过程已结束,主程序可进行相应的处理。在通讯过程中出现一些错误情况时需要设置相应的错误指示,通知主程序,通讯过程由中断服务程序实现。在lin通讯中,主节点发送出标识字段(包含报文id号),从节点根据报文id可确定本节点是否参与当前的帧通讯。如果需要参与当前帧通讯,从节点可根据报文id确定是接收数据或者发送数据以及接收/ 发送数据的长度。因此,主节点和从节点需要事先统一定义报文id及其对应传输方向和数据长度。对于发送数据,设置发送字节数计数器,并设置发送数据缓冲区的地址指针;同样,对于接收数据,设置接收字节数计数器以及接收数据缓冲区地址指针。波特率校准在lin协议中规定从节点时钟发生器使用内部校准时频率容差应小于15%。通讯波特率范围在1k~20k,但通常采用9.6k或者19.6k。在波特率校准时,利用定时器timer2测量同步字段起始位下降沿和bit7下降沿之间的时间长度,然后右移3位除以8得到位时间。
5 结束语
本文采用can/ lin总线网络对车身电子系统进行控制,该网络实现了电子控制系统的网络化和智能化,达到了信息互通、资源共享,提高了整车的性能和技术含量。采用can、lin 总线,代替传统的集中式车身电子控制系统,无论在技术的先进性,还是成本的低廉性上都具有较强的优势。实际应用表明,采用该系统可节约整车线束70%以上。随着国内汽车电子技术水平的提高,采用can/ lin总线控制的新型汽车、客车、轿车等将进一步会得到普及。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=100506&Name=movingtek
1 前言
随着电子技术的高速发展和广泛应用,实现汽车电子化、智能化和网络化是现代汽车发展的必然趋势,尤其车身电子控制系统是汽车电气系统中对功能要求较多的一部分。为简化日益增加的汽车电控设备的线路连接,提高系统的可靠性和故障诊断水平,实现各电控设备之间的数据资源共享,并建成开放的标准化、模块化结构,汽车网络总线技术得到了很大发展。其中结合应用can (control area network)总线和lin(local interconnect network)总线,已成为汽车电子技术上的一大发展。
2 总线简介及其通信协议
can总线是德国bosch公司开发的一种串行数据通信总线,特别适用于智能设备之间的互联,以构成智能系统或子系统,目前在汽车上使用的高速网络系统采用的大部分是基于can总线的标准。can网络系统采用总线拓扑结构,传感器、控制器和执行器通过can总线连接起来,所有节点共用一条信道,信道利用率较高,同一时刻只有一个节点是主站并可进行发送,同时can是一种多主方式的串行通讯总线,位速率高,抗电磁干扰性强,能够检测出产生的任何错误并具有优先权和仲裁功能,多个控制模块通过can控制器一起挂到can-bus上,每个节点都有单独的通信处理能力,形成多主机局部网络,其可靠性和实时性远高于普通的通信技术。
can总线通信协议——j1939 通信协议。j1939 协议以can 2. 0b为基础,是can 总线的应用层协议。j1939协议将can标识符划分为如下几个部分:优先级(p)、数据页( pgn)、协议数据单元(pdu) 格式、pdu 特定域(ps) 和源地址(sa)。j1939/ 71应用层文档定义了车辆控制的各种参数及命令的pgn。
lin总线作为使用广泛的can通讯网络的辅助,它基于主从结构,使用单线通讯,减少了大量线束的重量和费用。其目标应用是不需要 can 的性能、带宽及复杂性的低速系统,如开关类负载或位置型系统,包括车的后视镜、车锁、车座椅、车窗等的控制。lin 总线基于通用uart接口,无需硬件协议控制器,几乎所有微控制器都具备lin必需的硬件。和can 总线一样,不需要改变lin,从节点的硬件和软件就可以在网络上增加节点。
lin总线通信协议——是一种建立在通用的sci 或uart 硬件接口上、用于将车辆中分布的智能传感器和执行器连接到车内主控制器的单总线(12v) 串行通信协议。lin协议包括传输协议、传输媒介、开发工具界面以及应用软件等。一个lin 网络由一个lin主节点和多个从节点组成,报文的传送方向和时间由主节点决定。通过l in 总线传输的实体为帧。一个报文帧由帧头以及回应(数据) 部分组成,每个报文帧包括报头和响应两部分。报头由主节点发送,内有同步间歇信号、同步字段信号和标识字段信号;而响应部分可能由主节点或者从节点发送,包含报文长度1~8个字节的有效载荷和1个校验字节。
3 系统硬件总体设计
车身电子控制系统在保证系统可靠工作和降低成本的条件下,具有通用性、实时性和可扩展性等特点。系统控制模块采用微控制器为控制单元,根据功能要求,车身控制系统采用 can/lin总线网络。其中can网络用于车身控制模块和门/窗控制系统模块之间的通讯;lin网络用于各功能系统如门/窗的通信。can总线为多主式,具有速度快,故障检测能力强的特点;lin总线为can总线的简化形式,为单主多从式,总线速度较慢,故障检测能力较差,但系统价格便宜,适于对实时性要求不高的系统。
系统硬件结构如图1所示。由图中可以看出系统硬件主要由主节点模块(can/ lin网关)、从节点模块、can网络和lin网络、读取各电气开关的开关电路模块、电源电路和执行器驱动电路模块等组成。由于can总线和lin总线的传输协议、速度和地址分配空间等均不相同,所以在can网和lin网之间需设置网关。
3.1主节点和从节点
主/从节点的核心是数字信号控制器dspic30f6011,它是16位单片嵌入式控制器,它无缝集成了单片机的控制功能及数字信号处理器的计算能力和数据吞吐能力。dspic30f6011数字信号控制器提供了功能强大的16位单片机所具备的所有功能:快速、复杂和灵活的中断处理;丰富的数字和模拟外围;电源管理;可灵活选择多种时钟模式;上电复位;掉电保护;看门狗定时器;代码加密;全速实时仿真及全速在线调试。输入电源直接来自车载电池,电源部分使用了汽车级的低压差稳压器lm2937,它具有内部短路保护功能和电池反极保护功能,瞬间输入电压可达60v。
3.2 can总线驱动电路与lin总线驱动电路
can控制器和系统物理总线之间的接口采用microchip的can收发器mcp2551,如图2所示。mcp2551符合iso11898标准,其网络节点的数据率可达1 mbps。它适用于12v和24v系统,可承受±250v的瞬态电压和±40v的短路电压,适用于汽车和工业应用。该器件不受自动热偶短路线路的过流损害,这种过流将使得节点温度超过165℃的额定温度时关闭输出驱动器。
图2 can接口驱动电路
lin 总线驱动电路如图3所示,采用microchip的mcp201。该器件遵循lin1.3规范,工作电压范围在6.0v~18v,工作温度在-40~+125℃,可以和标准的uart器件接口。mcp201内部包含一个电压调整电路,可输出5%精度、50 ma 的5v 电源,可为电路板上其它元件提供电源。lin 总线内部包括上拉电阻和二极管,输出驱动大于40ma。该器件还具有过热保护、过流保护、休眠等功能以保证节点的功耗以及器件的安全。在与mcu 接口方面,该器件提供了片选控制信号以及错误/ 休眠状态输出。在图中,二极管d5 用于防止系统电源反接输入对器件产生的破坏。二极管d6 和电阻r9 构成上拉以满足lin1.3规范中对主节点的要求,27v 稳压管d4 可对器件进行保护(mcp201最高输入电压为30v)
图3 lin接口驱动电路
3.3组合开关模块
组合开关模块主要完成电气设备开关的状态检测,它是一个能够在开关触点和控制器之间提供带有低静电流休眠/ 唤醒模式接口功能的集成组件。
3.4驱动电路模块
驱动电路模块带有故障检测、保护和自恢复功能。当电流增大或输出端发生短路时,能自动减小或切断输出电流,保护模块和电气设备不被损坏,并能在故障排除后自动恢复正常工作,代替了原来的继电器和熔断器。驱动模块在自身进行保护的同时,可以通过状态反馈或者内部的总线把信息反馈给mcu,由mcu 进行故障处理,同时mcu把故障信息反馈给仪表,通过仪表指示或者报警。
4 系统软件设计
系统软件设计包括主节点与从节点两部分。
车身控制模块主节点通过can 总线接收车身网络总控制单元的控制命令, 并返回当前控制状态以及故障信息。同时, 它向车身控制模块的子节点发送控制命令, 接收状态信息。主节点作为车身网络中的网关, 将各种控制命令、车身状态数据在lin 总线与can总线之间转发, 使lin总线与can总线无缝结合为一个整体。由网关的功能框图4可以看出,网关具有5个主要的功能,对应的函数分别为:can发送函数fcantrans()、can接收函数fcanrec()、lin发送函数flintrans()、lin接收函数flinrec()以及can/lin协议转换函数fprotocolexchange()。此外,网关要正常工作,还具有初始化函数fcaninit()、设置函数fcanconfig()、发生严重故障时的mcu复位函数fcanreset()以及各种中断处理函数等。
系统中的can总线采用can2.0b标准帧格式通信,标准格式的can2.0b数据帧包括仲裁场、控制场、数据场三部分,如图5所示。sof( 帧起始) 标志数据帧和远程帧的开始,由一个显位构成。仲裁场由标识符和rtr( 远程发送请求位) 组成。rtr 在数据帧为显位, 而在远程帧中必须为隐位,主节点的标识符为0x50。控制场中,标准帧的ide位为显位, r0 为保留位,dlc 为数据长度码。
子系统模块的主程序结构是一个循环结构,在循环内分别调用相关的子程序程序来处理上述功能。另外包括一个中断处理服务程序于对不同中断进行相应处理。图6是从节点主程序的流程示意图。接收lin报文帧处理主要是根据接收到的完整的报文内容调用相应处理程序。发送完lin报文帧处理主要完成帧发送完毕后的处理。通讯错误处理将根据错误类型做相应处理,包括通讯波特率的校正。在检测到总线没有活动时,节点将调用睡眠处理以降低功耗。
从节点lin的通讯是通过中断服务程序来完成的。根据通讯波特率设置定时器timer2,每隔一个位时间产生一次中断,并在中断中调用lin总线时间计时以及通讯处理子程序。lin总线时间计时可用于确认帧是否超时,并检测总线空闲是否超过规定时间。中断服务程序通过帧结束标志位可通知主程序当前帧的通讯过程已结束,主程序可进行相应的处理。在通讯过程中出现一些错误情况时需要设置相应的错误指示,通知主程序,通讯过程由中断服务程序实现。在lin通讯中,主节点发送出标识字段(包含报文id号),从节点根据报文id可确定本节点是否参与当前的帧通讯。如果需要参与当前帧通讯,从节点可根据报文id确定是接收数据或者发送数据以及接收/ 发送数据的长度。因此,主节点和从节点需要事先统一定义报文id及其对应传输方向和数据长度。对于发送数据,设置发送字节数计数器,并设置发送数据缓冲区的地址指针;同样,对于接收数据,设置接收字节数计数器以及接收数据缓冲区地址指针。波特率校准在lin协议中规定从节点时钟发生器使用内部校准时频率容差应小于15%。通讯波特率范围在1k~20k,但通常采用9.6k或者19.6k。在波特率校准时,利用定时器timer2测量同步字段起始位下降沿和bit7下降沿之间的时间长度,然后右移3位除以8得到位时间。
5 结束语
本文采用can/ lin总线网络对车身电子系统进行控制,该网络实现了电子控制系统的网络化和智能化,达到了信息互通、资源共享,提高了整车的性能和技术含量。采用can、lin 总线,代替传统的集中式车身电子控制系统,无论在技术的先进性,还是成本的低廉性上都具有较强的优势。实际应用表明,采用该系统可节约整车线束70%以上。随着国内汽车电子技术水平的提高,采用can/ lin总线控制的新型汽车、客车、轿车等将进一步会得到普及。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=100506&Name=movingtek
[此贴子已经被jint于2009-9-15 8:46:35编辑过]
深圳市菲益科电子科技有限公司,是一家专注于汽车总线开发与测试工具和解决方案供应商,专业为客户提供世界一流的产品和技术,并自主研发生产CAN、LIN和K-Line总线通讯接口,产品功能涵盖:汽车总线协议开发和测试,ECU节点和网络仿真,ECU自动化测试,ECU故障诊断,总线数据采集和记录,ECU标定(XCP/CCP协议标定)等方面,与国际上多家知名企业形成合作关系,如美国英特佩斯、德国埃贝赫、德国Vector、德国ETAS,共同为国内外的客户提供最先进的产品和服务。