CAN-USB适配器设计*****指导老师:***学院名称:*****专业班级:****设计提交日期:**年**月摘要随着现场总线技术和计算机外设接口技术的发展,现场总线与计算机快速有效的连接又有了更多的方案。
USB作为一种新型的接口技术,以其简单易用、速度快等特点而备受青睐。
本文介绍了一种基于新型USB接口芯片CH372的CAN总线网络适配器系统的设计,提出了一种使用USB接口实现CAN总线网络与计算机连接的方案。
利用芯片CH372可在不了解任何USB协议或固件程序甚至驱动程序的情况下,轻松地将并口或串口产品升级到USB接口。
该系统在工业现场较之以往的系统,可以更加灵活,高速,高效地完成大量数据交换,并可应用于多种控制系统之中,具有很大的应用价值。
关键词:USB;CH372;CAN;SJA100;适配器目录1.设计思想 (3)2.CAN总线与USB的转换概述 (4)3. 适配器硬件接口设计 (5)3.1 USB接口电路 (5)3.2 CAN总线接口电路 (7)4.USB通用设备接口芯片CH372 (8)4.1 概述 (8)4.2 引脚功能说明 (9)4.3 内部结构 (9)4.4 命令 (10)5.软件设计 (10)5.1 概述 (10)5.2主监控程序设计 (12)5.3 CAN和USB接口芯片的初始化 (13)5.4 CAN报文的发送 (15)5.5 CAN报文的接收 (17)5.6.自检过程 (19)5.7 USB下传子程序设计 (20)5.8 USB上传子程序设计 (22)5.9.USB—CAN转换器计算机端软件设计 (23)6. 抗干扰措施 (25)7. 估算成本 (26)8. 应用实例介绍 (27)9 总结及设计心得 (28)10 参考文献 (28)1 设计思想现场总线网络技术的实现需要与计算机相结合。
目前,在微机上扩展CAN总线接口设备一般采用PCI总线或者RS-232总线。
PCI虽然仍是高速外设与计算机接口的主要渠道,但其主要缺点是占用有限的系统资源、扩展槽地址;中断资源有限;并且插拔不方便;价格较贵;而且设计复杂、需有高质量的驱动程序保证系统的稳定;且无法用于便携式计算机的扩展;RS-232虽然插拔方便,但是传输速率太慢。
本文的设计思想是通过使用USB接口芯片CH372,将计算机与CAN网络控制节点参数相互准确快速地传输。
CH372是一种USB总线通用接口芯片,在计算机系统中,通过CH372的配套软件可提供简洁易用的操作接口,从而使其与本地端的单片机通讯就如同读写硬盘中的文件一样简单,由于CH372屏蔽了USB通讯中的所有协议,因而可在计算机应用层与本地端控制器之间提供端对端的连接,在不需要了解任何USB协议或者固件程序甚至驱动程序的情况下,就可轻松地将并口、串口产品升级到USB接口。
CAN适配器用于完成USB总线和CAN总线之间的数据交换。
使用MCU统筹安排数据在USB总线和CAN总线之间的数据交换。
以MCU为界可以将硬件分为两部分:一是MCU和USB总线交换数据;二是MCU控制CAN控制器,完成CAN数据包到CAN总线位序列协议解释,该系统结构如图1所示。
2 CAN总线与USB的转换概述USB是英文UniVersalSerial Bus的缩写,即通用串行总线,它是针对计算机外设的一种新型串行通信的接口标难。
最初的USB总线标准由Intel、Microsoft、Compaq和NEC等多家公司于1994年共同提出,到1998年推出了1.1全速版本,2000年又推出了2.0高速版本,再到最近的USB—OTG新兴技术,随着规范的不断完善和发展,具有快速、双向、即插即用且价格低廉特点的USB总线,近几年来已在计算机与外设的连接以及基于计算机的各种仪器中获得了广泛的应用。
USB总线共有4种基本类型的数据传输,分别为控制传输、批量传输、中断传输和同步传输,为不同的通信任务要求提供了灵活的选择。
但USB总线毕竟不是为工业现场测控应用而设计的总线,它可连接的设备数较少,通信距离短,抗干扰能力也不是很强;而CAN总线则具有可连接设备数目多、传输距离远、抗干扰能力强等许多优点,但其不能直接与计算机相连。
如果能将USB总线与CAN总线结合起来,设计一个USB—CAN转换器,就能同时利用两者的优点,在现场测控领域实现更强大而灵活的通信任务。
图2 网关中断处理程序流程图(接收CAN子网报文)3 适配器硬件接口设计3.1 USB接口电路USB接口电路在微控制器和USB接口的选择上有两种方式:一种是采用具备USB通讯功能的微处理器。
随着USB应用的日益广泛,Intel、Cypress、Philips等芯片厂商都推出了具有USB通信接口的微处理器,如8X930A、8X931A、EZ-USB等。
由于这些微处理器具有USB 接口,它们与过去的开发系统不兼容,需要购买新的开发系统,投资较高。
另一种是采用普通微处理器加上专用的USB通信芯片。
现在的专用芯片中较流行的有USBN9602、SL11、PDIUSBD12等。
但是,USB接口的开发一般要求设计人员对USB的标准、Firmware编程及驱动程序编写等有较深入的理解,因此限制了一般的硬件工程师对USB接口产品的开发使用。
本系统中使用了USB接口芯片CH372,使用非常简单,开发人员只要熟悉单片机的编程及简单的VB或者VC应用程序编程,在较短的时间内就可开发出相应的USB产品。
CH372是一个USB总线的通用设备接口芯片,遵守USB1.1协议。
在本地端,CH372具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机、DSP等控制器的系统总线上;在计算机系统中,CH372的配套软件提供了简洁易用的操作接口,与本地端的单片机通信就如同读写硬盘中的文件。
CH372内置了USB通讯中的底层协议,具有内置固件模式和外置固件模式。
在内置固件模式下CH372屏蔽了USB通信中的所有协议,在计算机应用层与本地端控制器之间提供端对端的连接。
使用CH372,不需要了解任何USB 协议或者固件程序,甚至驱动程序,就可以轻松地将并口、串口的产品升级到USB接口。
CH372芯片的RD和WR可以分别连接到单片机的读选通输出引脚和写选通输出引脚。
CS由地址译码电路驱动,用于当单片机具有多个外围器件时进行设备选择。
INT可以连接到单片机的中断输入引脚,中断请求是低电平有效。
当CS和RD以及A0都为低电平时,CH372中的数据通过D7~D0输出;当CS和WR以及A0都为低电平时,D7~D0上的数据被写入CH372芯片中;当CS和WR都为低电平而A1为高电平时,D7~D0上的数据被作为命令码写入CH372芯片中。
CH372芯片的UD+和UD-引脚应该直接连接到USB总线上。
如果为了芯片安全而串接保险电阻或者电感,那么交直流等效串联电阻应该在5Ω之内。
CH372芯片内置了电源上电复位电路,一般情况下,不需要外部提供复位。
CH372芯片正常工作时需要外部为其提供12MHz的时钟信号。
一般情况下,时钟信号由CH372内置的反相器通过晶体稳频振荡产生。
外围电路只需要在X1和X0引脚之间连接一个标称频率为12MHz的晶体,并且分别为X1和X0引脚对地连接一个容量为30pF的高频振荡电容。
CH372芯片支持5V电源电压或者3.3V电源电压。
当使用5V工作电压时,CH372芯片的VCC引脚输入外部5V电源,并且,V3引脚应该外接容量为0.1μF左右的电源退耦电容。
当使用3.3V工作电压时,CH372芯片的V3引脚应该与VCC引脚相连接,同时输入外部的3.3V电源,并且与CH372芯片相连接的其它电路的工作电压不能超过3.3V。
接口电路如图3所示。
图3 USB接口电路3.2 CAN总线接口电路CAN总线接口电路这部分由CAN控制器、CAN接口芯片和光耦组成。
CAN控制器完成CAN通讯协议的所有要求,CAN接口芯片是CAN控制器和物理总线间的接口,并经由光耦将数据发往CAN总线,接口电路图如图4所示。
图4 CAN总线接口电路CAN总线控制器采用Philips公司的SJA1000,并辅以该公司的PCA82C250接口驱动器,通过光电隔离器件6N137实现了总线与控制器的隔离。
SJA1000是一款独立的控制器,用于汽车和一般工业环境中,从软件的角度来看,对SJA1000的操作通过单片机的访问外部存储器指令来完成,所以,SJA1000可以被视为一种扩展RAM,SJA1000具有标准模式和Peli模式两种应用模式。
标准模式符合CAN2.0A协议标准,接收缓冲器有64个字节;Peli模式符合2.0B标准,能处理扩展数据格式,具有仲裁丢失捕获、代码读取等功能。
PCA82C250是CAN控制器和物理总线之间的接口,它具有限定的电流值以保护接收器输出级,避免阳极和阴极的短路,以防止输出级的损坏,PCA82C250CAN接口控制器提供了总线驱动发送和接收能力,高速可达1Mbps,具有较强的抗干扰能力。
图5为设计的基于CH372的USB—CAN转换器硬件电路原理图。
转换器的微控制器采用89C52,负责整个转换器的监控任务以及CAN总线与USB总线的通信任务。
CAN控制器接口电路由CAN通信控制器SJAl000和CAN收发器82C250组成,USB控制器接口电路采用CH372。
SJAl000和CH372的中断输出INT分别与89C52的0INT相连,从而可采用中断方式来接收USB与CAN总线报INT和1文。
这种方法能保证最快的9向应速度,可提高通信效率。
‘图5 USB-CAN适配器硬件电路原理图4 USB通用设备接口芯片CH3724.1 概述CH372是一种USB总线的通用设备接口芯片。
与其他USB接口芯片相比,该芯片具有接口设计简单,编程使用方便等优点。
CH372具有8位数据总线和读、写、片选控制线以及中断输出,可方便地挂接到单片机或DSP等控制器的系统总线上。
在计算机系统中,CH372的配套软件提供了简洁、易用的操作接口,与本地端的单片机通信就如同读/写文件一样。
CH372内置了USB通信中的底层协议,具有内置固件模式和外置固件模式。
在内置固件模式下,CH372自动处理默认端点0的所有事务,完成标准的USB 枚举配置过程,而本地单片机只负责数据交换。
在外置固件模式下,由外部单片机或DSP根据需要自行处理各种USB请求,从而可以实现符合各种USB类规范的设备。
CH372提供一对主端点和一对辅助端点,支持控制传输、批量传输和中断传输。
通用Wjndows驱动程序提供设备级接口,通过DLL提供API应用层接口。
4.2 引脚功能说明CH372采用SSOP—20封装,表1对其各引脚功能进行了说明。