引言
控制器局域网(controller area network,can)是20世纪80年代德国bosch公司为现代汽车应用而推出的一种多主机局部网,由于can总线具有可靠性高、功能完善、成本合理、实时性等优点,can总线早已不再局限于汽车行业,而被广泛应用于各个自动化控制系统中。目前can总线是国际上应用最广泛的现场总线之一。通用串行总线(universalserial bus,usb)作为一种协议规范,其除具有使用方便(即插即用)、功耗低、数据传输率高等优点外,还具有软硬件支持广泛、功耗低、硬件结构标准化和总线拓扑结构完备等特点。目前在以计算机为上位机的应用领域,都首选usb口作为计算机与外设的接口。
为了更好的将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个外部中断,特别适用于汽车、工业控制应用以及医疗系统和容错维护总线。
lpc2119内部集成2个can控制器,每一个can控制器都与独立can控制器sja1000有着相似的寄存器结构。它的主要特性有:单个总线上的数据传输速率高达1 mb/s;32位寄存器和ram访问;兼容can2.0b,iso11898-1规范;全局验收滤波器可以识别所有的11位和29位标识符;验收滤波器为选择的标准标识符提供full can-style自动接收。图1所示为lpc2119外围电路,为保证可靠复位,采用外部复位电路stm809。
1.2 usb接口电路设计
usb接口采用沁恒电子的ch375。ch375是一个usb总线的通用接口芯片,支持usb-host主机方式和usb- device/slave设备方式。在本地端,ch375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/dsp/mcu/mpu等控制器的系统总线上。ch375提供了串行通信方式,通过串行输入、串行输出和中断输出与单片机/dsp/mcu/mpu等相连接。图2所示为ch375的接口电路。
1.3 can总线接口电路设计
can总线收发器采用82c250,并选用6n137作隔离,lpc2119的td和rd引脚不是直接与82c250的tx、rx引脚相连,而是通过高速光耦6n137与82c250相连,这样可增强can总线节点的抗干扰能力,从而实现总线各节点间电气隔离。高速光耦6n137用于保护 lpc2119内部can总线控制器,该光耦两侧采用5 v的dc-dc电源,可使器件的vcc与vcc1完全隔离,提高系统的抗干扰能力以及节点的稳定性和安全性。图3所示为lpc2 119与can驱动器82c250的连接电路。dc-dc电源模块采用b0505ls-2w,电路在图4中所示。
1.4 系统电源设计
整个电路的电源由usb供电,由于lpc2119的io电路电源要求为3.3 v,内核电路电源要求为1.8 v,在本应用中采用两片低压差线性温压器(ldo)1117为系统供电,如图4所示。
1.5 系统pcb设计
整个系统的pcb采用双面板方式设计,大小为100×120,布局及外形如图5所示。
2 固件设计
本系统软件设计时采用μvision3 ide,μvision3ide是一个窗口化的软件开发平台,它集成了功能强大的编辑器、工程管理器以及各种编译工具(包括c编译器、宏汇编器、链接/装载器和16进制文件转换器),通过ulink仿真调试。程序框架采用传统的前后台方式。can控制器驱动程序包括4部分内容:can控制器的初始化、报文的接收、报文的发送和总线异常处理。由于lpc2119没有开发内部读写总线,本设计在对ch375操作时使用通用i/o模拟并口读写时序,其端口定义方式如下:
程序在使用通用i/o模拟并口读写时序对ch375的基本操作包括cpu端口初始化、向ch375写命令、向ch375写数据、从ch375读数据,其实现过程包含:初始化void ch375_port_init();向ch375写命令void xwritech375cmd(uint8 mcmd);向ch375写数据void xwrite ch375 data(uint8 mdata);从ch375读数据uint8 xreadch375data(void)等4个基本函数。
3 结语
本系统设计采用内置can控制器的lpc2119作为主控制器,ch375作为usb接口芯片,实现usbcan转换器,论述了 lpc2119的外围电路、can总线驱动电路以及lpc2119与ch375之间的接口连接,并在软件给出lpc2119使用通用i/o模拟并口读写时序的方法,对lpc2119,ch375及can总线的实际应用具有一定的参考价值。
喜报!通友获2023年省级专精特新中小企业认定
弯道超车的百度智能扬声器 智能扬声器的“眼球”之争
商家纷纷选择购买同浦触摸一体机的原因是什么?
蒸汽流量计的实验测试
2017年矿机市场的兴起,让赛格重新声名大噪
基于LPC2119的USB-CAN转换器设计
将溶解的镍离子螯合拯救锂离子电池富镍阴极介绍
酷狗潘多拉mini和小米AI音箱,谁的体验更佳
vivo NEX 3 5G值得购买吗
EP9132 HDMI1.3版分配芯片闪亮登场--标威电子推
在FPGA平台上实现对DPA攻击的电路级防护技术
科技博客评选出美国25家最适合工作科技公司
6G使沉浸式变为现实,何时能取代5G?
NB-IoT模块应用领域
音箱的有源和无源
LM7805稳压器应用电路讲解
芯片巨头争相挺进发展迅速的汽车市场
工业物联网将会是未来智能制造的主架构
锅炉检验中安全附件问题解决的措施
美国农业机器人获2000万美元B轮融资