新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > μC/OS和80C51的固話來電防火墻設計

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

        作者: 時間:2013-01-11 來源:網絡 收藏

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

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

        本文引用地址:http://www.104case.com/article/148143.htm

        h.JPG



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

        交換機相關文章:交換機工作原理



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 辽宁省| 元谋县| 北海市| 丰台区| 海晏县| 延长县| 昆山市| 阿勒泰市| 宜良县| 涞水县| 高青县| 樟树市| 梅州市| 那坡县| 昌都县| 甘德县| 合水县| 静宁县| 裕民县| 尖扎县| 邻水| 霍山县| 固安县| 平安县| 日土县| 安远县| 康平县| 乐至县| 南昌县| 西和县| 平舆县| 察哈| 上饶市| 酒泉市| 汾西县| 福安市| 惠来县| 贵州省| 扶风县| 井陉县| 新巴尔虎左旗|