第12章增强型控制器局域网(eCAN)_第1页
第12章增强型控制器局域网(eCAN)_第2页
第12章增强型控制器局域网(eCAN)_第3页
第12章增强型控制器局域网(eCAN)_第4页
第12章增强型控制器局域网(eCAN)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第12章增强型控制器局域网(eCAN)12.1CAN总线概述12.1.1CAN网络和模块12.1.2CAN协议概述12.2TMS320F281xeCAN模块概述12.2.1TMS320F281xeCAN的结构与特点12.2.2eCAN的工作模式12.2.3eCAN的内存映射12.2.4eCAN的消息对象和消息邮箱12.2.5eCAN的寄存器周鹏安徽工程大学电气工程学院大学电气工程学院12.3eCAN的配置12.3.1eCAN的波特率配置12.3.2eCAN的初始化12.3.3eCAN的配置步骤12.3.4消息的发送操作12.3.5消息的接收操作12.3.6远程帧邮箱的处理12.3.7eCAN的中断12.3.8eCAN的本地断电模式周鹏安徽工程大学电气工程学院大学电气工程学院在C28xDSP中使用的增强型控制器区域网络(eCAN)模块与现行的CAN2.0标准兼容。它可使用已制定的协议在存在电子噪声的环境中与其他控制器进行串行通信。借助32个完全可配置的邮箱和时间标志(time-stamping)特性,eCAN模块提供了一种具有通用性和鲁棒性的串行通信接口。本章在CAN2.0基础上,介绍C281xeCAN接口的结构、工作方式、寄存器、中断等内容,并以详细的实例来介绍如何使用eCAN接口收发报文。周鹏安徽工程大学电气工程学院大学电气工程学院12.1CAN总线概述CAN是控制器局域网(ControllerAreaNetwork)的简称,是德国博世公司为了解决各种各样的汽车电子控制系统之间的高速通信开发的通信协议。此后,CAN通过ISO11898及ISO11519进行了标准化,成为欧洲汽车网络的标准协议。CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。周鹏安徽工程大学电气工程学院大学电气工程学院

控制器局域网络(CAN)使用一个串行多主机通信协议,此协议有效地支持分布式实时控制,具有非常高的安全级别,并且通信速率可达1Mbps。CAN总线是嘈杂和恶劣的环境,如汽车和其他要求可靠通信的工业领域应用的理想选择。高达8字节数据长度的已设定优先级的消息可以通过多主机串行总线发送,此总线使用一个仲裁协议和一个错误检测机制来确保高度的数据完整性。

12.1.1CAN网络和模块周鹏安徽工程大学电气工程学院大学电气工程学院随着CAN总线在各个行业和领域的广泛应用,对其通信格式标准化也提出了更严格的要求。1991年CAN总线技术规范(Version2.0)制定并发布。该技术规范共包括A和B两个部分。其中2.0A给出了CAN报文标准格式。2.0B给出了标准的和扩展的两种格式,不同之处在于标识符的长度不同:具有11为标识符的帧称为标准帧,29位标识符的帧称为扩展帧。CAN网络中交换与传输的数据单元称为报文,报文也是网络传输的单位,传输过程中会不断地将数据封装成帧来进行传输。帧是一定格式组织起来的数据,一个报文通常由多帧组成。报文传输有4个帧类型来表示和控制:数据帧、远程帧、错误帧和过载帧。

12.1.2CAN协议概述周鹏安徽工程大学电气工程学院大学电气工程学院1.数据帧周鹏安徽工程大学电气工程学院大学电气工程学院2.远程帧周鹏安徽工程大学电气工程学院大学电气工程学院3.错误帧周鹏安徽工程大学电气工程学院大学电气工程学院4.过载帧周鹏安徽工程大学电气工程学院大学电气工程学院5.帧间空间周鹏安徽工程大学电气工程学院大学电气工程学院eCAN是一个带有内部32位架构的CAN控制器。eCAN控制器为CPU提供CAN协议2.0B版本的完全功能。CAN控制器最大限度地减少了CPU在通信开销中的负载,并通过提供额外的特性提高了CAN标准。eCAN模块的结构由一个CAN协议内核(CPK)和一个消息控制器组成。12.2TMS320F281xeCAN模块概述周鹏安徽工程大学电气工程学院大学电气工程学院周鹏安徽工程大学电气工程学院大学电气工程学院CPK有两个主要功能:(1)根据CAN协议对在CAN总线上接收的所有消息进行译码并把这些消息发给接收缓冲器。(2)根据CAN协议把消息发送到CAN总线上。CAN控制器的消息控制器负责决定是否由CPK接收的任何消息必须被保留,以便供CPU使用或是被丢弃。在初始化阶段,CPU对消息控制器制定了所有可用的消息标识符。消息控制器也负责根据消息的优先级来发送传输给CPK的消息。周鹏安徽工程大学电气工程学院大学电气工程学院12.2.1TMS320F281xeCAN的结构与特点周鹏安徽工程大学电气工程学院大学电气工程学院eCAN模块有两种工作模式:SCC模式和eCAN模式。eCAN模式同时支持11位和29位的标识码,是一个32位的控制器。eCAN的有些寄存器(如控制寄存器)必须以32位方式访问;一些寄存器(如时间标识寄存器)和邮箱所在的RAM范围可以以8位、16位或32位方式访问。eCAN对信息的接收和发送是基于邮箱的,共有32个邮箱,占用512字节RAM。每个邮箱都可以有自己独立的ID,独立配置成接收邮箱或发送邮箱,也可以禁止不用。这样大大增加了数据的容量和信息的处理能力。SCC模式是eCAN模式的简化功能模式,同样支持11位和29位的标识码,但该模式只有16个邮箱(邮箱号0-15)可用,没有时间标记功能,可用的接收屏蔽寄存器数目也少。该模式为默认状态。此模式下可以通过主控制寄存器(CANMC)中SCB位的置“1”来进入eCAN模式。12.2.2eCAN的工作模式周鹏安徽工程大学电气工程学院大学电气工程学院12.2.3eCAN的内存映射周鹏安徽工程大学电气工程学院大学电气工程学院eCAN模块有32个不同的消息对象(邮箱)。每个消息对象可以配置为发送或接收。每个消息对象有其各自的接受屏蔽。一个消息对象由一个消息邮箱组成,其中包括:•29位的消息标识符•消息控制寄存器•8字节的信息数据•一个29位接受屏蔽•一个32位时间戳•一个32位超时值此外,位于寄存器中的相应的控制和状态位允许对消息对象的控制。12.2.4eCAN的消息对象和消息邮箱1.消息对象周鹏安徽工程大学电气工程学院大学电气工程学院eCAN模块有32个不同的消息邮箱,每个消息对象可配置成发送或接收邮箱,每个消息目标都有自己的接收滤波器。消息邮箱用来存储接收到的CAN消息,或存放等待发送的CAN消息。消息邮箱映射到RAM存储器,CAN消息被接收后或被传输前存储在这些存储器中。CPU可以使用消息邮箱中不被用来存储消息的RAM区用作普通内存。2.消息邮箱周鹏安徽工程大学电气工程学院大学电气工程学院每个邮箱包含:•消息标识符–29位扩展标识符–11位标准标识符•标识符扩展位,IDE(MSGID.31)•接受屏蔽使能位,AME(MSGID.30)•自动应答模式位,AAM(MSGID.29)•发送优先级,TPL(MSGCTRL.12-8)•远程传输请求位,RTR(MSGCTRL.4)•数据长度代码,DLC(MSGCTRL.3-0)•多达8字节的数据区字段周鹏安徽工程大学电气工程学院大学电气工程学院12.2.5eCAN的寄存器周鹏安徽工程大学电气工程学院大学电气工程学院前面已经对eCAN模块寄存器进行了介绍,下面来了解如何使用这些控制寄存器来实现对eCAN模块的功能配置。12.3eCAN的配置周鹏安徽工程大学电气工程学院大学电气工程学院比特率是按每秒比特计算,如下Bitrate=SYSCLKOUT/(BRP×BitTime)在这里,BitTime是每比特时间定额(TQ)数量。SYSCLKOUT是CAN模块系统的时钟频率,与CPU的时钟频率一样。BRP是BRPreg+1(CANBTC.23-16)的值。位时间定义如下:Bittime=(TSEG1reg+1)+(TSEG2reg+1)+112.3.1eCAN的波特率配置周鹏安徽工程大学电气工程学院大学电气工程学院在使用CAN模块前必须将其初始化。初始化行为只能在CAN模块的初始化状态下进行。图12-10是TMS320F2812eCAN模块初始化流程图。设置CCR(CANMC.12)=1进入eCAN初始化模式。只有在CCE(CANES.4)=1时,才可以进行初始化。此后,可以对配置寄存器进行操作。对SCC模式来说,对全局接受屏蔽寄存器(CANGAM)和SCC的两个局部接受屏蔽寄存器[LAM(0)和LAM(3)]的修改,也必须在初始化模式中执行。通过设定(CCRCANMC.12)=0,模块再次被激活。硬件复位后,初始化模式被激活。需要说明的是:若寄存器CANTBC的值设定为0或某一初始值,CAN将不能脱离初始化工作模式。即当清除CCR位后,CEE位(CANES.4)将保持为1。12.3.2eCAN的初始化周鹏安徽工程大学电气工程学院大学电气工程学院图12-10eCAN初始化顺序

周鹏安徽工程大学电气工程学院大学电气工程学院配置eCAN的操作,必须执行以下步骤:Step1.使能CAN模块时钟。Step2.将CANTX和CANRX引脚设定为CAN功能引脚,指令:(1)CANTIOC.3:0=0x08(2)CANTIOC.3:0=0x08Step3.复位后,CCR位(CANMC.12)和CCE位(CANES.4)设置为1。此时用户能够配置位定时配置寄存器(CANBTC)。如果CCE位被置位(即CANES.4=1),则执行下一步;否则,置位CCR位(CANMC.12=1),并等待,直到CCE位置位(CANES.4=1)。Step4.对CANBTC寄存器写入合适的数值,并确保TSEG1和TSEG2不为0。如果它们为0,则eCAN模块不能退出初始化模式。Step5.对于SCC模式,接收邮箱可编程为接收屏蔽方式。例如:写入LAM(3)=0x3C0000h

12.3.3eCAN的配置步骤周鹏安徽工程大学电气工程学院大学电气工程学院Step6.对主控制寄存器(CANMC)编程指令:(1)清除CCR:(CANMC.12)=0(2)清除PDR:(CANMC.11)=0(3)清除DBO:(CANMC.10)=0(4)清除WUBA:(CANMC.9)=0(5)清除CDR:(CANMC.8)=0(6)清除ABO:(CANMC.7)=0(7)清除STM:(CANMC.6)=0(8)清除SRES:(CANMC.5)=0(9)清除MBNR:(CANMC.4-0)=0Step7.将MSGCTRLn寄存器的所有位初始化为0。Step8.验证CCE位是否被清0(CANES.4=0),如果被清0则表明CAN模块已被配置。周鹏安徽工程大学电气工程学院大学电气工程学院为了传输一个消息,必须首先进行邮箱的配置,本例中以邮箱1为例进行邮箱配置:1.将CANTRS寄存器中适当位清0:CANTRS.1=0(由于向CANTRS写入0无效,设置CANTRR.1=1,并等待直到CANTRS.1=0)。如果RTR=1,则可以发送远程帧。一旦发送远程帧,CAN模块将对邮箱的CANTRS位清0。同一节点可以用来向其他节点请求数据帧。2.通过清除邮箱使能寄存器CANME的相应位来禁用邮箱,CANME.1=1。3.装载邮箱消息标识符寄存器MSGID。对于正常的发送邮箱(MSGID.30=0和MSGID.29=0),清除AME(MSGID.30)和AAM(MSGID.29)位。正常运行过程中,该寄存器一般不会被修改。只有在邮箱被禁用时,才能修改。例如:(1)写入MSGID(1)=0x15AC0000(2)将数据的长度写入消息控制字段寄存器MSGCTRL的DLC区(MSGCTRL.3:0)。通常,RTR标志会被清0,即MSGCTRL.4=0。(3)通过清除CANMD寄存器的相应位来设置邮箱方向,即CANMD.1=0。4.设置寄存器中相应的位,即CANME.1=1,启用邮箱。12.3.4消息的发送操作周鹏安徽工程大学电气工程学院大学电气工程学院邮箱配置完成,可以进行消息的发送,这里仍以邮箱1为例,发送一条消息,步骤如下:1.将消息数据写入邮箱数据区域。(1)由于DBO置为0(CANMC.10=0),MSGCTRL(1)=2,所以数据存储在CANMDL(1)的2个最高有效字节中。(2)写入CANMDL(1)=xxxx0000h2.将发送请求寄存器的对应标志位置1(CANTRS.1=1),启动消息的发送。此后,CAN模块将监控CAN消息的传输过程。3.等待相应邮箱的发送应答标志位置位(TA.1=1)。发送成功后,CAN模块置位此标志位。4.无论传输成功或中止,CANTRS标志位都将复位为0(CANTRS.1=0)。5.为了下一次发送,必须将发送应答位必须清0。(1)设置CANTA.1=1。(2)等待,直至CANTA=0。6.若要在同一邮箱发送其他消息,则必须更新邮箱RAM数据。置位CANTRS.1来启动下一次发送。写入邮箱RAM中的可以是16位或32,但eCAN模块总是从偶数地址处返回32位数值。CPU要接收所有32位或其中的一部分。周鹏安徽工程大学电气工程学院大学电气工程学院为了接收消息,要配置接收邮箱,本例中以邮箱3为例,完成接收邮箱的配置,步骤如下:1.通过清除邮箱使能寄存器CANME的相应位来禁用邮箱。即CANME.3=02.将选定的标识符写入对应的信息标志符MSGID。标识符扩展位必须配置为期望的标识符。如果使用接收屏蔽,接收屏蔽使能位AME必须置1(即MSGID.30=1)。例如:写入MSGID(3)=0x4f7800003.如果AME位已设置为1,则必须对相应的接收屏蔽寄存器编程。例如,LAM(3)=0x03c0000。4.通过设置邮箱方向寄存器的相应标识为(CANMD.3=1),邮箱被配置为一个接收邮箱。需要注意的是,应确保此操作不会影响该寄存器中的其它位。5.如果需要保护邮箱中的数据,则要对过冲保护寄存器CANOPC进行编程。如果不允许消息丢弃,这种保护是非常有用的。如果对CANOPC进行置位,则需要软件确保配置一个附加的邮箱(缓存邮箱)来存储“溢出”的消息。否则,消息可能会丢失。例如,写入CANOPC.3=16.通过设置邮箱使能寄存器CANME中相应的标志为来启用邮箱。具体为:先读取CANME,后回写CANME(CANME|=0x0008)来确保没有其他标志位被意外修改。至此,接收邮箱配置完成,任何针对该邮箱的输入消息都将被自动处理。12.3.5消息的接收操作周鹏安徽工程大学电气工程学院大学电气工程学院邮箱接收配置完成,可以进行消息的接收工作,仍以邮箱3为例,实现接收一条消息,具体步骤如下:1.当接收到一条消息时,接收消息等待寄存器(CANRMP)的相应标志位被置为1,并产生一个中断(前提是初始化了接收中断)。2.之后,CPU将从邮箱RAM读取消息。在CPU从邮箱读取消息之前,应先将CANRMP位清0(CANRMP.3=1)。3.CPU需检查接收消息丢失标志RML.3是否为1。根据应用程序的要求,CPU来决定如何处理这种情况。4.读取数据后,CPU需要检查CANRMP位是否被eCAN模块重新置位。如果CANRMP被置为1,则说明数据有可能已损坏,此时,CPU需要再次读取数据。至此,完成了接收邮箱的接收配置和消息的接收工作。周鹏安徽工程大学电气工程学院大学电气工程学院远程帧处理有两个功能:一个功能是本模块针对来自另一个节点的数据请求,另一个功能是由另一个节点发出数据请求而由本模块进行应答。1.向另一个节点请求数据(1)为了向另一个节点请求数据,本节点应配置为接收邮箱。对接收节点需要进行如下操作:(2)把消息控制区域寄存器(CANMSGCTRL)中的RTR位置1.(3)把正确的标识符写入到消息标识符寄存器(MSGID)中。(4)置位该邮箱的CANTRS标志。(5)当接收到应答数据后,模块把数据存储在该邮箱中并置位RMP位。(6)读取接收的数据12.3.6远程帧邮箱的处理周鹏安徽工程大学电气工程学院大学电气工程学院2.应答一个远程请求(1)把目标邮箱配置为发送邮箱。(2)在使能邮箱之前,置位MSGID寄存器中的自动应答模式位(AAM)(MSGID.29)。(3)更新数据区。(4)通过置位CANME标志来使能该邮箱。当接收到从另一个节点来的远程请求时,TRS标志被自动置位(启动数据发送),而后数据被发送到那个节点。接收消息和发送消息具有相同的标识符。在发送数据以后,TA标志位被置位。而后CPU可以进行数据更新。周鹏安徽工程大学电气工程学院大学电气工程学院有两种不同类型的中断。一种中断类型是邮箱相关的中断,例如,接收消息等待中断或中止确认中断。另一中断类型是用来处理错误或与系统相关的中断,例如,被动错误中断或唤醒中断。下列事件可以启动两个中断中的一个:1.邮箱中断(1)消息接收中断:收到一个消息(2)信息传输中断:成功一个发送消息(3)中止确认中断:等待传输被中止(4)接收消息丢失中断:旧消息被一个新消息(在旧邮件被读取前)写覆盖(5)邮箱超时中断(只在eCAN模式):在预定的时间帧内其中一条消息没有被发送或未收到12.3.7eCAN的中断周鹏安徽工程大学电气工程学院大学电气工程学院

2.系统中断(1)写入拒绝中断:CPU试图写入一个邮箱,但不被允许(2)唤醒中断:在一个唤醒后中产生中断(3)总线关闭中断:CAN模块进入总线关闭状态(4)被动错误中断:CAN模块进入被动错误模式(5)警告级别中断:一个或两个错误计数器都大于或等于96(6)时间戳计数器溢出中断(只适用于eCAN):时间戳计数器发生溢出周鹏安

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论