一种利用USBHost接口实现程控仪器通信的总线桥的制作方法

文档序号:11250835阅读:528来源:国知局
一种利用USBHost接口实现程控仪器通信的总线桥的制造方法与工艺

本发明属于测试测量技术领域,更为具体地讲,涉及一种利用usbhost接口实现程控仪器通信的总线桥。



背景技术:

usb拥有使用方便、支持热插拔、传输速度快等优势,得到测试测量仪器供应商和用户的认可,usb联盟制定usbtmc类协议标准推动usb在测试测量领域发展。相对于通用usb协议,usbtmc协议做出了一下几点的新规范:

1、在支持的传输方式上,控制传输和bulk传输属于必需的,中断传输属于可选,同步传输未规定;

2、定义了数据包头(header)格式,规定bulk传输的数据必须以特殊的header开始;

3、usb主机要通过bulkin传输读取设备数据,必须先通过bulkout传输发送一个usbtmc准备返回数据命令后在可以进行;

4、规定了8个类请求命令,用来abortbulk传输、查询状态等操作。

支持usbtmc协议的设备,在其usb主机端可以使用visa函数接口来统一设计主机端软件,提高了设备的兼容性并降低了主机端软件开发难度。

随着电子技术的发展,越来越多的仪器采用了计算机作为控制核心,从而为usb应用在测试测量领域提出了新问题:在实现控制主机与仪器的通信时,控制主机和仪器都仅提供usbhost接口,两者不能直接使用usbhost接口互连通信。因此需要开发一个能够实现控制主机与仪器通过usbhost接口互连通信且符合usbtmc协议要求的总线桥。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种利用usbhost接口实现程控仪器通信的总线桥,实现了控制主机与仪器主机之间的相互通信。

为实现上述发明目的,本发明一种利用usbhost接口实现程控仪器通信的总线桥,其特征在于,包括:通过usbhost接口连接控制主机与仪器主机的usb总线桥;

usb总线桥包括主usb芯片和从usb芯片,通过将两块usb芯片“背靠背”连接构成,其中,主usb芯片支持usbtmc协议;

主usb芯片和从usb芯片均包括usb收发器、cpu、端点fifo以及fifo接口,以及运行在两块usb芯片上的固件程序;

其中,cpu运行着usb芯片的固件程序,完成usb芯片的初始化和配置符合协议的各类描述符,以及对usb收发器、端点fifo和fifo接口的控制;

usb收发器用来实现usb芯片分别与仪器主机和控制主机之间的通信,其主要传输方式包括控制传输、bulk传输和中断传输;控制传输实现usb芯片在两个主机上的识别与连接,bulk传输实现usb芯片与主机之间的数据传输,中断传输实现从usb芯片与仪器主机的header数据传输;

端点fifo用于存放usb芯片与主机之间的传输数据,并根据不同的传输方式存放不同位置;

fifo接口受cpu控制,用于实现将端点fifo数据通过本地引脚与另一块usb芯片的连接;

主usb芯片的usb收发器通过bulkout传输接收到来自控制主机发送的数据后,将其存放在端点fifo里,cpu读取这些数据的前12字节,即usbtmc协议规定的header数据,判断本次传输方式,若本次传输为out型传输,则设置fifo接口写操作,将这些数据写到从usb芯片,从usb芯片的usb收发器先将header数据由中断传输发送给仪器主机,再由bulkout传输将数据发送给仪器主机;若为in型传输,则同样先设置fifo接口写操作,将提取的12字节header数据经从usb芯片发送给仪器主机,然后设置fifo接口读操作,读取从usb芯片的数据,从usb芯片的usb收发器通过bulkin传输接收仪器主机的数据,并将其由主usb芯片的fifo接口读操作读走,当主usb芯片读到数据并保存在端点fifo里后,将端点fifo里的数据通过bulkin传输发送给控制主机;仪器主机通过安装的驱动程序通过中断传输轮询从usb芯片的中断端点缓冲区,获取header数据,对header进行解析后跳转执行相对应的操作,即开启bulkout传输写数据,或开启bulkin传输读数据,或者是不操作等待下一次中断传输。

本发明的发明目的是这样实现的:

本发明一种利用usbhost接口实现程控仪器通信的总线桥,通过主usb芯片和从usb芯片“背靠背”连接而成,其中,主usb芯片支持usbtmc协议,使之被识别为usbtmc设备,从而实现了控制主机与仪器主机之间的相互通信,具有低成本、结构简单、且传输速度稳定、快速等特点。

同时,本发明一种利用usbhost接口实现程控仪器通信的总线桥还具有以下有益效果:

(1)、总线桥支持usbtmc协议,可被识别为usbtmc设备,从而提高了总线桥在控制主机端的兼容性并简化了控制主机端usb驱动程序开发流程;

(2)、总线桥支持高速数据传输,提供了一条传输速度较快且传输稳定的传输通道,可以满足任意波形发生器、示波器、频谱仪等对大量数据处理的要求;

(3)、总线桥支持usb协议,为数据传输提供了一个稳定传输的通道;

(4)、总线桥在连接上可以直接将控制主机和仪器主机的usbhost接口相连,解决了usb“主从模式”的连接限制,改变之前利用usb转其他总线接口的方式;

(5)、总线桥主要由usb芯片构成,降低了之前利用usb转其他总线接口方式的设计成本。

附图说明

图1是本发明一种利用usbhost接口实现程控仪器通信的总线桥架构图;

图2是主usb芯片的结构图;

图3是从usb芯片的结构图;

图4是主usb芯片与从usb芯片间数据传输时序图;

图5是usb总线桥写传输模型;

图6是usb总线桥读传输模型。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

图1是本发明一种利用usbhost接口实现程控仪器通信的总线桥架构图。

在本实施例中,如图1所示,本发明一种利用usbhost接口实现程控仪器通信的总线桥,包括:通过usbhost接口连接控制主机与仪器主机的usb总线桥;

从控制主机角度看,usb总线桥与仪器主机都属于usb设备范畴,故可将与控制主机相连的芯片称为主usb芯片,另一片称为从usb芯片,通过将两块usb芯片“背靠背”连接构成usb总线桥,其中,主usb芯片支持usbtmc协议;

主usb芯片和从usb芯片均包括usb收发器、cpu、端点fifo以及fifo接口,以及运行在两块usb芯片上的固件程序,其中,主usb芯片的结构如图2所示,从usb芯片的结构如图3所示。

其中,cpu运行着usb芯片的固件程序,完成usb芯片的初始化和配置符合协议的各类描述符,以及对usb收发器、端点fifo和fifo接口的控制;

usb收发器用来实现usb芯片分别与仪器主机和控制主机之间的通信,其主要传输方式包括控制传输、bulk传输和中断传输;控制传输实现usb芯片在两个主机上的识别与连接,bulk传输实现usb芯片与主机之间的数据传输,中断传输实现从usb芯片与仪器主机的header数据传输;

其中,中断传输是用来解决从usb芯片在接收到主usb芯片传输来的数据后无法主动传输给仪器主机的问题。usb的“主从模式”连接方式导致数据的传输都必须由usb主机发起,usb设备无法主动发送数据给usb主机,但从usb芯片又必须能够“实时”与仪器进行数据交互才能避免两块usb芯片上不产生数据等待或阻塞。因此在仪器主机上采用了中断传输,利用中断传输周期性的对从usb芯片进行查询,将从usb芯片接收于主usb芯片的数据里面的header由中断传输“随时”传输给仪器,仪器主机解析header便能够做出对从usb芯片的正确操作,如读取数据、或写入数据、或不操作;

端点fifo用于存放usb芯片与主机之间的传输数据,并根据不同的传输方式存放不同位置;

fifo接口受cpu控制,用于实现将端点fifo数据通过本地引脚与另一块usb芯片的连接;

fifo接口通过本地引脚连接用于实现主、从usb芯片间的数据传输;其中,本地引脚包括用于数据传输的16根数据总线、实现传输握手的pintxnover和pinsready引脚,以及基于usbtmc协议类请求命令的pinabortbulkout、pinabortbulkin、pinclearhalt和pininit引脚;

在本实施例中,设计将两块芯片的fifo接口通过一定信号控制线连接起来进行芯片间的数据传输,其中,设计规定主usb芯片fifo接口为主接口,从usb芯片fifo接口为从接口,数据传输均是由主接口决定的,即只能由主接口写数据到从接口或者主接口读从接口数据。本设计在两块usb芯片之间定义若干引脚:

fd:数据线,用与两个usb芯片之间的数据传输;

pinsready:从usb芯片控制的i/o引脚,用于两块usb芯片数据传输的握手;

pintxnover:主usb芯片控制的i/o引脚,用于两块usb芯片数据传输的握手;

pinabortbulkout、pinabortbulkin、pinclearhalt、pininit:主usb芯片控制的i/o引脚,用于实现usbtmc协议特殊类请求命令从主usb芯片传递到从usb芯片。

其中,主usb芯片与从usb芯片间数据传输时序图如图4所示,在图4之中,主usb芯片要与从usb芯片进行数据传输时,当主usb芯片需要与从usb芯片进行数据传输时,先对pinsready引脚进行判定,当其为高电平时,则从usb芯片可以进行数据传输,然后主usb芯片置pintxnover引脚为高电平,并置数据总线有效,当从usb芯片接收到pintxnover引脚为高电平时,置pinsready引脚为低电平,并置数据总线有效,开始进行数据传输,数据传输结束后,主usb芯片置pintxnover引脚为低电平,则传输结束,当从usb芯片收到pintxnover引脚为低电平时,置pinsready引脚为高电平,为下一次数据传输准备;

其中,pinabortbulkout、pinabortbulkin、pinclearhalt和pininit引脚受主usb芯片cpu控制,用于类请求命令的处理;当需要进行类请求命令处理时,将相应的引脚电平取反,从usb芯片的cpu轮询这些引脚电平,当检测到引脚电平改变时,执行相应类请求命令。

在本实施例中,usb总线桥的设计采用了usbtmc协议,使usb总线桥在控制主机端识别为usbtmc设备。其中,主usb芯片必须支持usbtmc协议,主usb芯片和从usb芯片还都配置了ep0、ep2和ep6端点,ep0是控制传输端点,用于控制传输使用,ep2、ep6是bulk端点,前者用于bulkout传输,后者用于bulkin传输,此外,从usb芯片还需要配置一个中断端点ep1,该端点用于中断传输。

在本实施例中,定义了usb总线桥两个传输方向:从控制主机写数据经总线桥到仪器,为总线桥写传输,如图5所示;相反,控制主机读取仪器主机数据为总线桥读传输,如图6所示。

下面结合图5、图6对usb总线桥的工作流程进行详细描述。

主usb芯片的usb收发器通过bulkout传输接收到来自控制主机发送的数据后,将其存放在端点fifo里,cpu读取这些数据的前12字节,即usbtmc协议规定的header数据,判断本次传输方式,若本次传输为out型传输,则设置fifo接口写操作,将这些数据写到从usb芯片,从usb芯片的usb收发器先将header数据由中断传输发送给仪器主机,再由bulkout传输将数据发送给仪器主机;若为in型传输,则同样先设置fifo接口写操作,将提取的12字节header数据经从usb芯片发送给仪器主机,然后设置fifo接口读操作,读取从usb芯片的数据,从usb芯片的usb收发器通过bulkin传输接收仪器主机的数据,并将其由主usb芯片的fifo接口读操作读走,当主usb芯片读到数据并保存在端点fifo里后,将端点fifo里的数据通过bulkin传输发送给控制主机;仪器主机通过安装的驱动程序通过中断传输轮询从usb芯片的中断端点缓冲区,获取header数据,对header进行解析后跳转执行相对应的操作,即开启bulkout传输写数据,或开启bulkin传输读数据,或者是不操作等待下一次中断传输。

其中,out型传输的方式为:直接bulkout传输方式传输header+数据;所述的in型传输的方式为:先通过bulkout发送一个header,再开启bulkin传输,其传输数据为header+数据;其中,header为12字节的长度,第一字节为msgid,用来表明本次传输的类型,是out型还是in型;接下来是1字节的btag和1字节的btaginverse,用来区别多次传输;再1字节保留为0;接着的4字节时transfersize,表示本次传输的长度;再1字节时bmtransferattributes,用来表明传输的额外规定;最后3字节保留为0。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1