




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院12.1 CAN总线概述总线概述 12.1.1 CAN网络和模块网络和模块 12.1.2 CAN协议概述协议概述12.2 TMS320F281x eCAN模块概述模块概述 12.2.1 TMS320F281x eCAN的结构与特点的结构与特点 12.2.2 eCAN的工作模式的工作模式 12.2.3 eCAN的内存映射的内存映射 12.2.4 eCAN的消息对象和消息邮箱的消息对象和消息邮箱 12.2.5 eCAN的寄存器的寄存器 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院12.3 eCAN的配置的配置 12.3.1 e
2、CAN的波特率配置的波特率配置 12.3.2 eCAN的初始化的初始化 12.3.3 eCAN的配置步骤的配置步骤 12.3.4 消息的发送操作消息的发送操作 12.3.5 消息的接收操作消息的接收操作 12.3.6 远程帧邮箱的处理远程帧邮箱的处理 12.3.7 eCAN的中断的中断 12.3.8 eCAN的本地断电模式的本地断电模式 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 在在C28x DSP中使用的增强型控制器区域网络中使用的增强型控制器区域网络(eCAN)模块与现行的)模块与现行的CAN2.0标准兼容。它可使标准兼容。它可使用已制定的协议在存在电子噪声的环境中与其他
3、控用已制定的协议在存在电子噪声的环境中与其他控制器进行串行通信。借助制器进行串行通信。借助32个完全可配置的邮箱和个完全可配置的邮箱和时间标志(时间标志(time-stamping)特性,)特性,eCAN模块提供了模块提供了一种具有通用性和鲁棒性的串行通信接口。一种具有通用性和鲁棒性的串行通信接口。 本章在本章在CAN2.0基础上,介绍基础上,介绍C281x eCAN接口接口的结构、工作方式、寄存器、中断等内容,并以详的结构、工作方式、寄存器、中断等内容,并以详细的实例来介绍如何使用细的实例来介绍如何使用eCAN接口收发报文。接口收发报文。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学
4、院学院12.1 CAN总线概述总线概述 CAN是控制器局域网(是控制器局域网(Controller Area Network)的简称,是德国博世公司为了解决各种)的简称,是德国博世公司为了解决各种各样的汽车电子控制系统之间的高速通信开发的通各样的汽车电子控制系统之间的高速通信开发的通信协议。此后,信协议。此后,CAN 通过通过ISO11898 及及ISO11519 进进行了标准化,成为欧洲汽车网络的标准协议。行了标准化,成为欧洲汽车网络的标准协议。 CAN 的高性能和可靠性已被认同,并被广泛的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备地应用于工业自动化、船舶、
5、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。的数据通信提供了强有力的技术支持。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 控制器局域网络控制器局域网络(CAN) 使用一个串行多主机使用一个串行多主机通信协议,此协议有效地支持分布式实时控制,具通信协议,此协议有效地支持分布式实时控制,具有非常高的安全级别,并且
6、通信速率可达有非常高的安全级别,并且通信速率可达1Mbps。CAN 总线是嘈杂和恶劣的环境,如汽车和其他要总线是嘈杂和恶劣的环境,如汽车和其他要求可靠通信的工业领域应用的理想选择。求可靠通信的工业领域应用的理想选择。 高达高达8字节数据长度的已设定优先级的消息可字节数据长度的已设定优先级的消息可以通过多主机串行总线发送,此总线使用一个仲裁以通过多主机串行总线发送,此总线使用一个仲裁协议和一个错误检测机制来确保高度的数据完整性。协议和一个错误检测机制来确保高度的数据完整性。 12.1.1 CAN网络和模块网络和模块周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 随着随着CAN总线在各
7、个行业和领域的广泛应用,对其通总线在各个行业和领域的广泛应用,对其通信格式标准化也提出了更严格的要求。信格式标准化也提出了更严格的要求。1991年年CAN总线技总线技术规范(术规范(Version2.0)制定并发布。该技术规范共包括)制定并发布。该技术规范共包括A和和B两个部分。其中两个部分。其中2.0A给出了给出了CAN报文标准格式。报文标准格式。2.0B给出给出了标准的和扩展的两种格式,不同之处在于标识符的长度了标准的和扩展的两种格式,不同之处在于标识符的长度不同:具有不同:具有11为标识符的帧称为标准帧,为标识符的帧称为标准帧,29位标识符的帧位标识符的帧称为扩展帧。称为扩展帧。 CAN
8、网络中交换与传输的数据单元称为报文,报文也网络中交换与传输的数据单元称为报文,报文也是网络传输的单位,传输过程中会不断地将数据封装成帧是网络传输的单位,传输过程中会不断地将数据封装成帧来进行传输。帧是一定格式组织起来的数据,一个报文通来进行传输。帧是一定格式组织起来的数据,一个报文通常由多帧组成。报文传输有常由多帧组成。报文传输有4个帧类型来表示和控制:数据个帧类型来表示和控制:数据帧、远程帧、错误帧和过载帧。帧、远程帧、错误帧和过载帧。 12.1.2 CAN协议概述协议概述周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院1. 数据帧数据帧周鹏周鹏 安徽工程安徽工程大学大学电气工程电
9、气工程学院学院2. 远程帧远程帧周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院3. 错误帧错误帧周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4. 过载帧过载帧周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院5. 帧间空间帧间空间周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 eCAN 是一个带有内部是一个带有内部32位架构的位架构的CAN 控制器。控制器。eCAN 控制器为控制器为CPU 提供提供CAN 协议协议2.0B版本的完全功能。版本的完全功能。CAN 控控制器最大限度地减少了制器最大限度地减少了CPU 在通信开销中的负载,并通过在通信开销
10、中的负载,并通过提供额外的特性提高了提供额外的特性提高了CAN 标准。标准。 eCAN模块的结构由一个模块的结构由一个CAN协议内核协议内核(CPK) 和一个消和一个消息控制器组成。息控制器组成。 12.2 TMS320F281x eCAN模块概述模块概述周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院CPK有两个主要功能:有两个主要功能:(1) 根据根据CAN协议对在协议对在CAN总线上接收的所有消息进行译码总线上接收的所有消息进行译码并把这些消息发给接收缓冲器。并把这些消息发给接收缓冲器。(2)根据)根据CAN协议把消息发
11、送到协议把消息发送到CAN总线上。总线上。 CAN控制器的消息控制器负责决定是否由控制器的消息控制器负责决定是否由CPK接收的接收的任何消息必须被保留,以便供任何消息必须被保留,以便供CPU使用或是被丢弃。在初始使用或是被丢弃。在初始化阶段,化阶段,CPU对消息控制器制定了所有可用的消息标识符。对消息控制器制定了所有可用的消息标识符。消息控制器也负责根据消息的优先级来发送传输给消息控制器也负责根据消息的优先级来发送传输给CPK的消的消息。息。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院12.2.1 TMS320F281x eCAN的结构与特点的结构与特点周鹏周鹏 安徽工程安徽工
12、程大学大学电气工程电气工程学院学院 eCAN模块有两种工作模式:模块有两种工作模式:SCC模式和模式和eCAN模式。模式。 eCAN模式同时支持模式同时支持11位和位和29位的标识码,是一个位的标识码,是一个32位位的控制器。的控制器。eCAN的有些寄存器(如控制寄存器)必须以的有些寄存器(如控制寄存器)必须以32位方式访问;一些寄存器(如时间标识寄存器)和邮箱所在位方式访问;一些寄存器(如时间标识寄存器)和邮箱所在的的RAM范围可以以范围可以以8位、位、16位或位或32位方式访问。位方式访问。eCAN对信对信息的接收和发送是基于邮箱的,共有息的接收和发送是基于邮箱的,共有32个邮箱,占用个邮
13、箱,占用512字字节节RAM。每个邮箱都可以有自己独立的。每个邮箱都可以有自己独立的ID,独立配置成接,独立配置成接收邮箱或发送邮箱,也可以禁止不用。这样大大增加了数据收邮箱或发送邮箱,也可以禁止不用。这样大大增加了数据的容量和信息的处理能力。的容量和信息的处理能力。 SCC模式是模式是eCAN模式的简化功能模式,同样支持模式的简化功能模式,同样支持11位位和和29位的标识码,但该模式只有位的标识码,但该模式只有16个邮箱(邮箱号个邮箱(邮箱号0-15)可)可用,没有时间标记功能,可用的接收屏蔽寄存器数目也少。用,没有时间标记功能,可用的接收屏蔽寄存器数目也少。该模式为默认状态。此模式下可以通
14、过主控制寄存器该模式为默认状态。此模式下可以通过主控制寄存器(CANMC)中)中SCB位的置位的置“1”来进入来进入eCAN模式。模式。 12.2.2 eCAN的工作模式的工作模式周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院12.2.3 eCAN的内存映射的内存映射周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院eCAN 模块有模块有32个不同的消息对象(邮箱)。个不同的消息对象(邮箱)。每个消息对象可以配置为发送或接收。每个消息对象有其各自的接受屏蔽。每个消息对象可以配置为发送或接收。每个消息对象有其各自的接受屏蔽。一个消息对象由一个消息邮箱组成,其中包括:一个消息对
15、象由一个消息邮箱组成,其中包括: 29位的消息标识符位的消息标识符 消息控制寄存器消息控制寄存器 8字节的信息数据字节的信息数据 一个一个29位接受屏蔽位接受屏蔽 一个一个32位时间戳位时间戳 一个一个32位超时值位超时值此外,位于寄存器中的相应的控制和状态位允许对消息对象的控制。此外,位于寄存器中的相应的控制和状态位允许对消息对象的控制。 12.2.4 eCAN的消息对象和消息邮箱的消息对象和消息邮箱1. 消息对象消息对象周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 eCAN模块有模块有32个不同的消息邮箱,每个消息对象可配个不同的消息邮箱,每个消息对象可配置成发送或接收邮箱,
16、每个消息目标都有自己的接收滤波器。置成发送或接收邮箱,每个消息目标都有自己的接收滤波器。消息邮箱用来存储接收到的消息邮箱用来存储接收到的CAN消息,或存放等待发送的消息,或存放等待发送的CAN消息。消息。 消息邮箱映射到消息邮箱映射到RAM存储器,存储器,CAN消息被接收后或被消息被接收后或被传输前存储在这些存储器中。传输前存储在这些存储器中。CPU可以使用消息邮箱中不可以使用消息邮箱中不被用来存储消息的被用来存储消息的RAM区用作普通内存。区用作普通内存。 2. 消息邮箱消息邮箱周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院每个邮箱包含:每个邮箱包含: 消息标识符消息标识符 29
17、位扩展标识符位扩展标识符 11位标准标识符位标准标识符 标识符扩展位,标识符扩展位,IDE (MSGID.31) 接受屏蔽使能位,接受屏蔽使能位,AME (MSGID.30) 自动应答模式位,自动应答模式位,AAM (MSGID.29) 发送优先级,发送优先级,TPL (MSGCTRL.12-8) 远程传输请求位,远程传输请求位,RTR (MSGCTRL.4) 数据长度代码,数据长度代码,DLC (MSGCTRL.3-0) 多达多达8 字节的数据区字段字节的数据区字段周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院12.2.5 eCAN的寄存器的寄存器周鹏周鹏 安徽工程安徽工程大学大
18、学电气工程电气工程学院学院 前面已经对前面已经对eCAN模块寄存器进行了介绍,下面来了解模块寄存器进行了介绍,下面来了解如何使用这些控制寄存器来实现对如何使用这些控制寄存器来实现对eCAN模块的功能配置。模块的功能配置。 12.3 eCAN的配置的配置周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院比特率是按每秒比特计算,如下比特率是按每秒比特计算,如下Bit rate = SYSCLKOUT/( BRPBit Time)在这里,在这里,Bit Time是每比特时间定额(是每比特时间定额(TQ)数量。)数量。SYSCLKOUT 是是CAN模块系统的时钟频率,与模块系统的时钟频率,与C
19、PU 的时的时钟频率一样。钟频率一样。BRP是是BRPreg+1 (CANBTC.23-16) 的值。的值。位时间定义如下:位时间定义如下:Bit time = (TSEG1reg + 1) + (TSEG2reg + 1) + 1 12.3.1 eCAN的波特率配置的波特率配置周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 在使用在使用CAN模块前必须将其初始化。初始化行为只能在模块前必须将其初始化。初始化行为只能在CAN模块的初始化状态下进行。图模块的初始化状态下进行。图12-10是是TMS320F2812 eCAN模块初始化流程图。模块初始化流程图。 设置设置CCR (CAN
20、MC.12)=1进入进入eCAN初始化模式。只有初始化模式。只有在在CCE(CANES.4)=1时,才可以进行初始化。此后,可以对时,才可以进行初始化。此后,可以对配置寄存器进行操作。配置寄存器进行操作。 对对SCC模式来说,对全局接受屏蔽寄存器(模式来说,对全局接受屏蔽寄存器(CANGAM)和和SCC的两个局部接受屏蔽寄存器的两个局部接受屏蔽寄存器LAM(0) 和和LAM(3)的修的修改,也必须在初始化模式中执行。改,也必须在初始化模式中执行。 通过设定通过设定(CCR CANMC.12)=0,模块再次被激活。硬件,模块再次被激活。硬件复位后,初始化模式被激活。复位后,初始化模式被激活。 需
21、要说明的是:若寄存器需要说明的是:若寄存器CANTBC的值设定为的值设定为0或某一或某一初始值,初始值,CAN将不能脱离初始化工作模式。即当清除将不能脱离初始化工作模式。即当清除CCR位后,位后,CEE位(位(CANES.4)将保持为)将保持为1。 12.3.2 eCAN的初始化的初始化周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院图图12-10 eCAN初始化顺序初始化顺序 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院配置配置eCAN的操作,必须执行以下步骤:的操作,必须执行以下步骤:Step 1. 使能使能CAN模块时钟。模块时钟。Step 2. 将将CANTX和
22、和CANRX引脚设定为引脚设定为CAN功能引脚,指令:功能引脚,指令:(1) CANTIOC.3:0=0 x08(2) CANTIOC.3:0=0 x08Step 3. 复位后,复位后,CCR位位(CANMC.12)和和CCE位位(CANES.4)设置为设置为1。此时用。此时用户能够配置位定时配置寄存器(户能够配置位定时配置寄存器(CANBTC)。)。 如果如果CCE位被置位位被置位(即即CANES.4=1),则执行下一步;否则,置位,则执行下一步;否则,置位CCR位位(CANMC.12=1),并等待,直到,并等待,直到CCE位置位位置位(CANES.4=1)。Step 4. 对对CANBTC
23、寄存器写入合适的数值,并确保寄存器写入合适的数值,并确保TSEG1和和TSEG2不为不为0。如果它们为如果它们为0,则,则eCAN模块不能退出初始化模式。模块不能退出初始化模式。Step 5. 对于对于SCC模式,接收邮箱可编程为接收屏蔽方式。例如:写入模式,接收邮箱可编程为接收屏蔽方式。例如:写入LAM(3)=0 x3C0000h 12.3.3 eCAN的配置步骤的配置步骤周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院Step 6. 对主控制寄存器对主控制寄存器(CANMC)编程指令:编程指令:(1) 清除清除CCR:(CANMC.12) = 0(2) 清除清除PDR:(CANM
24、C.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) = 0Step 7. 将将MSGCTRLn寄存器的所有位初始化为寄存器的所有位初始化为0。Step 8. 验证验证CCE位是否被清位是否被清0(CANES.4=0),如果被清,如果被清0则表明则表明CAN模块已模块已被配置。被配
25、置。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 为了传输一个消息,必须首先进行邮箱的配置,本例中以邮箱为了传输一个消息,必须首先进行邮箱的配置,本例中以邮箱1为例为例进行邮箱配置:进行邮箱配置:1. 将将CANTRS寄存器中适当位清寄存器中适当位清0:CANTRS.1=0(由于向(由于向CANTRS写入写入0无效,设置无效,设置CANTRR.1=1,并等待直到,并等待直到CANTRS.1=0)。如果)。如果RTR=1,则可以发送远程帧。一旦发送远程帧,则可以发送远程帧。一旦发送远程帧,CAN模块将对邮箱的模块将对邮箱的CANTRS位清位清0。同一节点可以用来向其他节点请求。同
26、一节点可以用来向其他节点请求数据帧。数据帧。2. 通过清除邮箱使能寄存器通过清除邮箱使能寄存器CANME的相应位来禁用邮箱,的相应位来禁用邮箱,CANME.1=1。3. 装载邮箱消息标识符寄存器装载邮箱消息标识符寄存器MSGID。对于正常的发送邮箱。对于正常的发送邮箱(MSGID.30=0 和和MSGID.29=0),清除,清除 AME(MSGID.30)和)和AAM(MSGID.29) 位。正常运行过程中,该寄位。正常运行过程中,该寄存器一般不会被修改。只有在邮箱被禁用时,才能修改。例如:存器一般不会被修改。只有在邮箱被禁用时,才能修改。例如:(1) 写入写入MSGID(1)=0 x15AC
27、0000(2) 将数据的长度写入消息控制字段寄存器将数据的长度写入消息控制字段寄存器MSGCTRL的的DLC区区(MSGCTRL.3:0)。通常,。通常,RTR标志会被清标志会被清0,即,即MSGCTRL.4=0。(3) 通过清除通过清除CANMD寄存器的相应位来设置邮箱方向,即寄存器的相应位来设置邮箱方向,即CANMD.1=0。4. 设置寄存器中相应的位,即设置寄存器中相应的位,即CANME.1=1,启用邮箱。,启用邮箱。12.3.4 消息的发送操作消息的发送操作周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 邮箱配置完成,可以进行消息的发送,这里仍以邮箱邮箱配置完成,可以进行消
28、息的发送,这里仍以邮箱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. 等待相
29、应邮箱的发送应答标志位置位等待相应邮箱的发送应答标志位置位(TA.1=1)。发送成功后,。发送成功后,CAN模块置位模块置位此标志位。此标志位。4. 无论传输成功或中止,无论传输成功或中止,CANTRS标志位都将复位为标志位都将复位为0 (CANTRS.1=0)。5. 为了下一次发送,必须将发送应答位必须清为了下一次发送,必须将发送应答位必须清0。(1) 设置设置CANTA.1=1。(2) 等待,直至等待,直至CANTA=0。6. 若要在同一邮箱发送其他消息,则必须更新邮箱若要在同一邮箱发送其他消息,则必须更新邮箱RAM数据。置位数据。置位CANTRS.1来启动下一次发送。写入邮箱来启动下一次
30、发送。写入邮箱RAM中的可以是中的可以是16位或位或32,但,但eCAN模块总是从偶数地址处返回模块总是从偶数地址处返回32位数值。位数值。CPU要接收所有要接收所有32位或其中位或其中的一部分。的一部分。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 为了接收消息,要配置接收邮箱,本例中以邮箱为了接收消息,要配置接收邮箱,本例中以邮箱3为例,完成接为例,完成接收邮箱的配置,步骤如下:收邮箱的配置,步骤如下:1. 通过清除邮箱使能寄存器通过清除邮箱使能寄存器CANME的相应位来禁用邮箱。即的相应位来禁用邮箱。即CANME.3=02. 将选定的标识符写入对应的信息标志符将选定的标识
31、符写入对应的信息标志符MSGID。标识符扩展位必须配。标识符扩展位必须配置为期望的标识符。如果使用接收屏蔽,接收屏蔽使能位置为期望的标识符。如果使用接收屏蔽,接收屏蔽使能位AME必须必须置置1(即(即MSGID.30=1)。例如:写入)。例如:写入MSGID(3) = 0 x4f7800003. 如果如果AME位已设置为位已设置为1,则必须对相应的接收屏蔽寄存器编程。例如,则必须对相应的接收屏蔽寄存器编程。例如,LAM(3) = 0 x03c0000。4. 通过设置邮箱方向寄存器的相应标识为通过设置邮箱方向寄存器的相应标识为(CANMD.3=1),邮箱被配置为,邮箱被配置为一个接收邮箱。需要注
32、意的是,应确保此操作不会影响该寄存器中的一个接收邮箱。需要注意的是,应确保此操作不会影响该寄存器中的其它位。其它位。5. 如果需要保护邮箱中的数据,则要对过冲保护寄存器如果需要保护邮箱中的数据,则要对过冲保护寄存器CANOPC进行编进行编程。如果不允许消息丢弃,这种保护是非常有用的。如果对程。如果不允许消息丢弃,这种保护是非常有用的。如果对CANOPC进行置位,则需要软件确保配置一个附加的邮箱(缓存邮进行置位,则需要软件确保配置一个附加的邮箱(缓存邮箱)来存储箱)来存储“溢出溢出”的消息。否则,消息可能会丢失。例如,写入的消息。否则,消息可能会丢失。例如,写入CANOPC.3=16. 通过设置
33、邮箱使能寄存器通过设置邮箱使能寄存器CANME中相应的标志为来启用邮箱。具体为:中相应的标志为来启用邮箱。具体为:先读取先读取CANME,后回写,后回写CANME(CANME|=0 x0008)来确保没有其他来确保没有其他标志位被意外修改。标志位被意外修改。 至此,接收邮箱配置完成,任何针对该邮箱的输入消息都将被自至此,接收邮箱配置完成,任何针对该邮箱的输入消息都将被自动处理。动处理。 12.3.5 消息的接收操作消息的接收操作周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 邮箱接收配置完成,可以进行消息的接收工作,仍邮箱接收配置完成,可以进行消息的接收工作,仍以邮箱以邮箱3为例,
34、实现接收一条消息,具体步骤如下:为例,实现接收一条消息,具体步骤如下:1. 当接收到一条消息时,接收消息等待寄存器当接收到一条消息时,接收消息等待寄存器(CANRMP) 的的相应标志位被置为相应标志位被置为1,并产生一个中断(前提是初始化了,并产生一个中断(前提是初始化了接收中断)。接收中断)。2. 之后,之后,CPU将从邮箱将从邮箱RAM读取消息。在读取消息。在CPU从邮箱读取消从邮箱读取消息之前,应先将息之前,应先将CANRMP位清位清0(CANRMP.3=1)。3. CPU需检查接收消息丢失标志需检查接收消息丢失标志RML.3是否为是否为1。根据应用。根据应用程序的要求,程序的要求,CP
35、U来决定如何处理这种情况。来决定如何处理这种情况。4. 读取数据后,读取数据后,CPU 需要检查需要检查CANRMP位是否被位是否被eCAN模块模块重新置位。如果重新置位。如果CANRMP被置为被置为1,则说明数据有可能已,则说明数据有可能已损坏,此时,损坏,此时,CPU需要再次读取数据。需要再次读取数据。 至此,完成了接收邮箱的接收配置和消息的接收工作。至此,完成了接收邮箱的接收配置和消息的接收工作。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 远程帧处理有两个功能远程帧处理有两个功能:一个功能是本模块针对来自另一一个功能是本模块针对来自另一个节点的数据请求,另一个功能是由另
36、一个节点发出数据请求个节点的数据请求,另一个功能是由另一个节点发出数据请求而由本模块进行应答。而由本模块进行应答。1. 向另一个节点请求数据向另一个节点请求数据(1)为了向另一个节点请求数据,本节点应配置为接收邮箱。对)为了向另一个节点请求数据,本节点应配置为接收邮箱。对接收节点需要进行如下操作:接收节点需要进行如下操作:(2)把消息控制区域寄存器()把消息控制区域寄存器(CANMSGCTRL)中的)中的RTR位置位置1.(3)把正确的标识符写入到消息标识符寄存器()把正确的标识符写入到消息标识符寄存器(MSGID)中。)中。(4)置位该邮箱的)置位该邮箱的CANTRS标志。标志。(5)当接收
37、到应答数据后,模块把数据存储在该邮箱中并置位)当接收到应答数据后,模块把数据存储在该邮箱中并置位RMP位。位。(6)读取接收的数据)读取接收的数据12.3.6 远程帧邮箱的处理远程帧邮箱的处理周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院2. 应答一个远程请求应答一个远程请求(1) 把目标邮箱配置为发送邮箱。把目标邮箱配置为发送邮箱。(2) 在使能邮箱之前,置位在使能邮箱之前,置位MSGID寄存器中的自动寄存器中的自动 应答模式位应答模式位(AAM)()(MSGID.29)。)。(3) 更新数据区。更新数据区。(4) 通过置位通过置位CANME标志来使能该邮箱。标志来使能该邮箱。
38、当接收到从另一个节点来的远程请求时,当接收到从另一个节点来的远程请求时,TRS标志被自动标志被自动置位(启动数据发送),而后数据被发送到那个节点。接收消置位(启动数据发送),而后数据被发送到那个节点。接收消息和发送消息具有相同的标识符。息和发送消息具有相同的标识符。 在发送数据以后,在发送数据以后,TA标志位被置位。而后标志位被置位。而后CPU可以进行数可以进行数据更新。据更新。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 有两种不同类型的中断。一种中断类型是邮箱相关的有两种不同类型的中断。一种中断类型是邮箱相关的中断,例如,接收消息等待中断或中止确认中断。另一中中断,例如,接
39、收消息等待中断或中止确认中断。另一中断类型是用来处理错误或与系统相关的中断,例如,被动断类型是用来处理错误或与系统相关的中断,例如,被动错误中断或唤醒中断。错误中断或唤醒中断。下列事件可以启动两个中断中的一个:下列事件可以启动两个中断中的一个:1. 邮箱中断邮箱中断(1) 消息接收中断:收到一个消息消息接收中断:收到一个消息(2) 信息传输中断:成功一个发送消息信息传输中断:成功一个发送消息(3) 中止确认中断:等待传输被中止中止确认中断:等待传输被中止(4) 接收消息丢失中断:旧消息被一个新消息(在旧邮件被读接收消息丢失中断:旧消息被一个新消息(在旧邮件被读取前)写覆盖取前)写覆盖(5) 邮
40、箱超时中断(只在邮箱超时中断(只在eCAN模式):在预定的时间帧内其模式):在预定的时间帧内其中一条消息没有被发送或未收到中一条消息没有被发送或未收到 12.3.7 eCAN的中断的中断周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北薄型防火涂料施工方案
- 黑龙江石雕龙柱施工方案
- 日照四层阁楼电梯施工方案
- 超市采购总监述职报告
- 2025-2030中国偏硅酸矿泉水行业消费规模调研及全景深度解析研究报告
- 2025-2030中国信息传播服务行业发展分析及投资风险预警与发展策略研究报告
- 2025-2030中国保洁服务行业需求规模研究与投融资发展状况研究报告
- 2025-2030中国便携式移动放大器行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国便利店行业市场发展分析及发展趋势与投资机会研究报告
- 《爬升玩具》游戏课件
- 【部编版】三年级语文下册第9课《古诗三首》精美课件
- 毛泽东著作《实践论》
- 2024社会工作者《社会工作实务(初级)》考试题库及答案
- 现代顺势医学
- 护士在医疗事故中的法律责任与应对
- 一年级拼音默写表
- 高中数学思想方法导引
- 银行内部资本充足评估报告
- 明亚保险经纪人考试题库答案
- 水工金属压力钢管焊接工艺规程
- 医疗器械经营质量管理规范培训试题及答案
评论
0/150
提交评论