《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM9內(nèi)核和嵌入式Linux的網(wǎng)絡(luò)投影機(jī)系統(tǒng)設(shè)計(jì)
基于ARM9內(nèi)核和嵌入式Linux的網(wǎng)絡(luò)投影機(jī)系統(tǒng)設(shè)計(jì)
來(lái)源:微型機(jī)與應(yīng)用2011年第10期
章 勇, 呂俊白
(國(guó)立華僑大學(xué) 計(jì)算機(jī)學(xué)院, 福建 泉州362021)
摘要: 對(duì)嵌入式系統(tǒng)的基本概念、原理和基于ARM的嵌入式Linux應(yīng)用系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)作了介紹;設(shè)計(jì)開(kāi)發(fā)了一套用于投影機(jī)的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng),利用Internet,通過(guò)對(duì)底層設(shè)備驅(qū)動(dòng)編程和上層軟件系統(tǒng)的設(shè)計(jì)開(kāi)發(fā),客戶端可通過(guò)瀏覽器訪問(wèn)嵌入式系統(tǒng)內(nèi)置的http服務(wù)器,將投影機(jī)的相關(guān)參數(shù)直觀實(shí)時(shí)地在Web頁(yè)面上顯示出來(lái),并且可以實(shí)現(xiàn)對(duì)于投影機(jī)現(xiàn)場(chǎng)相關(guān)顯示參數(shù)的設(shè)置。
關(guān)鍵詞: ARM 投影機(jī) Linux CGI S3C2410
Abstract:
Key words :

摘  要: 對(duì)嵌入式系統(tǒng)的基本概念、原理和基于ARM的嵌入式Linux應(yīng)用系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)作了介紹;設(shè)計(jì)開(kāi)發(fā)了一套用于投影機(jī)的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng),利用Internet,通過(guò)對(duì)底層設(shè)備驅(qū)動(dòng)編程和上層軟件系統(tǒng)的設(shè)計(jì)開(kāi)發(fā),客戶端可通過(guò)瀏覽器訪問(wèn)嵌入式系統(tǒng)內(nèi)置的http服務(wù)器,將投影機(jī)的相關(guān)參數(shù)直觀實(shí)時(shí)地在Web頁(yè)面上顯示出來(lái),并且可以實(shí)現(xiàn)對(duì)于投影機(jī)現(xiàn)場(chǎng)相關(guān)顯示參數(shù)的設(shè)置。
關(guān)鍵詞: 投影機(jī); Linux; ARM;CGI

    投影機(jī)網(wǎng)絡(luò)化正成為投影機(jī)發(fā)展過(guò)程中的一個(gè)重要趨勢(shì),通過(guò)標(biāo)配的有線及無(wú)線網(wǎng)絡(luò)接口或選配的網(wǎng)絡(luò)適配器,用戶可以通過(guò)計(jì)算機(jī)更方便地向投影機(jī)傳送顯示控制信號(hào),在投影機(jī)上顯示輸出內(nèi)容,可通過(guò)計(jì)算機(jī)來(lái)監(jiān)控管理投影機(jī)。
1 嵌入式計(jì)算機(jī)系統(tǒng)的特點(diǎn)
    嵌入式計(jì)算機(jī)系統(tǒng)[1]同通用型計(jì)算機(jī)系統(tǒng)相比具有以下特點(diǎn):
    (1)嵌入式系統(tǒng)通常面向特定應(yīng)用。與通用型系統(tǒng)的最大不同是嵌入式CPU大多工作在為特定用戶群設(shè)計(jì)的系統(tǒng)中,它通常具有低功耗、體積小、集成度高等特點(diǎn),能夠把通用CPU中許多由板卡完成的功能集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)設(shè)計(jì)趨于小型化,移動(dòng)能力大大增強(qiáng),與網(wǎng)絡(luò)的耦合也越來(lái)越緊密。
    (2)嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個(gè)行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物。這一點(diǎn)決定了它必然是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識(shí)集成系統(tǒng)。
    (3)嵌入式系統(tǒng)的硬件和軟件都必須高效率地設(shè)計(jì),量體裁衣、去除冗余,力爭(zhēng)在同樣的硅片面積上實(shí)現(xiàn)更高的性能,這樣才能在具體應(yīng)用中對(duì)處理器的選擇更具有競(jìng)爭(zhēng)力。
    (4)嵌入式系統(tǒng)與具體應(yīng)用有機(jī)結(jié)合,它的升級(jí)換代也是與具體產(chǎn)品同步進(jìn)行的,因此嵌入式系統(tǒng)產(chǎn)品一旦進(jìn)入市場(chǎng),一般具有較長(zhǎng)的生命周期。
    (5)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲(chǔ)器芯片或單片機(jī)中,而不是存儲(chǔ)于磁盤等載體中。
    (6)嵌入式系統(tǒng)本身不具備自舉開(kāi)發(fā)能力,設(shè)計(jì)完成以后用戶通常不能對(duì)其中的程序功能進(jìn)行修改,必須有一套開(kāi)發(fā)工具和環(huán)境才能進(jìn)行開(kāi)發(fā)[2]。
2 嵌入式投影機(jī)系統(tǒng)的組成
    本系統(tǒng)采用目前比較流行的ARM處理器和嵌入式Linux操作系統(tǒng)平臺(tái),對(duì)投影機(jī)進(jìn)行信息采集,并向局域網(wǎng)中的投影機(jī)發(fā)出控制命令。在ARM處理器的NAND Flash中,固化了嵌入式Linux操作系統(tǒng)和http服務(wù)器,可以將投影機(jī)的投影信息及時(shí)地傳輸給用戶,同時(shí)用戶可以方便地通過(guò)瀏覽器修改投影機(jī)的投影參數(shù)。
    首先,用戶在瀏覽器中輸入已經(jīng)聯(lián)入局域網(wǎng)的投影機(jī)嵌入式模塊的IP地址,向嵌入式模塊的http服務(wù)器提出連接請(qǐng)求,輸入正確的用戶名和密碼之后,用戶就可以登錄系統(tǒng)進(jìn)行控制。當(dāng)用戶登錄系統(tǒng)之后,嵌入式模塊首先會(huì)通過(guò)IPC(進(jìn)程間通信)的方式和投影機(jī)的核心模塊通信,投影機(jī)設(shè)備將當(dāng)前投影參數(shù)讀取出來(lái),然后將參數(shù)通過(guò)IPC(進(jìn)程間通信)發(fā)送給嵌入式模塊,嵌入式模塊通過(guò)TCP/IP協(xié)議棧將參數(shù)返回給瀏覽器,用戶則通過(guò)Web頁(yè)面直觀實(shí)時(shí)地查看投影機(jī)當(dāng)前的投影信息。用戶也可以選擇對(duì)投影機(jī)的投影信息進(jìn)行修改,如增加投影機(jī)投影亮度、對(duì)比度、選擇Auto Keystone方式等。
    系統(tǒng)的整體框架如圖1所示。


3 嵌入式投影機(jī)應(yīng)用系統(tǒng)架構(gòu)詳細(xì)設(shè)計(jì)
3.1 硬件平臺(tái)的選擇

    基于嵌入式微處理器在嵌入式系統(tǒng)中的核心地位,選擇一款恰當(dāng)?shù)奶幚砥鞣浅V匾D壳笆袌?chǎng)主流的32位微處理器主要有Power PC、68K、MIPS和ARM等。通常在選擇微處理器時(shí),需要考慮很多因素,如性能、功耗、價(jià)格、配套的開(kāi)發(fā)工具以及市場(chǎng)的供貨情況,而ARM在這些方面都具有優(yōu)勢(shì)。同時(shí)ARM還具有業(yè)界領(lǐng)先的RISC體系架構(gòu),所以,選擇基于ARM核的處理器是最理想的。
    本設(shè)計(jì)采用S3C2410開(kāi)發(fā)板為硬件平臺(tái)。該平臺(tái)在盡可能小的電路板面積上集成了64 M SDRAM、64 M Nand Flash、1 M Nor Flash、RJ-45網(wǎng)卡、音頻輸入與輸出、USB Host、USB Slave、標(biāo)準(zhǔn)串口、SD卡插座、,用戶按鍵和一些用戶燈等設(shè)備接口,并且引出CPU的大部分信號(hào)引腳。通過(guò)這個(gè)平臺(tái)可以針對(duì)S3C2410進(jìn)行系統(tǒng)級(jí)的硬件和軟件設(shè)計(jì),并且能夠很方便地在該平臺(tái)上進(jìn)行相關(guān)的功能擴(kuò)展,并進(jìn)行所需的產(chǎn)品設(shè)計(jì)。

 


3.2 系統(tǒng)的軟件實(shí)現(xiàn)
3.2.1開(kāi)發(fā)平臺(tái)宿主機(jī)的配置

    本系統(tǒng)的開(kāi)發(fā)平臺(tái)選擇ubuntu 8.04 LTS。首先從網(wǎng)絡(luò)上下載vmware workstation的體驗(yàn)版,在Windows XP環(huán)境下安裝配置好。從網(wǎng)絡(luò)下載ubuntu 8.04 LTS版本的ISO鏡像文件,在vmware workstation虛擬機(jī)環(huán)境下安裝配置好ubuntu 8.04 LTS系統(tǒng),設(shè)置虛擬機(jī)中ubuntu系統(tǒng)的網(wǎng)絡(luò)連接方式為Bridged,通過(guò)apt軟件包管理程序可以方便地安裝配置虛擬機(jī)中的ubuntu開(kāi)發(fā)環(huán)境,安裝系統(tǒng)開(kāi)發(fā)所必須的程序庫(kù),如build-essential,samba以及openssh-server等。
3.2.2 開(kāi)發(fā)過(guò)程
    (1)搭建交叉編譯環(huán)境
    當(dāng)開(kāi)發(fā)嵌入式Linux軟件時(shí),一般都要經(jīng)過(guò)交叉編譯。如果是開(kāi)發(fā)PC機(jī)上的軟件,只要用Linux本身提供的強(qiáng)大的編譯器(如GCC)直接編譯即可。而一般的嵌入式設(shè)備所用的CPU和PC機(jī)上的CPU有著不同的架構(gòu),這樣就要求在PC機(jī)上編譯出適用于嵌入式設(shè)備CPU架構(gòu)的軟件,這就是交叉編譯的概念。圖2是交叉編譯環(huán)境圖示。

    (2)U-boot的移植
    嵌入式的軟件系統(tǒng)主要由Bootloader、Kernel、嵌入式文件系統(tǒng)以及應(yīng)用程序等組成。其中,Bootloader是介于硬件和操作系統(tǒng)之間的一層,其作用就好像PC機(jī)中的BIOS。系統(tǒng)加電運(yùn)行后,由系統(tǒng)自動(dòng)加載,通過(guò)這段程序,可以初始化硬件設(shè)備,建立內(nèi)存空間的映射圖,從而將系統(tǒng)的硬件環(huán)境引導(dǎo)到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好環(huán)境。本系統(tǒng)對(duì)于bootloader的選擇采用Das U-boot,由于U-boot的使用范圍相當(dāng)廣,因此很容易找到關(guān)于U-boot移植的相關(guān)資料。U-boot引導(dǎo)程序分為stage1和stage 2兩大部分,stage1中主要包括設(shè)備初始化、中斷設(shè)置、時(shí)鐘的設(shè)置以及存儲(chǔ)器初始化等工作,并且采用匯編語(yǔ)言實(shí)現(xiàn),而一些通用功能大多采用C語(yǔ)言實(shí)現(xiàn),放在stage 2階段執(zhí)行。
    修改cpu/arm920t/start.s文件,start.s文件是采用匯編語(yǔ)言編寫(xiě)的U-boot程序入口代碼,完成對(duì)底層硬件的初始化。
    修改board/smdk2410/nand_read.c中的nand_read_11函數(shù)將stage 2階段的代碼復(fù)制到ram中。
    修改U-boot根目錄下的makefile文件完成以后,依次在終端中執(zhí)行:
    Make distclean //清除生成的鏈接
    Make smdk2410_config
    Make CROSS-COMPILE=arm-linux-編譯成功后,將生成三個(gè)文件,其中需要燒到開(kāi)發(fā)板中的文件是二進(jìn)制的u-boot.bin文件。
    (3)裁剪Linux內(nèi)核
    修改根目錄下的makefile文件,指定目標(biāo)平臺(tái)為ARM,ARCH:=arm,指定交叉編譯器,CROSS_COMPILE=/usr/local/3.3.2/bin/arm-linux-gcc內(nèi)核移植完成后,可以對(duì)內(nèi)核進(jìn)行配置,一般用“make menuconfig”命令即可,具體的配置要根據(jù)自己的軟件平臺(tái)以及應(yīng)用程序的使用情況來(lái)確定,內(nèi)核要盡可能小,以滿足嵌入式系統(tǒng)資源少的特點(diǎn)。
    (4)文件系統(tǒng)的選擇
    cramfs文件系統(tǒng)是專門針對(duì)閃存設(shè)計(jì)的只讀壓縮文件系統(tǒng),其容量上限為256 MB,采用zlib壓縮,文件系統(tǒng)類型可以是EXT2或EXT3。本系統(tǒng)選擇的文件系統(tǒng)正是cramfs文件系統(tǒng)??赏ㄟ^(guò)busybox工具集來(lái)制作根文件系統(tǒng)。
    (5)CGI部分的設(shè)計(jì)
    要實(shí)現(xiàn)網(wǎng)頁(yè)的交互性和實(shí)時(shí)更新,就要用到CGI技術(shù)。公共網(wǎng)關(guān)接口CGI(common gateway interface)是一種服務(wù)器與瀏覽器信息交換的標(biāo)準(zhǔn)接口。從物理上看,CGI程序?qū)儆谝粋€(gè)外部程序,需要編譯成可執(zhí)行文件,以便能夠在服務(wù)器端執(zhí)行,它提供客戶端頁(yè)面HTML代碼的接口,完成無(wú)法做到的交互功能。CGI建立在C/S機(jī)制上,為外部擴(kuò)展應(yīng)用程序與Web服務(wù)器交互提供了一個(gè)標(biāo)準(zhǔn)接口。按照CGI標(biāo)準(zhǔn)編寫(xiě)的外部擴(kuò)展應(yīng)用程序可以處理客戶端輸入的工作數(shù)據(jù),完成客戶端與服務(wù)器的交互操作。因此,如果說(shuō)CGI是Web能夠發(fā)展如此迅猛的最大原因也不為過(guò)。本系統(tǒng)的CGI部分的主函數(shù)(main)中代碼截取如圖3所示。

    (6) 鏡像的燒入
    通過(guò)網(wǎng)絡(luò)燒入代碼可以利用tfttp協(xié)議,在主機(jī)中開(kāi)啟tftp服務(wù),同時(shí)指定鏡像文件所在的目錄,然后利用超級(jí)終端來(lái)控制代碼的燒入,打印信息。首先需要在超級(jí)終端中設(shè)置目標(biāo)板的環(huán)境,包括MAC地址、目標(biāo)板的IP地址、tftp服務(wù)器的IP地址,這里需要將目標(biāo)板和開(kāi)發(fā)主機(jī)的IP地址設(shè)置在同一個(gè)網(wǎng)段,設(shè)置完成以后重啟目標(biāo)系統(tǒng),進(jìn)入待燒入模式,通過(guò)tftpboot、erase、cp.b等命令拷貝鏡像文件到嵌入式設(shè)備存儲(chǔ)設(shè)備中的指定地址段。
    完全燒入完成后重啟目標(biāo)板上的Linux系統(tǒng)即可。待燒入鏡像在nand flash中存放的地址空間如表1所示。

    本文主要討論了應(yīng)用于投影機(jī)設(shè)備的嵌入式模塊的設(shè)計(jì)與開(kāi)發(fā)。包括開(kāi)發(fā)平臺(tái)的選擇,配置嵌入式開(kāi)發(fā)的環(huán)境,對(duì)于Kernel和文件系統(tǒng)的裁剪。最后通過(guò)tftp程序?qū)⒕幾g生成的鏡像文件燒寫(xiě)到嵌入式模塊的存儲(chǔ)設(shè)備中。
參考文獻(xiàn)
[1] 孫瓊.嵌入式Linux應(yīng)用程序開(kāi)發(fā)詳解[M].北京:人民郵電出版社, 2006.
[2] YAGHMOUR K. Building embedded linux systems[M]. O′Reilly, 2008.
[3] 葉欣.嵌入式Linux環(huán)境下Web頁(yè)面技術(shù)的實(shí)現(xiàn)[J].現(xiàn)代商貿(mào)工業(yè),2009(1):356-357.
[4] HENKEL J. Software development in embedded linux[M]. Wirtschaftinformatik proceedings, 2003.
[5] 汪小燕,連曉平,董燕,等. 基于TFTP協(xié)議的嵌入式系 統(tǒng)開(kāi)發(fā)方法設(shè)計(jì)與實(shí)現(xiàn)[J].武漢:華中科技大學(xué)學(xué)報(bào)
(自然科學(xué)版),2006,34(12):56-58.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
最近中文字幕日韩精品 | 99国产精品私拍| 国产主播精品在线| 国产精品jizz在线观看美国 | 久久激情视频免费观看| 99精品欧美一区| 亚洲高清久久| 性做久久久久久| 亚洲主播在线观看| 最新亚洲激情| 在线不卡a资源高清| 国产亚洲电影| 国产精品日日摸夜夜摸av| 久久亚洲精选| 欧美在线不卡视频| 性感少妇一区| 亚洲欧美变态国产另类| 亚洲精品免费网站| 91久久国产综合久久| 欧美影院久久久| 亚洲欧美日韩国产一区二区| 亚洲深夜影院| 亚洲精品无人区| 亚洲国产精品ⅴa在线观看| 激情久久综艺| 一区二区亚洲精品国产| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美经典一区二区三区| 美女视频黄免费的久久| 久久免费高清| 久久精品一本| 久久激情网站| 久久国产日韩| 久久久久欧美| 久久综合九色99| 另类专区欧美制服同性| 久久激情视频| 久久久免费av| 久久免费精品视频| 久久一二三四| 欧美.com| 欧美美女bb生活片| 欧美日韩大片| 欧美性片在线观看| 国产精品一二三四区| 国产日韩精品一区观看| 国产一区二区观看| 国产精品区一区| 国产欧美婷婷中文| 国产一区二区三区久久久| 韩国一区二区三区在线观看| 影音先锋国产精品| 亚洲国产精品悠悠久久琪琪| 亚洲国产美女| 亚洲免费av片| 亚洲免费在线播放| 久久成人免费日本黄色| 亚洲电影免费在线| 亚洲美女区一区| 亚洲影视在线| 久久精品一二三| 欧美~级网站不卡| 欧美日韩国产欧| 国产精品美腿一区在线看| 国产日韩视频| 亚洲高清激情| 一级成人国产| 欧美一区综合| 亚洲另类自拍| 亚洲欧美日产图| 久久综合色综合88| 欧美日韩国产在线播放网站| 国产精品九九| 黑人操亚洲美女惩罚| 亚洲人成艺术| 亚洲综合电影| 亚洲精品国产精品久久清纯直播| 亚洲视频播放| 久久免费精品视频| 欧美午夜一区二区| 尤妮丝一区二区裸体视频| 日韩视频精品在线| 欧美一区影院| 亚洲日本成人| 欧美一区二区在线看| 欧美刺激午夜性久久久久久久| 欧美日韩一区二区在线观看视频 | 亚洲人成在线观看| 亚洲欧美成人一区二区在线电影| 亚洲电影在线看| 亚洲中无吗在线| 久久久久国产精品一区| 免费亚洲婷婷| 国产精品麻豆成人av电影艾秋| 在线播放日韩专区| 亚洲一区高清| 亚洲精品久久久久久久久久久久 | 欧美二区在线看| 国产精品欧美一区喷水| 亚洲国产日韩欧美在线图片| 亚洲自拍啪啪| 一区二区三区高清不卡| 久久久噜噜噜久久久| 国产精品日韩欧美一区| 一本大道久久精品懂色aⅴ| 亚洲另类自拍| 欧美成人在线免费观看| 精品成人在线视频| 久久国产精品毛片| 久久九九久精品国产免费直播| 国产精品综合网站| 亚洲女同同性videoxma| 亚洲欧美日韩中文视频| 欧美视频一区二区在线观看| 亚洲精品美女免费| 野花国产精品入口| 欧美久久精品午夜青青大伊人| 亚洲国产精品一区二区第一页| 亚洲国产精品黑人久久久| 玖玖精品视频| 亚洲电影中文字幕| 亚洲免费观看高清完整版在线观看熊 | 欧美日韩八区| 亚洲人成在线播放网站岛国| 日韩视频欧美视频| 欧美日韩高清区| 妖精成人www高清在线观看| 亚洲视频免费观看| 欧美图区在线视频| 亚洲免费在线看| 久久aⅴ国产欧美74aaa| 国产一区二区成人| 亚洲国产精品尤物yw在线观看| 久久综合九色综合欧美就去吻| 在线国产精品一区| 日韩午夜黄色| 欧美性猛交视频| 亚洲欧美日韩在线| 久久久99爱| 激情久久久久久久久久久久久久久久| 亚洲国产日韩欧美| 欧美精品少妇一区二区三区| 一区二区三区视频在线 | 欧美主播一区二区三区| 国产在线一区二区三区四区| 亚洲国产毛片完整版| 欧美日韩国产二区| 亚洲专区一区二区三区| 久久免费99精品久久久久久| 亚洲激情午夜| 亚洲欧美日韩国产| 国内精品视频在线观看| 亚洲精品国产系列| 国产精品久久久91| 久久精品国产999大香线蕉| 嫩草成人www欧美| 一区二区三区精品视频| 欧美在线观看一二区| 亚洲国产成人不卡| 亚洲视屏一区| 国产主播在线一区| 日韩一级免费观看| 国产农村妇女毛片精品久久麻豆| 亚洲国产精品一区二区www| 欧美日韩另类在线| 欧美在线黄色| 欧美日韩国产综合一区二区| 午夜精品av| 欧美久久成人| 久久se精品一区二区| 欧美日韩国产一区| 欧美伊人精品成人久久综合97| 欧美激情精品久久久久久蜜臀| 亚洲图片在区色| 欧美aⅴ99久久黑人专区| 亚洲性感激情| 欧美激情按摩| 欧美一级视频| 欧美色欧美亚洲高清在线视频| 欧美一区二区精品在线| 欧美日韩成人一区二区三区| 性欧美暴力猛交另类hd| 欧美精品一区二区在线播放| 欧美一区在线看| 欧美四级在线| 亚洲国产精品一区二区三区| 国产精品久久久久一区二区三区共| 亚洲国产日韩在线| 国产精品一区二区在线观看网站| 日韩视频在线永久播放| 国产综合色产在线精品| 亚洲在线黄色| 亚洲欧洲日本在线| 久久精品女人的天堂av| 一区二区三区视频免费在线观看| 欧美电影免费观看高清| 欧美一区二区三区在线免费观看| 欧美视频免费在线| 亚洲人成网站777色婷婷| 国产一区二区成人|