logo资料库

创龙TMS320F2837xD技术参考手册-第22章:Controller Area Network (CAN).pdf

第1页 / 共91页
第2页 / 共91页
第3页 / 共91页
第4页 / 共91页
第5页 / 共91页
第6页 / 共91页
第7页 / 共91页
第8页 / 共91页
资料共91页,剩余部分请下载后查看
Controller Area Network (CAN)
22.1 概述
22.1.1 特性
22.1.2 功能描述
22.1.3 框图
图22-1. CAN 框图
22.1.3.1 CAN内核
22.1.3.2 消息处理程序
22.1.3.3 消息RAM
22.1.3.4 寄存器和消息对象访问(IFx)
22.2 配置设备引脚
22.3 操作模式
22.3.1 初始化
22.3.2 CAN消息传输(正常操作)
22.3.2.1 禁用自动重传
22.3.2.2 自动总线打开
22.3.3 测试模式
22.3.3.1 静默模式
图22-2. 静默模式下的CAN内核
图22-3. 环回模式下的 CAN内核
22.3.3.3 外部环回模式
图22-4. 外部环回模式下的CAN内核
图22-5. 环回与静默模式组合下的CAN内核
22.5 中断功能
22.5.1 消息对象中断
22.5.2 状态更改中断
22.5.3 错误中断
22.6 全局断电模式
22.6.1 进入全局掉电模式
22.6.2 从全局掉电模式唤醒
22.7 本地掉电模式
22.7.1 进入本地掉电模式
22.7.2 从本地掉电模式唤醒
22.8 奇偶校验机制
22.8.1 奇偶校验错误的行为
22.9 调试模式
22.10 模块初始化
22.11 消息对象的配置
22.11.1 数据帧的发送对象的配置
图22-6. 发送对象的初始化
22.11.2 远程帧的发送对象的配置
22.11.3 配置数据帧的单个接收对象
图22-7. 数据帧的单个接收对象的初始化
22.11.4 远程帧的单个接收对象的配置
图22-8. 远程帧的单个接收对象的初始化
22.11.5 FIFO缓冲区的配置
22.12 消息处理
22.12.1 消息处理程序概述
22.12.2 接收/发送优先级
22.12.3 事件驱动的CAN通信中的消息传输
22.12.4 更新传输对象
22.12.5 更改发送对象
22.12.6 接收到的消息的可接受过滤
22.12.7 数据帧的接收
22.12.8 接收远程帧
22.12.9 读取接收的消息
22.12.10 为接收对象请求新数据
22.12.11 在FIFO缓冲区中存储接收的消息
22.12.12 从FIFO缓冲区读取
图22-9. FIFO缓冲区的CPU处理(中断驱动)
22.13.1 位时间和位速率
图22-10. 位定时
表22-1. CAN协议要求的可编程范围
22.13.1.1 同步段
22.13.1.2 传播时间段
图22-11. 传播时间段
22.13.1.3 相位缓冲区段和同步
图22-12. 后沿和早期同步
图22-13. 过滤短主导尖峰
22.13.1.4 振荡器容差范围
22.13.2 CAN位定时的配置
图22-14. CAN内核的CAN协议控制器的结构
22.13.2.1 位定时参数的计算
22.13.2.2 高波特率位定时示例
22.13.2.3 低波特率位定时示例
22.14 消息接口寄存器集
22.14.1 消息接口寄存器设置1和2
图22-15. IF1 / IF2寄存器和消息RAM之间的数据传输
22.15 消息RAM
22.15.1 消息对象的结构
图22-16. 消息对象的结构
表22-2. 消息对象字段描述(接上)
表22-2. 消息对象字段描述(接上)
表22-3. 消息RAM在调试模式下寻址
表22-3. 消息RAM在调试模式下寻址(接上)
图22-17. 调试模式下的消息RAM表示
22.16 寄存器
22.16.1 CAN基地址
表22-4. CAN基地址列表
22.16.2 CAN_REGS 寄存器
表22-5. CAN_REGS 寄存器
表22-6. CAN_REGS访问类型代码
图22-18. CAN_CTL寄存器
表22-7. CAN_CTL寄存器字段描述(接上)
表22-7. CAN_CTL寄存器字段描述(接上)
22.16.2.2 CAN_ES寄存器(偏移= 4h) [重置 = 3h]
图22-19. CAN_ES寄存器
表22-8. CAN_ES寄存器字段描述(接上)
22.16.2.3 CAN_ERRC寄存器(偏移= 8h) [重置 = 0h]
图22-20. CAN_ERRC Register
图22-21. CAN_BTR Register
表22-10. CAN_BTR寄存器字段描述(接上)
22.16.2.5 CAN_INT寄存器(偏移= 10h) [重置 = 0h]
图22-22. CAN_INT Register
22.16.2.6 CAN_TEST寄存器(偏移= 14h) [重置 = 0h]
图22-23. CAN_TEST Register
图22-24. CAN_PERR Register
图22-25. CAN_REL Register
图22-26. CAN_RAM_INIT Register
图22-27. CAN_GLB_INT_EN Register
图22-28. CAN_GLB_INT_FLG Register
图22-29. CAN_GLB_INT_CLR Register
图22-30. CAN_ABOTR Register
图22-31. CAN_TXRQ_X Register
图22-32. CAN_TXRQ_21 Register
图22-33. CAN_NDAT_X Register
图22-34. CAN_NDAT_21 Register
图22-35. CAN_IPEN_X Register
图22-36. CAN_IPEN_21 Register
图22-37. CAN_MVAL_X Register
图22-38. CAN_MVAL_21 Register
图22-39. CAN_IP_MUX21 Register
图22-40. CAN_IF1CMD Register
表22-29. CAN_IF1CMD寄存器字段描述(接上)
表22-29. CAN_IF1CMD寄存器字段描述(接上)
图22-41. CAN_IF1MSK Register
图22-42. CAN_IF1ARB Register
图22-43. CAN_IF1MCTL Register
表22-32. CAN_IF1MCTL寄存器字段描述(接上)
图22-44. CAN_IF1DATA Register
图22-45. CAN_IF1DATB Register
图22-46. CAN_IF2CMD Register
表22-35. CAN_IF2CMD寄存器字段描述(接上)
表22-35. CAN_IF2CMD寄存器字段描述(接上)
图22-47. CAN_IF2MSK Register
图22-48. CAN_IF2ARB Register
图22-49. CAN_IF2MCTL Register
表22-38. CAN_IF2MCTL寄存器字段描述(接上)
图22-50. CAN_IF2DATA Register
图22-51. CAN_IF2DATB Register
图22-52. CAN_IF3OBS寄存器
表22-41. CAN_IF3OBS寄存器字段描述(接上)
图22-53. CAN_IF3MSK Register
图22-54. CAN_IF3ARB Register
图22-55. CAN_IF3MCTL Register
表22-44. CAN_IF3MCTL寄存器字段描述(接上)
图22-56. CAN_IF3DATA Register
图22-57. CAN_IF3DATB Register
图22-58. CAN_IF3UPD Register
版本 英文 修订 2016年12月 中文 修订 2017年 05月 前言 1 作者(排名不分先后) 统筹 陈汇照 廖猷荣 翻译 陈劼 董瀚林 郭韬 郭旭强 韩超 靳飞 汪金新 吕伟 校对 李镕旷 李兆颖 审阅 王斌 编辑 黎梅珍 发行 黎梅珍 2 版权声明 英文文档著作权归属美国德州仪器公司所有。 中文文档著作权归属广州创龙电子科技有限公司所有。任何单位和个人可以自由查阅、发布本文档,但不能修 改或删除文档中的任何信息,否则广州创龙电子科技有限公司保留依法追究其责任的权利。 3 免责声明 由于时间仓促及作者水平有限,文档中难免会存在一些错误或者遗漏,欢迎广大读者予以指正。广州创龙电子 科技有限公司不对由于此文档的纰漏可能引起的损失承担责任。 4 鸣谢 特别感谢德州仪器公司授权广州创龙电子科技有限公司翻译 TMS320F28377 相关文档。 广州创龙电子科技有限公司翻译了下述文档: 1、TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual 2、TMS320F2837xD Dual-Core Delfino™ Microcontrollers (Rev. G) 创龙官网:www.tronlong.com 技术论坛:www.51ele.net销售邮箱:sales@tronlong.com 技术邮箱:support@tronlong.com公司总机:020-8998-6280 技术热线:020-3893-9734广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家
版本 英文 修订 2016年12月 中文 修订 2017年 05月 前言 5 公司简介 广州创龙电子科技有限公司(简称“广州创龙”或"Tronlong"),是中国领先的嵌入式方案商,专业提供 嵌入式开发套件、教学设备和主板定制服务,专注于TI DSP以及DSP+ARM平台方案开发,是TI中国合作伙伴之 一,和国内诸多著名企业、研究所、高等院校合作密切。 广州创龙拥有TI C2000/C5000/C6000/DaVinci/KeyStone/Sitara、Xilinx Spartan/Artix/Kintex/ Virtex系列产品线,推出基于DSP+ARM+FPGA三核架构的数据采集处理解决方案,广泛应用于工控、电力、 通信、仪器仪表、图像、音视频处理等行业。 作为嵌入式领域的领导者,广州创龙注重产品质量和技术支持,致力于让客户减少研发成本、降低设计难 度、缩短开发周期,使产品快速上市,是主板定制合作首选企业。 广州创龙,您身边的主板定制专家! 6 TMS320F28377开发套件 TL28377-EasyEVM是一款基于广州创龙SOM-TL28377核心板所设计的高端单/双核浮点开发板,它为用户提 供了SOM-TL28377核心板的测试平台,用于快速评估SOM-TL28377核心板的整体性能。 TL28377-EasyEVM底板采用沉金无铅工艺的两层板设计,不仅为客户提供系统驱动源码、丰富的Demo程 序、完整的软件开发包,以及详细的TMS320F28x系统开发文档,还协助客户进行底板的开发,提供长期、全 面的技术支持,帮助客户以最快的速度进行产品的二次开发,实现产品的快速上市。 创龙官网:www.tronlong.com 技术论坛:www.51ele.net销售邮箱:sales@tronlong.com 技术邮箱:support@tronlong.com公司总机:020-8998-6280 技术热线:020-3893-9734广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家
版本 英文 修订 2016年12月 中文 修订 2017年 05月 前言 创龙官网:www.tronlong.com 技术论坛:www.51ele.net销售邮箱:sales@tronlong.com 技术邮箱:support@tronlong.com公司总机:020-8998-6280 技术热线:020-3893-9734广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家
Chapter 22 SPRUHM8F – December 2013 – Revised December 2016 Controller Area Network (CAN) 本章包含控制器局域网(CAN)模块的一般说明。CAN 模块是一种串行通信协议,可高效地支持具有高可 靠性的分布式实时控制。CAN 模块支持高达 1 Mbit / s 的比特率,并且符合 ISO11898-1(CAN 2.0B)协议 规范。 主题 页码 22.1 概述............................................................................................................... 2181 22.2 配置设备引脚................................................................................................... 2183 22.3 操作模式......................................................................................................... 2183 22.4 多时钟源......................................................................................................... 2187 22.5 中断功能......................................................................................................... 2187 22.6 全局掉电模式................................................................................................... 2188 22.7 本地掉电模式................................................................................................... 2188 22.8 奇偶校验机制................................................................................................... 2189 22.9 调试模式....................... ................................................................................. 2190 22.10 模块初始化..................................................................................................... 2190 22.11 消息对象的配置.................................. ..................................... ..... ................ 2190 22.12 信息传递 ............................................ .......................................................... 2192 22.13 CAN 位定时...................................... ............................................................... 2197 22.14 信息接口寄存器集........................... ................................................................. 2205 22.15 信息 RAM .......................................... ............................................................ 2207 22.16 寄存器 ............................................................................................................ 2212 2180 Controller Area Network (CAN) 创龙官网:www.tronlong.com 技术论坛:www.51ele.net销售邮箱:sales@tronlong.com 技术邮箱:support@tronlong.com公司总机:020-8998-6280 技术热线:020-3893-9734广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家
Overview 22.1 概述 此设备使用流行的 CAN IP 称为 D_CAN。 22.1.1 特性 CAN 模块实现以下功能: CAN 协议版本 ISO11898-1(CAN 2.0B) • • 比特率高达 1 MBit / s • 多个时钟源 • 32 个消息对象(邮箱) • 每个消息对象的单独标识符掩码 • 消息对象的可编程 FIFO 模式 • 可编程的环回模式,用于自检操作 • 用于调试支持的挂起模式 • 软件模块复位 • 通过可编程 32 位定时器在总线关闭后自动总线接通 • 消息 RAM 奇偶校验机制 • 两个中断线 22.1.2 功能描述 CAN 模块根据 ISO 11898-1(与 Bosch CAN 协议规范 2.0 A,B 相同)执行 CAN 协议通信。比特 率可以编程为高达 1 MBit / s 的值。与物理层(CAN 总线)的连接需要 CAN 收发器芯片。 对于 CAN 网络上的通讯,可以组态各个消息对象。消息对象和标识符掩码存储在消息 RAM 中。 涉及消息处理的所有功能都在消息处理程序中实现。这些功能是接受过滤,CAN Core 和消息 RAM 之间的消息传输,以及传输请求的处理的。 CAN 的寄存器集可以由 CPU 通过模块接口直接访问。这些寄存器用于控制/配置 CAN 内核和消息 处理程序,以及访问消息 RAM。 Controller Area Network (CAN) 2181 创龙官网:www.tronlong.com 技术论坛:www.51ele.net销售邮箱:sales@tronlong.com 技术邮箱:support@tronlong.com公司总机:020-8998-6280 技术热线:020-3893-9734广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家
Overview 22.1.3 框图 图 22-1. CAN 框图 CAN_RX CAN_TX CAN Core Message Handler Registers and Message Object Access (IFx) Message RAM Interface Test Modes only Module Interface CAN Message RAM 32 Message Objects (Mailboxes) CPU Bus (8, 16 or 32 bit) 22.1.3.1 CAN 内核 CAN 内核由 CAN 协议控制器和 Rx / Tx 移位寄存器组成。它处理所有 ISO 11898-1 协议功能。 22.1.3.2 消息处理程序 消息处理程序是一个状态机,它控制单端口消息 RAM 和 CAN 内核的 Rx/Tx 移位寄存器之间的数据 传输。它还处理在控制寄存器中编程的接收过滤和中断请求生成。 22.1.3.3 消息 RAM CAN 消息 RAM 允许存储 32 个 CAN 消息。 22.1.3.4 寄存器和消息对象访问(IFx) 通过对消息对象的间接访问来确保数据一致性。在正常操作期间,对消息 RAM 的所有 CPU 访问都通过接 口寄存器完成。 2182 Controller Area Network (CAN) 创龙官网:www.tronlong.com 技术论坛:www.51ele.net销售邮箱:sales@tronlong.com 技术邮箱:support@tronlong.com公司总机:020-8998-6280 技术热线:020-3893-9734广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家
三个接口寄存器组控制 CPU 对消息 RAM 的读写访问。有两个用于读/写访问的接口寄存器集(IF1 和 IF2) 和一个仅用于读访问的接口寄存器(IF3)。参见第 22.14 节。接口寄存器具有与消息 RAM 相同的字长。 在专用测试模式下,消息 RAM 是存储器映射的,可以直接访问。 Configuring Device Pins 22.2 配置设备引脚 GPIO mux 寄存器必须配置为将此外设连接到器件引脚。为了避免引脚上的毛刺,必须首先配置 GPyGMUX 位(同时保持相应的 GPyMUX 位为默认值 0),然后将 GPyMUX 寄存器写入所需的值。 一些 I / O 功能由 GPIO 寄存器设置定义,与该外设无关。对于输入信号,通过将相应的 GPxQSELn 寄 存器位设置为 11b,GPIO 输入限定应设置为异步模式。内部上拉电阻可以在 GPyPUD 寄存器中配置。 有关 GPIO 多路复用器和设置的更多详细信息,请参阅 GPIO 章节。 22.3 操作模式 22.3.1 初始化 软件初始化模式可以通过软件(通过设置 CAN_CTL 寄存器中的 Init 位),硬件复位或通过总线关闭进入。 当 Init 位置 1 时,来自 CAN 总线的消息传输被停止,CAN_TX 输出的状态为隐性(高电平)。CAN 错误计 数器不更新。设置 Init 位不会更改任何其他配置寄存器。 要初始化 CAN 控制器,CPU 必须配置 CAN 位定时和必须用于 CAN 通信的那些消息对象。不需要的消息对 象可以通过清除 MsgVal 位来禁用。 当 CAN 控制寄存器中的 Init 和 CCE 位都置 1 时,允许访问位定时寄存器来配置位定时。 清除 Init 位结束软件初始化。之后,比特流处理器(BSP)通过在它可以参与总线活动和开始消息传输之前 等待发生一系列 11 个连续隐性位(=总线空闲),使其自身与 CAN 总线上的数据传输同步(更多细节参见 第 22.13 节)。 消息对象的初始化独立于 Init 位,但是所有消息对象应该配置为特定标识符或在消息传输开始之前设置为 “无效”。 在正常操作期间,可以通过 CPU 更改消息对象的配置。在消息对象从接口寄存器到消息 RAM 的设置和随后 的传送之后,当修改的消息对象号等于或小于先前找到的消息对象时,将对其应用接受过滤。这确保即使在 改变消息对象时数据一致性,例如,当存在未决的 CAN 帧接收时。 注意: CAN 模块使用特殊寻址方案来支持字节访问。这与 USB 模块上使用的地址相同。为了易于 使用,建议只对 CAN 寄存器进行 32 位访问。然而,在更高的优化级别,编译器可能将 32 位 访问分为两个连续的 16 位访问,这将破坏寄存器值。编译器修复正在开发中。同时,16 位 访问可以用作解决方法。低 16 位应写入寄存器的地址,高 16 位应写入寄存器的地址加 2 22.3.2 CAN 消息传输(正常操作) 一旦 CAN 初始化并且 Init 位复位为零,CAN 内核将自身同步到 CAN 总线并准备好进行通信。 Controller Area Network (CAN) 2183 创龙官网:www.tronlong.com 技术论坛:www.51ele.net销售邮箱:sales@tronlong.com 技术邮箱:support@tronlong.com公司总机:020-8998-6280 技术热线:020-3893-9734广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家
Operating Modes 如果接收到的消息通过过滤,则将其存储到其适当的消息对象中。整个消息(MSGID,DLC 和最多 8 个数 据字节)存储在消息对象中。因此,当例如使用标识符掩码时,当存储接收到的消息时,被掩盖为“不关 心”的 MSGID 比特可以在消息对象中改变。 CPU 可以在任何时间通过接口寄存器读取或写入每个消息,因为消息处理程序在并发访问的情况下保证数 据一致性。 要发送的消息可以由 CPU 更新。如果消息存在永久消息对象(在配置期间设置的 MSGID 和控制位,对多个 CAN 传输保持不变),则只能更新数据字节。如果要将多个发送消息分配给一个消息对象,则在请求发送该 消息之前必须配置整个消息对象。 可以同时请求多个消息对象的传输。随后根据其内部优先级传输它们。即使所请求的传输仍然未决,消息也 可以随时更新或设置为“无效”。然而,如果在未决传输开始之前更新消息,则将丢弃数据字节。 根据消息对象的配置,可以通过接收具有匹配标识符的远程帧来自动请求传输。 22.3.2.1 禁用自动重传 根据 CAN 规范(参见 ISO11898,6.3.3 恢复管理),CAN 提供了一种自动重传已丢失仲裁或在传输期间被 错误干扰的帧的机制。在传输成功完成之前,不会向用户确认帧传输服务。 默认情况下,启用此自动重传。可以通过在 CAN 控制寄存器中设置 DAR 位来禁止它。此模式的更多详细信 息在第 22.12.3 节中提供。 22.3.2.2 自动总线打开 默认情况下,在 CAN 进入总线关闭状态后,CPU 可以通过复位 Init 位来启动总线关闭恢复序列。如果不这 样做,模块将保持总线关闭状态。 CAN 提供由 ABO 位使能的自动自动总线打开功能。如果设置,CAN 将自动启动总线关闭恢复序列。该序 列可以延迟用户定义的时钟周期数。 注意: 如果 CAN 由于发生大量 CAN 总线错误而进入总线关闭,它将停止所有总线活动并自动设置 Init 位。一旦 Init 位由 CPU 复位或由于自动总线打开功能,器件将在恢复正常操作之前等待 128 次总线空闲(等于 128 * 11 个连续隐性位)。在总线关闭恢复序列结束时,错误计数器 将复位。 22.3.3 测试模式 CAN 提供几种测试模式,主要用于自测试。 对于所有测试模式,CAN 控制寄存器中的测试位需要设置为 1.这使得能够对测试寄存器进行写访问。 22.3.3.1 静默模式 静默模式可以用于分析 CAN 总线上的业务而不通过发送显性位(例如,确认位,过载标志,活动的错误 标志)而影响它。CAN 仍然能够接收有效的数据帧和有效的远程帧,但它不会发送任何显性位。然而, 接收到的帧被内部路由到 CAN 内核。 2184 Controller Area Network (CAN) 创龙官网:www.tronlong.com 技术论坛:www.51ele.net销售邮箱:sales@tronlong.com 技术邮箱:support@tronlong.com公司总机:020-8998-6280 技术热线:020-3893-9734广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家 广州创龙,您身边的主板定制专家
分享到:
收藏