一种防解密和软解码的GSM报警器的设计与实现*
摘 要:针对家用报警器的GSM模块存在硬件成本高、频段少只能国内使用、无低压报警等的缺陷,同时因为程序逆向解密等问题导致市场上GSM报警器同质化严重的缺点。本文阐述的GSM报警器实现了电池电压监测与低压报警,软件防逆向解密,软件RF解码,RF同频防干扰功能,远程语音对讲和录音功能等功能,并且可在全球各个国家使用。
关键词:GSM报警器;防逆向解密;软件RF解码;低压报警;全频段
*基金项目:广东省普通高校特色创新类项目(自然科学)(2018GKTSCX056);
广东普通高校重点项目(自然科学)(2019GZDXM014);
珠海城市职业技术学院2021年科研项目(KY2021Y01Z);
2020年教育部高等学校项目(2020ITA03008);
2022年广东省科技创新战略专项资金(pdjh2022b0992);
2021年校级质量工程师资项目(ZLJS2020120622,ZLJS2020120623,ZLJS2020120624)
0 引言
报警器目前已经进入了很多家庭中,为防护家人的生命和财产安全起到了重要的作用。GSM 报警器具有不用布线,可以在出现险情时给用户发短信和打电话等优势,因此得到了普遍应用。为了降低 GSM 报警器的生产成本,各个厂家在设计报警器时不惜压缩各种硬件成本,导致硬件功能不全,功能单一且不稳定。利用软件的手段来弥补硬件上的缺陷,设计一款性价比高的 GSM 报警器就非常有必要。
1 报警器的硬件设计
本文阐述的 GSM 报警器在实现丰富功能的同时将硬件成本最低化,该 GSM 报警器包含了如下的元器件: STC15F2K32S2 单片机、四频的 GSM 模块 SIM840W、DS1302 时钟芯片、LM2576 稳压芯片、AMS1117 芯片、 74HC595 端口扩展芯片、HT9170 的 DTMF 芯片、数码管、语音芯片、10 秒录音芯片、继电器、麦克风、喇叭、电池、数码管。配合矩阵键盘、外壳、电池电压检测电路等阻容电路,构成了 GSM 报警器的完成产品 [1-3]。
图1 硬件框架图
其中,单片机分别与 GSM 模块、蜂鸣器、继电器、数码管、语音芯片、DS1302 时钟芯片、LM2576 稳压芯片、数码 管、电池、74HC595 端口扩展芯片、HT9170 的 DTMF 芯片、10 s 录音芯片、矩阵键盘的相应管脚连接,GSM 模块分别与麦克风,喇叭、天线相连,整体电路图见图 2。
1.1 单片机STC15F2K60S2
图2 STC15F2K60S2的单片机
该 GSM 报警器采用了 STC15F2K60S2 的单片机,具有低成本和低功耗的特点,其内置的 EEPROM 可保存加密和防区等信息,8 通道 10 位高速 AD 转换器可以用做电池电压检测,2 K 的 SRAM,双串口,SPI 总线可使报警器的功能更为丰富,LQFP44 封装可以节约 PCB 板的尺寸 [4]。
1.2 GSM模块SIM840W
图3 GSM模块SIM840W及外围电路
该报警器采用低成本的四频 GSM 模块 SIM840W,其工作频率为 GSM/GPRS 850、900、1 800、1 900 MHz,可以低功耗实现语音、SMS、数据和传真信息的传输,因为该 GSM 模块的工作频率较宽,该 GSM 报警器可以在国外其他国家使用 [5]。
1.3 音频电路
IP8 封装的语音芯片的信号经过滤波后和 GSM 模块的音频输出脚相连,并一起连接到 LM386 的 2、3 管脚,因此语音芯片和 GSM 模块的音频信号可以直接通过 LM386L 进行放大 [6]。当语音芯片工作时单片机可控制 GSM 模块的音频输出脚停止工作,同样 GSM 模块有音频输出时则单片机控制语音芯片停止音频输出,这样就实现了音频输出电路在语音芯片,录音芯片和 GSM 模块之间的分时复用。
图4 音频电路
2 报警器的软件设计
2.1 防逆向解密
目前电子产品的相互抄袭问题严重,不仅局限在硬件抄板领域,还有很多公司开展单片机解密及二进制逆向 C 语言的业务,这相当于窃取了原厂的硬件原理图与 PCB,以及配 套的源代码,导致市场上的电子产品同质化严重鱼龙混杂,不断打价格战导致产品进入无序竞争。目前针对硬件抄板问题还没有特殊有效的方法解决,但硬件原理图 PCB 与源代码是配套的,一旦无法逆向 C 语言获得源代码,则通过抄板获取硬件原理图和 PCB 也将没有意义 [7]。针对单片机解密及二进制逆向 C 语言的问题,在源代码上有方法进行控制。
当 GSM 报警器正式启动时,先进行加密计算,将加密计算的结果和单片机内置 EEPROM 某扇区的内容进行对比,如果正确则继续执行接下来的程序,如果对比错误则进入死循环,程序就会卡在该位置后无法继续执行,因此在烧写产品的二进制程序之前,先将 EEPROM 的某扇区烧入一些复杂的字符串,在程序启动时再进行上述的对比,可防止逆向解密 C 语言源代码。部分源代码如下:
这样虽然可以进行单片机解密及二进制逆向 C 语言的工作,但如果和 EEPROM 里面的内容不符,解密出的 C 语言程序也无法正常运行。
2.2 RF软件解码
RF 信号一般使用硬件来编解码,常用的有 PT2262/ 2272 等芯片,但硬件解码的 RF 信号源有数量限制,同时提升了产品的成本、功耗和体积。软件解码的 RF 信号源数量不受限制,因此GSM报警器通过软件RF解码,可连接的 RF 探头数量则不受限制,同时节省了硬件的成本、功耗和体积 [8],RF 信号的脉冲图如下所示:
图5 RF信号脉冲图
软件 RF 解码可以用过定时器来实现,定时器 0 设置为 8 位自动重装定时器,设置如下:
单片机的 P5.5 管脚(RF_IN)配置为输入模式,天线的信号经过放大后连接到单片机的 P5.5 管脚(RF_IN)来读取 RF 信号,基本的代码如下:
在上述代码中,DEFINED_TIME 是根据具体的 RF 信号高或者低电平的时间来设置,不同频率的 RF 信号 的高低电平时间不同。如果在定时器计算的一定时间范围内没有产生 RF 信号的上升沿则退出,如果产生上升沿则会跳出死循环继续计算高低电平的时间,由此来识别不同的 RF 信号。一般 RF 信号通过该程序处理可以 表示为 16 位的 RF 码,因此该 GSM 报警器可以通过软件解码方式连接最多 65 536 个 RF 探头,对比硬件解码的优势明显。
2.3 电池低压报警
GSM 报警器接通电源后,通过 LM2576S 芯片稳压,其输入端通过分压电阻连接到电池上 [9],同时也连接到了单片机的 P1.4 端口(ADC4),因此单片机通过 AD 转换来读取电池的电量。
ADC 中断中,变量nodcpower 值的变化代表直流电源不同的状态,结合读取到的电池电压值来判断是否是需要低压报警 [10-11]。如果没有直流电源同时电池电压 AD 转换值小于 750,则需要低压报警,通过 10 s 循环的语音播报和发送短信给用户,提醒用户充电 [12]。如果在低压报警时插上了直流电源,通过语音播报和发送短信给用户,告知用户正在充电中。
3 原理图、PCB和产品实物图
通过软硬件的协同开发,已设计并生产出 GSM 报警器,以下是本产品的电路图,PCB 图和产品图。
图6 电路原理图
图7 PCB图
4 结束语
该 GSM 报警器在设计出丰富功能的同时,实现出了较低的硬件成本、功耗和体积,凭着稳定的品质和较高的性价比,已经累积在国内外销售过万,作为安防产业的一部分,GSM 报警器在保护国家和人民生命财产全方面将会发挥更大的作用。
参考文献:
[1] 唐明董,张俊波,刘建勋.基于GSM模块的短信平台服务器设计与实现[J].微计算机应用,2017(2):174-177.
[2] 胡雪岩,王永成,贲广利.固态继电器过载失效与浪涌抑制电路参数设计[J].长春理工大学学报(自然科学版),2019,42(4):15-21.
[3] 李开佳.基于单片机和GSM网络远程电源监控系统设计[J].工业控制计算机,2018,31(7):138-140.
[4] 杨光亮,邰能灵,郑晓冬,等.高压直流输电控制保护多重化分析[J].电力系统自动化,2010,34(15):85-90.
[5] 姜东升,邱羽玲.基于MOSFET器件的开机浪涌电流抑制电路设计[J].电源技术,2019,43(7):1216-1218.
[6] 严毓培,陈志钦,严泽强,等.智能家居服务型机器人的设计与开发[J].电子世界,2016(23):198-199.
[7] 严毓培,吴福根,许振龙.多功能智能型铅酸蓄电池充电器的设计与实现[J].蓄电池,2007,44(2):64-67.
[8] 高国章,高志国,高岚.船舶轴带无刷双馈电机短路电流分析与保护设计[J].电机与控制应用,2019,46(8):96-104.
[9] 任永春,孙建永,罗玉香.一种新型低功耗采样电阻短路保护电路设计[J].微电子学,2015,45(3):331-334.
[10] 王晓静.三端集成稳压器及应用[J].电子测试,2009(6):74-77.
[11] 王瑞阳.由CD4098组成的晶闸管三相过零触发器[J].温州职业技术学院学报,2003(2):54-62.
[12] 刘增波,刘宗玉,张强,等.一种浪涌抑制电路过程分析与验证[J].计算机测量与控制,2016,24(11):265-272.
(注:本文转载自必威娱乐平台 杂志2022年11月期)
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码