版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
精品文檔-下載后可編輯基于ARM9內(nèi)核的軟硬件平臺(tái)設(shè)計(jì)-技術(shù)方案導(dǎo)讀:嵌入式應(yīng)用系統(tǒng)設(shè)計(jì)包括硬件平臺(tái)和軟件平臺(tái)兩部分。前者是以嵌入式微控制器/微處理器為的硬件系統(tǒng);后者則是圍繞嵌入式操作系統(tǒng)構(gòu)建的軟件系統(tǒng)。兩者在設(shè)計(jì)上是密不可分的,并且需要在設(shè)計(jì)之間進(jìn)行權(quán)衡優(yōu)化,根據(jù)實(shí)際應(yīng)用進(jìn)行外擴(kuò)和裁剪。
基于ARM926EJS內(nèi)核的LPC3180內(nèi)部集成了豐富的外設(shè)資源,為嵌入式系統(tǒng)構(gòu)建提供了很大的設(shè)計(jì)空間。本文結(jié)合筆者開發(fā)LPC3180嵌入式平臺(tái)的實(shí)際經(jīng)驗(yàn),將具體介紹該系統(tǒng)的實(shí)現(xiàn)、結(jié)構(gòu)組成和實(shí)驗(yàn)結(jié)果。
1LPC3180芯片特性介紹
LPC3180是Philips公司新推出的一款A(yù)RM9微控制器。它采用90nm工藝技術(shù),片內(nèi)集成ARM9EJS處理器內(nèi)核,具有高計(jì)算性能、低功耗的特性,這使得在很多對(duì)功耗敏感的嵌入式應(yīng)用場(chǎng)合中仍能使用高性能的ARM9微控制器。LPC3180內(nèi)核正常工作電壓為1.2V,在低功耗模式下可降至0.9V;同時(shí),LPC3180作為一款新型的32位微控制器,其新特性還包括:
◆片內(nèi)集成向量浮點(diǎn)(VFP)協(xié)處理器。LPC3180的浮點(diǎn)運(yùn)算單元有3條獨(dú)立的流水線,支持并行單精度或雙精度浮點(diǎn)加/減、乘/除以及乘累積運(yùn)算,完全兼容IEEE754標(biāo)準(zhǔn),適用于高速浮點(diǎn)運(yùn)算場(chǎng)合。
◆片內(nèi)集成USBOTG控制模塊,同時(shí)支持與便攜USB主設(shè)備或USB外設(shè)相連,可用于與PDA、讀卡器和打印機(jī)等設(shè)備直接相連,而無需PC機(jī)介入。
◆LPC3180采用多層的AHB總線系統(tǒng),為各個(gè)主模塊提供獨(dú)立的總線,包括CPU的指令總線和數(shù)據(jù)總線、2套DMA控制器數(shù)據(jù)總線以及1套USB控制器數(shù)據(jù)總線。
LPC3180的內(nèi)部架構(gòu)如圖1所示。
圖1LPC3180內(nèi)部架構(gòu)
LPC3180的其他特性包括:內(nèi)部集成MLC/SLCNAND控制器、SDR/DDRSDRAM控制器、SD卡接口,UART、SPI、I2C外圍通信模塊,以及高速/毫秒定時(shí)器、RTC、看門狗定時(shí)器、10位ADC等其他功能模塊。
2硬件平臺(tái)設(shè)計(jì)
以LPC3180為的硬件平臺(tái)設(shè)計(jì)框架如圖2所示。
圖2LPC3180硬件平臺(tái)設(shè)計(jì)框圖
(1)存儲(chǔ)器系統(tǒng)
NANDFlash存儲(chǔ)器。通過LPC3180內(nèi)部集成的MLC/SLCNAND控制器直接外接多級(jí)或單級(jí)NANDFlash器件。本系統(tǒng)選用STNAND256R3A,其32MB存儲(chǔ)空間可滿足存放系統(tǒng)引導(dǎo)程序、嵌入式操作系統(tǒng)內(nèi)核和文件系統(tǒng)的大小要求。
SDRAM存儲(chǔ)器。系統(tǒng)選用2片16位MICRONSDRAM,并聯(lián)構(gòu)建32位SDRAM存儲(chǔ)器系統(tǒng)。32MBSDRAM空間,可滿足嵌入式操作系統(tǒng)以及上層應(yīng)用程序的運(yùn)行要求。
SD卡插槽。系統(tǒng)通過LPC3180內(nèi)部集成的SD卡接口,提供SD卡插槽,可用于SD存儲(chǔ)卡外擴(kuò),作為外部存儲(chǔ)空間。
(2)外圍通信接口
UART接口。LPC3180內(nèi)部集成了標(biāo)準(zhǔn)UART模塊和高速UART模塊,符合550工業(yè)標(biāo)準(zhǔn)。系統(tǒng)外擴(kuò)了UART1/7、UART2和UART5,用于實(shí)現(xiàn)基本的串行通信功能;同時(shí),UART5可用于系統(tǒng)啟動(dòng)時(shí)的外部程序。
USB接口。LPC3180內(nèi)部集成了USBhost、USBdevice以及USBOTG控制器,通過外部USB收發(fā)模塊PhilipsISP1301外擴(kuò)USBhost接口A、USBdevice接口B以及USBOTG接口AB。
(3)其他外圍模塊
系統(tǒng)通過I2C接口外擴(kuò)了一個(gè)簡(jiǎn)易的字符型LCD顯示模塊,用于應(yīng)用程序運(yùn)行結(jié)果顯示;同時(shí),為了簡(jiǎn)化硬件系統(tǒng)設(shè)計(jì),系統(tǒng)的以太網(wǎng)模塊通過USBhost接口A以軟件方式實(shí)現(xiàn)外擴(kuò)。
3系統(tǒng)關(guān)鍵模塊設(shè)計(jì)
3.1NANDFlash存儲(chǔ)器模塊
LPC3180內(nèi)部集成了MLC/SLCNAND控制器,通過外部引腳可直接外接多級(jí)或單級(jí)NANDFlash器件,如圖3所示。需要注意的是MLC和SLCNAND控制器通過引腳復(fù)用,使用相同的接口與NANDFlash相連,且同一時(shí)刻只允許開啟其中一個(gè)控制器,因此在系統(tǒng)上電后必須通過配置FLASH_CTRL寄存器選擇要使用的NAND控制器。在閑置狀態(tài)時(shí),也可通過寫寄存器關(guān)閉NAND控制器,以降低功耗。NANDFlash存儲(chǔ)器模塊是整個(gè)系統(tǒng)主要的靜態(tài)數(shù)據(jù)存儲(chǔ)空間,用于存儲(chǔ)系統(tǒng)啟動(dòng)過程中的加載程序,因此在LPC3180系統(tǒng)設(shè)計(jì)中是必不可少的。
圖3NANDFlash接口連接圖
3.2USB接口模塊
LPC3180內(nèi)部集成USB控制模塊,但不包括USB物理層,系統(tǒng)通過外接USB收發(fā)模塊ISP1301實(shí)現(xiàn)USB的物理層接口。圖4是USB接口連接圖。LPC3180內(nèi)部通過AHB從設(shè)備總線配置USB控制器,可工作在全速(12Mb/s)和低速(1.5Mb/s)兩種模式下。
圖4USB接口連接圖
4軟件系統(tǒng)設(shè)計(jì)
軟件系統(tǒng)組成包括系統(tǒng)引導(dǎo)程序Bootloader,嵌入式操作系統(tǒng)以及上層應(yīng)用程序。其中Bootloader是運(yùn)行于操作系統(tǒng)之前的引導(dǎo)程序,主要任務(wù)是完成系統(tǒng)啟動(dòng)之前必要的硬件初始化和操作系統(tǒng)加載;操作系統(tǒng)是整個(gè)嵌入式平臺(tái)的程序,主要功能是高效地管理和分配底層硬件資源,并為上層應(yīng)用程序提供與硬件細(xì)節(jié)無關(guān)的系統(tǒng)調(diào)用接口。
軟件系統(tǒng)設(shè)計(jì)必須與硬件平臺(tái)緊密結(jié)合。LPC3180采用NANDFlash作為整個(gè)系統(tǒng)的程序存儲(chǔ)區(qū)域,在系統(tǒng)啟動(dòng)時(shí)通過片上ROM的bootstrap程序,從NANDFlash加載并執(zhí)行外部引導(dǎo)程序來實(shí)現(xiàn)整個(gè)系統(tǒng)的啟動(dòng)步驟。因此,整個(gè)軟件系統(tǒng)采取了圖5所示的設(shè)計(jì)結(jié)構(gòu)。
圖5軟件系統(tǒng)結(jié)構(gòu)框圖
(1)系統(tǒng)引導(dǎo)程序Bootloader
由于啟動(dòng)過程首先從片內(nèi)的bootstrap程序開始,因此系統(tǒng)采取二級(jí)Bootloader設(shè)計(jì),包括級(jí)Sibl和第二級(jí)Uboot。
其中Sibl是bootstrap加載并執(zhí)行的個(gè)引導(dǎo)程序,在程序大小上受到bootstrap加載的限制,因此設(shè)計(jì)上盡量做到了小型化和功能專一。它除了完成基本的硬件初始化以外,主要功能是實(shí)現(xiàn)其他程序(包括Uboot)從NANDFlash的加載,完成下Bootloader運(yùn)行之前的內(nèi)存地址空間分布。
第二級(jí)Bootloader采用功能強(qiáng)大的sourceforge開源軟件Uboot。Uboot的主要功能是完成嵌入式操作系統(tǒng)啟動(dòng)前的底層硬件初始化,并為L(zhǎng)inux內(nèi)核提供啟動(dòng)參數(shù),終引導(dǎo)操作系統(tǒng)Linux內(nèi)核啟動(dòng)。另外,為了實(shí)現(xiàn)程序鏡像文件編程寫入NANDFlash,Uboot嵌入了一個(gè)NAND子系統(tǒng),通過Uboot的用戶命令行實(shí)現(xiàn)對(duì)NANDFlash的讀/寫操作,可將程序鏡像寫入NANDFlash指定的地址空間。
(2)嵌入式操作系統(tǒng)
LPC3180內(nèi)部集成了ARM926EJS處理器內(nèi)核,帶存儲(chǔ)器管理單元MMU,支持多數(shù)主流嵌入式操作系統(tǒng)。系統(tǒng)通過編寫板級(jí)支持代碼,移植了Linux2.6.10作為平臺(tái)操作系統(tǒng),利用穩(wěn)定的Linux2.6內(nèi)核實(shí)現(xiàn)任務(wù)調(diào)度、進(jìn)程管理、內(nèi)存管理等功能,同時(shí),針對(duì)Linux的可配置性,對(duì)內(nèi)核進(jìn)行裁剪和硬件驅(qū)動(dòng)代碼添加,系統(tǒng)實(shí)現(xiàn)了一個(gè)小型但功能強(qiáng)大的內(nèi)核程序,適應(yīng)了嵌入式系統(tǒng)存儲(chǔ)資源相對(duì)緊缺的狀況。
5系統(tǒng)啟動(dòng)流程分析
由上面的軟件結(jié)構(gòu)組成分析可知,整個(gè)系統(tǒng)啟動(dòng)流程分為3個(gè)步驟:
①系統(tǒng)上電后,首先從片上ROM固化的bootstrap程序執(zhí)行。bootstrap用于完成外部引導(dǎo)程序并跳入執(zhí)行。bootstrap運(yùn)行過程首先讀輸入引腳GPIO_01。如果GPIO_01置為高,則從NANDFlash程序引導(dǎo)系統(tǒng)啟動(dòng);如果置為低,則依次檢測(cè)USB接口和UART5接口,通過外部連接引導(dǎo)程序。系統(tǒng)通過設(shè)置GPIO_IO跳線來控制bootstrap啟動(dòng)過程,本例將GPIO_01置為高,從NANDFlash程序。
②系統(tǒng)啟動(dòng)的第二階段是運(yùn)行bootstrap的引導(dǎo)程序Sibl。Sibl完成系統(tǒng)必要的初始化后,從NANDFlash加載鏡像程序到指定的SDRAM空間。鏡像程序在起始位置添加了64字節(jié)的頭信息,用于Sibl識(shí)別和加載,頭信息數(shù)據(jù)結(jié)構(gòu)如下:
structimage_header{
uint32_tih_magic;/*鏡像頭信息同步字,Sibl通過該字識(shí)別程序*/
uint32_tih_hcrc;/*鏡像頭信息CRC校驗(yàn)碼*/
uint32_tih_time;/*存儲(chǔ)鏡像創(chuàng)建時(shí)間*/
uint32_tih_size;/*鏡像數(shù)據(jù)大小*/
uint32_tih_load;/*鏡像加載地址*/
uint32_tih_ep;/*鏡像入口地址*/
uint32_tih_dcrc;/*鏡像數(shù)據(jù)CRC校驗(yàn)碼*/
uint8_tih_os;/*操作系統(tǒng)信息*/
uint8_tih_arch;/*CPU體系結(jié)構(gòu)類型*/
uint8_tih_type;/*鏡像類型*/
uint8_tih_comp;/*壓縮類型*/
uint8_tih_name[32];/*鏡像名稱*/
}
Sibl從NANDFlash起始地址開始搜索。如果讀到鏡像同步字ih_magic,則識(shí)別鏡像程序,并根據(jù)偏移地址讀取程序大小ih_size和加載地址ih_load,將程序加載到指定的SDRAM空間;加載完成后根據(jù)CRC校驗(yàn)碼ih_dcrc對(duì)SDRAM數(shù)據(jù)進(jìn)行CRC檢測(cè);根據(jù)鏡像類型ih_type判斷鏡像是否可執(zhí)行,若可執(zhí)行,則跳入鏡像入口地址ih_ep,否則Sibl繼續(xù)搜索NANDFlash鏡像程序。
鏡像程序使用U-boot提供的工具mkimage添加頭信息,命令格式如下:
mkimage-Aarch-Oos-Ttype-Ccomp-aaddr-eep-nname-ddata_fileimage
圖6系統(tǒng)啟動(dòng)過程內(nèi)存空間分布圖
③完成Sibl加載后,內(nèi)存空間分布如圖6所示,系統(tǒng)進(jìn)入啟動(dòng)流程的第三階段U-boot。U-boot完成Linux內(nèi)核鏡像的解壓縮和操作系統(tǒng)啟動(dòng)前的初始化,終跳入內(nèi)核入口地址,完成對(duì)Linux的引導(dǎo)。
6系統(tǒng)性能分析
系統(tǒng)構(gòu)建提供了一個(gè)完整的LPC3180嵌入式軟硬件平臺(tái),下面對(duì)LPC3180浮點(diǎn)運(yùn)算能力進(jìn)行測(cè)試和分析。測(cè)試方法是使用一個(gè)浮點(diǎn)運(yùn)算密集的算法,用ADS編譯器分別編譯使能硬件VFP和軟浮點(diǎn)運(yùn)算兩個(gè)版本的測(cè)試程序,并在不同的CPU時(shí)鐘頻率下比較運(yùn)行時(shí)間,結(jié)果如表1所列。
分析實(shí)驗(yàn)數(shù)據(jù),可以得出結(jié)論:VFP協(xié)處理器在相同時(shí)鐘頻率下,提高了5倍左右的浮點(diǎn)運(yùn)算性能。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品生產(chǎn)落料處理制度
- 商品生產(chǎn)臺(tái)賬制度
- 定期安全生產(chǎn)檢查制度
- 生產(chǎn)巡檢記錄管理制度
- 糕點(diǎn)生產(chǎn)質(zhì)量管理制度
- 機(jī)務(wù)安全生產(chǎn)基本制度
- 2026北京第二外國(guó)語學(xué)院第一批非事業(yè)編制人員招聘5人參考考試試題附答案解析
- 安全生產(chǎn)管理人制度
- 蔬菜平行生產(chǎn)管理制度
- 企業(yè)生產(chǎn)車間門管理制度
- 2025 年度VC PE 市場(chǎng)數(shù)據(jù)報(bào)告 投中嘉川
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫及答案詳解(考點(diǎn)梳理)
- 2025年專利管理與保護(hù)操作手冊(cè)
- 2025云南山海遊旅游集團(tuán)有限公司招聘10人考試備考題庫及答案解析
- 2025年網(wǎng)約車司機(jī)收入分成合同
- 2026年海南財(cái)金銀河私募基金管理有限公司招聘?jìng)淇碱}庫參考答案詳解
- 2026年GRE數(shù)學(xué)部分測(cè)試及答案
- 浙江省寧波市鎮(zhèn)海中學(xué)2026屆高二上數(shù)學(xué)期末教學(xué)質(zhì)量檢測(cè)模擬試題含解析
- (2025年)電力交易員練習(xí)試題附答案
- 2026年咨詢工程師現(xiàn)代咨詢方法與實(shí)務(wù)模擬測(cè)試含答案
- 甘肅省酒泉市2025-2026學(xué)年高一上學(xué)期期末語文試題(解析版)
評(píng)論
0/150
提交評(píng)論