新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于EP7312的新一代公用信息終端的設計

        基于EP7312的新一代公用信息終端的設計

        作者: 時間:2006-08-08 來源:網絡 收藏
        1 的總體

        屬于電話領域,在功耗,接入方式,操作方便性等方面都有特殊要求,因此采用標準的嵌入式系統

        的處理器選用SoC嵌入式處理器 ARM7系列中的。處理器采用ARM7TDMI的處理器內核,有8k字節高速緩沖存儲器(CACHE),支持MMU,帶64路TLB(translation look-aside buffer);寫緩沖器。超低功耗(典型值)74MHz工作狀態時為90mW, 18MHz工作狀態時為30mW,空閑狀態時為10mW(CPU時鐘停止,其余工作),掛起狀態時1 mW(實時時鐘工作,其余停止工作)。

        操作系統采用NUCLEUS嵌入式操作系統。 NUCLEUS嵌入式操作系統提供源代碼,用戶能夠深入地了解底層內核的運作方式,并可根據自己的特殊要求改動系統軟件。它采用了先進的微內核(Micro-kernel)技術,在優先級安排,任務調度,任務切換等各個方面都有相當大的優勢,對防止優先級倒轉等的方面都有一定的獨到之處。而且,能夠結合 Paradigm,SDS以及 ATI自己的多任務調試器組成功能強大的集成開發環境。另外 NUCLEUS除提供功能強大的內核操作系統外,還提供種類豐富的功能模塊。

        信息終端利用ISDN接入互聯網,由于 ISDN交換機有遠供的能力(可以提供1W的電力),接入終端不需要外接電源,接入方式簡單。這對于一種電話的替代產品來說是非常理想的。而且ISDN網性能穩定,使用靈活,技術成熟。信息終端可以充分利用ISDN的兩個B通道可以給用戶提供一種公用互聯網接入方式,在這個平臺基礎上就可以開發出各種形式的增值服務。

        2 信息終端的硬件

        信息終端硬件的核心是終端主板,它負責管理鍵盤掃描、外圍狀態監測等。LCD接口提供 320240分辨率的顯示屏用以顯示數據、圖像,以及與用戶交互信息。另外,由于信息終端屬于公用電話系統,還需包含讀卡器板、功能鍵盤板、門開及摘掛機檢測等功能模塊。

        本系統充分利用ISDN交換機的供電能力,電源板從ISDN線路取電,經變換后向主板提供+5V和+3.3V電源。自帶后備電池,保證在線路掉電時,能完成正在進行的操作和保存記錄。主板的原理框圖如圖1所示。


        主板由嵌入式處理器()、FLASH (INTEL公司的28F320C3)、SDRAM(W986416DH)、ISDN參考模型中的U接口控制芯片(MC145576)、聲音編解碼芯片(MC145481)、ISDN數據鏈路控制芯片(HFC- S+)等芯片組成。

        通過總線對FLASH、SDRAM、HFC-S+進行控制。處理器通過對HFC-S+進行控制,實現ISDN 通話及通信的功能。MC145576芯片主要完成ISDN參考模型中的S/T接口和U接口之間轉換。主板上集成8M的FLASH存貯空間,分為兩個部分,其中3M作為程序空間,剩下存放和MS- DOS4兼容的文件系統。HFC-S+支持B通道和D通道高級數據鏈路控制(HDLC),向外提供GCI總線、FIFO控制等。MC145481 CODEC芯片是一個PCM編解碼芯片,它實現聲音的數字化和重組。

        在EP7312的鍵盤掃描各口線上都加上雙向過壓保護二極管BAV99及防短路的電阻,提高了防靜電能力及防短路能力。主板時鐘芯片采用PHILIPS的 PCF8563芯片以防止停振。


        3 信息終端的軟件設計

        本系統的軟件主要分為啟動代碼,芯片驅動程序設計,操作系統和ISDN協議棧的移植,應用程序的設計等。系統軟件結構如圖2。


        3.1 啟動代碼的設計
        啟動代碼在信息終端的設計中是很重要的一環,它是EP7312處理器在冷啟動后首先執行的一段代碼,用ARM匯編指令編寫。在這一段程序中要執行一些必須的初始化任務 ,例如中斷向量表的初始化、SDRAM控制器初始化、存儲器管理單元(MMU)初始化等等。

        設置入口指針:啟動程序首先必須定義入口指針,而且整個應用程序只有一個入口指針。

        設置中斷向量表:ARM7要求中斷向量表必須設置在從0地址開始,連續84字節的空間,分別是復位、未定義指令錯誤、軟件中斷、預取指令錯誤、數據存取錯誤、IRQ、FIQ和一個保留的中斷向量。

        初始化堆棧和CPU寄存器:系統堆棧初始化取決于用戶使用的中斷,以及系統需要處理的錯誤類型。還需要設置CPU相關的寄存器,以確定系統使用的SDRAM和其它外設芯片的刷新頻率,數據總線寬度等信息。

        初始化存儲器系統:系統集成有MMU來管理內存空間。

        改變處理器模式、狀態:本系統讓處理器一直處于超級用戶模式。

        初始化C語言所需的存儲器空間:在初始化期間應將系統需要讀寫的數據和變量從

        FLASH拷貝到SDRAM里。并要對一些全局的數據進行初始化,如BSS數據段。

        跳轉到C程序入口:啟動代碼跳到C程序的入口,開始一段NUCLEUS操作系統的初始化和應用程序初始化的代碼。

        啟動代碼的流程框圖如圖3。


        3.2 ISDN協議棧的移植
        信息終端通過ISDN網接入INTERNET,因此必須在操作系統之上移植ISDN協議棧。本文采用的ISDN用戶-網絡接口協議棧和X.25協議棧是來自 ISDN-BRICKS的商用軟件包,它滿足ITU-T的I.430、Q.921、Q.931、X.25和X.31以及相應的中國標準[1~5]。

        ISDN和X25協議棧軟件包是一個按照相關標準編寫的通用軟件包。該軟件包按多進程/多任務操作系統環境設計,支持不同的實現環境,如操作系統、CPU和編譯系統等。一個多進程/多任務操作系統環境一般必須具有以下功能:進程/任務調度、進程/任務之間的通信、共享資源的互斥訪問、內存管理以及定時管理。但是,即使同是多任務操作系統,也還存在著實現機制和函數調用句法的不同。NUCLEUS雖是一個能提供上述功能的實時操作系統,但通用的ISDN和X25協議棧軟件包必須經過移植,才能在NUCLEUS操作系統下運行。因此,ISDN和X25協議棧軟件包的移植工作必須在以下幾個方面進行:

        (1)將創建SERVER移植為創建NUCLEUS的任務;

        共享資源,如消息塊、數據緩沖區塊、定時管理單元數據塊以及動態分配內存塊;

        (3)將對通用郵箱的收發操作移植為對 NUCLEUS的消息隊列的收發操作;

        (4)將對共享資源的鎖定管理移植為對 NUCLEUS的信號燈的管理;

        (5)將定時管理模塊移植為NUCLEUS的定時超時函數;

        (6)將通用的禁中斷操作移植為NUCLEUS的禁中斷操作。

        3.3 應用程序設計要點
        應用程序包括主控模塊,廣告模塊,維護模塊,語音模塊,輸入法,瀏覽器等。

        在設計過程中要注意以下幾點:

        注意內存釋放:內存申請一定要釋放,特別是程序在對錯誤進行處理的時候。

        特定地址保護:嵌入式操作系統并不像WIN DOWS操作系統那樣對一些重要的地址都作了保護。因此在寫應用程序時要特別注意指針的運用,不能讓非法指針出現。

        注意多任務的環境:因為在嵌入式系統中每個模塊都有自己的任務,當前任務的運行不能影響其它模塊。

        4 結束語

        本文所介紹的信息終端在硬件上具有性能穩定,功耗極低,接入方式簡便,使用方便的特點。在操作系統移植和驅動程序的開發上與硬件緊密結合,具有良好的入網兼容性,人機交互良好等特點。目前,該系統已經成功應用于全國大部分的電信公話局,總裝機達兩萬臺,取得良好經濟和社會效益。

        參考文獻:
        [1] EP7312 Datasheet.Cirrus Logic, Dec., 1999.
        [2] Stallings W.Networking standars : a guide to OSI,ISDN,LAN, and MAN standars. Addison-Wesley , 1993
        [3] ISDN-BRICKS System Management Interface Guide. NETBRICKS SA, 2000.9.
        [4] Nucleus PLUS Reference Manual Accelerated Technology, Inc. 2001. [5] 王京林 岳春生 張海英 ARM7在嵌入式應用中啟動程序的實現[J],計算機與信息技術, 2000.10.



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 甘孜县| 常山县| 神农架林区| 清远市| 堆龙德庆县| 绵阳市| 介休市| 永丰县| 景宁| 河曲县| 阿尔山市| 克东县| 许昌市| 湖南省| 山东省| 烟台市| 商南县| 普格县| 余庆县| 茶陵县| 上虞市| 武平县| 焉耆| 娄烦县| 固阳县| 婺源县| 阿拉善左旗| 亳州市| 丹凤县| 永兴县| 虎林市| 江华| 连城县| 新津县| 太谷县| 通河县| 三门峡市| 万宁市| 绿春县| 洛扎县| 襄垣县|