CN114124301B - 一种具有数据校验和错误重传机制的虚拟媒体传输系统 - Google Patents
一种具有数据校验和错误重传机制的虚拟媒体传输系统 Download PDFInfo
- Publication number
- CN114124301B CN114124301B CN202111364196.9A CN202111364196A CN114124301B CN 114124301 B CN114124301 B CN 114124301B CN 202111364196 A CN202111364196 A CN 202111364196A CN 114124301 B CN114124301 B CN 114124301B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- virtual
- kvm
- directory
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
本发明提供了一种具有数据校验和错误重传机制的虚拟媒体传输系统,当PC机访问KVM客户端后,选中某个文件的本地路径后,点击开启虚拟媒体按钮,此时CIM模块便会接收到文件目录信息,并更新虚拟U盘中的内容。本发明的有益效果是:本发明增加了数据校验和数据重传机制,兼容有线传输和无线传输,解决了虚拟媒体数据传输过程中的数据出错的问题,以及当检测数据出错时,能够启动数据重传,保证了数据传输过程中的准确性和可靠性。且为虚拟U盘中的虚拟文件系统设计了FAT表和文件目录项的动态生成算法,对传输过程中的传输速度不匹配也做了处理,对相关数据进行数据缓存,让传输速度快的USB总线去适应RS485总线的速度,避免数据的冲突和重叠现象。
Description
技术领域
本发明涉及KVM切换器领域,尤其涉及一种具有数据校验和错误重传机制的虚拟媒体传输系统。
背景技术
随着计算机技术以及网络化技术的迅猛发展,在服务器中心、网络中心、数据中心、计算机房中,由数台、数十台甚至数百台计算机或者服务器组建成计算机群的情况越来越普遍。如何更加高效、安全地对这些服务器或者计算机进行管理,成为计算机群管理和维护人员必须面对的问题,在此情况下,KVM技术应运而生。KVM系统凭借着在远程管理方面拥有上述优势而被应用于众多场景,这些应用场景对KVM系统提出了特定的功能需求。例如,对于电力监控室机房管理来说,不仅仅需要KVM系统提供基础的远程监控和控制计算机的功能,还要能够提供从机房计算机拷贝文件数据到远程U盘设备的功能,从而实现对这部分数据的分析,检查出设备的故障情况。再比如,当数据机房中的服务器需要更新某个软件或者为系统打安全补丁时,就可以把本地U盘中的可执行文件传输至远程被控主机中,从而实现批量系统升级。上述所提及的远程文件的拷贝与传输就是虚拟媒体技术。
现有技术中,虽也有这部分的内容,但是有的存在着办法过于复杂,且不具备数据校验和数据重传机制,在数据传输过程中存在一定出错的概率,有的还存在着应用于工业现场时,无线信号容易受到干扰,此时传输速率和传输稳定性均受到一定的影响。
发明内容
为了解决上述问题,本发明提供了一种具有数据校验和错误重传机制的虚拟媒体传输系统,主要包括以下步骤:
PC机:分别双向电性连接存储介质和KVM客户端,用于通过有线或者无线的方式访问到KVM硬件中的KVM客户端软件;
KVM客户端:双向电性连接CIM模块,为固化于KVM硬件的一个客户端软件,用于使PC机通过KVM硬件上的网口进行TCP访问,用户选中需要发送的文件,该KVM客户用于把需要待发送的文件进行分包处理,形成一段一段表示的虚拟文件;
CIM模块:为计算机接口模块,双向电性连接被控服务器,用于负责虚拟U盘和虚拟文件系统,该虚拟文件系统根据文件大小和文件名长短设计了虚拟文件动态分配算法和虚拟文件目录项动态生成算法,动态生成虚拟文件分配表和虚拟文件目录项,当CIM模块接收KVM客户端发送过来的虚拟文件后,根据所述虚拟文件分配表和虚拟文件目录项对虚拟文件进行组织和构建,然后向被控服务器发送组织和构建后的的虚拟文件,还用于接收被控服务器传输的拷贝文件;该CIM模块的主控芯片带有USB Device内核,通过USB模拟一个大容量存储设备类MSC;
当PC机通过有线或者无线的方式访问KVM客户端后,选中某个文件的本地路径后,点击开启虚拟媒体按钮,此时CIM模块便会接收到文件目录信息,并更新虚拟U盘中的内容;所述KVM客户端在发送每一帧的数据时附带有校验码,当CIM模块接收到此数据帧后,根据主控芯片内部的硬件CRC对此数据帧进行校验,对比两种的校验码是否相同,若否,启动错误重传,即发送错误信息给KVM客户端,要求重发,若是,则发送正确信息,继续进行传输。
进一步地,所述存储介质包括实际U盘、硬盘和光驱。
进一步地,所述虚拟文件为FAT16文件,是由MCU的RAM中模拟出一个FAT16文件系统所包含的。
进一步地,所述FAT16文件系统最大管理的单个文件大小达为2G,所述虚拟媒体传输系统的文件大小最大为2G。
进一步地,所述KVM客户端在发送每一帧的数据时附带的校验码为CRC32算法得到的。
进一步地,所述KVM客户端与CIM模块之间的传输介质是超五类或六类网线,一条标准网线有八根线,其中六根线用于视频的传输,另外两根线用于RS485芯片的差分信号传输,RS485信号采用的是SN65HVD21芯片,以RS485电平的形式进行远距离传输。
进一步地,所述CIM模块的主控芯片为MCU,该MCU型号为CH32F103C8,或,所述CIM模块的主控芯片为HK32、或CKS32、或GD32、或ST32、或APM32、或NXP LPC系列的单片机。
进一步地,当访问USB存储介质的时候,并不会马上就传输文件的全部内容信息,只有当操作者去访问更深一级目录或者读取文件时,才会再次触发USB总线上的传输,传输相应的数据内容。
进一步地,虚拟文件为FAT12,或FAT32,或exFAT;或,所述KVM客户端与CIM模块之间的传输通过CAN总线、或RS232、或UART串口直连的方式实现。
进一步地,所述KVM客户端在发送每一帧的数据时附带的校验码由CRC8、或CRC16、或CRC64算法得到。
本发明提供的技术方案带来的有益效果是:现有的虚拟媒体技术普遍是通过无线或者有线的方式将本地的文件或者文件夹发送远程的服务器上,而本发明是在兼容了前者的优点后,还增加了数据校验和数据重传机制,兼容有线传输和无线传输,解决了虚拟媒体数据传输过程中的数据出错的问题,以及当检测数据出错时,能够启动数据重传,保证了数据传输过程中的准确性和可靠性。且为虚拟U盘中的虚拟文件系统设计了FAT表和文件目录项的动态生成算法,对传输过程中的传输速度不匹配也做了处理,对相关数据进行数据缓存,让传输速度快的USB总线去适应RS485总线的速度,避免数据的冲突和重叠现象。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例中一种具有数据校验和错误重传机制的虚拟媒体传输系统的工作流程图。
图2是本发明实施例中FAT文件系统结构图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
本发明的实施例提供了一种具有数据校验和错误重传机制的虚拟媒体传输系统,多用于KVM切换器领域,KVM技术是Keyboard、Video、Mouse的英文缩写,是指支持一个或多个用户同时对连接于KVM系统的多台远程被控计算机进行管理,实现一套键盘、显示器、鼠标设备同时访问和操作多台被控机的功能,达到提高计算机群设备利用率、提高机群稳定性、安全性以及可靠性、提高机群管理人员工作效率的目的。虚拟媒体技术是将管理机的本地光驱、USB存储或ISO文件直接映射到远端服务器的虚拟光驱上,便于进行远程数据拷贝的一项技术。在一些大型服务器的数据机房,公安或航空的调度中心均有应用场景,当运维人员不方便进入数据机房对服务器直接进行文件拷贝时,即可用虚拟媒体技术把本地的文件远程传输至服务器中,从而实现对设备的维护。
本发明可解决以下问题:
(1)解决常规KVM切换器系统中,除了基本视频传输和键鼠操作外,文件数据无法传输的问题。
(2)解决文件数据传输过程中,无法检测数据错误的现象,本发明将CRC32校验运用于虚拟媒体技术中,可实时检测每一帧的数据是否出错。
(3)解决文件数据传输过程中,数据出错而导致传输失败的问题,本发明制定了一套数据错误重传的协议,可以实现在数据出错时启动数据重传机制,避免文件传输失败。
(4)虚拟媒体中采用了虚拟的FAT文件系统,通过USB协议中的MSC(mass storageclass,大容量存储类)和FAT文件配合,虚拟出一个大容量U盘到服务器端,用于存储从本地控制电脑发送过来的文件数据。
(5)创造了FAT文件分配动态生成算法和文件目录项动态生成算法,可以根据文件目录大小和文件大小,动态生成FAT文件分配表和文件名目录项,用于组织文件数据。
(6)虚拟媒体文件传输过程中采用RS485的信号,物理传输介质采用两根双绞线即可,此信号抗干扰能力强,传输稳定,简单易用,传输距离和传输速度均满足工业现场要求,局域网内理论最远传输可达10km,传输速度最快10Mbps。
请参考图1,图1是本发明实施例中一种具有数据校验和错误重传机制的虚拟媒体传输系统的工作流程图,对于整个虚拟媒体传输系统而言,该虚拟媒体传输系统包括的硬件信息如下:
1)存储介质:U盘、硬盘和光驱等物理存储介质;
2)PC机:操作者所使用的电脑;
3)KVM客户端:固化于KVM硬件的一个客户端软件,PC机可通过KVM硬件上的网口进行TCP访问;
4)CIM(Computer Interface Module)模块为计算机接口模块,用于负责虚拟U盘和虚拟文件系统,接收KVM客户端发送过来的文件数据,通过USB总线发送到被控服务器中。
CIM模块的主控芯片为南京沁恒微电子的一颗32位MCU,型号CH32F103C8,带有USBDevice内核,可以通过USB模拟出一个大容量存储设备类(MSC),并在MCU的RAM中模拟出一个FAT16文件系统,此文件系统最大管理的单个文件大小达到2G,这意味着传输的文件大小最大可达2G。当这个模拟了MSC类且带有文件系统的CIM模块插到被控服务器的USB口时,在服务器上便会出现一个容量大小为2G的U盘,所有传输的相关文件都会出现于此U盘中。
此处的存储介质不局限于实际U盘和移动硬盘等外挂设备,也可以是本地电脑中文件夹中的任意的一个文件,当PC机通过有线或者无线的方式访问到KVM硬件中的KVM客户端软件后,选中某个文件的本地路径后,点击开启虚拟媒体按钮,此时CIM便会接收到文件目录等信息,并更新虚拟U盘中的内容。USB协议规定,当访问USB存储介质的时候,并不会马上就传输文件的全部内容信息,只有当操作者去访问更深一级目录或者读取文件时,才会再次触发USB总线上的传输,传输相应的数据内容。
上述过程的工作原理为:存储介质为现实中的U盘(即实际U盘),而CIM模块中虚拟了一个U盘(即虚拟U盘),这个虚拟U盘插到被控服务器上,目的是为了把现实中的U盘或者电脑中的某个文件传输到远处的被控服务器中。在传输过程中,要在PC机中运行一个软件,这个软件就叫KVM客户端,在该软件中选中某一个要发送的文件,点击发送后,KVM客户端就把这个文件分成很多包,一包一包地往CIM模块发送,CIM模块收到以后,再往被控服务器上发送,这样就把文件传到被控服务器了。
KVM客户端与CIM模块之间的传输介质是超五类或六类网线,但是传输协议不是TCP/IP协议,而是RS485信号。一条标准网线有八根线,其中六根线用于视频的传输,另外两根线用于RS485的差分信号传输,RS485具有抗干扰能力强,运行稳定,使用简单等特点,缺点是传输方式属于半双工,同一时刻总线上只能存在收或者发状态,不能同时收发,否则数据将出错。RS485传输有专用的485芯片,本实施例中使用的是TI公司的SN65HVD21芯片,传输速率最高可达5Mbps,此芯片可将MCU的串口数据以RS485电平的形式进行远距离传输,理论传输距离可达150m,但实际数据机房布线100m以内即可满足要求。
在文件数据传输过程中,还涉及文件数据的校验和错误重传机制。因为文件数据传输过程中要求数据100%正确,否则将无法正确还原文件信息。本系统中传输文件时将一个大文件以每帧1024个字节进行传输,利用CIM模块的硬件CRC对每一帧数据进行校验,当传输出错时启动错误重传机制,告诉KVM客户端需要重发上一帧数据,传输正常则继续接收下一帧数据,直至传输完成。
本系统开发过程中主要涉及USB底层协议、MSC类、SCSI命令、FAT文件系统、CRC校验以及QT上位机等知识,下面将对该部分内容做简单的介绍。
1.USB
USB(Universal Serial Bus),为通用串行总线,是一种计算机与外围设备进行数据交互的通信协议。在计算机刚兴起的时候,要连接一个新的设备,需要断电关闭计算机、连接设备和配置硬件后再上电运行,这个过程相当费时费力,为了能拥有随意接入设备这种热插拔特性,USB总线协议应运而生。
USB总线如今已经有USB1.0、USB1.1、USB2.0和USB3.0等版本,高版本可以向下兼容。USB Device定义了很多设备类,如HID类、MSC类和CDC类等,这些类使用于不同的硬件设备,如HID类常用于键鼠设备,MSC类用于U盘,CDC类用于虚拟串口设备,本系统中的虚拟U盘即使用的是MSC类(Mass Storage Class,大容量存储类)。
小型计算机系统接口(SCSI,Small Computer System Interface)是一种用于计算机及其周边设备之间(硬盘、软驱、光驱、打印机和扫描仪等)系统级接口的独立处理器标准。SCSI命令有很多,但是在USB MSC应用中只用到了几个常用的命令。在虚拟媒体文件数据传输过程中需要对该命令进行解析和处理,这里简单介绍几个用到的命令。
INQUIRY命令:该命令询问Mass Storage设备的基本信息,如生产厂家、产品名称和产品版本等。
READ FORMAT CAPACITIES命令:读取存储介质的格式容量,返回存储介质的最大容量。
READ CAPACITY:读取存储介质的实际容量信息。
READ(10):附带逻辑地址信息,返回存储介质类该逻辑单元的数据。
SENSE6:目的在于获得设备内部很多潜在的信息,其中包括了是否设置了写保护。
WRITE(10):附带逻辑地址信息,Host向Device发送数据并写在存储介质内。
TEST UNIT READY:检查存储介质是否就绪,
2.FAT文件系统
CIM模块的MCU的内部资源有限,只有64KB的FLASH和20K的RAM,现在要把CIM模块伪装成一个2G的U盘,自然不能用MCU内部的资源,那么就需要在RAM中伪造一个文件系统,欺骗操作系统,让操作系统误以为CIM是一个2G大小的U盘。
FATFS(File Allocation Table File System,文件分配表文件系统)是一个通用的文件系统,主要用于小型嵌入式系统应用。FATFS组件的编写遵循ANSI C(C89),完全分离于磁盘I/O,因此不依赖于硬件平台。它可以嵌入到资源有限的微控制器中,如8051、PIC、AVR和ARM等平台,不需要做任何修改。
FAT文件系统主要有FAT12、FAT16和FAT32三种,三者的区别并不是太大,主要区别是记录文件的簇大小不一样,导致所能管理的文件不一样。本系统中使用的是FAT16文件系统,图2是其文件系统的结构图。
MBR(Main Boot Record):主引导记录,占446字节,为计算机启动后从可启动介质上首先装入内存并且执行的代码,通常用来解释分区结构。
DBR(DOS Boot Record):DOS引导记录,为操作系统进入文件系统以后可以访问的第一个扇区,通常用来解释文件系统,DBR是由硬盘的MBR装载的程序段。DBR装入内存后,即开始执行该引导程序段,其主要功能是完成操作系统的自举并将控制权交给操作系统。
FAT1、FAT2:紧跟在保留分区后面的是FAT区,其由两个完全相同的FAT(FileAllocation Table,文件分配表)表单组成,FAT文件系统的名字也是因此而来。FAT表是一组与数据簇号对应的列表。FAT2紧跟在FAT1之后,它的位置可以通过FAT1的位置加上FAT表的扇区数计算出来。
文件系统分配磁盘空间按簇来分配。因此,文件占有磁盘空间时,基本单位不是字节而是簇,即使某个文件只有一个字节,操作系统也会给它分配一个最小单元:即一个簇。对于大文件,需要分配多个簇。同一个文件的数据并不一定完整地存放在磁盘中一个连续地区域内,而往往会分若干段,像链子一样存放。这种存储方式称为文件的链式存储。为了实现文件的链式存储,文件系统必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继的下一个簇的簇号,对于文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,FAT表对应表项中记录着它所代表的簇的有关信息:诸如是空,是不是坏簇,是否是已经是某个文件的尾簇等。
对于文件系统来说,FAT表有两个重要作用:描述簇的分配状态以及标明文件或目录的下一簇的簇号。
目录区:FAT32是把目录也当做是数据,所以并没有单独划分一块区域作为文件目录区,但是因为文件存储的特点,一般是先存储文件目录信息,再存储文件数据,因为实际上紧接在FAT2后面的依然是文件目录。而FAT16则是单独划分一块区域作为文件目录区,紧接着FAT2。记录文件目录的格式涉及短文件目录和长文件目录。当文件名不足8字节,文件格式不足3字节时,采用短文件名格式,当超出这个范围后,采用长文件名格式。
短文件名格式:短文件名统一采用32个字节存储,系统将文件名分为两部分进行存储,即主文件名+扩展名,取文件名中的ASCII码值,不记录主文件名和扩展名之间的‘.’。主文件名或扩展名不足8字节或3字节时用空白符(0x20)填充。接下来存储的信息就是一些文件的创建时间、日期和开始簇号等信息。
长文件名格式:长文件名格式也是每一个目录项统一采用32个字节作为基础单位,但是每个目录项之间存在着联系,可以根据文件名大小自动生成文件目录项,并且是采用长文件名目录项+短文件目录项的方式共同存储文件目录。
当创建一个长文件名文件时,操作系统会自动加上对应的短文件名,且长文件名全部采用Unicode编码,其一般有如下原则:
取长文件名的前六个字符(ASCII码)加上“~1”形成短文件名,扩展名不变。
如果已存在这个文件名,则符号“~”后的数字递增,直到5。
系统在存储长文件名时,总是先倒序填充长文件名目录项,然后紧跟着对应的短文件名。
长文件名目录项中并不存储对应文件的开始簇,文件大小,各自时间和日期属性,这些信息存放在短文件名目录项中。
一个文件可以没有长文件名目录项,但必须有短文件名目录项,当短文件名目录项缺少时,系统将找不到该文件。
数据区:以簇为基本存储单位,每簇的大小可以不一样,可以是4K、8K、16K、32K等,数据区的数据不必按照顺序存储,而是按照链式存储,这样的好处是可以减少硬盘碎片,提高硬盘的利用率,但是需要有一张对应的存储表记录文件的簇号,上述的FAT1、FAT2就是拿来存储文件簇号的表。FAT2是FAT1的备份。
上述内容中,MBR和DBR这两个扇区的数据是不会变动的,而FAT区会根据文件大小和文件开始簇而动态变化,目录区也会根据文件名的长短动态变化。因此本系统中,根据文件大小和文件名长短设计了FAT表动态生成算法和目录项动态生成算法。
FAT表动态生成算法:首先确定文件的大小和文件簇的大小,计算出一共需要多少个簇号才能完全记录该文件,又称簇数。FAT表第一个扇区与其他扇区不同,第一个扇区前4个字节是用于记录正常文件的开始,固定为0xfff8(簇0),0xfffff(簇1)。真正的文件开始簇号是从簇2开始,根据簇数分情况和分扇区进行处理,当操作系统访问到FAT1时,则根据文件大小和上述的算法动态生成文件分配表,返回给操作系统,当访问FAT2(FAT1的备份)则也是返回上述数据。
文件目录项动态生成算法:本系统统一使用长文件名的目录项记录文件名,也就是即使文件名不足8字节,扩展名不足3字节,也是使用长文件名目录项。虽然该方法牺牲了部分内存,但是对于目录项动态算法的设计带来了便利。首先确定文件名和扩展名的总长度,此处使用Unicode码来表示,即无论是中文还是英文或者数字,表示一个字符统一用两个字节表示。一个长文件名目录项(32字节)最多记录26个字节,也就是13个字符,文件名和扩展名的总字节数除以26可以确定至少需要多少个长文件名目录项,然后根据长文件名目录项规则按照倒序的方式填充每个字节。此处的倒序的意思是,例如,存储文件《一种具有数据校验和错误重传机制的虚拟媒体技术。TXT》,那么操作系统记录的时候是先记录“的虚拟媒体技术。TXT”,再记录“一种具有数据校验和错误重传机制”。长文件名目录项全部生成后,最后还有添加一个短文件名目录项作为结束,短文件名的文件名和扩展名的ASCII码会决定长文件名目录项中的校验值。短文件名目录项和长文件名目录项相互校验,从而保证文件目录的正确性。
3.数据校验和错误重传机制
因为USB是具备数据错误校验功能的,当在虚拟媒体数据传输过程中,即使是错了一个字节,也会导致USB触发错误重传机制,如果此时RS485收发的数据没有数据校验和错误重传机制的话,就会导致USB总线收不到正确的数据,从而等待超时,文件传输失败。此处的USB数据校验和错误重传机制是USB协议自带的,需要本系统中设计的RS485数据收发的数据校验和错误重传机制进行区分。KVM客户端在发送每一帧的数据时会附带CRC32的校验码,当CIM接收到此数据帧后,会根据MCU内部的硬件CRC32对此数据帧进行校验,对比两种的校验码是否相同,不同则启动错误重传,即发送错误信息给KVM客户端,要求重发。相同则发送正确信息,可以继续传输。值得一提的是,MCU内部的CRC32并非标准的CRC32,而是CRC32/MPEG-2,两者在初始值、结果异或值和输入输出数据反转等规则上存在差异,本系统中已经统一修改为标准的CRC32。
4.QT上位机
上述的KVM客户端是采用QT编写的,QT是一个跨平台的C++图形界面应用程序框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序。QT很容易扩展,并且允许真正地组件编程。在实际虚拟媒体传输过程中,KVM客户端通过选中需要传输的文件路径,点击开启虚拟媒体界面按钮后,KVM客户端便把相关的文件目录信息,文件大小等信息发送给CIM模块,CIM模块接收到这些信息后,复位USB总线,USB主机重新对虚拟U盘进行枚举,即可把相关文件目录更新到此虚拟U盘中,操作者只要在虚拟U盘中复制此文件到本地硬盘即可,此后过程便是文件数据的传输过程。此过程,USB主机会源源不断请求数据,而所请求的数据将由KVM客户端以分包的形式通过RS485总线发送到CIM模块中,CIM模块将接收到数据提交给USB总线,以应答主机的数据请求。针对USB传输速度及RS485串口速度不匹配的情况,采用环形数据缓存区进行处理,对RS485发送过来的串口数据进行缓冲,且让USB总线速度去适应RS485速度。
本发明中采用的虚拟文件系统可以采用FAT12、FAT32、exFAT等,采用的数据校验算法可以采用CRC8、CRC16、CRC64等,采用的RS485总线可以替换成CAN总线、RS232、UART串口直连等方法,MCU芯片可以替换为国产的兼容芯片,如HK32,CKS32,GD32、ST32、APM32,还可以是NXP LPC系列的单片机。
本发明的关键点及欲保护点在于:
本发明将虚拟文件系统应用于虚拟媒体传输过程中,创造了虚拟文件分配表和虚拟文件目录项两个动态生成算法,可根据文件目录长短和文件大小动态生成FAT表和文件目录项,支持中英文,大小写及数字文件名。
加入的基于CRC32校验的数据校验功能,可检测每一帧数据是否正确。
加入的数据错误重传机制,制定了一套数据出错后数据重传的协议。
文件传输物理介质采用双绞线,传输信号采用RS485电平,抗干扰能力强,传输稳定,传输距离和速度满足工业现场要求,且针对USB传输速度及RS485串口速度不匹配的情况,采用环形数据缓存区进行处理,让USB总线速度去适应RS485速度。
本发明的有益效果是:现有的虚拟媒体技术普遍是通过无线或者有线的方式将本地的文件或者文件夹发送远程的服务器上,而本发明是在兼容了前者的优点后,还增加了数据校验和数据重传机制,兼容有线传输和无线传输,解决了虚拟媒体数据传输过程中的数据出错的问题,以及当检测数据出错时,能够启动数据重传,保证了数据传输过程中的准确性和可靠性。且为虚拟U盘中的虚拟文件系统设计了FAT表和文件目录项的动态生成算法,对传输过程中的传输速度不匹配也做了处理,对相关数据进行数据缓存,让传输速度快的USB总线去适应RS485总线的速度,避免数据的冲突和重叠现象。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种具有数据校验和错误重传机制的虚拟媒体传输系统,其特征在于:包括:
PC机:分别双向连接存储介质和KVM客户端,用于通过有线或者无线的方式访问到KVM硬件中的KVM客户端软件;
KVM客户端:双向连接CIM模块,为固化于KVM硬件的一个客户端软件,用于使PC机通过KVM硬件上的网口进行TCP访问,用户选中需要发送的文件,该KVM客户用于把需要待发送的文件进行分包处理,形成一段一段表示的虚拟文件;
CIM模块:为计算机接口模块,双向连接被控服务器,用于负责虚拟U盘和虚拟文件系统,该虚拟文件系统根据文件大小和文件名长短设计了虚拟文件动态分配算法和虚拟文件目录项动态生成算法,动态生成虚拟文件分配表和虚拟文件目录项,当CIM模块接收KVM客户端发送过来的虚拟文件后,根据所述虚拟文件分配表和虚拟文件目录项对虚拟文件进行组织和构建,然后向被控服务器实时发送组织和构建后的虚拟文件,还用于接收被控服务器传输的拷贝文件;该CIM模块的主控芯片带有USBDevice内核,通过USB模拟一个大容量存储设备类MSC;
所述虚拟文件动态分配算法具体为:首先确定文件的大小和文件簇的大小,计算出一共需要多少个簇号才能完全记录该文件,又称簇数,FAT表第一个扇区与其他扇区不同,第一个扇区前4个字节是用于记录正常文件的开始,真正的文件开始簇号是从簇2开始,根据簇数分情况和分扇区进行处理,当操作系统访问时,根据文件大小和上述的算法动态生成文件分配表,返回给操作系统;
所述文件目录项动态生成算法具体为:本系统统一使用长文件名的目录项记录文件名,首先确定文件名和扩展名的总长度,一个长文件名目录项最多记录26个字节,文件名和扩展名的总字节数除以26确定至少需要多少个长文件名目录项,然后根据长文件名目录项规则按照倒序的方式填充每个字节;长文件名目录项全部生成后,最后还有添加一个短文件名目录项作为结束,短文件名的文件名和扩展名的ASCII码会决定长文件名目录项中的校验值,短文件名目录项和长文件名目录项相互校验,从而保证文件目录的正确性;
当PC机通过有线或者无线的方式访问KVM客户端后,选中某个文件的本地路径后,点击开启虚拟媒体按钮,此时CIM模块便会接收到文件目录信息,并更新虚拟U盘中的内容;所述KVM客户端在发送每一帧的数据时附带有校验码,当CIM模块接收到此数据帧后,根据主控芯片内部对应的硬件CRC对此数据帧进行校验,对比两种的校验码是否相同,若否,启动错误重传,即发送错误信息给KVM客户端,要求重发,若是,则发送正确信息,继续进行传输。
2.如权利要求1所述的一种具有数据校验和错误重传机制的虚拟媒体传输系统,其特征在于:所述存储介质包括实际U盘、硬盘和光驱。
3.如权利要求1所述的一种具有数据校验和错误重传机制的虚拟媒体传输系统,其特征在于:所述虚拟文件为FAT16文件,是由MCU的RAM中模拟出一个FAT16文件系统所包含的。
4.如权利要求3所述的一种具有数据校验和错误重传机制的虚拟媒体传输系统,其特征在于:所述FAT16文件系统最大管理的单个文件大小达为2G,所述虚拟媒体传输系统的文件大小最大为2G。
5.如权利要求1所述的一种具有数据校验和错误重传机制的虚拟媒体传输系统,其特征在于:所述KVM客户端在发送每一帧的数据时附带的校验码为CRC32算法得到的。
6.如权利要求1所述的一种具有数据校验和错误重传机制的虚拟媒体传输系统,其特征在于:所述KVM客户端与CIM模块之间的传输介质是超五类或六类网线,一条标准网线有八根线,其中六根线用于视频的传输,另外两根线用于RS485芯片的差分信号传输,RS485信号采用的是SN65HVD21芯片,以RS485电平的形式进行远距离传输。
7.如权利要求1所述的一种具有数据校验和错误重传机制的虚拟媒体传输系统,其特征在于:所述CIM模块的主控芯片为MCU,该MCU型号为CH32F103C8,或,所述CIM模块的主控芯片为HK32、或CKS32、或GD32、或ST32、或APM32、或NXPLPC系列的单片机。
8.如权利要求1所述的一种具有数据校验和错误重传机制的虚拟媒体传输系统,其特征在于:当访问USB存储介质的时候,并不会马上就传输文件的全部内容信息,只有当操作者去访问更深一级目录或者读取文件时,才会再次触发USB总线上的传输,传输相应的数据内容。
9.如权利要求1所述的一种具有数据校验和错误重传机制的虚拟媒体传输系统,其特征在于:虚拟文件为FAT12,或FAT32,或exFAT;或,所述KVM客户端与CIM模块之间的传输通过CAN总线、或RS232、或UART串口直连的方式实现。
10.如权利要求1所述的一种具有数据校验和错误重传机制的虚拟媒体传输系统,其特征在于:所述KVM客户端在发送每一帧的数据时附带的校验码由CRC8、或CRC16、或CRC64算法得到。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111364196.9A CN114124301B (zh) | 2021-11-17 | 2021-11-17 | 一种具有数据校验和错误重传机制的虚拟媒体传输系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111364196.9A CN114124301B (zh) | 2021-11-17 | 2021-11-17 | 一种具有数据校验和错误重传机制的虚拟媒体传输系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114124301A CN114124301A (zh) | 2022-03-01 |
CN114124301B true CN114124301B (zh) | 2023-04-07 |
Family
ID=80396322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111364196.9A Active CN114124301B (zh) | 2021-11-17 | 2021-11-17 | 一种具有数据校验和错误重传机制的虚拟媒体传输系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114124301B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882132A (zh) * | 2009-04-27 | 2010-11-10 | 深圳市闪联信息技术有限公司 | 虚拟fat文件系统的创建及读取方法以及装置 |
CN101958918A (zh) * | 2009-07-15 | 2011-01-26 | 宏正自动科技股份有限公司 | 具有文件夹分享功能的虚拟媒体及方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008097273A1 (en) * | 2006-08-10 | 2008-08-14 | Avocent Huntsville Corporation | Usb based virtual media system |
US9235583B2 (en) * | 2009-07-15 | 2016-01-12 | Aten International Co., Ltd. | Virtual media with folder-mount function |
CN102081455B (zh) * | 2009-11-30 | 2013-02-27 | 宏正自动科技股份有限公司 | 转接器及计算机管理系统 |
CN102087589B (zh) * | 2009-12-04 | 2013-04-03 | 宏正自动科技股份有限公司 | 可检测被控计算机状态的远程管理装置 |
US9319295B2 (en) * | 2010-10-04 | 2016-04-19 | Avocent Huntsville Corp. | System and method for monitoring and managing data center resources in real time |
TWI463327B (zh) * | 2010-11-01 | 2014-12-01 | Aten Int Co Ltd | 遠端管理裝置及遠端管理系統 |
TWI427965B (zh) * | 2010-12-31 | 2014-02-21 | Aten Int Co Ltd | 遠端管理系統、多電腦切換器及遠端管理方法 |
TWI606351B (zh) * | 2011-12-30 | 2017-11-21 | 宏正自動科技股份有限公司 | 遠端管理系統、遠端管理裝置及遠端管理方法 |
CN102591717B (zh) * | 2012-02-06 | 2014-06-04 | 华为技术有限公司 | 外接设备和虚拟设备的业务信息处理方法、装置和系统 |
CN109407544B (zh) * | 2017-08-17 | 2021-07-30 | 凌华科技股份有限公司 | 非侵入式数据提取系统的仿真机台操作画面的系统模块 |
-
2021
- 2021-11-17 CN CN202111364196.9A patent/CN114124301B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882132A (zh) * | 2009-04-27 | 2010-11-10 | 深圳市闪联信息技术有限公司 | 虚拟fat文件系统的创建及读取方法以及装置 |
CN101958918A (zh) * | 2009-07-15 | 2011-01-26 | 宏正自动科技股份有限公司 | 具有文件夹分享功能的虚拟媒体及方法 |
Non-Patent Citations (1)
Title |
---|
郑万斌 ; 崔敏 ; 梁志剑 ; .测控数据传输系统中的双工作模式固件设计.中北大学学报(自然科学版).2013,(第04期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN114124301A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8615594B2 (en) | Virtual media with folder-mount function | |
JP4252301B2 (ja) | 記憶システム及びそのデータバックアップ方法 | |
JP4322031B2 (ja) | 記憶装置 | |
US7930474B2 (en) | Automated on-line capacity expansion method for storage device | |
EP1837751B1 (en) | Storage system, storage extent release method and storage apparatus | |
US7360030B1 (en) | Methods and apparatus facilitating volume management | |
CN111356996B (zh) | 用于版本验证的系统和计算机实现的方法 | |
US7660946B2 (en) | Storage control system and storage control method | |
US7464222B2 (en) | Storage system with heterogenous storage, creating and copying the file systems, with the write access attribute | |
US20120005668A1 (en) | Storage controller coupled to storage apparatus | |
US20110161725A1 (en) | Dynamically tracking virtual logical storage units | |
US20050114402A1 (en) | Block level data snapshot system and method | |
US9235583B2 (en) | Virtual media with folder-mount function | |
US7849258B2 (en) | Storage apparatus and data verification method for the same | |
WO2013074106A1 (en) | Method, apparatus and system for data deduplication | |
US8359431B2 (en) | Storage subsystem and its data processing method for reducing the amount of data to be stored in a semiconductor nonvolatile memory | |
US10788999B2 (en) | Information system, management program, and program exchange method of information system | |
US9311195B2 (en) | SCSI reservation status information on a SAN disk | |
CN114124301B (zh) | 一种具有数据校验和错误重传机制的虚拟媒体传输系统 | |
CN108334453B (zh) | 一种文件调试方法、装置、终端设备及存储介质 | |
JP2004118413A (ja) | ストレージシステム、記憶装置、ホスト計算機、および、スナップショット作成方法。 | |
JP2009294699A (ja) | ストレージ装置 | |
US20100017189A1 (en) | Transparent Intellectual Network Storage Device | |
WO2014070342A1 (en) | Drive emulation for devices with mass storage feature | |
CN115951830A (zh) | 一种创建虚拟磁盘vd的方法和服务器 |
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 |