何波玲
摘要摘要:針對規(guī)模設(shè)備控制系統(tǒng)開發(fā)存在無序、依賴、重復(fù)等工程問題,提出一種基于嵌入式TCP/IP的系統(tǒng)模式和可復(fù)用的軟件驅(qū)動引擎。每個設(shè)備由內(nèi)置的單片機(jī)進(jìn)行采樣和驅(qū)動,采樣數(shù)據(jù)經(jīng)驅(qū)動引擎?zhèn)鹘o應(yīng)用程序,來自應(yīng)用程序的驅(qū)動數(shù)據(jù)經(jīng)驅(qū)動引擎?zhèn)鹘o單片機(jī)。驅(qū)動引擎經(jīng)TCP/IP下位網(wǎng)絡(luò)與單片機(jī)通信,經(jīng)由TCP/IP網(wǎng)絡(luò)或反射內(nèi)存實時網(wǎng)絡(luò)或二網(wǎng)結(jié)合構(gòu)成的上位網(wǎng)絡(luò)與應(yīng)用程序通信。驅(qū)動引擎為可復(fù)用結(jié)構(gòu),可以集成任何數(shù)量的單片機(jī)而無需對結(jié)構(gòu)作任何修改。這種控制模式特別適用于“人在回路”的仿真控制系統(tǒng),具有布線簡潔、軟件可復(fù)用、接口直觀、開發(fā)高效、運行實時、可靠等優(yōu)點。
關(guān)鍵詞關(guān)鍵詞:單片機(jī);嵌入式TCP/IP;驅(qū)動引擎;軟件復(fù)用
DOIDOI:10.11907/rjdk.151031
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A文章編號
文章編號:16727800(2015)004012603
0引言
“人在回路”仿真系統(tǒng),如飛機(jī)仿真系統(tǒng)、電站仿真系統(tǒng)等[12],會涉及人對設(shè)備的操縱及設(shè)備對仿真結(jié)果的反映。對于具有簡單設(shè)備的系統(tǒng),A/D(D/A)轉(zhuǎn)換卡可很好地滿足需求,但對于設(shè)備密集系統(tǒng),布線和維護(hù)問題將變得難以控制。在工程實踐中,人們更多地關(guān)注于具體控制技術(shù)的研究[34],卻較少從軟件工程的角度,對與硬件相關(guān)的軟件可復(fù)用、開發(fā)模式等問題進(jìn)行考慮,由此導(dǎo)致的非規(guī)范開發(fā)、重復(fù)開發(fā)、軟硬件緊密依賴等問題對工程效率和質(zhì)量產(chǎn)生了較大影響。本文采用通用部分和特定部分相分離的方法解決此類問題,涉及的具體研究內(nèi)容包括:①規(guī)范的系統(tǒng)體系結(jié)構(gòu);②可復(fù)用的軟件系統(tǒng);③簡潔的硬件控制量表達(dá)法;④透明的通信介質(zhì)和網(wǎng)絡(luò)節(jié)點拓?fù)浣Y(jié)構(gòu)。
1系統(tǒng)體系結(jié)構(gòu)
系統(tǒng)體系結(jié)構(gòu)如圖1所示,系統(tǒng)包括五大部分:嵌入式TCP/IP控制的設(shè)備群、驅(qū)動引擎、下位網(wǎng)、上位網(wǎng)、應(yīng)用。每個設(shè)備由內(nèi)置的單片機(jī)MCU(Micro Control Unit)進(jìn)行采樣和驅(qū)動,采樣數(shù)據(jù)經(jīng)驅(qū)動引擎?zhèn)鹘o應(yīng)用程序,來自應(yīng)用程序的驅(qū)動數(shù)據(jù)經(jīng)驅(qū)動引擎?zhèn)鹘o單片機(jī)。驅(qū)動引擎運行于工控機(jī),TCP/IP[5]下位網(wǎng)絡(luò)與單片機(jī)通信,經(jīng)由TCP/IP網(wǎng)絡(luò)[5]或反射內(nèi)存實時網(wǎng)絡(luò)[6]或二網(wǎng)結(jié)合構(gòu)成的上位網(wǎng)絡(luò)與應(yīng)用程序通信。驅(qū)動引擎為可復(fù)用結(jié)構(gòu),可以集成任何數(shù)量的單片機(jī)而無需對結(jié)構(gòu)做任何修改。驅(qū)動引擎的數(shù)量依賴于設(shè)備規(guī)模和實時性需求,一個配置有多塊網(wǎng)卡NICs(Network Interface Cards)的驅(qū)動引擎可滿足大多數(shù)系統(tǒng)的需求。
系統(tǒng)軟件配置結(jié)構(gòu)如圖2所示。其中,硬件配置文件AO.cfg,DO.cfg,AI.cfg,DI.cfg用于隔離特定硬件;下位網(wǎng)配置文件LowerComm.cfg用于隔離下位網(wǎng)通信節(jié)點;上位網(wǎng)配置文件UpperComm.cfg用于隔離上位網(wǎng)通信節(jié)點和通信介質(zhì);每個單片機(jī)對應(yīng)一個動態(tài)鏈接庫DLL(Dynamic Link Library)。
2協(xié)議數(shù)據(jù)單元
存在兩種協(xié)議數(shù)據(jù)單元:
(1)單片機(jī)至驅(qū)動引擎協(xié)議數(shù)據(jù)單元。
6結(jié)語
本文提出的控制模式特別適用于設(shè)備密集型“人在回路”仿真系統(tǒng)。其具有如下特點:①具有AD/DA轉(zhuǎn)換卡方法所不具備的布線簡單等優(yōu)點;②每個設(shè)備被嵌入的單片機(jī)控制,易于維護(hù);③驅(qū)動引擎為可復(fù)用結(jié)構(gòu),可以集成任何數(shù)量的單片機(jī)而無需對結(jié)構(gòu)做任何修改;④開發(fā)高效,開發(fā)一個新的硬件控制系統(tǒng),只需針對每個設(shè)備進(jìn)行簡單的單片機(jī)程序開發(fā)和單片機(jī)DLL開發(fā),然后與驅(qū)動引擎進(jìn)行無縫集成。此外,二維標(biāo)識法使軟硬開發(fā)者可以并行開發(fā),其簡潔的程序API使硬件訪問代碼開發(fā)非常高效;⑤上位通信和下位通信配置文件使得無需開發(fā)任何通信代碼就可完成通信且適于任何節(jié)點拓?fù)浞植肌?/p>
參考文獻(xiàn)參考文獻(xiàn):
[1]王行仁.飛行實時仿真系統(tǒng)及技術(shù)[M].北京:北京航空航天出版社,2000.
[2]宋云燕.基于面向?qū)ο蠹夹g(shù)的電站仿真支撐系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:華北電力大學(xué),2012.
[3]劉新順,閆建國.VxWorks環(huán)境下無人機(jī)半物理仿真模型機(jī)數(shù)據(jù)通信與采集[J].現(xiàn)代電子技術(shù),2012,35(1):79.
[4]徐海,崔連虎,徐光耀.RTX環(huán)境下時統(tǒng)信息實時采集方法研究[J].艦船電子工程,2012(4):5961.
[5]MICHAEL J DONAHOO,KENNETH L CALVERT.TCP/IP sockets in C:practical guide for programmers[M].2nd Edition.San Francisco:Morgan Kaufmann Publishers,2009.
[6]顧穎彥.反射內(nèi)存網(wǎng)實時通信技術(shù)的研究[J].計算機(jī)工程,2002(7):143144.
[7]JEFFREY RICHTER,CHRISTOPHE NASARRE.Windows Via C/C++[M].Washington:Microsoft Press,2011.
責(zé)任編輯(責(zé)任編輯:孫娟)