理论教育 远程帧邮箱的处理方法

远程帧邮箱的处理方法

时间:2023-06-15 理论教育 版权反馈
【摘要】:以对象3为例,CPU需要进行如下操作:1)设置信息控制寄存器的RTR位为1。写MSGID=0x4F7800003)设置邮箱的CANTRS标志位。2)在邮箱使能之前设置MSGID寄存器的自动应答模式位AAM。CANME.1=1当从其他节点获得一个远程请求时,自动置位CANTRS标志位,并且发送数据至该节点。该顺序也可用于更新CANTRS标志位被置位的正常发送模式的数据。1)设置改变数据请求位及主控寄存器中对象的邮箱序号。

远程帧邮箱的处理方法

远程帧有两种功能:一种是模块要求从其他节点获得数据,另一种是其他节点请求获得数据,模块需要应答。

1.请求其他节点的数据

为了从其他节点得到数据,配置对象为接收邮箱。以对象3为例,CPU需要进行如下操作:

1)设置信息控制寄存器(MSGCTRL)的RTR位为1。

写MSGCTRL(3)=0x12

2)将正确的标识符写入信息标识符寄存器(MSGID)。

写MSGID(3)=0x4F780000

3)设置邮箱的CANTRS标志位。由于配置邮箱为接收邮箱,它将仅仅发送一个远程请求信息到其他节点。

CANTRS.3=1

4)模块将接收到的应答信息存储在该邮箱中并且将CANRMP位置位。该操作可能启动一个中断。同时,要确保没有其他邮箱使用相同的ID。

等待或判断CANRMP.3=1。

5)读接收到的邮箱信息。

2.响应远程请求

1)把对象配置为一个发送邮箱。

2)在邮箱使能之前设置MSGID寄存器的自动应答模式位AAM(MSGID.29)。MSGID(1)=0x35AC0000

3)更新数据区。(www.daowen.com)

CANMIL,MDH(1)=xxxxxxxxh

4)设置CANME标志位为1来使能邮箱。

CANME.1=1

当从其他节点获得一个远程请求时,自动置位CANTRS标志位,并且发送数据至该节点。接收信息和发送信息的标识符应该是相同的。

数据发送之后,置位CANTA标志位,然后CPU才更新数据。

等待或判断CANTA.1=1

3.更新数据

要更新自动应答模式对象的数据,需要执行以下步骤。该顺序也可用于更新CANTRS标志位被置位的正常发送模式的数据。

1)设置改变数据请求位(CDR)(CANMC.8)及主控寄存器(CANMC)中对象的邮箱序号。这将告诉CAN模块CPU想要更改数据。例如,对于对象1:

写CANMC=0x0000101

2)写信息数据到邮箱数据寄存器。例如:

写CANMDL(1)=xxxx0000h

3)清除CDR位(CANMC.8)从而使能对象。

写CANMC=0x00000000

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈