ARM7与GSM实现的简单的远程控制

最近参加一次校内电子比赛,有个题目就是让做用单片机与GSM的结合实现远程控制,这里的控制是控制两盏220V的灯泡,要求实现单片机的短信的收发。比赛已经完了,这次比赛有学习到不少新东西,写写总结体会(软件方面,因为负责软件部分)。

GSM模块选择的是西门子TC35I,网上它的资料比较多。以前有同学买过这个模块,但是直接用GSM模块的话对比赛成绩有影响,所以我们只是买了TC35I和SIM卡插槽,自己来重新画板子,把ARM与TC25I画在一块板子上。网上关于GSM控制的资料很多,但很多都是用51控制的,所以我们起初的工作就是学习TC35I和将51与GSM的程序移植到ARM上。幸好单从控制GSM上来说,并不是太难,它是基于串口通信的,而且全是基于AT指令的控制,说起来,就只是熟悉下指令,而且这次比赛用到的指令也比较少,主要是关于短消息方面的指令。我们用到的指令如下:

AT&F:设置目前参数为厂商默认值,成功则返回OK。

AT+CREG?:网络注册。成功则返回+CREG:0,1或 +CREG:0,5。错误则返回ERROR。

AT+CMGF=1:设置短信格式为TEXT格式。

AT+CSCA=’+86XXXXXXXXXXX’:发送本地中心号码

AT+CMGS=’XXXXXXXXXXX’:发送目标手机号码

AT+CMGR=n:读取某条短信,n表示第几条短信

AT+CMGD=n:删除某条短信,n表示第几条短信


因为只是简单的进行控制,只需传送ASCII码值。所以我们短信格式设置为了TEXT格式,减轻了编程的负担。

下图就是我们GSM控制方面的软件流程图:

ARM7与GSM实现的简单的远程控制_第1张图片

ARM7串口通讯方面的,采用了FIFO接收,8字节触发,有字符超时中断。

下图是TC35I的电路图

ARM7与GSM实现的简单的远程控制_第2张图片


另外,本来用ARM就是打算用ucosii完成软件设计的,但是临近比赛也还是没用弄出来,想了好久不知道错在哪里,最后果断放弃,跑裸机。看来,对Ucosii还要继续进行学习,熟练运用它进行编程。





       

你可能感兴趣的:(编程,工作,网络,手机,通讯)