at89c51想连接上GPRS模块,通过该模块上网,接受网上服务器信息,
如果要实现这样做得话,at89c51和GPRS模块之间是不是应该加一个集成了TCP/IP协议栈的网络模块才行呢
如果是得话,这个网络模块选哪个呢?如果不是的话,又该如何设计单片机跟互联网(不是以太网)的通信呢?
我的想法其实很简单,仅仅是通过单片机连接GPRS/3G模块,无线连接到web service服务器,通过在单片机中使用C语言模拟soap协议格式调用web service,得到返回的值结果。
最初我的想法很简单,返回之后将串行数据通过GRPS/3G模块返回给单片机,使用C语言通过正则表达式过滤出传回来的需要的串行数据就行了,但是看了些文章,文章中总是描述单片机没有内嵌TCP/IP栈协议,需要的网络模块的转换支持,好像没有嵌TCP/IP栈协议的网络模块就不可工作了似的。
由于我对tcp/IP协议的底层运作机理不是很清楚,我认为如果只是取出web service中返回的数据,而没有别的跟网络交互的要求的话,将传回来的数据流过滤即可行。当然,返回到、甚至经过GPRS/3G模块的返回的数据流究竟是什么格式,我不太清楚。
不知以上我的方案是否可行,如果不可行非要加上一个网络模块来进行解释的话,我该选什么模块放在at89c51和GPRS模块之间呢?还是有现成的可用于无限上网通讯的单片机产品呢?
大家帮我参谋参谋
------解决方案--------------------
上网的协议比较复杂,需要支持TCP/IP协议才成。
首先,在单片机与GPRS模块之间,必须要有一片支持网络底层物理协议的专用芯片;
其次,单片机本身还需要有TCP/IP协议栈。这个软件工作量不是一般简单编程能够实现的,而且AT89C51的存储空间、运行速度都根本不足。
我见过使用ATMEGA103(相当于现在的MEGA128)来做网络应用的,AVR公司网站有过相关的技术文档。但是,也仅仅是实现了一部分功能。
上网需要相对完整的TCP/IP协议,这是相当复杂的工作。
------解决方案--------------------
找个带tcp/ip的gprs模块就是了
其实麻烦的不光是tcp/ip协议栈,web service是基于http协议的,你http协议打算怎么处理?
------解决方案--------------------
REWIND GPRS SYSTEM
Technical data:
Power supply: 5 to 32Vcc
Dimensions: 106x90x58 mm
Power consumption : 55mA a 24Vdc and 85 a 12Vdc
Connectors:
Power: Terminal Block (J1) 2 pin screw
Digital Outputs: terminal (J1) 4 PIN screw
Digital inputs: terminal (J2) 9 pin screw
Data: RS232 9-pin Male
GSM Antenna: SMA female
GPS Antenna: SMA female
SIM plug-in 3V and 1.8 V
这个比较贵,
------解决方案--------------------
我才发现楼主你要用51做啊?web service返回的是xml,一次至少几百个字节,多则上k,冗余数据太多。你要用正则的话至少要收全了数据才能用,怕你内存不够用。
还有,51下有正则的库吗?