基于EP7211構(gòu)建通用嵌入式處理平臺(tái)
出處:sharpchang 發(fā)布于:2007-04-16 19:54:20
關(guān)鍵詞:嵌入式處理器;EP7211;ARM核;系統(tǒng)初始化;RTOS
引言
目前,嵌入式處理器已經(jīng)普遍應(yīng)用于工控領(lǐng)域,構(gòu)建一個(gè)可以方便更換的通用嵌入式處理器模塊,既便于設(shè)計(jì)又便于維修、使用,可以提高工作效率,同時(shí)節(jié)省資金投入。
軟硬件選用
本通用嵌入式處理平臺(tái)主要是用于開發(fā)便攜式電子產(chǎn)品,此類產(chǎn)品不僅要求功能完備、用戶界面友好、操作方便簡(jiǎn)潔,而且要求壽命長(zhǎng)、功耗低。這就要求在設(shè)計(jì)初期從硬件和軟件兩個(gè)方面來(lái)考慮,具體來(lái)說(shuō)就是要從嵌入式處理器、實(shí)時(shí)操作系統(tǒng)和電路形式等幾個(gè)方面來(lái)綜合選取。
嵌入式處理器的選用
在便攜式通信、便攜式計(jì)算機(jī)、多媒體數(shù)字消費(fèi)和需要嵌入式解決方案的市場(chǎng)中,ARM的微處理器正在迅速成為RISC計(jì)算設(shè)計(jì)的標(biāo)準(zhǔn),越來(lái)越多的廠家選擇ARM處理器開發(fā)自己的下一代產(chǎn)品。在本通用開發(fā)平臺(tái)中選用Cirrus Logic公司的嵌入式微處理器EP7211作為CPU,該器件是專為低成本、超低功耗的應(yīng)用設(shè)計(jì)的。
電路形式的選用
一種方案是在通用模塊中設(shè)置盡可能全的功能,但在工控應(yīng)用領(lǐng)域中,將所有功能全部用上的場(chǎng)合并不多,因此,功能太全只能是浪費(fèi),并會(huì)加長(zhǎng)開發(fā)周期。本平臺(tái)的板卡電路由CPU、程序存儲(chǔ)器Flash、RAM、CPU輔助電路(如晶振、復(fù)位)和電源電路構(gòu)成,特殊功能可由特殊模塊自行設(shè)計(jì)。
將嵌入式處理器EP7211、Flash、Dram、串口和電源電路作為一個(gè)通用模塊,數(shù)據(jù)、地址總線、空閑的I/O和其他的外圍接口信號(hào)做成標(biāo)準(zhǔn)的接口插座。如果要實(shí)現(xiàn)以太網(wǎng)接口或液晶顯示等功能,只需要做以太網(wǎng)相關(guān)模塊的電路,并將其與EP7211相關(guān)的信號(hào)做成和通用模塊匹配的接口即可。這樣既減少了調(diào)試CPU、內(nèi)存等部分電路的重復(fù)勞動(dòng),也有利于電路故障的排除。
實(shí)時(shí)操作系統(tǒng)的選用
以嵌入式處理器為中心,當(dāng)搭建好硬件電路時(shí)僅提供了裸機(jī)運(yùn)行平臺(tái),要使整個(gè)系統(tǒng)中有限的硬件資源充分利用起來(lái),還需要嵌入式實(shí)時(shí)操作系統(tǒng)RTOS的軟件支持。針對(duì)本項(xiàng)目,RTOS的選擇有兩個(gè)方案:一是使用已經(jīng)購(gòu)買的用在油田測(cè)井系統(tǒng)SL3000型產(chǎn)品的商用Nucleus;二是使用自主開發(fā)的、專門面向嵌入式應(yīng)用系統(tǒng)的XGW軟件開發(fā)平臺(tái)。
在本通用開發(fā)平臺(tái)中采用了XGW平臺(tái),這是因?yàn)閄GW開發(fā)平臺(tái)是自主研發(fā)的,軟件產(chǎn)品升級(jí)和故障排除等都比較容易,產(chǎn)品成本費(fèi)用相對(duì)較低。另外,EP7211嵌入式處理器和XGW的組合,在“GPS汽車導(dǎo)航系統(tǒng)”和“鐵路交通信息系統(tǒng)PDA”項(xiàng)目中已經(jīng)獲得了成功應(yīng)用,具有較成熟的開發(fā)經(jīng)驗(yàn)。
XGW嵌入式操作系統(tǒng)針對(duì)以ARM7為內(nèi)核的硬件平臺(tái)來(lái)進(jìn)行系統(tǒng)開發(fā),用C語(yǔ)言實(shí)現(xiàn)完成,并借鑒了Windows的消息驅(qū)動(dòng)機(jī)制。XGW功能強(qiáng)大、模塊化設(shè)計(jì)、擴(kuò)展性強(qiáng)、產(chǎn)品升級(jí)容易,其總體框架如圖1所示。XGW軟件開發(fā)平臺(tái)包括事件消息驅(qū)動(dòng)機(jī)制(XGW軟件開發(fā)平臺(tái)中的消息分為鼠標(biāo)消息、鍵盤消息和定時(shí)器消息等三類)、內(nèi)存管理、字符和圖形顯示輸出、圖形組件庫(kù)等。圖形組件庫(kù)中的編輯框、列表框、按鈕、進(jìn)度條等圖形控件為用戶應(yīng)用程序開發(fā)提供了應(yīng)用編程接口API。不過(guò),XGW平臺(tái)對(duì)于系統(tǒng)硬件的中斷響應(yīng)沒(méi)有提供統(tǒng)一的入口和出口,需要開發(fā)人員單獨(dú)處理。
通用模塊的設(shè)計(jì)
本系統(tǒng)的通用模塊主要包括嵌入式處理器、DRAM和非易失性存儲(chǔ)器如ROM或FLASH、電源電路、CF卡接口、彩色LCD顯示器接口、以太網(wǎng)接口和串行接口等。系統(tǒng)的結(jié)構(gòu)框圖如圖2所示。
圖中各部分的主要功能為:紅外(IrD)接口用來(lái)完成便攜式系統(tǒng)之間的無(wú)線數(shù)據(jù)交換;串行接口用于程序和數(shù)據(jù)的及進(jìn)行軟件升級(jí);傳呼譯碼芯片用來(lái)接收個(gè)人傳呼及公共信息;LCD和觸摸屏提供顯示和輸入的人機(jī)界面;Flash RAM與SRAM用于存儲(chǔ)程序和數(shù)據(jù),為程序運(yùn)行提供緩存;電源電路可將電池或外加電源變換為嵌入式處理器和外圍電路所需要的3.3V、2.5V和5V;CF卡用作大容量存儲(chǔ)器;以太網(wǎng)接口用于跟計(jì)算機(jī)或其他模塊進(jìn)行通信;MP3播放器用于播放MP3音樂(lè)。
通用模塊的初始化
由于嵌入式系統(tǒng)的資源有限,程序通常都是固化在ROM中運(yùn)行。ROM中的程序在執(zhí)行前需要由啟動(dòng)程序建立軟件運(yùn)行環(huán)境,主要包括:對(duì)系統(tǒng)硬件進(jìn)行初始化,將出錯(cuò)中止程序或重啟動(dòng)的程序段由ROM拷貝到RAM中;在RAM中創(chuàng)建主程序運(yùn)行時(shí)使用的堆棧和數(shù)據(jù)區(qū);建立C程序運(yùn)行的環(huán)境,如對(duì)段寄存器和堆棧指針初始化、對(duì)靜態(tài)變量和RAM區(qū)清零、建立堆(heap);設(shè)置必要的中斷向量,并將每個(gè)未使用的中斷指向一個(gè)只含RET指令的啞函數(shù),以防止錯(cuò)誤中斷引起系統(tǒng)的混亂。另外,雖然字符串等常數(shù)與程序一起固化在ROM中,系統(tǒng)運(yùn)行時(shí)主程序可以訪問(wèn)它們,但RAM的存取速度比ROM快,因此串?dāng)?shù)據(jù)也應(yīng)在程序執(zhí)行前被拷貝到RAM中,以提高讀出速度。為了提高執(zhí)行速度、方便地存取各寄存器,啟動(dòng)程序由匯編語(yǔ)言來(lái)編寫。
啟動(dòng)程序是嵌入式程序的開頭部分,應(yīng)該與應(yīng)用程序一起固化在EPROM中,并在系統(tǒng)加電后首先執(zhí)行。具體步驟如下:
1. 設(shè)置入口指針
應(yīng)用程序首先必須定義入口指針,而且整個(gè)應(yīng)用程序只有一個(gè)入口指針。
2.設(shè)置中斷向量
ARM7要求中斷向量表必須設(shè)置在從0地址開始,連續(xù)8×4字節(jié)的空間,分別是復(fù)位、未定義指令錯(cuò)誤、軟件中斷、預(yù)取指令錯(cuò)誤、數(shù)據(jù)存取錯(cuò)誤、IRQ、FIQ和一個(gè)保留的中斷向量。
如果ROM定位于0地址,向量表包含一系列跳轉(zhuǎn)到中斷服務(wù)程序的指令;如果RAM定位于0地址,則向量表必須被動(dòng)態(tài)初始化,可以在啟動(dòng)程序中添加一段代碼,使其在運(yùn)行時(shí)將向量表拷貝到0地址開始的RAM空間。
對(duì)于各未用中斷,使其指向一個(gè)只含返回指令的啞函數(shù),以防止錯(cuò)誤中斷引起系統(tǒng)混亂。
3. 初始化堆棧和寄存器
系統(tǒng)堆棧的始化取決于用戶使用了哪些中斷以及系統(tǒng)需要處理哪些異常類型。一般來(lái)說(shuō),管理者堆棧必須設(shè)置;如果使用了IRQ中斷,則IRQ堆棧也必須設(shè)置。如果系統(tǒng)使用了DRAM或其它外設(shè),需要設(shè)置相關(guān)的寄存器,以確定其刷新頻率,數(shù)據(jù)總線寬度等信息。
4. 初始化存儲(chǔ)器系統(tǒng)
有些芯片可通過(guò)寄存器編程初始化存儲(chǔ)器系統(tǒng),而較復(fù)雜的系統(tǒng)通常集成有存儲(chǔ)器管理單元(MMU)來(lái)管理內(nèi)存空間。
5.如果系統(tǒng)應(yīng)用程序是運(yùn)行在用戶模式下,可將系統(tǒng)改為用戶模式并初始化用戶堆棧指針。
6. 初始化C語(yǔ)言所需的存儲(chǔ)器空間
為正確運(yùn)行應(yīng)用程序,在初始化期間應(yīng)將系統(tǒng)需要讀寫的數(shù)據(jù)和變量從ROM拷貝到RAM里;對(duì)靜態(tài)變量和RAM區(qū)清零、建立堆;一些要求快速響應(yīng)的程序,如中斷處理程序,需要拷貝到RAM中運(yùn)行;如果使用FLASH,對(duì)FLASH的擦除和寫入操作也一定要在RAM里運(yùn)行,否則會(huì)出現(xiàn)一些不可預(yù)料的錯(cuò)誤。ARM公司軟件開發(fā)工具包中的鏈接器提供了分布裝載功能,可以實(shí)現(xiàn)這一目的。
7. 呼叫C程序
用C語(yǔ)言編寫嵌入式程序時(shí),要避免使用不能被固化到ROM中的庫(kù)函數(shù),例如“printf()”等需要操作系統(tǒng)支持的庫(kù)函數(shù)。
結(jié)語(yǔ)
本通用嵌入式處理平臺(tái)主要是為開發(fā)便攜式電子產(chǎn)品而設(shè)計(jì),它應(yīng)用了EP7211嵌入式處理器和XGW OS的組合,已經(jīng)在一些相關(guān)的項(xiàng)目中獲得了成功,應(yīng)用已逐漸的成熟。通過(guò)對(duì)本文的介紹,相信也會(huì)對(duì)開發(fā)其他應(yīng)用嵌入式系統(tǒng)的便攜式產(chǎn)品具有一定的借鑒意義?!?
參考文獻(xiàn):
[1]. EP7211 datasheet http://m.58mhw.cn/datasheet/EP7211_300639.html.
[2]. RISC datasheet http://m.58mhw.cn/datasheet/RISC_1189725.html.
[3]. ROM datasheet http://m.58mhw.cn/datasheet/ROM_1188413.html.
[4]. EPROM datasheet http://m.58mhw.cn/datasheet/EPROM_1128137.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開發(fā)實(shí)踐指南2026/1/6 10:40:19
- 嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計(jì)實(shí)踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時(shí)代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識(shí)2025/7/14 16:59:04









