基于ARM Cortex3的低功耗无源USB-CAN透明传输的实
摘要:为了建立良好的CAN总线网络通信人机界面,可以通过通信协议的转换和数据的透明传输,使PC机通过USB接口接入CAN通信网络,成为CAN总线网络的一个通信节点,方便对CAN通信网络的监控和管理。
1 技术背景
近年来,随着工业场合自动化技术的不断更新,工业现场的数据采集、数据传输、设备控制已经成为电子工程师研究的重要课题。为了建立良好的CAN总线通信人机界面,可以通过通信协议的转换和数据的透明传输,使PC机通过USB接口接入CAN通信网络,成为CAN总线网络的一个通信节点,方便对CAN通信网络的监控和管理。本文介绍了基于ARM Cortex3的USB—CAN透明传输的一般思路和软硬件设计方法。
1.1 CAN总线协议
CAN总线是一种现场总线协议,目前在国内已经得到了广泛的应用和深入的研究。与其他工业现场总线相比,CAN总线具有通信速率高、容易实现、且性价比高等诸多优点,目前已经成为工业现场总线的一种重要标准,在工业现场受到了广泛的应用,展现出强劲的市场竞争力。
CAN总线协议具有完整的解决工业现场通信的技术手段,其在技术运用中具有以下优势:
(1)各类数据帧的建立方便,功能明晰。
(2)同一网络内的节点数多,能够满足绝大多数工业现场通信网络对节点数量的需求。
(3)成熟的节点标识符机制及总线结构,可满足在各节点之间实现自由通信。
(4)信号的传输为差分方式,布线结构简单,成本低廉。
(5)在保证传输速率的前提下具有较大的传输距离。
(6)控制芯片完全商品化,可靠性高。芯片内部集成了错误监测机制和管理模块,具有极强的抗干扰能力。
1.2 USB通信协议
USB的全称为“通用串行总线”。是一个外部总线标准,用于规范PC机与外部设备的连接和通讯。其最大的特点是支持设备的即插即用和热插拔功能。USB版本经历了多年的发展,已经发展为3.1版本,成为当前PC机中的标准扩展接口。
USB总线的终端分为主机和设备。设备通过枚举的方式与主机连接。USB支持四种基本的数据传输模式:控制传输,等时传输,中断传输及数据块传输。根据不同的用途,选择不同的传输模式。根据工业场合CAN总线网络中数据对象的特点,本项目中的USB—CAN透明传输卡将采用中断的方式进行数据传输。
2 系统开发概述
2.1 本技术在CAN通信网络中的运用
在CAN总线通信网络中,各个通信节点通过总线的形式相连,USB—CAN透明传输卡的一端接入CAN总线,另外一端连接PC机。通过USB—CAN卡的透传功能,PC机在CAN通信网络中完全等同于一个普通的通信节点,实现了对网络的监控和管理。
2.2 开发需求概述
本项目开发的上位机平台是WINDOWS系统下的MDK开发编译环境。硬件平台为具有很强低功耗和处理能力的ARM Cortex3内核LM3S5956微处理器。为方便通信测试,上位机需要安装相关数据监测软件。
3 硬件设计
硬件结构框图如图1所示,主要分为微处理器、接口及电源三部分。
![](../img/eep/emb/emb-518680sjlcfdj21q.jpg)
LM3S5956微处理器作为数据处理的核心部件,其功能就是将USB和CAN接口接收到的数据进行直接转发,与其他处理器相比,该处理器内置CAN控制器和USB控制器,引脚较少,在保证低功耗的前提下具有较强的数据处理能力。
在接口方面,由于CAN总线物理层信号为差分的形式(CAN_H和CAN_L),所以需要增加CAN物理层芯片(CAN收发器)来进行电平转换,本项目所采用的CAN物理层芯片为TJA1040。USB总线为4芯,其中包含两路信号线(USB-DP和USBDM)、+5 V电源和GND。
USB—CAN透明传输卡的供电方式是本项目设计的关键环节,PC机的USB总线中有两路电源信号分别为+5 V和GND,通常可以提供的最大电流为500 mA,由于采用了低功耗微处理器和CAN收发器,500 mA的电流完全可以满足USB—CAN透明传输卡的功耗需求,所以本项目通过从PC机的USB接口“取电”,达到了真正的“无源”方式,大大节省了USB-CAN透明传输卡的成本和体积,使用更加方便。由于LM3S5956微处理器采用3.3 V供电,所以只需要在电路设计中,增加一个5 V-3.3 V电源芯片即可。
由于采用了内置CAN控制器和USB控制器的低功耗ARM Cortex3微处理器和方便灵活的USB供电方式,整个USB—CAN透明传输卡的硬件非常小巧,在环境复杂的工业通信场合,具有很高的实用性。
4 软件设计
4.1 CAN通信相关
4.1.1 LM3S5956微处理器的CAN控制器
LM3S5956微处理器内置了CAN控制器模块,该模块支持CAN 2.0 A/B协议。支持包括具有11位标识符(标准帧)或29位标识符(扩展帧)的数据症远程症错误帧以及超载帧的报文传输。传输速率可以通过编程配置,CAN模块主要由3个部件组
CAN总线 通用串行总线 ARM Cortex CANopen 相关文章:
- 对TTCAN的分析(05-26)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- μC/OS-II的多任务信息流与CAN总线驱动(07-11)
- 采用CAN总线实现DSP芯片程序的受控加载(11-08)
- 基于DSP的电动汽车CAN总线通讯技术设计(10-08)
- 基于DSP的CANopen通讯协议的实现(01-18)