朱 宇,馮明亮
(西安科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,陜西 西安 710054)
近年來,隨著計(jì)算機(jī)技術(shù)、自動控制技術(shù)、嵌入式技術(shù)以及Internet網(wǎng)絡(luò)技術(shù)的高速發(fā)展,傳統(tǒng)控制領(lǐng)域正經(jīng)歷著一場前所未有的變革??刂萍夹g(shù)的發(fā)展一直受到計(jì)算機(jī)和計(jì)算機(jī)技術(shù)發(fā)展的制約??刂葡到y(tǒng)從最初的CCS(計(jì)算機(jī)集中控制系統(tǒng)),到第二代的DCS(分散控制系統(tǒng)),再發(fā)展到現(xiàn)在很流行的FCS(現(xiàn)場總線控制系統(tǒng))。而由于對諸如圖像、語音信號等大量數(shù)據(jù)、高速傳輸速率的要求又催生了信息網(wǎng)絡(luò)與控制網(wǎng)絡(luò)的結(jié)合。網(wǎng)路控制系統(tǒng)要求具有高性能、高實(shí)時(shí)性、低功耗、低成本,因此采用嵌入式系統(tǒng)來實(shí)現(xiàn)控制網(wǎng)絡(luò)與信息網(wǎng)絡(luò)的結(jié)合,是將來網(wǎng)絡(luò)控制系統(tǒng)發(fā)展的重要方向之一。
目前最流行的控制系統(tǒng)是現(xiàn)場總線控制系統(tǒng),它實(shí)際上是連接現(xiàn)場智能設(shè)備和自動化控制設(shè)備的雙向串行、數(shù)字式、多節(jié)點(diǎn)通信網(wǎng)絡(luò),也被稱為現(xiàn)場底層設(shè)備控制網(wǎng)絡(luò)(INFRANET)。和 Internet、Intranet等類型的信息網(wǎng)絡(luò)不同,控制網(wǎng)絡(luò)直接面向生產(chǎn)過程,因此要求很高的實(shí)時(shí)性、可靠性、資料完整性和可用性。
為滿足這些特性,現(xiàn)場總線對標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議作了簡化,省略了一些中間層,只包括ISO/OSI7層模型中的3層:物理層、數(shù)據(jù)鏈路層和應(yīng)用層。現(xiàn)場總線的突出特點(diǎn)在于它把集中與分散相結(jié)合的DCS集散控制結(jié)構(gòu),變成新型的全分布式結(jié)構(gòu),把控制功能徹底下放到現(xiàn)場,依靠現(xiàn)場智能設(shè)備實(shí)現(xiàn)基本控制功能。雖然現(xiàn)場總線技術(shù)發(fā)展非常迅速,但也存在許多問題,制約其應(yīng)用范圍的進(jìn)一步擴(kuò)大。
1)不支持當(dāng)前主流網(wǎng)絡(luò)協(xié)議TCP/IP
現(xiàn)在總線通信標(biāo)準(zhǔn)采用物理層、鏈路層、應(yīng)用層、用戶層的總線標(biāo)準(zhǔn),而當(dāng)前Internet網(wǎng)絡(luò)均采用ISO模型7層體系結(jié)構(gòu)。兩種網(wǎng)絡(luò)結(jié)構(gòu)的不一致使得控制網(wǎng)絡(luò)不能直接將信息傳送到信息網(wǎng)絡(luò)。
2)多種現(xiàn)場總線共存
目前世界上存在著大約40余種現(xiàn)場總線,如法國的FIP,英國的ERA,德國西門子公司Siemens的ProfiBus。如此眾多的現(xiàn)場總線共存導(dǎo)致了現(xiàn)場總線技術(shù)標(biāo)準(zhǔn)難以得到統(tǒng)一,各種現(xiàn)場總線相互競爭,相互擠占市場。而各種現(xiàn)場總線技術(shù)相對保密,使得現(xiàn)場總線技術(shù)難以跨越式發(fā)展。
3)傳輸速率慢
目前最快的現(xiàn)場總線傳輸速率也不過500 kb/s,而普通家用Internet網(wǎng)絡(luò)的傳輸速率已達(dá)到數(shù)Mb/s。最新研發(fā)的Internet網(wǎng)絡(luò)速率又將是現(xiàn)有速率的10 000倍。
嵌入式網(wǎng)絡(luò)控制系統(tǒng)是以計(jì)算機(jī)技術(shù)為核心,結(jié)合先進(jìn)的網(wǎng)絡(luò)技術(shù)、通信技術(shù)、自動控制技術(shù)的一種遠(yuǎn)程監(jiān)控系統(tǒng)。嵌入式網(wǎng)絡(luò)控制系統(tǒng)能將監(jiān)控現(xiàn)場的監(jiān)控信息通過計(jì)算機(jī)網(wǎng)絡(luò)傳輸?shù)骄W(wǎng)絡(luò)中的其他計(jì)算機(jī)上,并與信息系統(tǒng)融合在一起,達(dá)到遠(yuǎn)程監(jiān)控的目的。
隨著Internet技術(shù)迅速發(fā)展,以太網(wǎng)和TCP協(xié)議已經(jīng)成為世界范圍內(nèi)的事實(shí)標(biāo)準(zhǔn)。因此,針對傳統(tǒng)現(xiàn)場總線技術(shù)的不足,希望工業(yè)控制設(shè)備具有Internet接入功能,能夠支持TCP/IP及其他Internet協(xié)議,采集數(shù)據(jù)通過網(wǎng)絡(luò)傳送服務(wù)器的數(shù)據(jù)庫中,使用戶通過瀏覽器就可以查看設(shè)備狀態(tài)、設(shè)置設(shè)備參數(shù)、發(fā)送控制命令,從而達(dá)到遠(yuǎn)程監(jiān)控現(xiàn)場設(shè)備的目的?;贏RM&Linux的嵌入式網(wǎng)絡(luò)控制系統(tǒng)能夠?qū)崿F(xiàn)這個(gè)目的,它采用嵌入式技術(shù)和工業(yè)以太網(wǎng)控制技術(shù),是一種新型的遠(yuǎn)程監(jiān)控解決方案。
在基于ARM&Linux的嵌入式網(wǎng)絡(luò)控制系統(tǒng)中,由于硬件平臺采用高性能、低功耗、低成本的ARM處理器,操作系統(tǒng)采用具有高實(shí)時(shí)的Linux系統(tǒng),而以Boa服務(wù)器作為嵌入式WEB服務(wù)器。因此該系統(tǒng)性能穩(wěn)定、成本合理。
與傳統(tǒng)現(xiàn)場總線技術(shù)相比,在基于ARM&Linux的嵌入式網(wǎng)絡(luò)控制系統(tǒng)實(shí)現(xiàn)了信息網(wǎng)絡(luò)與控制網(wǎng)絡(luò)的集成融合。具有以下幾點(diǎn)顯著優(yōu)勢:
1)采用ARM&Linux的開發(fā)平臺,使得系統(tǒng)具有性能可靠、體積小、成本低等優(yōu)點(diǎn);
2)使用主流的TCP/IP協(xié)議,使得控制信息可以方便快捷地傳送到信息網(wǎng)絡(luò),從而實(shí)現(xiàn)遠(yuǎn)程監(jiān)測、遠(yuǎn)程控制的功能;
3)由于家用Internet網(wǎng)絡(luò)的傳輸速率已達(dá)到數(shù)Mb/s,而最新研發(fā)的新Internet網(wǎng)絡(luò)速率又將是現(xiàn)有速率的10 000倍。因此該系統(tǒng)的傳輸速率比傳統(tǒng)現(xiàn)場總線技術(shù)快了很多,能夠更好地適應(yīng)控制系統(tǒng)實(shí)時(shí)性的要求。
硬件系統(tǒng)中以SamsungS3C2440為微處理器,這是一款采用RISC技術(shù)的ARM9工業(yè)級芯片,工作頻率為400 MHz,擴(kuò)展64 MB SDRAM為程序運(yùn)行空間,擴(kuò)展256 MB FLASH存儲器用于程序和數(shù)據(jù)存儲,提供3個(gè)RS-232串行接口完成不同工業(yè)數(shù)據(jù)的采集和控制設(shè)備的能力,提供了1個(gè)100 M以太網(wǎng)RJ-45接口(采用DM9000網(wǎng)絡(luò)芯片)完成以太網(wǎng)傳輸,提供SD卡方便數(shù)據(jù)的移動存儲。
嵌入式網(wǎng)絡(luò)控制系統(tǒng)前端數(shù)據(jù)采集使用DB1820溫度傳感器完成溫度數(shù)據(jù)的采集,通過RS-232串行接口傳送到SamsungS3C2440微處理器上的WEB服務(wù)器,通過瀏覽器,用戶可以方便地監(jiān)測控制。硬件平臺設(shè)計(jì)框圖如圖1所示。
圖1 嵌入式網(wǎng)絡(luò)控制系統(tǒng)硬件平臺框圖Fig.1 Block diagram of the Embedded network control system’s hardware plarform
系統(tǒng)的Bootloader(引導(dǎo)加載程序)是系統(tǒng)加電后運(yùn)行的第一段代碼,肩負(fù)著系統(tǒng)的引導(dǎo)任務(wù),在嵌入式網(wǎng)絡(luò)控制系統(tǒng)中有著至關(guān)重要的作用。Bootloader的運(yùn)行時(shí)間非常短,但對于嵌入式系統(tǒng)來說,這是一個(gè)非常重要的系統(tǒng)組成部分,主要負(fù)責(zé)ARM硬件的初始化,設(shè)置Linux的啟動參數(shù),然后跳轉(zhuǎn)到Linux內(nèi)核代碼的第一行語句引導(dǎo)Linux。本系統(tǒng)采用U-boot作為 Bootloader。
由于系統(tǒng)采用的硬件核心是SamsungS3C2440,所以在U-boot進(jìn)行移植時(shí),應(yīng)以SamsungS3C2440的文件為基準(zhǔn)進(jìn)行修改。相關(guān)文件有/board/SamsungS3C2440,driver/nand,include/asm-arm/arch-SamsungS3C244等。
根據(jù)硬件系統(tǒng)修改完成相應(yīng)文件后,再修改Makefile文件實(shí)現(xiàn)交叉編譯。修改代碼如下:
ieq ($ (ARCH),arm) CROSS_COMPILE=/usr/local/arm/3.4.3bin/arm-linux-
交叉編譯完成后,通過JTAG下到開發(fā)板的Nor Flash中實(shí)現(xiàn)系統(tǒng)的引導(dǎo)。
內(nèi)核是所有嵌入式系統(tǒng)的核心軟件,內(nèi)核移植是一個(gè)比較復(fù)雜的任務(wù),也是嵌入式系統(tǒng)開發(fā)中非常重要的一個(gè)過程。內(nèi)核移植一般包括內(nèi)核配置,內(nèi)核編譯和內(nèi)核下載3大部分。移植過程關(guān)鍵步驟如下:
1)備下載Linux源碼 由于本系統(tǒng)采用的是linux2.6.32版本內(nèi)核,因此首先到linux官網(wǎng)上下載內(nèi)核,從http://www.kernel.org/pub/linux/kernel/v2.6/下載2.6.32版本內(nèi)核。然后通過解壓縮得到內(nèi)核源碼。同時(shí)在linux系統(tǒng)開發(fā)環(huán)境下安裝arm-linux-gcc交叉編譯器。
2)修改內(nèi)核代碼 修改內(nèi)核代碼主要是完成Linux內(nèi)核對處理器的支持和修改以及與外部設(shè)備代碼。首先在linux-2.6.32根目錄下修改Makefile文件,主要應(yīng)當(dāng)修改如下:
ARCH?=arm;說明目標(biāo)是ARM體系結(jié)構(gòu);
CROSS_COMPILE?=/usr/local/arm/3.4.3/bin/arm-linuxgcc;設(shè)置為宿主機(jī)上交叉編譯工具的絕對路徑。
還需在arch目錄和include目錄中對以asm開頭的子目錄中修改與處理器有關(guān)的代碼。
3)配置和編譯內(nèi)核 配置內(nèi)核選項(xiàng)是移植內(nèi)核過程中至關(guān)重要的一步,主要是對內(nèi)核功能模塊進(jìn)行選擇及參數(shù)的設(shè)定。
在內(nèi)核源代碼目錄下運(yùn)行make menuconfig可對內(nèi)核進(jìn)行配置。配置完成后,可以保存,然后退出配置菜單界面,在內(nèi)核源代碼目錄上輸入make。編譯完成后,就會生成zImage映像文件。在內(nèi)核主目錄下運(yùn)行make zImage即可生成U-boot可以啟動的內(nèi)核映像。Linux內(nèi)核映像制作成功后,下載到ARM開發(fā)板后。
根文件系統(tǒng)必須包含這些目錄:/dev、/bin、/sbin、/lib、/etc、/proc、/sys。其中/bin和/sbin可以通過Busybox進(jìn)行制作。
首 先 從 http://busybox.ner/down-load/busybox-1.13.2.tar.bz2,下載Busybox1.13.2版本源碼包;然后解壓源代碼包:tar-jxvf busybox-1.13.2.tar.bz2。最后通過運(yùn)行make menuconfig對Busybox配置。文件系統(tǒng)配置、編譯完成后燒寫到指定的Nor Flash分區(qū)中。然后就可以從ARM開發(fā)板上成功啟動Linux。通過超級終端,可觀察到系統(tǒng)啟動界面如圖2所示。
圖2 超級終端顯示的系統(tǒng)啟動界面Fig.2 The system boot screen displayed of HyperTerminal
目前,能夠在ARM-Linux平臺下實(shí)現(xiàn)的嵌入式WEB服務(wù)器主要有3個(gè):Httpd、Thttp和Boa。其中Boa是一個(gè)非常小巧的單線程的嵌入式WEB服務(wù)器,可執(zhí)行代碼只有約60 kB,且源代碼開放,它的設(shè)計(jì)目標(biāo)是速度和安全,性能優(yōu)秀,特別適合嵌入式系統(tǒng)的應(yīng)用。因此本系統(tǒng)采用基于Boa來實(shí)現(xiàn)嵌入式WEB服務(wù)器。Boa服務(wù)器主要移植過程如下所示:
首先,從http://www.boa.org下載Boa服務(wù)器源代碼。本系統(tǒng)選用的版本是boa-0.94.13。其次是安裝并編譯Boa源代碼,執(zhí)行命令為:#tar xzvf boa.tar.gz。
生成Makefile文件#./configure后,即可修改Makefile文件。找到CC=gcc,將其改成CC=arm-linux-gcc;再找到CPP=gcc-E,將其改成CPP=arm-linux-gcc-E,最后保存退出。
運(yùn)行make進(jìn)行編譯后,即可在boa/src目錄下生成Boa文件,該文件即為Boa WEB服務(wù)器執(zhí)行文件。Boa啟動時(shí)將加載一個(gè)配置文件boa.conf??梢愿鶕?jù)系統(tǒng)需要對其進(jìn)行修改,然后將修改后的boa.conf存放于嵌入式系統(tǒng)純根文件/etc/boa目錄下。
CGI是公用網(wǎng)關(guān)接口,其主要功能是在WWW環(huán)境下,經(jīng)過客戶端傳送一些信息給WWW服務(wù)器,再由WWW服務(wù)器去調(diào)用指定的程序代碼來完成特定的工作,確切的說CGI是在WWW服務(wù)器上運(yùn)行程序代碼。當(dāng)用戶在網(wǎng)頁中輸入數(shù)據(jù)時(shí),數(shù)據(jù)先傳送給WWW服務(wù)器,再傳遞給CGI程序,WWW服務(wù)器在將用戶輸入的數(shù)據(jù)傳遞給CGI程序時(shí),會先經(jīng)過一個(gè)編碼程序來完成數(shù)據(jù)的傳遞。
嵌入式網(wǎng)絡(luò)控制系統(tǒng)前端數(shù)據(jù)采集使用DB1820溫度傳感器完成溫度數(shù)據(jù)的采集,然后通過RS-232串行接口直接傳送到SamsungS3C2440微處理器上的WEB服務(wù)器,之后通過瀏覽器,用戶可以方便地監(jiān)測控制。
因此系統(tǒng)軟件部分主要由數(shù)據(jù)采集、數(shù)據(jù)傳輸、服務(wù)器數(shù)據(jù)處理和CGI程序訪問等幾大部分。系統(tǒng)工作流程如圖3所示。
圖3 嵌入式網(wǎng)絡(luò)控制系統(tǒng)工作流程Fig.3 Workflow of Embedded network control system
筆者設(shè)計(jì)的基于ARM&Linux的嵌入式網(wǎng)絡(luò)控制系統(tǒng),運(yùn)行良好。采用模擬多機(jī)訪問嵌入式服務(wù)器的方式,經(jīng)過檢測系統(tǒng)完成了前端數(shù)據(jù)采集和提供遠(yuǎn)程服務(wù)器訪問等功能。筆者設(shè)計(jì)的嵌入式網(wǎng)絡(luò)控制系統(tǒng)具有很好的實(shí)用價(jià)值。
[1]王傳啟,鄧文棟.工業(yè)系統(tǒng)中嵌入式web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(10):227-230.
WANG Chuan-qi,DENG Wen-dong.Embedded Web-server designandimplementationofindustrialsystem[J].TheComputer EngineeringandApplication,2002,38(10):227-230.
[2]李伯成.微型計(jì)算機(jī)嵌入式系統(tǒng)設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2004.
[3]Leung K,ZHANG Du.Animation of linux processor scheduling algorithm[C]//Seventh IEEE International Symposium on Multimedia, USA;[s.1],2006:205-243.
[4]顧詠楓,陳章龍.嵌入式Linux裁剪方法[J].小型微型計(jì)算機(jī)系統(tǒng),2003,24(9):1697-1700.
GUYong-feng,CHEN Zhang-long.Cuttingmethodofembedded Linux[J].Micro Computer System, 2003,24(9):1697-1700.
[5]CPU:Samsung Electronics Co.Ltd USER'S MANUAL.S3C2440 32-Bit RISC Microprocessor Revision[Z].2002.
[6]Apache:fast,PD[EB/OL].http://www.boa.org.