新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 以ARM7為核心的嵌入式工控網(wǎng)絡(luò)設(shè)計(jì)

以ARM7為核心的嵌入式工控網(wǎng)絡(luò)設(shè)計(jì)

作者: 時(shí)間:2015-04-15 來(lái)源:網(wǎng)絡(luò) 收藏

  引言

本文引用地址:http://m.butianyuan.cn/article/272609.htm

  本文詳細(xì)介紹了嵌入式系統(tǒng)各個(gè)步驟的實(shí)現(xiàn)方法及其功能,給出了嵌入式系統(tǒng)的硬件平臺(tái),研究基于ARM的的移植,并介紹了一種嵌入式工控網(wǎng)絡(luò)系統(tǒng)的具體設(shè)計(jì)過(guò)程。

  1硬件平臺(tái)的設(shè)計(jì)

  硬件平臺(tái)的搭建是嵌入式開(kāi)發(fā)平臺(tái)設(shè)計(jì)的首要任務(wù),本文采用比較流行的體系結(jié)構(gòu),并選擇S3C44BOX作為嵌入式處理器,然后圍繞S3C44BOX進(jìn)行外圍器件的選型,設(shè)計(jì)了系統(tǒng)的硬件總體結(jié)構(gòu)框圖,然后以單元電路為基礎(chǔ),介紹了原理圖設(shè)計(jì)的詳細(xì)過(guò)程。

  1.1系統(tǒng)硬件選型

  嵌入式系統(tǒng)的核心部件是嵌入式處理器,系統(tǒng)硬件選型首先是選擇嵌入式處理器,然后圍繞該嵌入式處理器選擇各種外圍芯片,以實(shí)現(xiàn)各種擴(kuò)展功能。本系統(tǒng)選擇三星公司基于TDMI的S3C4480X微處理器。該芯片可為手持設(shè)備及一般嵌入式應(yīng)用提供一個(gè)成本低廉而又功能強(qiáng)大的微控制器解決方案。

  1.2硬件結(jié)構(gòu)設(shè)計(jì)

  硬件平臺(tái)主要由電源電路、MCU核心電路、存儲(chǔ)器電路、UART接口、以太網(wǎng)接口、USB接口、LCD接口、RTC和IIC電路、JTAG接口和系統(tǒng)擴(kuò)展接口等單元電路組成,圖1所示是一種基于S3C44BOX開(kāi)發(fā)板的硬件平臺(tái)結(jié)構(gòu)框圖。



  l.3存儲(chǔ)器電路

  圖2所示為S3C44BOX的地址空間分布圖。S3C44BOX采用統(tǒng)一編址方式,256MB地址空間分成8個(gè)MemoryBANKs,其中BANK6和BANK7是DRAM空間(DRAM的控制方式與SRAM的不一樣,不能混用)。



  1.4以太網(wǎng)接口電路

  RTLS019AS芯片集成了介質(zhì)訪問(wèn)控制子層(MAC)和物理層(PHY)功能,故能與大多數(shù)通用MCU進(jìn)行接口,其較高的性?xún)r(jià)比使其成為一款廣泛使用的lOMbps全雙工以太網(wǎng)控制器。

  圖3所示為RTL8019AS與S3C44BOX的連接圖,其中三個(gè)可編程的LED輸出可用于顯示RTL8019AS的工作情況。



  2系統(tǒng)的移植

  在這個(gè)英文單詞中,μ表示Micro,小的意思,C表示Control,控制的意思,所以,μClinux就是Micro-Control-Linux,字面上的理解就是“針對(duì)微控制領(lǐng)域而設(shè)計(jì)的Linux系統(tǒng)”。Linux是一種很受歡迎的操作系統(tǒng),它與UNIX系統(tǒng)兼容,且開(kāi)放源代碼。它原本被設(shè)計(jì)為桌面系統(tǒng),現(xiàn)在廣泛應(yīng)用于服務(wù)器領(lǐng)域。

  2.1μClinux移植前的準(zhǔn)備

  移植μClinux時(shí),首先必須在宿主機(jī)上裝redhat9.0操作系統(tǒng),然后在redhat9.0下建立μClinux開(kāi)發(fā)環(huán)境,也可以從http://www.μClinux.org/處下載μClinux的源代碼和工具包,然后進(jìn)行安裝。

  2.2內(nèi)核和文件系統(tǒng)編譯

  Linux作為一個(gè)自由軟件,其內(nèi)核版本不斷更新。新的內(nèi)核修訂了舊內(nèi)核的bug,并增加了許多新的特性。如果用戶(hù)想要使用這些新特性,或想根據(jù)自己的系統(tǒng)度身定制一個(gè)更高效、更穩(wěn)定的內(nèi)核,就需要重新編譯內(nèi)核。

  由于所使用的flash只有2MB,這對(duì)嵌入式Linux系統(tǒng)來(lái)說(shuō)要求比較高,因?yàn)閮?nèi)核和文件系統(tǒng)加起來(lái)不能超過(guò)2MB,本文的研發(fā)思路就是把內(nèi)核和文件系統(tǒng)壓縮在一起,這樣,系統(tǒng)啟動(dòng)的時(shí)候。內(nèi)核將自動(dòng)解壓縮到SDRAM,然后就可以在SDRAM上運(yùn)行μClinux了。

  2.3內(nèi)核和文件系統(tǒng)配置

  在μClinux-Samsung目錄下運(yùn)行makemenueonfig后會(huì)首先出現(xiàn)Configuration啟動(dòng)界面。在Configuration啟動(dòng)界面中選擇TargetPlal-formSelection,通常具有下面幾個(gè)選項(xiàng):



  接下來(lái)可配置所需要的內(nèi)核和文件系統(tǒng)。μClinux的配置分為兩部分,前一部分是通常的Linux內(nèi)核配置,后一部分是μClinux文件系統(tǒng)配置。下面先進(jìn)行μClinux的內(nèi)核配置,μClinux的內(nèi)核配置會(huì)出現(xiàn)μClinux內(nèi)核配置界面,可根據(jù)界面進(jìn)行內(nèi)核配置。

  配置完這部分以后,可退出并保存,然后,系統(tǒng)自動(dòng)進(jìn)入下一部分μClinux的文件系統(tǒng)配置。μClinux嵌入式操作系統(tǒng)所能實(shí)現(xiàn)的應(yīng)用跟這部分的配置很有關(guān)系,下面可進(jìn)行μClinux的文件系統(tǒng)配置部分,以完成μClinux文件系統(tǒng)的配置。

  μClinux的內(nèi)核和文件系統(tǒng)配置好后,就可以進(jìn)行內(nèi)核的編譯。

  2.4編譯步驟

  編譯時(shí),可在μClinux-Samsung目錄下依次運(yùn)行下列9個(gè)命令:makemenueonfig,makedep,makeclean,makelib_only,makeuser_only,makerotors,makeimage,make,makeimage。

  運(yùn)行完以上命令后,就會(huì)在μClinux-Sam-sung的images子目錄下生成三個(gè)文件,其中image.rom和image.ram是我們需要的鏡像文件。image.rom是一個(gè)壓縮的內(nèi)核,在開(kāi)發(fā)中,筆者把image.rom燒到flash中,并從flash處啟動(dòng),同時(shí)把image解壓到ram的Ox8000處,然后運(yùn)行。image.ram是包含有調(diào)試信息的內(nèi)核,可以直接用工具下載到開(kāi)發(fā)板的ram中,比如用ICE直接把image.ram放到ram地址為Ox8000的地方,進(jìn)行開(kāi)發(fā)調(diào)試這種方式可使得開(kāi)發(fā)調(diào)試更加方便。

  3嵌入式工控Web服務(wù)器的實(shí)現(xiàn)

  3.1嵌入式Web服務(wù)器的基本實(shí)現(xiàn)

  嵌入式Web服務(wù)器可基于Socket套接字來(lái)開(kāi)發(fā),它主要由初始化模塊、監(jiān)聽(tīng)模塊、請(qǐng)求解析模塊、腳本引擎模塊、輸出模塊和命令模塊等組成,各模塊之間的關(guān)系如圖4所示。



  μClinux下主要有三個(gè)Web服務(wù)器:httpd、thttpd和Boa。其中httpd是最簡(jiǎn)單的一個(gè)Web服務(wù)器,它的功能最弱,不支持認(rèn)證,不支持CGI。thttpd和Boa都支持認(rèn)證、CGI等。功能都比較齊全。其中boa是一個(gè)單任務(wù)的http服務(wù)器,源代碼開(kāi)放,性能比較高,占用系統(tǒng)資源也比較少。boa服務(wù)器在接收到請(qǐng)求時(shí),不啟動(dòng)多個(gè)服務(wù)器進(jìn)程處理多個(gè)請(qǐng)求,而在一個(gè)進(jìn)程內(nèi)處理所有服務(wù)請(qǐng)求。為了實(shí)現(xiàn)動(dòng)態(tài)Web技術(shù),可選擇實(shí)現(xiàn)一個(gè)支持CGI的、非常適合于嵌入式系統(tǒng)的BoaWebServer。然后再通過(guò)CGI用C語(yǔ)言進(jìn)行編程,就可以實(shí)現(xiàn)動(dòng)態(tài)WEB。

  3.2boaWebServer的移置

  boa是一個(gè)單任務(wù)的http服務(wù)器,源代碼開(kāi)放、性能高。目前,μC1inux的代碼中已經(jīng)包含boa的源代碼。在μClinux下實(shí)現(xiàn)Boa時(shí),需要對(duì)Boa做一些配置和修改。boa服務(wù)器的核心文件主要有boa.conf和mime.types,本設(shè)計(jì)主要通過(guò)對(duì)boa.conf和mime.types文件進(jìn)行修改來(lái)實(shí)現(xiàn)。

  3.3編譯內(nèi)核

  配置過(guò)程完成后,便可重新編譯內(nèi)核。編譯時(shí)先選中Boa選項(xiàng),并把編譯好的內(nèi)核下載到開(kāi)發(fā)板,再啟動(dòng)μClinux,完成IP配置,啟動(dòng)BoaWebServer,然后就可以通過(guò)IE訪問(wèn)你的網(wǎng)頁(yè)了。如果想啟動(dòng)μClinux時(shí)自動(dòng)啟動(dòng)BoaWebServer,則可修改rc文件,并進(jìn)入/μClinux-amsung/ven-dors/Samsung/S3C44BOX目錄,再在運(yùn)行腳本rc中增加如下兩行:

  “ifconfigeth0192.168.1.10

  boa-c/home/&”

  修改后,重新編譯內(nèi)核,再下載到目標(biāo)系統(tǒng)運(yùn)行。這樣,運(yùn)行μClinux后,不需要配置就可以直接通過(guò)IE來(lái)訪問(wèn)網(wǎng)頁(yè)了。

  3.4μClinux下的CGI監(jiān)控技術(shù)

  通過(guò)CGI(通用網(wǎng)關(guān)接口)可為Web服務(wù)器提供一個(gè)執(zhí)行外部程序的通道,這種服務(wù)端技術(shù)可使瀏覽器和服務(wù)器之間具有交互性。CGI程序?qū)儆谕獠砍绦?,需要編譯成可執(zhí)行文件才能在服務(wù)端運(yùn)行。瀏覽器可將用戶(hù)輸入的數(shù)據(jù)送到Web服務(wù)器,Web服務(wù)器再將數(shù)據(jù)用STDIN送給CGI程序。在執(zhí)行CGI程序后,還會(huì)訪問(wèn)存儲(chǔ)數(shù)據(jù)的一些文檔,最后使用STDOUT輸出HTML形式的結(jié)構(gòu)文件,再經(jīng)Web服務(wù)器送回瀏覽器,即可顯示給用戶(hù)。

  若CGI程序是本地程序,也需要編譯成可執(zhí)行文件,以便在被CGI調(diào)用時(shí)運(yùn)行。Web服務(wù)器將用戶(hù)數(shù)據(jù)傳輸給CGI程序,并重定向CGI程序的輸出到Web頁(yè),這樣,CGI程序在處理時(shí),再將數(shù)據(jù)封裝成HTML形式發(fā)送到輸出,從而在客戶(hù)端看到對(duì)應(yīng)的Web頁(yè)。

  訪問(wèn)者可通過(guò)CGI程序遠(yuǎn)程控制數(shù)碼管(模擬工業(yè)現(xiàn)場(chǎng)的控制),并顯示相應(yīng)的數(shù)字。在CGI程序的編寫(xiě)中,每個(gè)程序的大致框架都比較類(lèi)同,其CGI程序流程如圖5所示,它主要是遵循HTTP協(xié)議的通訊。也包括對(duì)輸入輸出的讀寫(xiě)和控制。



  3.5嵌入式工業(yè)監(jiān)控系統(tǒng)的應(yīng)用

  基于Internet的遠(yuǎn)程監(jiān)控有代理方案和嵌入式方案兩種實(shí)現(xiàn)方案。兩種實(shí)現(xiàn)方案均采用三層B/S體系結(jié)構(gòu),即表示層、應(yīng)用邏輯層和數(shù)據(jù)層。三層B/S體系結(jié)構(gòu)可避免兩層體系結(jié)構(gòu)中客戶(hù)端程序單獨(dú)實(shí)現(xiàn)應(yīng)用邏輯而產(chǎn)生的冗余;應(yīng)用邏輯可在應(yīng)用邏輯層上而不是在客戶(hù)層上實(shí)現(xiàn)。由于表示層與應(yīng)用邏輯相分離,因而降低了網(wǎng)絡(luò)傳送的信息量,使系統(tǒng)具有更高的可伸縮性、可維護(hù)性和靈活性。本文討論的嵌入式方案的基本結(jié)構(gòu)如圖6所示。



  4結(jié)束語(yǔ)

  本文推出的方案對(duì)每臺(tái)現(xiàn)場(chǎng)設(shè)備均配有微型嵌入式Web服務(wù)器,可負(fù)責(zé)對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)轉(zhuǎn)發(fā)以及與監(jiān)控主機(jī)進(jìn)行數(shù)據(jù)的交互。該方案的優(yōu)點(diǎn)是實(shí)時(shí)性強(qiáng)、可靠性高、現(xiàn)場(chǎng)設(shè)備的數(shù)量不受限制等。

linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


linux相關(guān)文章:linux教程




關(guān)鍵詞: ARM7 μClinux

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉