CN109871349B - 一种通过USB Mass-Storage协议来实现实时数据传输的方法 - Google Patents
一种通过USB Mass-Storage协议来实现实时数据传输的方法 Download PDFInfo
- Publication number
- CN109871349B CN109871349B CN201910202247.4A CN201910202247A CN109871349B CN 109871349 B CN109871349 B CN 109871349B CN 201910202247 A CN201910202247 A CN 201910202247A CN 109871349 B CN109871349 B CN 109871349B
- Authority
- CN
- China
- Prior art keywords
- module
- file
- protocol
- usb mass
- control module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Information Transfer Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种通过USB Mass‑Storage协议来实现实时数据传输的方法,涉及数据传输方法技术领域,包括用户端模块,还包括用户端协议控制模块、用户端文件IO模块、操作系统文件IO接口模块、设备端USB Mass‑Storage Class驱动模块、设备端文件IO拦截模块和设备端协议控制模块,所述用户端模块与用户端协议控制模块连接,所述用户端协议控制模块与用户端文件IO模块连接,本发明可传输的数据包括但不限于视频、音频、控制命令、参数等信息,可兼容Windows、Linux、MacOS、Android、WinCE等支持U盘挂载的操作系统,具有很好的兼容性,实用性较高,且本发明使用方便,数据传输可靠性较高,其研发投入成本较低,系统结构及后期维护较为便利,易于广泛推广。
Description
技术领域
本发明涉及数据传输方法技术领域,具体是一种通过USB Mass-Storage协议来实现实时数据传输的方法。
背景技术
USB Mass-Storage协议是一种USB大容量存储类设备的数据传输协议,它广泛应用于Windows、MacOS、iOS、Linux、Android、WinCE等主流的主机操作系统,这些操作系统内部集成了标准的USB Mass-Storage设备驱动程序,所有支持USB Mass-Storage协议的设备安装到主机上后即可使用,比如U盘,USB移动硬盘,USB光驱等设备,USB Mass-Storage设备在主机上是以存储设备挂载的,用户通过操作系统中的文件系统对设备进行访问。
目前市场上很多智能硬件或嵌入式设备需要通过USB与上位机(电脑/手机)实现实时的数据交互,常见的做法是设备端实现一个USB协议,上位机端再实现对应的USB驱动程序,上位机的应用通过自已实现的驱动程序来与设备端进行交互,但是这种方案存在以下缺陷:1、研发投入大,牵涉的技术面较广,系统结构及后期维护比较复杂;2、驱动程序兼容性问题,不同的上位机平台需要实现不同的驱动,测试及验证的难度很大;3、驱动程序安全认证问题,有些操作系统为了保护系统的安全性,会强制要求硬件驱动通过软件认证,否则操作系统会拒绝驱动安装操作,对软件开发者的技术及项目开发周期还来很大的挑战;4、安装及使用比较麻烦,对终端用户的技术要求比较高,给产品的售后支持带来很大的压力。因此,本领域技术人员提供了一种通过USB Mass-Storage协议来实现实时数据传输的方法,以解决上述背景技术中提出的问题。
发明内容
本发明的目的在于提供一种通过USB Mass-Storage协议来实现实时数据传输的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:包括用户端模块,还包括用户端协议控制模块、用户端文件IO模块、操作系统文件IO接口模块、设备端USB Mass-Storage Class驱动模块、设备端文件IO拦截模块和设备端协议控制模块,所述用户端模块与用户端协议控制模块连接,所述用户端协议控制模块与用户端文件IO模块连接,所述用户端文件IO模块与操作系统文件IO接口模块连接,所述操作系统文件IO接口模块透过USB Mass-StorageClass协议与设备端USB Mass-Storage Class 驱动模块连接,所述设备端USB Mass-Storage Class 驱动模块与设备端文件IO拦截模块连接,所述设备端文件IO拦截模块与设备端协议控制模块连接。
作为本发明进一步的方案:所述用户端模块用于提供接口封装。
作为本发明再进一步的方案:所述用户端协议控制模块用于按自定义协议封装调用接口。
作为本发明再进一步的方案:所述用户端文件IO模块用于非缓存文件IO的读写操作,且用于将每次非缓存文件IO读写操作传递至操作系统文件IO接口模块。
作为本发明再进一步的方案:所述操作系统文件IO接口模块用于接受用户端文件IO模块的操作请求,并用于将请求发送给设备端。
作为本发明再进一步的方案:所述设备端USB Mass-Storage Class 驱动模块用于进行USB Mass-Storage Class协议,且用于与上位机的USB通过USB Mass-Storage协议进行数据交互,解析协议,识别到数据读写操作后调用文件IO操作。
作为本发明再进一步的方案:所述设备端文件IO拦截模块用于在实际的文件IO操作之前,判断当前操作的地址、大小以及所包含的数据是否符合自定义协议的要求。
作为本发明再进一步的方案:所述设备端协议控制模块用于接收私有命令请求,且接收私有命令请求后,按照命令的类型以及所附带的数据在设备端应用层做出相应的处理并返回处理结果。
作为本发明再进一步的方案:所述方法包括以下步骤:
S1:首先,通过用户端模块进行登录,提供接口封装;
S2:然后,通过用户端协议控制模块按自定义协议封装调用接口;
S3:再通过用户端文件IO模块进行非缓存文件IO的读写操作,并传递至操作系统文件IO接口模块;
S4:然后,通过操作系统文件IO接口模块接受用户端文件IO模块的操作请求,并透过USB Mass-Storage协议将请求发送给设备端;
S5:再通过设备端USB Mass-Storage Class 驱动模块与上位机的USB通过USBMass-Storage协议进行数据交互,解析协议,识别到数据读写操作后调用文件IO操作;
S6:最后,通过设备端文件IO拦截模块在进行文件IO操作之前,判断当前操作的地址、大小以及所包含的数据是否符合自定义协议的要求;
S7:当当前操作符合自定义协议要求,则认为当前操作是非标准文件操作,当作私有命令调用设备端协议控制模块进行处理,按照命令的类型以及所附带的数据在设备端应用层做出相应的处理并返回处理结果,不做实际文件IO操作;当当前操作不符合自定义协议要求时,则认为当前操作是标准文件操作,当作非私有命令,直接执行系统IO操作。
与现有技术相比,本发明的有益效果是:本发明设计了一种通过USB Mass-Storage协议来实现实时数据传输的方法,在实际使用过程中,该设计可传输的数据包括但不限于视频、音频、控制命令、参数等信息,同时可兼容Windows、Linux、MacOS、Android、WinCE等支持U盘挂载的操作系统,具有很好的兼容性,实用性较高,且本发明使用方便,数据传输可靠性较高,其研发投入成本较低,系统结构及后期维护较为便利,同时该设计测试及验证难度较低,驱动程序兼容性较高,不存在传统驱动程序安全认证问题,其开发周期较短,且本发明安装使用较为简单,技术要求较低,为产品的售后服务工作提供便利,易于广泛推广。
附图说明
图1为一种通过USB Mass-Storage协议来实现实时数据传输的方法的流程框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中,包括用户端模块,还包括用户端协议控制模块、用户端文件IO模块、操作系统文件IO接口模块、设备端USB Mass-Storage Class 驱动模块、设备端文件IO拦截模块和设备端协议控制模块,用户端模块与用户端协议控制模块连接,用户端协议控制模块与用户端文件IO模块连接,用户端文件IO模块与操作系统文件IO接口模块连接,操作系统文件IO接口模块透过USB Mass-Storage Class协议与设备端USB Mass-Storage Class 驱动模块连接,设备端USB Mass-Storage Class 驱动模块与设备端文件IO拦截模块连接,设备端文件IO拦截模块与设备端协议控制模块连接。
进一步的,用户端模块用于提供接口封装,使用户只需调用相关的接口即可实现所需功能,无需关注实现细节。
再进一步的,用户端协议控制模块用于按自定义协议封装调用接口。
再进一步的,用户端文件IO模块用于非缓存文件IO的读写操作,且每次非缓存文件IO读写操作均传递至操作系统文件IO接口模块。
再进一步的,操作系统文件IO接口模块用于接受用户端文件IO模块的操作请求,并透过USB Mass-Storage协议将请求发送给设备端。
再进一步的,设备端USB Mass-Storage Class 驱动模块用于进行USB Mass-Storage Class协议,且用于与上位机的USB通过USB Mass-Storage协议进行数据交互,解析协议,识别到数据读写操作后调用文件IO操作。
再进一步的,设备端文件IO拦截模块用于在实际的文件IO操作之前,判断当前操作的地址、大小以及所包含的数据是否符合自定义协议的要求,当当前操作符合自定义协议要求,则认为当前操作是非标准文件操作,当作私有命令调用设备端协议控制模块进行处理并返回处理结果,不做实际文件IO操作;当当前操作不符合自定义协议要求时,则认为当前操作是标准文件操作,当作非私有命令,直接执行系统IO操作。
再进一步的,设备端协议控制模块用于接收私有命令请求,且接收私有命令请求后,按照命令的类型以及所附带的数据在设备端应用层做出相应的处理并返回处理结果。
再进一步的,该方法包括以下步骤:
S1:首先,通过用户端模块进行登录,提供接口封装;
S2:然后,通过用户端协议控制模块按自定义协议封装调用接口;
S3:再通过用户端文件IO模块进行非缓存文件IO的读写操作,并传递至操作系统文件IO接口模块;
S4:然后,通过操作系统文件IO接口模块接受用户端文件IO模块的操作请求,并透过USB Mass-Storage协议将请求发送给设备端;
S5:再通过设备端USB Mass-Storage Class 驱动模块与上位机的USB通过USBMass-Storage协议进行数据交互, 解析协议, 识别到数据读写操作后调用文件IO操作;
S6:最后,通过设备端文件IO拦截模块在进行文件IO操作之前, 判断当前操作的地址、大小以及所包含的数据是否符合自定义协议的要求;
S7:当当前操作符合自定义协议要求,则认为当前操作是非标准文件操作, 当作私有命令调用设备端协议控制模块进行处理, 按照命令的类型以及所附带的数据在设备端应用层做出相应的处理并返回处理结果,不做实际文件IO操作;当当前操作不符合自定义协议要求时,则认为当前操作是标准文件操作,当作非私有命令,直接执行系统IO操作。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (1)
1. 一种通过USB Mass-Storage协议来实现实时数据传输的方法,包括用户端模块,其特征在于,还包括用户端协议控制模块、用户端文件IO模块、操作系统文件IO接口模块、设备端USB Mass-Storage Class 驱动模块、设备端文件IO拦截模块和设备端协议控制模块,所述用户端模块与用户端协议控制模块连接,所述用户端协议控制模块与用户端文件IO模块连接,所述用户端文件IO模块与操作系统文件IO接口模块连接,所述操作系统文件IO接口模块透过USB Mass-Storage Class协议与设备端USB Mass-Storage Class 驱动模块连接,所述设备端USB Mass-Storage Class 驱动模块与设备端文件IO拦截模块连接,所述设备端文件IO拦截模块与设备端协议控制模块连接;
所述用户端模块用于提供接口封装;
所述用户端协议控制模块用于按自定义协议封装调用接口;
所述用户端文件IO模块用于非缓存文件IO的读写操作,且用于将每次非缓存文件IO读写操作传递至设备端;
所述操作系统文件IO接口模块用于接受用户端文件IO模块的操作请求,并用于将请求发送给设备端;
所述设备端USB Mass-Storage Class 驱动模块用于进行USB Mass-Storage Class协议,且用于与上位机的USB通过USB Mass-Storage协议进行数据交互,解析协议,识别到数据读写操作后调用文件IO操作;
所述设备端文件IO拦截模块用于在实际的文件IO操作之前,判断当前操作的地址、大小以及所包含的数据是否符合自定义协议的要求;
所述设备端协议控制模块用于接收私有命令请求,且接收私有命令请求后,按照命令的类型以及所附带的数据在设备端应用层做出相应的处理并返回处理结果;
所述方法包括以下步骤:
S1:首先,通过用户端模块进行登录,提供接口封装;
S2:然后,通过用户端协议控制模块按自定义协议封装调用接口;
S3:再通过用户端文件IO模块进行非缓存文件IO的读写操作,并传递至设备端;
S4:然后,通过操作系统文件IO接口模块接受用户端文件IO模块的操作请求,并透过USB Mass-Storage协议将请求发送给设备端;
S5:再通过设备端USB Mass-Storage Class 驱动模块与上位机的USB通过USB Mass-Storage协议进行数据交互,解析协议,识别到数据读写操作后调用文件IO操作;
S6:最后,通过设备端文件IO拦截模块在进行文件IO操作之前,判断当前操作的地址、大小以及所包含的数据是否符合自定义协议的要求;
S7:当当前操作符合自定义协议要求,则认为当前操作是非标准文件操作,当作私有命令调用设备端协议控制模块进行处理,按照命令的类型以及所附带的数据在设备端应用层做出相应的处理并返回处理结果,不做实际文件IO操作;当当前操作不符合自定义协议要求时,则认为当前操作是标准文件操作,当作非私有命令,直接执行系统IO操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910202247.4A CN109871349B (zh) | 2019-03-18 | 2019-03-18 | 一种通过USB Mass-Storage协议来实现实时数据传输的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910202247.4A CN109871349B (zh) | 2019-03-18 | 2019-03-18 | 一种通过USB Mass-Storage协议来实现实时数据传输的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109871349A CN109871349A (zh) | 2019-06-11 |
CN109871349B true CN109871349B (zh) | 2023-05-09 |
Family
ID=66920724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910202247.4A Active CN109871349B (zh) | 2019-03-18 | 2019-03-18 | 一种通过USB Mass-Storage协议来实现实时数据传输的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109871349B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860629A (zh) * | 2022-05-16 | 2022-08-05 | 哈尔滨国铁科技集团股份有限公司 | 基于usb虚拟化的计算机设备读取方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981990B (zh) * | 2012-11-09 | 2015-07-22 | 青岛海信移动通信技术股份有限公司 | 采用Android平台终端设备的数据传输方法及装置 |
EP3742324A1 (en) * | 2015-09-15 | 2020-11-25 | Gatekeeper Ltd. | System and method for securely connecting to a peripheral device |
CN206757584U (zh) * | 2017-03-30 | 2017-12-15 | 深圳市顺盟科技有限公司 | 一种增加设备的存储容量的电路 |
CN107239310A (zh) * | 2017-06-08 | 2017-10-10 | 山东超越数控电子有限公司 | 一种嵌入式系统使用多媒体设备的方法 |
-
2019
- 2019-03-18 CN CN201910202247.4A patent/CN109871349B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109871349A (zh) | 2019-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8738815B2 (en) | System and method for virtualizing the peripherals in a terminal device to enable remote management via removable portable media with processing capability | |
US20220043901A1 (en) | Method of data transfer between hosted applications | |
CN103246586B (zh) | android平台上利用USB存储设备进行ADB调试的方法 | |
CN107256188B (zh) | 安卓设备的控制方法、装置、终端及存储介质 | |
CN111324561B (zh) | 一种USB Type C扩展坞 | |
CN1501234A (zh) | 一种向移动存储装置发送命令和数据的方法 | |
CN109871349B (zh) | 一种通过USB Mass-Storage协议来实现实时数据传输的方法 | |
CN111782319A (zh) | 在云桌面挂载USBKey实现共享访问的系统及方法 | |
CN104104705A (zh) | 分布式存储系统的接入方法和设备 | |
CN109992489B (zh) | 一种用于监控用户设备中应用的执行行为的方法与设备 | |
CN113891087A (zh) | 一种基于Linux系统实现虚拟化硬件编解码加速的方法及系统 | |
CN109992556A (zh) | 一种i2c驱动方法和装置 | |
CN102012874B (zh) | 带有资源管理器的usb存储设备 | |
CN102254121B (zh) | 数据处理方法、装置及系统 | |
EP2824953A1 (en) | User terminal for password-based authentication, and password-based trading terminal, system, and method | |
CN102968366A (zh) | 一种蓝光播放器日志本地存储方法及装置 | |
CN103544079B (zh) | 基于可编程控制器实现闪存芯片数据恢复的系统及方法 | |
CN105718802A (zh) | 保护Android MTP设备数据安全的方法及装置 | |
CN103294493A (zh) | 一种外围设备的初始化方法、初始化装置及照相机 | |
CN103379104A (zh) | 一种远程数据共享方法及装置 | |
CN110868697B (zh) | 车机与多个移动设备的互联方法、设备及存储介质 | |
US7831741B2 (en) | Indexing device and method for data storage system | |
CN105872096B (zh) | 一种外部设备的远端共享系统 | |
CN108108612A (zh) | 防自动点击的方法和装置 | |
CN112559203A (zh) | 一种实现业务层与so库进行数据交换的方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |