CN114003546B - 一种多通道开关量复合编码设计方法和装置 - Google Patents
一种多通道开关量复合编码设计方法和装置 Download PDFInfo
- Publication number
- CN114003546B CN114003546B CN202210000454.3A CN202210000454A CN114003546B CN 114003546 B CN114003546 B CN 114003546B CN 202210000454 A CN202210000454 A CN 202210000454A CN 114003546 B CN114003546 B CN 114003546B
- Authority
- CN
- China
- Prior art keywords
- coding
- data
- jump
- switching value
- channel switching
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种多通道开关量复合编码设计方法和装置,包括以下步骤:步骤S1、设计多通道开关量基于变化量的同步编码策略;步骤S2、设计多通道开关量压缩编码协议;步骤S3、设计压缩编码协议有效性判断策略;步骤S4、设计普通编码与压缩编码的协同编码机制;步骤S5、设计用户配置接口。装置包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现所述的多通道开关量复合编码设计方法。本发明保证传输双方数据状态的一致,避免单次大量的数据传输过程所造成的阻塞、误码等问题,同时各个独立的小数据体在校验和重发等机制的设计上也可以更加灵活,保证数据的准确性。
Description
技术领域
本发明涉及数据通信技术领域,特别涉及一种多通道开关量复合编码设计方法和装置。
背景技术
在电光驱动板卡、多通道数字量输入输出板卡等应用场景,对于多个通道开关量的状态读取与控制是经常用到的技术。普通的一个字节(8位二进制数据)代表8个通道开关的控制或监测方法,在通道数量增多时效率不足,且连续的字节控制多通道开关状态时,容易因为误码、丢失等原因造成数据错误。当前,针对普通编码进行改进的多种编码技术也有一定的应用,但大部分单一编码的模式要么效率提升有限,要么过于复杂难以维护。
为此,我们提供了一种多通道开关量复合编码设计方法和装置以此解决上述技术问题。
发明内容
本发明的目的在于提供一种多通道开关量复合编码设计方法和装置,解决了现有技术中多个通道开关量的状态读取与控制容易因为误码、丢失等原因造成数据错误,大部分单一编码的模式要么效率低,复杂的问题。
本发明采用的技术方案如下:
一种多通道开关量复合编码设计方法,包括以下步骤:
步骤S1、设计多通道开关量基于变化量的同步编码策略;
步骤S2、设计多通道开关量压缩编码协议;
步骤S3、设计压缩编码协议有效性判断策略;
步骤S4、设计普通编码与压缩编码的协同编码机制;
步骤S5、设计用户配置接口。
进一步地,所述步骤S1包括以下子步骤:
步骤S11、上位机人机交互程序获取用户操作后变化的通道号;
步骤S12、上位机计算通道号所在的分组号;
步骤S13、上位机获取同一组内其余通道的开关量,组成单组数据;
步骤S14、上位机向下位机发送指令和数据;
步骤S15、下位机收到指令和数据后作出回复,上位机对回复信息进行校验和处理,所述校验和处理过程用于保障上位机发送的内容与下位机接收的内容相一致。
进一步地,所述步骤S2中所述多通道开关量压缩编码协议基于连续的0或连续的1进行压缩编码。
进一步地,所述步骤S3中所述压缩编码协议有效性判断策略,包括以下两种模式:基于编码结果对比的模式或基于跳变值计算的模式,所述跳变值在数据从0变为1或从1变为0时发生变化。
进一步地,所述基于跳变值计算的模式,具体包含以下子步骤:
步骤S301、扫描通道开关量,计算并累加跳变值;
步骤S302、基于跳变值和限定值划分数据区间,所述限定值基于所述压缩编码协议确定,所述数据区间分为高跳变区间和低跳变区间。
进一步地,所述步骤S302中所述数据区间分为高跳变区间和低跳变区间的方案为包括以下几种:
基于单次遍历,向后累加跳变值;
划分出无跳变区,将无跳变区扩展成为低跳变区,扩展方向优先兼容两个无跳变区的中间区域。
进一步地,所述步骤S4包括以下几种模式:所述压缩编码协议有效性判断策略采用基于编码结果对比的模式时,所述普通编码与压缩编码的协同编码机制采用二选一模式;所述压缩编码协议有效性判断策略采用基于跳变值计算的模式时,所述普通编码与压缩编码的协同编码机制采用分区间模式。
进一步地,所述步骤S5包括以下两种形式:固定在磁盘上的用户配置文件或交互界面上的用户配置组件。
本发明还提供一种多通道开关量复合编码设计装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现所述的多通道开关量复合编码设计方法。
本发明还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,用于实现所述的多通道开关量复合编码设计的方法。
本发明的有益效果是:
通过将基于变化量的同步编码、基于连续量的压缩编码和普通编码进行融合,针对不同场景采用不同的编码方式,从而最优化实现多通道开关量的数据传输,保证传输双方数据状态的一致。本方案本质上是将庞大的数据量切分成一个个相对独立的小数据体,从而避免了单次大量的数据传输过程所造成的阻塞、误码等问题。同时,各个独立的小数据体在校验和重发等机制的设计上也可以更加灵活,保证了数据的准确性,也方便后续程序的扩展和维护。
附图说明
图1是本发明实施例的流程图;
图2是本发明实施例的界面图;
图3是本发明实施例的基于跳变值计算的模式示意图;
图4是本发明一种多通道开关量复合编码设计装置的结构图。
具体实施方式
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
见图1,本发明提供一种多通道开关量复合编码设计方法,包括以下步骤:
步骤S1、设计多通道开关量基于变化量的同步编码策略。
具体的见图2,在一个光电开关驱动控制测试软件当中,需要对832个通道进行脉冲参数、电平参数等参数进行设置。按照软件应用流程,用户先设置好脉冲参数、电平参数等各个参数,然后在通道选择组件当中勾选前述设定的参数所对应的通道,然后点击“启动/停止”按钮,上位机就会将用户设定的参数信息以及对应的通道信息下发给下位机。以上即为一个用户控制周期。
如果要在一个用户控制周期当中表示832个通道选取信息,按照普通的编码方式,则需要104个8位二进制数(字节),若上位机和下位机以串口进行通信,则需要连续发送104个字节,才能将通道选取信息发送完成。如果在连续发送字节的过程当中出现误码或者丢失,则下位机难以感知,从而可能造成不可预知的严重后果。
而同步编码策略则是基于这样一个事实:用户在图2中所示的“通道选择”组件当中点击各个通道的选择框时,连续两次点击操作之间往往存在秒级的间隔,该间隔足够让上位机和下位机之间完成单组的通道选取状态的同步过程。而绝大多数的通道选择的场景都有类似的特征。
具体的,基于python语言的tkinter库实现图2所示的界面,则用户在点击通道选择组件当中的复选框时,每点击一个复选框即触发一次实时同步函数,将用户修改后的通道选取信息发送给下位机。
具体的,包含以下子步骤:
步骤S11,上位机人机交互程序获取用户操作后变化的通道号。
基于python语言的thinter库实现图2所示的界面,则通过上位机人机交互程序用户点击任意一个通道选择组件当中的通道复选框时,触发的是同一个函数,函数无法直接感知用户所操作的通道号,此时,可以设计一个channelCheckBoxesBak列表,用于备份channelCheckBoxes列表,而后者则是一个长度832的bool类型数组且每一项数据关联一个复选框的选取信息。因而,通过遍历channelCheckBoxesBak列表以及channelCheckBoxes列表,对比出二者数值不同的项,即为用户操作后变化的通道号。上述过程完成后,更新channelCheckBoxesBak列表,用于下一次的对比。
步骤S12,上位机计算通道号所在的分组号。
本实施例按照8个数据通道为一组,组成1个字节的数据,那么上位机计算通道所在的分组号可以直接用“group = int(channelNum/8)”语句来实现,最终group变量的值即为分组号。
步骤S13,上位机获取同一组内其余通道的开关量,组成单组数据。
上述的数组channelCheckBoxes[group]、channelCheckBoxes[group+1] …channelCheckBoxes[group+7]这8个布尔值即可构成一组数据。
步骤S14,上位机向下位机发送指令和数据。
由于总共是832个通道,8通道为一组,则共有104个组,那么用7位二进制数据(最大127)即可完成这104个组的地址编码。以0x80作为基地址,那么通过“addr = group+0x80”即可得到地址指令,该指令最高位为1,其他所有的上位机和下位机之间通信指令的最高位皆设计为0,从而跟基于变化量的同步编码策略指令区分开来。
具体的,初始全不选条件下,用户点击了通道2,那么上位机将会发送0x80、0x02两个数据;如果用户又点击了通道15,那么上位机将会发送0x81、0x40两个数据;如果用户又点击了通道16,那么上位机将会发送0x81、0xC0两个数据……
步骤S15,下位机收到指令和数据后作出回复,上位机对回复信息进行校验和处理,所述校验和处理过程用于保障上位机发送的内容与下位机接收的内容相一致。
消息回复和重发机制目的是避免传输过程 中发生数据错误,最简单的一种方式是下位机每次收到上位机数据后,则原样返还;上位机发送完数据后,暂时保存刚刚发送的数据流,等接收到下位机的回复数据后,对比保存的数据流是否不一致,若不一致,则重发数据。
当然,具体的重发机制还要以实际应用场景而定,如部分指令不能重发,或者信息回复检验后发现不一致,需要根据指令的不同执行不一样的异常处理逻辑,而不是简单的重发。
以上所描述的是8个通道为一组的情况,每次在发送完1个字节的通道地址后,紧跟着发送1字节的数据进行同步。还可以再充分利用一下用户操作的间隔时间,在发送完1个字节的通道地址后,紧跟着发送2个甚至多个连续数据进行同步,如此用户设置通道的过程还是上位机与下位机进行通道一致性同步或检验的过程,提高系统的准确性。
基于变化量的同步编码策略有应用约束,该约束就是上位机和下位机都要维护一个全局通道通道开关量列表(数组)。在上位机当中,维护的就是channelCheckBoxes列表。而在下位机当中,既可以维护一个长度为832、每项为布尔类型的数组,也可以维护一个长度为104、每项为short类型(8位2进制长度)的数组。基于变化量的同步编码策略实际上就是在上位机列表当中的某个数据发生变化时,同步到下位机的数组当中。
由此便引发一个问题:当下位机掉电重启后维护的数组被清零,或者有其他的业务逻辑需求,要一次性获取所有通道的开关量,那么基于变化量的同步编码策略便无法适用。因此,为了避免多字节传输所带来的安全隐患,需要结合后述的压缩编码来进行传输。
步骤S2,设计多通道开关量压缩编码协议。
所述的多通道开关量压缩编码协议设计基于连续的0或连续的1进行压缩编码。
采用所述的压缩编码基于这样一个事实:在同一个控制周期内,用户所操作的通道往往是相互临近的。这基于在物理层面上,功能相同或类似的信号会被接到临近的开关接口。例如通道1-8被用来监测一个8路输出的译码器,那么通道1-8就会同时开启或关断。很少有大量交叉开关信号的情况,例如通道1、3、5、7用于一个功能,通道2、4、6、8用于另一个功能,这种情况下物理接线也更加复杂,控制程序也难以维护,一般不会被采用。
基于连续0或连续1的压缩编码有多种实现方式,当前业界已有很多成熟的应用方案,最简单也最常用的一种,是以最高位代表连续0或连续1,后几位代表连续数据的个数。例如,0b1111 1111 1111 1100 0000 0000可以编码成0x1D 0x0A,前一字节代表连续14个1,后一字节代表连续10个0,原先三个字节的数据被压缩成了两个字节。
以上只是数据压缩的编码协议,在发送这些压缩编码的数据之前,还要发送控制指令。由于数据压缩后,由定长变为了变长,所以控制指令之后需要紧跟一个数据长度信息。
例如,步骤S1当中描述了,同步编码策略的通道指令基址是0x80,为了与之区分,压缩编码的指令基址是0x40。上位机采用压缩编码协议下发数据时,首先发送控制指令0x40,然后发送数据字节数,最后再发送压缩后的数据。
还有一种良好的设计方案是,将数据字节数与控制指令0x40合在一起,即利用控制指令的后6位来表示压缩数据字节数。6位二进制数最多表示2^6 = 64个数据,表面上64<104不能覆盖图2场景下的数据字节数信息(若超过104字节则直接采用普通编码,压缩编码失去意义),但在程序当中并不一定以104作为界限,完全可以设定压缩编码后总字节数不能超过64,否则就以普通编码来传输。实际上,压缩编码要求至少达到普通编码长度的60%,该指标并不过分。由此,基于连续量的压缩编码和基于变化量的同步编码采用相同的指令-数据的模式,程序的一致性更好,可扩展性和可维护性也更强。
步骤S3,设计压缩编码协议有效性判断策略。
根据以上所述,虽然绝大多数情况下,基于连续量的压缩编码协议可以有效提高数据传输的效率,但仍然存在压缩编码失效的情况,最简单的一种场景是0b01010101,普通编码下一个字节即可描述,但压缩编码反而需要用八个字节0x01 0x81 0x01 0x81 0x010x81 0x01 0x81。因而,在采用压缩编码传输之前,首先要进行判断,压缩编码是否具备高效性。
基于编码结果对比的模式。
基于编码结果对比是最直接也是最简单的的一种模式。具体的,在图2所示的界面程序当中,设计一个函数首先遍历channelCheckBoxes列表,将列表中的数据按照步骤S2中设计的协议生成压缩编码数据,当压缩编码数据的字节数超过上限,那么认为压缩编码失效,函数返回一个False。
所述的字节数上限,可以由用户设置,但应该存在一个程序默认值。该默认值可以是104,也可以是64,按照上文所述的设计方案,设计成64是一个更好的选择。
所述遍历channelCheckBoxes列表的过程也可以设计在用户每次点击通道选择复选框时进行触发,甚至可以另起一个线程。因此,界面程序在维护了一个channelCheckBoxes列表的同时,还可以同步维护一个compressedEncode列表和一个encodeValid变量。当encodeValid为True时,表明压缩编码有效,那么可以直接将compressedEncode列表当中的数据发送出去;反之当encodeValid为False时,压缩编码失效,不能通过压缩编码来进行传输。
基于跳变值计算的模式,所述跳变值在数据从0变为1或从1变为0时发生变化。
步骤S301、扫描通道开关量,计算并累加跳变值;
步骤S302、基于跳变值和限定值划分数据区间,所述限定值基于所述压缩编码协议确定,所述数据区间分为高跳变区间和低跳变区间。
基于跳变值来计算压缩编码是否有效也是一种简单的方式。本实施例采用图2所示场景下简单的压缩编码协议,即以最高位代表连续0或连续1,后几位代表连续数据的个数。在这种编码协议的基础上,以跳变值作为有效性判断的具体方案为:从第一个数据开始遍历channelCheckBoxes列表,累加跳变值;用跳变值/已扫描数据数量,跟限定值进行对比;当超出限定值,则记录数据区间的右界;继续进行后续的扫描,将所有数据分为高跳变区间和低跳变区间;若存在相邻的低跳变区间,则将这两个低跳变区间进行合并。
具体的,见图3,跳变值计算的最终目的,就是将数据区间区分成高跳变和低跳变区间。以上述的简单压缩编码为例,如果要最低限度保证数据传输的效率,那么跳变值/数据区间长度要不大于1/16,也就是平均连续16个数据当中只能有一次跳变。这是因为每发生一次跳变,就需要一个新的压缩数据来表示后续的连续0或者连续1;普通编码下两个字节可以表示16位数据,因而平均条件下两个字节当中只能有一次数据跳变。
低跳变和高跳变区间的划分有多种方案,首先介绍最简单的一种。该方案基于单次遍历,从 channelCheckBoxes列表的第1个元素开始,向后累加跳变值并通过跳变值/区间数据量计算平均跳变值,将所有平均跳变值大于1/16的记录为高跳变区间,将所有平均跳变值不大于1/16的记录为低跳变区间。以上的方案最终划分下来的跳变区间质量不会特别高,例如数据0b1100 0011 1111 1111 1111 1111 1111 1111,前6位数据会被划分为高跳变区间,后26位会被划分为低跳变区间;但实际上,整个32位数据只跳变了两次,完全可以划分为1个低跳变区间。这是因为上述的方案只能向后平摊跳变值,而无法向前平摊。但上述方案实现起来最为简单,方便理解,容易维护,并且时间复杂度为o(n),时间效率最高,在特定的场景下仍然可以采用。
第二种牺牲一定的时间效率提高区间划分质量的方案如下:首先划分出无跳变区;将无跳变区扩展成为低跳变区,扩展方向优先兼容两个无跳变区的中间区域。例如数据0b1100 0011 1111 1111 1111 1111 1111 1111 0011 1100 0000 0000 0000 0000,假设最高位为第0位,那么第6-第31位为一个0跳变区(记做第一无跳变区),第38-第54位为另一个无跳变区(记做第二无跳变区)。需要说明的是,无跳变区要有长度要求,一般设定为8位数据,像第2-第5位虽然也是无跳变,但是由于数据长度太短,无法向外扩展兼容跳变值,因而不算作无跳变区。划分了无跳变区后要进行扩展,第二跳变区由于是数据末尾,所以只能向前扩展,可以吸收一个跳变值形成低跳变区;第一无跳变区的前后则都有跳变区,那么此时优先向后扩展,与第二跳变区一起,将二者中间的跳变区进行覆盖,由此,整个数据流从第6位开始到第54位结束为一整个低跳变区。这一种方案的时间复杂度大于o(n),根据最终的跳变区质量需求,其时间复杂度上限为o(2n)或者o(3n)不等,取决于遍历数据流的次数。
步骤S4,设计普通编码与压缩编码的协同编码机制。
二选一模式。
所述二选一模式,就是普通编码和压缩编码二者选其一,不能对同一个数据流交替采用两种编码方式。二选一模式实现和维护简单,用于上位机或下位机资源有限的场景。
采用二选一模式时,上位机要发送数据之前,需要采用步骤S3中所述的判断策略,决定采用普通编码还是压缩编码来进行发送。具体的,可以采用基于编码结果对比的模式,当压缩编码有效时,便采用压缩编码发送数据,否则采用普通编码。
分区间模式。
所述分区间模式,就是部分区间的数据采用压缩编码,另一部分采用普通编码的混合编码模式。
分区间模式需要采用基于跳变值计算的模式,所述限定值基于所述压缩编码协议确定,所述数据区间分为高跳变区间和低跳变区间,针对低跳变区间的数据采用压缩编码,高跳变区间的数据采用普通编码,二者之间通过一个控制码进行隔离。例如数据0b11000011 1111 1111 1111 1111 1111 1111 0011 1100 0000 0000 0000 0000,进行复合编码时则会发送如下数据:0x20、0x81、0xC3、0x44、0x98、0x02、0x84、0x16。首先,0x20为全通道数据发送的控制码;0x81为普通编码控制码(基地址为0x80),同时表明后续有1字节的普通编码(后七位代表字节数);0xC3是前8位普通编码的数据流0b1100 0011;0x44位压缩编码控制码(基地址为0x40),同时表明后续有4字节的压缩编码;剩下的0x98、0x02、0x84、0x16为采用压缩编码传输的数据。需要注意的是,第二个控制码0x81采用跟基于变化量的同步编码策略当中相同的基地址,但后7位所代表的含义并不相同,通过是否有第一个控制码0x20将二者进行区分。
步骤S5,设计用户配置接口。
用户配置接口用于设定符合编码模式、压缩编码长度上限值等信息。
固定在磁盘上的用户配置文件。
采用配置文件作为用户配置接口是一种常用的方式,程序初始化阶段读取配置文件,获取其中的配置信息。配置文件当中可以采用JSON格式来组织配置信息,这样,上位机可以直接调用成熟的JSON库对其进行处理。
交互界面上的用户配置组件。
见图2左上角的串口信息,即为交互界面上的用户配置组件,用户可以实时对配置信息进行修改。
以上所述的多通道开关量复合编码设计方法具体实施例,通过将基于变化量的同步编码、基于连续量的压缩编码和普通编码进行融合,针对不同场景采用不同的编码方式,从而最优化实现多通道开关量的数据传输,保证传输双方数据状态的一致。本实施例本质上是将庞大的数据量切分成一个个相对独立的小数据体,从而避免了单次大量的数据传输过程所造成的阻塞、误码等问题。同时,各个独立的小数据体在校验和重发等机制的设计上也可以更加灵活,保证了数据的准确性,也方便后续程序的扩展和维护。
与前述多通道开关量复合编码设计方法的实施例相对应,本发明还提供了多通道开关量复合编码设计装置的实施例。
参见图4,本发明实施例提供的一种多通道开关量复合编码设计装置,包括存储器和一个或多个处理器,存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述实施例中的多通道开关量复合编码设计方法。
本发明多通道开关量复合编码设计装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明多通道开关量复合编码设计装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的多通道开关量复合编码设计方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种多通道开关量复合编码设计方法,其特征在于,包括以下步骤:
步骤S1、设计多通道开关量基于变化量的同步编码策略;
步骤S11、上位机人机交互程序获取用户操作后变化的通道号;
步骤S12、上位机计算通道号所在的分组号;
步骤S13、上位机获取同一组内其余通道的开关量,组成单组数据;
步骤S14、上位机向下位机发送指令和数据;
步骤S15、下位机收到指令和数据后作出回复,上位机对回复信息进行校验和处理,所述校验和处理过程用于保障上位机发送的内容与下位机接收的内容相一致;
步骤S2、设计多通道开关量压缩编码协议;
步骤S3、设计压缩编码协议有效性判断策略;
步骤S4、设计普通编码与压缩编码的协同编码机制;
所述步骤S4包括以下几种模式:所述压缩编码协议有效性判断策略采用基于编码结果对比的模式时,所述普通编码与压缩编码的协同编码机制采用二选一模式;所述压缩编码协议有效性判断策略采用基于跳变值计算的模式时,所述普通编码与压缩编码的协同编码机制采用分区间模式;
步骤S5、设计用户配置接口。
2.如权利要求1所述的一种多通道开关量复合编码设计方法,其特征在于,所述步骤S2中所述多通道开关量压缩编码协议基于连续的0或连续的1进行压缩编码。
3.如权利要求1所述的一种多通道开关量复合编码设计方法,其特征在于,所述步骤S3中所述压缩编码协议有效性判断策略,包括以下两种模式:基于编码结果对比的模式或基于跳变值计算的模式,所述跳变值在数据从0变为1或从1变为0时发生变化。
4.如权利要求3所述的一种多通道开关量复合编码设计方法,其特征在于,所述基于跳变值计算的模式,具体包含以下子步骤:
步骤S301、扫描通道开关量,计算并累加跳变值;
步骤S302、基于跳变值和限定值划分数据区间,所述限定值基于所述压缩编码协议确定,所述数据区间分为高跳变区间和低跳变区间。
5.如权利要求4所述的一种多通道开关量复合编码设计方法,其特征在于,所述步骤S302中所述数据区间分为高跳变区间和低跳变区间的方案为包括以下几种:
基于单次遍历,向后累加跳变值;
划分出无跳变区,将无跳变区扩展成为低跳变区,扩展方向优先兼容两个无跳变区的中间区域。
6.如权利要求1所述的一种多通道开关量复合编码设计方法,其特征在于,所述步骤S5包括以下两种形式:固定在磁盘上的用户配置文件或交互界面上的用户配置组件。
7.一种多通道开关量复合编码设计装置,其特征在于,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1-6中任一项所述的多通道开关量复合编码设计方法。
8.一种计算机可读存储介质,其上存储有程序,其特征在于,该程序被处理器执行时,用于实现权利要求1-6中任一项所述的多通道开关量复合编码设计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210000454.3A CN114003546B (zh) | 2022-01-04 | 2022-01-04 | 一种多通道开关量复合编码设计方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210000454.3A CN114003546B (zh) | 2022-01-04 | 2022-01-04 | 一种多通道开关量复合编码设计方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114003546A CN114003546A (zh) | 2022-02-01 |
CN114003546B true CN114003546B (zh) | 2022-04-12 |
Family
ID=79932493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210000454.3A Active CN114003546B (zh) | 2022-01-04 | 2022-01-04 | 一种多通道开关量复合编码设计方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003546B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101189661A (zh) * | 2005-03-30 | 2008-05-28 | 弗劳恩霍夫应用研究促进协会 | 用于产生数据流和产生多通道表示的设备和方法 |
CN102053576A (zh) * | 2010-11-11 | 2011-05-11 | 四川省绵阳西南自动化研究所 | 一种数据采集系统多通道循环控制方法 |
CN103078934A (zh) * | 2012-12-29 | 2013-05-01 | 东南大学 | 一种基于协同优化符号位编码的车载网数据分发方法 |
CN103227920A (zh) * | 2013-04-03 | 2013-07-31 | 南京信息工程大学 | 一种多通道卫星图像无损压缩方法 |
CN103262462A (zh) * | 2010-10-19 | 2013-08-21 | 意法爱立信有限公司 | 在高速串行接口通信系统中使用选择性字节同步的省电模式的系统和方法 |
CN105046911A (zh) * | 2015-06-29 | 2015-11-11 | 瑞斯康达科技发展股份有限公司 | 一种多通道开关量传输方法及装置 |
CN105915227A (zh) * | 2016-04-08 | 2016-08-31 | 苏州大学 | 自适应的混合的数据无损压缩系统 |
CN205748484U (zh) * | 2016-06-24 | 2016-11-30 | 湖北师范大学 | 一种基于fpga的多通道数据采集系统 |
CN107329571A (zh) * | 2017-06-29 | 2017-11-07 | 华南理工大学 | 一种面向虚拟现实应用的多通道自适应脑机交互方法 |
CN113827249A (zh) * | 2021-09-28 | 2021-12-24 | 之江实验室 | 一种消除脑电信号采集系统多通道增益误差的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8205132B2 (en) * | 2007-05-07 | 2012-06-19 | Lingna Holdings Pte., Llc | Cooperative concatenated coding for wireless systems |
CN104702309A (zh) * | 2015-01-28 | 2015-06-10 | 水利部交通运输部国家能源局南京水利科学研究院 | 河工模型试验多通道的无线收发通信系统 |
CN112181883B (zh) * | 2020-09-24 | 2022-11-08 | 深圳市乐唯科技开发有限公司 | 一种串口通讯的数据传输方法、系统及存储介质 |
-
2022
- 2022-01-04 CN CN202210000454.3A patent/CN114003546B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101189661A (zh) * | 2005-03-30 | 2008-05-28 | 弗劳恩霍夫应用研究促进协会 | 用于产生数据流和产生多通道表示的设备和方法 |
CN103262462A (zh) * | 2010-10-19 | 2013-08-21 | 意法爱立信有限公司 | 在高速串行接口通信系统中使用选择性字节同步的省电模式的系统和方法 |
CN102053576A (zh) * | 2010-11-11 | 2011-05-11 | 四川省绵阳西南自动化研究所 | 一种数据采集系统多通道循环控制方法 |
CN103078934A (zh) * | 2012-12-29 | 2013-05-01 | 东南大学 | 一种基于协同优化符号位编码的车载网数据分发方法 |
CN103227920A (zh) * | 2013-04-03 | 2013-07-31 | 南京信息工程大学 | 一种多通道卫星图像无损压缩方法 |
CN105046911A (zh) * | 2015-06-29 | 2015-11-11 | 瑞斯康达科技发展股份有限公司 | 一种多通道开关量传输方法及装置 |
CN105915227A (zh) * | 2016-04-08 | 2016-08-31 | 苏州大学 | 自适应的混合的数据无损压缩系统 |
CN205748484U (zh) * | 2016-06-24 | 2016-11-30 | 湖北师范大学 | 一种基于fpga的多通道数据采集系统 |
CN107329571A (zh) * | 2017-06-29 | 2017-11-07 | 华南理工大学 | 一种面向虚拟现实应用的多通道自适应脑机交互方法 |
CN113827249A (zh) * | 2021-09-28 | 2021-12-24 | 之江实验室 | 一种消除脑电信号采集系统多通道增益误差的方法 |
Non-Patent Citations (3)
Title |
---|
Cooperative Multiple-Access Encoding With States Available at One Transmitter;Anelia Somekh-Baruch等;《 IEEE Transactions on Information Theory》;20080916;全文 * |
基于DSP和AVR串行通信的矿井低压真空馈电开关研究和开发;李学斌等;《电气应用》;20120831;第31卷(第16期);第46-51页 * |
某多通道采编存储器的设计与实现;某多通道采编存储器的设计与实现;《中国优秀硕士学位论文全文数据库(电子期刊)》;20190915;第2019年卷(第9期);第C031-77页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114003546A (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5028260B2 (ja) | デジタル映像符号化方法、デジタル映像情報ストリームの圧縮方法、及びデジタル映像転送方法 | |
CN106034241A (zh) | 一种多媒体重定向的方法、设备和系统 | |
CA2448511A1 (en) | Picture coding method and picture decoding method | |
CN116506073B (zh) | 一种工业计算机平台数据快速传输方法及系统 | |
CN108366294A (zh) | 一种视频裁剪方法及装置 | |
CN104837052A (zh) | 播放多媒体数据的方法及装置 | |
CN109640120A (zh) | 一种高并发音视频媒体数据网络传输方法及装置 | |
CN1112340A (zh) | 扰频传送装置和信号处理装置 | |
CN105451071A (zh) | 一种视频流的处理方法、装置和系统 | |
CN113992966B (zh) | 重定向方法、装置、设备、存储介质及程序产品 | |
CN104468044A (zh) | 应用于网络传输中的数据压缩的方法及装置 | |
AU2002234168B2 (en) | Method and apparatus for encoding information using multiple passes and decoding in a single pass | |
CN111865952A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
AU2002234168A1 (en) | Method and apparatus for encoding information using multiple passes and decoding in a single pass | |
CN114003546B (zh) | 一种多通道开关量复合编码设计方法和装置 | |
WO2024159932A1 (zh) | 设备配对方法、装置、计算机设备及计算机可读存储介质 | |
CN112290953B (zh) | 多道数据流的阵列编码装置和方法、阵列解码装置和方法 | |
CN106815128A (zh) | 日志输出方法及装置、电子设备 | |
CN111318012B (zh) | 游戏数据的传输方法及装置 | |
CN108093258A (zh) | 码流数据的解码方法、计算机装置及计算机可读存储介质 | |
CN109741756B (zh) | 基于usb外接设备传输操作信号的方法及系统 | |
CN105727556A (zh) | 一种图像绘制的方法、相关设备及系统 | |
CN105099571B (zh) | 一种音频通信方法 | |
CN103888586A (zh) | 一种传输数据的方法和终端 | |
US8938019B2 (en) | Data transmitting device and data transmitting/receiving method |
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 |