電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 1877|回復: 0
收起左側(cè)

嵌入式怎樣學習_一種嵌入式WEB服務器設計與實現(xiàn)

[復制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-8-3 11:12:33 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
嵌入式怎樣學習_一種嵌入式WEB服務器設計與實現(xiàn),   

  



隨著計算機技術(shù)、網(wǎng)絡技術(shù)和微電子技術(shù)的深入發(fā)展,SoC的定義多種多樣,由于其內(nèi)涵豐富、應用范圍廣,很難給出準確定義。一般說來, SoC稱為系統(tǒng)級芯片,也有稱片上系統(tǒng),意指它是一個產(chǎn)品,是一個有專用目標的集成電路,其中包含完整系統(tǒng)并有嵌入軟件的全部內(nèi)容。同時它又是一種技術(shù),用以實現(xiàn)從確定系統(tǒng)功能開始,到軟/硬件劃分,并完成設計的整個過程!霸O備即網(wǎng)絡”是后PC時代對嵌入式系統(tǒng)的客觀要求。因此,需要建立嵌入式的web服務器,以便在智能家居系統(tǒng)中通過智能終端設備(如掌上電腦等),實現(xiàn)對信息家電的遠程控制,而信息家電也可以根據(jù)需要自動將設備運行的狀態(tài)信息發(fā)送給設定的目標對象。因此,嵌入式web技術(shù)給人們的日常生活和工作帶來了極大的方便,在各種企業(yè)和工業(yè)系統(tǒng)中也都有非常重要的實際意義。

嵌入式web服務器以其低成本、小體積、低功耗等諸多優(yōu)點,而在生產(chǎn)、生活的許多領(lǐng)域發(fā)揮著越來越重要的作用。嵌入式系統(tǒng)的CPU已從過去的8位發(fā)展到如今的32位,并且大多采用RISC(Reduced Instruction Set Computer)結(jié)構(gòu),RISC(reduced instruction set computer,精簡指令集計算機)是一種執(zhí)行較少類型計算機指令的微處理器,起源于80 年代的MIPS主機(即RISC 機),RISC機中采用的微處理器統(tǒng)稱RISC處理器。這樣一來,它能夠以更快的速度執(zhí)行操作(每秒執(zhí)行更多百萬條指令,即MIPS)。因為計算機執(zhí)行每個指令類型都需要額外的晶體管和電路元件,計算機指令集越大就會使微處理器更復雜,執(zhí)行操作也會更慢。RISC概念已經(jīng)引領(lǐng)了微處理器設計的一個更深層次的思索。設計中必須考慮到:指令應該如何較好的映射到微處理器的時鐘速度上(理想情況下,一條指令應在一個時鐘周期內(nèi)執(zhí)行完);體系結(jié)構(gòu)需要多“簡單”;以及在不訴諸于軟件的幫助下,微芯片本身能做多少工作等等。

1 嵌入式web服務器的硬件設計

1.1 微處理器的選擇

AT91SAM9263是一種基于ARM926EJ-S內(nèi)核的ARM處理器,它帶有MMU存儲器管理單元,當其運行在200MHz時擁有220MIPS的運算性能,并具有DSP擴展指令和JAVA硬件加速功能。AT9lSAM9263有能力連接多種內(nèi)存設備和大容量硬盤設備,并嵌入有LCD控制器、2D圖形加速器、圖像傳感器接口、標準外設接口、多媒體卡接口、CAN控制器等。

1.2 網(wǎng)卡芯片的選擇

本設計采用CS8900A來擴展嵌入式系統(tǒng)外圍網(wǎng)口。CS8900A是Cirrus公司生產(chǎn)的一種高集成度且全面支持IEEE802.3標準的以太網(wǎng)控制器,可支持8位、16位微處理器,并可以工作在I/O方式和Memory方式。它的片內(nèi)集成有4KB容量的Packetpage結(jié)構(gòu)的RAM,該4KB存儲器映像結(jié)構(gòu)RAM包括片內(nèi)各種控制、狀態(tài)、命令寄存器,以及片內(nèi)發(fā)送、接收緩存。圖l所示是CS8900A的結(jié)構(gòu)框圖。

  

1.3 硬件結(jié)構(gòu)

本系統(tǒng)的硬件結(jié)構(gòu)框圖如圖2所示。本系統(tǒng)以AT91SAM9263為核心,通過網(wǎng)卡芯片CS8900以及RJ45接口來鏈接Ethernet網(wǎng)絡。系統(tǒng)采用的大容量存儲器Flash是一種可在系統(tǒng)中進行電檫寫、掉電后信息不丟失的存儲器,主要用于存放系統(tǒng)啟動代碼(bootloader)、Linux內(nèi)核和文件系統(tǒng),也可以存放用戶應用程序。flash的英文解釋為:n.閃光,閃現(xiàn),一瞬間,閃現(xiàn),反射,使迅速傳便,vt.使閃光,反射 adj.閃光的,火速的。Flash也是由macromedia公司推出的交互式矢量圖和 Web 動畫的標準,由Adobe公司收購。網(wǎng)頁設計者使用 Flash 創(chuàng)作出既漂亮又可改變尺寸的導航界面以及其他奇特的效果。Flash也是存儲芯片的一種,通過特定的程序可以修改里面的數(shù)據(jù)。

  

本系統(tǒng)中的SDRAM存儲芯片選用的是MT48LC16M16A2TG,設計時可將兩片16位MT48LC16M16A2TG并聯(lián)為32位數(shù)據(jù)寬度64 MB空間的SDRAM存儲系統(tǒng)。

另外,系統(tǒng)還集成了一個USB HOST和USBDevice接口、一個JTAG接口、一個SD卡接口、一個RS232串口以及AC97音頻接口。

1.4 網(wǎng)絡接口電路設計

Web服務器系統(tǒng)設計的一個核心部分就是網(wǎng)絡接口電路。本設計的網(wǎng)絡接口電路的構(gòu)成電路如圖3所示。WEB服務器也稱為WWW(WORLD WIDE WEB)服務器,主要功能是提供網(wǎng)上信息瀏覽服務。 WWW 是 Internet 的多媒體信息查詢工具,是 Internet 上近年才發(fā)展起來的服務,也是發(fā)展最快和目前用的最廣泛的服務。正是因為有了WWW工具,才使得近年來 Internet 迅速發(fā)展,且用戶數(shù)量飛速增長。

的外部總線相連接,其控制信號線主要有三根,分別是片選信號線、讀有效和寫有效信號線。另外,可通過控制總線、一組地址總線和一組數(shù)據(jù)總線將網(wǎng)絡接口電路與ARM芯片相連。網(wǎng)絡電路后端連接有RJ45接口,主要是提供與ETHERNET的連接通訊接口。

  

2 WEB服務器軟件設計

2.1 Linux系統(tǒng)移植

本設計采用Linux作為操作系統(tǒng),Linux系統(tǒng)具有開放源碼、軟件資源豐富、內(nèi)核功能強大、性能高效、穩(wěn)定、可支持多種硬件平臺等特點。除此之外,Linux還具有完善的網(wǎng)絡通信功能,可支持TCP/IP等多種協(xié)議,而且Linux系統(tǒng)內(nèi)核中已經(jīng)緊密地集成了網(wǎng)絡功能并有大量的網(wǎng)絡應用程序,可為實現(xiàn)網(wǎng)絡通信提供有力的支持。Linux是一類Unix計算機操作系統(tǒng)的統(tǒng)稱。Linux操作系統(tǒng)的內(nèi)核的名字也是“Linux”。Linux操作系統(tǒng)也是自由軟件和開放源代碼發(fā)展中最著名的例子。嚴格來講,Linux這個詞本身只表示Linux內(nèi)核,但在實際上人們已經(jīng)習慣了用Linux來形容整個基于Linux內(nèi)核,并且使用GNU 工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。Linux得名于計算機業(yè)余愛好者Linus Torvalds。

一個嵌入式系統(tǒng)通常可以分引導加載程序、內(nèi)核、文件系統(tǒng)為3個層次。因此,Linux的系統(tǒng)移植也包括3個部分:即引導程序(BootLoa-der)移植、內(nèi)核移植和文件系統(tǒng)制作。

Bootloader (引導加載程序)是系統(tǒng)加電后運行的第一段代碼。它的運行時間非常短,但對于嵌入式系統(tǒng)來說。這是一個非常重要的系統(tǒng)組成部分,主要負責ARM硬件的初始化,設置Linux的啟動參數(shù),然后跳轉(zhuǎn)到Linux內(nèi)核啟動代碼的第一行語句引導Linux。

內(nèi)核是所有嵌入式Linux系統(tǒng)的核心軟件,內(nèi)核移植是一個比較復雜的任務,也是嵌入式系統(tǒng)開發(fā)中非常重要的一個過程。內(nèi)核移植一般包括內(nèi)核配置、編譯和內(nèi)核下載三大部分。移植過程的關(guān)鍵步驟如下:

(1)準備下載linux源碼

本設計選用的內(nèi)核版本是linux-26.22,然后通過解壓縮得到內(nèi)核源碼。同時在linux系統(tǒng)開發(fā)環(huán)境下安裝交叉編譯器arm-linux-gcc。

(2)修改內(nèi)核代碼

修改內(nèi)核代碼主要是選定Linux內(nèi)核對處理器的支持和修改以及與外部設備相關(guān)的內(nèi)核代碼。首先在linux-2.6.22根目錄下修改Makefile文件,主要應當修改下面兩行內(nèi)容:

ARCH=arm;說明目標是ARM體系結(jié)構(gòu);

CROSS_COMPILE =/usr/local/arm/1.3.1/bin/aim-linux-gcc;設置為宿主機上交叉編譯工具鏈的絕對路徑。

除此之外。還需要修改與AT91SAM9263處理器相關(guān)的代碼,這些代碼集中在arch目錄中和include目錄下文件名以asm開頭的子目錄中。

(3)配置和編譯內(nèi)核

配置內(nèi)核選項是移植內(nèi)核過程中很重要的一步,主要是對內(nèi)核功能模塊進行選擇及參數(shù)設定。在內(nèi)核源代碼目錄下運行make menuconfig可對內(nèi)核進行配置,主要是載入AT91SAM9263參考開發(fā)板的默認配置,并在此基礎(chǔ)上進行相關(guān)的驅(qū)動選擇等。配置完成后,可保存退出配置菜單界面,然后在內(nèi)核源代碼目錄上輸入命令make。

本設計所采用的文件系統(tǒng)是直接從網(wǎng)絡上獲取一個已經(jīng)生成的文件系統(tǒng),并在此基礎(chǔ)上進行添加和修改,最后形成自己的文件系統(tǒng)。在開發(fā)過程中,可利用Linux系統(tǒng)所提供的NFS服務,并通過網(wǎng)絡掛載文件系統(tǒng)進行系統(tǒng)調(diào)試。最后將Uboot映像文件、Linux內(nèi)核文件uImage、文件系統(tǒng)鏡像文件燒寫到NANDflash上相應的分區(qū)。

2.2 Web服務器的移植

Web服務器Boa是一個單任務的小型HTTP服務器,源代碼開放、性能優(yōu)秀,運行所需空間僅為140 KB左右。特別適合于在嵌入式系統(tǒng)中。本設計采用移植Boa的方法來實現(xiàn)嵌入式Web服務器部分,以滿足訪問網(wǎng)頁的要求,其主要移植過程如下:

首先是下載Boa源代碼。Boa web服務器的源代碼可以從http:∥www.boa.org下載,本文中的下載文件為:boa-0.94.13.tar.gz.

其次是安裝并編譯Boa源代碼,操作時可執(zhí)行以下命令:

#cd/home/

#tar zxvfboa.tar.gz

#cd boa/ src

生成Makefile文件#./configure后,即可修改Makefile文件,找到CC=gcc,將其改成CC=armlinux-gcc;再找到CPP=gee-E,其將其改成CPP=arm-linux-gec-E,然后保存退出。

運行make進行編譯后,即可在boa/ src目錄下生成Boa文件,該文件即為Boa Web服務器執(zhí)行文件。

勢頭應當配置Boa Web服務器。Boa啟動時將加載一個配置文件boa.conf。用戶可以根據(jù)自己的需要對boa.conf進行修改,但必須保證其它的輔助文件和設置必須與boa.conf里的配置相符,否則,Boa就不能正常工作。Boa源碼boa-0.94.13目錄下已有一個示例文件boa. conf位于boa/example下面,可以根據(jù)需要在其基礎(chǔ)上進行修改。然后將修改好的配置文件Boa.conf存放于嵌入式系統(tǒng)根文件/etc/boa目錄下。

最后就是測試Boa的運行。在re文件中執(zhí)行:#ifconfig eth0 192.168.0.1命令給嵌入式Web服務器配置IP。并通過IE瀏覽器連接到運行Boa的嵌入式系統(tǒng)http:∥192.168.0.1/,這樣,就可以訪問到之前放置的index頁面了。

3 結(jié)束語

本設計以AT9lSAM9263為核心,在此基礎(chǔ)上給出了一個web服務器。并在硬件方面設計了一個嵌入式系統(tǒng),該系統(tǒng)包括網(wǎng)絡接口、AD卡接口、USB接口等各種外設。文中還在網(wǎng)絡接口的基礎(chǔ)上,給出了將Linux移植到硬件平臺,并最終移植web服務器的實現(xiàn)方法。



QICK
回復

使用道具 舉報

發(fā)表回復

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表