基于TC35短消息模块瓦斯浓度警告器设计.docVIP

基于TC35短消息模块瓦斯浓度警告器设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于TC35短消息模块瓦斯浓度警告器设计

基于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 0 == 0);//当转换完成后,ADDR0的位31置1,跳出循环 ADCR = ~0x0100000

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档