第8章 家庭安防远程监控系统设计_第1页
第8章 家庭安防远程监控系统设计_第2页
第8章 家庭安防远程监控系统设计_第3页
第8章 家庭安防远程监控系统设计_第4页
第8章 家庭安防远程监控系统设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1嵌入式系统原理与设计嵌入式系统原理与设计 第八讲第八讲 家庭安防远程监控系统设计家庭安防远程监控系统设计 2本节提要本节提要功能需求分析及总体设计功能需求分析及总体设计系统硬件设计系统硬件设计 软件设计软件设计 38.1 功能需求分析及总体设计功能需求分析及总体设计 l家庭安防监控系统主要是通过远程安防监控器实现对家庭智家庭安防监控系统主要是通过远程安防监控器实现对家庭智能化系统中各种与信息相关的通讯设备、家用电器和家庭保能化系统中各种与信息相关的通讯设备、家用电器和家庭保安装置进行集中的或异地的控制和家庭事务性管理,实现对安装置进行集中的或异地的控制和家庭事务性管理,实现对家庭中重要设备进

2、行远程信息查询、安防报警、远程监控等家庭中重要设备进行远程信息查询、安防报警、远程监控等功能。功能。 图图8-1家庭安防系统总体结构图家庭安防系统总体结构图 4l整个安防监控器的电路框图如图整个安防监控器的电路框图如图8-2所示,由电源电路、人机所示,由电源电路、人机交互模块、主控模块、移动通信模块、设备控制模块、数据交互模块、主控模块、移动通信模块、设备控制模块、数据采集模块、采集模块、PSTN模块、语音录放模块等电路组成。模块、语音录放模块等电路组成。 主控模块主控模块PSTN模块模块语音录放模块语音录放模块移动通信模块移动通信模块数据采集模块数据采集模块人机交互模块人机交互模块设备控制模

3、块设备控制模块电源模块电源模块5本节提要本节提要功能需求分析及总体设计功能需求分析及总体设计系统硬件设计系统硬件设计 软件设计软件设计 68.2系统硬件设计系统硬件设计l系统功能较多,考虑系统对实时性、功耗、成本、扩展性等要求,安防监系统功能较多,考虑系统对实时性、功耗、成本、扩展性等要求,安防监控器采用控器采用S3C44B0X作为处理器,采用双音多频解码集成电路芯片作为处理器,采用双音多频解码集成电路芯片MT8888和和ISD4004语音芯片实现报警器的主要功能,语音芯片实现报警器的主要功能,PSTN模块主要由主模块主要由主控芯片电路、语音模块电路、振铃检测电路、摘挂机电路、双音频信号收控芯

4、片电路、语音模块电路、振铃检测电路、摘挂机电路、双音频信号收发器电路、输出放大电路和输入放大电路等部分组成。发器电路、输出放大电路和输入放大电路等部分组成。 7表表8-1 S3C44B0X主要端口分配表主要端口分配表端口号端口号连接端连接端口口功能描述功能描述端口号端口号连接端口连接端口功能描述功能描述GPF0K1继电器继电器K1控制,接通控制,接通电话通道电话通道nOEMT8888 /RDMT8888读控制引读控制引脚脚GPF1K2继电器继电器K2控制,选择控制,选择播放录音通道播放录音通道nWEMT8888 /WRMT8888写控制引写控制引脚脚GPF2K3继电器继电器K3控制,选择控制,

5、选择录音通道录音通道ExINT0D4A 74LS123 /Q电话振铃输入检电话振铃输入检测测GPF3ISD4004 RARISD4004行地址时钟行地址时钟引脚引脚ExINT1D4B 74LS123 /QMT8888按键输入按键输入信号检测信号检测GPF4ISD4004 /SSISD4004片选片选ExINT2ISD4004 /INTISD4004中断引脚中断引脚D0-D3MT8888 D0-D3MT8888数据引脚数据引脚SIOCKISD4004 SCLKISD4004时钟引脚时钟引脚A1MT8888 RS0MT8888地址选择引地址选择引脚脚SIOTxDISD4004 MOSIISD400

6、4数据输入数据输入引脚引脚nGCS3 MT8888 /CSMT8888片选引脚片选引脚SIORxDISD4004 MISOISD4004数据输出数据输出引脚引脚8监控器所涉及的关键技术主要在以下几个方面:监控器所涉及的关键技术主要在以下几个方面:1.DTMF(Dual Tone Multi Frequency)收发芯片收发芯片MT8888CE的电路设计;的电路设计;2.基于语音芯片基于语音芯片ISD4004的录放音电路设计;的录放音电路设计;3.电话控制模块家电控制语音提示信息的存放和寻址。电话控制模块家电控制语音提示信息的存放和寻址。 本章主要对这几个模块的电路设计进行介绍,其它电路如电本章

7、主要对这几个模块的电路设计进行介绍,其它电路如电源、串口、键盘、源、串口、键盘、LCD等电路设计参考第五章。等电路设计参考第五章。98.2.1振铃检测电路设计振铃检测电路设计PHONEXS412XP4V10TPA200D8BRIDGE1VCCDGNDR323.3kV168050V111N4148+C414.7uR3310kR341kDGNDC90.1uC4103VCC+C810uR1322kA1B2CLR3Q4Q13Cext14RCext15GND8VCC16D4A74LS123R510kR4150kR1410kExINT0NET0108.2.2 摘挂机电路设计摘挂机电路设计R7100/0.5

8、wR62.2kV58V 1/2wV4LEDK1RELAY-SPSTV11N4148C10.1uV61N4148+C5100u/50vR82.2kV128550VCCR910kR1010kGPF0NET0NET1118.2.3电话电话DTMF收发器电路设计收发器电路设计R17100kR1847kC140.1uR19374kGAIN1IN-2IN+3GND4GAIN8BYPASS7VS6VOUT5D6LM386M1(8)C170.1uIN+1IN-2OSC16WR9CS10RD12RS011OSC27TONE8IRQ/CP13EST18ST/GT19GS3V REF4D014D115D216D31

9、7D2MT8888CE(20)Z23.5795MC112.2uR203.3k+C374.7uC150.1uR2118kV81N4148R1510kVCCR221.2k+C64.7uR910kR1010kV71N4148+C2347uC220.1uVCCGAIN1IN-2IN+3GND4GAIN8BYPASS7VS6VOUT5D7LM386M1(8)VCCC130.1uC240.047uR2310A9B10CLR11Q12Q5Cext6RCext7D4B74LS123+C3910uDGNDVCC+C74.7uR1122kR1210k+C1647uC382200pVCCK2RELAY-SPDTVC

10、CR210kC20.1uV21N4148V138550SpeakerGPF1NET2D1D2D3D0nGCS3A1ExINT1nOEnWENET1128.2.4语音模块设计语音模块设计V31N4148+C214.7u+C291uSS1SCLK28MOSI2VCCD27MISO3XCLK26VSSD4INT25NC5RAC24NC6VSSA23NC7NC22NC8NC21NC9NC20NC10NC19VSSA11VCCA18VSSA12ANA IN+17AUD OUT13ANA IN-16AM CAP14NC15D3ISD4004V159014VCCC280.1uR291k+ C3347uR27

11、10kR262.2kR25300kR2810kC320.1uC310.1u+3V+C12100uV91N4148C30.1uVCCK3RELAY-SPDT+C2622uR1610kVCC123456789RS10kV148550R310kR312.2kR3022kC250.1uC270.1uL2INDUCTORDGNDC180.1uDGND21MICXP3NET1GPF2GPF3ExINT2SIOCKGPF4SIOTXDSIORXDNET2138.2.5 GSM通信模块通信模块主控制器主控制器串口串口DC电源电源GSM模块模块SIM14本节提要本节提要功能需求分析及总体设计功能需求分析及总体设

12、计系统硬件设计系统硬件设计 软件设计软件设计 158.3软件设计软件设计要实现家电(空调、电视、等)的远程开、关控制,家电状态要实现家电(空调、电视、等)的远程开、关控制,家电状态的远程查询,必须对设备进行编号,设计规范的查询控制的命的远程查询,必须对设备进行编号,设计规范的查询控制的命令格式,才能进行正确地监控家电设备。在一般家庭中电器类令格式,才能进行正确地监控家电设备。在一般家庭中电器类型有以下几种:型有以下几种: 1:空调:空调 2:电视:电视 3:热水器:热水器 4:灯开关:灯开关 5:煤气监测器:煤气监测器 6:火焰监测器:火焰监测器设备的监控命令设计为如下格式:设备的监控命令设计

13、为如下格式: 监控命令格式:命令类型监控命令格式:命令类型+命令分类命令分类+设备序号设备序号+设备状态。设备状态。命令类型主要分为查询命令和控制命令两种;命令分类是指查命令类型主要分为查询命令和控制命令两种;命令分类是指查询命令中的查询分类,控制命令中的分类,如询命令中的查询分类,控制命令中的分类,如0表示关、表示关、1表示表示开;设备序号是指家电设备的编号;设备状态是在查询和控制开;设备序号是指家电设备的编号;设备状态是在查询和控制动作的返回结果,具体见表动作的返回结果,具体见表8-2。16表表8-2 监控命令格式监控命令格式命令类型命令类型命令分类命令分类设备序号设备序号设备状态设备状态

14、30查询命令查询命令1控制命令控制命令1开空调(控制开空调(控制1)1 空调空调1开开0关空调(控制、查询关空调(控制、查询2)0关关1开电视(控制)开电视(控制)2电视电视1开开0关电视(控制、查询)关电视(控制、查询)0关关1开热水器(控制)开热水器(控制)3热水器热水器1开开0关热水器(控制、查询)关热水器(控制、查询)0关关1开灯(控制)开灯(控制)4灯开关灯开关1开开0关灯(控制、查询)关灯(控制、查询)0关关1开煤气开关(控制)开煤气开关(控制)5煤气监测器煤气监测器1浓度高浓度高0关开煤气开关(控制、查询)关开煤气开关(控制、查询)0无煤气无煤气1开喷水开关(控制)开喷水开关(控

15、制)6火焰监测器火焰监测器1有火焰有火焰0关喷水开关(控制、查询)关喷水开关(控制、查询)0无火焰无火焰17 根据系统功能将任务划分为根据系统功能将任务划分为GSM短信查询控制任务、报警短信查询控制任务、报警任务、电话查询控制任务、键盘设置等任务,本章主要针对前任务、电话查询控制任务、键盘设置等任务,本章主要针对前3个任务进行设计分析,编程内容包括:个任务进行设计分析,编程内容包括:1.主函数设计主函数设计2.报警任务报警任务3.GSM短信查询控制任务短信查询控制任务4.PSTN电话查询控制任务电话查询控制任务5.串口中断服务程序串口中断服务程序6.外部中断外部中断0服务程序服务程序18任务状

16、态切换图任务状态切换图 198.3.1 主程序设计主程序设计开始开始系统初始化系统初始化创建任务创建任务GSM查询控制任务查询控制任务报警任务报警任务电话查询控制任务电话查询控制任务启动任务启动任务20/*任务优先级定义任务优先级定义*/#define Phone_Prio 7#define GSM_Prio 6#define Alarm_Prio 5/*任务堆栈定义任务堆栈定义*/#define STACKSIZE 50OS_STK Phone_StackSTACKSIZE=0, ; /Phone_Task堆栈堆栈OS_STK GSM_StackSTACKSIZE=0, ; /GSM_Tas

17、k堆栈堆栈OS_STK Alarm_StackSTACKSIZE=0, ; /Alarm_Task堆栈堆栈/*任务定义任务定义*/21/*任务定义任务定义*/void Phone_Task(void *Id); /GSM_Taskvoid GSM_Task(void *Id); /GSM_Taskvoid Alarm _Task(void *Id); /GSM_Task/*事件定义事件定义*/OS_EVENT *E_GSM_Mbox; /申明短信消息事件申明短信消息事件typedef struct gsm_cmd /定义命令参数消息结构定义命令参数消息结构INT8U phone_no14; /

18、手机号码手机号码INT8U dev_no; /设备编号设备编号INT8U cmd_type; / instruction命令类型命令类型INT8U cmd_class; /命令种类命令种类INT8U dev_status; /设备状态设备状态*GSM-_CMD; 22struct GSM_CMD GSM_Command; /定义命令短信消息定义命令短信消息 / OSMboxPend(E_GSM_Mbox,0,&err);/ OSMboxPost(E_GSM_Mbox,GSM_Command);OS_EVENT *E_PConnect_Sem; /申明电话连接消息事件申明电话连接消息事件

19、/ OSSemPend (E_PConnect_Sem,0,&err);/ OSSemPost (E_PConnect_Sem); OS_EVENT *E_PRead_MBox; /申明电话按键读取消息事件申明电话按键读取消息事件INT8U *PRead_Message; /定义电话按键读取消息定义电话按键读取消息/ OSMboxPend(E_PRead_MBox,0,&err);/ OSMboxPost(E_PRead_MBox,PRead_Message);typedef struct gsm_msg /定义短信消息结构定义短信消息结构INT8U phone_no14; /

20、短信手机号码短信手机号码INT8U msg_time20; /短消息发送短消息发送时间时间INT8 *msg_data; /短消息内容短消息内容*GSM_MSG; 23void main() ARMTargetInit(); /开发板初始化开发板初始化OSInit(); /操作系统初始化操作系统初始化 /其他初始化操作其他初始化操作OSTaskCreate(Phone_Task,(void*)0,(OS_STK*)& Phone_Stack,Phone_Prio);/ 创建电话监控任务创建电话监控任务OSTaskCreate(GSM_Task,(void*)0,(OS_STK*)&am

21、p; GSM_Stack,GSM_Prio);/ 创建短信监控任务创建短信监控任务OSTaskCreate(Alarm_Task,(void*)0,(OS_STK*)& Alarm_Stack,Alarm_Prio);/ 创建报警任务创建报警任务 /创建其他任务创建其他任务InitRtc();/初始化系统时钟初始化系统时钟E_GSM_Mbox =OSMboxCreate(GSM_Command);E_PConnect_Sem = OSSemCreate(1);E_PRead_Mbox= OSMboxCreate(PRead_Message);OSStart();/操作系统任务调度开始操

22、作系统任务调度开始return 0;248.3.2报警任务报警任务 l系统报警任务系统报警任务功能是指系统功能是指系统定时查询各个定时查询各个设备的状态,设备的状态,并与设定的报并与设定的报警值进行比较,警值进行比较,如果超出设定如果超出设定值则通过通信值则通过通信模块进行报警。模块进行报警。 开始开始读取各个设备状态读取各个设备状态判断是否超出设定范围判断是否超出设定范围读取手机电话号码读取手机电话号码任务挂起任务挂起发送报警短信发送报警短信判断是否超判断是否超出设定范围出设定范围是否接收到是否接收到短信回复短信回复是是否否是是否否手机电话是手机电话是否读完否读完否否拨打有线电话号码拨打有线

23、电话号码是是是否接起是否接起播放报警录音播放报警录音否否挂机挂机电话是电话是否读完否读完否否是是是是25void Alarm_Task(void *Id) INT8U i,j,k=0;INT8U DeviceStatus=0;INT8U *msg;for(;) for(i=0;idev_no=i; if(DeviceStatus Devicei.UpStatus)/如果状态超出设定范围,则报警。如果状态超出设定范围,则报警。 for(j=0;jmobile_no=MobilePhonej; GSM_Command -dev_status = DeviceStatus; SendMessage(

24、GSM_Command);msg=OSMboxPend(E_GSM_Mbox, 2000, &err);/设定短信回复等待时间设定短信回复等待时间if(msg)break; /如果在规定时间内有短信回复,跳出循环如果在规定时间内有短信回复,跳出循环26if(msg=NULL) /当短信没有回复,则认为短信报警信息失败,电话报警当短信没有回复,则认为短信报警信息失败,电话报警while(k2) for(j=0;jOSEventPtr-cmd_type) /提取短信命令类型提取短信命令类型 case 0: /查询命令查询命令 GSM_Command -dev_status=DeviceCh

25、eck(E_GSM_Mbox-OSEventPtr-dev_no);/查询指定设备状态查询指定设备状态 SendMessage(GSM_Command); /发送查询结果发送查询结果 break; case 1: /控制命令控制命令 GSM_Message -dev_status=DeviceControl(E_GSM_Mbox-OSEventPtr-dev_no, E_GSM_Mbox-OSEventPtr-cmd_class); SendMessage(GSM_Message);/控制设备动作,返回状态控制设备动作,返回状态SendMessage(GSM_Command); /发送控制结果

26、发送控制结果 break;292.短信接收中断服务程短信接收中断服务程序设计序设计 短信的接收是放在串口短信的接收是放在串口中断服务程序中执行中断服务程序中执行的,需要编写串口接的,需要编写串口接收中断服务程序。收中断服务程序。 开始开始发出发出“AT+CMGR=0”命命令读令读SIM卡中的短信卡中的短信结束结束发出发出“AT+CMGD=0”命命令删除令删除SIM卡中的短信卡中的短信解析短信内容解析短信内容通过消息邮箱发送消息通过消息邮箱发送消息30void UART0RD_GSM_ISR() unsigned char data4; struct GSM_MSG msg; unsigned

27、char i;ReadMessage(msg); /读取短信读取短信data=MessageAnalyze(msg-msg_data); /解析短信内容,获取有效控制或查解析短信内容,获取有效控制或查询命令参数询命令参数GSM_Command -phone_no= msg-phone_no;GSM_Command -dev_no=data0; /保存短信参数保存短信参数GSM_Command -dev_type=data1; GSM_Command -dev_class=data2;OSMboxPost(E_GSM_Mbox,GSM_Command); /发送短信消息邮箱,激活发送短信消息邮箱

28、,激活GSM任务任务318.3.4 电话查询控制任务电话查询控制任务l该任务负责有线电话线路的监听,将获取的数据放入消息数该任务负责有线电话线路的监听,将获取的数据放入消息数组中。电话查询控制是通过远程电话根据监控器提示音进行组中。电话查询控制是通过远程电话根据监控器提示音进行按键输入控制或查询命令来实现的。电话振铃检测与外部中按键输入控制或查询命令来实现的。电话振铃检测与外部中断断0相关联,如果出现打入电话,可采用在中断服务程序中加相关联,如果出现打入电话,可采用在中断服务程序中加入信号量事件来传递接入电话信号。入信号量事件来传递接入电话信号。32开始开始读取外部中断读取外部中断0发送的消息

29、发送的消息查询控制语音提示查询控制语音提示查询命令查询命令控制命令控制命令查询设备状态查询设备状态发送设备状态发送设备状态控制设备动作控制设备动作发送设备状态发送设备状态输入密码输入密码验证验证任务挂起任务挂起无效无效有效有效挂机挂机查询设备选择查询设备选择设备设备1设备设备2设备设备n控制设备选择控制设备选择设备设备1设备设备2设备设备n判断按键内容判断按键内容33lvoid Phone_Task(void *Id)llchar * password;lINT8U i;lINT8U j=1;lINT8U data3;lINT8U CmdType=0;lINT8U CmdClass =0;lI

30、NT8U DeviceNo=0;lINT8U DeviceStatus =0;lfor(;)llOSSemPend (E_PConnect_Sem , 0 , &err); /等待外部中断等待外部中断0发送电话接通信号量发送电话接通信号量lConnectPhone(); /摘机摘机lfor(;)l l PlayRecord(0,PasswordInstruction); /播放提示输入密码录音播放提示输入密码录音l passwordi=OSMboxPend(E_PRead_MBox,0,&err); /等待外部中断等待外部中断1发送消息发送消息l if(passwordi=#)

31、 l l strncpy(password,password,i) /密码取密码取i个符号有效个符号有效lif(strcmp(password, PASSWORD)l i=0;lbreak; l else if(j2)lPlayRecord(0,PasswordReinput); /播放密码重新输入提示录音播放密码重新输入提示录音lj+;l elsel PlayRecord(0,PasswordError); /播放提示输入密码错误播放提示输入密码错误l34li+;llif(!strcmp(password, PASSWORD)llfor(i=0;i3;i+)l PlayRecord(0,In

32、putInstructioni); /播放提示录音播放提示录音l &datai=OSMboxPend(E_PRead_MBox,0,&err); /等待外部中断等待外部中断1发送消息发送消息llPlayRecord(0,WaitRecord); /播放等待录音播放等待录音lCmdType= data0; /从从PSTN电路中读取输入按键值电路中读取输入按键值lCmdClass= data1;lDeviceNo= data2;lswitch(CmdType)llcase 0: /查询命令查询命令lDeviceStatus =DeviceCheck(DeviceNo);lbreak;lcase 1: /控制命令控制命令l DeviceStatus=DeviceControl(DeviceNo, CmdClass);l break;llPlayRecord(DeviceNo, DeviceStatus);llStopPhone()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论