




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式系統(tǒng)原理與設(shè)計(jì)
第八講家庭安防遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)
本節(jié)提要123功能需求分析及總體設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì)
軟件設(shè)計(jì)
8.1功能需求分析及總體設(shè)計(jì)
家庭安防監(jiān)控系統(tǒng)主要是通過(guò)遠(yuǎn)程安防監(jiān)控器實(shí)現(xiàn)對(duì)家庭智能化系統(tǒng)中各種與信息相關(guān)的通訊設(shè)備、家用電器和家庭保安裝置進(jìn)行集中的或異地的控制和家庭事務(wù)性管理,實(shí)現(xiàn)對(duì)家庭中重要設(shè)備進(jìn)行遠(yuǎn)程信息查詢、安防報(bào)警、遠(yuǎn)程監(jiān)控等功能。圖8-1家庭安防系統(tǒng)總體結(jié)構(gòu)圖整個(gè)安防監(jiān)控器的電路框圖如圖8-2所示,由電源電路、人機(jī)交互模塊、主控模塊、移動(dòng)通信模塊、設(shè)備控制模塊、數(shù)據(jù)采集模塊、PSTN模塊、語(yǔ)音錄放模塊等電路組成。主控模塊PSTN模塊語(yǔ)音錄放模塊移動(dòng)通信模塊數(shù)據(jù)采集模塊人機(jī)交互模塊設(shè)備控制模塊電源模塊本節(jié)提要123功能需求分析及總體設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì)軟件設(shè)計(jì)
8.2系統(tǒng)硬件設(shè)計(jì)系統(tǒng)功能較多,考慮系統(tǒng)對(duì)實(shí)時(shí)性、功耗、成本、擴(kuò)展性等要求,安防監(jiān)控器采用S3C44B0X作為處理器,采用雙音多頻解碼集成電路芯片MT8888和ISD4004語(yǔ)音芯片實(shí)現(xiàn)報(bào)警器的主要功能,PSTN模塊主要由主控芯片電路、語(yǔ)音模塊電路、振鈴檢測(cè)電路、摘掛機(jī)電路、雙音頻信號(hào)收發(fā)器電路、輸出放大電路和輸入放大電路等部分組成。表8-1S3C44B0X主要端口分配表端口號(hào)連接端口功能描述端口號(hào)連接端口功能描述GPF0K1繼電器K1控制,接通電話通道nOEMT8888/RDMT8888讀控制引腳GPF1K2繼電器K2控制,選擇播放錄音通道nWEMT8888/WRMT8888寫控制引腳GPF2K3繼電器K3控制,選擇錄音通道ExINT0D4A74LS123/Q電話振鈴輸入檢測(cè)GPF3ISD4004RARISD4004行地址時(shí)鐘引腳ExINT1D4B74LS123/QMT8888按鍵輸入信號(hào)檢測(cè)GPF4ISD4004/SSISD4004片選ExINT2ISD4004/INTISD4004中斷引腳D0-D3MT8888D0-D3MT8888數(shù)據(jù)引腳SIOCKISD4004SCLKISD4004時(shí)鐘引腳A1MT8888RS0MT8888地址選擇引腳SIOTxDISD4004MOSIISD4004數(shù)據(jù)輸入引腳nGCS3MT8888/CSMT8888片選引腳SIORxDISD4004MISOISD4004數(shù)據(jù)輸出引腳監(jiān)控器所涉及的關(guān)鍵技術(shù)主要在以下幾個(gè)方面:1.DTMF(DualToneMultiFrequency)收發(fā)芯片MT8888CE的電路設(shè)計(jì);2.基于語(yǔ)音芯片ISD4004的錄放音電路設(shè)計(jì);3.電話控制模塊家電控制語(yǔ)音提示信息的存放和尋址。本章主要對(duì)這幾個(gè)模塊的電路設(shè)計(jì)進(jìn)行介紹,其它電路如電源、串口、鍵盤、LCD等電路設(shè)計(jì)參考第五章。8.2.1振鈴檢測(cè)電路設(shè)計(jì)8.2.2摘掛機(jī)電路設(shè)計(jì)8.2.3電話DTMF收發(fā)器電路設(shè)計(jì)8.2.4語(yǔ)音模塊設(shè)計(jì)8.2.5GSM通信模塊主控制器串口DC電源GSM模塊SIM本節(jié)提要123功能需求分析及總體設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì)
軟件設(shè)計(jì)
8.3軟件設(shè)計(jì)要實(shí)現(xiàn)家電(空調(diào)、電視、等)的遠(yuǎn)程開(kāi)、關(guān)控制,家電狀態(tài)的遠(yuǎn)程查詢,必須對(duì)設(shè)備進(jìn)行編號(hào),設(shè)計(jì)規(guī)范的查詢控制的命令格式,才能進(jìn)行正確地監(jiān)控家電設(shè)備。在一般家庭中電器類型有以下幾種:1:空調(diào)2:電視3:熱水器4:燈開(kāi)關(guān)5:煤氣監(jiān)測(cè)器6:火焰監(jiān)測(cè)器設(shè)備的監(jiān)控命令設(shè)計(jì)為如下格式:監(jiān)控命令格式:命令類型+命令分類+設(shè)備序號(hào)+設(shè)備狀態(tài)。命令類型主要分為查詢命令和控制命令兩種;命令分類是指查詢命令中的查詢分類,控制命令中的分類,如0表示關(guān)、1表示開(kāi);設(shè)備序號(hào)是指家電設(shè)備的編號(hào);設(shè)備狀態(tài)是在查詢和控制動(dòng)作的返回結(jié)果,具體見(jiàn)表8-2。表8-2監(jiān)控命令格式命令類型命令分類設(shè)備序號(hào)設(shè)備狀態(tài)30查詢命令1控制命令1開(kāi)空調(diào)(控制1)1空調(diào)1開(kāi)0關(guān)空調(diào)(控制、查詢2)0關(guān)1開(kāi)電視(控制)2電視1開(kāi)0關(guān)電視(控制、查詢)0關(guān)1開(kāi)熱水器(控制)3熱水器1開(kāi)0關(guān)熱水器(控制、查詢)0關(guān)1開(kāi)燈(控制)4燈開(kāi)關(guān)1開(kāi)0關(guān)燈(控制、查詢)0關(guān)1開(kāi)煤氣開(kāi)關(guān)(控制)5煤氣監(jiān)測(cè)器1濃度高0關(guān)開(kāi)煤氣開(kāi)關(guān)(控制、查詢)0無(wú)煤氣1開(kāi)噴水開(kāi)關(guān)(控制)6火焰監(jiān)測(cè)器1有火焰0關(guān)噴水開(kāi)關(guān)(控制、查詢)0無(wú)火焰
根據(jù)系統(tǒng)功能將任務(wù)劃分為GSM短信查詢控制任務(wù)、報(bào)警任務(wù)、電話查詢控制任務(wù)、鍵盤設(shè)置等任務(wù),本章主要針對(duì)前3個(gè)任務(wù)進(jìn)行設(shè)計(jì)分析,編程內(nèi)容包括:主函數(shù)設(shè)計(jì)報(bào)警任務(wù)GSM短信查詢控制任務(wù)PSTN電話查詢控制任務(wù)串口中斷服務(wù)程序外部中斷0服務(wù)程序任務(wù)狀態(tài)切換圖8.3.1主程序設(shè)計(jì)開(kāi)始系統(tǒng)初始化創(chuàng)建任務(wù)GSM查詢控制任務(wù)報(bào)警任務(wù)……電話查詢控制任務(wù)啟動(dòng)任務(wù)///******************任務(wù)優(yōu)先級(jí)定義***************///#definePhone_Prio7#defineGSM_Prio6#defineAlarm_Prio5///******************任務(wù)堆棧定義***************///#defineSTACKSIZE50OS_STKPhone_Stack[STACKSIZE]={0,};//Phone_Task堆棧OS_STKGSM_Stack[STACKSIZE]={0,};//GSM_Task堆棧OS_STKAlarm_Stack[STACKSIZE]={0,};//Alarm_Task堆棧///******************任務(wù)定義***************//////******************任務(wù)定義***************///voidPhone_Task(void*Id);//GSM_TaskvoidGSM_Task(void*Id);//GSM_TaskvoidAlarm_Task(void*Id);//GSM_Task///*****************事件定義*****************///OS_EVENT*E_GSM_Mbox;//申明短信消息事件typedefstructgsm_cmd{//定義命令參數(shù)消息結(jié)構(gòu)INT8Uphone_no[14];//手機(jī)號(hào)碼INT8Udev_no;//設(shè)備編號(hào)INT8Ucmd_type;//instruction命令類型INT8Ucmd_class;//命令種類INT8Udev_status;//設(shè)備狀態(tài)}*GSM-_CMD;structGSM_CMDGSM_Command;//定義命令短信消息//OSMboxPend(E_GSM_Mbox,0,&err);//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;//申明電話按鍵讀取消息事件INT8U*PRead_Message;//定義電話按鍵讀取消息//OSMboxPend(E_PRead_MBox,0,&err);//OSMboxPost(E_PRead_MBox,PRead_Message);typedefstructgsm_msg{//定義短信消息結(jié)構(gòu)INT8Uphone_no[14];//短信手機(jī)號(hào)碼INT8Umsg_time[20];//短消息發(fā)送時(shí)間INT8*msg_data;//短消息內(nèi)容}*GSM_MSG;voidmain(){ARMTargetInit();//開(kāi)發(fā)板初始化OSInit();//操作系統(tǒng)初始化……//其他初始化操作OSTaskCreate(Phone_Task,(void*)0,(OS_STK*)&Phone_Stack,Phone_Prio);//創(chuàng)建電話監(jiān)控任務(wù)OSTaskCreate(GSM_Task,(void*)0,(OS_STK*)&GSM_Stack,GSM_Prio);//創(chuàng)建短信監(jiān)控任務(wù)OSTaskCreate(Alarm_Task,(void*)0,(OS_STK*)&Alarm_Stack,Alarm_Prio);//創(chuàng)建報(bào)警任務(wù)……//創(chuàng)建其他任務(wù)InitRtc();//初始化系統(tǒng)時(shí)鐘E_GSM_Mbox=OSMboxCreate(GSM_Command);E_PConnect_Sem=OSSemCreate(1);E_PRead_Mbox=OSMboxCreate(PRead_Message);OSStart();//操作系統(tǒng)任務(wù)調(diào)度開(kāi)始return0;}8.3.2報(bào)警任務(wù)系統(tǒng)報(bào)警任務(wù)功能是指系統(tǒng)定時(shí)查詢各個(gè)設(shè)備的狀態(tài),并與設(shè)定的報(bào)警值進(jìn)行比較,如果超出設(shè)定值則通過(guò)通信模塊進(jìn)行報(bào)警。開(kāi)始讀取各個(gè)設(shè)備狀態(tài)判斷是否超出設(shè)定范圍讀取手機(jī)電話號(hào)碼任務(wù)掛起發(fā)送報(bào)警短信判斷是否超出設(shè)定范圍是否接收到短信回復(fù)是否是否手機(jī)電話是否讀完否撥打有線電話號(hào)碼是是否接起播放報(bào)警錄音否掛機(jī)電話是否讀完否是是voidAlarm_Task(void*Id){INT8Ui,j,k=0;INT8UDeviceStatus=0;INT8U*msg;for(;;){for(i=0;i<devnum;i++)//檢查每個(gè)設(shè)備狀態(tài){DeviceStatus=DeviceCheck(i);GSM_Command->dev_no=i;if(DeviceStatus<Device[i].BottomStatus||DeviceStatus>Device[i].UpStatus)//如果狀態(tài)超出設(shè)定范圍,則報(bào)警。
for(j=0;j<=MobileNum;j++){//從電話薄中取出電話號(hào)碼進(jìn)行報(bào)警*GSM_Command->mobile_no=MobilePhone[j];GSM_Command->dev_status=DeviceStatus;SendMessage(GSM_Command);msg=OSMboxPend(E_GSM_Mbox,2000,&err);//設(shè)定短信回復(fù)等待時(shí)間if(msg)break;//如果在規(guī)定時(shí)間內(nèi)有短信回復(fù),跳出循環(huán)}if(msg==NULL){//當(dāng)短信沒(méi)有回復(fù),則認(rèn)為短信報(bào)警信息失敗,電話報(bào)警while(k<2){for(j=0;j<=PhoneNum;j++){phoneflag=CallPhone(PhoneNo[j]);if(phoneflag){//判斷電話在規(guī)定時(shí)間內(nèi)是否接通//接通則播放報(bào)警錄音,否則拔下一個(gè)電話號(hào)碼PlayRecord(i,DeviceStatus);//播放設(shè)備i的報(bào)警狀態(tài)StopPhone();//掛機(jī)Break;}}if(phoneflag==0){OSTimeDly(18000);k++;}else{k=0;break;}}}}}}}8.3.3GSM短信查詢控制任務(wù)查詢?nèi)蝿?wù)主要功能是接收GSM通信模塊傳遞的命令,解析命令參數(shù),然后查詢/控制各個(gè)電器設(shè)備,返回查詢/控制狀態(tài)。開(kāi)始讀取串口中斷發(fā)送的消息查詢命令控制命令查詢?cè)O(shè)備狀態(tài)發(fā)送設(shè)備狀態(tài)控制設(shè)備動(dòng)作發(fā)送設(shè)備狀態(tài)任務(wù)掛起查詢?cè)O(shè)備選擇設(shè)備1設(shè)備2設(shè)備n控制設(shè)備選擇設(shè)備1設(shè)備2設(shè)備n判斷短信內(nèi)容voidGSM_Task(void*Id){void*msg=NULL;INT8Uerror;for(;;){OSMboxPend(E_GSM_Mbox,0,&err);//等待短信到來(lái)switch(E_GSM_Mbox->OSEventPtr->cmd_type)//提取短信命令類型{case0://查詢命令
GSM_Command->dev_status=DeviceCheck(E_GSM_Mbox->OSEventPtr->dev_no);//查詢指定設(shè)備狀態(tài)
SendMessage(GSM_Command);//發(fā)送查詢結(jié)果
break;case1://控制命令
GSM_Message->dev_status=DeviceControl(E_GSM_Mbox->OSEventPtr->dev_no,\E_GSM_Mbox->OSEventPtr->cmd_class);SendMessage(GSM_Message);//控制設(shè)備動(dòng)作,返回狀態(tài)SendMessage(GSM_Command);//發(fā)送控制結(jié)果
break;}}}2.短信接收中斷服務(wù)程序設(shè)計(jì)短信的接收是放在串口中斷服務(wù)程序中執(zhí)行的,需要編寫串口接收中斷服務(wù)程序。開(kāi)始發(fā)出“AT+CMGR=0<CR>”命令讀SIM卡中的短信結(jié)束發(fā)出“AT+CMGD=0<CR>”命令刪除SIM卡中的短信解析短信內(nèi)容通過(guò)消息郵箱發(fā)送消息voidUART0RD_GSM_ISR(){unsignedchardata[4];structGSM_MSGmsg;unsignedchari;ReadMessage(msg);//讀取短信data=MessageAnalyze(msg->msg_data);//解析短信內(nèi)容,獲取有效控制或查詢命令參數(shù)GSM_Command->phone_no=msg->phone_no;GSM_Command->dev_no=data[0];//保存短信參數(shù)GSM_Command->dev_type=data[1];GSM_Command->dev_class=data[2];OSMboxPost(E_GSM_Mbox,GSM_Command);//發(fā)送短信消息郵箱,激活GSM任務(wù)}8.3.4電話查詢控制任務(wù)該任務(wù)負(fù)責(zé)有線電話線路的監(jiān)聽(tīng),將獲取的數(shù)據(jù)放入消息數(shù)組中。電話查詢控制是通過(guò)遠(yuǎn)程電話根據(jù)監(jiān)控器提示音進(jìn)行按鍵輸入控制或查詢命令來(lái)實(shí)現(xiàn)的。電話振鈴檢測(cè)與外部中斷0相關(guān)聯(lián),如果出現(xiàn)打入電話,可采用在中斷服務(wù)程序中加入信號(hào)量事件來(lái)傳遞接入電話信號(hào)。開(kāi)始讀取外部中斷0發(fā)送的消息查詢控制語(yǔ)音提示查詢命令控制命令查詢?cè)O(shè)備狀態(tài)發(fā)送設(shè)備狀態(tài)控制設(shè)備動(dòng)作發(fā)送設(shè)備狀態(tài)輸入密碼驗(yàn)證任務(wù)掛起無(wú)效有效掛機(jī)查詢?cè)O(shè)備選擇設(shè)備1設(shè)備2設(shè)備n控制設(shè)備選擇設(shè)備1設(shè)備2設(shè)備n判斷按鍵內(nèi)容voidPhone_Task(void*Id){char*password;INT8Ui;INT8Uj=1;INT8Udata[3];INT8UCmdType=0;INT8UCmdClass=0;INT8UDeviceNo=0;INT8UDeviceStatus=0;for(;;){OSSemPend(E_PConnect_Sem,0,&err);//等待外部中斷0發(fā)送電話接通信號(hào)量ConnectPhone();//摘機(jī)for(;;){PlayRecord(0,PasswordInstruction);//播放提示輸入密碼錄音
password[i]=OSMboxPend(E_PRead_MBox,0,&err);//等待外部中斷1發(fā)送消息
if(password[i]==’#’){strncpy(password,password,i)//密碼取i個(gè)符號(hào)有效if(strcmp(password,PASSWORD)){i=0;break;}elseif(j<2){PlayRecord(0,PasswordReinput);//播放密碼重新輸入提示錄音j++;}elsePlayRecord(0,PasswordError);//播放提示輸入密碼錯(cuò)誤}i++;}if(!strcmp(password,PASSWORD)){for(i=0;i<3;i++){PlayRecord(0,InputInstruction[i]);//播放提示錄音
&data[i]=OSMboxPend(E_PRead_MBox,0,&err);//等待外部中斷1發(fā)送消息}PlayRecord(0,WaitRecord);//播放等待錄音CmdType=data[0];//從PSTN電路中讀取輸入按鍵值CmdClass=data[1];DeviceNo=data[2];switch(CmdType){case0://查詢命令DeviceStatus=DeviceCheck(DeviceNo);break;case1://控制命令
DeviceStatus=DeviceControl(DeviceNo,CmdClass);break;}PlayRecord(DeviceNo,DeviceStatus);}StopPhone();//掛機(jī)}}外部中斷0中斷服務(wù)程序負(fù)責(zé)監(jiān)聽(tīng)電話
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西省吉安市新干縣第二中學(xué)2025年高三第一次模擬考試化學(xué)試卷含解析
- 慢性腎病患者教育
- 寧夏回族自治區(qū)銀川市長(zhǎng)慶高級(jí)中學(xué)2025年高三一診考試化學(xué)試卷含解析
- 2025年理線器合作協(xié)議書
- 2025屆山東省濟(jì)南市歷城區(qū)濟(jì)鋼高級(jí)中學(xué)高三考前熱身化學(xué)試卷含解析
- 護(hù)理品管圈的心得
- 河南省信陽(yáng)市光山縣第二高級(jí)中學(xué)2024-2025學(xué)年高一下學(xué)期3月第一次月考生物學(xué)試題(含答案)
- 2025年海南省省直轄縣級(jí)行政單位瓊中黎族苗族自治縣中考一模歷史試題(含答案)
- 2025年HITECOAT高耐蝕耐磨化學(xué)鍍鎳磷合金鋼板材項(xiàng)目發(fā)展計(jì)劃
- SYB甜品店創(chuàng)業(yè)計(jì)劃書
- 掌握重點(diǎn)中職電子商務(wù)教師資格證試題與答案
- 5.3基本經(jīng)濟(jì)制度 課件 2024-2025學(xué)年統(tǒng)編版道德與法治八年級(jí)下冊(cè)
- 河南省鄭州市管城區(qū)2024-2025學(xué)年級(jí)九年級(jí)下學(xué)期第一次模擬數(shù)學(xué)試題(原卷版+解析版)
- 隔音涂料施工方案
- 甘肅卷2024年高考真題化學(xué)試題(含答案)
- T-CCTAS 61-2023 橋梁承重纜索抗火密封綜合防護(hù)技術(shù)規(guī)程
- 消防員職業(yè)技能鑒定中級(jí)技能題庫(kù)大全
- 鐵路行車組織 課件 項(xiàng)目4 調(diào)車工作
- 2024年浙江郵電職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- (一模)2024-2025學(xué)年佛山市普通高中教學(xué)質(zhì)量檢測(cè)(一)數(shù)學(xué)試卷(含答案)
- 招標(biāo)代理機(jī)構(gòu)選取突發(fā)情況應(yīng)急處理預(yù)案
評(píng)論
0/150
提交評(píng)論