基于多路模拟开关的CAN总线通信协议设计.docx

上传人:b****2 文档编号:1939599 上传时间:2022-10-25 格式:DOCX 页数:34 大小:287.76KB
下载 相关 举报
基于多路模拟开关的CAN总线通信协议设计.docx_第1页
第1页 / 共34页
基于多路模拟开关的CAN总线通信协议设计.docx_第2页
第2页 / 共34页
基于多路模拟开关的CAN总线通信协议设计.docx_第3页
第3页 / 共34页
基于多路模拟开关的CAN总线通信协议设计.docx_第4页
第4页 / 共34页
基于多路模拟开关的CAN总线通信协议设计.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

基于多路模拟开关的CAN总线通信协议设计.docx

《基于多路模拟开关的CAN总线通信协议设计.docx》由会员分享,可在线阅读,更多相关《基于多路模拟开关的CAN总线通信协议设计.docx(34页珍藏版)》请在冰豆网上搜索。

基于多路模拟开关的CAN总线通信协议设计.docx

基于多路模拟开关的CAN总线通信协议设计

基于多路模拟开关的CAN总线通信协议设计

[摘要]以stm32107vc单片机为背景,以多路模拟开关为基础,以利用CAN总线较强的实时性,较远的传输距离,较强的电磁干扰能力,以及极低传送错误率的特点并添加多路模拟开关实时控制的优化功能用于各种生产现场为目的,详细介绍了CAN总线的特点和通信方式,并以此搭建了各节点间的通信。

详细介绍了CAN总线节点间通信的软件及协议设计,通过程序控制CAN收发器,配置接收中断以及过滤器,根据报文中的ID过滤不需要的信息,并向其他节点发送信息,通过CPU的GPIO向模拟开关发送高低电平,来实现模拟开关在不同情况下打开或关闭通信线路,用来将整个CAN总线上连接的节点分划到各个小局域网中,控制总线上的数据流量,避免不必要的信息传播,减少CAN总线的负担,提高了效率。

[关键词]stm32107vcCAN总线过滤器多路模拟开关GPIO

CANBUSCommunicationProtocolDesignBasedOnMulti-ChannelAnalogSwitch

[Abstract]Basedonthestm32107vcsingle-chipmicrocomputerasthebackground,basedonthemulti-channelanalogswitch,totakeadvantageofthecharacteristicsofCANbus’sstrongreal-time,fartransmissiondistance,strongabilityofelectromagneticinterference,andtheverylowtransmissionerrorrate,andaddaoptimizationfunctionofmulti-channelanalogswitchcontrolinrealtime,usedforvariousproductionsiteforthepurpose,introducedtheCANbuscharacteristicsandcommunicationway,andtosetupthecommunicationbetweeneachnode.IntroducedtheCANbusnodecommunicationbetweensoftwareandprotocoldesign,throughprogramcontroltheCANtransceiver,configurationandreceiveinterruptfilter,accordingtothemessageIDofthefilterdoesn'tneedtoinformation,andsendinformationtotheothernode,throughtheGPIOCPUtosendhighandlowleveltotheanalogswitch,toachievetheanalogswitchonorofflineindifferentcircumstances,usedtoconnectontheCANbusnodepartitiontothesmalllocalareanetwork,controlthedataflowonthebus,avoidunnecessaryinformationdissemination,reducetheburdenoftheCANBUS,improvedtheefficiency.

[KeyWords]stm32107vcCANBUSfiltermulti-channelanalogswitchGPIO

引言

CAN是控制器局域网络(ControllerAreaNetwork,CAN)的简称,属于现场总线(Fieldbus)的范畴,是众多的属于现场总线标准之一,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO118?

8)。

是国际上应用最广泛的现场总线之一。

在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。

它适用于工业控制系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多特点。

它是一种有效支持分布式控制或实时控制的串行通信网络,以其短报文帧及CSMA/CD-AMP(带有信息优先权及冲突检测的载波监听多路访问)的MAC(媒介访问控制)方式而倍受工业自动化领域中设备互连的厚爱。

近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。

由于CAN总线的广泛应用,人们对其要求越来越多,对其的需求也不断变化,基于多路模拟开关的CAN总线通信协议,实现了生产现场局域网中各个节点在不同需求时可以自动选择是否至于相邻的节点通信以提高通信效率,减轻通信压力,使CAN总线变得更加灵活多变,以满足不同的需求。

第一章绪论

1.1CAN总线

1.1.1CAN总线的概念

CAN是控制器局域网络[1](ControllerAreaNetwork,CAN)的简称,属于现场总线(Fieldbus)的范畴,是众多的属于现场总线标准之一,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO118?

8)。

是国际上应用最广泛的现场总线之一。

在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。

1.1.2CAN总线的应用

CAN总线适用于工业控制系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多特点[2]。

近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。

1.1.3多路模拟开关

模拟开关[3]是一种在数字信号控制下将模拟信号接通或断开的原件或电路,从多个模拟输入信号中切换选择所需输入通道模拟输入信号电路。

多路模拟开关一般由开关原件和控制电路两部分组成。

可以方便迅速的断开,接通电路,以实现各种功能的优化。

1.2本文的主要工作——设计基于多路模拟开关的CAN总线通信协议

使用两块stm32107vc主板搭建起CAN总线通信网络,将多路模拟开关加入CAN总线通信系统中,使用GPIO控制多路模拟开关的通断控制CAN总线上不同节点的通信通道的断与开,依照各种生产现场的不同情况,灵活的设计和控制各个节点的通信,避免不必要的通信广播到所有节点,以提高通信效率,减轻通信压力,使CAN总线变得更加灵活多变,以满足不同的需求。

减少为之后复杂的通信模型做基础。

第二章CAN总线系统结构及特点

2.1CAN总线网络结构

CAN总线已用于生活的各个方面,比如工厂生产线,汽车控制系统等,在汽车控制系统中CAN总线的作用就是将整车中各种不同的控制器连接起来,实现信息的可靠共享,并减少整车线束数量。

可以设想一种极端情况,如图2.1所示:

图2.1汽车CAN总线网络示意图

Fig.2.1CarCANbusnetworkdiagram

对于一般的CAN总线网络[4],其网络结构图可以简化为图2所示

图2.2CAN总线网络拓扑结构图

Fig.2.2CANbusnetworktopologicalstructure

2.2CAN总线系统结构

CAN数据传输系统中每个节点的内部增加了一个CAN控制器,一个CAN收发器;每个节点外部连接了两条CAN数据总线[5]。

在系统中每个节点内部还装有一个数据传递终端。

(1)CAN控制器。

CAN控制器作用是接收控制单元中微处理器发出的数据,处理数据并传给CAN收发器。

同时CAN控制器也接收收发器收到的数据,处理数据并传给微处理器。

(2)CAN收发器。

CAN收发器是一个发送器和接收器的组合,它将CAN控制器提供的数据转化成电信号并通过数据总线发送出去,同时它也接收总线数据,并将数据传到CAN控制器。

CAN收发器电路图如图2.3所示

图2.3CAN收发器电路图

Fig.2.3CANtransceivercircuitdiagram

(3)数据传送终端。

数据传送终端实际是一个电阻器,作用是避免数据传输终了反射回来,产生反射波而使数据遭到破坏。

(4)CAN数据总线。

CAN数据总线是用于传输数据的双向数据线,分为CAN高(CAN_high)和低位(CAN_low)数据线。

数据没有指定接收器,数据通过数据总线发送给各控制单元[6]。

CAN总线结构如图2.4所

图2.4CAN总线结构图

Fig.2.4CANbusstructure

2.3CAN总线的特点

(1)多主控制

在总线空闲时,所有的单元都可开始发送消息(多主控制)。

最先访问总线的单元可获得发送权(CSMA/CA方式*1)。

多个单元同时开始发送时,发送高优先级ID消息的单元可获得发送权。

(2)消息的发送

在CAN协议中,所有的消息都以固定的格式发送。

总线空闲时,所有与总线相连的单元都可以开始发送新消息。

两个以上的单元同时开始发送消息时,根据标识符(Identifier以下称为ID)决定优先级。

ID并不是表示发送的目的地址,而是表示访问总线的消息的优先级。

两个以上的单元同时开始发送消息时,对各消息ID的每个位进行逐个仲裁比较。

仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。

(3)系统的柔软性

与总线相连的单元没有类似于“地址”的信息。

因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。

(4)通信速度

根据整个网络的规模,可设定适合的通信速度。

在同一网络中,所有单元必须设定成统一的通信速度。

即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。

不同网络间则可以有不同的通信速度。

(5)远程数据请求

可通过发送“遥控帧”请求其他单元发送数据。

(6)错误检测功能错误通知功能错误恢复功

所有的单元都可以检测错误(错误检测功能)。

检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。

正在发送消息的单元一旦检测出错误,会强制结束当前的发送。

强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。

(7)故障封闭

CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。

由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。

(8)连接

CAN总线是可同时连接多个单元的总线。

可连接的单元总数理论上是没有限制的。

但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。

降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。

第三章CAN总线的通信方式

3.1CAN总线上的电平信号

总线空闲时,CAN_H和CAN_L上的电压为2.5V

在数据传输时,

显性电平(逻辑

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1