基于ARM7处理器实现USB接口与CAN总线
eetrendMcu 2023-01-30

为了更好的将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。

基于ARM7处理器的USB接口与CAN总线的实例图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的接口电路。

基于ARM7处理器的USB接口与CAN总线的实例图2 USB接口电路

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中所示。

基于ARM7处理器的USB接口与CAN总线的实例图3 CAN驱动器82C250的连接电路
基于ARM7处理器的USB接口与CAN总线的实例图4 DC-DC隔离电路

1.4 系统电源设计

整个电路的电源由USB供电,由于LPC2119的IO电路电源要求为3.3 V,内核电路电源要求为1.8 V,在本应用中采用两片低压差线性温压器(LDO)1117为系统供电,如图4所示。

1.5 系统PCB设计

整个系统的PCB采用双面板方式设计,大小为100×120,布局及外形如图5所示。

基于ARM7处理器的USB接口与CAN总线的实例图5 布局及外形

2、固件设计

本系统软件设计时采用μVision3 IDE,μVision3IDE是一个窗口化的软件开发平台,它集成了功能强大的编辑器、工程管理器以及各种编译工具(包括C编译器、宏汇编器、链接/装载器和16进制文件转换器),通过ULINK仿真调试。程序框架采用传统的前后台方式。CAN控制器驱动程序包括4部分内容:CAN控制器的初始化、报文的接收、报文的发送和总线异常处理。由于LPC2119没有开发内部读写总线,本设计在对CH375操作时使用通用I/O模拟并口读写时序,其端口定义方式如下:

基于ARM7处理器的USB接口与CAN总线的实例

程序在使用通用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总线的实际应用具有一定的参考价值。 

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 【7.24 深圳】2025国际AI+IoT生态发展大会/2025全球 MCU及嵌入式技术论坛


  • 相关技术文库
  • 工业
  • 安防
  • 航空
  • CAN
  • 单片机的I2C和SPI通信的含义

    I2C和SPI是两种不同的通信协议。 当我们听到这个协议时,它似乎是不可实现的。事实上,协议只是人们定义的一个标准。我们只需要按照这个标准去做。例如,如果公司说我们早上9点上班,我们9点上班,或者我们扣...

    昨天
  • 浅析基于MB86R01的汽车数字化虚拟仪表设计

    随着汽车、通信、信息电器、医疗、军事等行业的巨大的智能化需要,嵌入式软件及系统发展迅速。微处理器从8位到16位、32位甚至64位,从支持单一品种的CPU芯片到支持多品种的,从单一内核到除了内核外还提供其它功能...

    07-08
  • 基于蓝牙技术的汽车驾驶盘控制系统

    摘 要:介绍了一种基于蓝牙技术的方向盘控制系统设计方案。利用蓝牙传输技术实现汽车方向盘面板开关电子化优化设计,克服传统驾驶过程中需要低头找开关的弊端,使得大部分操作在方向盘上实现,汽车驾驶更便捷。控制...

    07-08
  • 逆变器有何注意事项?安装逆变器风扇有何要点?

    逆变器是一种转换器,在工业应用中,逆变器具有重要意义。对于逆变器,小编曾对逆变器的安装、离网逆变器等知识有所介绍。为增进大家对逆变器的认识,本文将对逆变器使用注意事项以及逆变器风扇安装注意事项予以解...

    07-07
  • 电气火灾监控系统

    电气火灾监控系统,特点在于漏电监控方面属于先期预报警系统。与传统火灾自动报警系统不同的是,电气火灾监控系统早期报警是为了避免损失,而传统火灾自动报警系统是为了减少损失。所以,这就是说为什么不管是新建...

    07-04
  • 基于C8051F500的数控恒流源设计

    本文给出了一种基于C8051F021和RA8835实现的低成本液晶显示方案。随着电子产品设计技术的不断发展,电子产品的设计,尤其是人机交互界面的设计日益趋向人性化。这其中的液晶显示屏以其具有能显示复杂文字及图形、显...

    07-02
  • 大佬带你谈谈步进电机,啥又是直流电机

    电机是诸多电子设备中都存在,由此可见电机的重要性。在往期文章中,小编对伺服电机、变频电机都有所介绍。为增进大家对电机的了解,本文将对步进电机和直流电机加以阐述。如果你对电机相关内容具有兴趣,不妨继续...

    06-27
  • 同步、异步电机有何区别?高、低速电机是什么?

    电机是工业设备中的重要存在之一,对于电机,大家应当有所了解。为增进大家对电机的了解,本文将对同步电机、异步电机、同步电机和异步电机的区别、高速电机和低速电机予以介绍。如果你对电机具有兴趣,不妨继续往...

    06-27
  • 步进电机知识详解,再不怕看不懂步进电机了!

    点击技成培训置顶,每日7:30准时为您推送

    06-26
下载排行榜
更多
评测报告
更多
广告