CAN总线技术在汽车中的应用

发表时间:2020/5/22   来源:《电力设备》2020年第3期   作者:谢诚
[导读] 摘要:cAN总线是在20世纪80年代初,为了解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯协议。
        (天津市航天安通电子科技有限公司  天津  300000)
        摘要:cAN总线是在20世纪80年代初,为了解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯协议。它的短帧数据结构、非破坏性总线性仲裁技术以及灵活的通讯方式适应了汽车的实时性和可靠性要求。
        关键词:CAN总线技术;汽车
        汽车总线更是一项朝阳产业,有着无限的前景;目前在进入家庭的十万元车型中,广本飞度、POLO劲取已经采用CAN线技术,汽车电气维修率低,市场反映良好,相信总线系统在中国汽车工业的普及应用为期不远。
        1 CAN总线的特点
        CAN作为一种多主总线,支持分布式实时控制的通讯网络。其通讯介质可以是双绞线、同轴电缆或光纤。在汽车发动机控制部件、传感器、抗滑系统等应用中,总线的位速率最大可达lMbit/s。CAN总线属于总线式串行通讯网络,由于其采用了许多新技术及独特的设计,与一般的通讯总线相比,CAN总线的数据通讯具有突出的可靠性、实时性和灵活性。其特点可以概括如下:为CAN多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息。利用这一点可方便地构成多机各份系统。CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求,高优先级的数据最多可在134us内得到传输。CAN采用非破坏性总线性仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则可能)。CAN只需通过帧滤波即可实现点对点、一点对多点及全局广播等几种方式传送接受数据,无需专门的“调度”。采用NRz编码,直接通信距离最远可达lOkm(速率5kbps);通信速率最高可达lMbps(此时通信距离最长为40m)。
        2 CAN总线技术在汽车中的应用
        (1)CAN节点设计。节点ECU的设计(硬件)开发可以选择带有在片CAN的微控制器,也可以选择其它微控制器和相应的片外CAN控制器、收发器。以后者为例说明Ecu的开发。带有接口的Ecu设计是总线开发的核心与关键,其中Ecu的总线模块有几个功能单元构成控制器和收发器。控制器执行完整的协议,完成通讯功能,包括信息缓冲和接收滤波。控制器与物理总线之间需要一个接口一一收发器,它实现控制器与总线之问逻辑电平信号的转换。CAN控制器和收发器完成CAN物理层和逻辑电路层的所有功能。应用层的功能则由软件来实现。提供对总线的差分发送和接收能力。它与Is01 1898标准完全兼容。汽车控制系统的设计关键是高可靠性,而汽车本身电源输出非常不稳定。这对控制单元中cPU影响很大,会引起死机和跑飞。因此在每个控制单元中都加入了稳压电路,以保证CPu的正常运行。另外在电路设计中还加入了电源监控和看门狗芯片,以进一步增加可靠性。汽车的工作环境非常恶劣,为保证控制单元在意外情况下不至于损坏,输出和输入接口应尽量使用隔离技术。
        (2)CAN网络通讯的实现。设计的三层结构模型为:物理层、数据链路层和应用层。物理层和数据链路层的功能由CAN接口器件完成,包括硬件电路和通讯协议两部分。通讯协议规定了四种不同用处的网络通讯帧,即数据帧、远程帧、错误指示帧和超载帧。通讯协议的实现,包括各种通讯帧的组织和发送,均是由集成在sJAl000通讯控制器中的电路实现的,因此系统的开发主要在应用层的设计上。

应用层软件的核心部分是CPu与sJAl000通讯控制器之间的数据接收和发送程序,即cPU把待发的数据发给sJAl000通讯控制器,再由sJAl000通讯控制器发到总线上;当sJAl000通讯控制器从总线接受到数据后,cPu再把数据取走。对于单片机而言,操作sJAl000就象访问外部RAM一样简单。首先,应对sJAl000中的有关控制寄存器写入控制字,进行初始化。之后,cPu即可通过SJAlooO接收/发送缓冲区向物理总线接收和发送数据。发送数据采用查询控制方式,将新信息放进缓冲器之前主控制器必须检查状态寄存器中的发送缓冲器状态标志TBs:当发送缓冲器被锁定,定期查询状态寄存器,主控制器等待,直到发送缓冲器被释放;当发送缓冲器被释放,主控制器将新信息写入发送缓冲器,并置位命令寄存器中的发送请求TR标志,此时SJAl000将启动发送。接收数据采用中断方式,根据CAN协议规定,信息的接收由控制器sJAl000独立完成。如果已接收一条信息,这条信息已通过验收滤波器且已放在接收FIFO中,那么会产生一个接收中断。因此,主控制器能立刻起作用,将接收到的信息送到信息存储器,然后通过对命令寄存器的相应标志RRB置位,释放接收缓冲器。汽车上的多个气囊可通过CAN 协调工作,它们通过传感器感受碰撞信号,通过CAN总线将传感器信号传送到一个中央处理器内,控制各安全气囊的启动弹出动作。
        (3)抗干扰技术。开关量输入、输出软件的抗干扰措施,当控制系统存在输入干扰,可以采用软件重复检测的方法,以达到“去伪存真”的目的。对接口中的输入信息进行多次检测,只有当检测结果完全一致,才认为输入正确。开关量输出软件的抗干扰设计,主要是采取重复输出的方法。对于那些用锁存器输出的控制信号,这些措施很有必要。“看门狗”技术,CPu受到干扰而失控,引起程序跑飞和“死循环”。程序监视技术(又称“看门狗”技术)就是不断监视程序循环运行的时间,若发现时问超出已知的循环时间,则认为系统陷入了“死循环”,然后强制复位。由于汽车数据信号的多源性与实时控制性,要求任何时候每个节点都必须有完善的机制应对各种情况,不能在程序运行过程中出现任何等待、死循环、嵌套不明退出等操作,而且由于汽车的发动机附近干扰相当大,更要求软件与硬件都有完善的防护和高度的稳定性。为此,欧美的大型汽车制造商都有自己专门针对汽车软件编程的团队,并不断总结程序编写中需要做出的防护,比如不允许c语言的_二层指针嵌套,规定存储操作的时间上限,多任务处理的时序控制等等。专门针对汽车行业做出了程序编写的规范,按照此规范编写的总线节点控制程序,经过这些年汽车行业的实际应用已经被验证是稳定可靠的。整个系统分为高速和低速两部分。动力传动总线和安全总线合并成高速总线,这样做降低了通信的实时性,但是考虑到传动系总线中一般是周期性的数据,而安全总线中一般是突发性的数据,只要选择合适的帧优先级就可以弥补这个缺点。舒适总线和信息总线合并为低速总线,这两部分中对数据的实时性要求不高,125Kbps 的速率完全可以满足需求。同时这些软件也具有总线监测和仿真功能。而整个总线网络系统的开发过程一般分为三个步骤:1)整个系统的纯软件建模与仿真。这个过程的整个网络所有节点都是虚拟的,都足依靠软件强大的模拟和仿真来实现整个汽车数据系统的网络虚拟操作。2)替换其中一个节点为真实硬件节点。将仿真成功的节点转化为硬件并真实接入该仿真网络,并检验此真实节点功能;并逐步将其他节点从软件仿真转换为真实接入。3)所有仿真节点全部转换为真实节点,平台软件仅使用监测功能监测整个网络的信息传输状态,并做各个节点控制程序的错误纠正和修改。
        总线以其高性能、高可靠性及其独特的设计越来越受到人们重视,并被认为是汽车电控系统中最有前途的总线之一,汽车CAN总线的普及和发展是大势所趋,是提高汽车性能的一条很好途径。
        参考文献:
        [1] 邬宽明.CAN 总线原理和应用系统设计[M].北京航空航天大学出版社,2018.11.
        [2] 周震.基于CAN 总线的车身控制模块[M].南京航空航天大学出版社,2019.07.
        [3] 李刚炎.于翔鹏.CAN 总线技术及其在汽车中的应用[M].中国科技出版社.
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: