基于芯片CH375的USB总线和ISA总线转接的实现
扫描二维码
随时随地手机看文章
摘要:USB总线因其便捷的特性使得其应用越来越广泛,电子市场上带有USB接口的设备也越来越多,USB总线取代传统的老式接口必将成为一种趋势。而ISA总线是工业标准总线架构,在工控领域中历史悠久,是最早的系统级总线。ISA总线如今在工业控制领域的主要作用就是扩展中低速设备接口,因为工控领域中要控制的设备往往非常多,所以ISA总线在工业领域中仍然起着非常重要的作用。本文的主要目的是利用CH375芯片完成USB总线到ISA总线的转接。
ISA总线最早作为一种系统总线,主要用在IBM-PC、IBM-PC/XT系列计算机当中,后来成为工业总线标准,并且产生了深远的影响。由于技术的不断发展,ISA总线的传输速率跟不上处理器的速度,从而被其他总线所取代。
然而正是由于ISA总线的低速使得其与现在的外设速率十分匹配,适合作为一种外围设备总线,用于扩展设备接口。并且ISA总线的地址线是非常多的,可以连接数量庞大的设备。综合这两点原因,ISA总线在工业控制领域仍然占有一席之地,并且ISA总线工业领域中的应用还会持续一段很长的时间。
USB外设普及之后,将会使得PC机箱后面的各式各样繁杂的连接线变得简单,大多数老式的接口将被淘汰,如ISA接口、PS/2接口、串并行接口等,取而代之的是各种USB接口的外设。但有些接口是USB无法取代的,如显示器接口、SCSI接口和IEEE1394接口等。不过这还是不能阻挡USB接口的发展。
其实除了如显卡这种数据传输量极高和一些对实时性要求特别高的控制设备外,几乎所有的PC外设都可以移植到USB上来,因此USB的PC外设有不可限量的发展空间。正是基于这个原因,本文提出了一种设计方案,通过CH375芯片实现两者之间的转接。
1 整体方案的设计
本方案中采用CH375芯片实现ISA总线到USB总线的转接。CH375是一个USB总线的通用接口芯片,支持USB-HOST主机方式和USB- DEVICE/SLAVE设备方式。在本地端,CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机、DSP、MCU、 MPU等控制器的系统总线上。它内置了USB通讯中的底层协议,屏蔽了复杂的底层驱动;通过Windows驱动程序提供设备级接口,通过DLL提供API 应用层接口。下图是转接板的整体模块图,板卡通过USB接头和上位计算机连接,通过ISA接口插接在下位机的ISA插槽上。
1.1 CH375模块的设计
CH375芯片与外围芯片连接电路如图2所示。
UD+、UD-引脚分别连接USB总线的D+、D-数据线。
ACT#是CH375设备状态输出端,当CH375作为USB设备配置完成后,该引脚输出低电平,可以用来指示CH375的状态。
INT#引脚为中断请求输出,将其连接到单片机的中断0引脚。
CS#片选控制输入引脚,将其接到单片机P2.7管脚。
A0是CH375数据端口和命令端口的选择引脚,A0接到单片机的P2.6管脚。
RD#和WR#分别接到单片机的读写信号引脚。
D0~D7是数据总线,分别与单片机的P0.0~P0.7连接。
1.2 ISA模块的设计
本设计中用了两个74HC245,分别将数据信号、地址信号和读写控制信号引入到下位机中。采用74LS573芯片作为锁存器。1)74LS573的使能端0E#引脚接地使其一直有效。2)LE为锁存使能输入端,当其从高电平转为低电平时锁存输入的数据(即为锁存P0口的数据)。由于单片机是在ALE的下降沿送出稳定的地址信号,因此可将芯片的LE引脚直接与单片机的ALE连接。3)其他对应连接即可。
ISA总线的地址总线和数据总线是分开的,控制线也比较简单,因而和单片机接口非常方便,可以直接接到ISA总线上。
2 软件设计
本设计要完成的软件程序设计主要是:上位机用户界面应用程序和下位单片机程序。
上位机的数据通过USB总线,由USB主机发送给CH375,CH375将接收的数据放入端点缓冲区,接收完后通过中断告知单片机数据接收完毕,然后单片机响应中断,在中断中做
相应的处理,即在中断中将数据转换和发送到ISA总线。因此单片机的主要任务是与CH375通讯,接收CH375数据缓冲区中的数据,然后再将数据经过处理转换成ISA总线信号后发送到ISA总线。图3为主程序的流程图。
图4为CH375初始化子程序,其主要是测试和单片机的通讯是否正常,以及设置CH375的工作方式等。本文将CH375的工作方式设置为方式2,即内置固件模式。
图5是单片机中断子程序,这是下位单片机程序最重要的部分,所有上位机程序发送的数据都是由中断子程序响应、接收和处理的。
中断子程序如下:
3 系统调试
3.1 调试方法
本文采用了先部分后整体的调试方法,这样可以节省时间,最快的速度发现问题。
把整个调试系统分成了两部分,第一部分为上位机程序与单片机的通讯;第二部分为单片机与ISA总线的通讯。分别对此两部分进行调试,调试成功之后再将这两部分组合成整体,最后进行整体调试。
3.2 调试过程与调试记录
1)上位机与单片机数据传送的调试
上位机部分由程序“调试程序V1.0.EXE”来完成控制,由他可以输入I/O输出板卡的地址以及要发送给ISA总线的数据。其主界面如图6所示。
单片机部分由Keil C编程软件、仿真器以及USB-ISA转接卡组成。将仿真器的仿真头连接到USB-ISA转接卡单片机位置,由Keil C编程软件、仿真器共同完成仿真功能。Keil C软件的编程和调试界面如图7。
利用仿真器就可以查看数据是否成功到达,调试记录如表1所示。
芯片CH375的USB总线和ISA总线转接的实现" />
2)单片机与ISA总线数据传送的调试
单片机部分即可用仿真器仿真,也可以直接用通过编程器烧写了程序的单片机,但相比较而言用仿真调试会比较方便。这部分调试主要是看由单片机发送的ISA总线数据能否被I/O输出卡接收到。数据是否接收到可由显示板来指示,显示卡LED灯的亮灭状态可以指示I/O输出卡是否被选中,以及是否接收到单片机的控制信号。
程序控制向ISA总线的某个地址发送数据,如果显示板能够显示程序中发送的数据信息,则表明单片机与ISA总线通讯成功。
3)系统整体调试
当上述两个部分都调试成功之后,就可以开始系统的整体调试了。上面两步的调试成功说明硬件原理和硬件连接正确,上位机调试程序也没问题,接下来就只剩下单片机对接收到的数据的处理的软件程序调试了。这个部分也相对比较简单,单片机对ISA总线数据的处理跟对扩展存储器的操作一样;指向某个地址然后发送数据。
4 结束语
本文将USB和ISA这两种总线的特点融合在一起,设计并制作了USB-ISA转接卡,适应于各种工控系统,在有ISA总线的场合基本上都可以应用此转接卡。ISA总线是一种适合于中低速I/O设备的总线,因其多地址线和较慢的传输速率,ISA总线在工业领域中仍然应用得非常广泛。而USB总线又是一种非常方便的总线,受到越来越多的使用者的喜爱,USB的优越的特性将会使其具有不可抵挡的发展势头。因此USB总线和ISA总线的结合必将会在工业领域产生深远的影响,可以预期USB-ISA转接卡在工业领域中会有非常广泛的应用前景。