一种基于FPGA实现高集成度的KVM切换系统及方法与流程

文档序号:31453603发布日期:2022-09-07 13:57阅读:234来源:国知局
一种基于FPGA实现高集成度的KVM切换系统及方法与流程
一种基于fpga实现高集成度的kvm切换系统及方法
技术领域
1.本发明涉及电子设备制造领域,具体涉及一种基于fpga实现高集成度的kvm切换系统及方法。


背景技术:

2.kvm(keyboard、video、mouse的缩写)又名多计算机切换,是一种计算机管理设备,kvm切换器能够让系统管理员通过一组键盘、鼠标、显示器控制多台服务器或电脑主机,其核心思想是:通过恰当的键盘、鼠标和显示器的配置,实现系统和网络的高可管理性,提高管理人员的工作效率、节约机房面积,降低网络服务器系统的总体成本。
3.kvm切换器通常应用于一位或几位管理员管理多台计算机的环境,一位使用者必须操作2台以上的计算机。在此种环境下kvm切换器的使用使得键盘、显示器和鼠标的数量大幅度降低,大大提高了机房空间利用率,减少了机房现场维护人员需要操作的计算机数量,同时也减少了机房内部的维护设备数量。kvm通常的显示器接口为vga,键盘鼠标接口最初为ps/2。随着计算机设备的不断进步和升级,当前的kvm显示器接口已升级为hdmi接口,鼠标键盘接口也升级为usb,整体方案逐渐小型化、集成化,同时具备更高的带宽稳定性与即插即用的特性,使得当前kvm切换器不仅比以往方案使用更加便利,且应用范围已经不仅限于机房,还延伸到了个人电脑设备市场。
4.专利201510087244.2公开了一种基于fpga实现kvm方法,解决了传统kvm方法中芯片数量多,电路布局不方便等问题;专利201821756256.5公开了一种kvm切换器及kvm矩阵管理系统,通过adn4604异步数字交叉开关实现了视频信号的切换,但这两种方法对于kvm切换过程中影响视觉效果的闪烁现象并没有提出解决方法;专利201710581735.1采用fpga对待切换的图像数据进行解码、存储,根据信息是否稳定决定显示待切换图像还是继续显示当前图像,解决了切换过程中的闪烁现象和黑屏现象,却不能保证每次的切换成功;如果切换之后仍然显示的只是当前图像,那么其实际意义不属于切换,也就达不到切换的本质;而且该方案需要额外的显示编码器芯片,没有将显示编码集成进fpga中,还存在继续优化集成的空间。


技术实现要素:

5.发明目的:本发明目的是提供一种基于fpga实现高集成度的kvm切换系统及方法,解决了现有的kvm切换过程中的闪烁现象和黑屏现象时,却不能保证每次图像切换成功的问题。本发明不仅能够避免切换过程中图像的闪烁现象和黑屏现象,还能保证每次图像切换成功;另外本发明还能实现usb外设的切换和开关机的切换,使得本发明操作使用更加简便,成本更低。
6.技术方案:本发明一种基于fpga实现高集成度的kvm切换系统,该系统包括切换控制模块、指令接收模块、图像帧缓存模块、显示编码模块、usb切换模块、开关机切换模块和解码模块;切换控制模块分别与指令接收模块、图像帧缓存模块、usb切换模块、开关机切换
模块和解码模块相连接,图像帧缓存模块与显示编码模块相连接;所述切换控制模块、指令接收模块、图像帧缓存模块、显示编码模块均集成在fpga芯片内部;
7.所述指令接收模块,用于接收上位机的控制指令,并将控制指令发送给切换控制模块;
8.所述切换控制模块,用于接收来自指令接收模块的控制指令,并根据控制指令执行开关机的切换、图像的切换和usb外设的切换中一种或多种切换;
9.所述解码模块,用于实时将hdmi图像数据转换为待显示的帧图像数据;解码模块设有多个,每个解码模块将对应的hdmi图像数据转换为待显示的帧图像数据,等待图像的切换;
10.所述图像帧缓存模块,用于将待显示的帧图像数据进行缓存处理,并发送给显示编码模块;
11.所述显示编码模块,用于将接收来自图像帧缓存模块的待显示帧图像数据转换为待显示的hdmi图像数据,并输出至显示设备;
12.所述usb切换模块,用于根据指令执行usb外设的切换;
13.所述开关机切换模块,用于根据指令执行开关机的切换。
14.进一步的,所述图像帧缓存模块包括ddr缓存单元、ddr控制单元、写入fifo单元、读取fifo单元及读写状态单元;
15.所述读写状态单元根据解码模块产生的帧图像输入时序对写入fifo单元进行写入控制,将帧图像数据写入至写入fifo单元进行缓存;当写入fifo单元中的帧图像数据值到达预设的值时,读写状态单元将控制ddr控制单元从写入fifo单元中读取帧图像数据,并将该数据写入至ddr缓存单元缓存;同时,读写状态单元会控制ddr控制单元从ddr缓存单元中读取缓存的帧图像数据写入到读取fifo单元中,然后读写状态单元根据帧图像输出时序读取读取fifo单元中帧图像数据输出到显示编码模块。
16.进一步的,所述ddr缓存单元设置有第一至第三bank逻辑空间,每个bank逻辑空间均缓存一帧的待显示的帧图像数据。
17.进一步的,所述ddr缓存单元的第一至第三bank逻辑空间写入与读取帧图像数据的顺序为第一bank逻辑空间到第三bank逻辑空间循环往复进行,其具体工作流程为:
18.(1)写入的帧图像数据写入至第一bank逻辑空间时,读取缓存的帧图像数据从第三bank逻辑空间读取;
19.(2)写入的帧图像数据写入至第二bank逻辑空间时,读取缓存的帧图像数据从第一bank逻辑空间读取;
20.(3)写入的帧图像数据写入至第三bank逻辑空间时,读取缓存的帧图像数据从第二bank逻辑空间读取;
21.通过以上流程不断循环,ddr缓存单元在写入帧图像数据的同时也在读取已写入好的帧图像数据,读取的位置为当前写入帧图像数据的前一个bank逻辑空间,保证了帧图像数据的写入与读出互不干扰。
22.进一步的,当写入的帧图像数据写入至bank逻辑空间时,切换控制模块执行图像切换,其具体操作如下:
23.执行图像切换后,当前写入的bank逻辑空间中部分帧图像数据为切换前的帧图像
数据,部分帧图像数据为切换后的帧图像数据,此时读取缓存的帧图像数据为上一bank逻辑空间中的切换前的帧图像数据;
24.接着,下一bank逻辑空间写入切换后的帧图像数据,此时读取的bank逻辑空间中,由于部分帧图像数据为切换前的帧图像数据,部分帧图像数据为切换后的帧图像数据,则该bank逻辑空间中的一帧图像数据读取失败,但一帧图像数据的显示时长为毫秒级,人眼无法察觉,从而实现无缝切换;之后的bank逻辑空间写入与读取帧图像数据的工作流程与上述的工作流程相同。
25.进一步的,所述显示编码模块包括时序控制器和hdmi显示编码器;
26.所述时序控制器用于产生帧图像输出时序,并将帧图像输出时序发给hdmi显示编码器和图像帧缓存模块,图像帧缓存模块根据帧图像输出时序从图像帧缓存模块中读取帧图像数据发送至hdmi显示编码器;
27.所述hdmi显示编码器根据帧图像输出时序,对输入的帧图像数据进行数据转换为hdmi图像数据,并将hdmi图像数据输出至显示设备。
28.本发明还包括一种基于fpga实现高集成度的kvm切换方法,采用如上述权利要求所述的系统,包括以下步骤:
29.(1)指令接收模块接收上位机的控制指令,并将控制指令发送给切换控制模块;
30.(2)切换控制模块根据控制指令执行开关机的切换、图像的切换和usb外设的切换中一种或多种切换;
31.(3)切换完成后,结束。
32.进一步的,执行所述开关机的切换具体过程为:
33.当切换控制模块接收到开关机的切换指令后,将信号传输至开关机切换模块,开关机切换模块执行开关机的切换。
34.进一步的,执行所述usb外设的切换具体过程为:
35.当切换控制模块接收到usb外设的切换指令后,将信号传输至usb切换模块,usb切换模块执行usb外设的切换。
36.进一步的,执行所述图像的切换具体过程为:
37.1)切换控制模块接收到图像的切换指令后,由于解码模块实时将hdmi图像数据转换为待显示的帧图像数据,切换控制模块直接将解码模块中待显示的帧图像数据发送至图像帧缓存模块;
38.2)图像帧缓存模块的读写状态单元根据解码模块产生的帧图像输入时序将帧图像数据写入至图像帧缓存模块的写入fifo单元进行缓存;当图像帧缓存模块的写入fifo单元内的帧图像数据值到达预设的值时,图像帧缓存模块的读写状态单元将控制图像帧缓存模块的ddr控制单元从图像帧缓存模块的写入fifo单元中读取帧图像数据,并将该数据写入至图像帧缓存模块的ddr缓存单元缓存;同时,图像帧缓存模块的读写状态单元会控制图像帧缓存模块的ddr控制单元从图像帧缓存模块的ddr缓存单元中读取缓存的帧图像数据写入到图像帧缓存模块的读取fifo单元中,然后图像帧缓存模块的读写状态单元根据帧图像输出时序读取图像帧缓存模块的读取fifo单元中帧图像数据输出到显示编码模块;
39.其中,所述ddr缓存单元设置有第一至第三bank逻辑空间,每个bank逻辑空间均缓存一帧的待显示的帧图像数据;所述ddr缓存单元的第一至第三bank逻辑空间写入与读取
帧图像数据的顺序为第一bank逻辑空间到第三bank逻辑空间循环往复进行,其具体工作流程为:
40.s1、写入的帧图像数据写入至第一bank逻辑空间时,读取缓存的帧图像数据从第三bank逻辑空间读取;
41.s2、写入的帧图像数据写入至第二bank逻辑空间时,读取缓存的帧图像数据从第一bank逻辑空间读取;
42.s3、写入的帧图像数据写入至第三bank逻辑空间时,读取缓存的帧图像数据从第二bank逻辑空间读取;
43.当写入的帧图像数据写入至bank逻辑空间时,切换控制模块执行图像切换,其具体操作如下:
44.执行图像切换后,当前写入的bank逻辑空间中部分帧图像数据为切换前的帧图像数据,部分帧图像数据为切换后的帧图像数据,此时读取缓存的帧图像数据为上一bank逻辑空间中的切换前的帧图像数据;
45.接着,下一bank逻辑空间写入切换后的帧图像数据,此时读取的bank逻辑空间中,由于部分帧图像数据为切换前的帧图像数据,部分帧图像数据为切换后的帧图像数据,则该bank逻辑空间中的一帧图像数据读取失败,但一帧图像数据的显示时长为毫秒级,人眼无法察觉,从而实现无缝切换;之后的bank逻辑空间写入与读取帧图像数据的工作流程与上述的工作流程相同;
46.3)显示编码模块的hdmi显示编码器根据帧图像输出时序,对输入的帧图像数据进行数据转换为hdmi图像数据,并将hdmi图像数据输出至显示设备。
47.本发明的有益效果:
48.(1)本发明的切换控制模块、指令接收模块、图像帧缓存模块、显示编码模块均集成在fpga芯片内部,集成度高,节约空间及成本,同时运行速度快;
49.(2)解码模块能够实时将hdmi图像数据转换为待显示的帧图像数据,最大限度减少帧图像输入延迟;
50.(3)显示编码模块按照输出时序运行,从图像帧缓存模块中进行不间断读取缓存的帧图像数据转换为hdmi图像数据,并将hdmi图像数据输出至显示设备,保证了无缝切换;
51.(4)本发明还能实现usb外设的切换和开关机的切换,操作使用更加简便。
附图说明
52.图1为本发明系统的结构示意图;
53.图2为图像帧缓存模块的结构示意图;
54.图3为ddr缓存单元的工作流程示意图;
55.图4为显示编码模块的结构示意图;
56.图5为本发明方法流程图。
具体实施方式
57.下面结合附图和实施例对本发明做进一步描述:
58.如图1所示,本发明提出了一种基于fpga实现高集成度的kvm切换系统,该系统包
括切换控制模块1、指令接收模块2、图像帧缓存模块3、显示编码模块4、usb切换模块5、开关机切换模块6和解码模块7;切换控制模块1分别与指令接收模块2、图像帧缓存模块3、usb切换模块5、开关机切换模块6和解码模块7相连接,图像帧缓存模块3与显示编码模块4相连接;切换控制模块1、指令接收模块2、图像帧缓存模块3、显示编码模块4均集成在fpga芯片内部,fpga集成度高,节约空间及成本,同时运行速度快;
59.指令接收模块2,用于接收上位机的控制指令,并将控制指令发送给切换控制模块1;
60.切换控制模块1,用于接收来自指令接收模块2的控制指令,并根据控制指令执行开关机的切换、图像的切换和usb外设的切换中一种或多种切换;
61.解码模块7,用于实时将hdmi图像数据转换为待显示的帧图像数据,最大限度减少帧图像输入延迟;该模块始终处于工作状态,将hdmi图像数据转换为待显示的帧图像数据,当然转换的时候还产生输入时序,这属于常见的现有技术,故不再重复说明;解码模块7设有多个,每个解码模块7将对应的hdmi图像数据转换为待显示的帧图像数据,等待图像的切换;当切换控制模块1收到哪个图像的切换指令,则允许哪个解码模块7转换的数据进入图像帧缓存模块3;
62.图像帧缓存模块3,基于三级ddr缓存控制,ddr可采用ddr3,用于将待显示的帧图像数据进行缓存处理,并发送给显示编码模块4;
63.显示编码模块4,用于将接收来自图像帧缓存模块3的待显示帧图像数据转换为待显示的hdmi图像数据,并输出至显示设备;
64.usb切换模块5,用于根据指令执行usb外设的切换;
65.开关机切换模块6,用于根据指令执行开关机的切换。
66.如图2所示,图像帧缓存模块3将待显示的帧图像数据进行缓存处理,具体结构包括ddr缓存单元31、ddr控制单元32、写入fifo单元33、读取fifo单元34及读写状态单元35;
67.切换控制模块1接收到图像的切换指令后,才允许解码模块7转换的数据进入图像帧缓存模块3,然后图像帧缓存模块3的读写状态单元35根据解码模块7产生的帧图像输入时序对写入fifo单元33进行写入控制,将帧图像数据写入至写入fifo单元33进行缓存;当写入fifo单元33中的帧图像数据值到达预设的值时,读写状态单元35将控制ddr控制单元32从写入fifo单元33中读取帧图像数据,并将该数据写入至ddr缓存单元31缓存;同时,读写状态单元35会控制ddr控制单元32从ddr缓存单元31中读取缓存的帧图像数据写入到读取fifo单元34中,然后读写状态单元35根据帧图像输出时序读取读取fifo单元34中帧图像数据输出到显示编码模块4。
68.图像帧缓存模块3中的帧图像数据写入至ddr缓存单元31缓存,以及从ddr缓存单元31中读取缓存的帧图像数据输出到显示编码模块4,该操作的过程不再一个bank逻辑空间中;而且从写入fifo单元33中读取帧图像数据,并将该数据写入至ddr缓存单元31缓存,需进行多次才能将一个bank逻辑空间缓存满。如图3所示,ddr缓存单元31设置有第一至第三bank逻辑空间,每个bank逻辑空间均缓存一帧的待显示的帧图像数据;
69.ddr缓存单元31的第一至第三bank逻辑空间写入与读取帧图像数据的顺序为第一bank逻辑空间到第三bank逻辑空间循环往复进行,其具体工作流程为:
70.(1)写入的帧图像数据写入至第一bank逻辑空间时,读取缓存的帧图像数据从第
三bank逻辑空间读取;
71.(2)写入的帧图像数据写入至第二bank逻辑空间时,读取缓存的帧图像数据从第一bank逻辑空间读取;
72.(3)写入的帧图像数据写入至第三bank逻辑空间时,读取缓存的帧图像数据从第二bank逻辑空间读取;
73.通过以上流程不断循环,ddr缓存单元31在写入帧图像数据的同时也在读取已写入好的帧图像数据,读取的位置为当前写入帧图像数据的前一个bank逻辑空间,保证了帧图像数据的写入与读出互不干扰。第一次运行时,帧图像数据写入将第一bank逻辑空间缓存满之后,写入的帧图像数据开始写入至第二bank逻辑空间,读取缓存的帧图像数据从第一bank逻辑空间读取,后面操作按上述工作流程即可,保证了帧图像数据的写入与读出互不干扰。
74.当写入的帧图像数据写入至bank逻辑空间时,切换控制模块1执行图像切换,其具体操作如下:
75.执行图像切换后,当前写入的bank逻辑空间中部分帧图像数据为切换前的帧图像数据,部分帧图像数据为切换后的帧图像数据,此时读取缓存的帧图像数据为上一bank逻辑空间中的切换前的帧图像数据;
76.接着,下一bank逻辑空间写入切换后的帧图像数据,此时读取的bank逻辑空间中,由于部分帧图像数据为切换前的帧图像数据,部分帧图像数据为切换后的帧图像数据,则该bank逻辑空间中的一帧图像数据读取失败,但一帧图像数据的显示时长为毫秒级,如普通的60hz显示器,一帧图像数据的显示时长为1/60秒,人眼无法察觉到有一帧图像数据读取失败,从而实现无缝切换及无黑屏现象发生;之后的bank逻辑空间写入与读取帧图像数据的工作流程与上述的工作流程相同;
77.如图4所示,显示编码模块4包括时序控制器41和hdmi显示编码器42;
78.时序控制器41用于产生帧图像输出时序,并将帧图像输出时序发给hdmi显示编码器42和图像帧缓存模块3,图像帧缓存模块3根据帧图像输出时序从图像帧缓存模块3中读取帧图像数据发送至hdmi显示编码器42;
79.hdmi显示编码器42根据帧图像输出时序,对输入的帧图像数据进行数据转换为hdmi图像数据,并将hdmi图像数据输出至显示设备;显示编码模块4按照输出时序运行,从图像帧缓存模块3中进行不间断读取缓存的帧图像数据转换为hdmi图像数据,并将hdmi图像数据输出至显示设备,保证了无缝切换;
80.如图5所示,本发明还包括一种基于fpga实现高集成度的kvm切换方法,采用如上述权利要求所述的系统,包括以下步骤:
81.(1)指令接收模块2接收上位机的控制指令,并将控制指令发送给切换控制模块1;
82.(2)切换控制模块1根据控制指令执行开关机的切换、图像的切换和usb外设的切换中一种或多种切换;
83.执行开关机的切换具体过程为:
84.当切换控制模块1接收到开关机的切换指令后,将信号传输至开关机切换模块6,开关机切换模块6执行开关机的切换;
85.执行usb外设的切换具体过程为:
86.当切换控制模块1接收到usb外设的切换指令后,将信号传输至usb切换模块5,usb切换模块5执行usb外设的切换;
87.执行图像的切换具体过程为:
88.1)切换控制模块1接收到图像的切换指令后,由于解码模块7实时将hdmi图像数据转换为待显示的帧图像数据,切换控制模块1直接将解码模块7中待显示的帧图像数据发送至图像帧缓存模块3;若切换控制模块1没有接收到图像的切换指令,解码模块7即使将hdmi图像数据转换为待显示的帧图像数据,也发送不到图像帧缓存模块3;
89.2)图像帧缓存模块3的读写状态单元35根据解码模块7产生的帧图像输入时序将帧图像数据写入至图像帧缓存模块3的写入fifo单元33进行缓存;当图像帧缓存模块3的写入fifo单元33内的帧图像数据值到达预设的值时,图像帧缓存模块3的读写状态单元35将控制图像帧缓存模块3的ddr控制单元32从图像帧缓存模块3的写入fifo单元33中读取帧图像数据,并将该数据写入至图像帧缓存模块3的ddr缓存单元31缓存;同时,图像帧缓存模块3的读写状态单元35会控制图像帧缓存模块3的ddr控制单元32从图像帧缓存模块3的ddr缓存单元31中读取缓存的帧图像数据写入到图像帧缓存模块3的读取fifo单元34中,然后图像帧缓存模块3的读写状态单元35根据帧图像输出时序读取图像帧缓存模块3的读取fifo单元34中帧图像数据输出到显示编码模块4;
90.其中,ddr缓存单元设置有第一至第三bank逻辑空间,每个bank逻辑空间均缓存一帧的待显示的帧图像数据;ddr缓存单元的第一至第三bank逻辑空间写入与读取帧图像数据的顺序为第一bank逻辑空间到第三bank逻辑空间循环往复进行,其具体工作流程为:
91.s1、写入的帧图像数据写入至第一bank逻辑空间时,读取缓存的帧图像数据从第三bank逻辑空间读取;
92.s2、写入的帧图像数据写入至第二bank逻辑空间时,读取缓存的帧图像数据从第一bank逻辑空间读取;
93.s3、写入的帧图像数据写入至第三bank逻辑空间时,读取缓存的帧图像数据从第二bank逻辑空间读取;
94.当写入的帧图像数据写入至bank逻辑空间时,切换控制模块1执行图像切换,其具体操作如下:
95.执行图像切换后,当前写入的bank逻辑空间中部分帧图像数据为切换前的帧图像数据,部分帧图像数据为切换后的帧图像数据,此时读取缓存的帧图像数据为上一bank逻辑空间中的切换前的帧图像数据;
96.接着,下一bank逻辑空间写入切换后的帧图像数据,此时读取的bank逻辑空间中,由于部分帧图像数据为切换前的帧图像数据,部分帧图像数据为切换后的帧图像数据,则该bank逻辑空间中的一帧图像数据读取失败,但一帧图像数据的显示时长为毫秒级,如普通的60hz显示器,一帧图像数据的显示时长为1/60秒,人眼无法察觉到有一帧图像数据读取失败,从而实现无缝切换及无黑屏现象发生;之后的bank逻辑空间写入与读取帧图像数据的工作流程与上述的工作流程相同;
97.3)显示编码模块4的hdmi显示编码器42根据帧图像输出时序,对输入的帧图像数据进行数据转换为hdmi图像数据,并将hdmi图像数据输出至显示设备。
98.(3)切换完成后,结束。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1