wangsen 发表于 2016-12-4 18:14:11

GPRS数据包压缩难题-求帮助

最近做项目,单片机是用的MSP430F5438A,采集终端数据,然后通过GPRS上传到服务器,数据上传时要求压缩,压缩方式如图片所示。查了一下资料发现,gzip的库在430上根本无法应用,查了不少资料,都讲的是如何应用gzip的库,没有找到如何能让它在430这样的单片机上运行,是我的方向错了?还是……
完全蒙逼了,到底要如何实现呢?求帮助啊?求建议……

jasonzhu8888 发表于 2016-12-4 18:41:46

光这个流程图哪行啊

河图洛书 发表于 2016-12-5 09:14:40

楼主用的什么方案的gprs模块啊,我用的sim928a

dadongleilei 发表于 2016-12-5 09:25:05

跑压缩算法的话,对内存要求挺高的,一般单片机的内存很难实现的

lou0908 发表于 2016-12-5 09:36:56

minilzo,楼主可以去看看,一般来说,压缩所需的内存要被压缩数据的两倍

wangsen 发表于 2016-12-5 10:20:34

jasonzhu8888 发表于 2016-12-4 18:41
光这个流程图哪行啊

就给了个这个流程图,我问过他们,人家服务器上是直接调用GZIP的库进行的解压和压缩。要求我这边压缩的数据包他们可以直接解压,并能解压他们发过来的数据包。可是我这单片机上用不成那个库,库说明需要分配最小32kb的窗口,我单片机总共才16k,正在分析库源码,看能不能改一下,在单片机上用。大侠可有什么建议?期待……

wangsen 发表于 2016-12-5 10:23:02

河图洛书 发表于 2016-12-5 09:14
楼主用的什么方案的gprs模块啊,我用的sim928a

我用的是M6310,中移的模块。

wangsen 发表于 2016-12-5 10:29:07

lou0908 发表于 2016-12-5 09:36
minilzo,楼主可以去看看,一般来说,压缩所需的内存要被压缩数据的两倍

服务器用的是gzip,我只能去兼容他们的格式。其它格式人家不认可呢……

qtechzdh 发表于 2016-12-5 10:50:53

估计没戏

jasonzhu8888 发表于 2016-12-5 11:25:48

1、要么自己写个优化的算法,使得当前cpu可以支持
2、要么换cpu
3、还有一种自己搞个网关,把下位的数据接收后gzip压缩,发送给对方接口。

感觉第三种最合适

tcm123 发表于 2016-12-5 11:28:05

数据量小的话压缩没太大意义, 数据多你内存肯定不够

snowy 发表于 2016-12-5 12:13:14

弄个OPENWRT 模块装上,把GPRS交由OPENWRT处理

acmilannast 发表于 2016-12-5 18:22:04

gzip是UNIX下的一种数据格式。
gzip是在zlib之上,包了一层,在头和尾添加了一些额外的信息。
找到zlib的开源库 移植到你的mcu上。
mcu资源不一定够。。。{:sweat:}{:sweat:}{:sweat:}

trave_yang 发表于 2016-12-5 18:31:05

最好是后台配合改协议,单片机搞压缩不可能实现的!

pentong 发表于 2016-12-5 20:23:25

换单片机吧

xpstudio2011 发表于 2016-12-5 20:26:50

把你的压缩率设为1.

也就是根本不压缩,只是打个gzip格式的包。



我也不太懂哈。我觉得应该可行。

farmerzhangdl 发表于 2016-12-5 20:27:36

这个要求好奇葩。。。。

redroof 发表于 2016-12-5 21:12:11

xpstudio2011 发表于 2016-12-5 20:26
把你的压缩率设为1.

也就是根本不压缩,只是打个gzip格式的包。


对,手写个正确的但实际完全没压缩的格式就行了。应该不耗你内存,肯定能符合标准。

redroof 发表于 2016-12-5 21:16:46

wangsen 发表于 2016-12-5 10:29
服务器用的是gzip,我只能去兼容他们的格式。其它格式人家不认可呢……

正常http就是自带gzip压缩的,但要你客户端特别说明自已支持gzip才行。普通浏览器肯定都支持了,但你如果只是个小单片机,不支持也没事,服务器会给你不压缩的内容。
这才是正道。

wangsen 发表于 2016-12-6 22:08:41

jasonzhu8888 发表于 2016-12-5 11:25
1、要么自己写个优化的算法,使得当前cpu可以支持
2、要么换cpu
3、还有一种自己搞个网关,把下位的数据接 ...

打算试试你说的第一种方法,研究算法中……

gongxd 发表于 2016-12-6 22:19:51

不用想也不用搞了 mcu搞不定的
换个跑嵌入式linux的才是正道,现在成品的百十元可以拿下
页: [1]
查看完整版本: GPRS数据包压缩难题-求帮助