采用通用串行总线的数据传输及控制***以及相应的方法
技术领域
本发明涉及一种数据传输及控制***以及相应的方法,具体地说,是涉及一种采用通用串行总线(USB)方式进行数据传输和控制的***以及相应的方法。
背景技术
USB的英文全称为Universal Serial Bus,中文含义是通用串行总线,其中所传输的数据是遵循USB规范的数据,USB规范是由Conpaq、DEC、IBM、Inter、Microsoft、NEC和Northen Telecom等公司为简化PC与外设之间的互连而共同研究开发的一种免费的数据传输规范。若要使有关的数据在具有CPU的电子设备之间按USB规范进行传输时,必须在这些电子设备中设置相应的符合USB规范的软件,并采用专用的USB线路将这些电子设备连接起来,从而构成USB总线***。总之,一个完整的USB总线***可以分为三部分:USB总线的主机(以下称USB主设备),USB总线的设备(以下称USB从设备)以及将USB主设备和USB从设备连接起来的USB线路。USB主设备与USB从设备之间通过USB线路耦接。USB主设备中设有USB主设备软件,USB从设备中设有USB设置信息。USB主设备开机后,USB主设备通过USB线路的电源线向USB从设备供电,并通过上拉电阻产生一个脉冲,该脉冲信号通过USB线路的数据线返回至USB主设备,从而USB主设备得知该USB从设备的存在,并为该USB从设备分配唯一的USB地址,这个地址通过USB主设备的地址寄存器来标记,以保证数据包不会传输到别的USB从设备。同时在USB主设备和USB从设备之间首先建立一个称为Endpoint 0的消息信道,USB主设备开始使用Endpoint 0信道读取USB从设备只读存储器中所存储的作为USB设置信息的器件配置特征字。基于器件配置特征字,USB主设备为该USB从设备指定一个配置值,这时,USB从设备即处于配置状态了,从而也就在USB主设备和USB从设备之间建立起了通讯联系,该建立通讯联系的过程称为“USB枚举”。在任何USB总线***中,只能有一个USB主设备,USB从设备这可以有1至127个,当从设备数量较多时,可以采用级连的方式用USB集线器以及USB线路将USB主设备和USB从设备连接起来。
需要注意的是,上述“耦接”一词,不应只局限地理解为直接的相连。这样,句子“设备A与设备B耦接”不应局限于其中设备A的一个输出直接与设备B的一个输入相连的设备或***。其意思是,在设备A的输出和设备B的输入之间存在一条通路,而该通路可能包含其它设备或部件。
图1给出了现有技术中的一种USB总线***的电路框图。该USB总线***具有一个USB主设备131和一个USB从设备132,USB主设备131和USB从设备132之间通过USB线路121相互连接,且相互间建立了通讯联系。图中的USB主设备131包括一个USB主设备处理器111和一个数据使用器114,USB从设备132包括一个USB从设备处理器112和一个数据存储器115。USB主设备处理器111可以通过USB线路124连接另外一个USB从设备。该USB总线***工作时,USB主设备131通过USB主设备处理器111发出指令给USB从设备处理器112,USB从设备处理器112会响应该指令、对数据存储设备115执行读写操作,USB从设备处理器112将结果传输给USB主设备处理器111,USB主设备处理器111处理完数据后供数据使用器114使用。
图2给出了现有技术中的另一种USB总线***的电路框图。该USB总线***的主设备331是一个带有USB主设备处理器311的DVD播放器,其数据使用器314包含一个图形和音频处理器用来进行音频和视频解码。USB从设备332是一个静态的带USB从设备处理器312的读卡器,它可以对数据存储器315进行控制,数据存储器315可以在很多存储介质中选择,例如SmartMedia、MemoryStick、CompactFlash、SD card等。DVD播放器331通过USB线路321与读卡器332相连,DVD播放器也可以通过USB线路324与其它的USB从设备处理器建立通讯联系。
USB总线***中,USB主设备和USB从设备之间的数据传输为同步传输,其速度是标准串口的数十倍,在对USB主设备和USB从设备进行连接时,可以进行热插热拔,同时USB总线***中的USB主设备还可以直接向一些USB从设备提供电源。全速USB接口的最高传输率可达12Mb/s,比串口快了整整100倍,而执行USB2.0标准的高速USB接口速率更是达到了480Mb/s,随着USB2.0的正式投入使用,USB接口的各类存储设备发展之快让人目不暇接,不仅成熟的USB硬盘伴随着USB2.0那高达480Mbps的带宽一举突破瓶颈成为人们瞩目的焦点,便携刻录机、闪盘存储器也因为速度的提高而为人们所接受。同时这使得高分辨率、真彩色的大容量图象的实时传输成为可能。但是,现有技术中的USB总线***只具有将USB从设备中的存储器中的数据传输到USB主设备中进行处理后给USB主设备中的数据使用器使用的功能,其功能比较单一。
发明内容
本发明的目的是提供一种采用通用串行总线的数据传输及控制***以及采用通用串行总线的数据传输及控制的方法,这种***能够实现USB主设备将USB主设备的数据存储器中的数据读出后送到USB从设备、再由USB从设备的数据使用器进行使用,从而在应用于车载GPS时,可提高车载GPS的传输速度,降低成本。
实现本发明目的中的提供一种采用通用串行总线的数据传输及控制***的技术方案是:本***具有一个USB主设备和一个USB从设备,USB主设备具有一个USB主设备处理器,USB从设备具有一个USB从设备处理器,USB主设备处理器与USB从设备处理器之间通过USB线路耦接;其结构特点是:USB主设备还具有一个与USB主设备处理器相连的数据存储器;USB从设备还具有一个与USB从设备处理器相连的数据使用器;USB主设备处理器和USB从设备处理器在使用中建立了一种具有可使USB从设备处理器通过USB主设备处理器调用并处理USB主设备的数据存储器中的数据的功能的通讯联系;将带有液晶显示屏的DVD视盘机设置成USB主设备,将功能单一的合成图形用设备设置为USB从设备,USB从设备用于将车载GPS的GPS接收机送来的位置、速度、高度信号进行处理,再与DVD视盘机送来的电子地图进行结合,再将合成好的图形在DVD视盘机的液晶显示屏上显示出来。
实现本发明目的中的提供一种通过通用串行总线对数据进行传输和控制的方法的技术方案是:本方法的***具有一个USB主设备和一个USB从设备,USB主设备具有一个USB主设备处理器和一个与USB主设备处理器相连的数据存储器,USB从设备具有一个USB从设备处理器和一个与USB从设备处理器相连的数据使用器;USB主设备处理器与USB从设备处理器之间通过USB线路相耦接;USB主设备处理器询问USB从设备处理器是否有请求服务的命令,若有请求服务的命令且该请求服务的命令为请求数据服务的命令时,则根据命令中所包含的所需数据的起始地址和长度的信息,读取数据存储器中相应地址的数据信息,再将所读取到的数据信息经USB线路传输到USB从设备处理器;USB从设备处理器对这些数据进行处理并传输给数据使用器使用。
上述方法中,在USB主设备处理器询问USB从设备处理器是否有请求服务的命令前,USB主设备和USB从设备均进行初始化;初始化完成后,USB主设备处理器寻找可能的USB从设备,当找到可能的USB从设备后,与该可能的USB从设备相互间进行USB枚举,若枚举成功则确定该可能的USB从设备即为USB从设备,且建立相互间的符合USB规范的通讯联系;USB主设备处理器对与其建立相互间符合USB规范的通讯关系的USB从设备进行判断,若该USB从设备没有设置所需的特征标志时,则USB主设备处理器返回至继续寻找可能的USB从设备的状态,若该USB从设备设有所需的特征标志时,则USB主设备处理器每隔一段时间即对USB从设备处理器进行一次是否有向USB主设备处理器提出请求服务的命令的询问。
上述方法中,当USB主设备处理器询问到USB从设备处理器已提出了请求服务的命令后,当判断该命令不是请求数据服务的命令后,则读取数据存储器的数据信息,再将所读取到的数据信息经USB线路传输到USB从设备处理器,并存储于USB从设备处理器的缓存器中。
上述方法中,在车载GPS中,将带有液晶显示屏的DVD视盘机设置成USB主设备,将功能单一的合成图形用设备设置为USB从设备,USB从设备用于将车载GPS的GPS接收机送来的位置、速度、高度信号进行处理,再与DVD视盘机送来的电子地图进行结合,再将合成好的图形在DVD视盘机的液晶显示屏上显示出来。
本发明具有积极的效果:(1)本发明采用通用串行总线(USB)的数据传输及控制***实现了将USB主设备的数据存储器中的数据由USB主设备处理器读出,通过USB线路传输给USB从设备,这些数据经过USB从设备处理器处理后再传输给USB从设备的数据使用器使用,对USB总线***来说实现了数据的一种新的传输方式,因而是一项原创性发明创造。(2)本发明的***是一种USB总线***,但是又有自己的特点,因为一般的USB总线***在进行数据的传输时,只是将USB从设备的数据传输给USB主设备使用,本发明不仅从结构上改变了以往的USB总线***的数据传输的模式,而且在USB主设备和USB从设备中设置新的程序,从而可顺利实行由USB主设备将存储介质的数据(例如硬盘驱动器、CDROM光盘、DVDROM光盘、静态存储器件或其它存储介质上的数据)传输给USB从设备的传输方式。(3)本发明的***和方法可以应用于车载GPS。车载GPS主要包含GPS接收处理一体化机和便携笔记本电脑、PDA掌上电脑、CARPC车载电脑等。GPS接收机俗称G-MOUSE,是把卫星信号接收后加以处理,转换成标准的格式通过电缆或插槽传输给计算机,采用的接口方式一般是RS232;便携笔记本电脑、PDA掌上电脑、CARPC车载电脑等,作用是把G-MOUSE送来的位置、速度、高度等信号进行处理再与电子地图进行结合,显示出当前所在位置和其他信息。本发明可将带有液晶显示屏的DVD视盘机设置成USB主设备,将功能单一的合成图形用USB从设备,USB从设备把GPS接收机送来的位置、速度、高度等信号进行处理再与DVD视盘机送来的电子地图进行结合,再将合成好的图形在DVD视盘机的液晶显示屏上显示出来,甚至可以将DVD视盘机以及合成图形用USB从设备制造为一体机。这样,采用本发明的车载GPS不但传输速度很快,而且成本较低。
附图说明
图1为已有的采用通用串行总线(USB)的数据传输的***的电原理框图。
图2为已有的采用通用串行总线(USB)的数据传输的***的一种应用装置的电原理框图,其中USB主设备为DVD播放器,USB从设备为读卡器。
图3为本发明的采用通用串行总线(USB)的数据传输及控制***的电原理框图。
图4为图3中的USB主设备工作时的程序框图。
图5为图4中的询问主设备存储器状态的子程序的框图。
图6为图4中数据处理子程序的框图。
图7为USB从设备工作时的程序框图。
具体实施方式
(实施例1)
见图3,本发明的采用通用串行总线的数据传输及控制***,具有一个USB主设备231和一个USB从设备232。USB主设备231具有一个USB主设备处理器211和一个与USB主设备处理器211相连的数据存储器214。USB从设备232具有一个USB从设备处理器212和一个与USB从设备处理器212相连的数据使用器215。USB主设备处理器211与USB从设备处理器212之间通过USB线路221耦接。USB主设备处理器211还可以通过USB线路224连接另外一个USB从设备。将带有液晶显示屏的DVD视盘机设置成USB主设备,将功能单一的合成图形用设备设置为USB从设备,USB从设备把GPS接收机送来的位置、速度、高度信号进行处理,再与DVD视盘机送来的电子地图进行结合,再将合成好的图形在DVD视盘机的液晶显示屏上显示出来。
见图4,本发明的***启动后,USB主设备231和USB从设备232均进行初始化;初始化完成后,USB主设备处理器211寻找可能的USB从设备,当找到可能的USB从设备后,与该可能的USB从设备相互间进行USB枚举,若枚举成功则确定该可能的USB从设备即为USB从设备,且建立相互间的符合USB规范的通讯联系。
该USB枚举的具体过程为:USB主设备处理器211检测到USB从设备处理器212的存在,并为USB从设备232分配唯一的USB地址,并使它处于Addressed状态,这个地址通过地址寄存器(ADDR)来标记,以保证数据包不会传输到别的USB外设;同时在USB主设备231和从设备232的协议层之间首先建立一个称为Endpoint 0的消息信道,USB主设备开始使用Endpoint0信道读取USB从设备232只读存储器中所存储的器件配置特征字;基于器件配置特征字,USB主设备231为该USB从设备232指定一个配置值,这时USB从设备232即处于配置(Configured)状态了,它所有的端点(Endpoint)这时也处于配置值所描述的状态,USB枚举结束。
之后,USB主设备处理器211对与其建立相互间符合USB规范的通讯关系的USB从设备进行判断,若该USB从设备没有设置所需的特征标志时,则USB主设备处理器211返回至继续寻找可能的USB从设备的状态,若该USB从设备设有所需的特征标志时,则USB主设备处理器211每隔一段时间即对USB从设备处理器212进行一次是否有向USB主设备处理器211提出请求服务的命令的询问。当USB主设备处理器211询问到USB从设备处理器212已提出了请求服务的命令后,则判断该命令是否是请求数据服务的命令,若否,则读取数据存储器214的数据信息,再将所读取到的数据信息经USB线路221传输到USB从设备处理器212,并存储于USB从设备处理器212的缓存器中(图5);若是请求数据服务的命令,则根据命令中所包含的所需数据的起始地址和长度的信息,读取数据存储器214中相应地址的数据信息,再将所读取到的数据信息经USB线路221传输到USB从设备处理器212(图6)。
见图7,本发明USB从设备232与USB主设备231共同进行USB枚举后,确定了USB主设备231和USB从设备232之间的通讯规范,如采用的传输协议、通道数、数据传输类型以及双方的状态等,最终使该USB从设备232处于可使用的状态。之后USB从设备处理器212等待来自USB从设备232的输入装置的I/O命令(输入/输出命令),该I/O命令也可由USB从设备处理器212在运行其它应用程序时产生;若没有I/O命令,则USB从设备处理器212继续等待。
若有I/O命令,则USB从设备处理器212将判断该命令是否为请求数据服务的命令。
若不是数据请求命令,USB从设备处理器212则一方面将该命令标记为状态服务命令而作为请求服务的命令存放至第一寄存器中,另一方面将该命令为状态服务命令的信息存放于第二寄存器中;因为USB主设备处理器211每隔一段时间即对USB从设备处理器212进行一次是否有向USB主设备处理器211提出请求服务的命令的询问,当USB主设备处理器211在USB从设备处理器212的第一寄存器中取到请求服务的命令并判断该命令不是请求数据服务的命令后,则读取数据存储器214的数据信息、再将所读取到的数据信息经USB线路221传输到USB从设备处理器212,USB从设备处理器212则根据第二寄存器中所记载的标记,将所得到的数据信息存储于USB从设备处理器212的缓存器的相应的区域中。
若是数据服务的命令(该数据服务命令由USB从设备处理器212根据其缓存器中的数据存储器214的数据信息以及运行其它程序得出,因而包含所需数据在数据存储器214的起始地址和长度的信息),USB从设备处理器212则一方面将该命令标记为数据服务命令而作为请求服务的命令存放至第一寄存器中,另一方面将该命令为数据服务命令的信息存放于第二寄存器中;因为USB主设备处理器211每隔一段时间即对USB从设备处理器212进行一次是否有向USB主设备处理器211提出请求服务的命令的询问,当USB主设备处理器211在USB从设备处理器212的第一寄存器中取到请求服务的命令并判断该命令是请求数据服务的命令后,读取数据存储器214中相应地址的数据信息、再将所读取到的数据信息经USB线路221传输到USB从设备处理器212,USB从设备处理器212则根据第二寄存器中所记载的标记,将所得到的数据信息存储于USB从设备处理器212的缓存器的相应的区域中。再由USB从设备处理器212对这些数据进行数据校验、重新排列等处理后,送至数据使用器215使用。