摘 要:隨著智能電網(wǎng)建設(shè)全面推進(jìn),對(duì)終端嵌入式軟件的安全性、可靠性、穩(wěn)定性、可擴(kuò)展性越來越高,智能終端嵌入式軟件開發(fā)的平臺(tái)化、工具化、測試軟件的自動(dòng)化是必然的發(fā)展趨勢。本文提出一種終端嵌入式軟件平臺(tái)化設(shè)計(jì)方法,采用面向?qū)ο蟮?、組件化的設(shè)計(jì)方法,實(shí)現(xiàn)終端軟件的跨平臺(tái)、可定制、可擴(kuò)展、支持測試自動(dòng)化。全面提高終端軟件開發(fā)效率和軟件質(zhì)量,更好地支持高可靠性和低成本的硬件設(shè)計(jì)。
關(guān)鍵詞:終端軟件平臺(tái)化;工具化;組件化;可擴(kuò)展;自動(dòng)測試
中圖分類號(hào):TP273.5
配用電終端,包括FTU、DTU及各種用電采集終端是智能電網(wǎng)建設(shè)中安裝數(shù)量最大、覆蓋最廣、環(huán)境最惡劣的智能終端設(shè)備。這些特征對(duì)終端產(chǎn)品的穩(wěn)定性、可靠性、硬件成本都提出了更高的要求,其中嵌入式軟件研發(fā)成本、質(zhì)量、和性能在相當(dāng)大的程度上決定了終端產(chǎn)品的質(zhì)量和終端產(chǎn)品的成本。
1 需求分析
終端軟件伴隨硬件性能的不升級(jí)而變得越來越復(fù)雜和功能強(qiáng)大。通過是否具有MMU功能將處理器分為兩大類,以ARM7為代表不具有MMU功能MCU,程序一般運(yùn)行在FLASH中,內(nèi)存空間較小,一般使用嵌入式操作系統(tǒng)如UCosII、VxWorks、Neclues或嵌入式Linux(ucLinux),或者不使用操作系統(tǒng);ARM9為代表具有MMU功能的MCU,程序存儲(chǔ)在外存中,需要調(diào)入內(nèi)存中才能運(yùn)行,由于具有MMU,實(shí)際程序空間遠(yuǎn)大于實(shí)際內(nèi)存,運(yùn)行機(jī)理與PC機(jī)是基本一致的,一般選用Linux操作系統(tǒng)。智能手機(jī)也是這種架構(gòu),這與傳統(tǒng)的嵌入式軟件已有本質(zhì)的區(qū)別。選用何種平臺(tái)需從功能要求、成本要求、功耗要求等多種因數(shù)考慮確定。而應(yīng)用軟件具有較好的可復(fù)用性、可移植性是平臺(tái)化的目標(biāo)。
1.1 可移植性
智能電網(wǎng)的建設(shè)對(duì)不同應(yīng)用的配用電終端提出不同的功能、性能要求,及成本要求,這要求應(yīng)用軟件具有較好的適應(yīng)性,可方便進(jìn)行移植,從而繼承原有軟件的穩(wěn)定性、可靠性。
這種可移植性性不僅需要適應(yīng)高性能處理器和低性能處理器,具有硬件平臺(tái)可移植性性而且可以不同操作系統(tǒng)間移植,甚至在無操作系統(tǒng)環(huán)境下也能高效運(yùn)行。
1.2 可定制需求
智能電網(wǎng)互動(dòng)性的需求決定了終端功能和交互盡可能個(gè)性化??啥ㄖ频牡湫彤a(chǎn)品就是組態(tài)軟件,既可以通過圖形化的配置工具配置邏輯功能,也可以配置交互界面,體現(xiàn)個(gè)性化需求。
1.3 自動(dòng)測試
終端功能越來越多,越來越復(fù)雜,測試工作量越來越大,為了提高效率,一種能過自動(dòng)測試的工具和系統(tǒng),實(shí)現(xiàn)測試用例的自動(dòng)進(jìn)行和共享,是一種必然的選擇。
2 設(shè)計(jì)思路
實(shí)現(xiàn)軟件跨軟硬件平臺(tái)、可移植的方法均采用中間層和虛擬機(jī)技術(shù)。實(shí)現(xiàn)軟件復(fù)用典型做法是采用面向?qū)ο蟮脑O(shè)計(jì)思想,組件化技術(shù),并通過開發(fā)專用開發(fā)工具是來提高效率。工具可以保證系統(tǒng)的完備性,工具體現(xiàn)的嵌入式軟件的內(nèi)在邏輯關(guān)系和規(guī)律。
主站和終端通信就離不開規(guī)約,但規(guī)約不應(yīng)成為終端軟件的開發(fā)重點(diǎn),功能是重點(diǎn),規(guī)約需體現(xiàn)功能。采用面向?qū)ο蟮脑O(shè)計(jì)方法是目前主流的模式,無論IEC61850還是IEC62056都體現(xiàn)了這種思想,規(guī)約則完成對(duì)象的映射,功能就是采用分布式組件的編排(如COM的IMarshal接口),因此,是可以實(shí)現(xiàn)規(guī)約自動(dòng)編解碼。
自動(dòng)測試是質(zhì)量和效率的保證,自動(dòng)測試需要采用腳本實(shí)現(xiàn),不僅提高效率而且能過不斷豐富腳本庫實(shí)現(xiàn)知識(shí)繼承。
3 架構(gòu)設(shè)計(jì)
根據(jù)設(shè)計(jì)思想,終端嵌入式軟件總體按照面向?qū)ο蟆⒔M件化程序架構(gòu)設(shè)計(jì),終端軟件的結(jié)構(gòu)如圖1。
終端的數(shù)據(jù)保存在數(shù)據(jù)字典中,以文件或嵌入式數(shù)據(jù)庫的方式保存。而對(duì)終端的功能按照對(duì)象進(jìn)行劃分,可分為終端對(duì)象、總加組對(duì)象、測量點(diǎn)(回路)對(duì)象、遙測、遙信、遙控、任務(wù)、事件等對(duì)象,主站是通過分布式對(duì)象訪問這些接口對(duì)象。規(guī)約僅承載了RPC(Remote Procedure Call)的作用,將內(nèi)部對(duì)象通過代理(Agent)延伸到主站側(cè)。相對(duì)應(yīng)的在終端內(nèi)部對(duì)對(duì)象的訪問通過LPC(Local Procedure Call)進(jìn)行。
3.1 平臺(tái)設(shè)計(jì)
終端軟件的平臺(tái)化,首先需要設(shè)計(jì)的就是平臺(tái),需要設(shè)計(jì)本平臺(tái)的基本數(shù)據(jù)類型和平臺(tái)接口API。設(shè)計(jì)采用POSIX規(guī)范,盡管軟件可能應(yīng)用于一些無操作系統(tǒng)的情況,這時(shí),需按接口規(guī)范編制精簡的調(diào)度功能接口,在具有操作系統(tǒng)的應(yīng)用中,僅需對(duì)原操作系統(tǒng)數(shù)據(jù)類型重新定義,對(duì)API重新封裝。
3.2 存儲(chǔ)設(shè)計(jì)
終端的功能就是進(jìn)行數(shù)據(jù)采集、存儲(chǔ)、統(tǒng)計(jì)計(jì)算、按照策略執(zhí)行閉環(huán)控制。數(shù)據(jù)存儲(chǔ)處于核心和樞紐的地位,所有數(shù)據(jù)包括對(duì)象本身都需要通過存儲(chǔ)實(shí)現(xiàn)持久化。存儲(chǔ)設(shè)計(jì)參考數(shù)據(jù)庫設(shè)計(jì)的方法,分為數(shù)據(jù)和元數(shù)據(jù),元數(shù)據(jù)定義的數(shù)據(jù)的組織方式,即系統(tǒng)表。同時(shí)還需針對(duì)智能終端具體應(yīng)用進(jìn)行擴(kuò)展,簡化數(shù)據(jù)設(shè)計(jì)工作,適應(yīng)不同的硬件平臺(tái)。因此表可分為:
內(nèi)存表:內(nèi)存表保存的數(shù)據(jù)實(shí)際上既是全局變量,掉電時(shí)不保存。
參數(shù)表:內(nèi)存表保存的數(shù)據(jù)實(shí)際上也是全局變量,掉電時(shí)保存到外存中。
準(zhǔn)實(shí)時(shí)表:準(zhǔn)實(shí)時(shí)表是為了提高效率,將內(nèi)、外部訪問頻繁的數(shù)據(jù),按照時(shí)間規(guī)則緩存在內(nèi)存中。
歷史表:全部數(shù)據(jù)保存在外存中。
系統(tǒng)中的對(duì)象也在存儲(chǔ)中持久化,通過二維表描述數(shù)據(jù),數(shù)據(jù)描述對(duì)象,并通過上述參數(shù)配置可靈活定制滿足特定功能需求的存儲(chǔ)支撐環(huán)境。
3.3 對(duì)象設(shè)計(jì)
平臺(tái)的組件化的核心是組件屬性和功能的映射。存儲(chǔ)表的表的ID結(jié)合表內(nèi)字段(列)的ID用作其存儲(chǔ)的對(duì)象或?qū)傩缘臉?biāo)識(shí),并采用這種組合對(duì)于對(duì)象和屬性的映射時(shí)。
對(duì)于對(duì)象的方法的調(diào)用在終端平臺(tái)內(nèi)部被調(diào)用IPC和LPC機(jī)制,與此相對(duì)應(yīng)主站對(duì)其調(diào)用就是RPC,系統(tǒng)中采用的各種規(guī)約從本質(zhì)上講是一種簡易的RPC協(xié)議。為了降低模塊間耦合度,組件間的調(diào)用采用LPC調(diào)用,即以不編碼或簡單編碼為基礎(chǔ),以共享內(nèi)存為交互介質(zhì)實(shí)現(xiàn)過程調(diào)用,規(guī)約轉(zhuǎn)換就是LPC到RPC和RPC到LPC的轉(zhuǎn)換過程。
3.4 功能實(shí)現(xiàn)設(shè)計(jì)
終端中的功能主要是對(duì)數(shù)據(jù)的加工和條件觸發(fā)執(zhí)行一個(gè)處理過程。以任務(wù)的形式存在。這項(xiàng)工作可以采用數(shù)據(jù)庫中的存儲(chǔ)過程的技術(shù)實(shí)現(xiàn)。數(shù)據(jù)庫中存儲(chǔ)過程分為內(nèi)部存儲(chǔ)過程和外部存儲(chǔ)過程,任務(wù)與之對(duì)應(yīng)也分為庫存任務(wù)(外部存儲(chǔ)過程)和配置任務(wù)(內(nèi)部存儲(chǔ)過程),庫存任務(wù)需要代碼實(shí)現(xiàn),配置任務(wù)通過配置定制。
配置任務(wù):是將終端的各種處理進(jìn)行抽象,通過配置即可實(shí)現(xiàn)響應(yīng)的功能。如平均值計(jì)算,極值統(tǒng)計(jì)、數(shù)據(jù)轉(zhuǎn)存、條件統(tǒng)計(jì)、條件控制等策略。
庫存任務(wù):就是定制一些特殊的邏輯,用配置任務(wù)難以實(shí)現(xiàn),需要編程進(jìn)而升級(jí)軟件來實(shí)現(xiàn),也可通過支持腳本來實(shí)現(xiàn),腳本可采用在自動(dòng)測試中描述技術(shù)實(shí)現(xiàn)。
3.5 HMI設(shè)計(jì)
終端的人機(jī)交互面完全可以采用類似組態(tài)軟件的技術(shù)來實(shí)現(xiàn),通過配置文件來實(shí)現(xiàn)個(gè)性化交互,通過對(duì)頁面、頁面中的圖元與數(shù)據(jù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,圖元與頁面的對(duì)應(yīng)關(guān)系定義,實(shí)現(xiàn)頁面的調(diào)用,信息的顯示和參數(shù)數(shù)據(jù)輸入功能,不僅可以提供個(gè)性化交互頁面,而且可以提高效率,降低開發(fā)難度,減少失誤。低資源方案和高資源方案,高資源方案可通過支持HTML5和SVG進(jìn)行定制
4 模擬開發(fā)環(huán)境
Iphone上的應(yīng)用開發(fā)可以在筆記本上仿真調(diào)試、測試。嵌入式軟件的開發(fā)和調(diào)試也可以應(yīng)用類似技術(shù),要做就是在windows平臺(tái)上開發(fā)統(tǒng)一平臺(tái)接口,通過圖形界面仿真終端的輸入輸出和HMI交互。Windows平臺(tái)的C語言開發(fā)工具,如VC這樣的集成開發(fā)工具,均有很好的開發(fā)調(diào)試功能,可進(jìn)行單步跟蹤調(diào)試,這是很多的開發(fā)環(huán)境不支持的。在進(jìn)行開發(fā)時(shí)可以先在仿真仿真環(huán)境下進(jìn)行,測試合格后再配置到實(shí)際的終端硬件上運(yùn)行。
5 測試自動(dòng)化
自動(dòng)測試離不開測試腳本,VB SCRIPT和JAVA SCRIPT是兩種流行的腳本語言。在windows平臺(tái)上有較好腳本容器支持。與組件化對(duì)應(yīng),需要將對(duì)象映射為COM對(duì)象,供腳本調(diào)用。通過讀取對(duì)象配置數(shù)據(jù),可以通過IDispach動(dòng)態(tài)生成需要的COM對(duì)象。腳本通過測試用例庫管理。
6 結(jié)束語
隨著技術(shù)發(fā)展,微處理器功能越來越強(qiáng)大,使原本在桌面系統(tǒng)中使用的技術(shù)完全可以移植到終端嵌入式軟件的設(shè)計(jì)中,如面向?qū)ο蠹夹g(shù)、組件化的設(shè)計(jì)方法,這也與IEC 61850和IEC 62056規(guī)范相一致。平臺(tái)化、組件化,為工具開發(fā)提供了可能,開發(fā)專用的智能終端軟件開發(fā)管理工具,結(jié)合虛擬機(jī)技術(shù)、腳本技術(shù)可以大幅提供終端軟件開發(fā)效率。智能終端軟件的開發(fā)的平臺(tái)化、工具化將成為未來終端軟件的發(fā)展方向。
參考文獻(xiàn):
[1]汪旭.基于ARM與LINUX的嵌入式智能控制系統(tǒng)軟件編程設(shè)計(jì)及實(shí)現(xiàn)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013(11):243-244
[2]宋文文.基于校園網(wǎng)的無線網(wǎng)絡(luò)設(shè)計(jì)方案[J]科技信息,2012(35).
作者簡介:姚肖禹(1969.08-),男,吉林遼源人,工程技術(shù)中心副總監(jiān),本科,工程師,研究方向:主要從事用電信息采集系統(tǒng)研發(fā)方面工作。
作者單位:南京新聯(lián)電子股份有限公司,南京 211100