利索能及
我要发布
收藏
专利号: 2019109706925
申请人: 重庆邮电大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-11-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于WindowsUSBMassStorage类的信令、数据传输方法,其特征在于:在USB设备中设置命令交互区A和数据交互区B,上位机发送给USB设备的所有命令都使用标准USB写命令数据包发送到A区,而将实际的命令作为数据封装到标准USB写命令数据包中;USB设备将接收到的包含命令的数据包写入A区指定地址,USB设备定时查询A区数据,如果查询到A区中存在命令,解析命令并执行,完成后将A区中的命令改写为命令响应;USB设备上电枚举成功后,上位机读取A区中的数据,如果是响应包,发送新命令,如果不是响应包,等待USB设备执行A区中的命令;

在上位机中设置上位机功能支持模块以实现以下功能:

(1)界面显示、用户操作响应单元:对用户执行的各种操作进行响应,及对命令执行进度、结果进行显示,同时也为各种设置选项提供输入接口;

(2)用户操作命令或命令集转换单元:对用户下发的各种操作,当单个命令无法完成整个功能时,转换为USB设备支持的对应命令或命令集,同时对用户的操作对象进行拆包、分段预处理操作;

(3)命令包、数据包打包组装单元:以规定方式将命令执行码、命令执行起始地址、命令执行长度及数据文件分别打包成有效的命令包、数据包;

(4)响应包及响应数据解析处理单元:将获取到的响应信息按规定方式拆包、解析,判断命令执行的响应结果,提取响应数据,并在需要的情况下对响应数据重新组包、恢复成超大数据包传回给上位机;

(5)命令数据缓存及执行结果记录单元:记录当前USB设备的USBID号及其在命令执行时缓存本条命令的命令包、数据包信息,且随时记录该命令的执行情况,以便当本条命令执行失败时,上位机能够重新下发该命令或完成上次操作未完成的响应数据获取工作;

(6)A/B区数据读写单元:完成对指定偏移地址的A/B区数据的读写功能;

(7)命令执行流程维护单元:对以上单元的功能执行情况进行判断维护,判断当前命令是否执行失败,是否重新执行当前命令,是否需要提示用户干预操作以及通过USBID判断当前USB设备是否有上次未完成的操作;

在USB设备中设置下位机功能支持模块以实现以下功能:

(1)A/B区数据读写单元:完成对指定偏移地址的A/B区数据的读写功能,以固定时间间隔轮询A区数据,以便随时获取上位机下发的命令;

(2)命令包、数据包解析及有效性判断单元:以规定方式将命令包、数据包进行解析,并判断其有效性及是否支持该命令;

(3)命令执行单元:将命令包里的命令执行码转换为对应的下位机一系列操作过程,并使用数据包里的数据来具体执行该操作;

(4)响应包及响应数据组装单元:将由命令执行单元执行后的结果以执行响应码及响应数据的方式分别打包成命令执行响应包及响应数据包以便向A/B区写入;

上位机在下发新命令之前,会先通过USBID号判断当前USB设备是否有上次未执行完的操作,A.如果没有,则进行以下操作:

(1)分别根据用户的操作情况生成命令执行码及对应数据,再按照规定组装成命令包、数据包并经过上位机缓存记录后分别写入对应的A/B区,即完成本条命令的下发过程;

(2)在命令下发后,上位机不停地查询A区数据以判断是否有下位机执行完成的响应包写回,在规定时间内获取响应包及响应数据后,上位机进行解包及命令执行结果判断工作,完成本条命令交互流程,上位机进入下一条命令的下发交互流程;

(3)如果以上任一流程执行失败或下位机写回响应包超时,该条命令将会标记为执行失败,根据设置情况重新下发命令、暂停命令执行流程或要求用户干预;

B.如果当前USB设备的上次命令未执行完,上位机读取下位机A区的数据,并判断其是否为上次命令的正常响应包,如果是,就将该响应包及响应数据获取回来,以便完成上次遗留的命令交互过程,然后再进行新命令的下发操作;如果该USB设备的A区不是响应包而是命令包,说明上次命令的响应包还未被下位机写入,在判断A/B区数据与缓存数据一致的情况下,上位机在等待下位机将该命令执行完并写入响应包、响应数据包后,再获取响应数据,以便完成上次未完成的命令,然后再发新命令,如果上位机发现A/B区数据与缓存数据不一致,将重写A/B区以便上次的命令能够正确执行,再进行上述操作;

USB设备以一定时间间隔轮询A、B区的信息,以便及时判断上位机是否有新命令下发,在获取到上位机写入的命令包后,在确认命令包及数据包有效的情况下就会加载数据执行该命令执行码对应操作,并把执行结果,即响应包及响应数据写入指定地址中,从而完整一个命令码的执行过程;

如果USB设备检查到A/B区数据为不合法的命令/数据包,包括为上次命令执行后写入的正常响应包、或被破坏的命令/数据包,则不执行任何操作,等待一定时间再查询A/B区数据,以便让上位机读取响应数据或在上位机重新下发正确的命令、数据包后再继续命令执行过程。

2.根据权利要求1所述的基于WindowsUSBMassStorage类的信令、数据传输方法,其特征在于:USB设备的A区和B区的设置包括基本型和扩展模式,其中基本型的A区由USB设备0地址偏移长度X设置,B区由USB设备0地址偏移长度Y设置,扩展模式的A区和B区合并,均由USB设备0地址偏移长度X设置。

3.根据权利要求1所述的基于WindowsUSBMassStorage类的信令、数据传输方法,其特征在于:上位机给USB设备的命令写入A区的命令包格式依次为命令头有效标记—保留区间

1—命令执行码—保留区间2—命令执行起始地址—保留区间3—命令执行长度—保留区间

4—命令尾有效标记;

当命令执行完成后下位机写入A区的响应包格式依次为响应头有效标记—保留区间

1—命令执行响应码—保留区间2—响应起始地址—保留区间3—响应长度—保留区间4—响应尾有效标记;

各个“保留区间”作为数据保护及今后功能扩展使用,数据区格式依次为数据区有效标记1—数据—数据区有效标记2;

还包括根据上述方式扩展而来的衍生型:

多个命令包组合写入方式:命令头有效标记‑保留区1‑命令执行码1‑命令执行起始地址1—命令执行长度1—保留区2—命令执行码2‑命令执行起始地址2—命令执行长度

2—……—命令执行码n‑命令执行起始地址n—命令执行长度n—保留区n—命令尾有效标记;

多个响应包组合写入方式:响应头有效标记‑保留区1‑命令执行响应码1‑响应起始地址1—响应长度1—保留区2—命令执行响应码2‑响应起始地址2—响应长度2—……—命令执行响应码n—响应起始地址n—响应长度n—保留区n—响应尾有效标记;

对应多个命令/响应包的数据区格式:数据区有效标记1—命令执行码1数据部分—命令执行码2数据部分—……—命令执行码n数据部分—数据区有效标记2。