1、引言
在儀器儀表迅速發(fā)展的同時(shí),計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)也在迅速發(fā)展,PC機(jī)已經(jīng)從高速增長(zhǎng)進(jìn)入到平穩(wěn)發(fā)展時(shí)期,嵌入式系統(tǒng)的出現(xiàn)和廣泛應(yīng)用,使計(jì)算機(jī)和網(wǎng)絡(luò)進(jìn)入了后PC時(shí)代,基于嵌入式智能儀表遠(yuǎn)程監(jiān)控系統(tǒng)作為工業(yè)控制網(wǎng)絡(luò)重要發(fā)展方向之一。而嵌入式控制器是能夠?qū)崿F(xiàn)智能儀表遠(yuǎn)程監(jiān)控的關(guān)鍵設(shè)備,是工業(yè)控制儀表與Internet連接的橋梁。
2、控制器總體介紹
嵌入式智能儀表的結(jié)構(gòu)及其與Internet的連接方案設(shè)計(jì)如圖1。
圖1基于嵌入式智能儀表的遠(yuǎn)程監(jiān)控系統(tǒng)
嵌入式控制器是用于執(zhí)行獨(dú)立功能并具有以復(fù)雜方式處理數(shù)據(jù)能力的控制系統(tǒng),它內(nèi)置在工業(yè)儀表上,由三部分組成:高速處理器、嵌入式Web服務(wù)器和工業(yè)儀表接口。嵌入式控制器以高速處理器為核心,由高速處理器和其他芯片協(xié)同工作來(lái)控制電子設(shè)備或裝置,能夠完成監(jiān)視、控制等各種自動(dòng)化處理任務(wù)。嵌入式控制器是一種很好的基本接入設(shè)備,它通過(guò)工業(yè)儀表接口與儀表相連。嵌入式控制器在TCP/IP數(shù)據(jù)傳輸?shù)幕A(chǔ)上,將Web功能融入整個(gè)裝置。客戶只要擁有瀏覽器,即可方便的與控制器進(jìn)行通信,對(duì)現(xiàn)場(chǎng)智能儀表進(jìn)行過(guò)程參數(shù)的查看與設(shè)定,控制對(duì)象的關(guān)閉與開(kāi)啟。
基于嵌入式儀表的遠(yuǎn)程監(jiān)控系統(tǒng)的核心是嵌入式控制器,嵌入式控制器是一個(gè)典型的嵌入式系統(tǒng),嵌入式控制器的系統(tǒng)設(shè)計(jì)遵從嵌入式系統(tǒng)設(shè)計(jì)的相關(guān)理論。系統(tǒng)設(shè)計(jì)需要考慮把軟件和硬件的結(jié)構(gòu)作為一個(gè)統(tǒng)一協(xié)調(diào)的整體。嵌入式系統(tǒng)趨向于采用高平臺(tái)(Platform)和采用面向?qū)ο蟮腢ML-RT來(lái)進(jìn)行系統(tǒng)的分析和設(shè)計(jì)。因此,我們?cè)谠O(shè)計(jì)嵌入式控制器時(shí),采用UML-RT和平臺(tái)(Platform),使嵌入式控制器有一個(gè)彈性的架構(gòu),能夠方便快速的改變或擴(kuò)充功能,滿足系統(tǒng)要求。
3、嵌入式控制器的需求分析
我們利用UML的用例圖(usecase)來(lái)對(duì)嵌入式控制器進(jìn)行需求分析。用例圖從用戶的觀點(diǎn)描述了系統(tǒng)硬件和軟件的功能。按照前面我們對(duì)嵌入式控制器的功能描述,我們得出系統(tǒng)的用例圖,如圖2所示。其中包括七個(gè)不同的用例和兩個(gè)不同的角色。
圖2嵌入式控制器的用例圖
用戶角色可進(jìn)行查看數(shù)據(jù),設(shè)定數(shù)據(jù),開(kāi)啟和關(guān)閉控制對(duì)象(智能儀表),控制對(duì)象可以接收和發(fā)送數(shù)據(jù),相應(yīng)開(kāi)啟和關(guān)閉的操作指令。數(shù)據(jù)處理中心負(fù)責(zé)數(shù)據(jù)的封裝,發(fā)送,計(jì)算等數(shù)據(jù)處理工作。
4、平臺(tái)(platform)的劃分和設(shè)計(jì)
在完成了系統(tǒng)的需求分析之后,開(kāi)始劃分本平臺(tái)的系統(tǒng)結(jié)構(gòu),所謂本平臺(tái)的系統(tǒng)結(jié)構(gòu)就是指平臺(tái)系統(tǒng)對(duì)各級(jí)之間界面的定義及其上、下層的功能分配,而且每一層又有它自己的系統(tǒng)結(jié)構(gòu)。主要按照功能、邏輯順序來(lái)劃分多級(jí)層次結(jié)構(gòu)。在劃分系統(tǒng)結(jié)構(gòu)的時(shí)候,主要需要綜合平衡下面的一些問(wèn)題:
1、本質(zhì)上,它是從平臺(tái)用戶在使用本平臺(tái)進(jìn)行開(kāi)發(fā)時(shí),所看到的本平臺(tái)的屬性,包括概念性結(jié)構(gòu),一些接口和功能特性。從概念和功能上把它看作是有多級(jí)構(gòu)成的層次結(jié)構(gòu),有利于對(duì)嵌入式控制器及開(kāi)發(fā)平臺(tái)本身的正確理解。要研究哪些應(yīng)當(dāng)透明,哪些不應(yīng)當(dāng)透明。透明的好處是可以不用管它,簡(jiǎn)化了該級(jí)的設(shè)計(jì)。
2、一般來(lái)說(shuō),很多功能既可以放在上層,也可以放在下層,而且它們?cè)谶壿嫻δ苌鲜堑刃У?。選擇什么樣的上下層分配比例,主要取決于易用性,復(fù)雜度及現(xiàn)有的硬件狀況等。
3、系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)與實(shí)現(xiàn),究竟應(yīng)該從哪一層開(kāi)始,也是一個(gè)重要的問(wèn)題。比如對(duì)于一個(gè)三層的結(jié)構(gòu),可以有從上到下、從下到上、由中間開(kāi)始等多種選擇。從上述幾點(diǎn)考慮,嵌入式控制器平臺(tái)的系統(tǒng)結(jié)構(gòu)如圖3所示。
我們把嵌入式控制器系統(tǒng)分為3個(gè)抽象層次:體系結(jié)構(gòu)平臺(tái)(ARCplatform),應(yīng)用程序編程接口平臺(tái)(APIplatform),定制的應(yīng)用程序平臺(tái)(ASP)。ARC平臺(tái)包含了微處理器存儲(chǔ)系統(tǒng),接口電路,I/O通道及芯片之間的內(nèi)部連接。微處理器系統(tǒng)由S3C2410微處理器、FLASH,SDRAM,CS8900A網(wǎng)絡(luò)控制芯片等一族“微架構(gòu)”組成。API平臺(tái)包括RTOS實(shí)時(shí)操作系統(tǒng),嵌入式Web服務(wù)器,設(shè)備驅(qū)動(dòng)程序等。API平臺(tái)是軟件抽象層,把ARC平臺(tái)的實(shí)現(xiàn)細(xì)節(jié)進(jìn)行封裝。API平臺(tái)提供接口服務(wù),并對(duì)這些接口按類別進(jìn)行分組。比如用戶需要知道RTOS是否提供占先式任務(wù)調(diào)度接口,嵌入式Web服務(wù)器提供的HTTP,TCP/IP接口。ASP平臺(tái)提供用戶的直接操作界面和專門(mén)的應(yīng)用服務(wù),如讓用戶通過(guò)瀏覽器查看和設(shè)定智能儀表的控制參數(shù)。
圖3平臺(tái)的劃分
在每個(gè)平臺(tái)都有相應(yīng)的服務(wù)質(zhì)量(QoS)的要求。在ARC平臺(tái)對(duì)功耗、存儲(chǔ)量、處理速度、通訊能力等都有要求。S3C2410,CS8900A等芯片可以很好的滿足這些要求。在API平臺(tái)對(duì)運(yùn)行任務(wù)的個(gè)數(shù),任務(wù)切換時(shí)間等也有要求,嵌入式Web服務(wù)器和嵌入式Linux能滿足這些要求。在ASP平臺(tái)要求進(jìn)行實(shí)時(shí)的參數(shù)查看和參數(shù)設(shè)定。采用JavaApplet能很好的做到這些。
對(duì)嵌入式控制器系統(tǒng)進(jìn)行平臺(tái)的劃分,并且對(duì)各個(gè)平臺(tái)提出相應(yīng)的服務(wù)質(zhì)量參使我們?cè)谠O(shè)計(jì)的初始階段對(duì)整個(gè)設(shè)計(jì)有全局的觀念,由于各個(gè)平臺(tái)之間相對(duì)獨(dú)對(duì)以后出現(xiàn)的新的設(shè)計(jì)要求和設(shè)計(jì)修改具有很好的適應(yīng)能力。
5、基于UML-RT的嵌入式控制器設(shè)計(jì)
在對(duì)嵌入式控制器劃分平臺(tái)后,我們可以用UML-RT的符號(hào)體系對(duì)嵌入式控制器系統(tǒng)進(jìn)行建模。我們把建模的過(guò)程分為兩個(gè)階段。*階段是考慮系統(tǒng)的對(duì)外接口。第二階段是考慮系統(tǒng)內(nèi)部的平臺(tái)建模。
在*階段,嵌入式控制器的建模見(jiàn)圖4。根據(jù)前面用例圖的需求分析,得出系統(tǒng)需要與環(huán)境交互的端口有兩個(gè):一個(gè)是與控制對(duì)象即智能儀表進(jìn)行通訊。一個(gè)是和用戶進(jìn)行交互。為了支持和用戶交互以及控制對(duì)象通訊,我們定義了兩個(gè)容器(capsule)u:UserInteRFace和t:TransferData。容器p:ProcessData則是用來(lái)處理數(shù)據(jù)。容器可以包含相關(guān)的軟件和硬件結(jié)構(gòu),數(shù)據(jù)傳送可通過(guò)并口和串口進(jìn)行,這種傳送和處理器藕合的很緊,我們用UML-RT的擴(kuò)展符號(hào)表示。同樣,《SWp1》表示在處理器P1上執(zhí)行的處理與控制對(duì)象通訊的程序。我們用這種方式還可以對(duì)u:UserInterface和p:ProcessData進(jìn)行細(xì)化。
圖4嵌入式控制器的*階段表示
在*階段的基礎(chǔ)之上,我們結(jié)合前面對(duì)平臺(tái)的劃分,進(jìn)行平臺(tái)建模。系統(tǒng)的ARC平臺(tái)的建模如圖5所示。
圖RC平臺(tái)下的UML-RT建模
圖5表示了ARC平臺(tái)的基本組件和它們的拓?fù)鋱D結(jié)構(gòu),利用這個(gè)圖可以進(jìn)一步的進(jìn)行對(duì)象建模。這個(gè)模型提供了一個(gè)框架,并可以方便的增加,移動(dòng),替代,修改框架內(nèi)的元素。UML-RT的端口可以有效的表示模型元素之間的接口。
API平臺(tái)處于ARC平臺(tái)和ASP平臺(tái)之間,包括RTOS嵌入式Web服務(wù)器,設(shè)備驅(qū)動(dòng)程序等。從UML-RT角度看,API平臺(tái)是ARC容器與ASP容器之間的通訊管道。在這里ARC容器和ASP容器直接通過(guò)連接器相連。
ARCProxy從ASP容器的端口中接收調(diào)用信息,然后把這個(gè)信息通過(guò)RTOSAPI送到合適的設(shè)備驅(qū)動(dòng)程序,讓設(shè)備驅(qū)動(dòng)程序去和ARC平臺(tái)通訊。異步或同步的通訊可以通過(guò)這個(gè)方式進(jìn)行。驅(qū)動(dòng)程序和RTOS是緊密相關(guān)的。ASP平臺(tái)的建模同樣可以通過(guò)類似的方式表現(xiàn)。
綜上所述,結(jié)合UML-RT和Platform進(jìn)行嵌入式控制器的設(shè)計(jì),我們看到它們能夠很好的對(duì)嵌入式軟硬件進(jìn)行抽象,提供良好的文檔資料?;赨ML-RT和Platform設(shè)計(jì)的系統(tǒng)架構(gòu),對(duì)設(shè)計(jì)過(guò)程出現(xiàn)的新的設(shè)計(jì)要求和設(shè)計(jì)修改具有很好的適應(yīng)能力,設(shè)計(jì)者可以及早的發(fā)現(xiàn)并更正錯(cuò)誤。