1 信息終端的總體設計 信息終端屬于公用電話(huà)領(lǐng)域,在功耗,接入方式,操作方便性等方面都有特殊要求,因此采用標準的嵌入式系統設計。 信息終端的處理器選用SoC嵌入式處理器 ARM7系列中的EP7312。處理器采用ARM7TDMI的處理器內核,有8k字節高速緩沖存儲器(CACHE),支持MMU,帶64路TLB(translation look-aside buffer);寫(xiě)緩沖器。超低功耗(典型值)74MHz工作狀態(tài)時(shí)為90mW, 18MHz工作狀態(tài)時(shí)為30mW,空閑狀態(tài)時(shí)為10mW(CPU時(shí)鐘停止,其余工作),掛起狀態(tài)時(shí) 主板由嵌入式處理器(EP7312)、FLASH (INTEL公司的28F320C3)、SDRAM(W986416DH)、ISDN參考模型中的U接口控制芯片(MC145576)、聲音編解碼芯片(MC145481)、ISDN數據鏈路控制芯片(HFC- S+)等芯片組成。 EP7312通過(guò)總線(xiàn)對FLASH、SDRAM、HFC-S+進(jìn)行控制。處理器通過(guò)對HFC-S+進(jìn)行控制,實(shí)現ISDN 通話(huà)及通信的功能。MC145576芯片主要完成ISDN參考模型中的S/T接口和U接口之間轉換。主板上集成8M的FLASH存貯空間,分為兩個(gè)部分,其中3M作為程序空間,剩下存放和MS- DOS4兼容的文件系統。HFC-S+支持B通道和D通道高級數據鏈路控制(HDLC),向外提供GCI總線(xiàn)、FIFO控制等。MC145481 CODEC芯片是一個(gè)PCM編解碼芯片,它實(shí)現聲音的數字化和重組。 在EP7312的鍵盤(pán)掃描各口線(xiàn)上都加上雙向過(guò)壓保護二極管BAV99及防短路的電阻,提高了防靜電能力及防短路能力。主板時(shí)鐘芯片采用PHILIPS的 PCF8563芯片以防止停振。 3 信息終端的軟件設計 本系統的軟件主要分為啟動(dòng)代碼,芯片驅動(dòng)程序設計,操作系統和ISDN協(xié)議棧的移植,應用程序的設計等。系統軟件結構如圖2。 3.1 啟動(dòng)代碼的設計 啟動(dòng)代碼在信息終端的設計中是很重要的一環(huán),它是EP7312處理器在冷啟動(dòng)后首先執行的一段代碼,用ARM匯編指令編寫(xiě)。在這一段程序中要執行一些必須的初始化任務(wù) ,例如中斷向量表的初始化、SDRAM控制器初始化、存儲器管理單元(MMU)初始化等等。 設置入口指針:?jiǎn)?dòng)程序首先必須定義入口指針,而且整個(gè)應用程序只有一個(gè)入口指針。 設置中斷向量表:ARM7要求中斷向量表必須設置在從0地址開(kāi)始,連續8×4字節的空間,分別是復位、未定義指令錯誤、軟件中斷、預取指令錯誤、數據存取錯誤、IRQ、FIQ和一個(gè)保留的中斷向量。 初始化堆棧和CPU寄存器:系統堆棧初始化取決于用戶(hù)使用的中斷,以及系統需要處理的錯誤類(lèi)型。還需要設置CPU相關(guān)的寄存器,以確定系統使用的SDRAM和其它外設芯片的刷新頻率,數據總線(xiàn)寬度等信息。 初始化存儲器系統:系統集成有MMU來(lái)管理內存空間。 改變處理器模式、狀態(tài):本系統讓處理器一直處于超級用戶(hù)模式。 初始化C語(yǔ)言所需的存儲器空間:在初始化期間應將系統需要讀寫(xiě)的數據和變量從 FLASH拷貝到SDRAM里。并要對一些全局的數據進(jìn)行初始化,如BSS數據段。 跳轉到C程序入口:?jiǎn)?dòng)代碼跳到C程序的入口,開(kāi)始一段NUCLEUS操作系統的初始化和應用程序初始化的代碼。 啟動(dòng)代碼的流程框圖如圖3。 3.2 ISDN協(xié)議棧的移植 信息終端通過(guò)ISDN網(wǎng)接入INTERNET,因此必須在操作系統之上移植ISDN協(xié)議棧。本文采用的ISDN用戶(hù)-網(wǎng)絡(luò )接口協(xié)議棧和X.25協(xié)議棧是來(lái)自 ISDN-BRICKS的商用軟件包,它滿(mǎn)足ITU-T的I.430、Q.921、Q.931、X.25和X.31以及相應的中國標準[1~5]。 ISDN和X25協(xié)議棧軟件包是一個(gè)按照相關(guān)標準編寫(xiě)的通用軟件包。該軟件包按多進(jìn)程/多任務(wù)操作系統環(huán)境設計,支持不同的實(shí)現環(huán)境,如操作系統、CPU和編譯系統等。一個(gè)多進(jìn)程/多任務(wù)操作系統環(huán)境一般必須具有以下功能:進(jìn)程/任務(wù)調度、進(jìn)程/任務(wù)之間的通信、共享資源的互斥訪(fǎng)問(wèn)、內存管理以及定時(shí)管理。但是,即使同是多任務(wù)操作系統,也還存在著(zhù)實(shí)現機制和函數調用句法的不同。NUCLEUS雖是一個(gè)能提供上述功能的實(shí)時(shí)操作系統,但通用的ISDN和X25協(xié)議棧軟件包必須經(jīng)過(guò)移植,才能在NUCLEUS操作系統下運行。因此,ISDN和X25協(xié)議棧軟件包的移植工作必須在以下幾個(gè)方面進(jìn)行: (1)將創(chuàng )建SERVER移植為創(chuàng )建NUCLEUS的任務(wù); 共享資源,如消息塊、數據緩沖區塊、定時(shí)管理單元數據塊以及動(dòng)態(tài)分配內存塊; (3)將對通用郵箱的收發(fā)操作移植為對 NUCLEUS的消息隊列的收發(fā)操作; (4)將對共享資源的鎖定管理移植為對 NUCLEUS的信號燈的管理; (5)將定時(shí)管理模塊移植為NUCLEUS的定時(shí)超時(shí)函數; (6)將通用的禁中斷操作移植為NUCLEUS的禁中斷操作。 3.3 應用程序設計要點(diǎn) 應用程序包括主控模塊,廣告模塊,維護模塊,語(yǔ)音模塊,輸入法,瀏覽器等。 在設計過(guò)程中要注意以下幾點(diǎn): 注意內存釋放:內存申請一定要釋放,特別是程序在對錯誤進(jìn)行處理的時(shí)候。 特定地址保護:嵌入式操作系統并不像WINDOWS操作系統那樣對一些重要的地址都作了保護。因此在寫(xiě)應用程序時(shí)要特別注意指針的運用,不能讓非法指針出現。 注意多任務(wù)的環(huán)境:因為在嵌入式系統中每個(gè)模塊都有自己的任務(wù),當前任務(wù)的運行不能影響其它模塊。 4 結束語(yǔ) 本文所介紹的信息終端在硬件上具有性能穩定,功耗極低,接入方式簡(jiǎn)便,使用方便的特點(diǎn)。在操作系統移植和驅動(dòng)程序的開(kāi)發(fā)上與硬件緊密結合,具有良好的入網(wǎng)兼容性,人機交互良好等特點(diǎn)。目前,該系統已經(jīng)成功應用于全國大部分的電信公話(huà)局,總裝機達兩萬(wàn)臺,取得良好經(jīng)濟和社會(huì )效益。 |