USB转CAN总线智能节点设计

摘 要 : 提出一种USB总线转CAN总线的接口方案.其中主要论述其硬件电路、软件编写及驱动软件.该方案选用单片机加独立CAN总线控制器的模式实现不同总线间的数据通讯,此方案在电路小型化和电路可靠性等方面有独特优势,实现USB接口与工业现场中的CAN总线网络相互通信,拓展CAN总线应用范围,具有一定的市场前景.

关 键 词 : USB,CAN,数据通讯,单片机

1.绪论

在当今时代,信息技术飞速发展,各类信息采集系统、数据处理系统、智能终端等自动化装置在产品和工业现场的大规模应用,如何解决数据向上位机的传输以及自动化装置之间数据的高速、可靠、及时的传输成为一个值得不断深入研究的问题.现场总线正式在这样的背景下应运而生的.CAN是控制器局域网络(Controller Area Network,CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准.是目前国际上应用最广泛的现场总线之一.

随着计算机硬件、软件技术及集成电路技术的迅速发展,工业控制系统已成为计算机技术应用领域中最具活力的一个分支,并取得了巨大进步.典型的分散式控制系统由现场设备、接口与计算设备以及通信设备组成.现场总线(FIELDBUS)能同时满足过程控制和制造业自动化的需要,因而现场总线已成为工业数据总线领域中最为活跃的一个领域.现场总线的研究与应用已成为工业数据总线领域的热点.尽管目前对现场总线的研究尚未能提出一个完善的标准,但现场总线的高性能必将吸引众多工业控制系统采用.同时,正由于现场总线的标准尚未统一,也使得现场总线的应用得以不拘一格地发挥,并将为现场总线的完善提供更加丰富的依据.它是BOSCH公司为现代汽车应用领先推出的一种多主机局部网,由于其高性能、高可靠性、实时性等优点现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门.控制器局域网将在中国迅速普及推广.

2.主控单片机方案

本设计的目的是设计一个成本低,结构简单、性能稳定的USB转CAN BUS接口适配器.可以满足现场设备与计算机之间高速、可靠、稳定的通讯.本方案由主要由MCU及USB控制模块、CAN模块组成.从装置微、小型化和电路可靠性方面考虑,选择带有USB功能的MCU,然后可以直接构成与上位机通讯的物理层的连接.目前市面上常见的带有USB模块的MCU芯片有Silicon Laboratories公司的C8051F家族中的C8051F3X系列,CYPRESS公司的EZ-USBFX2系列芯片中的CY7C6系列和CY8C24X94,还有Microchips公司的PIC18F14K50、PIC16C765等.CAN控制器有NXP公司的SJA1000,Microchip的MCP2515,Philips公司的PCA82C200.CAN收发器方面有通用型收发器CTM8251,PCA82C250

/251,高速CAN收发器TJA1040/1050,高速CAN收发器TJA1041,容错CAN收发器TJA1054,单线CAN收发器AU5790.

从MCU的处理能力、内部硬件资源、芯片面积、电路、主芯片等多方面综合考虑,本案主控制器采用Silicon C8051F340全速USB FLASH微控制内核.CAN的节点模块,选用CAN独立控制器+集成CAN收发器方案,CAN独立控制器为SJA1000.CAN节点集成收发器选用CTM8251A芯片,该芯片内部集成了所有必需的CAN隔离及CAN收、发器件.硬件电路主要包括了有MCU与USB控制模块、CAN节点模块、电源支持电路及其它电路几部分.

3.软件关键点设计

设计的样品电路板如图1所示,其正常工作的软件整体结构主要包括:1)F340 I/O口模拟SJA1000的Intel模式读写时序,2)CAN BUS编程设计,3)USB BUS软件设计三部分.整个的过程中,上位机发送信息时,MCU通过USB接口读入上位机USB接口发送数据,然后存入缓存器中.然后,在软件中的写SJA1000子程序调用这个数据后对SJA1000进行写操作,SJA1000自动以CAN的报文之形式发到CAN收发器CTM8251,后者将CAN报文的逻辑电平转换为CAN总线的差分电平,发送到CAN总线上.上位机接收数据时,先是从CAN总线上的CTM8251接收到数据将CAN总线的差分电平转化为SJA1000的控制电平后,经SJA1000的验收代码滤波后,产生中断并存到接收缓冲寄存器中.MCU接收到SJA1000的中断后,从SJA1000的缓冲寄存器中,读取数据,通过软件传给USB发送函数,发送到上位机.由于SJA1000是典型的51的地址/数据总线复用结构,而C8051F340则是采用分离结构.因此如何用C8051F340的I/O口来模拟51的读写时序是程序的一个难点,还有就是上位机软件和USB驱动的编写.

因为SJA1000的数据口是地址数据复用接口,而340单片机则不是,因此需要用C8051F340的I/O口来模拟SJA1000的读写时序.本装置中用单片机的P1.6端口来模拟SJA1000的ALE端口时序要求.通过合理设置单片机端口上的数据信号和控制信号,把需要的数据传输至SJA1000中,然后通过SJA1000对数据进行编码,传输到CAN总线上去,实现两类总线的数据智能通讯.

当电源打开时,首先进行的是主控制器的也就是C8051F340自身的初始化,包括初始化时钟配置,关闭看门狗,初始化端口配置.第二步是最主要的也就是SJA1000的寄存器的初始化.SJA1000有两种模式,一种是复位模式,另一种是工作模式.只有当进入复位模式时才能对SJA1000进行设置.所以首先就是要确保SJA1000进入复位模式.当确定SJA1000进入复位模式后,就可对SJA1000根据选择的波特率、验收滤波位、定时等等进行设置.设置完成以后再对SJA1000的模式寄存器进行设置,设置为工作模式,并通过程序,确保使之完全可靠的退出工作模式.

CAN总线数据发送过程是数据交换的典型过程之一.在这个过程中首先要初始化SJA1000的发送缓冲区.发送缓冲区长度为13个字节.第一步是要初始化帧信息和标识码.它的第一个字节是帧信息字节,它说明了这个报文的帧格式它说明了帧格式(F标准帧或EFF扩展帧)远程或数据帧和数据长度.然后就是初始化标识码F(标准帧)有两个字节的识别码EFF(扩展帧)有四个字节的识别码.本设计采用扩展帧.第二步要对发送区进行初始化并确保SJA1000不在接收状态、发送缓冲器没有被锁.这些可以通过软件来查询状态寄存器来确保.第三步就是要写发送缓冲区的数据区,EFF(扩展帧)的数据区最长有8字节.第四步就是将命令寄存器的发送位置1,启动发送,数据就自动转化为CAN报文的形式发送给CAN收发器CTM8251.

4.结论

本设计目的是实现一个基于单片机的适配器,可以将CAN总线上的数据通过USB接口传输到其他主机(PC、工控机等智能终端)进行分析和处理、监控设备的工作状态等等.也可以用上位机通过数据转换器向CAN节点发送命令或数据,从而实现了上位机(计算机)与现场设备的之间的通信.本设计选择了单片机加独立CAN控制器的方案,智能节点功能组织灵活,硬件布局设计合理,有一定的实用和推广价值.

类似论文

基于CAN总线的智能控制系统设计

摘 要本文介绍了智能控制系统中CAN总线现代通讯技术的应用,设计了智能控制系统中的CAN总线网络结构模型,阐述了基ߛ。
更新日期:2024-11-17 浏览量:143673 点赞量:30947

基于HT66F50MCU室内智能插座设计

【摘 要】智能家居是物联网的主要应用之一,智能插座是智能家居的重要组成部分,它具有供电远程控制、通信组网等功能 本文以盛。
更新日期:2024-1-22 浏览量:21197 点赞量:6023

智能建筑设计

摘 要:智能建筑是智能建筑技术和新兴信息技术相结合的产物,本文从建筑设计的角度出发,在智能建筑概念的基础上,。
更新日期:2024-2-4 浏览量:6164 点赞量:2088

智能建筑设计施工水平提升

【摘 要】在工程施工过程中智能建筑的标志主要是集成系统的建筑工程管理工作,而建筑设备自动化和办公自动化的结合,也在。
更新日期:2024-5-28 浏览量:70608 点赞量:15910

《病人倒地呼救智能开关设计》开题报告

这篇《病人倒地呼救智能开关设计》开题报告的关 键 词是病人,智能,报告,设计,(一)选题背景 随着科学技术的日新月。
更新日期:2024-10-27 浏览量:134207 点赞量:29497