基于PSTN 的城市電梯安全呼叫系統(tǒng)設(shè)計
管理主機軟件部分選用uC/OS-II 操作系統(tǒng),將其移植到LPC2114 處理器上,移植過程在此不作討論。主程序流程框圖如圖3-2 所示。
圖 3-2 管理主機主程序流程圖
根據(jù)功能要求,劃分系統(tǒng)任務(wù)為:液晶顯示任務(wù)、按鍵檢測任務(wù)、設(shè)置/查詢?nèi)蝿?wù)、信號音檢測任務(wù)、號碼分析任務(wù)、系統(tǒng)自檢任務(wù)及通話任務(wù)等七個任務(wù)。 1) 液晶顯示任務(wù)
每隔1 秒從時鐘芯片DS1302 讀取當(dāng)前時鐘,根據(jù)當(dāng)前狀態(tài)指示液晶顯示不同內(nèi)容,待機狀態(tài)下顯示系統(tǒng)日期和時鐘,通話狀態(tài)下顯示通話時間。 2) 按鍵檢測任務(wù)
鍵盤掃描任務(wù)不斷掃描按鍵,如果檢測到按鍵,記錄鍵值并延時20 毫秒,20 毫秒后仍有按鍵并且鍵值與之前相同時判斷為有效按鍵,通過調(diào)用OSMboxPost(KeyMbox,0,err)函數(shù)將有效鍵值發(fā)送到鍵值消息郵箱KeyMbox,由其他任務(wù)取用。 3) 設(shè)置/查詢?nèi)蝿?wù)
當(dāng)按下SET 鍵時,產(chǎn)生外部中斷EINT1,其中斷服務(wù)程序喚醒設(shè)置/查詢?nèi)蝿?wù)。根據(jù)系統(tǒng)輸入的號碼,可分別進入系統(tǒng)時鐘設(shè)置、遠(yuǎn)程呼叫中心專線電話設(shè)置、自動轉(zhuǎn)外線延時時間設(shè)置、系統(tǒng)自動監(jiān)測范圍設(shè)置。
進入預(yù)置狀態(tài)后,設(shè)置/查詢?nèi)蝿?wù)調(diào)用OSMboxPend(KeyMbox,20, err),等待按鍵, 根據(jù)輸入的首位按鍵,進入相應(yīng)設(shè)置功能的子程序。如按下“8”鍵,進入設(shè)置轉(zhuǎn)外線呼叫延時子程序;按“9” 鍵進入設(shè)置遠(yuǎn)程監(jiān)控中心號碼子程序;按“0” 鍵進入設(shè)置系統(tǒng)時間子程序;按“1” 鍵進入設(shè)置自檢范圍子程序;按“上翻/下翻”鍵進入查詢通話記錄子程序;按“查詢”鍵進入查詢未接電話子程序;長按“查詢”鍵3 秒進入自檢結(jié)果查詢子程序。 4) 信號音檢測任務(wù)
當(dāng)有公共電話網(wǎng)外線呼入或內(nèi)部網(wǎng)絡(luò)轉(zhuǎn)撥遠(yuǎn)程監(jiān)控中心時,通話任務(wù)喚醒信號音檢測任務(wù)。任務(wù)通過采集LM567 芯片的輸出引腳,并根據(jù)信號音的信號標(biāo)準(zhǔn)判斷是否忙音及回鈴音,以事件標(biāo)志的形式反饋給通話任務(wù),使其進行自動掛機處理及記錄通話時間。 5) 號碼分析任務(wù)
當(dāng)有電梯分機呼叫時,管理主機的MT8870 芯片接收DTMF 信號,并產(chǎn)生EINT3 外部中斷。根據(jù)內(nèi)部通信約定,一幀數(shù)據(jù)包括起始碼、分機號、校驗碼及結(jié)束碼。在EINT3 的中斷服務(wù)程序中,將收到的數(shù)據(jù)存入數(shù)組,如果收到結(jié)束碼就表示一幀數(shù)據(jù)接收完畢,通過OSMboxPost()函數(shù)將數(shù)組首地址發(fā)送到已創(chuàng)建好的InCallMbox 消息郵箱,并且喚醒號碼分析任務(wù)。
在號碼分析任務(wù)中,通過調(diào)用OSMboxPend(InC allMbox,0,err)來取得先前中斷中存入的數(shù)組數(shù)據(jù),對號碼進行檢查并校驗,如號碼正確則發(fā)送給通話任務(wù),最后掛起自身任務(wù)。6) 通話任務(wù)
當(dāng)用戶摘機或有公網(wǎng)外線呼入時會產(chǎn)生摘機中斷和振鈴中斷,在各自的中斷服務(wù)程序中調(diào)用OSFlagPost()函數(shù)以事件標(biāo)志的形式通知通話任務(wù)。
在通話任務(wù)中,任務(wù)不斷查詢當(dāng)前的事件標(biāo)志,根據(jù)有無摘機、是否有振鈴、有無內(nèi)部呼叫等,來判斷主機當(dāng)前的狀態(tài),進入相應(yīng)處理子程序。如收到內(nèi)線呼叫碼并且通過號碼分析任務(wù)檢驗,則表示有內(nèi)線呼叫請求,進入內(nèi)線呼叫本機處理程序;如有振鈴中斷,表示有外線呼入請求,進入外線呼叫本機處理程序;如果本機未通話且處于摘機狀態(tài),則進入本地呼叫內(nèi)外線處理程序。這里給出了內(nèi)線呼叫主機處理程序的流程圖,如圖3-3 所示。
評論