0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术ARM9工控主板的SMS短信息应用介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-14 11:45 次阅读

英创公司的嵌入式工控主板均预装WinCE5.0正版操作系统,在工业控制及终端检测设备中,具有低成本、低功耗、小尺寸等优势。在现在的工业应用中,利用GSM无线信道进行数据通讯的无人值守及无线数据传输的应用越来越广泛,其中主要以GPRS数据通讯及SMS短信息方式为主。GPRS数据通讯是以TCP/IP方式进行通讯,GPRS模块发送SMS短信,是通过串口发送AT指令来实现。
英创公司基于ARM9工控主板,完善了GPRS模块发送短信息的应用方案。本文以EM9161+ETA300为例,说明SMS短信息的使用方法。
英创公司对短信收发的操作函数封装为类SMS,该类是基于串口类CCESerial派生的新类,并在基类中定义了虚函数PackagePro(),在SMS中重新实现该函数来处理SMS短信收、发的相关AT指令,并对所使用到的变量进行操作,且用户可以根据自己不同的需求,重新实现该函数。该函数是SMS短信收发过程中主要的功能函数。SMS类定义的主要成员及使用到的数据结构如下:
struct SMS_DATA
{
unsigned char PhoneNum[16]; // 对端电话号码
struct Date d; // 日期:年月日
struct Time t; // 时间:时分秒
int DatLen; // 数据长度
unsigned char DBuf[168]; // 短信数据内容
};
// 基类的PackagePro()函数的重新实现
// 主要作用是处理短信收发相关的AT指令
int PackagePro( char* Buf, int len );
// GPRS模块的SMS工作模式的初始化
// 主要是发送AT指令设置GPRS模块工作参数
int InitSMSModem( );
// 通过GPRS模块发送短信息
// return = 0: SMS-SUBMIT ok!
// < 0: SMS-SUBMIT is rejected
int SendMessage( struct SMS_DATA* pSMS );
对于用户来说,使用SMS类来发送短信,仅执行几个步骤即可。下面则按次序对使用该类SMS来发送短信息的方法进行说明。(例如:用户程序中实例化了一个对像:class SMS MySMS; )
1、对GPRS模块进行上电
EM9161管理GPRS模块的电源,使用的是GPIO8和GPIO9两条引脚,按照GPRS电源管理要求的时序进行IO操作,即可实现对GPRS模块的电源进行控制。英创公司写好了相关的操作函数GPRS_PM()在EM9161_ISA_DIO.h中,其描述如下:
// 功能描述:该函数通过对EM9161的GPRS_STB和GPRS_AUX两个管脚信号的操作,实现对GPRS模块
// (MC39i或兼容模块)的电源管理。
//
// 输入参数 OpMode: 电源管理功能索引号,有效索引号包括:
// OpMode = 1: 对GPRS模块进行上电操作,并把执行该操作后电源状态返回;
// OpMode = 2: 对GPRS模块进行强制关电,并把执行该操作后电源状态返回;
// OpMode = 3: 读取GPRS模块当前的电源状态。
//
// 输出参数 pResult: 用于存储读取的电源状态信息。
// *pResult = 0: 表示GPRS模块的电源已关闭;
// *pResult = 1: 表示GPRS模块的电源已加载成功;
//
// 返回值 = FALSE:操作失败。
// TRUE: 操作正确。
BOOL GPRS_PM( int OpMode, int* pResult );
调用GPRS_PM()函数对GPRS模块进行上电。由于GPRS模块上电后,还要检测SIM卡是否在线及信号强度是否可用,所以会占用相当长的时间,建议在GPRS模块上电成功后,延时10秒钟时间再进行下面的操作。
2、打开GPRS模块所占用的串口
MySMS.OpenPort( 2, 57600 , 'n' , 8 , 1 ); //在这里,直接调用SMS类继承//过来的成员OpenPort()函数,其实,这里是调用的基类的成员函数,即CCESerial的OpenPort()。
3、初始化SMS短信模块
MySMS.InitSMSModem();
4、填写要发送的手机号及数据
如:要发送信息“英创嵌入式:WinCE!”到13800000000号码
struct SMS_DATA SendData; // 定义一个发送数据的数据结构
SendData.PhoneNum=”13800000000”; // 填写接收短信的手机号
SendData.DBuf=”英创嵌入式:WinCE!”; // 填写要发送的数据。
5、启动发送
MySMS.SendMessage( &SendData ); // 启动短信发送
6、关闭GPRS模块连接的串口
当不用GPRS发送短信时,需要关闭对应的串口。
MySMS.ClosePort(); // 关闭GPRS模块所占用的串口
在SMS类直接支持中文短信的发送,所以短信发送的模式均采用PDU模式。对于中文字符,在短信发送时还需要转换为unicode码,程序代码中已经实现了中文内码到unicode 码的自动转换,客户在测试该程序时,需要注意的是要将unicode 的相关的3个转换文件复制到系统的/nandflash中。
gsm0338.bin
gb2312.bin
unicode.bin
本文所示的例程仅在英创公司的ARM系列嵌入式主板上可用,如需该方案的源码,请与英创公司联系。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34612
收藏 人收藏

    评论

    相关推荐

    鸿蒙实战项目开发:【短信服务】

    概述 本示例展示了电话服务中发送短信的功能。 样例展示 涉及OpenHarmony技术特性 网络通信 难度级别 中级 基础信息 使用@ohos.telephony.sms接口展示了
    发表于 03-03 21:29

    探秘工控主板中的BIOS:为什么它如此重要?

    固件,承载着初始化系统硬件和传递信息的重要任务。当工控主板加电时,BIOS会对硬件设备进行自检,通过读取硬件的配置信息来判断硬件是否正常工作,这一过程是
    的头像 发表于 01-23 11:28 256次阅读

    请问proteus可以仿arm9吗?

    proteus可以仿arm9吗?
    发表于 10-16 06:37

    基于ARM9SMS服务平台

    电子发烧友网站提供《基于ARM9SMS服务平台.pdf》资料免费下载
    发表于 10-12 11:35 0次下载
    基于<b class='flag-5'>ARM9</b>的<b class='flag-5'>SMS</b>服务平台

    基于ARM9的嵌入式工控系统设计

    电子发烧友网站提供《基于ARM9的嵌入式工控系统设计.pdf》资料免费下载
    发表于 10-12 09:43 1次下载
    基于<b class='flag-5'>ARM9</b>的嵌入式<b class='flag-5'>工控</b>系统设计

    基于GSM短信息通信方式的路灯无线监控系统

    电子发烧友网站提供《基于GSM短信息通信方式的路灯无线监控系统.pdf》资料免费下载
    发表于 10-08 10:22 1次下载
    基于GSM<b class='flag-5'>短信息</b>通信方式的路灯无线监控系统

    ARM9嵌入式系统设计基础教程

    ARM9嵌入式系统设计基础教程》电子课件
    发表于 09-25 07:31

    信息技术是干什么?

    广播电子技术信息技术
    橙群微电子
    发布于 :2023年09月22日 09:17:48

    arm9学习手册

    硬件设备、嵌入式操作系统以及特定的应用程序几部分组成。 ARM 既是一家研发嵌入式处理器的公司的名字,也是一系列嵌入式处理器内核的名称。其中 ARM9ARM系列应用比较广泛的一种内核,比较适合有
    发表于 09-21 07:40

    集成电路是现代电子信息技术的基础

    集成电路是现代电子信息技术的基础 随着科技的不断发展,集成电路技术已成为现代电子信息技术的基础之一。它的应用范围已经涉及到电子、通信、计算机、军事等行业,已经为人们的生活和工作带来了极大的便利
    的头像 发表于 08-29 16:25 1271次阅读

    新唐NuMicro Arm9微处理器介绍

    。 新唐 Arm9 微处理器 新唐NuMicro Arm9 微处理器主要分为三大类,NUC970/980 的工业控制系列、N9H emWin HMI系列及N329 影音产品系列。主频从 200MHz
    发表于 08-25 07:32

    ARM9 TDMI 技术参考手册

    ARM9TDMI 技术参考手册
    发表于 08-02 19:32

    ARM9 ETM9技术参考手册

    ETM9ARM9系列微处理器提供指令和数据跟踪。本文档介绍ARM9Thumb系列处理器与ETM9之间的接口。有关
    发表于 08-02 17:16

    2023年中海达星推官系列直播再度启航,与您一起探讨空间信息技术

    信息技术
    中海达
    发布于 :2023年06月21日 11:45:49

    keil5 n9h系列cpu选择无NuMicro ARM9 Series Device Database是怎么回事?

    N9H2x Keil ICE Debug User Manual.pdf 中第4页写道: ARM9 based microcontrollers require the additional
    发表于 06-13 07:15