0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于ARM7單片機和Linux+RTCORBA架構(gòu)實現(xiàn)嵌入式代理服務器的應用方案

牽手一起夢 ? 來源:單片機與嵌入式系統(tǒng)應用 ? 作者:周琦,黃天戍,張旻 ? 2020-10-04 17:30 ? 次閱讀

現(xiàn)場控制網(wǎng)絡技術(shù)、信息網(wǎng)絡集成技術(shù)和分布式實時技術(shù)的發(fā)燕尾服和成熟,使集成信息網(wǎng)絡和現(xiàn)場控制網(wǎng)絡的分布式實時測控網(wǎng)絡成為未來工業(yè)測控系統(tǒng)的發(fā)展方向。在這這樣一個測控網(wǎng)絡中,實現(xiàn)異構(gòu)網(wǎng)絡無縫互聯(lián)的關(guān)鍵是代理服務器。使用基于實時中間件的代理服務器,既能滿足實時互聯(lián)的要求,又使代理服務器屏蔽了底層測控設備的實現(xiàn)細節(jié),減少了系統(tǒng)開發(fā)的難度;同時,基于面向?qū)ο蠹夹g(shù),各種測控設備的連接與安裝難度也大幅度降低。

本文使用Linux+RTCORBA的系統(tǒng)架構(gòu)設計一個嵌入式代理服務器,用于LON網(wǎng)到以太網(wǎng)的互聯(lián),并且使用基于ARM7的單片機實現(xiàn)了該嵌入式代理服務器。

1 RTCORBA技術(shù)簡介

CORBA是OMG推出的一個重要的工業(yè)規(guī)范,是OMA(Object Model Architecture)的核心部分。OMA所采用的方法,是為面向?qū)ο蟮膽锰峁┮粋€公共框架,如果符合這一框架,就可以在多種硬件平臺和操作系統(tǒng)上建立一個異質(zhì)的分布式應用環(huán)境。

基于ARM7單片機和Linux+RTCORBA架構(gòu)實現(xiàn)嵌入式代理服務器的應用方案

OMG在制訂CORBA規(guī)范時,首先考慮的是互操作性,用以解決異種平臺上的不同對象的協(xié)作問題;所以,需要將CORBA規(guī)范進行擴展,以滿足分布式實時應用的需要和測控系統(tǒng)的實時性要求。在1999年3月,OMG發(fā)布了實時CORBA1.0規(guī)范。OMG已將它作為CORBA3.0規(guī)范的一部分。

實時CORBA對原有的規(guī)范進行了擴展,定義了標準的接口和QoS策略,其擴展的具體內(nèi)容為:

*將客戶的CORBA::Current接口擴充為RTCORBA::Current接口;

*將服務器的PDA擴充為RTPOA;

*將ORB擴充為RTORB;

*增添了RTCORBA::Priority接口和RTCORBA::PriorityMapping接口;

*增添了RTCORBA::Threadpool接口;

*增添了Scheduling Service。

這些擴展可具體分為對處理器資源、內(nèi)存資源和通信資源的管理三個部分。

2 嵌入式代理服務器設計與實現(xiàn)

代理服務器屏蔽了底層測控設備的實現(xiàn)細節(jié),向上層提供統(tǒng)一的數(shù)據(jù)服務,在測控網(wǎng)絡中起著紐帶的作用。為了實現(xiàn)分布式實時測控網(wǎng)絡,其中核心的問題之一就是實現(xiàn)一個代理服務器。由于代理服務器需要應用于工業(yè)現(xiàn)場,要求能在較寬溫度范圍內(nèi)工作,并且還要求封裝牢固(抗振和防沖擊)、導軌安裝、電源冗余、DC供電等。另外,從低功耗、低成本、小何種的角度來看,使用嵌入式系統(tǒng)都優(yōu)于使用通用系統(tǒng),故本文選用嵌入式系統(tǒng)來實現(xiàn)代理服務器。

整個代理服務器可以分為硬件平臺層、操作系統(tǒng)層、實時中間件層和應用程序四個層次來實現(xiàn),如圖1所示。

2.1 硬件平臺

在這種方案中,代理服務器一方面通過各種驅(qū)動或服務程序與現(xiàn)場設場設備實時交換數(shù)據(jù),另一方面通過ORB與應用程序交換數(shù)據(jù)。代理服務器可以提供對LON現(xiàn)場總線、常規(guī)通用工業(yè)串行通信總線RS485/RS232、常用DCS/PLC等多種現(xiàn)場控制協(xié)議的支持,其硬件框圖如圖2所示。通過使用代理服務器,屏蔽了底層的現(xiàn)場總線通信協(xié)議,使用面向?qū)ο蟮姆椒▽⒚恳粋€現(xiàn)場設備都實現(xiàn)為網(wǎng)絡中的一個分布式對象;通過對象方法調(diào)用向上層應用提供統(tǒng)一的服務,使得上層應用可以直接通過調(diào)用代理服務器中的對象方法來控制底層測控設備。

(1)微處理器模塊

微處理器模塊包含所有使得微處理器能夠正常工作的部分。它包括微處理器、Flash、SDRAM、電源、JTAG接口電路、復位電路和晶振電路。根據(jù)需求,我們選用三星公司的基于16/32位ARM7TDMI核的S3C4510B微處理器。它專為以太網(wǎng)通信系統(tǒng)而設計,具有低成本和高性能的特點,并集成了多種外圍器件。

(2)10M/100Mbps以太網(wǎng)通信模塊

這個模塊用來與以太網(wǎng)通信。S3C4510B內(nèi)嵌了一個以太網(wǎng)控制器,支持媒體獨立接口(MII)和緩沖DMA接口(BDI),

可在半雙工或全雙工模式下提供10M/100Mbps以太網(wǎng)接入。實際上芯片已經(jīng)包含以太網(wǎng)MAC控制,但未提供物理層接口,需要外接一塊物理層芯片。

本系統(tǒng)使用RTL8201作為以太網(wǎng)的物理層接口芯片。它的主要功能包括物理編碼子層、物理媒體附件、雙絞線物理媒體子層、10BASE-TX編碼/編解碼器和雙絞線媒體訪問單元等;同時,帶有MII接口,可以簡單方便地與S3C4510B連接,如圖3所示。

S3C4520B的MAC控制器可以控制31個RTL8201,每個RTL8201都必須有不同的PHY地址(00001B~11111B)。系統(tǒng)復位時,由鎖存引腳9、10、12、13、15的初始狀態(tài)確定PHY地址。但是,由于鎖存引腳也復用為LED引腳,故不能直接接電路或地。

(3)LON現(xiàn)場總線通信模塊

代理服務器作為LON現(xiàn)場總線中的一個節(jié)點與現(xiàn)場檢測設備通信,所以LON現(xiàn)場總線通信模塊要包括與LON網(wǎng)絡通信和與S3C4510B通信的功能。

LonWorks總線通信模塊主要由神經(jīng)元芯片、LonWorks雙絞線網(wǎng)絡收發(fā)器、程序存儲器、數(shù)據(jù)存儲器等組成。在該代理服務器的應用中,實際上僅僅把Neuron(TMPN3150)芯片作為通信處理器用,由其按照LonTalk協(xié)議與LonWorks網(wǎng)絡上的所有智能節(jié)點進行通信,同時將通過并行口與主CPU通信。它將從S3C4510B接收到的來自以太網(wǎng)絡的其它網(wǎng)段數(shù)據(jù)或上層控制命令通過特定的尋址方式由LonWorks收發(fā)器傳向LonWorks網(wǎng),或?qū)腖onWorks網(wǎng)上接收到的LonTalk協(xié)議報文由通用I/O發(fā)給S3C4510B,再由S3C4510B進行處理。由于開發(fā)Neuron芯片時采用的Neuron C(專門為Neuron芯片設計的編程語言,從ANSI C中派生出來的)語言,故內(nèi)存占用大。另外,作為通信協(xié)議處理器使用要求有大量的數(shù)據(jù)緩沖區(qū)進行數(shù)據(jù)交換,而僅僅利用TMPN3150內(nèi)部的2KB RAM容量是均無不夠的,因此我們擴展了外部存儲器Flash和RAM。由于采用Flash,可以非常方便地修改用戶程序。

LON現(xiàn)場總線通信模塊原理如圖4所示。

2.2 操作系統(tǒng)層

操作系統(tǒng)層不僅僅是操作系統(tǒng)軟件,它一般包括兩個部分:

①引導加載程序,包括固化在固件(firmware)中的boot代碼(可選)和Boot Loader兩大部分;

②內(nèi)核和文件系統(tǒng),包括 Linux內(nèi)核、根文件系統(tǒng)和建立于Flash內(nèi)存設備之上的文件系統(tǒng)。

(1)Linux內(nèi)核

作為候選的一種嵌入式操作系統(tǒng),嵌入式Linux以其引入注目的優(yōu)勢,極大地吸引電子設計工程師從自己書寫的或?qū)S玫?a href="http://wenjunhu.com/tags/RTOS/" target="_blank">RTOS轉(zhuǎn)移到Linux。UClinux是專為那些沒有MMU(內(nèi)存管理單元)的嵌放式處理器開發(fā)的嵌入式Linux。

www.uclinux.org為uClinux提供了GNU的交叉編譯器,包括以下組件:

*Gcc交叉編譯器,即在宿主機上開發(fā)編譯目標上可運行的二進制文件;

*Binutils輔助工具,包括objdump、as、ld等;

*Gdb調(diào)試器。

使用這些工具搭建了嵌入式應用開發(fā)平臺后,就可以在標準的Linux平臺上開發(fā)應用了。搭建了開發(fā)平臺主要有以下幾步:

①獲得uClinux-dist的源碼包;

②建立ARM交叉編譯環(huán)境;

③針對硬件修改配置;

④編譯內(nèi)核;

⑤內(nèi)核加載運行。

(2)BootLoader

引導加載程序是系統(tǒng)加電后運行的第一段軟件代碼。在PC中引導加載程序由BIOS(其本質(zhì)就是一段固件程序)和位于硬盤MBR中的OS Boot Loader(如LILO和GRUB等)一起組成。而在嵌入式系統(tǒng)中,通常并沒有像BIOS那樣的固件程序(有的嵌入式CPU也會內(nèi)嵌一段短小的啟動程序),因此整個系統(tǒng)的加載啟動任務就完全由Boot Loader來完成。在一個基于ARM7TDMI核的嵌入式系統(tǒng)中,系統(tǒng)在上電或復位時都從地址0x00000000處開始執(zhí)行,而在這個地址處安排的通常就是系統(tǒng)的Boot Loader程序。

通過Boot Loader,可以初始化硬件設備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境。Boot Loader是嚴重地依賴于硬件而實現(xiàn)的,特別是在嵌入式世界。因此,我們需要設計與實現(xiàn)自己專有的Boot Loader。

在我們的系統(tǒng)中,內(nèi)核映像與根文件系統(tǒng)映像都被加載到RAM中運行。之所以這樣是因為,雖然在嵌入式系統(tǒng)中內(nèi)核映像與根文件系統(tǒng)映像也可以直接在ROM或Flash這樣的固態(tài)存儲設備中直接運行,但這種做法無疑是以運行速度的犧牲為代價的,會影響到實時應用。

Boot Loader分為stage1和stage2兩大部分。依賴于CPU體系結(jié)構(gòu)的代碼,比如設備初始化代碼等,通常都放在stage1中,而且通常都用匯編語言來實現(xiàn),以達到短小精悍的目的;而stage2則通常用C語言來實現(xiàn),這樣可以實現(xiàn)較復雜的功能,而且代碼會具有更好的可讀性和可移植性。

2.3 ORB

目前基于CORBA規(guī)范的產(chǎn)品有很多,著名的就有Orbix2000、JacORB、MICO、Visibroker、ORBit、TAO等。這些產(chǎn)品各有優(yōu)缺點。這幾種ORB產(chǎn)品中,TAO(The ACE ORB)是美國華盛頓大學的Douglas C.Schmidt博士領(lǐng)域開發(fā)的一個實時CORBA平臺,是基于ACE創(chuàng)建的。它是一個開放源碼項目,是完全免費的。使用C++語言開發(fā),符合CORBA標準,而且還為高性能需求的實時系統(tǒng)進行了優(yōu)化。因此,需要在Linux上安裝ACE/ATO開發(fā)環(huán)境,ACE和TAO可以協(xié)同工作來提供復雜中間件解決方案。

2.4 應用程序開發(fā)

在基于中間件的分布式測控系統(tǒng)中,應用軟件的編寫發(fā)生了極大的變化。我們只需使用IDL編寫統(tǒng)一的接口,就不必每次使用都考慮實現(xiàn)細節(jié)。

一個實時CORBA應用在邏輯上分為客戶和服務器兩個部分??蛻舳讼蚍掌鞫酥鲃影l(fā)起服務請求,服務器端則被動接收服務請求。一個實時CORBA應用的客戶端常包含多個服務請求(方法調(diào)用);除此外,還包含在本地執(zhí)行的代碼。在服務器端,則包含了這個方法的實現(xiàn)。在我們的這個系統(tǒng)中,代理服務器就是一個服務器端,測控網(wǎng)絡中其它的工作站則是客戶端。它們調(diào)用代理服務器上的方法,以獲取現(xiàn)場檢測數(shù)據(jù)和修改現(xiàn)場設備的參數(shù)

在服務器端,一般每個現(xiàn)場設備對應一個實時對象。這個對象提供操作這個對象(設備)的方法和對象的性質(zhì)。如果客戶端需要操作某一個設備,它只需請求調(diào)用代理服務器上這個設備所對應的實現(xiàn)對象的方法,代理服務器所獲得的數(shù)據(jù)以返回值的形式傳給客戶端,這樣就完成了一次服務。實際上,這些實時對象作為現(xiàn)場設備的代碼,對上層應用屏蔽了設備實現(xiàn)的復雜性,提供統(tǒng)一的服務。

ORB機制可以透明地實現(xiàn)傳送請求給對象,并將響應返回給提出請求的客戶。通過使客戶不再管理方法激活的具體實現(xiàn),從而簡化了分布式應用程序。當客戶激活一個方法,ORG負責定位對象實現(xiàn)并透明的激活。將請求傳輸給對象實現(xiàn)并返回結(jié)果。通常ORB包括對象實現(xiàn)、對象定位和對象通信機制。這些特性允許應用開發(fā)者更多地關(guān)心其本身的應用領(lǐng)域的開發(fā),而較少考慮低級的分布系統(tǒng)程序設計。但是,為了提高更豐富的功能,不應該僅僅使用CORBA默認的定位、通信機制,還需要使用到CORBA的各種對象服務。

在我們的實現(xiàn)中,設備對象都有自己的狀態(tài)信息,這些信息都將通過事件服務來傳遞。在使用事件服務之前,應先啟動事件服務器。在我們的系統(tǒng)中使用的是TAO的事件服務器。啟動事件服務器后,命名服務器將注冊到智能代理中,并將事件服務通常的IOR定入一個文件。然后可以使用這個IOR文件啟動事件提供者程序和使用者程序。

3 總結(jié)

分布式中間件技術(shù)在信息技術(shù)領(lǐng)域已經(jīng)得到了廣泛應用。使用分布式中間件技術(shù)可以方便地開發(fā)、集成、升級和維護各種應用系統(tǒng),大大降低了構(gòu)建應用系統(tǒng)的代價,并極大地提高了生產(chǎn)效率。開發(fā)和應用分布式實時測控系統(tǒng)也必將成為起來測控網(wǎng)絡的發(fā)展方向。

本文使用基于RTCORBA中間件技術(shù)的代理服務器來連接兩種異構(gòu)網(wǎng)絡,實現(xiàn)LON網(wǎng)到Ethernet的互聯(lián),并且具備了數(shù)據(jù)透明傳輸、無縫互操作、實時的特性,在測控網(wǎng)絡中具有極大的使用價值和廣闊的發(fā)展前景。

責任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6037

    文章

    44569

    瀏覽量

    636145
  • 嵌入式
    +關(guān)注

    關(guān)注

    5086

    文章

    19141

    瀏覽量

    305945
  • 服務器
    +關(guān)注

    關(guān)注

    12

    文章

    9218

    瀏覽量

    85578
收藏 人收藏

    評論

    相關(guān)推薦

    如何利用ARM7嵌入式單片機設計視頻報警系統(tǒng)?

    性、高速性和智能性要求很高的應用領(lǐng)域。目前計算機圖像處理系統(tǒng)多為CCD攝像頭+視頻卡+計算機的工作模式,且結(jié)構(gòu)復雜、成本高、體積龐大,受計算機操作系統(tǒng)的限制,圖像處理實時性差。針對傳統(tǒng)的圖像采集系統(tǒng)的缺陷,我們來討論一下如何利用ARM7嵌入式
    發(fā)表于 08-01 07:32

    基于ARMLinux嵌入式Web服務器的構(gòu)建及應用

    摘要:本文主要研究了基于ARMLinux嵌入式Web服務器的構(gòu)建及應用.隨著互聯(lián)網(wǎng)的飛速發(fā)展,越來越多的信息化產(chǎn)品需要接入互聯(lián)網(wǎng)并通過Web頁面進行遠程訪問和控制,
    發(fā)表于 11-05 06:07

    基于ARM嵌入式Web服務器的研究與實現(xiàn)

             本文給出了一種嵌入式Web Server 的設計方案。該方案對基于ARM
    發(fā)表于 09-08 08:52 ?37次下載

    分布測控網(wǎng)絡中嵌入式代理服務器的設計與實現(xiàn)

            本文設計了分布測控網(wǎng)絡中起著關(guān)鍵作用的代理服務器,它使得底層現(xiàn)場總線對于上層信息網(wǎng)絡成為了一個透明的網(wǎng)絡層,并根據(jù)設計實現(xiàn)了一個
    發(fā)表于 09-10 08:44 ?20次下載

    32位ARM7嵌入式硬件平臺簡介

    32位ARM7嵌入式硬件平臺簡介 ARM7嵌入
    發(fā)表于 02-10 10:49 ?68次下載

    基于AVR單片機嵌入式“瘦服務器”系統(tǒng)設計思想

    基于AVR單片機嵌入式“瘦服務器”系統(tǒng)設計思想 根據(jù)國內(nèi)嵌入式設備的研究形勢和產(chǎn)業(yè)發(fā)展規(guī)模,提出了基于AVR單片機(ATmega103)
    發(fā)表于 05-04 22:10 ?929次閱讀
    基于AVR<b class='flag-5'>單片機</b>的<b class='flag-5'>嵌入式</b>“瘦<b class='flag-5'>服務器</b>”系統(tǒng)設計思想

    網(wǎng)絡代理服務器

    網(wǎng)絡代理服務器              網(wǎng)絡代理服務器有別于傳統(tǒng)的網(wǎng)絡加速軟件,它是專門指高速緩存服務器產(chǎn)品,即Cache
    發(fā)表于 01-07 14:09 ?1016次閱讀

    GPRS的ARM7嵌入式單片機視頻報警系統(tǒng)

    GPRS的ARM7嵌入式單片機視頻報警系統(tǒng)利用以單片機應用系統(tǒng)為中心的小型嵌入式設備進行數(shù)據(jù)采集,并通過網(wǎng)絡有效傳輸數(shù)據(jù),已成為數(shù)據(jù)采集領(lǐng)域
    發(fā)表于 04-23 14:10 ?902次閱讀
    GPRS的<b class='flag-5'>ARM7</b><b class='flag-5'>嵌入式</b><b class='flag-5'>單片機</b>視頻報警系統(tǒng)

    ARM7嵌入式應用中啟動

    ARM7嵌入式應用中啟動程序的實現(xiàn),有需要的下來看看。
    發(fā)表于 01-13 17:23 ?11次下載

    基于ARM嵌入式Web服務器設計方案

    基于ARM嵌入式Web服務器設計方案
    發(fā)表于 06-15 11:13 ?20次下載

    嵌入式實時操作系統(tǒng)FreeRTOS在ARM7上移植實現(xiàn)

    嵌入式實時操作系統(tǒng)FreeRTOS在ARM7上移植實現(xiàn)(嵌入式開發(fā)工程師待遇)-嵌入式實時操作系統(tǒng)FreeRTOS在
    發(fā)表于 07-30 12:05 ?21次下載
    <b class='flag-5'>嵌入式</b>實時操作系統(tǒng)FreeRTOS在<b class='flag-5'>ARM7</b>上移植<b class='flag-5'>實現(xiàn)</b>

    嵌入式開發(fā)教程之基于ARM7的LCD設計與實現(xiàn)

    嵌入式開發(fā)教程之基于ARM7的LCD設計與實現(xiàn)(嵌入式開發(fā)培訓班費用)-該文檔為嵌入式開發(fā)教程之基于AR
    發(fā)表于 08-04 11:25 ?9次下載
    <b class='flag-5'>嵌入式</b>開發(fā)教程之基于<b class='flag-5'>ARM7</b>的LCD設計與<b class='flag-5'>實現(xiàn)</b>

    單片機or嵌入式linux

    最近很多童鞋投票并咨詢?nèi)绾螐?b class='flag-5'>單片機轉(zhuǎn)做嵌入式Linux開發(fā)。看來讀者圈中做單片機,RTOS的不少。盡管我目前從事Linux/Android方
    發(fā)表于 11-01 16:26 ?17次下載
    <b class='flag-5'>單片機</b>or<b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>

    基于單片機嵌入式web服務器設計與實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于單片機嵌入式web服務器設計與實現(xiàn).pdf》資料免費下載
    發(fā)表于 10-26 14:36 ?1次下載
    基于<b class='flag-5'>單片機</b>的<b class='flag-5'>嵌入式</b>web<b class='flag-5'>服務器</b>設計與<b class='flag-5'>實現(xiàn)</b>

    基于ARM平臺的嵌入式WEB服務器的設計與實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于ARM平臺的嵌入式WEB服務器的設計與實現(xiàn).pdf》資料免費下載
    發(fā)表于 10-27 10:45 ?1次下載
    基于<b class='flag-5'>ARM</b>平臺的<b class='flag-5'>嵌入式</b>WEB<b class='flag-5'>服務器</b>的設計與<b class='flag-5'>實現(xiàn)</b>