摘 要:叙述一种使用arm7处理器实现usb接口与can总线的方案,通过其可以在pc实现对can总线上设备的监控。系统的主控制器为nxp公司的arm处理器lpc2119,内部集成两路独立的can控制器。usb接口采用沁恒电子的ch375。描述了usb-can通信接口工作的基本原理及can总线与usb之间的硬件接口电路。同时,分析了固件编程及使用通用i/o模拟并口读写时序方法。关键词:can总线; usb; lpc2119; ch375
design of usb-can converter based on lpc2119 of arm7 processor
gao min
(department of applied electronics, jiangsu nantong commercial vocational college, nantong 226007, china)
abstract: a scheme of using arm7 processor to realize the usb interface and can bus is introduced, which can monitor the devices of can bus on pc. the system's main controller is arm processor lpc2119 produced by nxp, which integrated two independent can controllers. usb interface circuit adopts qinheng electronics ch375. the basic principles about the usb-can communication interface and the hardware interface circuit between can and usb are described. at the same time, the method of the firmware programming and the use of general-purpose i/o port to simulate parallel read /write timing are analyzed.keywords: can bus; usb; lpc2119; ch375
0 引 言
控制器局域网(controller area network,can)是20世纪80年代德国bosch公司为现代汽车应用而推出的一种多主机局部网,由于can总线具有可靠性高、功能完善、成本合理、实时性等优点,can总线早已不再局限于汽车行业,而被广泛应用于各个自动化控制系统中,例如汽车电子、工业控制、智能大厦、安防监控、环境控制等。WwW.lw881.com目前can总线是国际上应用最广泛的现场总线之一[1-2]。
通用串行总线(universal serial bus,usb)作为一种协议规范,是以intel为首的7家计算机及通信产业厂商公司于1994年11月共同提出,其除具有使用方便(即插即用)、功耗低、数据传输率高等优点外,还具有软硬件支持广泛、功耗低、硬件结构标准化和总线拓扑结构完备等特点。目前在以计算机为上位机的应用领域,都首选usb口作为计算机与外设的接口[3]。
为了更好的将usb的通用性和can的专业性结合起来,通过计算机的usb接口接入can专业网络,实现系统控制的便利性和应用的高效性,本文讲述了一种基于arm7处理器实现usb接口与can总线的实例,通过其可以在pc实现对can总线上设备的监控。
1 硬件系统设计
1.1 处理器简介及其外围电路设计
主控制器选用nxp公司的arm7核处理器lpc2119。lpc2119是基于一个支持实时仿真和跟踪的16/32位arm7tdmi-stm cpu,并带有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个外部中断,特别适用于汽车、工业控制应用以及医疗系统和容错维护总线[4]。
lpc2119内部集成2个can控制器,每一个can控制器都与独立can控制器sja1000有着相似的寄存器结构。它的主要特性有:单个总线上的数据传输速率高达1 mb/s;32位寄存器和ram访问;兼容can2.0b,iso11898-1规范;全局验收滤波器可以识别所有的11位和29位标识符;验收滤波器为选择的标准标识符提供full can-style自动接收。图1所示为lpc2119外围电路,为保证可靠复位,采用外部复位电路stm809[5]。
图1 lpc2119外围电路
1.2 usb接口电路设计
usb接口采用沁恒电子的ch375。ch375 是一个usb总线的通用接口芯片,支持usb-host主机方式和usb-device/slave 设备方式。在本地端,ch375 具有8 位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/dsp/mcu/mpu等控制器的系统总线上。ch375提供了串行通信方式,通过串行输入、串行输出和中断输出与单片机/dsp/mcu/mpu 等相连接。图2所示为ch375的接口电路[6]。
1.3 can总线接口电路设计
can总线收发器采用82c250,并选用6n137作隔离,lpc2119的td和rd引脚不是直接与82c250的tx、rx引脚相连,而是通过高速光耦6n137与82c250相连,这样可增强can总线节点的抗干扰能力,从而实现总线各节点间电气隔离。高速光耦6n137用于保护lpc2119内部can总线控制器,该光耦两侧采用5 v的dc-dc电源,可使器件的vcc与vccl完全隔离,提高系统的抗干扰能力以及节点的稳定性和安全性。图3所示为lpc2119与can驱动器82c250的连接电路。dc-dc电源模块采用b0505ls-2w,电路在图4中所示[7-8]。
图2 ch375的接口电路
1.4 系统电源设计
整个电路的电源由usb供电,由于lpc2119的io电路电源要求为3.3 v,内核电路电源要求为1.8 v,在本应用中采用两片低压差线性温压器(ldo)1117为系统供电,如图4所示。
图3 can驱动器82c250的连接电路
图4 dc-dc隔离电源
1.5 系统pcb设计
整个系统的pcb采用双面板方式设计,大小为100×120,布局及外形如图5所示。
2 固件设计
本系统软件设计时采用μvision3 ide, μvision3 ide是一个窗口化的软件开发平台,它集成了功能强大的编辑器、工程管理器以及各种编译工具(包括c编译器、宏汇编器、链接/装载器和16进制文件转换器),通过ulink仿真调试。程序框架采用传统的前后台方式。can控制器驱动程序包括4部分内容:can控制器的初始化、报文的接收、报文的发送和总线异常处理。由于lpc2119没有开发内部读写总线,本设计在对ch375操作时使用通用i/o模拟并口读写时序,其端口定义方式如下:
#defined7_d0(uint32)(0xff<<0)/*p2.0--p2.7*/
#definech375_cs(uint32)(1<<24)/*p1.24为ch375 cs*/
#definech375_a0(uint32)(1<<16)/*p1.16为ch375 a0*/
#definech375_wr(uint32)(1<<19)/*p1.19为ch375 wr*/
#definech375_rd (uint32)(1<<21)/*p1.21为ch375 rd*/
#definech375_rst(uint32)(1<<23)/*p1.23为ch375 rd*/
#definech375_int(uint32)(1<<16)/*p0.16为ch375 int*/
程序在使用通用i/o模拟并口读写时序对ch375的基本操作包括cpu端口初始化、向ch375写命令、向ch375写数据、从ch375读数据,其实现过程包含:初始化void ch375_port_init( );向ch375写命令 void xwritech375cmd(uint8 mcmd);向ch375写数据void xwritech375data(uint8 mdata);从ch375读数据uint8 xreadch375data(void)等4个基本函数[9-10]。
图5 pcb布局及外形
3 结 语
本系统设计采用内置can控制器的lpc2119作为主控制器,ch375作为usb接口芯片,实现usb-can转换器,论述了lpc2119的外围电路、can总线驱动电路以及lpc2119与ch375之间的接口连接,并在软件给出lpc2119使用通用i/o模拟并口读写时序的方法,对lpc2119,ch375及can总线的实际应用具有一定的参考价值。
参考文献
[1]饶运涛,邹继军,郑勇芸.现场总线can原理与应用技术[m].北京:北京航空航天大学出版社,2003.
[2]李正军.现场总线与工业以太网及其应用系统设计[m].北京:人民邮电出版社,2006.
[3]李英伟,王成儒,练秋生.usb2.0原理与工程开发[m].2版.北京:国防工业出版社,2007.
[4]philips semiconductors. lpc2119/2129/2194/2292/2294 user manual [eb/ol].[2004-05-03].http://scholar.google.com.
[5]周立功.arm嵌入式系统基础教程[m].北京:北京航空航天大学出版社,2005.
[6]南京沁恒电子有限公司.ch375中文说明[eb ol].[2007-08-13]..
[7]toshiba semiconductor.6n137 ired & photo ic 数据手册[eb/ol].[1998-02-27].http://citeseerx.ist.psu.edu.
[8]philips semiconductors. pca82c250 can controller interface datasheet [eb/ol].[2000-01-13].http://ieeexplore.ieee.org.
[9]keil company. lpc21xx_insidersguide.zip [cp/ol].[2005-03-21]./eijiansuo/" target="_blank" title="">eil.com.
[10]南京沁恒电子有限公司.ch372评估板说明及相关例子程序[cp/ol].[2005-03-21]..