《電子技術(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精品国产热久久91蜜凸| 亚洲韩日在线| 亚洲国产另类久久精品| 久久精品成人一区二区三区蜜臀 | 欧美日韩国产限制| 欧美精品粉嫩高潮一区二区| 欧美成人免费网| 美女主播一区| 欧美成人按摩| 欧美精品啪啪| 欧美日韩在线视频首页| 欧美午夜精品理论片a级大开眼界| 欧美日韩在线免费| 国产精品久久久久久一区二区三区 | 欧美激情一区二区三区四区| 欧美bbbxxxxx| 欧美日韩大片| 国产精品久久久久一区二区三区| 国产精品美女久久| 国产亚洲欧美一区二区| 精品粉嫩aⅴ一区二区三区四区| 在线精品视频一区二区三四| 亚洲国产精品久久久久婷婷884| 亚洲久久视频| 亚洲一区二区三区视频| 校园春色国产精品| 久久精品午夜| 夜夜嗨av一区二区三区网页| 亚洲视频一二| 欧美亚洲一区| 麻豆国产va免费精品高清在线| 欧美国产日本韩| 国产精品99免费看| 国产在线精品成人一区二区三区| 在线看欧美视频| 一区二区三区福利| 欧美一区=区| 亚洲伦理精品| 亚洲欧美视频一区| 狂野欧美激情性xxxx欧美| 欧美精品在线免费观看| 国产九区一区在线| 在线观看精品一区| 亚洲图片欧美一区| 久久国产精品久久久久久| 99国产精品久久久久久久成人热| 亚洲欧美不卡| 猛干欧美女孩| 国产精品嫩草久久久久| 影音先锋日韩有码| 在线亚洲精品| 亚洲国产精品一区制服丝袜 | 亚洲国产综合91精品麻豆| 中文日韩在线| 久久久久国产一区二区三区四区| 欧美aaaaaaaa牛牛影院| 国产精品久久国产三级国电话系列| 国产欧美一区二区视频| 亚洲国产欧美日韩另类综合| 亚洲免费在线电影| 亚洲伦理网站| 久久久精品国产免费观看同学| 欧美日本视频在线| 国产一区二区丝袜高跟鞋图片| 亚洲精品影视在线观看| 欧美一区二区精品| 亚洲视频欧美视频| 美国十次了思思久久精品导航| 国产精品麻豆成人av电影艾秋| 亚洲国产精品一区二区www在线| 亚洲综合导航| 一区二区三区成人| 巨乳诱惑日韩免费av| 国产精品初高中精品久久| 一区二区亚洲欧洲国产日韩| 亚洲一区免费看| 中日韩美女免费视频网址在线观看 | 亚洲电影自拍| 欧美在线视频在线播放完整版免费观看| 在线一区欧美| 农夫在线精品视频免费观看| 国产欧美精品一区aⅴ影院| 日韩天天综合| 亚洲三级毛片| 久久久中精品2020中文| 国产乱理伦片在线观看夜一区| 亚洲日本国产| 亚洲国产日韩欧美综合久久| 香蕉亚洲视频| 国产精品地址| 99综合在线| 日韩亚洲成人av在线| 免费h精品视频在线播放| 国产午夜精品久久久| 亚洲尤物视频网| 亚洲一区二区三区四区在线观看 | 国产真实乱偷精品视频免| 亚洲一区二区视频在线| 中文欧美在线视频| 欧美日韩成人| 亚洲欧洲日韩综合二区| 最新成人在线| 免费成人黄色片| 尹人成人综合网| 亚洲成色最大综合在线| 久久九九全国免费精品观看| 国产欧美日韩精品一区| 亚洲在线日韩| 欧美影视一区| 国产精品一卡| 亚洲欧美日韩国产综合| 香蕉视频成人在线观看 | 99在线精品视频| 这里只有视频精品| 欧美日韩成人综合天天影院| 亚洲精品影院在线观看| av成人福利| 91久久久亚洲精品| 狠狠干狠狠久久| 久久国产精品99精品国产| 久久99在线观看| 国产午夜一区二区三区| 欧美在线电影| 狼人天天伊人久久| 亚洲国产精品久久久久秋霞影院| 亚洲精品五月天| 欧美日韩高清在线一区| 日韩午夜免费| 亚洲专区欧美专区| 国产精品久久网站| 午夜久久tv| 久久综合给合| 亚洲精品国产精品久久清纯直播| 一区二区三区波多野结衣在线观看| 欧美三级电影大全| 亚洲午夜精品福利| 久久精品视频免费播放| 精品动漫3d一区二区三区免费版 | 久久不射中文字幕| 美女露胸一区二区三区| 亚洲国产欧洲综合997久久| 一区二区精品国产| 国产精品久久夜| 欧美一区二区三区在线播放| 六月天综合网| 亚洲人成免费| 亚洲欧美日韩专区| 激情婷婷久久| 99精品热视频| 国产嫩草一区二区三区在线观看| 久久精品国产成人| 欧美激情精品久久久久| 一区二区三区四区五区精品视频| 午夜亚洲精品| 永久久久久久| 亚洲一区在线观看视频| 国产一区清纯| 一区二区三区高清在线| 国产精品综合视频| 亚洲日本aⅴ片在线观看香蕉| 欧美调教视频| 久久精精品视频| 欧美三级日本三级少妇99| 香蕉免费一区二区三区在线观看| 麻豆av福利av久久av| 一区二区三区免费网站| 久久久水蜜桃| 日韩一级在线观看| 久久久一本精品99久久精品66| 亚洲精品一区二区三区av| 欧美一区二区三区在线看| 亚洲国产精品福利| 新狼窝色av性久久久久久| 亚洲国产精品一区二区尤物区| 欧美亚洲专区| 亚洲三级观看| 久久免费高清视频| 中文av一区二区| 免费成人高清| 午夜精品影院| 欧美午夜激情小视频| 亚洲欧洲三级| 国产女主播一区二区三区| 99精品视频免费观看视频| 国产一区二区欧美日韩| 亚洲在线观看视频网站| 亚洲国产高清一区| 久久精品国产精品亚洲综合| 夜夜嗨av色综合久久久综合网| 你懂的视频欧美| 久久成人18免费网站| 国产精品海角社区在线观看| 亚洲精品一区二区三区不| 国产亚洲综合性久久久影院| 亚洲伊人一本大道中文字幕| 亚洲级视频在线观看免费1级| 久久精品一区二区三区不卡牛牛|