基于CAN总线的家居安防系统设计

简介:

现在,人们对工作和生活环境不仅要求舒适健康、可靠便利,而且更加看重安全性,并利用安防系统来提高家庭抵御各种意外情况的能力。现在的安防系统可借助计算机技术、IC卡技术、通信技术等来实现……

1引言

现在,人们对工作和生活环境不仅要求舒适健康、可靠便利,而且更加看重安全性,并利用安防系统来提高家庭抵御各种意外情况的能力。现在的安防系统可借助计算机技术、IC卡技术、通信技术等来实现,CAN总线应用于安防系统对家居智能化发展起到了良好的促进作用。CAN总线是一种应用较为广泛的现场总线,它支持多主节点,有完善的错误处理机制,通信速率快,传送距离远,可挂接控制设备多。

而把DTMF技术应用于安防系统,不需要专门的布线,不占用无线电频率资源,没有电磁污染。文中设计了一种基于CAN总线和DTMF技术的以AT89S52单片机为核心的新型智能家居安防系统,使原来小区安防系统的实时性和可靠性有了一个新层次的提高。本系统可以对整个家居的安全环境进行实时监控,监控的范围包括室内防盗、火灾报警、煤气泄露等一系列不安全因素。一旦有上述事故发生,该报警系统就会发出相应的报警信息,用语音播出警情类别,向远方用户和相关部门提供警情语音。

2系统总体构成

系统框图如图1所示。单片机控制DTMF收发电路、数字语音电路、摘挂机控制电路。探测器能够快速、准确地监测到住宅的异常状况,经确认后及时通知控制器,再由单片机来控制电话接口电路,实现模拟摘机,自动拨打预先设置的电话号码进行语音报警并通知管理中心。当监测到对方回应后,自动恢复警戒状态。

1

  3硬件设计

系统主控部分采用AT89S52单片机,无需扩展外部存储器。看门狗电路采用具有可编程的串行EEPROM-X25045。X25045依次存储了标志字段、话机号码、警情代号、系统设置等数据信息。数字语音电路采用数字语音芯片ISD1420。系统中ISD1420仅作为基本录放音电路,所以所有的地址线全部置为0,因此放音的起始地址是0。语音信号由驻极话筒拾取,从MIC和MICREF两端输入芯片内部的放大器放大,经过功放后的音频信号从SP+被用来与通话电路相连,以送出语音信号。

3.1振铃检测及模拟摘挂机单元

系统并于电话线两端,时刻处于监控状态,不会影响电话的正常工作。当系统接收到振铃信号时,会进行振铃检测。振铃信号经三个反相器后接入AT89S52的P3.4口。若5次振铃后无人接听,则系统进入自动摘机状态。单片机P1.2引脚输出高电平,三极管V501导通则继电器K1动作,将负载电阻接入电路实现模拟摘机。此后电话线上就会出现大于10mA的电流,交换中心检测到这一电流后就不再输出振铃信号而是转为接通电话。如果振铃信号没有达到预设值就消失,则单片机的计数值清零,控制器不动作。

3.2DTMF收发单元

DTMF收发电路采用DTMF信号编/解码芯片MT8880[5]芯片,单片机通过DTMF收发电路拨出电话号码进行电话报警,DTMF收发电路如图2所示。

1

  图2DTMF收发电路

MT8880提供了与微处理器相连的接口,以对其发送、接收和工作模式进行控制。它的接收部分采用单端输入,由R27、R28和C16组成,其输入电压增益为1,通过改变R28可调节输入信号的增益。它的发送部分由R29、C17、C18和XTAL2构成。它的控制部分由R30和C19构成。IRQ/CP与单片机P3.5脚相连。当MT8880接收到有效的双音多频信号时,单片机进行中断处理。MT8880的IN-端和通话电路TEA1062的QR端相连,MT8880的TONE端和TEA1062的DTMF端相连。

3.3通话单元

通话电路使用电话机专用通话集成电路TEA1062。送话时,语音信号(来自ISD1420)通过MIC+引脚输入,DTMF信号(来自MT8880)通过DTMF引脚输入,经过TEA1062放大后从LN引脚一起送到电话外线上。受话时,信号通过消侧音网络,从IR引脚输入,放大后从引脚QR输出,分两路:一路送到ISD1420的ANAIN端供语音录制用,另一路送到MT8880的IN-端提取DTMF信号。

3.4CAN总线数据传输单元

CAN总线数据传输单元由两部分构成,一部分是CAN控制器,实现对总线数据的交互与控制,另一部分是CAN数据收发器,实现数据的网络传输。

单片机AT89S52通过控制CAN控制器来实现对总线的访问,同时还负责功能单元的测量和控制,CAN总线接口电路如图3所示。

1

  图3CAN总线接口电路

AT89S52通过中断方式访问CAN控制器SJA1000,为了增强CAN总线节点的抗干扰能力,SJA1000通过高速光耦6N137与CAN总线驱动器PCA82C50相连。PCA82C50的CANH和CANL引脚各自接了一个5的电阻与CAN总线相连,可以起到限流作用,以免PCA82C50受到过电流冲击。

4软件设计

系统的软件采用模块化设计,主要包括主程序模块、CAN通信模块、振铃检测模块、语音报警模块、DTMF收发模块等,这里主要介绍主程序和CAN通信模块设计。

4.1主程序设计

主程序主要完成各功能模块的调用,检测系统输入,然后根据系统状态进行判断处理。程序进行主循环之前还要进行必要的初始化,如MT8880、ISD1420、SJA1000相关标志位等。主程序流程如图4所示。

1

  图4主程序流程图

4.2CAN通信模块设计

CAN通信模块包括控制器初始化、数据接收和发送子程序。SJA1000有复位模式和工作模式两种状态,两种状态下寄存器配置不同。当参数设置完后,CPU发出命令,SJA1000处于工作状态,进行正常通信。如果通信出错,CPU会使SJA1000回到复位模式。接收模块负责节点报文的接收及相关处理。接收过程中CPU会读数据,根据命令字判断数据帧的类型进行不同处理。发送模块负责报文的发送,SJA1000发送数据前,要判断是否满足发送条件,如果满足,则把报文帧信息、标识符和要发送的数据写入缓冲区,即可发送。JA1000的收发流程图如图5所示。

1

  图5JA1000的收发流程图

5结束语

本系统以AT89S52单片机为核心,不用对电话网进行任何改造,实现对家居设防点进行自动检测和语音报警。设计中用CAN总线结构组成安防系统,有较好的灵活性和扩展性,同时利用CAN总线引入实时的数据处理,提高了系统的可靠性。可对楼宇可视对讲、智能小区管理、门禁管理等有较大的应用推广价值。

本文转自d1net(转载)


相关文章
|
存储 网络协议 网络安全
OpenWrt挂载U盘安装并配置Adguard Home
随着网络生活的日益丰富,广告成为了上网过程中不可避免的一部分。然而,过多的广告不仅会影响上网体验,还可能包含恶意代码,对全构成威胁。为了解决这一问题,许多用户选择使用去广告软件,其中Adguard Home便是一个广受欢迎的选择。
934 0
|
8月前
|
微服务
什么是微服务?微服务的优缺点是什么?
微服务就是一个独立的职责单一的服务应用程序,一个模块 1.优点:松耦合,聚焦单一业务功能,无关开发语言,团队规模降低 , 扩展性好, 天然支持分库2.缺点:随着服务数量增加,管理复杂,部署复杂,服务器需要增多,服务通信和调用压力增大
|
存储 Kubernetes 容器
Kubernetes 存储选项:持久化卷与存储类
【8月更文第29天】随着容器化的普及,越来越多的应用程序需要持久化数据以保持状态信息。Kubernetes 提供了一套完整的解决方案来管理和配置持久化存储,包括持久卷 (Persistent Volume, PV)、持久卷声明 (Persistent Volume Claim, PVC) 和存储类 (StorageClass)。本文将详细介绍这些概念,并通过实际示例来演示如何在 Kubernetes 中配置存储。
934 3
|
存储 监控 安全
深入剖析隐私安全测试
深入剖析隐私安全测试
351 0
|
JSON Linux C语言
全网最权威唯一值得推荐的《C/C++框架和库》
关于C++框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。
540 1
|
Java 编译器 开发工具
JDK vs JRE:面试大揭秘,一文让你彻底解锁Java开发和运行的秘密!
【8月更文挑战第24天】JDK(Java Development Kit)与JRE(Java Runtime Environment)是Java环境中两个核心概念。JDK作为开发工具包,不仅包含JRE,还提供编译器等开发工具,支持Java程序的开发与编译;而JRE仅包含运行Java程序所需的组件如JVM和核心类库。一个简单的"Hello, World!"示例展示了两者用途:需借助JDK编译程序,再利用JRE或JDK中的运行环境执行。因此,开发者应基于实际需求选择安装JDK或JRE。
204 0
|
机器学习/深度学习 PyTorch 算法框架/工具
【深度学习】Pytorch Tensor 张量
【1月更文挑战第26天】【深度学习】Pytorch Tensor 张量
|
机器学习/深度学习 索引
yolov5--loss.py --v5.0版本-最新代码详细解释-2021-7-1更新
yolov5--loss.py --v5.0版本-最新代码详细解释-2021-7-1更新
578 0
|
运维 Oracle JavaScript
现在考Oracle 19c OCP(1z0-082和1z0-083)还需要官方的培训记录吗?
内容说明:长期以来获得Oracle OCP(Oracle Certified Professional)的认证需要参加Oracle的官方或者合作伙伴组织的培训。
452 0
|
网络协议 Java 数据处理
利用线程池多线程并发实现TCP两端通信交互,并将服务端设为守护进程(一)
利用线程池多线程并发实现TCP两端通信交互,并将服务端设为守护进程(一)
540 0