USB-CAN-RS232总线转换电路设计及实现
1 引言
随着电子设备的大量出现及针对各种控制系统的实际需求,各种通信网络相继产生。由于它们的总线结构,通信协议及传输特点各不相同,给不同设备之间的连接带来很多麻烦,因而急需各种总线之间的转换装置。目前较流行的现场通信网络有rs-232,rs422/485、hart、profield、dupline、can和lonworks等,本文阐述了一种usb-can-rs232三总线转换装置,电路设计简单新颖,并并且携带方便,实用性很强。
2 各种总线的特点
2.1 can(controller area netwrok)
can是控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,can总线的数据通信具有突出的可靠性、实时性和灵活性,具有较高的通信速率(最高达1mb/s),较远的通信距离(最远达10km),良好的抗电磁干扰能力,而且采用总线仲裁技术,通信方式灵活,越来越受到人们的重视,它在汽车领域的应用最为广泛,一些著名的汽车制造厂商如benz(奔驰)、bmw(宝马)、porsche(保时捷)、rolls-royce(劳斯莱斯)和jaguar(美洲豹)等都采用can总线实现汽车内部控制系统与各检测和执行机构间的数据通信。
2.2 usb(universal serial bus)
usb即"通用串行总线"是一种应用在pc中的表型总线,由intel、microsoft、nec等公司共同提出,他是一种新型的外接串联口,提出该规格的厂商希望用usb取代现有的外接设备接口,它还具备连接单一化、软件自动侦测以及热插拔(即插即用)的功能,usb具有以下特点:
1)数据传输速率高。usb高速:480mb/s;usb全速:12mb/s;usb低速:1.5mb/s。
2)数据传输可靠。usb事务处理包括错误检测机制,可以确保数据无错误发送,在发生错误时,事务处理可以重新进行。
3)同时挂接多个usb设备,每个usb总线支持127个设备的连接。
4)usb接口能为设备供电。当外界电源要求电压为5v且电流小于500ma时,可以直接从usb总线获取电源,这样,usb设备无需专用电源线,从而降低了设备成本。
5)支持热拔。usb实现了真正的"即插即用"功能,设备连接后由usb自检测,并且由软件自动配置,完成后立刻就能使用,不需要用户进行干涉。
3 器件特性
3.1 sja1000型can总线控制器
sja1000是philips公司早期pca82c200型can控制器的代替品,功能更强,具有如下特点:
完成兼容pca82c200及其工作模式即basiccan模式;
具有扩展的接收缓冲器,64字节的fifo结构;
支持can2.0b;
支持11位和29位识别码;
位速率可达1mbit/s;
时钟频率高达24m赫兹;
支持与不同微处理器的接口;
可编程的can输出驱动配置;
工作温度范围宽(-40摄氏度~+125摄氏度)。
sja1000的引脚排列如图1所示,其内部主要由接口管理逻辑iml、信息缓冲器(含发送缓冲器txb和接收缓冲器rxfifo)、位流处理器bsp、接收过滤器asp、位时序处理逻辑btl、错误管理逻辑eml、内部振荡器及复位电路等构成,iml接收来自cpu的命令,控制can寄存器的寻址并向控制提供中断信息及状态信息,cpu的控制经iml把要发送的数据写入txb,txb中的数据由bsp处理后经btl输出到can
bus。btl始终监视can bus,当检测到有效的信息头"隐性电平-控制电平"的转换时启动接收过程,接收的信息首先要由位流处理器dsp处理,并由asp过滤,只有当接收的信息的识别码与asp检验相符时,接收信息才最终被写入rxb或rxfifo中,rxfifo最多可以缓存64字节的数据,该数据可被cpu读取,eml负责传递层中调制器的错误管制,它接收bsp的出错报告,促使dsp和iml进行错误统计。
3.2 usbn9603型usb接口电路
usbn9603的引脚排列如图2所示,它是标准的usb接口电路,符合usb1.0和usb1.1协议。usbn9603集成了3.3v的稳定电源、串行接口引擎sie、多个usb端点缓冲fifo、1个8位并行微处理器接口和1个时钟源。


usbn9603的性能如下:低电流,低功能,外接24m赫兹晶体振荡器。
增强型的dma机制支持数据快速自动传输;
集成了64b的双向fifo存储器;
外处理器接口模式可由软件控制;
支持24m赫兹晶体振荡器和内部48m赫兹时钟产生电路;
时钟频率可由软件控制;
8位并行接口有两种可选模式,包括地址/数据复用型和非地址/数据复用型;
接收和发送端的缓冲为64b;
4 硬件设计
电路中使用的微处理器是atmel公司生产的at89c51型单片机,硬件连接如图3所示,usbn9603的clkout与at89c51的xtal1相连,usbn9603的时钟输出为at89c51提供时钟输入。at89c51通过并行地址/数据复用的方式访问usbn9603,at89c51的p2.0通过74hc14反向后片选usbn9603,其地址为0x00-0x1ff。选用sja1000作为can微控制器,sja1000集成了can协议的物理层和数据链路层功能,可完成对通信数据的帧处理,其地址为0x000-0x0ff。at82c50作为can控制器和物理总线之间的接口,用于提供总线的差动发送能力和can控制器差动接收能力。通过at82c50的引脚3可选择3种不同的工作方式(高速、斜率控制和待机)。该引脚接地为高速方式,高速光耦隔离用6n137实现,其作用是防止串入信号的干扰。max232用来完成rs232电平到微控制器接口电路的ttl电平转换,同时还可进行一些总线端口的工作参数设置。

5 软件设计
在微控制器的控制下,各总线之间进行数据交换,微控制器先对各个总线工作参数进行初始化,设置好时钟、寄存器、波特率、并选择合适的中断方式,对于sja1000,主要指对控制寄存器cr、验收码寄存器acr、验收屏蔽寄存器amr、时钟分频寄存器cdr、总线定时寄存器btr0、总线定时器brt1等的设置。usb的传输方式有4种:控制传输、块传输、同步传输和中断传输。本设计中使用了控制传输和块传输。usbn9603的内部寄存器和fifo缓冲区分别对每个端点进行控制,当接到主机法来的in标记包时,发送端点应自动向上发送数据。如果没有数据发送,则回应nak(negative
acknowledegment)握手包。其主程序流程如图4所示。

在设计软件时,一定要正确选择需要传输数据的2种总线,可以用软件或硬件进行选择。
6 结束语
这种3总线转换器可方便地实现不同端口设备之间的数据通信,usb-can的转换速率可以达到1mb/s。如果现场条件要求较高且适应性要求较强,可采用双cpu、加数据缓冲区ram等措施来完善电路。这样无形中增加了硬件电路的复杂性和软件设计的逻辑性。
评论