打印

求助:无线模块和GPRS的通信

[复制链接]
1631|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tiger84|  楼主 | 2007-9-8 16:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机用的是lpc2106,无线模块是CC1100,GPRS模块是MC39i。

无线模块和GPRS模块都有成熟的程序,直接拿着用就可以了。

我需要做的就是把无线模块的数据----》GPRS模块;
                GPRS模块的数据----》无线模块。

无线模块和GPRS模块在该MCU上单独使用,也都一切正常。

当我把无线模块和GPRS模块同时开时,出现的问题就是接收无线模块的数据总是会丢失。

原因也很清楚,收到无线模块的数据,就通过GPRS发出去,当用GPRS发数据时,无线模块仍然在接收数据,但此时,GPRS模块占用着CPU,无线模块数据就丢失了。

也曾想收完整个一包无线数据后,再通过GPRS发送,但是一包数据可能达到7.2K,在lpc2106里面好像开不了这么大的缓存区。

各位指点一下,谢谢。

相关帖子

沙发
chunyang| | 2007-9-8 21:52 | 只看该作者

只能选择合适的MCU或扩展缓冲存储器

使用特权

评论回复
板凳
tiger84|  楼主 | 2007-9-9 10:18 | 只看该作者

chunyang兄指教

板子要改的话,比较麻烦啊。

有可能是我的思路本来就是错误的,

我所要的目标就是一个中继,

    中继的无线模块收到数据后,把数据通过GPRS模块转发到服务器,

    服务器应答后,
  
    再把应答数据通过GPRS发给中继的无线模块,无线模块再转发出去。

chunyang兄有什么好的建议没?

使用特权

评论回复
地板
chunyang| | 2007-9-9 13:16 | 只看该作者

关键是你的转发数据量与转发速率的关系

对中继而言,要想数据不拥塞,要求发送端的速率必须大于等于接收端的速率,而双向的话,唯一的解就是“等于”了,但对于GPRS和无线数传而言,这是无论如何也做不到的,所以必须引入缓冲。缓冲可以由你的系统提供,也可以由模块提供,当然这要求模块能够支持才行。

使用特权

评论回复
5
tiger84|  楼主 | 2007-9-9 14:12 | 只看该作者

谢谢chunyang兄

每次chunyang兄的回答都让小弟受益匪浅,再次感谢。

问题已经解决了,就是在LPC2106里开了个大的缓冲区。

很惭愧,以前开不了这么大的缓冲区,是我没有设置好堆栈的大小。

使用特权

评论回复
6
oudi| | 2007-9-11 19:33 | 只看该作者

是不是这个原因?

你的无线模块不能连续传送大文件?

使用特权

评论回复
7
tiger84|  楼主 | 2007-9-11 22:26 | 只看该作者

恩,无线模块一次只能发送62个字节

上述的问题已经解决了,但是新的问题又出现了。



有时候GPRS传输的数据传输会延时,程序处理的过程不会导致这个GPRS数据延时,会不会是网络的问题,或者PPP协议有问题(所选MC39I不带协议栈,PPP协议是移植的)。

使用特权

评论回复
8
chunyang| | 2007-9-12 11:02 | 只看该作者

GPRS传输有延迟是正常的,跟网络繁忙度有关

所以才需要足够缓存啊

使用特权

评论回复
9
winloop| | 2007-9-13 17:07 | 只看该作者

肯定是网络的问题

但是gprs的上行数据丢不丢失?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

862

帖子

0

粉丝