第4章飞思卡尔微控制器与mscanppt课件.ppt

  1. 1、本文档共91页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章飞思卡尔微控制器与mscanppt课件

4.3.5 CAN接收过滤器 ?标识符接收寄存器(CANIDAR0-7)定义标准或扩展标识符的接收模式。 ?在标识符掩码寄存器(CANIDMR0-7)中,标识符接收位可标为“don’t care(不需留意)” 。 ?接收掩码寄存器中设置的任何位表示不需和消息标识符进行比较来确定是否接收。 ?只有接收寄存器中没有标记的位才和消息标识符进行比较以确定是否接收。 ?各个接收过滤器寄存器可以配置为8、16或32位: ? 2个32位过滤器 ? 4个16位过滤器 ? 8个8位过滤器 标识符接收控制寄存器 ?接收控制寄存器CANIDAC中的一个接收缓冲器满标记( RXF=1)和3个标识符击中标记(IDHT标识符有效)向应用软件通知过滤命中。 接收寄存器:2x32位过滤器 接收寄存器:4x16位过滤器 接收寄存器:8x8位过滤器 4.3.6 过滤器举例 4.3.8 时钟系统 MSCAN时钟发生结构图 CANCTL1寄存器中的时钟源位(CLKSRC)决定内部CANCLK是连接到晶体振荡器(振荡器时钟)输出还是连接到总线时钟。必须选择能满足CAN协议的振荡器精度要求(高达0.4%)的时钟源。此外,对于高CAN总线速率(1 Mbps)来说,要求45%-55% 的时钟占空比。 可编程预分频器从CANCLK生成时间冲量(Tq)时钟。时间冲量是MSCAN所处理时间的原子单位 f Tq=fCANCLK/(Prescaler value) 位时间再分成三段 SYNC_SEG: 该段有一个长度固定的时间冲量,信号边沿预计出现在本段。 时段1:本段包括CAN标准的PROP_SEG和PHASE_SEG1。通过设置参数TSEG1,使之包含4-16个时间冲量,可以对其进行编程 时段2:本段表示CAN 标准的PHASE_SEG2。通过设置TSEG2参数,使之具有2-8个时间冲量长,可以对其进行编程 4.3.9 运行模式 4.3.10 MSCAN的低功耗选项 4.3.11 MSCAN的休眠模式 MSCAN睡眠模式 睡眠请求/确认周期 进入/退出睡眠模式的简单状态转换 MSCAN初始化模式 初始化请求/确认周期 4.3.12 MSCAN的初始化 MSCAN断电模式 CPU处于停止模式 CPU处于等待模式且设置了CSWAI位 4.3.13 MSCAN断电模式 可编程唤醒功能 只要检测到CAN总线有效,就可以对MSCAN进行编程以唤醒MSCAN 4.3.14 可编程唤醒功能 14.3.4 中断 中断矢量运行描述 中断源 CCR掩码 本地使能 唤醒中断(WUPIF) I 位 CANRIER (WUPIE) 错误中断(CSCIF, OVRIF) I 位 CANRIER(CSCIE, OVRIE) 接入中断 (RXF) I 位 CANRIER(RXFIE) 发送中断 (TXE[2:0]) I 位 CANRIER (TXEIE[2:0]) 14.4 MSCAN初始化、报文发送与接收的函数设计 14.5.1 MSCAN初始化过程 判断CANE,是否处于启动状态。 写入处于初始化模式的配置寄存器。 清除INITRQ,离开初始化模式,进入正常模式 当MSCAN模块处于正常模式下,需要更改只能在初始化模式中写入的寄存器: CAN总线空闲后,通过设置SLPRQ并等待SLPAK进行确认,将模块置入睡眠模式。 进入初始化模式:确定INITRQ并等待INITAK。 写入处于初始化模式的配置寄存器。 清除INITRQ,离开初始化模式,继续保持正常模式 14.5.2 MSCAN报文发送/接收过程 MACAN数据帧的发送和接收使用相同的结构体: typedef struct CanMsg { uint32 sendID; //msg发送方ID uint8 IDE; //是否为扩展ID格式 uint8 RTR; //是否为远程帧 uint8 data[8]; //帧数据 uint8 dataLen; //帧数据长度 uint8 priority; //发送优先级 }CANMsg; 数据帧发送的过程 检查数据长度是否符合发送缓冲区数据长度要求 检查总线时钟 寻找空闲的发送缓冲区,并置位发送器缓冲器空(TXEx)标志 CPU写入CANTBSEL寄存器,为该缓冲器设置一个指针,使缓冲器能够在CANTXFG地址空间内访问 CPU将标识符、控制位和数据内容保存到一个发送缓冲器 清除相关TXE标志,缓冲器标志为发送准备就绪 数据帧接收的过程 检测接

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档