基于EP7312的新一代公用信息終端的設(shè)計(jì)
信息終端屬于公用電話(huà)領(lǐng)域,在功耗,接入方式,操作方便性等方面都有特殊要求,因此采用標(biāo)準(zhǔn)的嵌入式系統(tǒng)設(shè)計(jì)。
信息終端的處理器選用SoC嵌入式處理器 ARM7系列中的EP7312。處理器采用ARM7TDMI的處理器內(nèi)核,有8k字節(jié)高速緩沖存儲(chǔ)器(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í)1 mW(實(shí)時(shí)時(shí)鐘工作,其余停止工作)。
操作系統(tǒng)采用NUCLEUS嵌入式操作系統(tǒng)。 NUCLEUS嵌入式操作系統(tǒng)提供源代碼,用戶(hù)能夠深入地了解底層內(nèi)核的運(yùn)作方式,并可根據(jù)自己的特殊要求改動(dòng)系統(tǒng)軟件。它采用了先進(jìn)的微內(nèi)核(Micro-kernel)技術(shù),在優(yōu)先級(jí)安排,任務(wù)調(diào)度,任務(wù)切換等各個(gè)方面都有相當(dāng)大的優(yōu)勢(shì),對(duì)防止優(yōu)先級(jí)倒轉(zhuǎn)等的方面都有一定的獨(dú)到之處。而且,能夠結(jié)合 Paradigm,SDS以及 ATI自己的多任務(wù)調(diào)試器組成功能強(qiáng)大的集成開(kāi)發(fā)環(huán)境。另外 NUCLEUS除提供功能強(qiáng)大的內(nèi)核操作系統(tǒng)外,還提供種類(lèi)豐富的功能模塊。
信息終端利用ISDN接入公用互聯(lián)網(wǎng),由于 ISDN交換機(jī)有遠(yuǎn)供的能力(可以提供1W的電力),接入終端不需要外接電源,接入方式簡(jiǎn)單。這對(duì)于一種公用電話(huà)的替代產(chǎn)品來(lái)說(shuō)是非常理想的。而且ISDN網(wǎng)性能穩(wěn)定,使用靈活,技術(shù)成熟。信息終端可以充分利用ISDN的兩個(gè)B通道可以給用戶(hù)提供一種公用互聯(lián)網(wǎng)接入方式,在這個(gè)平臺(tái)基礎(chǔ)上就可以開(kāi)發(fā)出各種形式的增值服務(wù)。
2 信息終端的硬件設(shè)計(jì)
信息終端硬件的核心是終端主板,它負(fù)責(zé)管理鍵盤(pán)掃描、外圍狀態(tài)監(jiān)測(cè)等。LCD接口提供 320240分辨率的顯示屏用以顯示數(shù)據(jù)、圖像,以及與用戶(hù)交互信息。另外,由于信息終端屬于公用電話(huà)系統(tǒng),還需包含讀卡器板、功能鍵盤(pán)板、門(mén)開(kāi)及摘掛機(jī)檢測(cè)等功能模塊。
本系統(tǒng)充分利用ISDN交換機(jī)的供電能力,電源板從ISDN線(xiàn)路取電,經(jīng)變換后向主板提供+5V和+3.3V電源。自帶后備電池,保證在線(xiàn)路掉電時(shí),能完成正在進(jìn)行的操作和保存記錄。主板的原理框圖如圖1所示。
主板由嵌入式處理器(EP7312)、FLASH (INTEL公司的28F320C3)、SDRAM(W986416DH)、ISDN參考模型中的U接口控制芯片(MC145576)、聲音編解碼芯片(MC145481)、ISDN數(shù)據(jù)鏈路控制芯片(HFC- S+)等芯片組成。
EP7312通過(guò)總線(xiàn)對(duì)FLASH、SDRAM、HFC-S+進(jìn)行控制。處理器通過(guò)對(duì)HFC-S+進(jìn)行控制,實(shí)現(xiàn)ISDN 通話(huà)及通信的功能。MC145576芯片主要完成ISDN參考模型中的S/T接口和U接口之間轉(zhuǎn)換。主板上集成8M的FLASH存貯空間,分為兩個(gè)部分,其中3M作為程序空間,剩下存放和MS- DOS4兼容的文件系統(tǒng)。HFC-S+支持B通道和D通道高級(jí)數(shù)據(jù)鏈路控制(HDLC),向外提供GCI總線(xiàn)、FIFO控制等。MC145481 CODEC芯片是一個(gè)PCM編解碼芯片,它實(shí)現(xiàn)聲音的數(shù)字化和重組。
在EP7312的鍵盤(pán)掃描各口線(xiàn)上都加上雙向過(guò)壓保護(hù)二極管BAV99及防短路的電阻,提高了防靜電能力及防短路能力。主板時(shí)鐘芯片采用PHILIPS的 PCF8563芯片以防止停振。
3 信息終端的軟件設(shè)計(jì)
本系統(tǒng)的軟件主要分為啟動(dòng)代碼,芯片驅(qū)動(dòng)程序設(shè)計(jì),操作系統(tǒng)和ISDN協(xié)議棧的移植,應(yīng)用程序的設(shè)計(jì)等。系統(tǒng)軟件結(jié)構(gòu)如圖2。
3.1 啟動(dòng)代碼的設(shè)計(jì)
啟動(dòng)代碼在信息終端的設(shè)計(jì)中是很重要的一環(huán),它是EP7312處理器在冷啟動(dòng)后首先執(zhí)行的一段代碼,用ARM匯編指令編寫(xiě)。在這一段程序中要執(zhí)行一些必須的初始化任務(wù) ,例如中斷向量表的初始化、SDRAM控制器初始化、存儲(chǔ)器管理單元(MMU)初始化等等。
設(shè)置入口指針:?jiǎn)?dòng)程序首先必須定義入口指針,而且整個(gè)應(yīng)用程序只有一個(gè)入口指針。
設(shè)置中斷向量表:ARM7要求中斷向量表必須設(shè)置在從0地址開(kāi)始,連續(xù)84字節(jié)的空間,分別是復(fù)位、未定義指令錯(cuò)誤、軟件中斷、預(yù)取指令錯(cuò)誤、數(shù)據(jù)存取錯(cuò)誤、IRQ、FIQ和一個(gè)保留的中斷向量。
初始化堆棧和CPU寄存器:系統(tǒng)堆棧初始化取決于用戶(hù)使用的中斷,以及系統(tǒng)需要處理的錯(cuò)誤類(lèi)型。還需要設(shè)置CPU相關(guān)的寄存器,以確定系統(tǒng)使用的SDRAM和其它外設(shè)芯片的刷新頻率,數(shù)據(jù)總線(xiàn)寬度等信息。
初始化存儲(chǔ)器系統(tǒng):系統(tǒng)集成有MMU來(lái)管理內(nèi)存空間。
改變處理器模式、狀態(tài):本系統(tǒng)讓處理器一直處于超級(jí)用戶(hù)模式。
初始化C語(yǔ)言所需的存儲(chǔ)器空間:在初始化期間應(yīng)將系統(tǒng)需要讀寫(xiě)的數(shù)據(jù)和變量從
FLASH拷貝到SDRAM里。并要對(duì)一些全局的數(shù)據(jù)進(jìn)行初始化,如BSS數(shù)據(jù)段。
跳轉(zhuǎn)到C程序入口:?jiǎn)?dòng)代碼跳到C程序的入口,開(kāi)始一段NUCLEUS操作系統(tǒng)的初始化和應(yīng)用程序初始化的代碼。
啟動(dòng)代碼的流程框圖如圖3。
3.2 ISDN協(xié)議棧的移植
信息終端通過(guò)ISDN網(wǎng)接入INTERNET,因此必須在操作系統(tǒng)之上移植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以及相應(yīng)的中國(guó)標(biāo)準(zhǔn)[1~5]。
ISDN和X25協(xié)議棧軟件包是一個(gè)按照相關(guān)標(biāo)準(zhǔn)編寫(xiě)的通用軟件包。該軟件包按多進(jìn)程/多任務(wù)操作系統(tǒng)環(huán)境設(shè)計(jì),支持不同的實(shí)現(xiàn)環(huán)境,如操作系統(tǒng)、CPU和編譯系統(tǒng)等。一個(gè)多進(jìn)程/多任務(wù)操作系統(tǒng)環(huán)境一般必須具有以下功能:進(jìn)程/任務(wù)調(diào)度、進(jìn)程/任務(wù)之間的通信、共享資源的互斥訪(fǎng)問(wèn)、內(nèi)存管理以及定時(shí)管理。但是,即使同是多任務(wù)操作系統(tǒng),也還存在著實(shí)現(xiàn)機(jī)制和函數(shù)調(diào)用句法的不同。NUCLEUS雖是一個(gè)能提供上述功能的實(shí)時(shí)操作系統(tǒng),但通用的ISDN和X25協(xié)議棧軟件包必須經(jīng)過(guò)移植,才能在NUCLEUS操作系統(tǒng)下運(yùn)行。因此,ISDN和X25協(xié)議棧軟件包的移植工作必須在以下幾個(gè)方面進(jìn)行:
(1)將創(chuàng)建SERVER移植為創(chuàng)建NUCLEUS的任務(wù);
共享資源,如消息塊、數(shù)據(jù)緩沖區(qū)塊、定時(shí)管理單元數(shù)據(jù)塊以及動(dòng)態(tài)分配內(nèi)存塊;(3)將對(duì)通用郵箱的收發(fā)操作移植為對(duì) NUCLEUS的消息隊(duì)列的收發(fā)操作;
(4)將對(duì)共享資源的鎖定管理移植為對(duì) NUCLEUS的信號(hào)燈的管理;
(5)將定時(shí)管理模塊移植為NUCLEUS的定時(shí)超時(shí)函數(shù);
(6)將通用的禁中斷操作移植為NUCLEUS的禁中斷操作。
3.3 應(yīng)用程序設(shè)計(jì)要點(diǎn)
應(yīng)用程序包括主控模塊,廣告模塊,維護(hù)模塊,語(yǔ)音模塊,輸入法,瀏覽器等。
在設(shè)計(jì)過(guò)程中要注意以下幾點(diǎn):
注意內(nèi)存釋放:內(nèi)存申請(qǐng)一定要釋放,特別是程序在對(duì)錯(cuò)誤進(jìn)行處理的時(shí)候。
特定地址保護(hù):嵌入式操作系統(tǒng)并不像WIN DOWS操作系統(tǒng)那樣對(duì)一些重要的地址都作了保護(hù)。因此在寫(xiě)應(yīng)用程序時(shí)要特別注意指針的運(yùn)用,不能讓非法指針出現(xiàn)。
注意多任務(wù)的環(huán)境:因?yàn)樵谇度胧较到y(tǒng)中每個(gè)模塊都有自己的任務(wù),當(dāng)前任務(wù)的運(yùn)行不能影響其它模塊。
4 結(jié)束語(yǔ)
本文所介紹的信息終端在硬件上具有性能穩(wěn)定,功耗極低,接入方式簡(jiǎn)便,使用方便的特點(diǎn)。在操作系統(tǒng)移植和驅(qū)動(dòng)程序的開(kāi)發(fā)上與硬件緊密結(jié)合,具有良好的入網(wǎng)兼容性,人機(jī)交互良好等特點(diǎn)。目前,該系統(tǒng)已經(jīng)成功應(yīng)用于全國(guó)大部分的電信公話(huà)局,總裝機(jī)達(dá)兩萬(wàn)臺(tái),取得良好經(jīng)濟(jì)和社會(huì)效益。
參考文獻(xiàn):
[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在嵌入式應(yīng)用中啟動(dòng)程序的實(shí)現(xiàn)[J],計(jì)算機(jī)與信息技術(shù), 2000.10.
評(píng)論