引言微控制器与CAN总线连接的传统方式是将CPU与总线控制器和总线收发器相连后再接入总线网络,这样使CPU外围电路复杂化,整个系统受外部影响较大。为了解决这一问题,很多单片机厂商纷纷将CAN控制器集成在单片机芯片上。目前,单片机内部集成的CAN控制器有Motorola公司的MC68HC912DG128A、Philips公司的P87C591和ARM7LPC2xxx系列、Atmel公司的AT89C51CC01和AT89C51CC02、Intel公司的TN87C196CA和TN87C196CB以及Cygnal公司的C8051F0
引言
微控制器与CAN总线连接的传统方式是将CPU与总线控制器和总线收发器相连后再接入总线网络,这样使CPU外围电路复杂化,整个系统受外部影响较大。为了解决这一问题,很多单片机厂商纷纷将CAN控制器集成在单片机芯片上。目前,单片机内部集成的CAN控制器有Motorola公司的MC68HC912DG128A、Philips公司的P87C591和ARM7 LPC2xxx系列、Atmel公司的AT89C51CC01和AT89C51CC02、Intel公司的TN87C196CA和TN87C196CB以及Cygnal公司的C8051F040等。
LPC2119是Philips公司推出的一款性价比很高的ARM7核处理器,内部集成两路独立的CAN控制器。ARM核的处理器具有性能高、成本低和能耗小的特点,适用于多种领域,如嵌入式控制、消费/教育类多媒体、DSP和移动式应用等。本文主要介绍LPC2119的CAN总线智能节点的设计。
硬件设计
LPC2119处理器特点
LPC2119是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-STMCPU,并带有128 KB嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。实行流水线作业,提供Embedded ICE逻辑,支持片上断点和调试点,具有先进的软件开发和调试环境。 LPC2119具有非常小的64脚封装、极低的功耗、多个32位定时器、4路10位ADC、2路CAN、PWM通道、多个串行接口,包括2个16C550工业标准UART、高速I2C接口(400 kHz)和2个SPI接口,46个GPIO以及多达9个外部中断,特别适用于汽车、工业控制应用以及医疗系统和容错维护总线。
LPC2119内部集成2个CAN控制器,每一个CAN控制器都与独立CAN控制器SJA1000有着相似的寄存器结构。其主要的区别在于标识符接收过滤的编程操作上,篇幅有限,这里不作详述。它的主要特性有:单个总线上的数据传输速率高达1Mb/s;32位寄存器和RAM访问;兼容CAN2.0B,ISO11898-1规范;全局验收滤波器可以识别所有的11位和29位标识符;验收滤波器为选择的标准标识符提供Full CAN-style自动接收。
CAN智能节点硬件电路
CAN接口部分包括LPC2119(内置CAN控制器)、光电耦合器和总线收发器,如图1所示。