一种基于AT89S52和CAN总线的家居安防系统设计
4 软件设计
本文引用地址:https://www.eepw.com.cn/article/262875.htm系统的软件采用模块化设计, 主要包括主程序模块、CAN 通信模块、振铃检测模块、语音报警模块、DTMF收发模块等, 这里主要介绍主程序和CAN通信模块设计。
4. 1 主程序设计
主程序主要完成各功能模块的调用, 检测系统输入, 然后根据系统状态进行判断处理。程序进行主循环之前还要进行必要的初始化, 如MT8880、ISD1420、SJA1000、相关标志位等。主程序流程如图4所示。

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

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