新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > μC/OS和80C51的固話來電防火墻設(shè)計

μC/OS和80C51的固話來電防火墻設(shè)計

作者: 時間:2013-01-11 來源:網(wǎng)絡(luò) 收藏

3 ;硬件層驅(qū)動程序設(shè)計
3.1 異步串行口驅(qū)動程序
當使用中斷模式時,從接收移位寄存器接收到一個完整的字節(jié),并將數(shù)據(jù)送入數(shù)據(jù)輸入寄存器,產(chǎn)生一個中斷。中斷處理程序從端口讀入字節(jié),清除中斷源。這時,可以處理ISR收到的字節(jié),或者將字節(jié)送入緩沖區(qū)由后臺處理,緩沖區(qū)大小依賴于后臺進程控制CPU處理信息的速度。從串行端口捕捉數(shù)據(jù)時,常用一種被稱作環(huán)形緩沖區(qū)的專用緩沖區(qū)。
輸入數(shù)據(jù)的響應(yīng)依賴于后臺進程的執(zhí)行速度。如果是實時內(nèi)核,則處理輸入數(shù)據(jù)的速度就與ISR接收不處理的速度差不多。為此,環(huán)形緩沖區(qū)的管理加入了信號量說明:
①應(yīng)用程序等待信號量。
②接收到一字節(jié)后,ISR從串行端口讀入字節(jié)。
③將接收到的字節(jié)送入環(huán)形緩沖區(qū)。
④ISR釋放一個信號量,通知任務(wù)已經(jīng)接收到一字節(jié)。
⑤信號量有效,等待任務(wù)準備開始運行。ISR完成后,內(nèi)核決定等待任務(wù)是否成為優(yōu)先級最高的任務(wù)。如果是,并且內(nèi)核為可剝奪型內(nèi)核,則恢復(fù)等待字節(jié)的任務(wù)。該任務(wù)從環(huán)型緩沖區(qū)取出數(shù)據(jù),并執(zhí)行相關(guān)操作。
3.2 基于;—II的串行口接收驅(qū)動
單片機對串口的支持僅僅是當數(shù)據(jù)送入SBUF時開始移位,但收到一個完整的字節(jié)后產(chǎn)生中斷,通知用戶進行讀操作。在P89C668中,串行口并沒有設(shè)計緩沖區(qū),接收移位寄存器直接將數(shù)據(jù)送到接收SBUF,如果沒有及時從接收SBUF中取出,前一字節(jié)就會丟失。如果沒有驅(qū)動程序的支持,應(yīng)用程序必須一字節(jié)一字節(jié)地接收數(shù)據(jù),不但浪費時間,而且對應(yīng)用程序的編制將產(chǎn)生極大影響。所以,在使用串口的時候,串口驅(qū)動程序是必須有的,通過驅(qū)動程序,可以大大簡化應(yīng)用程序的編寫。
針對P89C668片內(nèi)UART和;—II的特性,設(shè)計了分層明確的驅(qū)動模型,串口接收分層驅(qū)動結(jié)構(gòu)圖略——編者注。
任務(wù)在對環(huán)形緩沖區(qū)進行操作的時候,通過等待信號量,確定緩沖區(qū)是否允許操作。同時,中斷服務(wù)子程序通過釋放信號量來通知任務(wù)可以對緩沖區(qū)進行操作,大大提高了任務(wù)的響應(yīng)時間。

4 系統(tǒng)軟件設(shè)計
根據(jù)硬件構(gòu)成,系統(tǒng)軟件可分為來電解碼、顯示、鍵盤、判決、存儲幾大模塊。模塊在μC/OS—II的調(diào)度之下運行。
在值守狀態(tài)時,各模塊處于掛起態(tài)。當系統(tǒng)檢測到鈴流,將運行來電解碼模塊,并將解得的號碼通知μC/OS—II。μC/OS—II將通過判決模塊判斷來電屬性,執(zhí)行相應(yīng)動作。程序流程如圖8所示。

本文引用地址:http://www.butianyuan.cn/article/148143.htm

h.JPG



結(jié)語
本文設(shè)計了基于μC/OS和80C51單片機的固話來電。介紹了電話機的基本工作原理,對硬件主要模塊進行了詳細地分解分析。對軟件基本流程和設(shè)計思路進行了闡述。整個系統(tǒng)通過了實際產(chǎn)品的最終驗證,達到設(shè)計要求。

交換機相關(guān)文章:交換機工作原理



上一頁 1 2 3 下一頁

關(guān)鍵詞: 騷擾電話 &mu C/OS 防火墻

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉