34071417 发表于 2013-7-25 13:49:10

基于MSP430F5342单片机的SIM900 GPRS 数据透明传输模块

之前自己发过帖子关于sim900模块的使用。
这次做了个sim900的透明传输模块,再次提供原理图以及源码,供大家参考学习。
单片机430F5342,gprs模块sim900,系统采用ucos 2.92版本;
开发环境IAR。
源码部分,有个lib库不开源。核心操作AT操作sim900全部开源



















ljt80158015 发表于 2013-7-25 14:23:24

本帖最后由 ljt80158015 于 2013-7-25 14:46 编辑

楼主有实现永久在线的功能吗?就是掉线自动重连。

solojimes 发表于 2013-7-25 14:28:46

基本在跟楼主做一样的东西

34071417 发表于 2013-7-26 16:42:12

ljt80158015 发表于 2013-7-25 14:23 static/image/common/back.gif
楼主有实现永久在线的功能吗?就是掉线自动重连。

永久在线,掉线重联,同时心跳包维持在线。

ljt80158015 发表于 2013-7-26 17:12:10

34071417 发表于 2013-7-26 16:42 static/image/common/back.gif
永久在线,掉线重联,同时心跳包维持在线。

心跳包是ping包实现的吗?

34071417 发表于 2013-7-26 21:55:35

ljt80158015 发表于 2013-7-26 17:12 static/image/common/back.gif
心跳包是ping包实现的吗?

不是,主动向服务器发送数据包。数据包可以包含一些公共信息,比如终端ID,同步时间等。

ljt80158015 发表于 2013-7-27 08:39:53

34071417 发表于 2013-7-26 21:55 static/image/common/back.gif
不是,主动向服务器发送数据包。数据包可以包含一些公共信息,比如终端ID,同步时间等。 ...

主动向服务器发送数据包?
tcp 还是 udp?

那服务器那边必须有一个对应的程序咯?

sedulity11 发表于 2013-7-27 09:00:00

不错,马克来看下

御风逍遥Fly 发表于 2013-7-27 09:11:55

mark,,GPRS..

34071417 发表于 2013-7-27 14:01:52

ljt80158015 发表于 2013-7-27 08:39 static/image/common/back.gif
主动向服务器发送数据包?
tcp 还是 udp?



对的。tcp udp采用那种连接无所谓。维持在线主要还是tcp连接

embeddev_1 发表于 2013-7-27 14:46:07

不错!标记!

ljt80158015 发表于 2013-7-28 07:41:16

34071417 发表于 2013-7-27 14:01:52 static/image/common/back.gif

对的。tcp udp采用那种连接无所谓。维持在线主要还是tcp连接

但是一般透传dtu的心跳,永久在线,服务器都不需要与之对应的程序的。

zzh90513 发表于 2013-7-28 08:07:04

楼主太棒了,叙述组织的太好了,非常感谢

lkl10800139 发表于 2013-7-28 10:04:53

工作电流好像蛮大

hdd961140543 发表于 2013-7-28 10:35:05

我也在和楼主做类似的东西,用的MSP430F1611+SIM900A,主要要求就是低功耗

EONE 发表于 2013-7-28 11:26:32

不错,收了

34071417 发表于 2013-7-28 16:48:02

ljt80158015 发表于 2013-7-28 07:41 static/image/common/back.gif
但是一般透传dtu的心跳,永久在线,服务器都不需要与之对应的程序的。

心跳包数据服务器开着就行,可以不用处理,只是用于不被基站踢掉连接。

34071417 发表于 2013-7-28 16:49:08

lkl10800139 发表于 2013-7-28 10:04 static/image/common/back.gif
工作电流好像蛮大

工作起来是的,gprs在线都要20ma,如果实际待机,关机状态,平均功耗还是很低的

ljt80158015 发表于 2013-7-28 17:08:39

34071417 发表于 2013-7-28 16:48:02 static/image/common/back.gif

心跳包数据服务器开着就行,可以不用处理,只是用于不被基站踢掉连接。

基站踢掉连接?不是很明白?

34071417 发表于 2013-7-28 19:11:06

ljt80158015 发表于 2013-7-28 17:08 static/image/common/back.gif
基站踢掉连接?不是很明白?

就是连接服务器后,没有和服务器有数据传输达到一定时间,基站会切断客户端和服务器的连接。我自己测过的一般2分钟多些就会断线

ljt80158015 发表于 2013-7-28 22:17:46

34071417 发表于 2013-7-28 19:11:06 static/image/common/back.gif

就是连接服务器后,没有和服务器有数据传输达到一定时间,基站会切断客户端和服务器的连接。我自己测过的一般2分钟多些就会断线

这个只是保证不被基站踢掉,如果真的掉线,通过什么判断并重新拨号?

34071417 发表于 2013-7-29 10:26:41

ljt80158015 发表于 2013-7-28 22:17 static/image/common/back.gif
这个只是保证不被基站踢掉,如果真的掉线,通过什么判断并重新拨号?

1. 发心跳包,发送失败,重新拨号;
2. 服务器主动切断连接,有close提示;再拨号

ljt80158015 发表于 2013-7-29 10:44:56

34071417 发表于 2013-7-29 10:26 static/image/common/back.gif
1. 发心跳包,发送失败,重新拨号;
2. 服务器主动切断连接,有close提示;再拨号 ...

1. 发心跳包,发送失败,重新拨号;

服务器没有对应的程序,如何知道发送 成功 还是 失败 ?

zuoqiangavr 发表于 2013-8-23 17:17:58

谢谢哈 下来存到以后用的上,对GPRS很敢兴趣!{:smile:}{:smile:}{:smile:}{:smile:}

u123321 发表于 2013-8-23 18:02:14

下载了,收藏了,谢谢。

fcmer 发表于 2013-8-26 11:22:37

东西看着不错。。。

fcmer 发表于 2013-9-9 09:40:04

留个记号。。

u123321 发表于 2013-9-9 10:29:34

很好,再次顶。

LearningASM 发表于 2013-9-9 12:43:30

MARK MSP430+SIM900

dalarang 发表于 2013-9-9 17:20:36

好贴做标记,以后一定会用到,顺便感谢楼主

lklhzu 发表于 2013-9-16 09:34:29

好贴,留脚印!

LILUOBAO 发表于 2013-9-20 21:19:21

收藏了,最近要用到,不过要改程序

szmini2006 发表于 2013-9-20 22:06:21

最近正在研究GPRS模块,正好学习一下

feifanxp 发表于 2013-10-16 21:40:29

楼主430和SIM900a的UART是直连的吗?没有电平匹配问题?

robinson_911 发表于 2013-10-17 10:32:22

好帖子啊,谢谢楼主哈!

lochsash 发表于 2013-10-19 22:18:24

好主意。。。

keil51 发表于 2013-10-23 22:16:56

谢谢楼主!随便问一下,配置参数是用什么方式来做到的?

34071417 发表于 2013-10-25 08:24:09

keil51 发表于 2013-10-23 22:16 static/image/common/back.gif
谢谢楼主!随便问一下,配置参数是用什么方式来做到的?

采用modbus协议,用个modbus助手,改对应的寄存器就行

bolizhicheng204 发表于 2013-10-25 08:42:00

请教下楼主,你在使用单片机和SIM900进行通信的时候,有没有出现过SIM900返回数据不正常的情况?比如返回的数据缺失了几位?

lizai10 发表于 2013-10-25 08:53:55

标记一下,用得到

34071417 发表于 2013-10-25 16:53:54

bolizhicheng204 发表于 2013-10-25 08:42 static/image/common/back.gif
请教下楼主,你在使用单片机和SIM900进行通信的时候,有没有出现过SIM900返回数据不正常的情况?比如返回的 ...

还没有,是不是你的串口接收部分的程序有问题之类的,导致接收不全。
你可以试试用电脑端的串口助手不断查询模块,看看缺失的概率有多大

embeddev_1 发表于 2013-10-25 17:12:14

mark!!!{:biggrin:}

bolizhicheng204 发表于 2013-10-25 17:27:21

34071417 发表于 2013-10-25 16:53 static/image/common/back.gif
还没有,是不是你的串口接收部分的程序有问题之类的,导致接收不全。
你可以试试用电脑端的串口助手不断 ...

很奇怪啊,我做的时候,串口调试助手调试没有问题。但是用STM32调试的时候,建立连接、GSM没有问题,但是到了GPRS那一部分,返回的数据就不完整。好郁闷...

34071417 发表于 2013-10-25 23:11:11

bolizhicheng204 发表于 2013-10-25 17:27 static/image/common/back.gif
很奇怪啊,我做的时候,串口调试助手调试没有问题。但是用STM32调试的时候,建立连接、GSM没有问题,但是 ...

波特率多少?误差有多大?

34071417 发表于 2013-10-25 23:12:30

bolizhicheng204 发表于 2013-10-25 17:27 static/image/common/back.gif
很奇怪啊,我做的时候,串口调试助手调试没有问题。但是用STM32调试的时候,建立连接、GSM没有问题,但是 ...

串口两端电平是232的还是ttl的?

bolizhicheng204 发表于 2013-10-28 08:07:53

34071417 发表于 2013-10-25 23:12 static/image/common/back.gif
串口两端电平是232的还是ttl的?

STM32和SIM900(我用的是SIM908),直接相连。就是初始化、GSM设置、通信都没有问题。到了GPRS那一部分的时候,返回的数据经常不完整。波特率9600

gaocen100 发表于 2013-10-28 11:39:46

好东西,先标记一下,以后用的着!

34071417 发表于 2013-10-28 15:21:59

bolizhicheng204 发表于 2013-10-28 08:07 static/image/common/back.gif
STM32和SIM900(我用的是SIM908),直接相连。就是初始化、GSM设置、通信都没有问题。到了GPRS那一部分的 ...

这个我就不清楚了。SIM908有没有自适应波特率?

gzhmcu 发表于 2014-2-11 10:50:09

支持一下

maybug56 发表于 2014-2-12 10:48:29

不错!
lz用的IAR吗?怎么没有.EWW文件

34071417 发表于 2014-2-12 13:38:14

maybug56 发表于 2014-2-12 10:48
不错!
lz用的IAR吗?怎么没有.EWW文件

ewp就行了

vcprograme 发表于 2014-3-14 08:21:03

谢谢!!!!!!

my_avr 发表于 2014-3-14 08:43:45

这个标记一下,多谢分享!

xranger 发表于 2014-3-20 13:27:59

学习一下。

shin555 发表于 2014-3-20 17:14:24

sim900,mark            

一号纵队 发表于 2015-9-6 11:31:05

正要学习设计AT指令,下载了,多谢

1178951695 发表于 2015-9-7 19:54:51

mark。。。。

SimonTech 发表于 2015-9-9 13:02:23

SIM900A 还是有点贵了。

efree 发表于 2015-9-17 15:58:02

好,马克一下下。。

philix 发表于 2015-10-30 08:59:13

标记一下,多谢分享!
页: [1]
查看完整版本: 基于MSP430F5342单片机的SIM900 GPRS 数据透明传输模块