第8章 家庭安防遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)_第1頁
第8章 家庭安防遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)_第2頁
第8章 家庭安防遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)_第3頁
第8章 家庭安防遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)_第4頁
第8章 家庭安防遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1嵌入式系統(tǒng)原理與設(shè)計(jì)嵌入式系統(tǒng)原理與設(shè)計(jì) 第八講第八講 家庭安防遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)家庭安防遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì) 2本節(jié)提要本節(jié)提要功能需求分析及總體設(shè)計(jì)功能需求分析及總體設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì) 軟件設(shè)計(jì)軟件設(shè)計(jì) 38.1 功能需求分析及總體設(shè)計(jì)功能需求分析及總體設(shè)計(jì) l家庭安防監(jiān)控系統(tǒng)主要是通過遠(yuǎn)程安防監(jiān)控器實(shí)現(xiàn)對(duì)家庭智家庭安防監(jiān)控系統(tǒng)主要是通過遠(yuǎn)程安防監(jiān)控器實(shí)現(xiàn)對(duì)家庭智能化系統(tǒng)中各種與信息相關(guān)的通訊設(shè)備、家用電器和家庭保能化系統(tǒng)中各種與信息相關(guān)的通訊設(shè)備、家用電器和家庭保安裝置進(jìn)行集中的或異地的控制和家庭事務(wù)性管理,實(shí)現(xiàn)對(duì)安裝置進(jìn)行集中的或異地的控制和家庭事務(wù)性管理,實(shí)現(xiàn)對(duì)家庭中重要設(shè)備進(jìn)

2、行遠(yuǎn)程信息查詢、安防報(bào)警、遠(yuǎn)程監(jiān)控等家庭中重要設(shè)備進(jìn)行遠(yuǎn)程信息查詢、安防報(bào)警、遠(yuǎn)程監(jiān)控等功能。功能。 圖圖8-1家庭安防系統(tǒng)總體結(jié)構(gòu)圖家庭安防系統(tǒng)總體結(jié)構(gòu)圖 4l整個(gè)安防監(jiān)控器的電路框圖如圖整個(gè)安防監(jiān)控器的電路框圖如圖8-2所示,由電源電路、人機(jī)所示,由電源電路、人機(jī)交互模塊、主控模塊、移動(dòng)通信模塊、設(shè)備控制模塊、數(shù)據(jù)交互模塊、主控模塊、移動(dòng)通信模塊、設(shè)備控制模塊、數(shù)據(jù)采集模塊、采集模塊、PSTN模塊、語音錄放模塊等電路組成。模塊、語音錄放模塊等電路組成。 主控模塊主控模塊PSTN模塊模塊語音錄放模塊語音錄放模塊移動(dòng)通信模塊移動(dòng)通信模塊數(shù)據(jù)采集模塊數(shù)據(jù)采集模塊人機(jī)交互模塊人機(jī)交互模塊設(shè)備控制模

3、塊設(shè)備控制模塊電源模塊電源模塊5本節(jié)提要本節(jié)提要功能需求分析及總體設(shè)計(jì)功能需求分析及總體設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì) 軟件設(shè)計(jì)軟件設(shè)計(jì) 68.2系統(tǒng)硬件設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì)l系統(tǒng)功能較多,考慮系統(tǒng)對(duì)實(shí)時(shí)性、功耗、成本、擴(kuò)展性等要求,安防監(jiān)系統(tǒng)功能較多,考慮系統(tǒng)對(duì)實(shí)時(shí)性、功耗、成本、擴(kuò)展性等要求,安防監(jiān)控器采用控器采用S3C44B0X作為處理器,采用雙音多頻解碼集成電路芯片作為處理器,采用雙音多頻解碼集成電路芯片MT8888和和ISD4004語音芯片實(shí)現(xiàn)報(bào)警器的主要功能,語音芯片實(shí)現(xiàn)報(bào)警器的主要功能,PSTN模塊主要由主模塊主要由主控芯片電路、語音模塊電路、振鈴檢測電路、摘掛機(jī)電路、雙音頻信號(hào)收控芯

4、片電路、語音模塊電路、振鈴檢測電路、摘掛機(jī)電路、雙音頻信號(hào)收發(fā)器電路、輸出放大電路和輸入放大電路等部分組成。發(fā)器電路、輸出放大電路和輸入放大電路等部分組成。 7表表8-1 S3C44B0X主要端口分配表主要端口分配表端口號(hào)端口號(hào)連接端連接端口口功能描述功能描述端口號(hào)端口號(hào)連接端口連接端口功能描述功能描述GPF0K1繼電器繼電器K1控制,接通控制,接通電話通道電話通道nOEMT8888 /RDMT8888讀控制引讀控制引腳腳GPF1K2繼電器繼電器K2控制,選擇控制,選擇播放錄音通道播放錄音通道nWEMT8888 /WRMT8888寫控制引寫控制引腳腳GPF2K3繼電器繼電器K3控制,選擇控制,

5、選擇錄音通道錄音通道ExINT0D4A 74LS123 /Q電話振鈴輸入檢電話振鈴輸入檢測測GPF3ISD4004 RARISD4004行地址時(shí)鐘行地址時(shí)鐘引腳引腳ExINT1D4B 74LS123 /QMT8888按鍵輸入按鍵輸入信號(hào)檢測信號(hào)檢測GPF4ISD4004 /SSISD4004片選片選ExINT2ISD4004 /INTISD4004中斷引腳中斷引腳D0-D3MT8888 D0-D3MT8888數(shù)據(jù)引腳數(shù)據(jù)引腳SIOCKISD4004 SCLKISD4004時(shí)鐘引腳時(shí)鐘引腳A1MT8888 RS0MT8888地址選擇引地址選擇引腳腳SIOTxDISD4004 MOSIISD400

6、4數(shù)據(jù)輸入數(shù)據(jù)輸入引腳引腳nGCS3 MT8888 /CSMT8888片選引腳片選引腳SIORxDISD4004 MISOISD4004數(shù)據(jù)輸出數(shù)據(jù)輸出引腳引腳8監(jiān)控器所涉及的關(guān)鍵技術(shù)主要在以下幾個(gè)方面:監(jiān)控器所涉及的關(guān)鍵技術(shù)主要在以下幾個(gè)方面:1.DTMF(Dual Tone Multi Frequency)收發(fā)芯片收發(fā)芯片MT8888CE的電路設(shè)計(jì);的電路設(shè)計(jì);2.基于語音芯片基于語音芯片ISD4004的錄放音電路設(shè)計(jì);的錄放音電路設(shè)計(jì);3.電話控制模塊家電控制語音提示信息的存放和尋址。電話控制模塊家電控制語音提示信息的存放和尋址。 本章主要對(duì)這幾個(gè)模塊的電路設(shè)計(jì)進(jìn)行介紹,其它電路如電本章

7、主要對(duì)這幾個(gè)模塊的電路設(shè)計(jì)進(jìn)行介紹,其它電路如電源、串口、鍵盤、源、串口、鍵盤、LCD等電路設(shè)計(jì)參考第五章。等電路設(shè)計(jì)參考第五章。98.2.1振鈴檢測電路設(shè)計(jì)振鈴檢測電路設(shè)計(jì)PHONEXS412XP4V10TPA200D8BRIDGE1VCCDGNDR323.3kV168050V111N4148+C414.7uR3310kR341kDGNDC90.1uC4103VCC+C810uR1322kA1B2CLR3Q4Q13Cext14RCext15GND8VCC16D4A74LS123R510kR4150kR1410kExINT0NET0108.2.2 摘掛機(jī)電路設(shè)計(jì)摘掛機(jī)電路設(shè)計(jì)R7100/0.5

8、wR62.2kV58V 1/2wV4LEDK1RELAY-SPSTV11N4148C10.1uV61N4148+C5100u/50vR82.2kV128550VCCR910kR1010kGPF0NET0NET1118.2.3電話電話DTMF收發(fā)器電路設(shè)計(jì)收發(fā)器電路設(shè)計(jì)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語音模塊設(shè)計(jì)語音模塊設(shè)計(jì)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本節(jié)提要本節(jié)提要功能需求分析及總體設(shè)計(jì)功能需求分析及總體設(shè)

12、計(jì)系統(tǒng)硬件設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì) 軟件設(shè)計(jì)軟件設(shè)計(jì) 158.3軟件設(shè)計(jì)軟件設(shè)計(jì)要實(shí)現(xiàn)家電(空調(diào)、電視、等)的遠(yuǎn)程開、關(guān)控制,家電狀態(tài)要實(shí)現(xiàn)家電(空調(diào)、電視、等)的遠(yuǎn)程開、關(guān)控制,家電狀態(tài)的遠(yuǎn)程查詢,必須對(duì)設(shè)備進(jìn)行編號(hào),設(shè)計(jì)規(guī)范的查詢控制的命的遠(yuǎn)程查詢,必須對(duì)設(shè)備進(jìn)行編號(hào),設(shè)計(jì)規(guī)范的查詢控制的命令格式,才能進(jìn)行正確地監(jiān)控家電設(shè)備。在一般家庭中電器類令格式,才能進(jìn)行正確地監(jiān)控家電設(shè)備。在一般家庭中電器類型有以下幾種:型有以下幾種: 1:空調(diào):空調(diào) 2:電視:電視 3:熱水器:熱水器 4:燈開關(guān):燈開關(guān) 5:煤氣監(jiān)測器:煤氣監(jiān)測器 6:火焰監(jiān)測器:火焰監(jiān)測器設(shè)備的監(jiān)控命令設(shè)計(jì)為如下格式:設(shè)備的監(jiān)控命令設(shè)計(jì)

13、為如下格式: 監(jiān)控命令格式:命令類型監(jiān)控命令格式:命令類型+命令分類命令分類+設(shè)備序號(hào)設(shè)備序號(hào)+設(shè)備狀態(tài)。設(shè)備狀態(tài)。命令類型主要分為查詢命令和控制命令兩種;命令分類是指查命令類型主要分為查詢命令和控制命令兩種;命令分類是指查詢命令中的查詢分類,控制命令中的分類,如詢命令中的查詢分類,控制命令中的分類,如0表示關(guān)、表示關(guān)、1表示表示開;設(shè)備序號(hào)是指家電設(shè)備的編號(hào);設(shè)備狀態(tài)是在查詢和控制開;設(shè)備序號(hào)是指家電設(shè)備的編號(hào);設(shè)備狀態(tài)是在查詢和控制動(dòng)作的返回結(jié)果,具體見表動(dòng)作的返回結(jié)果,具體見表8-2。16表表8-2 監(jiān)控命令格式監(jiān)控命令格式命令類型命令類型命令分類命令分類設(shè)備序號(hào)設(shè)備序號(hào)設(shè)備狀態(tài)設(shè)備狀態(tài)

14、30查詢命令查詢命令1控制命令控制命令1開空調(diào)(控制開空調(diào)(控制1)1 空調(diào)空調(diào)1開開0關(guān)空調(diào)(控制、查詢關(guān)空調(diào)(控制、查詢2)0關(guān)關(guān)1開電視(控制)開電視(控制)2電視電視1開開0關(guān)電視(控制、查詢)關(guān)電視(控制、查詢)0關(guān)關(guān)1開熱水器(控制)開熱水器(控制)3熱水器熱水器1開開0關(guān)熱水器(控制、查詢)關(guān)熱水器(控制、查詢)0關(guān)關(guān)1開燈(控制)開燈(控制)4燈開關(guān)燈開關(guān)1開開0關(guān)燈(控制、查詢)關(guān)燈(控制、查詢)0關(guān)關(guān)1開煤氣開關(guān)(控制)開煤氣開關(guān)(控制)5煤氣監(jiān)測器煤氣監(jiān)測器1濃度高濃度高0關(guān)開煤氣開關(guān)(控制、查詢)關(guān)開煤氣開關(guān)(控制、查詢)0無煤氣無煤氣1開噴水開關(guān)(控制)開噴水開關(guān)(控

15、制)6火焰監(jiān)測器火焰監(jiān)測器1有火焰有火焰0關(guān)噴水開關(guān)(控制、查詢)關(guān)噴水開關(guān)(控制、查詢)0無火焰無火焰17 根據(jù)系統(tǒng)功能將任務(wù)劃分為根據(jù)系統(tǒng)功能將任務(wù)劃分為GSM短信查詢控制任務(wù)、報(bào)警短信查詢控制任務(wù)、報(bào)警任務(wù)、電話查詢控制任務(wù)、鍵盤設(shè)置等任務(wù),本章主要針對(duì)前任務(wù)、電話查詢控制任務(wù)、鍵盤設(shè)置等任務(wù),本章主要針對(duì)前3個(gè)任務(wù)進(jìn)行設(shè)計(jì)分析,編程內(nèi)容包括:個(gè)任務(wù)進(jìn)行設(shè)計(jì)分析,編程內(nèi)容包括:l主函數(shù)設(shè)計(jì)主函數(shù)設(shè)計(jì)l報(bào)警任務(wù)報(bào)警任務(wù)lGSM短信查詢控制任務(wù)短信查詢控制任務(wù)lPSTN電話查詢控制任務(wù)電話查詢控制任務(wù)l串口中斷服務(wù)程序串口中斷服務(wù)程序1.外部中斷外部中斷0服務(wù)程序服務(wù)程序18任務(wù)狀態(tài)切換圖任

16、務(wù)狀態(tài)切換圖 198.3.1 主程序設(shè)計(jì)主程序設(shè)計(jì)開始開始系統(tǒng)初始化系統(tǒng)初始化創(chuàng)建任務(wù)創(chuàng)建任務(wù)GSM查詢控制任務(wù)查詢控制任務(wù)報(bào)警任務(wù)報(bào)警任務(wù)電話查詢控制任務(wù)電話查詢控制任務(wù)啟動(dòng)任務(wù)啟動(dòng)任務(wù)20/*任務(wù)優(yōu)先級(jí)定義任務(wù)優(yōu)先級(jí)定義*/#define Phone_Prio 7#define GSM_Prio 6#define Alarm_Prio 5/*任務(wù)堆棧定義任務(wù)堆棧定義*/#define STACKSIZE 50OS_STK Phone_StackSTACKSIZE=0, ; /Phone_Task堆棧堆棧OS_STK GSM_StackSTACKSIZE=0, ; /GSM_Task堆棧堆棧

17、OS_STK Alarm_StackSTACKSIZE=0, ; /Alarm_Task堆棧堆棧/*任務(wù)定義任務(wù)定義*/21/*任務(wù)定義任務(wù)定義*/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 /定義命令參數(shù)消息結(jié)構(gòu)定義命令參數(shù)消息結(jié)構(gòu)INT8U phone_no14; /手機(jī)號(hào)碼手

18、機(jī)號(hào)碼INT8U dev_no; /設(shè)備編號(hào)設(shè)備編號(hào)INT8U cmd_type; / instruction命令類型命令類型INT8U cmd_class; /命令種類命令種類INT8U dev_status; /設(shè)備狀態(tài)設(shè)備狀態(tài)*GSM-_CMD; 22struct GSM_CMD GSM_Command; /定義命令短信消息定義命令短信消息 / OSMboxPend(E_GSM_Mbox,0,&err);/ OSMboxPost(E_GSM_Mbox,GSM_Command);OS_EVENT *E_PConnect_Sem; /申明電話連接消息事件申明電話連接消息事件/ OSS

19、emPend (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 /定義短信消息結(jié)構(gòu)定義短信消息結(jié)構(gòu)INT8U phone_no14; /短信手機(jī)號(hào)

20、碼短信手機(jī)號(hào)碼INT8U msg_time20; /短消息發(fā)送短消息發(fā)送時(shí)間時(shí)間INT8 *msg_data; /短消息內(nèi)容短消息內(nèi)容*GSM_MSG; 23void main() ARMTargetInit(); /開發(fā)板初始化開發(fā)板初始化OSInit(); /操作系統(tǒng)初始化操作系統(tǒng)初始化 /其他初始化操作其他初始化操作OSTaskCreate(Phone_Task,(void*)0,(OS_STK*)& Phone_Stack,Phone_Prio);/ 創(chuàng)建電話監(jiān)控任務(wù)創(chuàng)建電話監(jiān)控任務(wù)OSTaskCreate(GSM_Task,(void*)0,(OS_STK*)& GS

21、M_Stack,GSM_Prio);/ 創(chuàng)建短信監(jiān)控任務(wù)創(chuàng)建短信監(jiān)控任務(wù)OSTaskCreate(Alarm_Task,(void*)0,(OS_STK*)& Alarm_Stack,Alarm_Prio);/ 創(chuàng)建報(bào)警任務(wù)創(chuàng)建報(bào)警任務(wù) /創(chuàng)建其他任務(wù)創(chuàng)建其他任務(wù)InitRtc();/初始化系統(tǒng)時(shí)鐘初始化系統(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)度開始操作系統(tǒng)任務(wù)

22、調(diào)度開始return 0;248.3.2報(bào)警任務(wù)報(bào)警任務(wù) l系統(tǒng)報(bào)警任務(wù)系統(tǒng)報(bào)警任務(wù)功能是指系統(tǒng)功能是指系統(tǒng)定時(shí)查詢各個(gè)定時(shí)查詢各個(gè)設(shè)備的狀態(tài),設(shè)備的狀態(tài),并與設(shè)定的報(bào)并與設(shè)定的報(bào)警值進(jìn)行比較,警值進(jìn)行比較,如果超出設(shè)定如果超出設(shè)定值則通過通信值則通過通信模塊進(jìn)行報(bào)警。模塊進(jìn)行報(bào)警。 開始開始讀取各個(gè)設(shè)備狀態(tài)讀取各個(gè)設(shè)備狀態(tài)判斷是否超出設(shè)定范圍判斷是否超出設(shè)定范圍讀取手機(jī)電話號(hào)碼讀取手機(jī)電話號(hào)碼任務(wù)掛起任務(wù)掛起發(fā)送報(bào)警短信發(fā)送報(bào)警短信判斷是否超判斷是否超出設(shè)定范圍出設(shè)定范圍是否接收到是否接收到短信回復(fù)短信回復(fù)是是否否是是否否手機(jī)電話是手機(jī)電話是否讀完否讀完否否撥打有線電話號(hào)碼撥打有線電話號(hào)碼是

23、是是否接起是否接起播放報(bào)警錄音播放報(bào)警錄音否否掛機(jī)掛機(jī)電話是電話是否讀完否讀完否否是是是是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)/如果狀態(tài)超出設(shè)定范圍,則報(bào)警。如果狀態(tài)超出設(shè)定范圍,則報(bào)警。 for(j=0;jmobile_no=MobilePhonej; GSM_Command -dev_status = DeviceStatus; SendMessage(GSM_C

24、ommand);msg=OSMboxPend(E_GSM_Mbox, 2000, &err);/設(shè)定短信回復(fù)等待時(shí)間設(shè)定短信回復(fù)等待時(shí)間if(msg)break; /如果在規(guī)定時(shí)間內(nèi)有短信回復(fù),跳出循環(huán)如果在規(guī)定時(shí)間內(nèi)有短信回復(fù),跳出循環(huán)26if(msg=NULL) /當(dāng)短信沒有回復(fù),則認(rèn)為短信報(bào)警信息失敗,電話報(bào)警當(dāng)短信沒有回復(fù),則認(rèn)為短信報(bào)警信息失敗,電話報(bào)警while(k2) for(j=0;jOSEventPtr-cmd_type) /提取短信命令類型提取短信命令類型 case 0: /查詢命令查詢命令 GSM_Command -dev_status=DeviceCheck(E

25、_GSM_Mbox-OSEventPtr-dev_no);/查詢指定設(shè)備狀態(tài)查詢指定設(shè)備狀態(tài) SendMessage(GSM_Command); /發(fā)送查詢結(jié)果發(fā)送查詢結(jié)果 break; case 1: /控制命令控制命令 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)控制設(shè)備動(dòng)作,返回狀態(tài)SendMessage(GSM_Command); /發(fā)送控制結(jié)果發(fā)送控制結(jié)

26、果 break;292.短信接收中斷服務(wù)程短信接收中斷服務(wù)程序設(shè)計(jì)序設(shè)計(jì) 短信的接收是放在串口短信的接收是放在串口中斷服務(wù)程序中執(zhí)行中斷服務(wù)程序中執(zhí)行的,需要編寫串口接的,需要編寫串口接收中斷服務(wù)程序。收中斷服務(wù)程序。 開始開始發(fā)出發(fā)出“AT+CMGR=0”命命令讀令讀SIM卡中的短信卡中的短信結(jié)束結(jié)束發(fā)出發(fā)出“AT+CMGD=0”命命令刪除令刪除SIM卡中的短信卡中的短信解析短信內(nèi)容解析短信內(nèi)容通過消息郵箱發(fā)送消息通過消息郵箱發(fā)送消息30void UART0RD_GSM_ISR() unsigned char data4; struct GSM_MSG msg; unsigned char

27、i;ReadMessage(msg); /讀取短信讀取短信data=MessageAnalyze(msg-msg_data); /解析短信內(nèi)容,獲取有效控制或查解析短信內(nèi)容,獲取有效控制或查詢命令參數(shù)詢命令參數(shù)GSM_Command -phone_no= msg-phone_no;GSM_Command -dev_no=data0; /保存短信參數(shù)保存短信參數(shù)GSM_Command -dev_type=data1; GSM_Command -dev_class=data2;OSMboxPost(E_GSM_Mbox,GSM_Command); /發(fā)送短信消息郵箱,激活發(fā)送短信消息郵箱,激活GS

28、M任務(wù)任務(wù)318.3.4 電話查詢控制任務(wù)電話查詢控制任務(wù)l該任務(wù)負(fù)責(zé)有線電話線路的監(jiān)聽,將獲取的數(shù)據(jù)放入消息數(shù)該任務(wù)負(fù)責(zé)有線電話線路的監(jiān)聽,將獲取的數(shù)據(jù)放入消息數(shù)組中。電話查詢控制是通過遠(yuǎn)程電話根據(jù)監(jiān)控器提示音進(jìn)行組中。電話查詢控制是通過遠(yuǎn)程電話根據(jù)監(jiān)控器提示音進(jìn)行按鍵輸入控制或查詢命令來實(shí)現(xiàn)的。電話振鈴檢測與外部中按鍵輸入控制或查詢命令來實(shí)現(xiàn)的。電話振鈴檢測與外部中斷斷0相關(guān)聯(lián),如果出現(xiàn)打入電話,可采用在中斷服務(wù)程序中加相關(guān)聯(lián),如果出現(xiàn)打入電話,可采用在中斷服務(wù)程序中加入信號(hào)量事件來傳遞接入電話信號(hào)。入信號(hào)量事件來傳遞接入電話信號(hào)。32開始開始讀取外部中斷讀取外部中斷0發(fā)送的消息發(fā)送的消息

29、查詢控制語音提示查詢控制語音提示查詢命令查詢命令控制命令控制命令查詢?cè)O(shè)備狀態(tài)查詢?cè)O(shè)備狀態(tài)發(fā)送設(shè)備狀態(tài)發(fā)送設(shè)備狀態(tài)控制設(shè)備動(dòng)作控制設(shè)備動(dòng)作發(fā)送設(shè)備狀態(tài)發(fā)送設(shè)備狀態(tài)輸入密碼輸入密碼驗(yàn)證驗(yàn)證任務(wù)掛起任務(wù)掛起無效無效有效有效掛機(jī)掛機(jī)查詢?cè)O(shè)備選擇查詢?cè)O(shè)備選擇設(shè)備設(shè)備1設(shè)備設(shè)備2設(shè)備設(shè)備n控制設(shè)備選擇控制設(shè)備選擇設(shè)備設(shè)備1設(shè)備設(shè)備2設(shè)備設(shè)備n判斷按鍵內(nèi)容判斷按鍵內(nèi)容33lvoid Phone_Task(void *Id)llchar * password;lINT8U i;lINT8U j=1;lINT8U data3;lINT8U CmdType=0;lINT8U CmdClass =0;lINT8U

30、DeviceNo=0;lINT8U DeviceStatus =0;lfor(;)llOSSemPend (E_PConnect_Sem , 0 , &err); /等待外部中斷等待外部中斷0發(fā)送電話接通信號(hào)量發(fā)送電話接通信號(hào)量lConnectPhone(); /摘機(jī)摘機(jī)lfor(;)l l PlayRecord(0,PasswordInstruction); /播放提示輸入密碼錄音播放提示輸入密碼錄音l passwordi=OSMboxPend(E_PRead_MBox,0,&err); /等待外部中斷等待外部中斷1發(fā)送消息發(fā)送消息l if(passwordi=#) l l

31、strncpy(password,password,i) /密碼取密碼取i個(gè)符號(hào)有效個(gè)符號(hào)有效lif(strcmp(password, PASSWORD)l i=0;lbreak; l else if(j2)lPlayRecord(0,PasswordReinput); /播放密碼重新輸入提示錄音播放密碼重新輸入提示錄音lj+;l elsel PlayRecord(0,PasswordError); /播放提示輸入密碼錯(cuò)誤播放提示輸入密碼錯(cuò)誤l34li+;llif(!strcmp(password, PASSWORD)llfor(i=0;i3;i+)l PlayRecord(0,InputIn

32、structioni); /播放提示錄音播放提示錄音l &datai=OSMboxPend(E_PRead_MBox,0,&err); /等待外部中斷等待外部中斷1發(fā)送消息發(fā)送消息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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論