身份证号:35082119860401xxxx 福建龙岩 364000
摘要:在当前汽车行业发展的过程中,电气控制系统的运用为保证汽车的安全性提供了更高的保障,本文就CAN总线的汽车电气控制系统设计进行阐述。
关键词:CAN总线;汽车电气控制;设计
1 CAN总线概述
CAN(ControllerAreaNetwork的缩写),即控制器局域网络。CAN总线是由德国BOSCH公司于1986年进行开发,并随后通过国标ISO11898及ISO11519,如今已经成为国际上被最为广泛应用的工业现场总线之一。尤其在欧洲和北美地区,CAN协议已经是汽车网络的标准协议,成为汽车计算机控制系统和控制局域网的标准总线。在目前的汽车产业中,为了满足对于汽车安全性、便捷性、舒适度、低成本等多种要求,各种不同的电子控制系统不断被开发,并应用于汽车产业中。但是由于这些电子系统之间通信时所需要的数据类型及要求有不同之处,所以,就要由很多条总线构成,并且不同的地方越多,电气件也越多,电线也就越多,线束也就变得越粗越重。而与一般的总线相较,CAN总线在数据通信的应用中,拥有十分突出的实时性、可靠性和灵活性等优势,其性能良好、设计独特,与传统线束比较,多路传输装置大大减少了导线及联插件数目,使布线更为简易,因此,越来越受到人们的重视和青睐,并且被广泛应用在汽车领域。因此,为了适应“减少线束的数量”等要求,先进的汽车就引入了CAN总线配置,采用多路传输系统。如世界上著名的汽车制造商BMW(宝马)、BENZ(奔驰)、ROLLS-ROYCE(劳斯莱斯)等等都采用了CAN总线,作为控制总线,用来实现汽车内部的系统控制和检测执行机构之间的数据通信。
2 智能汽车和智能汽车系统
智能汽车具有自动驾驶的功能,并且集计算机、信息处理和控制、通讯和传感器等多种高端技术于一身。而智能汽车的主要用途,是体现在野外环境中的,其能够依照事先设定的指令,并根据地图信息进行全局路径的规划,还能在行进过程中对周围的环境信息有着极为敏感和及时的感知能力,从而自行做出相应的决策,来引导其自身安全地进行行驶,并完成先前制定的规划和任务。智能汽车除了拥有普通汽车具备的各种功能外,还增加了多种特有的功能。如此众多的信息,如果采用一般的总线进行内部的数据交换,是比较困难的,但是使用CAN总线技术,可以保证系统内数据交换过程中的高速率和安全可靠的性能,因而采用CAN总线,作为智能汽车的内部数据传输技术是必然的。
3 ECU节点
正如上文所述,ECU节点是整个系统中不可或缺的组成部分,主要由CAN通信、信息采集、功率输出以及处理器等部分组成,在软件设计过程中,需要根据实际情况在相应位置写入有针对性的应用程序,在运用过程中表现出非常强大的移植性。ECU节点中主要以下几种端口:第一,功率负载输出驱动口,在运行过程中,最高可以实现30A电流的有效输出,对汽车上的所有负载都能够进行直接驱动,避免了传统控制中产生的安全隐患。第二,开关量输出口,实现对汽车运行中所有开关量的有效采集,如果开关处于闭合状态,则输出口的电平相对较低;如果开关处于断开状态,则输出口的电平相对较高。第三,CAN通信接口,为整个系统的运行提供通信线,创造相对稳定的外围接口。第四,电源输入口,主要是为系统提供有效的电源输入,让所有控制单元都能够运用发电机或车载电池来实现发电。
期刊文章分类查询,尽在期刊图书馆
如果在CAN总线中存在相关的报文信息,则通信模块便会对这些信息进行验收滤波,在完成这项工作以后,便可以触发中断,这些信号便可以传输到主处理器中进行读取,之后将接收缓冲区释放出来,实现对报文信息的格式转换,在运用UART总线,将信息向功率输出控制模块中发送,然后这些信息便可以以一定的顺序为基础,传入到单片机中的I/O口中,实现对负载功率输出的有效控制。
4 应用层协议设计
在CANV2.0规范标准中,只规定了ISO参考模型的物理层和数据链路层, 没有规定媒体的连接单元以及驻留媒体,也没有规定应用层。物理层负责譬如物理信号传输、译码、位时序和位同步等功能,而数据链路层负责总线仲裁、信息分段以及数据安全、数据确认、错误检测、信号传输和错误控制的功能。实际上,即使在执行一些非常简单的基于CAN的分布式系统时。除了基本的两层服务之外,还要求或希望有更多功能,如发送长于8字节的字符串、响应或确定数据传送、标识符分配、网络启动或监控节点。由于这些附加的功能直接支持应用过程,所以它可以被认作“应用层”。如果正确执行,则应用层以及相应的应用层接口(子协议) 为通讯和应用过程提供了一个清晰定义的分界以便把它们区分开来。在一些利用简单的通信协议就可以满足要求的情况下,采用复杂的协议会造成资源的浪费,而且,使用起来也很不方便,反而限制了CAN的灵活性。所以在一些情况下制定适合要求的通信协议,对CAN的开发和使用至关重要。
4.1 数据发送机制
发送机制主要实现将CPU要发送的数据接过来,并整理为符合应用层协议规定的帧格式,将拆卸好的小包(数据帧)顺序放入循环队列中等待发送,并负责管理和维护发送循环队列的止常运转。在定时器定时中断中定期对循环队列进行扫描,如果发现队列中有数据等待发送,则调用发送函数将数据发送到CAN总线。在底层开辟了一个临时缓冲区用于暂时存放等待发送的小包,临时缓冲区采用循环队列的存储结构,对数据实行先入先出的管理模式。循环队列是一个42*11的二维数组,用来暂时安置CPU即将发送的数据,数据被顺序安排在循环队列中等待发送。每增加一帧数据,循环队列的尾指针加1;每成功发送完一帧数据,循环队列的头指针减1。当循环队列中没有数据时,队列的状态为空,否则指示为不空;若循环队列的头指针和尾指针重合而队列又处于不空的状态,此时队列为满的状态。当队列处于满的状态时,禁止向队列再写入数据,否则容易导致数据的覆盖或丢失。在发送机制运转前,首先对发送循环队列初始化,将循环队列的头指针、尾指针赋值为零,将已占用的空间也赋值为零。
4.2 数据接收机制
CAN 接收机制负责将数据从CAN总线上接收下来,按照数据源节点的地址将其还原为发送前的格式,准确无误的传递给上层,并负责为上层提供接口函数。在CPU将数据取走以后,清空相应的数组。在底层开辟了一个临时缓冲区用于暂时存放从CAN总线上接收下的数据,临时缓冲区采用二维数组的格式,容量为4*3*64。第一维的容量为4,分别指示发送节点的地址; 第二维容量为3,作为数据的扩展缓存,指示可连续存放来自于同一节点的包的数目; 第三维的容量为64,用来存放经过整理以后的数据。一般来说,开辟一个二维的空间就可以使协议周转,但是,在实际系统中可能会出现CPU还未能将整理完毕的数据取走此时又接到来自于同一节点的新的数据,这样就可能导致新的数据覆盖掉原来的数据,造成数据的丢失。为避免这种潜在地危险,因此开辟了三维空间,在最坏的情况下,每个节点都可同时容纳来自于同一节点连续发送的3包数据,大大降低了数据丢失的可能性。
5 结束语
综上所述,在当前汽车行业发展的过程中,要不断提升CAN总线在汽车中的应用水平。
参考文献
[1]冉振亚,周智庆,李越,等.电动汽车CAN总线驱动控制系统设计[J].重庆大学学报,2015(6):603一609.
[2]廖文良.基于CAN总线的汽车电气控制系统设计[J].国外电子测量技术,2008(7):36一38
论文作者:陈永金
论文发表刊物:《基层建设》2017年第36期
论文发表时间:2018/4/2
标签:总线论文; 队列论文; 数据论文; 汽车论文; 节点论文; 系统论文; 缓冲区论文; 《基层建设》2017年第36期论文;