System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及字节流通讯,具体涉及一种基于字节流通信的分帧传输方法。
技术介绍
1、目前在嵌入式应用中,尤其以串口通讯使用广泛,通讯协议出不穷,比如modbus、xmode、ymode。这些协议都有自己的应用方向也都有自己的缺点,且这些协议大都采用了时隙分帧或协议分帧、ascii传输,但在面对快速传输时难以准确分帧,传输效率低也会增加时间复杂度;以及在嵌入式芯片中使用空闲中断分帧(时隙分帧的一种),这使得软件较为依赖硬件平台。并且在面对上位机通讯时,除了ascii传输,上位机没有更加稳定可靠的处理分帧方法,由于上位机定时器中断时间精度无法达到微秒级,所以采用时间分帧时则不能友好支持高帧率传输,而仅依靠ascii传输只能以约50%的传输效率传输。
技术实现思路
1、本专利技术的目的在于,提供一种基于字节流通信的分帧传输方法,主要解决在字节流通讯中快速自由的通信场合下无法快速分帧的问题,尤其是在嵌入式应用中,通常需要借助超时机制或通讯协议解决分包的问题。
2、为实现上述目的,本专利技术采用的技术方案如下:
3、一种基于字节流通信的分帧传输方法,包括以下步骤:
4、s1、发送缓冲器将字节流数据的数据属性传递至编码资源分配器;
5、s2、编码资源分配器基于字节流数据的数据属性计算编码后所需的存储空间;
6、s3、帧流编码器基于计算的编码后所需的存储空间对字节流数据进行编码,得到编码数据,再通过字节流发送器将编码数据传送到目标端设备
7、s4、字节流接收器接收目标端设备的编码数据,解码资源分配器基于编码数据的数据属性计算解码后所需的存储空间;
8、s5、帧流解码器基于计算的解码后所需的存储空间对编码数据进行解码,得到还原数据,将还原数据存储到接收缓冲器。
9、进一步地,所述s3的编码操作中:将一帧字节流数据中每7个原字节数据中最高位的数据编码为1个新字节数据,具体为:对每个原字节数据中最高位的数据进行编码,得到一个编码结果,然后清零当前原字节数据最高位的数据,得到字节数据a;通过8位空间对每7个原字节数据的7个编码结果进行储存,生成1个新字节数据;将所有字节数据a拼合为一帧字节流数据a,再将所有新字节数据按生成顺序依次拼合在一帧字节流数据a后,得到编码数据。
10、进一步地,所述8位空间中,从左到右依次为低位空间1、低位空间2、低位空间3、低位空间4、低位空间5、低位空间6和最高位空间;7个低位空间的每一个空间用于储存1个编码结果,最高位空间用于储存一个分帧标识,所述分帧标识用于标记一帧字节流数据是否编码结束。
11、进一步地,所述分帧标识为0或1,当分帧标识为0时,表示一帧字节流数据未编码结束,当分帧标识为1时,表示一帧字节流数据已编码结束。
12、进一步地,所述8位空间中,编码结果的储存顺序从低位空间6依次到低位空间1。
13、进一步地,所述编码后所需的存储空间通过第一分段函数得到,具体如下:
14、若n≥7且n能被7整除时, ;
15、若0<n<7时,m=1;
16、若n>7且n不能被7整除时,;
17、s = n + m;
18、n表示一帧字节流数据中原字节数据的数据量,m表示编码数据中新字节数据的数据量,s表示编码后所需的存储空间,当s为非整数时,s向下舍入。
19、进一步地,所述解码后所需的存储空间通过第二分段函数得到,具体如下:
20、若a≥8且a能被8整除时,;
21、若0<a<8时,q = a - 1;
22、若a>8且a不能被8整除时,;
23、a表示解码前新字节数据的数据量,q表示解码后所需的存储空间,当q为非整数时,q向下舍入。
24、进一步地,所述s5的解码操作中:按新字节数据的生成顺序对编码数据中新字节数据依次解码,具体为:对每个新字节数据中7个低位空间的编码结果按储存顺序依次解码,得到解码结果,将每个解码结果写入一帧字节流数据a对应字节数据a的最高位中,得到还原数据。
25、进一步地,当新字节数据中最高位的分帧标识表示一帧字节流数据未编码结束,对下一个新字节数据进行解码;反之完成当前新字节数据解码后结束。
26、与现有技术相比,本专利技术具有以下有益效果:
27、本专利技术将字节流数据的字节数据8位数据拆为7位数据,同时将每7个字节数据的最高位的数据也就是每7个字节数据的第8位数据编码为1个新字节数据进行传输,最高位(第8位)表示传输分帧状态,稳定可靠,尤其在上位机和硬件设备做字节流通讯时,可以使数据在高帧率传输下保持稳定可靠的分帧,并且本专利技术的传输效率为87.5%,大大高于ascii明文传输效率的50%。
28、本专利技术传输是否完成只需要检测每字节数据的最高位是否被置位(分帧标识),为此允许一帧数据多包传输;本专利技术传输速度快,尤其在计算机-嵌入式设备通信支持hex高速通讯;由于非扩充ascii码也是7位传输,因此本专利技术兼容非扩充ascii传输,同时传输稳定可靠,不需要占用处理机的额外硬件资源,且仅需要简单的编码、解码即可实现准确高效的分帧。
本文档来自技高网...【技术保护点】
1.一种基于字节流通信的分帧传输方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于字节流通信的分帧传输方法,其特征在于,所述S3的编码操作中:将一帧字节流数据中每7个原字节数据中最高位的数据编码为1个新字节数据,具体为:对每个原字节数据中最高位的数据进行编码,得到一个编码结果,然后清零当前原字节数据最高位的数据,得到字节数据A;通过8位空间对每7个原字节数据的7个编码结果进行储存,生成1个新字节数据;将所有字节数据A拼合为一帧字节流数据A,再将所有新字节数据按生成顺序依次拼合在一帧字节流数据A后,得到编码数据。
3.根据权利要求2所述的一种基于字节流通信的分帧传输方法,其特征在于,所述8位空间中,从左到右依次为低位空间1、低位空间2、低位空间3、低位空间4、低位空间5、低位空间6和最高位空间;7个低位空间的每一个空间用于储存1个编码结果,最高位空间用于储存一个分帧标识,所述分帧标识用于标记一帧字节流数据是否编码结束。
4.根据权利要求3所述的一种基于字节流通信的分帧传输方法,其特征在于,所述分帧标识为0或1,当分帧标识为0时,表
5.根据权利要求3所述的一种基于字节流通信的分帧传输方法,其特征在于,所述8位空间中,编码结果的储存顺序从低位空间6依次到低位空间1。
6.根据权利要求2所述的一种基于字节流通信的分帧传输方法,其特征在于,所述编码后所需的存储空间通过第一分段函数得到,具体如下:
7.根据权利要求2所述的一种基于字节流通信的分帧传输方法,其特征在于,所述解码后所需的存储空间通过第二分段函数得到,具体如下:
8.根据权利要求3所述的一种基于字节流通信的分帧传输方法,其特征在于,所述S5的解码操作中:按新字节数据的生成顺序对编码数据中新字节数据依次解码,具体为:对每个新字节数据中7个低位空间的编码结果按储存顺序依次解码,得到解码结果,将每个解码结果写入一帧字节流数据A对应字节数据A的最高位中,得到还原数据。
9.根据权利要求8所述的一种基于字节流通信的分帧传输方法,其特征在于,当新字节数据中最高位的分帧标识表示一帧字节流数据未编码结束,对下一个新字节数据进行解码;反之完成当前新字节数据解码后结束。
...【技术特征摘要】
1.一种基于字节流通信的分帧传输方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于字节流通信的分帧传输方法,其特征在于,所述s3的编码操作中:将一帧字节流数据中每7个原字节数据中最高位的数据编码为1个新字节数据,具体为:对每个原字节数据中最高位的数据进行编码,得到一个编码结果,然后清零当前原字节数据最高位的数据,得到字节数据a;通过8位空间对每7个原字节数据的7个编码结果进行储存,生成1个新字节数据;将所有字节数据a拼合为一帧字节流数据a,再将所有新字节数据按生成顺序依次拼合在一帧字节流数据a后,得到编码数据。
3.根据权利要求2所述的一种基于字节流通信的分帧传输方法,其特征在于,所述8位空间中,从左到右依次为低位空间1、低位空间2、低位空间3、低位空间4、低位空间5、低位空间6和最高位空间;7个低位空间的每一个空间用于储存1个编码结果,最高位空间用于储存一个分帧标识,所述分帧标识用于标记一帧字节流数据是否编码结束。
4.根据权利要求3所述的一种基于字节流通信的分帧传输方法,其特征在于,所述分帧标识为0或1,当分帧标识为0时,表示一帧字节流数据...
【专利技术属性】
技术研发人员:阮琪璋,熊锐,李杨,袁超,
申请(专利权)人:成都量芯集成科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。