—-,rI●‘-,0●Il, I II ^._,IJII ̄l,,,Ik.iIIUII 基于ARM处理器的CAN节点设计 Design ofthe CAN Nodes Based on ARM Processor _中北大学机械工程与自动化学院黄小娟王福明刘敏娜 引言 随着信息技术的飞速发展,基 于ARM在嵌入式系统方面的优势和 CAN总线的广泛应用,目前越来越多 C^N总线 图1系统节点 结构图 的ARM处理器内部自带了CAN控制 器,极大的方便了开发人员对CAN总 线的开发。本课题是基于ARM2104 的微处理器CAN总线系统节点开发, 采用CAN总线可以将节点控制器直接 总体设计方案 CAN节点的设计主要是CAN通 安装在现场,数据经处理后发送到总 本课题中所设计的是CAN总 信控制器与微处理器之间、CAN总线 线上,实现了信息的全数字方式传输, 线系统节点,系统节点结构图如图1。 收发器与物理总线之间的电路的设计。 提高了传输的抗干扰能力,增加了信 CAN总线系统应用要求:CAN 微控制器主要负责CAN控制器的初始 息的传输量。 总线接口的扩展、点对点通信。 化,进行与CAN控制器的数据传递, io母 锄 电源电路 L一一 … m ^D P0.8 P0.9 AD / P1・0 ^D/ AD 芯片 c21O4 P1・1 AD/ s丁^l000 AD 芯片 P1.2 AD/ AD P1.3 AD AD 1】l【 P0.2 p1,4 AD/ AD P1 5 AD/ ^D 1"9 P0.2 ^L AD P0.0 / Po W ^D ・l P01/ .TC P0.1 P0.4 R / R P0,1 P0.1 IN / IN 图3模拟总线硬件图 并按照预定的程序进行处理;CAN的通信协议主要由CAN 控制器完成,CAN控制器主要负责将数据以CAN报文的 形式传递,并进行系统的诊断、测试以及处理CAN总线上 的错误等;而CAN总线收发器是CAN控制器和CAN总 线之间的接13,完成物理电平的转换,功能是增大通信距离, 提高系统的瞬间抗干扰能力,保护总线,降低射频干扰RFI o 通常一个完整的CAN节点应该包括三个部分:微控 制器、CAN控制器、CAN收发器。目前广泛流行的CAN 总线器件有两大类:一类是独立的CAN控器,另一类是带 有在片CAN的徽控制器。 O 节点硬件电路设计 对于CAN节点硬件电路的的各接口电路的设计有: CAN接口电路、CPU模块、外围电路(复位电路和JATG 接口电路)。其中CPU及电源电路如下图2所示: LPC2104要使用两组电源,I/O供电电源为3,3V应用 系统。首先,电源DWl将电源整流,经过C1、C3滤波, 然后通过78M05将电源稳压至5V,再使用LDO芯片(低 差压电源芯片)稳压输出3.3V及1.8V电压。LD0芯片采 用S-1131B33UC和S一1131B18UC,其特点为输出电流大、 精度高、稳定性高、功耗低。 没计中的CPU芯片与控制器SJA1000的配脚图如图 3所示 ’ cAN节点的软件设计 CAN节点的软件设计主要包括ARM处理器的编程和 SJA1 000驱动程序的设计。在硬件电路确定以后,系统控 制的主要功能将依赖于软件来实现。系统能否正常可靠的 工作,除了硬件的合理设计以外,与功能完善的软件设计 是分不开的。 软件程序流程图如下图4所示: 图4主程序流程图 配置软件包使用的GPIO必须在文件config.h中进行, 其程序清单如列表1所示,其中程序清单(1)设置地址总 线的宽度,只能为8、16、和24三个值之一。清单(2) 设置信号ADO对应GPIO,其中0对应P0.0,1对应PO.1, 以此类推。地址/数据总线的其它信号以这个信号为基 准,顺序定义。清单(3)信号ALE对应GPIO,其中0对 应P0.0,1对应P0.1,以此类推。清单(4)信号WR对应 GPIO,其中0对应P0.0,1对应P0.1,以此类推。 程序清单列表1配置总线使用的GPIO #defineADDR N BIT 16 f1) #define ADOPIN—NUM 8 (2) #define ALE—PIN—NUM 0 (3) #define WRPIN_—NUM 1 (4) #define RD_PIN~NUM 4 (5) #include“exbus.h” f6) 下转64页 世界电子元器件201 j.2 gec.eccn.com 表4串行协议芯片初始化 步骤 寄存器 地址 偏移量 操作 数据 描 述 _ 控制逻辑电路 控制逻辑电路负责整个DSP数 l 2 3 LCR DU DLM BASE+3 BASE+O BASE+1 写 写 写 83H O8H 串行数据格式8位字长,无校验位,1位停止位, 使能波特率选择 据处理模块上控制和状态信号的产生, 负责PCI总线时序控制和逻辑译码。 波特率为I15.2kbps OOH 该逻辑功能由CPLD可编程逻辑器件 实现,逻辑描述由VHDL语言完成。 控制逻辑电路主要完成以下功能: a.TMS320F281 2总线时序支持 电路; 4 5 6 7 LcR R IER FCR BASE+3 BASE+4 BASE+I BASE+2 写 写 写 写 03H O0H OOH 07H 串行数据格式8位字长,无校验位,l位停止位, 波特率选择位无效 正常接收发送状态(1OH为回绕方式) 不使能任何中断 使能FIFO模式,接收和发送数据 b.系统总线接口时序支持电路; RS422和RS232总线传输通过不同 对串行数据格式的约定,16C554各 c.地址译码; d.地址转换及地址三态控制; 的接口芯片完成电平转换,其功能框 寄存器地址分配如表3,各个寄存器 图如图8所示。 对应的访问地址为该串行通道分配的 e.实现对数据 线管理逻辑的控制; f.系统总线复位。 16C554通过对各个寄存器的编 基地址加上偏移地址,即:各寄存器 A2A1A0]I6。 程完成串行数据的初始化及传输,在 访问地址=BASE+[上电初始化时,本模块将串行数据初 串行协议芯片通过有效的初始化 结束语 根据以上原理,我们研制了该智 始化为数据位8位,停止位1位,无 才能实现串行数据的正确接收和发送, 奇偶校验位,波特率为115.2KBPS, 在进行初始化的时候确保串行通道没 能接13板,通用性强,接13简单,可 在完成上电BIT后,主机可通过改变 有接收和发送数据。其初始化流程如 以满足大多数应用条件,经使用证明 双口存储器的初始化参数来满足自身 表4所示。 ..●上接59页 本系统CAN控制器采用 有8个不同的中断,这些中断可使主控 设计合理,稳定可靠。圃霸 系统控制的主要功能将依赖于软件来 SJA1 000.SJA1 000控制器在微控制器 制器立即作用在CAN控制器的某些状 实现,并且能够正常可靠的工作。正常通讯前,都必须先在相应地址寄存 态上。一旦CAN产生中断,SJA1000 器中加载,确定接收标识码、总线接收 就将中断输出(管脚16)设为低电平,波特率以及输出控制等,这就是CAN 直到主控制器通过读SJA1 000的中断 结论 以ARM芯片作为主控制器, 控制器的初始化。系统所用的CAN总 寄存器对中断采取相应措施,在主控制 CAN总线作为数据传输方式来进行通 NFO里有更多 讯的嵌入式系统得到了越来越广泛的 线控制器SJA1000和CAN2.0A以及 器响应后中断,或接收ICAN2.0B两个版本的协议同时兼容。 有效数据,SJA1 000立刻将中断输出再 应用。同时CAN通讯的可靠性也成为 本文以LPC2104为例,给出了一 本系统设计以CAN2.0A的Basic CAN 次设为低电平。采用中断接收的方式来 影响系统性能的关键部分之一。为协议标准进行设计。 接收数据,LPC2104的P0.16设置为外 000之 NT,整个数据接收模块由数据 类微处理器与CAN控制器SJA1测试之前编写的程序前首先要确 部中断I定SJA1000的片选地址,确定与其他 接收函数void ReceiveData(uint8 Rt)、 间的较为通用的硬件连接方法,对CAN ion(void)构 总线节点进行了可靠性设计,采用CAN 外部存储器无冲突。其次,微处理器 中断处理函数CANExcept 总线可以将节点控制器直接安装在现 对SJA1 000的控制访问是以外部存储 成。当SJA1000接收到CAN总线数据,器的方式,来访问SJA1000的内部寄 通过接收中断使得LPC2104产生外部 场,数据经处理后发送到总线上,实现 NT而使其进入中断处理函数,进 了信息的全数字方式传输,提高了传输 存器,所以应该正确定义微处理器访 中断I问SJA1000时,SJA1000内部寄存 而对接收到的数据进行处理。 器的访问地址。 的抗干扰能力,增加了信息的传输量。 该设计现已在工厂车间中的车身控 可想,在CAN节点的软件设计 整个流程进行测试之后,SJA1 000 的整个流程中,当硬件电路确定以后,制系统中得到了应用,且运行可靠。皿 世界电子元器件20 1 1.2 gec.eccn corn