CAN为什么被设计作为汽车环境中的微控制器通讯

2025-01-16

控制器局域网总线(CAN,Controller Area
Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。

电子送经卷取系统是纺织工艺流程的一个重要环节,其控制性能的优劣直接影响着工艺过程及织机的效率。然而,通信又是该系统的关键技术,使得电子送经卷取系统通信的设计受到国内外纺织公司(德国的百格拉,意大利的舒美特等公司)的高度重视,提出了多种设计方案。然而,中国用户仍然面临着剑杆织机送经和卷取系统的价格昂贵、操作复杂,数据传输效率低等问题。

CAN(控制器局域网)总线是一种有效支持分布式控制和实时控制的串行通信网络,与其它通讯相比,其数据通信具有突出的灵活性和可靠性。ARM控制器可以满足一般的工业控制的需要,其具有减少系统硬件设计的复杂度和性价比高等优点而得到广泛应用。

控制器局域网是国际上应用最广泛的现场总线之一。CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。一个由CAN
总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用Philips
P82C250作为CAN收发器时,同一网络中允许挂接110个节点。CAN
可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。

CAN是在1980年代初所制定的规格,一开始是由罗伯特·博世公司所开发,并在1993年标准化(ISO
11898-1),被广泛的应用在各种车辆与电子设备上。CAN为一序列总线,它提供高安全档次及有效率的即时控制。更具备了调试和优先权判别的机制,在这样的机制下,网络消息的传输变的更为可靠而有效率。CAN亦提供多主控端的架构,这种特色,特别适合使用在主系统或子系统下提供更完整智能网络设备,如感测器及致动器。CAN是创建在基于信息导向传输协议的广播传输机制(broadcast
communication mechanism)上。CAN定义信息的内容,利用消息识别子(message identifier,每个message
identifier在整个网络中皆为独一无二的)来定义内容和信息的优先顺位,以进行信息的传递。并非使用指派特定站台地址(station
address)的方式。如此,CAN拥有了高度的弹性调整能力,可以在既有的网络中增加站台而不用在软硬件上作修正与调整的作业。除此之外,信息的传递不是建构在特殊种类的站台上,增加了在升级网络时的便利性。即时的信息传输(Real-time
data transmission)为CAN的特色之一。在即时的运算中,消息传递的优先级应以重要性来分,重要性较高的消息会比较不重要的消息传递的更频繁。

1 送经卷取系统的总体设计

根据技术及经济需求,本设计选取ARM7-LPC2194为主控制器,作为CAN网络节点控制器,(其中LPC2194内部集成有四路CAN控制器而不必外接CAN控制器),应用CAN总线技术和接口电路,实现了节点间的高效数据交换和传输。系统总体框图如图1所示。



CAN为什么被设计作为汽车环境中的微控制器通讯 (https://ic.work/) 移动通信 第1张

2 系统的硬件设计

2.1 系统CAN总线的实现

送经卷取系统主要由内部集成有四路CAN控制器的ARM7-LPC2194芯片、光电隔离器TLP2631、CAN收发器PCA82C250及送经卷取驱动器等元件组成,其结构如图2所示。



CAN为什么被设计作为汽车环境中的微控制器通讯 (https://ic.work/) 移动通信 第2张

本设计分别将协议控制器通过串行数据输出线TX和串行数据输入线RX连接到光电隔离器TLP2631的3管脚和7管脚,实现了光电隔离。利用CAN收发器。PCA82C250将从光电隔离器TLP2631输出的差动的总线信号转换成逻辑信号电平并在RxD输出,接收到的串行数据通过与总线电缆相连的差动发送和接收总线终端CANH和CANL将数据送到总线协议控制器译码,完成了普通电平到显、隐性电平的传输。CAN总线获取显、隐性电平后,再经过PCA82C250和光电耦合器TLP2631将数据传输给送经驱动器、卷取驱动器的CAN接收端口,从而实现了基于CAN总线的数据传输。

2.2 系统抗干扰的设计

信号数据传输过程中,存在着扰动,为此本设计采取以下措施来克服干扰的影响:

1)为了满足光电隔离的要求,本设计在协议控制器和CAN收发器之间加入了TLP2631光电隔离器,有效地抑制了传输线中由于耦合电容、电感造成的干扰,实现了不同电平的转换。

2)为了匹配数据总线的阻抗和提高数据传输的抗干扰能力,在CAN总线终端的两端加有两个120
Ω总线阻抗匹配电阻。若不接这两个电阻,有时甚至无法通信。采用屏蔽双绞线以减少现场环境对结点的干扰。

3 系统的软件设计

送经卷取系统的软件设计是实现数据高效通信的关键,本文的软件部分主要由数据采集程序和CAN总线通信程序设计两部分组成。其中数据采集程序可参考文献,本文重点论述CAN通讯程序的设计。

3.1 开发环境

软件开发环境,选用ADS1.2集成开发环境,ADS是ARM微控制器集成开发工具。ADS1.2支持ARM10之前所有ARM系列,支持软件调试及JTAG硬件仿真调试,支持汇编语言、C/C++源程序;具有编译效率高、系统库功能强等特点;可以在WINDOWS
98、WINDOWS XP、WINDOWS 2000上运行。

3.2 CAN总线通信主程序的设计

本程序采用模块化结构,来实现各结点间的通信。程序首先对CAN控制器函数初始化,其次检测是否有接收帧和数据异常,实现数据的接收和发送。从而完成ARM芯片启动代码的编码,其结构如图3所示。然后,主程序通过调用CAN启动驱动程序提供的接口,便可实现数据的有效传输。



CAN为什么被设计作为汽车环境中的微控制器通讯 (https://ic.work/) 移动通信 第3张

3.3 CAN控制器函数初始化

CAN控制器初始化,主要是完成总线的参数设置,其主要包括硬件使能、寄存器复位、波特率及验收滤波器的工作方式等设置,其结构如图4所示。

CAN为什么被设计作为汽车环境中的微控制器通讯 (https://ic.work/) 移动通信 第4张

硬件使能是通过寄存器来控制多路开关并使其与CAN控制器连接,因为CAN的某些寄存器必须在软复位状态下读写,所以一定要进行软件复位。

初始化子程序采用的主要函数如下:

CAN为什么被设计作为汽车环境中的微控制器通讯 (https://ic.work/) 移动通信 第5张

3.4 数据接收子程序

接收数据可采用查询方式或中断方式,本文采用数据查询方式,完成子程序的设计,利用旁路滤波器,通过查询接收数据存储空间,判断是否接收信息寄存器、标识符寄存器、数据寄存器的RX帧。由于接收缓冲区的容量不大,所以接收缓冲区接收帧,必须立即进入环形接收缓冲区,然后再对环形接收缓冲区里的信息进行分类处理。

3.5 发送子程序

总线将采集到的数据(Tx帧信息寄存器、Tx标识符寄存器、Tx数据寄存器A、Tx数据寄存器B)经过打包成符合发送帧格式的数据后,通过调用发送数据函数进行数据的发送。程序首先检查LPC2194的3个发送缓冲区和总线的空闲空间,通过查询CANSR的TCS位,将帧传到总线,结构如图5所示。

CAN为什么被设计作为汽车环境中的微控制器通讯 (https://ic.work/) 移动通信 第6张

解决国内电子送经卷取系统数据传输率低和国外系统价格昂贵问题,本文设计了一种基于ARM7的纺织机送经和卷取系统,利用性价比高的主控器ARM7-LPC2194、CAN接收器PCA82C250和光电耦合器TLP2631,实现了送经卷取系统总线的网络节点设计,较好地解决了纺织机的电子送经和卷曲系统的数据传输问题,该系统自动化程度,具有高效的通信率和抗干扰能力。同时,本系统的通信方案,对于其它工业测控领域也具有较好的应用前景。

控制器局域网CAN( Controller Area
Network)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。是由德国博世公司在20世纪80年代专门为汽车行业开发的一种串行通信总线。由于其高性能、高可靠性以及独特的设计而越来越受到人们的重视,被广泛应用于诸多领域。而且能够检测出产生的任何错误。当信号传输距离达到10km时,CAN仍可提供高达50kbit/s的数据传输速率。由于CAN总线具有很高的实时性能和应用范围,从位速率最高可达1Mbps的高速网络到低成本多线路的50Kbps网络都可以任意搭配。因此,CAN己经在汽车业、航空业、工业控制、安全防护等领域中得到了广泛应用。随着CAN总线在各个行业和领域的广泛应用,对其的通信格式标准化也提出了更严格的要求。1991年CAN总线技术规范(Version2.0)制定并发布。该技术规范共包括A和B两个部分。其中2.0A给出了CAN报文标准格式,而2.0B给出了标准的和扩展的两种格式。美国的汽车工程学会SAE在2000年提出了J1939协议,此后该协议成为了货车和客车中控制器局域网的通用标准。CAN总线技术也在不断发展。传统的CAN是基于事件触发的,信息传输时间的不确定性和优先级反转是它固有的缺陷。当总线上传输消息密度较小时,这些缺陷对系统的实时性影响较小;但随着在总线上传输消息密度的增加,系统实时性能会急剧下降。为了满足汽车控制对实时性和传输消息密度不断增长的需要,改善CAN总线的实时性能非常必要。于是,传统CAN与时间触发机制相结合产生了TTCAN(Time-Triggered
CAN),ISO11898-4己包含了TTCAN。 TTCAN总线和传统CAN总线系统的区别是:总线上不同的消息定义了不同的时间槽(Timer
Slot)。


文章推荐

相关推荐