CN100433747C - 一种高效的嵌入式电力数据传输编解码方法 - Google Patents
一种高效的嵌入式电力数据传输编解码方法 Download PDFInfo
- Publication number
- CN100433747C CN100433747C CNB2003101214122A CN200310121412A CN100433747C CN 100433747 C CN100433747 C CN 100433747C CN B2003101214122 A CNB2003101214122 A CN B2003101214122A CN 200310121412 A CN200310121412 A CN 200310121412A CN 100433747 C CN100433747 C CN 100433747C
- Authority
- CN
- China
- Prior art keywords
- message
- data
- sign
- coding
- decoding
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种高效的嵌入式电力数据传输编解码方法。编码方法包括:初始化步骤:申请动态缓冲区并将动态缓冲区予以初始化;编码步骤:向动态缓冲区填写数据报文进行编码并产生标识信息;发送步骤:根据标识信息,移动指针取出编码结果并发送。该解码方法,包括接收步骤:从网络层接收编码的数据报文;初始化步骤:申请动态缓冲区并将动态缓冲区予以初始化;解码步骤:根据标识信息从动态缓冲区中取出数据报文进行解码;产生响应报文步骤:依据解码信息产生相应报文。针对报文的内存直接编/解码策略以及高效的编/解码方法,在系统资源有限的嵌入式系统下,实现了最大报文在微秒级完成编/解码,直接送交应用层或底层网络,解除了此处的瓶颈。
Description
技术领域
本发明涉及电子及通信领域,尤其涉及一种高效的嵌入式电力数据传输编解码方法。
技术背景
协议的编/解码方法,处于开放式互连模型OSI七层协议的第6层即表示层,它是连接应用层数据对象和底层网络传输的纽带,所以编/解码方法的效率直接影响报文传输的实时性,尤其在嵌入式系统中,有限的系统资源,要求必须设计出高效的编/解码方法来弥补系统资源的不足,一旦处理不好,则会成为报文传输的瓶颈。
采用传统的编/解码方法会针对不同服务的报文编/解码存在着内存申请、拷贝过程,增加了程序占用的空间,影响了程序的效率。
发明内容
本发明的目的就是提出一种新的、高效的嵌入式电力数据传输编解码方法,以解决传统的数据传输编码在嵌入式系统应用中存在的效率低问题,为此,本发明采用如下技术方案:
一种嵌入式电力数据传输编码方法,其特征在于包括:
初始化步骤:申请动态缓冲区并将动态缓冲区予以初始化,该动态缓冲区的数据结构包括报文主体、报文头和报文尾,对应报文主体、报文头和报文尾分别设置编码长度标识、数据索引标识和数据标记标识;
编码步骤:向动态缓冲区的报文头部和报文尾部填写数据报文进行编码并产生所述编码长度标识、数据索引标识和数据标记标识;
发送步骤:根据所述编码长度标识、数据索引标识和数据标记标识,移动指针取出编码结果并发送。
所述的编码步骤,进一步包括:
a、调用服务编码函数;
b、按照动态编码缓冲区的数据结构填写数据报文;
c、产生编码长度标识、数据索引标识和数据标记标识。
所述的编码缓冲区的最大容量为8192字节。
一种嵌入式电力数据传输解码方法,其特征在于包括
接收步骤:从网络层接收编码的数据报文;
初始化步骤:申请动态缓冲区并将动态缓冲区予以初始化,该动态缓冲区的数据结构包括报文主体、报文头和报文尾,对应报文主体、报文头和报文尾分别设置编码长度标识、数据索引标识和数据标记标识;
解码步骤:根据所述编码数据报文的编码长度标识、数据索引标识和数据标记标识从动态缓冲区的报文头部和报文尾部取出数据报文进行解码;
产生响应报文步骤:依据解码信息产生相应报文。
所述的解码步骤,进一步包括:
a、调用服务解码函数;
b、从解码缓冲区中取出编码长度标识、数据索引标识和数据标记标识;
c、按照动态编码缓冲区的数据结构提取数据报文。
所述的编码缓冲区的最大容量为8192字节。
本发明技术方案的采用,使报文在表示层滞留的时间缩短,加快报文的传输。
附图说明
图1是请求/响应原语的编/解码过程示意图;
图2是本发明编/解码缓冲区结构示意图;
图3是本发明请求服务过程编码缓冲区的状态变迁示意图;
图4是本发明请求服务编码流程示意图;
图5是本发明响应服务解码流程示意图。
具体实施方式
下面结合说明书附图来说明本发明的具体实施方式。
编/解码方法的高效、快速,必然使报文在表示层滞留的时间缩短,加快报文的传输。本发明提出针对报文的内存直接编/解码策略以及高效的编/解码方法,解除了此处的瓶颈。
如图1是基于客户/服务器模式的请求/响应原语编/解码过程,虚线部分描述了传统的编/解码过程,实线部分描述了本发明提出的编/解码过程。从图中可见,本发明以动态缓冲区的形式来替代传统的传输编码过程中的编码内存拷贝形式,以提高传输的效率。编/解码方法的高效、快速,必然使报文在表示层滞留的时间缩短,加快报文的传输。本发明提出针对报文的内存直接编/解码策略以及高效的编/解码方法,解除了此处的瓶颈。
首先阐述动态编/解码缓冲区的数据结构,它是实现快速编/解码的基础。如图2所示为本发明使用的编/解码缓冲区(BuffPtr)的结构示意图,依据应用层一次最大可传输的报文大小,本发明中设计该动态缓冲区的最大容量为8192个字节,但其他容量的设计也并非不可。为了对报文头部和尾部进行任意操作,如将变量名称和数据同时填入报文,本发明的结构引入数据索引Index和数据标记Token,分别对应报文的头部和尾部操作标识,对应的操作包括:①Index--即从报文头部插入编码内容,②Index++从报文头部添加编码内容,③Token--即从报文尾部插入编码内容,④Token++即从报文末尾添加编码内容。
在本发明的编码方法中,首先要对上述的动态缓冲区进行初始化操作:申请动态缓冲区并将动态缓冲区予以初始化,该动态缓冲区的数据结构包括报文主体、报文头和报文尾,对应报文主体、报文头和报文尾分别设置编码长度标识、数据索引标识和数据标记标识。
如下图3所示为请求服务编码缓冲区的状态变迁图,服务启动以前,系统就初始化好了缓冲区,即进入A状态:
令BuffLen=8192,Index=0,Token=0;
然后对数据报文进行编码,向动态缓冲区填写数据报文进行编码并产生标识信息;编码的过程就是接收从应用层送来的数据包,经过ASN.1语法的处理和基本编码规则BER形成实际可被传送数据比特流。
服务启动后,调用服务编码功能,向缓冲区填入报文的编码信息,即B状态;编码完成后,取出编码长度和索引号,即C状态。
随后依据编码长度和Index移动指针BufPtr取出报文编码结果并发送出去,即D状态。整个状态变迁配合着通信服务周而复始地进行,完成报文的快速编码过程。
如图4是编码方法的流程图。图4中的请求服务编码方法与图3的缓冲区状态变迁是对应的,客户端在请求服务之前初始化编码缓冲区,请求服务命令发出后,在表示层调用服务编码函数处理编码,并把编码信息填入编码缓冲区。随后传递编码的结果和长度到网络层,由网络层发出请求信息报文到服务器端。
响应服务的编码方法可形式化描述为:
Encoding_Algorithms
{ Application_Request()
XXX_Request_Encode()
Init_Buffer()
Fill_Buffer_With_Message()
Service_Encode()
Confirm_Request_Encode()
If Encoding Ok Then Continue
Else Exit
Send_Request_Code()
Get_Message_Length()
Send_Code()
RFC1006_Send()
TCPIP_Send()
If Send Ok Then Return Message_Length
Else Return Error_Message;
}
本发明的解码过程就是从接收的解码缓冲区中取出报文的编码标识,然后取出长度和报文信息,返回给用户实际可应用的数据,解码实际上是编码的逆过程。如图5是服务器端的响应服务解码流程图,服务器依据网络层的指示,从网络层取出报文,并对该报文进行解码,同时依据解码信息产生响应报文的编码,即解码结束的同时产生了响应报文的编码比特串,并发送出去,而且两个过程并行运作,互为关联,协调处理。这样极大地缩短了报文的响应时间,使客户端的请求能得到快速的响应。
响应服务的解码方法可形式化描述为:
Decoding_Algorithms
{ While Network_Detect()
If Receive_Message_From_Network()Then
TCPAccept_Message()
RFC1006_Accept_Message()
Indication_To_Decoding()
Init_Buffer()
Send_Message_To_Application()
Begin Decoding()
Init_Response_Buffer()
Decode_Request_Buffer()
Response_Encoding()
If Decoding_Message_Ok Then Continue
Else Response Error Message
Confirmed_Response_Encode()
Send_Code_Message()
Get_Message_Length()
Send_Code()
RFC1006_Send()
TCPIP_Send()
IF Send Ok Then Return Message_Length
Else Return Error_Message;
}
本发明针对报文的内存直接编/解码策略以及高效的编/解码方法,实现了大小为8KB的最大报文,在微秒级完成编/解码,直接送交应用层或底层网络,解除了此处的瓶颈。在主频66MHz的32位嵌入式微处理器和嵌入式RTOS平台下进行了测试,报文编码延时294μs,解码延时678μs。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (4)
1、一种嵌入式电力数据传输编码方法,其特征在于包括:
初始化步骤:申请动态缓冲区并将动态缓冲区予以初始化,该动态缓冲区的数据结构包括报文主体、报文头和报文尾,对应报文主体、报文头和报文尾分别设置编码长度标识、数据索引标识和数据标记标识;
编码步骤:向动态缓冲区的报文头部和报文尾部填写数据报文进行编码并产生所述编码长度标识、数据索引标识和数据标记标识;
发送步骤:根据所述编码长度标识、数据索引标识和数据标记标识,移动指针取出编码结果并发送。
2、如权利要求1所述的方法,其特征在于所述的编码步骤,进一步包括:
a、调用服务编码函数;
b、按照动态编码缓冲区的数据结构填写数据报文;
c、产生编码长度标识、数据索引标识和数据标记标识。
3、一种嵌入式电力数据传输解码方法,其特征在于包括
接收步骤:从网络层接收编码的数据报文;
初始化步骤:申请动态缓冲区并将动态缓冲区予以初始化,该动态缓冲区的数据结构包括报文主体、报文头和报文尾,对应报文主体、报文头和报文尾分别设置编码长度标识、数据索引标识和数据标记标识;
解码步骤:根据所述编码数据报文的编码长度标识、数据索引标识和数据标记标识从动态缓冲区的报文头部和报文尾部取出数据报文进行解码;
产生响应报文步骤:依据解码信息产生相应报文。
4、如权利要求3所述的方法,其特征在于所述的解码步骤,进一步包括:
a、调用服务解码函数;
b、从解码缓冲区中取出编码长度标识、数据索引标识和数据标记标识;
c、按照动态编码缓冲区的数据结构提取数据报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101214122A CN100433747C (zh) | 2003-12-16 | 2003-12-16 | 一种高效的嵌入式电力数据传输编解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101214122A CN100433747C (zh) | 2003-12-16 | 2003-12-16 | 一种高效的嵌入式电力数据传输编解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1630286A CN1630286A (zh) | 2005-06-22 |
CN100433747C true CN100433747C (zh) | 2008-11-12 |
Family
ID=34844191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003101214122A Expired - Fee Related CN100433747C (zh) | 2003-12-16 | 2003-12-16 | 一种高效的嵌入式电力数据传输编解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100433747C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI574278B (zh) * | 2014-09-24 | 2017-03-11 | 旺宏電子股份有限公司 | 指令處理之方法與裝置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100464521C (zh) * | 2007-04-30 | 2009-02-25 | 国电南京自动化股份有限公司 | 电力系统所见即所传、所需即所传动态数据传输方法 |
CN101119173B (zh) * | 2007-08-30 | 2010-12-08 | 中兴通讯股份有限公司 | 时分同步码分多址系统层三消息的编解码方法 |
CN102595107A (zh) * | 2012-02-22 | 2012-07-18 | 南京迪威视讯技术有限公司 | 一种流媒体数据结构、解码方法及设备 |
CN103475651B (zh) * | 2013-09-03 | 2016-08-24 | 广西慧云信息技术有限公司 | 一种基于数据单元的数据传输方法 |
CN103546466B (zh) * | 2013-10-15 | 2017-03-08 | 华为技术有限公司 | 一种多业务交互处理的方法和网络设备 |
CN104980433B (zh) * | 2015-05-18 | 2017-11-28 | 熊猫电子集团有限公司 | 一种移动终端协议栈的消息处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1179039A (zh) * | 1996-09-13 | 1998-04-15 | 菲利浦电子有限公司 | 处理地区专用和超地区道路或区域标记用的rds-tmc无线电接收机 |
US6195768B1 (en) * | 1998-12-16 | 2001-02-27 | Samuel I. Green | System and method for monitoring high speed data bus |
CN1440167A (zh) * | 2003-03-28 | 2003-09-03 | 北京港湾网络有限公司 | 宽带通信数据传输方法 |
US20030206519A1 (en) * | 2002-05-03 | 2003-11-06 | Michael Sanders | System and method for encoding and decoding messages |
-
2003
- 2003-12-16 CN CNB2003101214122A patent/CN100433747C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1179039A (zh) * | 1996-09-13 | 1998-04-15 | 菲利浦电子有限公司 | 处理地区专用和超地区道路或区域标记用的rds-tmc无线电接收机 |
US6195768B1 (en) * | 1998-12-16 | 2001-02-27 | Samuel I. Green | System and method for monitoring high speed data bus |
US20030206519A1 (en) * | 2002-05-03 | 2003-11-06 | Michael Sanders | System and method for encoding and decoding messages |
CN1440167A (zh) * | 2003-03-28 | 2003-09-03 | 北京港湾网络有限公司 | 宽带通信数据传输方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI574278B (zh) * | 2014-09-24 | 2017-03-11 | 旺宏電子股份有限公司 | 指令處理之方法與裝置 |
Also Published As
Publication number | Publication date |
---|---|
CN1630286A (zh) | 2005-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rand | The PPP compression control protocol (CCP) | |
RU2004114237A (ru) | Способ инициируемой сервером синхронизации в системе синхронизации, где сообщение запроса от сервера имеет максимальный размер | |
CN107070990B (zh) | 数据资源传输的方法和设备 | |
JP2005505990A5 (zh) | ||
EP1779606B1 (en) | System and method for higher throughput through a transportation network | |
CN101371555A (zh) | 用于生成和发送信令消息的方法 | |
CN111083161A (zh) | 数据传输的处理方法及装置、物联网设备 | |
JP2014509483A (ja) | ワイヤレスネットワークにおけるトランスミッション・コントロール・プロトコルの性能を改善する機構 | |
CN102209079A (zh) | 一种基于tcp协议的自适应网络控制传输方法和系统 | |
EP1173948A4 (en) | DEVICE FOR TRANSMITTING / RECEIVING A BIT CURRENT IN A NETWORK AND METHOD FOR IT | |
JP2008178140A (ja) | データ要素の発信元と受信側を通じてdicom画像をストリーミングする方法と装置 | |
CN100433747C (zh) | 一种高效的嵌入式电力数据传输编解码方法 | |
CN110505123B (zh) | 丢包率的计算方法、服务器及计算机可读存储介质 | |
CN105530686B (zh) | 一种基于udp协议实现智能车载终端的接入方法 | |
WO2010031329A1 (zh) | 一种即时消息收发的方法、系统和设备 | |
CN101568144A (zh) | 一种适用于无线自组织网络的报头压缩方法 | |
US7706402B2 (en) | System and method for distributed processing of packet data containing audio information | |
CN109067754B (zh) | 一种请求端与服务端的通信方法及系统 | |
CN105933325A (zh) | 一种基于NFSoRDMA的内核态RPC通信加速方法 | |
CN115052049A (zh) | 一种基于IPsec隧道的报文转发方法及系统 | |
TW200302649A (en) | An interface and related methods for dynamic channelization in an Ethernet architecture | |
WO2022063058A1 (zh) | 基于netconf协议的传输方法、设备及存储介质 | |
CN104683065B (zh) | 一种面向深空通信的跨层联合文件传输方法及系统 | |
CN113938881A (zh) | 适用于互联网数据的传输系统及方法 | |
CN101030841B (zh) | 协议数据单元长度变化的通知方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081112 Termination date: 20131216 |