[原创] 【手机DIY】辛昕2.GTM900的AT指令演示

辛昕   2014-6-19 22:28 楼主
    这个 华为的GTM900模块 到我手上很久了。只可惜一直以来不是没时间就是在忙别的。直到上周才有空腾出时间来,结果没想到周末各种安排,结果周一开始发烧感冒,直到今天才开始好。于是......于是才开始做事情。

    之前很多朋友推荐SIM900.我买的时候,本来想着最好买华为的MC323,毕竟这是新品。
    不过一切都以我方便操作为第一原则,因为那种纯粹GPRS模块,带一个屏蔽铁壳封装的模块,我手头的条件是非常难弄的,所以,我选择引出串口,电源,以及尽可能带上 手机所需要的 音频功能 等附件的模块。

    最终我买了一个 华为GTM900B的模块。这是华为的老双频产品,但是我印象里用的人不少,而且都是标准AT指令我也就没在意就买了。

    然后,然后就到了今天,先上图!!

   

强者为尊,弱者,死无葬身之地

回复评论 (19)

坐沙发,等看图~~
http://weibo.com/u/1391449055
点赞  2014-6-19 22:34
首先是 整个模块(接了 USB-串口 ,连着电脑)

IMG_20140619_223008.jpg
强者为尊,弱者,死无葬身之地
点赞  2014-6-19 22:40
然后是 GTM900模块的具体细节

IMG_20140619_223049.jpg
强者为尊,弱者,死无葬身之地
点赞  2014-6-19 22:41
最后,就是简单来了几条 AT指令演示演示

这玩意是被人动过的,所以默认不是115200bps,是9600bps
QQ图片20140619223734.jpg
强者为尊,弱者,死无葬身之地
点赞  2014-6-19 22:42
那么,接下来的事情就还好办了。

当然,第一步仍然是找出 满足 手机基本功能——就俩 : 发短信 + 打电话 所需的 AT指令组。

然后继续在这上面来一转。
最后再移到 单片机上,也就是一个串口,严格来说,主要难度在 接收处理上了。

强者为尊,弱者,死无葬身之地
点赞  2014-6-19 22:43
图 不错
点赞  2014-6-19 22:59
接着看了看,找到了 打电话(呼叫) 和 发短信 的 指令。
可惜,我的手机卡已经剪成了3G小卡,貌似插进去以后(其实有没插对位置我都没把握)
发现输入相应命令时,都不太对劲。

查不到电话本。
也查不到运营商。

我想,我还是去买一张新卡才行,反正我也打算搞一张 免月租的神州行。

剩下的就是要考虑考虑,除去这一部分,还需要什么功能才能完成这个手机DIY,毕竟时间已经过去很久了。
强者为尊,弱者,死无葬身之地
点赞  2014-6-19 23:12
刚才一顺把版块里 几个走在前面的哥们的作品的帖子看了看,
特别是 sacq——太厉害了!

然后我开始琢磨。
现在最需要的外设还有 一个 显示屏 和 一个 按键。

虽然这也是我要做的。
但我仍然在想,我花了一百多块钱买的这个模块,是不是在模块里本身就包含了 显示屏 和 按键 的 接口呢?
如果有,当然可以省下许多工作,假设没有,那当然就有很多工作要做了。

而我下载了 GTM900 的一份资料——看来我之前 执着于 非下到 900B不可的想法是错的。

我发现,里面的确包含了 LCD和 按键 还有 音频的接口,而从板子来看,偏偏就是没看到 按键 和 LCD
看来要引出来看来恐怕会比较费劲。
强者为尊,弱者,死无葬身之地
点赞  2014-6-19 23:49
很不错呀~~~~~~~~~~~~~~~
点赞  2014-6-23 09:09
先简单回复一下,昨天看了 华为GTM900 的模块资料
接口里的确不包含 LCD和键盘的接口。因此这部分要自己做

所以,没啥好纠结,接下来,先用洞洞板,把各部分用 排母,排针 规划好,接起来。
因为都是直插,真的放开做,估计加上杂七杂八地焊接啥的,估计一小时内能完成。

到时候上图啊~~~无图无真相。
强者为尊,弱者,死无葬身之地
点赞  2014-6-23 23:28
等着更新呢,我用的SIM800.也是新出的。4频的。我实现了短信远程控制。电话远程控制功能了。也能回复短信和回复电话了。现在正在做GPRS控制,不过这个需要一个服务器。有啥问题我们一起讨论吧。反正AT指令都差不多。
点赞  2014-6-24 09:18
引用: 曹世鹏 发表于 2014-6-24 09:18
等着更新呢,我用的SIM800.也是新出的。4频的。我实现了短信远程控制。电话远程控制功能了。也能回复短信和 ...

哦~
强者为尊,弱者,死无葬身之地
点赞  2014-6-24 09:45
都是跟着指令一步一步走,如查只是实现短信或者电话功能发指令就行。串口输出是ASII码,这要注意。
我在想 我知道什么
点赞  2014-6-24 10:33
哦,对了还有的是发送PDU模式才能收发中文好像,我讨厌不停的转各种格式!
我在想 我知道什么
点赞  2014-6-24 10:35
晚上焊了板子。
用组合式的 排母-排针,但因为时间的原因,只焊了一个小时左右,矩阵键盘还没焊,接口倒是焊好了。
也没来得及 用stm32f030测试一下是否正常工作。

所以今晚也就先不上图。
明晚一并焊好 矩阵键盘,不管来不来得及搭起程序测试完成,都可以先上图~~~
强者为尊,弱者,死无葬身之地
点赞  2014-6-25 00:01

好东西,谢谢楼主了!
点赞  2014-6-26 18:10
不错。好给力。
点赞  2014-6-26 20:55
假如发了AT这条指令,我如何判断单片机和GSM模块已经握手成功?是原地等待,然后判断串口收到的数组含有OK吗?
点赞  2014-7-15 12:49
引用: 曹世鹏 发表于 2014-7-15 12:49
假如发了AT这条指令,我如何判断单片机和GSM模块已经握手成功?是原地等待,然后判断串口收到的数组含有OK ...

你的回答,如果从 功能层次 来说是对的
但如果从 考虑如何实现就不对。

我也不绕弯子了,我已经知道你的问题在哪里了。

最根本的问题,你没有分离好层次。

在这个功能里,包含了以下几个功能:
1.串口接收,明确地说是,串口接收到一个字节;
2.判断接收到一个完整的回复,它隐含的问题是,如何判断 已经收到完整的字符串,并且还隐含了你要有缓存(大概也就是你的数组);
3.判断字符串内容是否特定内容;

串口接收我估计你没问题;
剩下的问题就是,你如何处理 串口接收数据 和 你所谓的 判断 已经 握手成功。

你说原地等待,这就是你的思路,但显然这种思路并不好;为什么?很简单
假如由于某种通信上的干扰或者错误——总有可能,你不能收到你预期想收到的数据。
而你的思路是一种顺序的阻塞思路——也就是说如果实际情况和你设想的顺序一旦出现了一个不符,你的程序就会堵死或者出现你无法预料的状态。

如何解决这个事情。
最基本的办法,你要把 等待串口数据 和 判断是否握手回复(数据处理)分开。

怎么分开?
最简单的方法。
用一个全局数组存储接收到的数据,作为缓冲。
写一个函数把接收到的数据一个一个往里头填。
然后另写一个程序去判断这个数组。

这个时候,你想在哪调用这两个函数都没问题。
这样,就避免了你的“原地等待”。
而只要你不原地等待,不管你的数据是迟到了,是异常了,都不会影响你的程序正常执行。

这是一个大体思路,实现起来很简单,但并不是完整思路,完整的过后再说,我要确定你确实如我设想的堵塞,而非这种更一般化的思路——实在因为这只是一种很常规的方法,也许我太低估你的问题了。

强者为尊,弱者,死无葬身之地
点赞  2014-7-15 18:07
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复