开篇:润墨网以专业的文秘视角,为您筛选了一篇基于TC35短消息模块的瓦斯浓度警告器的设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:基于GSM通讯技术,以ARM微控制器LPC2109为核心,通过控制瓦斯浓度传感器CO-BF采集工作环境的瓦斯浓度,再将达到警告级别的浓度值通过tc35短消息模块发送出去的方案。从硬件搭建和软件设计出发,介绍了瓦斯浓度警告器的实现。为瓦斯浓度的实时采集及预警提供了更加有效的解决方案。
关键词:LPC2109;GSM;TC35;瓦斯浓度;AT指令
DOI: 10.3969/j.issn.1005-5517.2012.10.015
引言
由于短消息具有内容直观,传输距离远,用户无需建立信号中转站,如今在各个领域都得到了广泛的应用。本文通过GSM模块TC35的短消息功能实现了瓦斯浓度信息的远距离发送。
硬件电路的设计方案
系统总体方案
硬件设计原理框图参见图1。
GSM模块的选择
GSM模块采用Siemens公司的TC35,可以快速安全可靠地实现系统方案中的数据、语音传输,短消息服务(SMS)和传真功能。模块的工作电压为3.3~4.8 V,可以工作在900 MHz和1800 MHz两个频段。具有AT命令集接口,支持文本和PDU模式的短消息、传真。通过40PIN的ZIF连接器,实现电源连接、指令、数据、语音信号、及控制信号的双向传输。模块集射频电路与基带于一体,其主要组成结构分为6个部分:GSM基带处理器、GSM射频模块、供电模块(ASIC)、闪存、ZIF连接器及天线接口。
微控制器芯片的选择
因为需要通过串口给TC35模块发送数据和命令,所以需要选择一个合适的带有串口通讯功能的微控制器来作为设计的主控芯片。设计选用NXP公司的LPC2109微控制器。
LPC2109有8K的RAM空间和64K的Flash空间,足以烧写和运行相关代码,工作温度-40℃~+85℃,适合工作在各种恶劣环境中。内核运行频率可达60MHz,内部集成一个IIC通讯模块,两个SPI通讯模块,两路32位定时器模块,四路10位A/D转换模块,四路外部中断接口,六路PWM通道并有12个外部中断引脚以及46个GPIO接口。
瓦斯浓度采集模块
设计选用Alphasense公司的CO-BF型一氧化碳传感器。该传感器的测量范围为5000ppm,灵敏度80~120nA/ ppm, 响应时间小于30秒,线性范围为-15ppm至+15ppm,分辨率为0.5ppm尺寸,工作温度为-30~50℃,工作湿度为15~90%RH。以上参数非常适合设计的需要。
设计通过CO-BF型传感器采集现场CO浓度模拟信号, 经主控芯片LPC2109的A /D转换模块变成数字量,并通过做相应的处理后判断转换值是否超过预警浓度值。若超出预警值,则通过断电控制模块断开电源,并通过LPC2109的串口模块向TC35模块发送报警短消息到指定接收的SIM卡上。
图1 硬件设计原理框图
图2 程序流程图
软件设计方案
程序流程图
程序流程图如图2所示。
瓦斯浓度采集程序设计
CO-BF型一氧化碳传感器实时采集现场瓦斯浓度,并将浓度转换成电压信号,该电压信号作为主控制器芯片LPC2109的A/D转换模块的信号输入,通过读取A/D转换模块的采样值来获取现场的瓦斯浓度。读瓦斯浓度代码,即A/D转换代码如下所示。
ADInit函数
函数功能:AD模块初始化,将P0.27用做AIN0,禁止AD转换中断
入口参数:无
返回值 :无
void ADInit(void)
{
PINSEL1 &= ~(3 << 22);
//清零PINSEL1寄存器的位23位22
PINSEL1 |= (1 << 22);
// P0.27引脚被用AD转换0通道输入引脚AIN0
ADINTEN = 0;
//禁止0通道AD转换完成产生中断
}
ADStart函数
函数功能:AD转换启动函数,选择AIN0作为采样引脚,返回转换结果
入口参数:无
返回值 :val AD转换结果
UINT32 ADStart()
{
UINT32 val; ADCR = (1 << 0) | ((Fpclk/1000000-1)<< 8) | (2 << 17) | (1 << 21) | | (1 << 24);
do
{
val = ADDR0;
//0通道数据寄存器ADDR0的值赋给val
}
while((val & 0x80000000) == 0);//当转换完成后,ADDR0的位31置1,跳出循环
ADCR &= ~0x01000000;
//AD控制寄存器START字段清零,不启动AD转换
val =(val >> 6) & 0x000003f; //取 val的位15:6,作为转换结果
return val;
//返回转换结果
}
短消息发送程序的软件设计
AT指令介绍
AT即Attention,AT指令应用于终端设备与控制器之间的连接与通信。AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter,TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符)。AT指令以回车作为结尾,响应或上报以回车换行为结尾。
TC35模块提供的命令接口符合GSM07.05和GSM07.07规范。GSM07.07中定义的AT Command接口,提供了一种移动平台与数据终端设备之间的通用接口。数据终端设备,即微控制器可以使用AT指令通过串口向GSM模块发送各种命令。通过AT指令,可以控制短消息的接收与发送。与短消息发送相关的AT指令有“AT+CMGD”(删除短消息),“AT+CMGF”(设置消息格式),“AT+CMGR”(读取短消息),“AT+CMGS”(发送短消息)等。
AT指令发送程序的实现
因为AT指令是微控制器通过串口发送给TC35模块的,因此AT指令的发送是通过串口数据发送来实现的,发送代码如下所示。
sendchar函数
函数功能:发送数据到串口1
入口参数:ch 发送的数据
返回值 :U1THR
int sendchar (int ch)
{
while (!(U1LSR & 0x20));
//等待发送保持寄存器U1THR为空闲
return (U1THR = ch);
//将发送的数据存入U1THR,并返回
}
表1 人对CO的反应
实验分析
北方农村喜欢用煤球取暖,用烟筒排放一氧化碳,但是烟筒是耗材,用一段时间就会锈掉,发生人中毒的事情,严重时会出现生命危险。
具体数据可参照表1 人对CO的反应。
针对小房间,我们将报警浓度设定为250ppm。当浓度高于250ppm时,蜂鸣器鸣叫,但这时,可能主人已经熟睡;立即将报警信息以短消息的方法,发给亲友,做到最大程度避免危险事件。
结语
基于TC35短消息模块的瓦斯浓度报警器使用全球移动通讯系统来传递瓦斯报警信息,具有高效性,快速性,稳定性以及传播距离广的优势,并且短消息服务费极低。无论身在何处,总能第一时间接收到相应的警告信息,以便做出快速的、正确的处理。设计可以广泛应用于对瓦斯浓度有严格限制的环境。