基于改进LZW压缩算法的发动机参数采集系统研究.docxVIP

基于改进LZW压缩算法的发动机参数采集系统研究.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于改进LZW压缩算法的发动机参数采集系统研究

基于改进LZW压缩算法的发动机参数采集系统研究   摘 要:随着车联网技术的不断发展,海量数据传输和存储成为关键问题,普通压缩算法压缩效率难以满足需要。根据LZW算法原理,结合车联网系统中发动机参数数据传输特点,对LZW算法的字典初始化、字典查找方式、字典大小进行改进,并应用于车联网系统。现场测试结果表明,当数据达到一定量后,改进的LZW压缩算法性能趋于稳定,压缩率较普通LZW压缩算法提高了30%,满足了发动机系统数据压缩的应用需求。   关键词:LZW算法;车联网;数据压缩;字典编码   DOIDOI:/   中图分类号:TP319   文献标识码:A 文章编号:1672--0152-03   0 引言   随着电子技术的不断进步,发动机监测技术已从简单控制发展到现代电子控制。为了减少线束、提高信号利用率、共享和传输大批量发动机运行状态参数,车联网成为汽车电子化发展的重要环节[1]。为了准确采集与分析发动机运行状态参数,需对发动机运行状态参数实时采集,传输给上位机。由于采集频率较高,庞大的数据量不仅给网络传输带来拥塞,而且给数据库存储带来巨大压力[2]。对此,除了优化数据库的存储结构外,数据压缩尤为重要。LZW算法以其独特的优点广泛应用于数据压缩领域。LZW算法可以有效利用字符出现次数的冗余度进行压缩,自适应产生字典,对数据流中重复出现的字节和字串,LZW压缩技术具有很高的压缩比[3]。   1 发动机参数采集系统组成   发动机参数采集系统主要由两大部分组成:①无线数据模块,由主控制器芯片MC9S08DZ60组成数据采集单元。电子控制单元通过CAN总线采集ECU节点数据,CAN模块接口电路作为通信桥梁。根据TCP/IP协议,通过GPRS与上位机实现多机串口通信;②基于客户/服务器结构,以数据库技术为核心,编写数据采集管理系统并通过多线程技术开发基于TCP协议的多客户机/服务器通信程序[4],采用Web 技术,开发一个基于 B/S 模式的远程查询和分析系统。本文主要研究第①部分,如图1所示。   系统由无线数据模块、服务器软件和用户终端3个模块组成。本文研究的是无线数据模块和数据压缩。    无线数据模块设计   无线数据模块包含硬件和软件两部分。软件按照分层架构,分为接口层和应用层,接口设计成函数调用型底层软件,应用层实现通信与控制功能。对于不同的应用对象和功能需求,可修改和添加功能以满足需要。系统组成如图2所示。    数据处理模块设计   数据采集完后需要进行一系列处理,使其更好地传输,主要包括数据分类、转化。之后,为了方便传输,减少带宽,缓解数据库存储压力,对转化后的数据进行预处理和压缩。上下位机的通信按照已经定义好的通信协议进行。   每帧数据中的ID号代表数据类型,首先根据ID对数据进行分类,之后读取参数值,流程如图3所示。   2 数据压缩    LZW编码原理   LZW编码器是一种贪婪分析算法,每次对字符的编码都要顺序检查输入的数据流,从字典中找出已经出现过的最长字符串,并输出对应的索引值[5]。LZW编码算法实现步骤:①将字典中的0-255项初始化,当前前缀P为空;②将字符流中第一个字符存入当前字符串P中;③输入下一个字符串x,然后判断P+x是否在字典中。若是,P=P+x,若否,输出代表当前前缀P的码字,并把字符串P+x添加到字典,再令P=x;④判断当前码字流中是否还有码字要编码。若有,返回步骤②,若没有,将当前字符串的编码输出即可,程序结束。    数据预处理模块   无线数据模块采集完参数后,存入芯片的RAM区,在进行LZW压缩前,需要对采集的参数作预处理,数据结构如图4所示。   无线数据模块主要采集心跳信息、发动机参数信息和GPS位置信息3种数据,如图5所示。   在通信协议中,定义了不同的端口号和标识符对其进行接收。这3种数据的端口号和标识符是对应的,处理步骤:①去掉端口号和标识符,用m,n和h代替;②因为系统采集的发动机参数有96种之多,为了方便后续字典查找,本系?y对96种发动机参数设置索引,参数索引值加入LZW编码的前缀直接存储在字典中[6]。    字典初始化改进   在LZW算法中,首先按码表初始化256个字符,这就是字典的初始项,实际是用典型16位指针表示。数据压缩算法的主要改进思想是利用变字长的码字进行编码,通过编码过程设置步骤号来改进编码的存储字节数[5]。假设现在的位号为1,要输出其编码的位数,其位数为整数,压缩过程和解码过程一一对应,则可以通过步骤号来准确判断编码位数,从而得到正确的解码。发动机参数的内容多为发动机运行状态参数信息、故障代码等,以十六进制进行存储发送,发动机参数为0,1,3,4,5,6,7,8,9,A,B,C,D,E,F这16种字符格式。首先初始化前16项,

文档评论(0)

manyu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档