微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于LPC2294的CAN总线智能节点设计

基于LPC2294的CAN总线智能节点设计

时间:04-29 来源:互联网 点击:

  设计给出的CAN总线智能节点设计方案,它采用内置多路CAN总线控制器的LPC2294作为主控制器,采用隔离CAN收发器CTM1050T作为收发器,使得该节点体积小、功耗低、抗干扰性好,因而特别适用于汽车、工业控制以及医疗系统和容错维护总线中。

  1.硬件设计

  1.1 LPC2294的特点

  LPC2294是PHILIPS公司推出的一款功能强大的超低功耗的具有ARM7TDMI内核的32位微控制器。内部嵌入256 KB的高速Flash 存储器和16KB静态RAM。128 位宽度的存储器接口和独特的加速结构使32 位代码能够在最大时钟速率(60MHz)下运行。对代码规模有严格控制的应用可使用16 位Thumb 模式将代码规模降低超过30%,而性能的损失却很小。

  由于LPC2294 的144 脚封装、极低的功耗、两个个32 位定时器、八通道10 位ADC、四路互连的CAN接口、PWM 通道(六路)以及多达九个外部中断管脚使它们特别适用于汽车、工业控制应用以及医疗系统和容错维护总线。

  LPC2294 集成4路CAN 控制器。他们具有如下特性:

  ★ 单个总线上的数据传输速率高达1Mb/s

  ★ 32 位寄存器和RAM访问

  ★ 兼容CAN 2.0B, ISO 11898-1标准

  ★ 全局验收滤波器可以识别所有CAN 总线的11 位和29 位Rx 标识符

  ★ 验收滤波器为选择的标准标识符提供了Full CAN-style 自动接收功能

  1.2 隔离CAN收发器CTM1050T

  CTM1050T是一款带隔离的高速CAN收发器芯片,其主要功能是将CAN控制器的逻辑电平转换为CAN总线的差分电平,并且具有(DC 2500V)隔离功能、ESD保护功能及TVS管防总线过压功能。CTM1050T具有以下特性:

  ☆完全符合CAN 2.0和ISO 11898标准的CAN收发器

  ☆具有隔离、ESD保护功能及TVS管防总线过压功能;

  ☆速率最高达1Mbit/s;

  ☆隔离电压:DC 2500V

  ☆电磁辐射EME极低,电磁抗干扰EMI性极高;

  ☆无需外加元件可直接使用。

  1.3 CAN智能节点硬件电路设计

  CAN智能节点硬件电路如图1所示。

  

  图1基于LPC2294的CAN总线智能节点硬件电路

  主控制器LPC2294的晶振频率范围为1~30MHz。本设计选晶振频率为20MHz。内部256KB的高速Flash存储器用于代码和数据的存储。对于FLASH存储器,可通过内置的串行JTAG接口进行在系统编程(ISP In-System Programming),或进行在应用编程(IAP In-Application Programming)。为了便于调试和系统升级,在设计中总可以预留这些接口电路。

  LPC2294采用双电源供电。CPU的供电电压范围为1.65~1.95V(1.8±0.15V),I/O供电电压范围为3.0~3.6V(3.3±03V)。

  隔离CAN总线收发器CTM1050T是CAN协议控制器和物理总线之间的接口。在以往的设计方案中需要高速光耦(6N137)、DC/DC电源隔离模块、CAN收发器等其他元件才能实现带隔离的CAN收发电路,现在只需利用一片CTM1050T接口芯片就可以实现带隔离的CAN收发电路,并且隔离电压可以达到DC 2500V。

  1.4硬件的抗干扰设计

  在本设计所应用的场合中,产生电磁信号的设备较多,包括超短波设备、音频设备、电源等,因此抗干扰设计显得尤为重要。主要采取了以下措施:

  (1)为了进一步提高CAN总线节点的抗干扰能力,保证各节点之间在电气上是完全隔离和独立的,我们采用隔离CAN收发器CTM1050T,取代传统的光耦与电源隔离模块,提高性能的同时简化电路设计。

  (2)在CAN总线的两端加有两个120Ω的电阻,这两个电阻对于总线阻抗的匹配起着相当重要的作用。去掉它们会使数据通信的抗干扰性及可靠性大大降低,甚至无法通信。

  (3)CANH和CANL与地之间并联了两个30pF的小电容,可虑除总线上的高频干扰并且具有一定的防电磁辐射的能力。

  2.软件设计

  对于一般的32位ARM嵌入式应用系统,在运行主程序前必须初始化运行环境,即编写ARM控制器启动代码。该启动代码包括异常向量表、堆栈初始化、存储系统初始化和目标板初始化等,一般用汇编语言编写。

  对于该设计来说,关键的是编写CAN驱动程序。主程序只需通过调用驱动程序提供的接口来实现数据的接受和发送。驱动程序包括四部分内容:CAN控制器的初始化、接收数据、发送数据和总线异常处理。图2为主程序流程图。

  

  图2 主程序流程图

  2.1 CAN控制器的初始化

初始化CAN 控制器的操作包括:硬件使能、设置管脚连接、软件复位、设置报警界限、设置总线波特率、设置中断工作方式、设置验收滤波器工作方式、设置工作模式并启动CAN等。需要特别指出的是设置总线波特率是个难点,所有CAN节点的波特率都要相同才能正常工作,所以要正确配置VPBdiv和PLL寄存器。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top