a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于RTCORBA技術的嵌入式代理服務器設計

基于RTCORBA技術的嵌入式代理服務器設計

作者: 時間:2005-04-08 來源:網絡 收藏
摘要:使用Linux+的系統架構一個器,實現了LON網到Ethernet的互聯;具有數據透明傳輸、無縫互操作、實時的特性。

關鍵詞: 器 現場總線

引言

現場控制網絡、信息網絡集成和分布式實時的發燕尾服和成熟,使集成信息網絡和現場控制網絡的分布式實時測控網絡成為未來工業測控系統的發展方向。在這這樣一個測控網絡中,實現異構網絡無縫互聯的關鍵是器。使用實時中間件的代理服務器,既能滿足實時互聯的要求,又使代理服務器屏蔽了底層測控設備的實現細節,減少了系統開發的難度;同時,面向對象技術,各種測控設備的連接與安裝難度也大幅度降低。

本文使用Linux+的系統架構一個代理服務器,用于LON網到以太網的互聯,并且使用ARM7的單片機實現了該代理服務器。

1 RTCORBA技術簡介

CORBA是OMG推出的一個重要的工業規范,是OMA(Object Model Architecture)的核心部分。OMA所采用的方法,是為面向對象的應用提供一個公共框架,如果符合這一框架,就可以在多種硬件平臺和操作系統上建立一個異質的分布式應用環境。

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

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

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

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

*將ORB擴充為RTORB;

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

*增添了RTCORBA::Threadpool接口;

*增添了Scheduling Service。

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

2 嵌入式代理服務器與實現

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

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

2.1 硬件平臺

在這種方案中,代理服務器一方面通過各種驅動或服務程序與現場設場設備實時交換數據,另一方面通過ORB與應用程序交換數據。代理服務器可以提供對LON現場總線、常規通用工業串行通信總線RS485/RS232、常用DCS/PLC等多種現場控制協議的支持,其硬件框圖如圖2所示。通過使用代理服務器,屏蔽了底層的現場總線通信協議,使用面向對象的方法將每一個現場設備都實現為網絡中的一個分布式對象;通過對象方法調用向上層應用提供統一的服務,使得上層應用可以直接通過調用代理服務器中的對象方法來控制底層測控設備。

(1)微處理器模塊

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

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

這個模塊用來與以太網通信。S3C4510B內嵌了一個以太網控制器,支持媒體獨立接口(MII)和緩沖DMA接口(BDI),可在半雙工或全雙工模式下提供10M/100Mbps以太網接入。實際上芯片已經包含以太網MAC控制,但未提供物理層接口,需要外接一塊物理層芯片。

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

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

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

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

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

LON現場總線通信模塊原理如圖4所示。

2.2 操作系統層

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

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

②內核和文件系統,包括 Linux內核、根文件系統和建立于Flash內存設備之上的文件系統。

(1)Linux內核

作為候選的一種嵌入式操作系統,嵌入式Linux以其引入注目的優勢,極大地吸引電子設計工程師從自己書寫的或專用的RTOS轉移到Linux。UClinux是專為那些沒有MMU(內存管理單元)的嵌放式處理器開發的嵌入式Linux。

圖3

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

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

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

*Gdb調試器。

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

①獲得uClinux-dist的源碼包;

②建立ARM交叉編譯環境;

③針對硬件修改配置;

④編譯內核;

⑤內核加載運行。

(2)BootLoader

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

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

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

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

2.3 ORB

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

2.4 應用程序開發

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

一個實時CORBA應用在邏輯上分為客戶和服務器兩個部分。客戶端向服務器端主動發起服務請求,服務器端則被動接收服務請求。一個實時CORBA應用的客戶端常包含多個服務請求(方法調用);除此外,還包含在本地執行的代碼。在服務器端,則包含了這個方法的實現。在我們的這個系統中,代理服務器就是一個服務器端,測控網絡中其它的工作站則是客戶端。它們調用代理服務器上的方法,以獲取現場檢測數據和修改現場設備的參數。

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

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

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

3 總結

分布式中間件技術在信息技術領域已經得到了廣泛應用。使用分布式中間件技術可以方便地開發、集成、升級和維護各種應用系統,大大降低了構建應用系統的代價,并極大地提高了生產效率。開發和應用分布式實時測控系統也必將成為起來測控網絡的發展方向。

本文使用基于RTCORBA中間件技術的代理服務器來連接兩種異構網絡,實現LON網到Ethernet的互聯,并且具備了數據透明傳輸、無縫互操作、實時的特性,在測控網絡中具有極大的使用價值和廣闊的發展前景。

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


評論


相關推薦

技術專區

關閉