当前位置:首页 > 模拟 > 模拟
[导读]随着社会经济的发展,家庭火灾在火灾中的比例明显增大,火灾损失越来越大,家庭火灾造成的人员伤亡已成为各国政府非常重视的工作之一。公安部最近也向全国各消防部队下发了关于推广家庭固定灭火系统的通知。为此,笔

随着社会经济的发展,家庭火灾在火灾中的比例明显增大,火灾损失越来越大,家庭火灾造成的人员伤亡已成为各国政府非常重视的工作之一。公安部最近也向全国各消防部队下发了关于推广家庭固定灭火系统的通知。为此,笔者通过大量的调研发现,家庭固定灭火系统在功能上需增加短信芯片。

目前,短信芯片技术已经相对成熟,而且价格低廉,对固定灭火系统的成本增加幅度不大。此外,短信芯片体积较小,不会加大固定灭火系统的体积和重量,同时在实际设计中,也可把系统设计成组合分离式,让用户和厂商可以选择是否需要短信芯片。由于短信芯片只需要脉冲启动信号线和电源线,故在制定家庭固定灭火系统标准的时候,可以设计定义预留好短信通知模块的接口标注。

由于家庭灭火系统既能满足安全需要,也能满足家庭隐私需要,它可给使用家庭带来很大的方便,而且该技术成功后,其它适合短信通知的报警系统也可以使用,因此,市场应用较广。

1  系统设计

1.1系统设计目标

本系统设计的总体目标是在火灾发生后能及时通知业主和物业,另外,物业也可以根据户主授权,来通过短消息报警系统引爆其它灭火设备。本系统的主要性能指标如下:

◇可在火灾发生后4秒内通知业主和物业;

◇物业管理可通过计算机,同时引爆255个点的家用灭火系统;

◇可提供家用灭火系统级联网络功能,其最大网络具有255个节点。

1.2短消息模块的设计

GSM规范对通过该接口进行短消息的传输功能定义了三种控制协议,即文本模式、块模式和PDU模式。其中块模式现在已基本不用;文本模式适合西文的传输;而如果短消息中既有西文也有中文,则适合用PDU模式。由于PDU模式是各大手机生产商都实现了的短消息方式,十分具有通用性,所以,本设计实现的短信发送和接收都使用通用的PDU模式来完成。在发送短信时,其主要工作是把报警内容组装成短消息的格式,即短消息编码:而在接收短消息时,其主要工作是把短消息字符串还原成文本格式。

短消息模块的硬件组成可由家用灭火系统报警接口、RS232串口线、SIM100-E GSM/GPRS和SIM卡组成。其系统终端组成框图如图1所示。程序利用串口通信控件并通过串口与SIM100-E终端通信,最终经终端将短消息发送出去。SIM100-E GSM模块与处理器之间的通信协议为AT指令,处理器则通过写RS232串口来发送AT指令给SIM100-E,再由SIM100-E将响应传回到串口,最后由处理器通过读取串口数据来完成短消息的收发功能。



2系统软件设计

2.1短消息模块的初始化

在使用短消息的收发功能之前,必须先对短消息模块进行初始化,以完成串口通信设置、GSM信号的检测、短信中心号码设置等。首先应将端口参数设置为:速率为9600、无奇偶校验位、数据位为8位、1位停止位、无流量控制。这样。在检测信号时,就可以通过向串口发送AT指令来进行测试。如果收到“OK”,则表明开发板和SIM100-E模块连接良好(即有信号)。其短消息模块的初始化流程如图2所示。



本系统的短消息模块可通过串口来进行读写操作,这样就一定要用到读写串口命令,下面是读写串口的两个函数。

其中读串口可将buff中长度为len的内容写到串口中,代码如下:

int read_comm(char*buff,int len);

而写串口则可从串口中取得长度为len的内容,并将其放到缓冲区buff中,其代码如下:

int write_comm(char*buff,int len);

上述两个函数如果执行成功返回0,否则返回-1。之后便可设置串口数据位databits、停止位stopbits和效验位parity。本系统设置databits为8位,stopbits为1位,parity位N。其代码如下:

int set_Parity(int fd,int databits,int stopbits,int parity)
write_comm(“AT ”,3)    ∥判断和无线网卡是否连接上了
read_comm(ans,128);
write_comm(“AT+CMGF=? ”,10);∥判断是否为PDU模式
read_comm (an8,128);

如果不是PDU模式,则应将其设置为PDU模式,其设置代码如下:

write_comm(“AT+CMGF=0\r”,10);∥设置短消息为PDU模式

模块初始化结束后,则可进入待机状态,这时,微处理器便可以通过串口向modem发出指令,并接收modem执行指令返回的结果。

2.2  短消息的发送

短消息的发送是在后台进行的。当发送短消息的条件满足时,系统将调用短信发送进程,并把对应数据缓冲区的报警数据打包成PDU格式的短信发送出去。短消息数据格式如下:

    typedef struct{
    char SCA[16];∥短消息服务中心号码(SMSC地址)
    charTPA[16];∥目标号码或回复号码(TP-DA或TP-RA)
    char TP_PID;∥用户信息协议标识(TP-PID)
    char TP_DCS;∥用户信息编码方式(TP-DCS)
    char TP_SCTS[16];∥服务时间戳字符串(TP_SCTS),接收时用到
    charTP_UD[161];    ∥原始用户信息(编码前或解码后的TP-UD)
    char index;∥短消息序号,在读取时用到
}SMS;

上述程序所实现的函数是sendsms(dst_mb,sins_content),dst_mb表示短消息要发送到的目标手机号码,sms_content是短信的内容,如果发送成功,则返回0,否则返回-1。

操作时,先向串口发送AT+CMGS=,等待无线modem返回ASCII字符“>”,如果返回“>”,则可输入PDU数据,并以+作为结束符,表明短消息发送成功,此后模块返回OK

发送短信模块的主要工作是对要发送的短消息的数据格式进行组装并对短信内容进行编码。如要发送到手机号码是13856965015,短信中心号码是8613800551500,短信内容是“Hello!”,则其数据格式编码如表1所列。



下面详细说明一下短消息发送流程。当运动检测程序检测到有运动目标出现后,系统便会调用短消息发送模块。这时,程序先获取要发送的短消息内容和要发送到的手机号码,然后设置短消息模式为PDU模式,如果是英文短信则用英文的7-bit编码方式,如果是中文或者是中、英混合短信,则用中文的UCS2编码。然后将短消息发送出去。其发送流程代码如下:

∥dst_mb表示短消息要发送到的目标手机号码
∥sms_content是短信的内容
∥如果发送成功则返回0,否则返回-1。
sendsms (char*dst_mb,char*sms_content);
write_comm(“AT+CMGF=0 ”,10);∥设置短消息为PDU模式
strcpy(sms->SCA,smsc);∥将短消息中心地址放到结构体sms中
strcpy(sms->TPA,dst_mb);∥设置目标号码
sms->TP_PID=0;∥GSM类型设置为点到点方式
sms->TP_DCS=0;    ∥7-bit编码
strcpy(sms->TP_UD,sms_content);
encode_pdu(src,pdu);∥将源src编码为pdu
/*将字节转换为字符串,如(0xC8,0x32,0x9B,0xFD,0x0E,0x01)"转换成"C8329BFDOE01*/bytestostr (src,dst,len);
/*正常顺序的字符串转换为量量颠倒的字符串,如果长度为奇数,补’F’凑成偶数,如:“8613851872468”-->“683158812764F8”*/invert(src,dst,len);
encode7bit(src,dst,len);/*pdu模式的7-bit编码
encode8bit(src,dst,len);/*pdu模式的8-bit编码*/
encodeUCS2(src,dst,len);/*pdu模式的UCS2编码*/

这里值得一提的是中文短消息的编码和解码。GSM短消息中使用的是UTF-8编码,而实际的计算机上使用的是GB-2312码,因而存在一个转换问题。而由于UTF-8和GB-2312编码之间不存在一一对应的线性关系,因此,只能采用查表的方式进行转换。   

事实上,以上的中文发送程序也能发送英文或者中英文混发。只是这样发送英文时,英文字符象中文字符一样要用两个字符表示,所以,它和发送中文一样,只能发送70个字符。

2.3  短消息的接收

通过短信接收进程可定时查询SIM卡,如果有新的短信,则将新的短信读入、解码,然后删除,这样可以防止由于SIM卡中的短消息满,而接收不到新的短消息。短信的接收是短信的发送的逆过程,其数据格式和发送短消息时相同。

接收短信时,系统首先判断是否要接收短消息。当得知需要接收短消息后,可用AT+CNMI=?来判断是否有新的短消息,如果有,则用AT+CMGL=1来读取短消息,并对读取的每条短消息进行解码。当读取一条短信后,即可用AT+CMGD=index,来直接删除,然后再读取下一条短消息。直到不再需要读取短消息。其代码为:

receivesms(SMS*temp);∥读取短信到缓存中

下面是这个函数里面的部分内容:



3  结束语

在实际设计中,可以将本系统设计成组合分离式,以使用户和厂商可以选择是否需要短信芯片。短信芯片只需要脉冲启动信号线和电源线。即可在制定家庭固定灭火系统标准时设计定义预留好的短信通知模块接口标注,从而实现火灾短信报警功能。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

慕尼黑2024年5月9日 /美通社/ -- TÜV南德意志集团(以下简称"TÜV南德")持续保障安全、可靠及可持续发展。作为全球化的服务提供商,TÜV南德2023年全年营收达约31亿欧元,首次突破30亿欧元大关,同比增长...

关键字: BSP 可持续发展 数字化 人工智能

凭借深度学习技术和SmartBid产品,百度国际MediaGo获得美国商业奖认可 旧金山2024年5月6日 /美通社/ -- 第22届美国商业奖(American Business Award®)近日发布获奖名...

关键字: MEDIA GO SMART BSP

上海2024年4月17日 /美通社/ -- 在2024 F1中国站即将拉开帷幕之际,高端全合成润滑油品牌美孚1号今日举办了品牌50周年庆祝活动。三届F1年度车手总冠军马克斯•维斯塔潘也亲临现场,共同庆祝这一里程...

关键字: BSP 汽车制造 行业标准 产品系列

北京2024年4月17日 /美通社/ -- 2024年4月13日,由北京康盟慈善基金会主办的"县域诊疗,规范同行"——肿瘤诊疗学术巡讲项目首站在广州隆重召开。本次会议邀请全国多位肺癌领域专家和县域同道...

关键字: AI技术 医疗服务 BSP 互联网

海口2024年4月16日 /美通社/ -- 4月14日,在中法建交60周年之际,科学护肤先锋品牌Galenic法国科兰黎受邀入驻第四届中国国际消费品博览会(以下简称"消博会")法国馆。Galenic法...

关键字: NI IC BSP ACTIVE

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

全球领先的科技公司默克推出了同类产品中首个经验证的全新一体化遗传稳定性分析。 Aptegra™ CHO遗传稳定性检测利用全基因组测序和生物信息学,显著加快了客户的生物医药安全性测试,从而帮助加快了客户进入商业生产的步伐。...

关键字: 稳定性分析 BSP 人工智能

一切电子设备都要用电,电源也就无处不在。电源在我们印象中就是输入端进电,输出端对用电设备供电,它的电路是由一堆的电阻、电容、电感还有变压器、风扇之类构成。

关键字: 处理器 电源管理 模块设计
关闭
关闭