家庭安防远程监控系统设计
VCC
R ELAY-SP DT K2
V2 C2
0 .1 u 1 N41 4 8
V13 R2 1 0k
8 55 0
R18
4 7k
Z2
D2 3 .5 7 95 M
1 2 6 9 10 12 11 4 17
IN+
GS
IN- TONE
OSC1 OSC2
WR EST
CS IRQ/CP
RD ST/GT
RS0
D0
///*****************事件定义*****************///
OS_EVENT *E_GSM_Mbox;
//申明短信消息事件
typedef struct gsm_cmd{
//定义命令参数消息结构INT8U
phone_no[14]; //手机号码INT8U dev_no; //设备编号INT8U
1:空调 2:电视 3:热水器 4:灯开关 5:煤气监测器 6:火焰监测器 设备的监控命令设计为如下格式:
监控命令格式:命令类型+命令分类+设备序号+设备状态。 命令类型主要分为查询命令和控制命令两种;命令分类是指查 询命令中的查询分类,控制命令中的分类,如0表示关、1表示 开;设备序号是指家电设备的编号;设备状态是在查询和控制 动作的返回结果,具体见表8-2。
源、串口、键盘、LCD等电路设计参考第五章。
8
8.2.1振铃检测电路设计
P HONE 2 1
XP4 XS4 V1 0
TPA2 0 0
R4 1 50 k
C41
D8 B R IDGE1
VCC
R13 2 2k
15 + C8
1 0u 1 4
DGND
1 2
VCC
3
R34 1k
D4 A RCex t VCC
Cex t GND
+ C7 4 .7 u
6
Cex t
9 10 VCC 11
A B CLR
Q
5
Q
12
7 4LS1 23
n OE nWE ExINT1
GPF1 Speaker NET2
11
8.2.4语音模块设计
VC C
C18 0 .1 u
DGND
GP F2 GP F3 ExINT2 S IOC K GP F4 S IOTXD S IOR XD
继电器K3控制,选择 ExINT0 D4A 74LS123 电话振铃输入检
录音通道
/Q
测
GPF3 ISD400 ISD4004行地址时钟 ExINT1 D4B 74LS123 MT8888按键输入
4 RAR 引脚
/Q
信号检测
GPF4 ISD400 ISD4004片选 4 /SS
ExINT2 ISD4004 /INT ISD4004中断引脚
cmd_type; // instruction命令类型INT8U cmd_class; //命令种类
INT8U dev_status; //设备状态
}*GSM_CMD;
21
struct GSM_CMD GSM_Command; OSMboxPend(E_GSM_Mbox,0,&err);
//定义命令短信消息 //
1. 主函数设计 2. 报警任务 3. GSM短信查询控制任务 4. PSTN电话查询控制任务 5. 串口中断服务程序 6. 外部中断0服务程序
17
任务状态切换图
报警任务
延任 时务 结抢 束占
任 延务 时等
待
延时结束 任务抢占
空闲任务
任 G务SM抢短占信事件
电任 等 任
话务 待 务 事抢 电 等 件占 话 待
3
1 .2 k C3 8 4
GAIN GAIN
IN- BYPASS
IN+
VS
GND VOUT
8 7 6 5
C39 C23
+
+
C22
0 .1 u
2 20 0 p
LM3 86 M1 (8 )
1 0u 4 7u
R23
0 .0 4 7u C2 4
10
NET1
1 N41 4 8
V8 R15
1 0k
C11
2 .2 u
A
Q
B
C LR
Q
7 4LS1 23
NET0
16
C9
8
0 .1 u R1 4
1 0k
1 3 DGND
4
ExINT0
+
4 .7 u
R33
1 0k
R5
V1 1
R32
1 0k
C4
3 .3 k
1 03 1 N41 4 8
V1 6 8 05 0
9
8.2.2 摘挂机电路设计
NET0
1 N41 4 8
K1
V1
R ELAY- SP S T
// OSMboxPost(E_GSM_Mbox,GSM_Command);
OS_EVENT *E_PConnect_Sem;
//申明电话连接消息事件
// OSSemPend (E_PConnect_Sem,0,&err);
// OSSemPost (E_PConnect_Sem);
OS_EVENT *E_PRead_MBox;
D0-D3 MT8888 MT8888数据引脚 D0-D3
SIOCK ISD4004 SCLK ISD4004时钟引脚
A1
MT8888 MT8888地址选择引 SIOTxD ISD4004 MOSI ISD4004数据输入
RS0
脚
引脚
nGCS3 MT8888 MT8888片选引脚 /CS
SIORxD ISD4004 MISO ISD4004数据输出 引脚
5 煤气监测器
0 关开煤气开关(控制、查询)
1开 0关 1开 0关 1开 0关 1开 0关 1 浓度高 0 无煤气
1 开喷水开关(控制)
6 火焰监测器 1 有火焰
0 关喷水开关(控制、查询)
0 无火焰
16
根据系统功能将任务划分为GSM短信查询控制任务、报警 任务、电话查询控制任务、键盘设置等任务,本章主要针对前3 个任务进行设计分析,编程内容包括:
RS 1 0k
NET2
1
2
3
4
5
6
+
DGND
C21
4 .7 u R31 2 .2 k
R30 2 2k
7
8
9
D3
1 2 3 4 5 6 7 8 9 10 11 12 13 14
SS MOS I MIS O VS SD NC NC NC NC NC NC VS SA VS SA AUD OUT AM CAP
15
命令类型
0查询命令 1控制命令
表8-2 监控命令格式
命令分类
设备序号
设备状态3
1 开空调(控制1)
1 空调
0 关空调(控制、查询2)
1 开电视(控制)
2 电视
0 关电视(控制、查询)
1 开热水器(控制)
3 热水器
0 关热水器(控制、查询)
1 开灯(控制)
4 灯开关
0 关灯(控制、查询)
1 开煤气开关(控制)
任务延抢时占结束
GSM 查询与控 制任务
等待GSM 短信事件 任务等待
PSTN 查询与控 制任务
GSM 短信事件 任务抢占
18
8.3.1 主程序设计
开始 系统初始化
创建任务
GSM查询控制任务
报警任务 …… 电话查询控制任务
启动任务
19
///******************任务优先级定义***************/// #define Phone_Prio 7 #define GSM_Prio 6 #define Alarm_Prio 5 ///******************任务堆栈定义***************/// #define STACKSIZE 50 OS_STK Phone_Stack[STACKSIZE]={0, }; //Phone_Task堆栈 OS_STK GSM_Stack[STACKSIZE]={0, }; //GSM_Task堆栈 OS_STK Alarm_Stack[STACKSIZE]={0, }; //Alarm_Task堆栈 ///******************任务定义***************///
V REF D1
D3
D2
3 8 7 18 13 19 14 15 16
VCC
C16 C17 R20 +
0 .1 u 3 .3 k 4 7u
R19 3 74 k
DGND
C15 0 .1 u
D0
D1
D2
MT8 88 8 CE(20 )
D3
A1
n GCS3
VCC R12
R11
1 0k
2 2k
D4 B
7
RCex t
S C LK VC C D XC LK
INT R AC VS SA
NC NC NC NC VC C A ANA IN+ ANA INNC
28 27 26 25 24 23 22 21 20 19 18 17 16 15IS D4 00 4来自+ C29 1u
C32 0 .1 u
V1 5
+ 3V
L2 C 2 6 +
7
监控器所涉及的关键技术主要在以下几个方面: 1.DTMF(Dual Tone Multi Frequency)收发芯片MT8888CE 的电路设计; 2.基于语音芯片ISD4004的录放音电路设计; 3.电话控制模块家电控制语音提示信息的存放和寻址。 本章主要对这几个模块的电路设计进行介绍,其它电路如电