通用串行总线控制装置、系统、方法、设备、介质及产品与流程
- 国知局
- 2024-07-31 23:14:14
本发明涉及计算机,尤其涉及一种通用串行总线控制装置、系统、方法、设备、介质及产品。
背景技术:
1、基板管理控制器(baseboard management controller,bmc)通过键盘视频鼠标(keyboard, video, mouse,kvm)功能,可以虚拟出鼠标键盘、网卡和虚拟媒体设备等,从而实现对服务器主机的远程操控,这一功能极大地提升了服务器的远程管理体验,提高了运维效率。
2、而监控功能的实现与bmc的通用串行总线控制器(universal serial bus devicecontroller,udc)模块紧密相关。在传统设计中,通常需要在bmc内部,针对不同类型的usb设备配置独立的udc模块来进行usb设备的控制,以确保各usb设备与服务器主机之间的通信互不干扰。
3、但是,随着数据中心对usb设备功能需求的增加,若继续采用为每一usb设备配置独立的udc模块的方式实现usb设备的控制,则每增加一种类型的usb设备功能,都需要增加额外的udc硬件资源来支持,由此导致bmc管理的硬件资源成本显著升高。
技术实现思路
1、本发明提供一种通用串行总线控制装置、系统、方法、设备、介质及产品,用以解决现有技术中为每一usb设备配置独立的udc模块的方式实现usb设备的控制,导致bmc管理的硬件资源成本显著升高的缺陷,实现低成本、便捷地对多usb设备进行统一控制。
2、本发明提供一种通用串行总线控制装置,所述装置与服务器主机通信连接,所述装置包括通用串行总线设备控制器、通用串行总线设备集线器驱动单元、多个通用串行总线设备驱动单元;
3、所述通用串行总线设备控制器包括所述通用串行总线设备集线器驱动单元和多个所述通用串行总线设备驱动单元之间共享的设备地址寄存器和控制端口;
4、所述通用串行总线设备控制器,用于根据所述通用串行总线设备集线器驱动单元对应的地址切换时间片、各所述通用串行总线设备驱动单元对应的地址切换时间片,对所述设备地址寄存器中的设备地址进行切换,并根据切换后的设备地址和所述控制端口,控制所述通用串行总线设备集线器驱动单元和各所述通用串行总线设备驱动单元,与所述服务器主机进行交互。
5、根据本发明提供的一种通用串行总线控制装置,所述通用串行总线设备控制器还包括定时器;
6、所述通用串行总线设备控制器,具体用于:
7、对于当前次交互,根据所述定时器的当前运行状态,判断所述通用串行总线设备集线器驱动单元对应的地址切换时间片、各所述通用串行总线设备驱动单元对应的地址切换时间片是否被触发;
8、在所述通用串行总线设备集线器驱动单元和多个所述通用串行总线设备驱动单元中,确定地址切换时间片被触发的当前待控制驱动单元;
9、将所述设备地址寄存器中的设备地址切换为所述当前待控制驱动单元的设备地址,得到目标设备地址;
10、根据所述目标设备地址和所述控制端口,控制所述当前待控制驱动单元与所述服务器主机进行交互;
11、继续根据所述定时器的下一运行状态,迭代控制下一待控制驱动单元与所述服务器主机进行交互。
12、根据本发明提供的一种通用串行总线控制装置,所述通用串行总线设备控制器,还用于:
13、根据所述定时器的当前运行状态,判断所述定时器是否处于超时状态;
14、在判断获知所述定时器处于超时状态的情况下,将所述定时器所属的循环周期,分别与所述通用串行总线设备集线器驱动单元对应的地址切换时间片,以及各所述通用串行总线设备驱动单元对应的地址切换时间片进行匹配;
15、根据匹配结果,判断所述通用串行总线设备集线器驱动单元对应的地址切换时间片、各所述通用串行总线设备驱动单元对应的地址切换时间片是否被触发。
16、根据本发明提供的一种通用串行总线控制装置,所述通用串行总线设备控制器,还用于:
17、根据所述设备地址寄存器的当前访问状态,确定所述当前待控制驱动单元的当前访问权限信息;
18、在根据所述当前待控制驱动单元的当前访问权限信息,判断获知所述当前待控制驱动单元具备访问所述设备地址寄存器的权限的情况下,将所述设备地址寄存器中的设备地址切换为所述当前待控制驱动单元的设备地址,并为所述设备地址寄存器进行加锁操作。
19、根据本发明提供的一种通用串行总线控制装置,所述通用串行总线设备控制器,还用于:
20、在判断获知所述设备地址寄存器加锁操作完成的情况下,接收所述服务器主机发起的当前任务处理请求;
21、根据所述目标设备地址,将所述当前任务处理请求传输至所述当前待控制驱动单元;
22、将所述当前待控制驱动单元根据所述当前任务处理请求返回的第一响应信息传输至所述服务器主机;
23、在判断获知所述服务器主机接收到所述第一响应信息的情况下,解除对所述设备地址寄存器的加锁操作。
24、根据本发明提供的一种通用串行总线控制装置,所述通用串行总线设备控制器,还用于:
25、根据所述当前任务处理请求,获取当前请求设备地址;
26、将所述当前请求设备地址与所述目标设备地址进行匹配;
27、在匹配获知所述当前请求设备地址与所述目标设备地址一致的情况下,根据所述目标设备地址,将所述当前任务处理请求传输至所述当前待控制驱动单元。
28、根据本发明提供的一种通用串行总线控制装置,所述通用串行总线设备控制器,还用于:
29、在匹配获知所述当前请求设备地址与所述目标设备地址不一致的情况下,将所述当前任务处理请求存储至缓存队列;
30、在判断获知所述设备地址寄存器中的设备地址切换为下一待控制驱动单元的设备地址的情况下,继续将所述当前请求设备地址与所述设备地址寄存器中切换得到的下一待控制驱动单元的设备地址进行匹配;
31、在匹配获知所述当前请求设备地址与所述下一待控制驱动单元的设备地址匹配的情况下,将所述当前任务处理请求从所述缓存队列中取出后传输至所述下一待控制驱动单元。
32、根据本发明提供的一种通用串行总线控制装置,所述通用串行总线设备集线器驱动单元,用于:
33、接收所述服务器主机发送的第一枚举请求;所述第一枚举请求用于对所述通用串行总线设备集线器驱动单元进行枚举;
34、根据所述第一枚举请求,向所述服务器主机返回第二响应信息;
35、接收所述服务器主机根据所述第二响应信息,为所述通用串行总线设备集线器驱动单元分配的设备地址;
36、将所述设备地址寄存器修改为所述通用串行总线设备集线器驱动单元的设备地址;
37、接收所述服务器主机发送的通用串行总线设备驱动单元的状态获取命令;
38、响应于所述状态获取命令,根据所述通用串行总线设备集线器驱动单元的设备地址,向所述服务器主机报告各所述通用串行总线设备驱动单元的设备状态;
39、接收所述服务器主机根据各所述通用串行总线设备驱动单元的设备状态,为各所述通用串行总线设备驱动单元枚举分配的设备地址,并将各所述通用串行总线设备驱动单元的设备地址传输至各所述通用串行总线设备驱动单元。
40、根据本发明提供的一种通用串行总线控制装置,所述通用串行总线设备集线器驱动单元,还用于:
41、对于当前次端口设备枚举,将所述设备地址寄存器修改为所述通用串行总线设备集线器驱动单元的设备地址;
42、接收所述服务器主机发送的当前通用串行总线设备驱动单元的当前状态获取命令;
43、响应于所述当前状态获取命令,根据所述通用串行总线设备集线器驱动单元的设备地址,将所述当前通用串行总线设备驱动单元的目标设备状态发送至所述服务器主机;
44、对所述设备地址寄存器进行清除,并根据所述目标设备状态,接收所述服务器主机根据所述目标设备状态发送的所述当前通用串行总线设备驱动单元的第二枚举请求;
45、将所述当前通用串行总线设备驱动单元根据所述第二枚举请求返回的第三响应信息发送至所述服务器主机;
46、将所述服务器主机根据所述第三响应信息为所述当前通用串行总线设备驱动单元分配的设备地址传输至所述当前通用串行总线设备驱动单元;
47、返回至将所述设备地址寄存器修改为所述通用串行总线设备集线器驱动单元的设备地址,迭代执行下一次端口设备枚举,直到所有所述通用串行总线设备驱动单元均枚举完成。
48、根据本发明提供的一种通用串行总线控制装置,所述第二响应信息包括所述通用串行总线设备集线器驱动单元的设备类型和端口编号;
49、所述通用串行总线设备集线器驱动单元的设备地址是由所述服务器主机根据所述通用串行总线设备集线器驱动单元的设备类型和端口编号进行分配的。
50、根据本发明提供的一种通用串行总线控制装置,所述第二响应信息还包括各所述通用串行总线设备驱动单元的查询时间间隔;
51、所述通用串行总线设备驱动单元的状态获取命令是根据所述查询时间间隔周期性发送的。
52、根据本发明提供的一种通用串行总线控制装置,对于所述通用串行总线设备集线器驱动单元和多个所述通用串行总线设备驱动单元中的每一驱动单元,所述驱动单元配置有至少一个端口编号;
53、所述驱动单元,用于:
54、在接收所述服务器主机发起的任务处理请求的情况下,根据所述任务处理请求对应的任务类型和数据传输模式,在至少一个所述端口编号中,获取目标端口编号;
55、根据所述目标端口编号对应的任务操作模式,对所述任务处理请求进行处理,并将任务处理结果返回至所述服务器主机。
56、根据本发明提供的一种通用串行总线控制装置,所述驱动单元的端口编号是根据所述驱动单元的设备类型进行配置的。
57、根据本发明提供的一种通用串行总线控制装置,任一驱动单元的输入端的端口编号,与除所述任一驱动单元之外的任一其他驱动单元的输出端口的端口编号相同。
58、根据本发明提供的一种通用串行总线控制装置,多个所述通用串行总线设备驱动单元包括人机接口驱动单元、网络控制器驱动单元和存储器驱动单元;
59、所述人机接口驱动单元用于驱动虚拟人机接口设备;
60、所述网络控制器驱动单元用于驱动虚拟网络设备;
61、所述存储器驱动单元用于驱动虚拟存储器。
62、本发明还提供一种通用串行总线控制系统,包括如上述任一项所述通用串行总线控制装置和服务器主机;
63、所述通用串行总线控制装置与所述服务器主机之间通信连接。
64、本发明还提供一种通用串行总线控制方法,所述方法包括:
65、根据通用串行总线设备集线器驱动单元对应的地址切换时间片、各通用串行总线设备驱动单元对应的地址切换时间片,对设备地址寄存器中的设备地址进行切换;
66、根据切换后的设备地址和控制端口,控制所述通用串行总线设备集线器驱动单元和各所述通用串行总线设备驱动单元,与服务器主机进行交互;
67、其中,所述设备地址寄存器为通用串行总线设备控制器中,所述通用串行总线设备集线器驱动单元和多个所述通用串行总线设备驱动单元之间共享的寄存器,所述控制端口为所述通用串行总线设备控制器中,所述通用串行总线设备集线器驱动单元和多个所述通用串行总线设备驱动单元之间共享的端口。
68、根据本发明提供的一种通用串行总线控制方法,所述根据通用串行总线设备集线器驱动单元对应的地址切换时间片、各通用串行总线设备驱动单元对应的地址切换时间片,对设备地址寄存器中的设备地址进行切换,包括:
69、对于当前次交互,根据定时器的当前运行状态,判断所述通用串行总线设备集线器驱动单元对应的地址切换时间片、各所述通用串行总线设备驱动单元对应的地址切换时间片是否被触发;
70、在所述通用串行总线设备集线器驱动单元和多个所述通用串行总线设备驱动单元中,确定地址切换时间片被触发的当前待控制驱动单元;
71、将所述设备地址寄存器中的设备地址切换为所述当前待控制驱动单元的设备地址。
72、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述通用串行总线控制方法。
73、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述通用串行总线控制方法。
74、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述通用串行总线控制方法。
75、本发明提供的通用串行总线控制装置、系统、方法、设备、介质及产品,通过在bmc内部配置通用串行总线设备控制器、通用串行总线设备集线器驱动单元、以及实现不同类型的虚拟usb设备功能的多个通用串行总线设备驱动单元,并由通用串行总线设备控制器,依据通用串行总线设备集线器驱动单元对应的地址切换时间片、各通用串行总线设备驱动单元对应的地址切换时间片,对通用串行总线设备控制器内部配置的设备地址寄存器进行实时切换,以依据切换后的设备地址和通用串行总线设备控制器内部配置的被多驱动单元复用的控制端口,控制不同通用串行总线设备驱动单元在不同的时间片内与服务器主机进行交互,可有效避免为每个usb设备分配独立的硬件资源,即使只有一个udc模块的情况下,也能实现多usb设备的统一控制,减少了一对一配置udc模块所需消耗的硬件资源成本以及提高了资源利用的灵活性,由此实现了低成本、便捷地对多usb设备进行统一控制。
本文地址:https://www.jishuxx.com/zhuanli/20240730/196579.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。