收藏 分销(赏)

嵌入式汽车在线运行参数监测研究文献翻译.doc

上传人:天**** 文档编号:3681268 上传时间:2024-07-13 格式:DOC 页数:24 大小:660KB
下载 相关 举报
嵌入式汽车在线运行参数监测研究文献翻译.doc_第1页
第1页 / 共24页
嵌入式汽车在线运行参数监测研究文献翻译.doc_第2页
第2页 / 共24页
嵌入式汽车在线运行参数监测研究文献翻译.doc_第3页
第3页 / 共24页
嵌入式汽车在线运行参数监测研究文献翻译.doc_第4页
第4页 / 共24页
嵌入式汽车在线运行参数监测研究文献翻译.doc_第5页
第5页 / 共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 验收优先级每个验收滤波器有两个不同的中断配置选择。

23、1. 高优先级中断当配置为高优先级时, 如果一个 CAN 帧通过验收滤波器将立即产生接收中断, 这允许使用一定的验收滤波器作为报警信息识别。2. 接收中断级如果接收 FIFO 中的信息字节数超过了接收中断级寄存器中定义的值, 将产生接收中断。 两个中断配置都在验收滤波器优先级寄存器中定义。 ACFPRIO CAN 地址 1Fh符号功能BnF2PRIO滤波器2 优先级 1=高优先级中断 0 =Rx 级中断BnF1PRIO滤波器1 优先级1 =高优先级中断 0 =Rx 级中断n = Bank4 3 2 或13.3.2 更高层协议的支持 对数据字节的验收举例 DeviceNet 协议 显性信息Dev

24、iceNet 协议使用带 11 位 CAN 识别码的标准帧格式。 一个显性信息使用 CAN 帧的数据段传送DevicNet 定义的信息。 发送的数据段 0.8 字节 包含了完整的显性信息, 其中包括信息头和信息体。 信息头指定在 CAN 数据段的第一个数据字节中并包含目标 MAC ID 。11 位 CAN 识别码与信息 MAC ID 的组合定义了一个源或目标 MAC ID 而且必须被检查。P8xC591 的验收滤波器可轻易地过滤信息头和源 MAC ID。 由于对更高层协议的支持, 过滤第一个数据字节中的 MAC ID 将减少P8xC591 的中断并使系统的整体性能显著提高。此外 ,包含开放显性

25、信息连接中的服务代码信息的第二个数据字节同样可用于验收滤波。 附英文原文:1. INTRODUCTIONThe P8xC591 is an advanced CAN microcontroller for use in general industrial and automotive applications. In addition to the enhanced functionality of the Philips Rx+ core 5 this device provides a number of dedicated hardware functions for these ap

26、plications.The CAN controller of the P8xC591 fulfils the complete CAN2.0B specification and provides a direct software migration path from the SJA1000 stand-alone CAN controller 6. With a superset of CAN features like an enhanced acceptance filter, support for System Maintenance, Diagnostics, System

27、 Optimisation and a Receive FIFO characteristics it is intended to be used in versatile application areas.This Application Note covers the CAN related items of P8xC591 applications. To apply and understand the application examples given in this document, the reader should be familiar with the Philip

28、s P8xC591 data sheet 1. The C code in the examples describe a basic set of software driver routines which could be used as a starting point for development of application software. All used definitions are listed in the Appendix.2. OVERVIEWSystem OverviewThe P8xC591 is designed to work with a minimu

29、m number of external components. Figure 2-1 shows the circuitry of a CAN node using the ROM- or OTP EPROM- version of the P8xC591. The only additional components that are required are a crystal plus two capacitors to drive the on-chip oscillator, a capacitor connected to the Reset pin, using the on

30、chip power-on RESET circuitry and a transceiver to connect theP8xC591 to the CAN bus.BLOCK DiagramFigure 2-2 shows the block diagram of the P83C591 (ROM) or the P87C591 (OTP EPROM) versions.In addition to a standard set of peripherals the P8xC591 contains a powerful CAN controller block which is als

31、o known as PeliCAN. This embedded CAN controller includes the following functional blocks:The CAN Core Block controls the transmission and reception of CAN frames according to the CAN specification CAN2.0B.The CAN Interface consist of 5 Special Function Registers which perform the link between CPU a

32、nd CAN controller. Access to important CAN registers is accomplished by a fast autoincrement addressing feature and bit-addressable Special Function Registers.The Transmit Buffer of the CAN controller is able to store one complete CAN message (Extended or Standard Frame Format). Whenever a transmiss

33、ion is initiated by the CPU, message bytes are transferred from the Transmit Buffer into the CAN Core Block.When receiving a message the CAN Core Block converts the serial bit stream into parallel data for the Acceptance Filter. With this programmable filter the P8xC591 decides which messages actual

34、ly are received.All received messages accepted by the Acceptance Filter are stored within the Receive FIFO. Dependingon the mode of operation and the data length up to 21 CAN messages can be stored. This enables the user to be more flexible when specifying interrupt services and interrupt priorities

35、 for the system because the probability of data overrun conditions is reduced extremely.Description of CAN FeaturesThe CAN 2.0B active CAN controller supports 11-bit standard and 29-bit extended identifiers. A maximum CAN bit-rate of 1Mbit/s is already achievable with an 8 MHz clock. An on-chip 64-b

36、yte Receive FIFO and a 13-byte transmit buffer is implemented.In addition to the general CAN features the P8xC591 provides enhanced PeliCAN, System Maintenance,Diagnostics and Optimisation Features known from the SJA1000 stand-alone CAN controller 6 from Philips Semiconductors.PeliCAN Features:l Fou

37、r independently configurable Acceptance Filter Banksl Four possible Acceptance Filter Configurations in each Bankl Each filter has two 32-bit specifiers: a 32-bit Code and a 32-bit Maskl All filters are changeable on the flyl Acceptance Filter with Higher Layer Protocol Supportl Receive FIFO charact

38、eristicl Listen Only and Self Test Model Receive Interrupt only if FIFO Receive Interrupt Level is reachedl Receive Interrupt immediately at reception of High Priority Data FramesSystem Maintenance, Diagnostics and Optimisation Features:Arbitration Lost Capturel Interrupt on arbitration lostl Detail

39、ed CAN bit position of last arbitration lost event is capturedAdvanced Error Diagnosticsl Error Code Capture with detailed bit position and type of errorl Readable Error Countersl Several different Error Interruptsl Programmable error warning limitListen Only Model Monitor Functionl Automatic Bit-ra

40、te Detectionl CAN Self Test Model System Self Testsl Reception of own messagesl Global Self Test (acknowledge required)l Local Self Test (no acknowledge required)Main differences between P8XC591 and SJA1000 CAN FunctionalitySJA1000P8xC591One Acceptance Filter Bank with Dual or Single Filter support.

41、Four Acceptance Filter Banks with Dual or Single Filter support in each bank. All filters are changeable on the fly (see also chapter 3.3.3).One Receive Interrupt configuration: Receive Interrupt is generated on the reception of any message (while the Receive FIFO is not empty).Two Receive Interrupt

42、 configurations possible:1. High Priority Interrupt (see also chapter 3.3.1)2. Receive Interrupt LevelCAN Bit Timing Calculation t = / f x (32 BRP.5+ .+1) scl XTALCAN Bit Timing Calculation t = / f x (32 BRP.5+ .+1) scl XTALBasicCAN Mode 1 PeliCAN ModePeliCAN ModeDifferent Transmit output stage conf

43、igurations with two output pins (TX0, TX1): Normal, Bi-phase, Clock and Test output ModeTransmit output stage with one output pin (TXDC) in Normal Mode configuration3. CAN FUNCTIONALITYThe CAN protocol 2.0B as specified in 2 is completely handled by the CAN Core Block, see also chapter 2.2. The CPU

44、of the P8xC591 initialises and controls the communication. The following chapters describe all functions necessary to run CAN communication with the P8xC591.CPU InterfaceSpecial Function RegistersAccess to all PeliCAN registers is performed via five Special Function Registers (SFR). They are mapped into the address range of the P8xC591. For all PeliCAN address locations indirect pointer (CANADR)based addressing is achieved. In addition frequently used PeliCAN registers can be accessed directly

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 行业资料 > 机械/制造/汽车

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服