单片机控制GSM手机的技术及应用

发布者:和谐相处最新更新时间:2006-05-17 来源: 单片机及嵌入式系统应用关键字:单片机  编码  数据线 手机看文章 扫描二维码
随时随地手机看文章

随着科技的飞速发展和人民生活水平的不断提高,手机的普及率越来越高,更新也越来越快,价格也越来越便宜。因为手机工作的无线网络覆盖范围广,在信息传递方面性能稳定、可靠,所以把手机作为信息传递的载体,与单片机结合起来构成应用系统有着强大的生命力和广阔的应用空间,特别是在远程数据传输、远程监控等领域更是受到电子设计应用工程师的关注。一些专业刊物也介绍了一些有关这方面的文章,然而由于手机的控制指令复杂,数据格式繁琐,工程技术人员在进行单片机与手机的硬软件接口设计时经常会遇到很多困难,有时还无资料可查。笔者在完成一个项目的开发过程中,针对几种手机进行了大量的测试和实验,在此基础上归纳出一些带规律性的结论,对此结论,工程设计人员可拿来即用,大大缩短研发周期,现在把它公布出来,愿与广大电子设计人员共享。

1 硬件接口技术方面
  目前市场上流行的大部分手机几乎都具有数据引出口,并基本上都支持与GsM短信息相关的AT控制指令(GSM-SMS-AT指令),手机通过数据口以串行方式接收指令并向外输出数据。理论上讲,在数据口中找出RxD、TxD和GND引脚与单片机的串口对应连接即完成了硬件接口。然而,实际上由于不同品牌,不同型号手机的RxD、TxD和GND引脚并非一致,找查这三根线有时也非易事;况且手机数据口的电平既不是RS232电平,也不是TTL电平,与由5V供电的单片机串口还不能直接连接。最简单可靠的方法是使用手机的数据线建立单片机与手机的硬件连接。手机数据线是专为连接PC机9针串口而设计的,信号电平为标准的RS232电平,只要单片机的串口也转换为Rs 2 3 2电平,就可方便连接。9针串口引脚定义是固定的,即2脚为TxD(手机发送),3脚为RxD(手机接收)、5脚为GND。这样,无论什么型号的手机与单片机的连接就成了固定连接,不需要知道手机数据口信号的具体定义,二者通过数据线的连接电路如图1所示。


 


  需要注意的是:不同手机数据线内部电平转换芯片的供电方式是不同的,有的是通过手机直接供电;有的是通过窃取PC机串口某些引脚(通常为4、6、7、8引脚)的电流经内部整流滤波稳压后提供。判断的方法是将数据线一端插到手机数据口,测量另一端2脚与5脚之间的电压,如果有一7V左右的电压,则为前者,如果测不出电压,则为后者,对于后者则需要单片机为4、6、7、8引脚任意一引脚提供+5V电压即可,如图1中虚线所示。

2 软件接口技术及控制原理
  单片机与手机的软件接口其实就是单片机通过与GSM短信息有关的AT指令控制手机的控制技术,如读取手机的短消息内容,删除短消息内容,列出手机中还未读的短消息等。关于AT指令的功能描述见参考文献[1,2]的文章内容,此处不再赘述。然而,执行一条指令,也并非某些资料中介绍得那么简单。事实上,指令的执行过程需要单片机与手机交互应答完成,每一次发送或接收的字节数有严格的规定,二者必须依据这些规定实现数据交换,否则,通信就是失败的。笔者经过对几种手机反复测试,总结出来一些规律,如表1所列。

  对几个问题说明如下。
  ?①所有AT指令的指令符号、常数、PDu数据包等都是以ASCII编码形式传送的,比如“A”的ASCII编码为41H,“T”的AscII编码为54H,数字“0,,的AsCⅡ编码为30H等。
  ②单片机控制手机工作,必须把手机的短信息工作模式设置为PDu格式,即通过指令AT+cMGF=O完成。
  ③单片机向手机发送每一条指令后,必须以回车符作为该条指令的结束,回车的ASCII编码为0DH。例如,单片机向手机发送“AT+CMGF=0”这条指令,其ASCII编码序列为“41H、54H、2BH、42H、4DH、47H、46H、3DH、30H、0DH”,最后一个字节0DH就是回车符,表示该条指令结束,如果没有这个回车符,手机将不识别这条指令。
  ?④当手机接收到一条完整的AT指令后,手机并不立即执行这条指令,而是先把刚才接收到的AT指令的全部ASCII编码序列全部反发送出来(含0DH),然后发送一个回车符和换行符的ASCII编码,即0DH和0AH,最后执行该条指令。
  ⑤手机向单片机传送短信息内容时,其PDu数据包的内容是以十六进制表示的数据,但并不是直接向单片机传递十六进制数据,而仍然是把每一位十六进制数以AscII编码来发送。这样,二个字节的十六进制数就变成4字节的ASCII码。但是,PDU数据包中的数据字节长度部分仍然是实际字节长度,而不是变成AscII码的字节长度,这在编程时应特别注意,否则,接收的数据就不完整。单片机接收到PDU数据包数据后,必须将其恢复成十六进制数据,其算法如下:设a为接收的ASCII码,b为转换后的十六进制数。如果a<39H,则b=a-30H;如果a>39H,则b=a-30H-07H,最后把前后两个数合并为一个字节。
  ⑥手机向单片机应答PDU数据包的字节数不包括前9字节数据(短信服务中心地址),但向单片机传送PDU数据包时,包括这9个字节的数据。例如,如果手机应答的PDU数据长度为50,而实际向单片机传送的十六进制数据为59字节,ASCII码为2×59字节,所以,单片机必须按2×59字节接收PDU数据。


 


3 应用实例
  笔者利用上述原理和接口技术开发了一个项目:高速公路显示导引系统。安装在高速公路上的LED显示屏实时显示前方路段车辆通行态势和天气气候情况,提醒并引导驾驶人员,正确驾驶。该系统的使用一定程度上消除了许多交通事故隐患,从而保障了道路的畅通和人民生命财产的安全。该系统由控制中心和若干个显示屏组成。控制中心实时将最新信息发送到各显示屏。构建控制中心与显示终端的通信链路,传统的方法要么铺设光缆用有线方式实现,要么构建专用无线网用无线方式实现。因为高速公路的特殊性,控制中心与显示终端之间的距离通常很远,两种方案都必须投入大量资金和巨大的施工工作量。如果采用GSM公众无线传输网络,控制中心以短信息的形式把显示信息发送到显示终端的技术方案,则具有投资小,施工方便,工作可靠,运行费用低等诸多优点。
  在控制中心,微机编辑好短信息后通过手机这个载体发送出去。在显示终端,单片机通过读取手机的短信息把它显示到LED显示屏上。项目的核心技术是单片机与手机的接口和PDU数据包中的汉字信息编码。因为短信息中的汉字仅仅是一个编码,单片机应用系统将编码变为汉字点阵数据,必须配置汉字字库。按GSM07.05协议规定,短信息中的汉字编码为Unicode编码,如果构建一个Unicode编码的汉字字库,确实是一件繁琐的工作,因此,在设计单片机应用系统时,采用如下两点技术措施。
  ①单片机系统配置的字库为GB-2312编码的汉字库,即区位码汉字库,该汉字库在网上可免费下载,固化到Flash存储芯片中即可。当然这样做的前提是PDU数据包中的汉字编码必须为汉字内码而非Unicode编码。
  ②控制中心编辑PDU数据包数据时,采用自定义数据方式,其中,代表汉字的数据,直接取用汉字的机内码即可,免去了把机内码再转换为Unicode编码之苦。实践证明,这是可行的。
  采用以上技术措施的优点,一是省去了两种编码的相互转换;二是保证了数据的保密性,非系统内用户无法接收,即使接收也无法显示。
  该项目研制成功投入使用后,因显示终端只接收不发送,几乎没有运行成本。发送端(控制中心)可采用月租方式,也能把运行费用降低到最低限度。因此该项目得到用户满意的评价。

关键字:单片机  编码  数据线 引用地址:单片机控制GSM手机的技术及应用

上一篇:LPC900系列单片机在射频数传模块中的应用与研究
下一篇:用51内核网络单片机构成的远程监控系统

推荐阅读最新更新时间:2024-03-16 12:17

51单片机gy906测温,语音播报,eepromc存储
这是去年我做的一个小设计,主要是用来测量体温。今年由于疫情影响情况特殊,就想分享一下这个设计,但是某宝找材料才发现一个问题,都涨价了,有点难受。之前也在51黑下过资料,这次把资料发上来大家一起分享学习。实物图: 没有涉及PCB,用的洞洞板。第一次发帖。东西做出来有点丑,大家莫见怪。 主要功能: 通过按键控制测温,按一次检测一次。自动存储三次数据,可t通过按键切换显示。并可通过OLED显示和语音播报温度。 系统供电采用,USB供电,也可以通过干电池,或者锂电池。 主要使用元器件。 主控用的是51单片机,温度传感器用的是GY906,显示用的是0.96寸0LED,通讯方式采用IIC,语音播报用的现成的模块。 语音播报采用串口通
[单片机]
51<font color='red'>单片机</font>gy906测温,语音播报,eepromc存储
快速调试嵌入式MCU设计仿真的三大因素浅析
调试 嵌入式 应用有很多种方法。设计者利用包含电路内置仿真器(in-circuit emulator,ICE)和电路内置调试器(in-circuit debugger,ICD)的调试工具可以快速构建出系统原型,帮助设计者在建立原型阶段和最终测试阶段查找硬件和软件中的问题。在调试过程中,成本和易用性是人们主要关心的问题,相比ICE工具,设计者可能更喜欢使用 仿真 器来调试代码段,因为 仿真 器可以直接在PC上运行,不需要映射到目标硬件上。 仿真 器使用起来非常方便,通过它们开发人员可以了解一款新型的 MCU ,或者熟悉一套新的集成开发环境(integrated development environment ,IDE)工具包,而不
[电源管理]
快速调试嵌入式<font color='red'>MCU</font>设计仿真的三大因素浅析
stm单片机io管脚翻转实验
概述 学了两年单片机了,初三一年的电路基础知识,发现越来越不够用了,但又感觉看那些全是公式的大学的电路基础又有点傻x,看半天,没一个讲的明白的,估计只有写书的那人,能看明白,真正买书的看的明白的,估计也不多。于是乎,我想出了一个更高科技的办法——试验呗毛主席说过实践是检验真理的唯一标准,所以放下那些晦涩难懂的书本,拿起面包板,万用表,示波器做试验,应该是我这样只有初三一年电路知识的人唯一的出路所以,说干就干。目前来说,手上有的就那么点东西,能做啥试验,就做啥试验。以后随着买新器件或产品,再做新器件的试验。日志也会随着更新。 试验设备 器件:电阻电容若干,三极管,二极管,也有一些,场效应管不多,洞洞板,当然是必备的,剩下
[单片机]
stm<font color='red'>单片机</font>io管脚翻转实验
这支胶水能修复数据线 省下的钱换个新iPhone
数据线有多容易坏?相信每一位智能手机用户都有所体会。可其实在大多数情况下,数据线的损坏都是由插头和线缆之间接头处出现的磨损所造成的,用胶布缠一下也能接着用。但这种修补方式并不美观,还容易产生漏电的风险。   如果你正在寻找一种更加方便安全的解决办法,我们今天要介绍的数据线专用修复胶水BLUFIXX应该可以帮到你。   BLUFIXX号称是填充,重塑和保护低压线缆的专业解决方案。它使用起来非常简单,先将胶水涂抹在数据线的磨损处,然后使用内置的LED灯照射该位置3 - 5秒,等待胶水硬化就大功告成了。   有了它的帮助,你就不再需要在数据线损坏之后再购买一根新的,这不仅更加省钱省时间,也在一定程度上保护了环境(减少电子垃圾)
[手机便携]
基于ESP32的网络收音机
  模拟收音机在这个数字世界中逐渐消失,因为今天从电影到歌曲的所有内容都直接从互联网流式传输。让我们看看如何通过利用一些简单的数字电子设备、编码和有效的互联网连接来制作互联网收音机。   互联网收音机可以创建为通过互联网运行的独立设备,也可以创建为通过与互联网连接的计算机运行的软件。在这里,我们将制作一个独立的设备,它将连接到 Wi-Fi,访问互联网,最后播放音频。为了构建我们的ESP32 网络广播,我们选择了 ESP32 开发板(显然)和 MAX98357A I2S 放大器。如果您正在寻找可以离线工作的简单 FM 收音机,那么您应该查看链接的文章。   构建 ESP32 网络收音机所需的组件   您将需要以下组件来使用
[嵌入式]
基于ESP32的网络收音机
AVR系列单片机简介
ATMEL公司的AVR 单片机 ,是增强型RISC内载Flash的单片机,芯片上的Flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便。AVR单片机采用增强的RISC结构 ,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令,每MHz可实现1MIPS的处理能力。AVR单片机工作电压为2.7-6.0V,可以实现耗电最优化。AVR的单片机广泛应用于计算机外部设备 ,工业实时控制,仪器仪表,通讯设备,家用电器,宇航设备等各个领域。   ATMEL公司的90系列 单片机 是基于新的精简指令RISC 结构的。这种结构是在90年代开发出来的,综合了半导体集成技术和软件性能的新结构。这种结构使得在8位微
[单片机]
采用PIC16C621A单片机和线圈实现八细分步进电机驱动器的设计
  引言   步进电机广泛应用于对要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;软件环形分配器要占用主机的运行时间,降低了速度;专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。   步进电机控制   步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(VR)、
[单片机]
采用PIC16C621A<font color='red'>单片机</font>和线圈实现八细分步进电机驱动器的设计
8位MCU TM56F1552在电陶炉的应用方案,集成低噪声OPA
随着人们生活水平的不断提高,消费者对厨房电器的要求越来越高,对电器的环保节能特性,安全性,灵活性等都有很高的需求,电陶炉由于其加热效率高且可以持续加热,无辐射,适用性高等特点很好的满足了目前消费者的需要。 为了满足市场上对于电陶炉产品的需求,本文介绍一种成熟的电陶炉产品整体解决方案,方案由AC-DC电源芯片与8位MCU主控两部分组成,MCU内置触摸模块,LED/LCD显示驱动模块,多路PWM输出,带基准电压源的ADC以及EEPROM存储器等模块。其中主控TM56F1552芯片内集成了低噪声OPA,CMP,LDO,CTK,可以减少产品零件数目及降低成本。 方案中TM56F1552是一款8位内置OPA,外围电路简单,可以节省B
[嵌入式]
8位<font color='red'>MCU</font> TM56F1552在电陶炉的应用方案,集成低噪声OPA
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved