嵌入式汽车在线运行参数监测研究文献翻译.doc
《嵌入式汽车在线运行参数监测研究文献翻译.doc》由会员分享,可在线阅读,更多相关《嵌入式汽车在线运行参数监测研究文献翻译.doc(24页珍藏版)》请在咨信网上搜索。
1、P8xC591 微控制器在CAN 中的应用1 介绍P8xC591 是一个高性能的 CAN微控制器,可用于汽车和通用的工业应用,除了具有Philips “Rx+内核”的增强特性之外,器件还为这些应用提供许多专用的硬件功能。P8xC591 完全履行 CAN2.0B 规范并提供一个直接从 SJA1000 独立 CAN控制器的软件移植路径。P8xC591 具有 CAN 的扩充特性, 其中包括增强型验收滤波器, 支持系统维护,诊断,系统优化以及接收FIFO 特性。 P8xC591 具有非常广泛的应用领域。该应用手册涵盖了 P8xC591 与CAN 相关的应用项目,要想应用并理解该文档中的应用示例,读者必
2、须熟悉 P8xC591 的数据手册。示例中的“C”代码描述了一套基本的软件程序,它可作为应用软件开发的一个起点。附录中列出了所有使用的定义。2 概述 系统概述P8xC591 设计成在最少数量的外部元件下工作。图 2-1 所示为使用 ROM 或 OTP EPROM的P8xC591的 CAN 节点电路。所需要的外部元件仅仅是一个晶振加两个电容驱动片内振荡器,一个连接到复位脚的电容(使用片内复位电路)以及一个收发器用于将 P8xC591 连接到 CAN 总线。方框图 图 2-2 所示为 P83C591(ROM)或 P87C591(OTP)的方框图P8xC591 除了包含标准的外围功能以外,还包含了一
3、个强大的 CAN 控制器模块,它以 PeliCAN 为大家所知道,该嵌入式 CAN 控制器包括了下列功能模块:CAN 内核模块根据 CAN2.0B 规范控制 CAN 帧的发送和接收。CAN 接口包含5个实现 CPU 与 CAN 控制器连接的特殊功能寄存器,对重要 CAN 寄存器的访问通过快速自动增加的寻址特性和对特殊功能寄存器的位寻址来实现。 CAN 控制器的发送缓冲区能够保存一个完整的 CAN 信息(扩展或标准帧格式)。只要通过 CPU 启动发送,信息字节就从发送缓冲区传输到 CAN 内核模块。当接收一个信息时 ,CAN 内核模块将串行位流转换成并行数据输入到验收滤波器,通过该可编程滤波器,
4、 P8xC591 确定实际接收到的信息 。 所有由验收滤波器验收的接收数据都保存在接收 FIFO 中。取决于操作模式和数据长度的不同,最多可保存 21 个 CAN 信息。这使用户在指定系统的中断服务和中断优先级时有更多的灵活性,因为数据溢出的可能性大大降低了。CAN 特性的描述CAN2.0B 控制器支持11位标准和29 位扩展识别码。使用8MHz时钟可实现 1Mbit/sCAN 总线速率。还具有一个片内 64 字节接收 FIFO 和一个 13 字节发送缓冲区。除了普通的 CAN 特性以外, P8xC591 还提供增强型 PeliCAN、 系统的维护、诊断和优化特性, 这些特性都因 Philip
5、s 半导体的 SJA1000 独立 CAN 控制器而闻名。PeliCAN 特性l 4个独立可配置的验收滤波器组 l 每个组都有 4 个可选的验收滤波器配置 l 每个验收滤波器都有 32 位区分符 32 位代码和 32 位屏蔽 l 所有滤波器都可 在运行中改变 l 支持更高层的协议的验收滤波器 l 接收 FIFO 特性 l 只听模式 自检测模式 l 只有达到 FIFO接收中断级才产生接收中断 l 在接收到高优先级数据帧时立即产生接收中断 系统维护 诊断和优化特性:仲裁丢失捕获l 仲裁丢失时产生中断 l 捕获到的上一次仲裁丢失的具体 CAN 位置 先进的错误诊断 l 带有具体位置和错误类型的错误代
6、码捕获 l 可读的错误计数器 l 几个不同的错误中断 l 可编程错误警告界限 只听模式 l 监控功能 l 自动位速率检测CAN 自检测模式l 系统自检测 l 自身信息接收 l 全局自检测 (要求应答) l 局部自检测 (不要求应答)2.4 P8xC591 和 SJA1000 CAN 特性的主要差别 SJA1000P8xC5911个1个支持双或单滤波器的验收滤波器组4 个支持双或单滤波器的验收滤波器组,所有滤波器都可 在运行中改变 见3.3.31 个接收中断配置:在接收任何信息时都会产生接收中断 (接收FIFO 非空)2 个接收中断配置1、高优先级中断 见3.3.12、接收中断级CAN 位定时计
7、算tscl = 2/fXTAL (32BRP.5+.+1)CAN 位定时计算tscl = 1/fXTAL (32BRP.5+.+1)BasicCAN 模式1PeliCAN 模式PeliCAN 模式两个输出管脚 TX0,TX1 的不同发送输出级配置:正常 双相位 时钟和测试输出模式输出管脚 TXDC 的发送输出级配置为正常模式注 1: SJA1000 是 PCA82C200 独立 CAN 控制器的继承产品。 BasicCAN 模式使 SJA1000 保持了对之前的 PCA82C200 的软件兼容性。3 CAN 功能CAN 协议 2.0B 完全由 CAN 内核模块处理, P8xC591 初始化并控
8、制通信, 下面的章节将讲述P8xC591所有用于 CAN 通信的功能。CPU 接口 特殊功能寄存器 对所有 PeliCAN 寄存器的访问通过 5 个特殊功能寄存器实现。 它们分布在 P8xC591 的地址范围内。所有PeliCAN 地址都通过间接指针 (CANADR) 寻址。 此外, 常用的PeliCAN 寄存器可直接由 CAN 特殊功能寄存器进行访问 。图3-1所示为所有的CAN特殊功能寄存器以及它们的PeliCAN寄存器, 通过CANMOD可对PeliCAN模式寄存器进行直接的读/写访问, 通过写入 CANCON 对命令寄存器进行访问, 通过读 CANCON 对中断寄存器进行访问, 通过
9、CANSTA 寄存器可对中断使能寄存器进行写操作, 读 CANSTA 是对 PeliCAN 状态寄存器进行访问 CANSTA可位寻址并允许单个状态位的直接寻址,这对查询很有用。 所有其它的 CAN 寄存器都需要进行间接寻址。 CANADR 寄存器指向PeliCAN 寄存器的地址在写操作时, 将要送到被寻址寄存器的数据写入 CANDAT。 读操作时,被寻址寄存器的数据可从 CANDAT 中读出 。下面的例子说明了对 PeliCAN 寄存器的直接和间接寻址功能:/* 模式寄存器的直接寻址*/ CANMOD = 0x01; /* 置位Mode Register中的复位请求*/ /* 对位定时寄存器0
10、和1的间接寻址*/ CANADR = BTR0; /* 将地址设置到BTR0寄存器*/ CANDAT = 0x45; /* 将数据写入BTR0*/ CANADR = BTR1; /* 将地址设置到BTR1寄存器*/ CANDAT = 0x2B; /* 将数据写入BTR1*/使用地址自动增加对 CAN 寄存器进行快速寻址前面一章所描述的间接寻址在寻址 CAN 信息缓冲区和验收滤波器时会很消耗时间。 因此,P8xC591包含一个自动增加模式用于快速寄存器寻址。 自动增加特性在 PeliCAN 地址 31(十进制)之后的地址被CANADR 选择时自动有效,.每次对 CANDAT的读/写,访问都自动增
11、加 CANADR 指针。 这类似于堆栈读写可有效地用于建立一个新的发送信息或用于对 RX 缓冲区进行读操作。/* 建立一个用于发送的新的CAN信息 */ CANADR = TBF; /* 指向591 TX 缓冲区 */ CANDAT = TransmitMessage0; /* 写TX帧信息 */ CANDAT = TransmitMessage1; /* 写TX识别码 1 */ CANDAT = TransmitMessage2; /* 写TX识别码 2 */ CANDAT = TransmitMessage3; /* 写TX数据字节 1 */ CANDAT = TransmitMessag
12、e4; /* 写TX数据字节 2 */ . . /* 将接收信息从RX缓冲区复制到CPU RAM */ CANADR = RBF; /* 指向 RX 缓冲区 */ ReceiveMessage0 = CANDAT; /* 读RX帧信息*/ReceiveMessage1 = CANDAT; /* 读RX识别码 1 */ ReceiveMessage2 = CANDAT; /* 读 RX识别码 2 */ ReceiveMessage3 = CANDAT; /* 读RX数据字节 1 */ ReceiveMessage4 = CANDAT; /* 读RX数据字节 2 */ . .初始化复位模式和操作模
13、式在上电或硬件复位后, CAN 控制器将处于复位模式 。在该模式中, 模式寄存器的 RM 位总是为 1。 如果 CAN 控制器不处于复位模式, RM 位的置位 (通过硬件或软件)将强制其进入复位模式, 内部状态机被冻结。典型地,在上电或硬件复位后, 一旦引导和初始化程序结束, CPU 将通过软件 (清零 RM位) 使 CAN控制器进入操作模式。 在操作模式中 ,下面任何一个动作将使 RM 位置位从而强制 CAN 控制器进入复位模式 。l 硬件复位 l 通过软件将 RM MOD.0 置位 l 总线脱离状态 此外, CAN 控制器的特殊模式, 只能从复位模式中进入, 这些特殊模式为测试模式, 接收
14、器极性模式, 自检测模式和只听模式, 退出复位模式后 CAN 控制器返回到由模式寄存器所定义的模式。CAN 控制器的设定CAN 控制器在上电或硬件复位后必须进行设定以实现 CAN 通信初始化的处理应当包括下面几项:l 操作模式 l 验收滤波器 l 总线定时 l TXDC 输出管脚配置 l 中断图 3-2 所示为初始化处理编程示例的流程图。对于 CAN 控制器的初始化 ,只有表 1 中所列寄存器相关。 大多数 CAN 寄存器具有一个方便的恢复特性, 在硬件复位或使 CAN 控制器进入复位模式后用户配置可保持不变 (表 1 中标注 “不变”)。 表1 CAN控制器寄存器设定寄存器位名称寄存器值上电
15、后HW 复位后置位MOD.0(RM)位模式寄存器MOD.7MOD.6MOD.5MOD.4MOD.3MOD.2MOD.1MOD.0000000010000000000000不变不变1测试模式接收极性模式自检测模式只听模式复位模式P1 口配置寄存器P1M1.1P1M2.10000不变不变输出驱动器配置, TXDC 脚必须过P1M1.1=0 P1M2.1=1 设置为推挽模式中断使能寄存器IERxxh不变不变与CAN 有关的中断使能寄存器Rx 中断级寄存器RIL00h00h不变接收中断级总线定时寄存器0BTR0xxh不变不变同步跳转宽度波特率预分频器总线定时寄存器1BTR1xxh不变不变每个位时间段的
16、采样验收滤波器模式寄存器ACFMOD00h不变不变用于组4,3,2,1 的信息格式用于组4,3,2,1 的验收滤波器模式验收滤波器使能寄存器ACFENxxh不变不变用于组4,3,2,1 的滤波器1&2 使能验收滤波器优先级寄存器ACFPRIOxxh不变不变用于组4,3,2,1 的滤波器1&2 优先级验收代码寄存器ACR(30)xxh不变不变ACR 用于组4,3,2,1验收屏蔽寄存器AMR(30)xxh不变不变AMR 用于组4,3,2,1流程图下图为 进入CAN控制器复位模式选择操作模式,退出CAN控制器复位模式TXCD脚(P1.1)配置与CAN相关的中断配置CAN位定时的配置验收滤波器的配置初
17、始化或重新配置起始初始化或重新配置结束是否使用CAN中断NYCAN 控制器初始化程序的简短示例 。对应的 C 代码见下页。图3-2初始化流程图CAN 初始化的C 代码示例 void init_can_controller ( void ) /* 进入CAN控制器复位模式 */ CANMOD = 0x01; /* 将CAN控制器设置为复位模式以启动初始化 */ /* TXDC Port (P1.1) 配置 */ /* 管脚TXDC 设置为推挽模式 */ P1M2 = P1M2 | 0x02; /* P1M2.1=1, P1M1.1 = 0 (默认) */ /* 配置与CAN有关的中断 */ CA
18、NSTA = 0x03; /* 使能接收和发送中断 */ /* CAN位定时的配置 */ CANADR = BTR0; /* BTR0和BTR1编程为125 kbit/s 12 MHz */ CANDAT = 0x45; CANADR = BTR1; /* TSEG1 = 12, TSEG2 = 3, SJW = 2 */ CANDAT = 0x2B; /* Samples = 1 - sample point 81 % */ /* 验收滤波器的配置 Bank1的滤波器1配置为接收ID = 010.0000.0XXX */CANADR = ACR10; /* 将地址设置到验收代码寄存器0 (B
19、ank 1) */ CANDAT = 0x40; /* 验收代码0用于滤波 */ CANADR = AMR10; /* 将地址设置到验收屏蔽寄存器0 (Bank 1) */ CANDAT = 0x00; /* bank1: 验收屏蔽0 */ CANDAT = 0xFF; /* bank1: 验收屏蔽1无关 */ CANDAT = 0xFF; /* bank1: 验收屏蔽2无关 */ CANDAT = 0xFF; /* bank1: 验收屏蔽3无关 */ CANADR = ACFMOD; /* 将地址设置到ACF模式寄存器 */ CANDAT = 0x55; /* 单验收滤波器使用11位ID (
20、SFF) */ CANADR = ACFPRIO; /* 将地址设置到ACF优先级寄存器 */ CANDAT = 0xFF; /* 所有滤波器都为高优先级 */ CANADR = ACFEN; /* 将地址设置到ACF使能寄存器 */ CANDAT = 0x01; /* 使能Bank1的验收滤波器 */ /* 选择操作模式 退出CAN控制器复位模式 */ CANMOD = 0x00; /* 使CAN控制器进入操作模式 */ 3.3验收滤波器输入的 CAN 信息通过 P8xC591 的验收滤波器滤波, 这样就只有预先定义的信息会被验收并保存到接收 FIFO。 如果中断使能, 只有这些已验收的信息
21、会产生接收中断, 从而减少了 CPU 服务于CAN 的处理时间 。4 个独立的验收滤波器组可分别进行配置。 每个组都具有 SJA1000 的功能并增加了 在运行中改变的特性。 (见 3.3.3 )验收代码寄存器(ACRn)和验收屏蔽寄存器(AMRn)定义验收滤波器。在验收代码寄存器中定义接收信息的格式。 对应的验收屏蔽寄存器允许通过将一定的位设置为 1 而将相应的位位置定义为 “无关” 这两个特性的组合定义了接收的 CAN 信息。ACR101.1010.0101AMR可接收的信息000.1111.0000101.xxxx.0101图3-4 验收滤波举例如图 3-5 所示, 每个验收滤波器组都可
22、配置为单滤波器或双滤波器 ,两个滤波器都支持标准 CAN 帧(11 位 ID) 以及扩展 CAN 帧 (29 位 ID) 关于验收滤波器的详细配置请参阅 P8xC591 数据手册。每个滤波器组的 4 种配置都可在验收滤波器模式寄存器中定义, 而且只能在 CAN 控制器的复位模式中定义。ACFMOD 寄存器 CAN 地址 1Dh 表2 验收滤波器模式寄存器符号功能MFORMATBn信息格式 0 SFF(11 位ID) 1 EFF(29 位ID)AMODEBn验收滤波器模0 单验收滤波器1 双验收滤波器n = Bank4 3 2 或1 3.3.1 验收优先级每个验收滤波器有两个不同的中断配置选择。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 汽车 在线 运行 参数 监测 研究 文献 翻译
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。