范 昊, 劉 漢, 朱慧龍
(中車青島四方機(jī)車車輛股份有限公司, 山東青島 266000)
多功能車輛總線(MVB)[1]是列車通信網(wǎng)絡(luò)標(biāo)準(zhǔn)IEC61375[2]中定義的用于車輛內(nèi)部各功能模塊之間的實(shí)現(xiàn)互聯(lián)的網(wǎng)絡(luò)總線,MVB可以將編程設(shè)備相互連接,也可以將編程設(shè)備與其傳感器和執(zhí)行機(jī)構(gòu)連接。MVB采用主從工作方式,同時(shí)主設(shè)備存儲(chǔ)周期掃描表,用來(lái)決定主幀的發(fā)送順序,從而達(dá)到控制整個(gè)網(wǎng)絡(luò)的運(yùn)行目的[3]。迄今為止,眾多學(xué)者對(duì)MVB周期掃描表的構(gòu)建和優(yōu)化做了大量的工作[4-9],并得到了一定的成果。對(duì)MVB周期掃描表的構(gòu)建方法進(jìn)行研究,能夠?yàn)镸VB網(wǎng)絡(luò)的應(yīng)用提供理論指導(dǎo),滿足實(shí)際應(yīng)用的需求。將引入總線負(fù)載均勻度[9]作為構(gòu)建周期掃描表的約束條件,提出一種改進(jìn)的MVB周期掃描表優(yōu)化算法??偩€負(fù)載均勻度是衡量MVB端口是否均勻排列的指標(biāo),總線中端口的排列越均勻,總線負(fù)載均勻度就越低,越能有效改善總線周期負(fù)載的分布,從而提高列車網(wǎng)絡(luò)控制系統(tǒng)[10]的實(shí)時(shí)性和可靠性。
MVB通過(guò)一個(gè)總線設(shè)備進(jìn)行控制訪問(wèn),同時(shí)保證該設(shè)備能夠在輪詢周期內(nèi)維持總線控制權(quán)。在該輪詢周期內(nèi),該設(shè)備會(huì)按照周期掃描表規(guī)定的端口順序發(fā)送主幀,其他設(shè)備只能發(fā)送從幀作為響應(yīng),并且是只有與主幀中相互匹配的端口才能發(fā)送。
MVB主設(shè)備將每一個(gè)輪詢時(shí)間片劃分為固定的時(shí)間片,這個(gè)固定的時(shí)間片稱為基本周期,記為Tbp,Tbp的取值范圍如下[3]:
1 ms≤Tbp≤2.5 ms
(1)
如圖1所示,可以看到一個(gè)基本周期Tbp分為周期相、監(jiān)督相、事件相和保護(hù)相4個(gè)相,且4個(gè)相的作用各不一樣。在周期相中,主設(shè)備對(duì)周期性數(shù)據(jù)進(jìn)行輪詢;在事件相中,主設(shè)備對(duì)偶發(fā)性事件進(jìn)行查詢;在監(jiān)督相中,主設(shè)備進(jìn)行設(shè)備掃描,同時(shí)傳遞輪詢主權(quán)。由監(jiān)督相、事件相和保護(hù)相構(gòu)成偶發(fā)相,在偶發(fā)相的最后階段,主設(shè)備會(huì)發(fā)送一個(gè)保護(hù)相作為緩沖段,為下一個(gè)周期的正確開(kāi)始起到保護(hù)作用。IEC 61375標(biāo)準(zhǔn)建議,在每個(gè)基本周期中留出30%的時(shí)間作為偶發(fā)相[8]。
MVB的周期數(shù)據(jù)包括主幀和從幀,其周期數(shù)據(jù)報(bào)文定時(shí)如圖2所示。
圖1 基本周期
圖2 周期數(shù)據(jù)報(bào)文定時(shí)
根據(jù)圖2可知,總線完成一次MVB數(shù)據(jù)傳輸,應(yīng)首先由總線主設(shè)備發(fā)送主幀,然后由從設(shè)備響應(yīng)并應(yīng)答從幀。完成一次上述過(guò)程所需的時(shí)間為:
t=t_mt_ms+t_s+t_sm
(2)
其中,t_m表示發(fā)送主幀所需要的時(shí)間;t_ms表示主幀到從幀之間的響應(yīng)間隔;t_s表示發(fā)送從幀所需要的時(shí)間;t_sm表示從幀到下一主幀的時(shí)間間隔[8]。根據(jù)IEC 61375標(biāo)準(zhǔn)的規(guī)定,在網(wǎng)絡(luò)最不通順的情況下,t_ms等于42.7 μs。
周期掃描表是周期數(shù)據(jù)實(shí)時(shí)輪詢的依據(jù),所有被輪詢的端口都會(huì)在周期掃描表上展示。周期數(shù)據(jù)被輪詢的周期稱為特征周期Tip,特征周期等于基本周期的2的n次方,即
Tip=Tbp×2n,n=0,1,2,…,10
(3)
宏周期是最長(zhǎng)的特征周期,但是不能超過(guò)1 024Tbp,如果基本周期Tbp定義為1 ms,那么在周期掃描表中最長(zhǎng)的宏周期不應(yīng)超過(guò)1 024 ms。
根據(jù)IEC 61375標(biāo)準(zhǔn)給出的周期掃描表構(gòu)建基本規(guī)則,假設(shè)基本周期為1 ms,可得出周期掃描表構(gòu)建過(guò)程如下[9]:
(1)通過(guò)特征周期Tip對(duì)周期數(shù)據(jù)進(jìn)行分類,并將相同特征周期的周期數(shù)據(jù)編成一組,比如Cycle_2表示每2 ms輪詢一次的周期數(shù)據(jù)組合;
(2)一個(gè)宏周期內(nèi)的所有循環(huán)組成宏循環(huán),宏循環(huán)為1 024個(gè)基本周期,即1 024 ms;
(3)一個(gè)周期數(shù)據(jù)經(jīng)過(guò)宏循環(huán)的輪詢,在其之后必然發(fā)生主權(quán)的轉(zhuǎn)移,鏈路監(jiān)視接口命令可以在每一個(gè)宏循環(huán)后使一個(gè)輪詢終止;
(4)一個(gè)循環(huán)分為多個(gè)子循環(huán),比如Cycle_32表示有32個(gè)子循環(huán),Cycle_3.1表示Cycle_3的第2個(gè)子循環(huán);
(5)保留每個(gè)宏循環(huán)的最后一個(gè)偶發(fā)相,為主權(quán)的轉(zhuǎn)移做準(zhǔn)備。
雖然不同周期如何劃分子循環(huán)并沒(méi)有一定的限制,但為了更好的性能,IEC 61375標(biāo)準(zhǔn)建議在宏周期中將端口均勻地排列循環(huán)。這也是引入總線負(fù)載均勻度的原因,以期能得到實(shí)時(shí)性和可靠性都更好的列車網(wǎng)絡(luò)控制系統(tǒng)。
根據(jù)IEC 61375標(biāo)準(zhǔn)給出的建立周期掃描表的基本規(guī)則,將總線負(fù)載均勻度[9]加入約束條件,同時(shí)設(shè)置允許人工設(shè)定優(yōu)先發(fā)送周期數(shù)據(jù),提出一種改進(jìn)的多功能總線掃描表優(yōu)化算法,該算法的過(guò)程如下, 流程圖如圖3所示。
(1)判斷是否有人工設(shè)定的優(yōu)先發(fā)送周期數(shù)據(jù),如果有,先把該類周期數(shù)據(jù)按照預(yù)先設(shè)定的需要填入的基本周期序號(hào)寫入到周期掃描表對(duì)應(yīng)的基本周期中,隨后進(jìn)入步驟(2);如果沒(méi)有優(yōu)先發(fā)送數(shù)據(jù),直接進(jìn)入步驟(2);
(2)將MVB總線上的設(shè)備的信息,包括其名稱、輪詢周期、數(shù)據(jù)長(zhǎng)度等信息寫入到所設(shè)定好的數(shù)組中;
(3)將特征周期相同的周期數(shù)據(jù)進(jìn)行分類,建立對(duì)應(yīng)的分類表;
(4)將同一個(gè)特征周期的周期數(shù)據(jù)按照不同的數(shù)據(jù)長(zhǎng)度從小到大進(jìn)行排序,并統(tǒng)計(jì)好其數(shù)量,記錄在分類表中;
(5)從當(dāng)前最小的特征周期的數(shù)據(jù)開(kāi)始,設(shè)定好每個(gè)基本周期所允許的周期數(shù)據(jù)的最大數(shù)量k值(即每個(gè)基本周期最多不能寫入超過(guò)k個(gè)周期數(shù)據(jù)),判斷當(dāng)前基本周期中已有的周期數(shù)據(jù)的報(bào)文時(shí)間和需要填入的周期數(shù)據(jù)的報(bào)文時(shí)間之和是否超過(guò)基本周期的65%(根據(jù)需要設(shè)定,可以更改)或者判斷兩者相加后的周期數(shù)據(jù)的數(shù)量是否超出k值,超過(guò)則略過(guò)當(dāng)前的基本周期,跳到下一個(gè)基本周期,重新進(jìn)入步驟(5);否則將該周期數(shù)據(jù)寫入當(dāng)前的基本周期中;
(6)判斷所有周期數(shù)據(jù)是否都已經(jīng)寫入,如果均已寫入,則此次周期掃描表完成配置,進(jìn)入步驟(7);如果沒(méi)有完全寫入,重新進(jìn)入步驟(4);
(7)計(jì)算并保存當(dāng)前周期掃描表的均勻度[9],同時(shí)保存本次周期掃描表。均勻度的公式如式(4)。
(4)
(8)更換步驟(5)中的k值,重復(fù)步驟(4)、(5)、(6),計(jì)算所有設(shè)定的k并記錄相應(yīng)數(shù)據(jù)后,進(jìn)入步驟(9);
(9)均勻度最佳的周期掃描表即為所需的列車多功能車輛總線周期掃描表;
圖3 基于優(yōu)化算法的周期掃描表的流程圖
結(jié)合上述周期掃描表優(yōu)化算法,使用C#語(yǔ)言開(kāi)發(fā)了MVB周期掃描表生成軟件,如圖4所示。界面右邊是圖形顯示區(qū)域,周期掃描表沒(méi)有生成前,右邊顯示為空白?;局芷谝? ms計(jì)算,軟件同時(shí)提供手動(dòng)輸入端口信息和導(dǎo)入端口配置文件兩種輸入方式,輸入的端口信息會(huì)在界面左邊第1個(gè)表中呈現(xiàn)。點(diǎn)擊計(jì)算負(fù)載率后,軟件會(huì)根據(jù)周期掃描表算法得到周期掃描表,并在界面左邊第2個(gè)表中顯示每個(gè)基本周期端口的排列順序以及相關(guān)信息。點(diǎn)擊導(dǎo)出負(fù)載率文件,可以將文件以“txt”格式文件導(dǎo)出分析。如果需要將某端口數(shù)據(jù)進(jìn)行人工設(shè)定優(yōu)先發(fā)送,比如需要人工設(shè)定零端口在周期掃描表的第1個(gè)基本周期首次發(fā)送數(shù)據(jù),那么需要在“端口號(hào)”欄中輸入“0A”,在“手動(dòng)調(diào)整位置”欄中輸入“1”,點(diǎn)擊“計(jì)算負(fù)載率”按鈕后,界面左邊第2個(gè)表會(huì)生產(chǎn)相應(yīng)的周期掃描表,同時(shí)0AH端口會(huì)在掃描表的第1個(gè)基本周期出現(xiàn)。
圖4 MVB周期掃描表生成軟件
下面針對(duì)兩個(gè)實(shí)例,利用上述優(yōu)化算法和逐步填空[2]的方法分別配置周期掃描表,對(duì)兩種算法得到的周期掃描表進(jìn)行對(duì)比。
4.2.1實(shí)例1
實(shí)例1中,MVB總線上總共有238個(gè)需要配置的端口,端口信息包括端口基本周期、端口數(shù)據(jù)長(zhǎng)度、端口輪詢周期、報(bào)文時(shí)間、端口描述以及手動(dòng)調(diào)整位置,為簡(jiǎn)單易懂,僅給出了端口的數(shù)據(jù)長(zhǎng)度、報(bào)文時(shí)間和輪詢周期的信息,如表1所示。其中數(shù)據(jù)長(zhǎng)度是自主定義的,報(bào)文時(shí)間是通過(guò)儀器實(shí)測(cè)出來(lái)的發(fā)送某一字節(jié)長(zhǎng)度的數(shù)據(jù)所需的時(shí)間。
表1 端口參數(shù)
從表1可以看出輪詢周期為16 ms的有10個(gè)端口,輪詢周期為32 ms 的有22個(gè)端口,輪詢周期為64 ms的有41個(gè)端口,輪詢周期為128 ms的有0個(gè)端口,輪詢周期為256 ms的有29個(gè)端口,輪詢周期為512 ms的有40個(gè)端口,輪詢周期為1 024 ms的有96個(gè)端口。將端口信息形成的配置文件導(dǎo)入軟件生成周期掃描表結(jié)果,由于端口數(shù)量多達(dá)238個(gè),因此僅能部分呈現(xiàn)兩種方法得到的周期掃描表的結(jié)果,圖5為優(yōu)化算法得到的結(jié)果,圖6為逐步填空方法得到結(jié)果。周期掃描表的第1欄顯示的是每個(gè)基本周期的序號(hào),第2欄顯示的每個(gè)基本周期的負(fù)載率,第3欄顯示的是在當(dāng)前這個(gè)基本周期的端口排序,第4欄和第5欄分別是端口數(shù)據(jù)長(zhǎng)度和端口輪詢周期。圖7和圖8分別為優(yōu)化算法得到的周期掃描表的柱狀圖表示形式和逐步填空的方法得到的周期掃描表的柱狀圖表示形式。
從圖7可以很明顯地看出負(fù)載率為0的情況較少,對(duì)負(fù)載率為0的情況進(jìn)行統(tǒng)計(jì),結(jié)果僅有57個(gè)周期負(fù)載率為0,負(fù)載率最高為61.08%,最低為16.1%,均勻度為26.11%。從圖8中可以看出負(fù)載率為0的情況較多,有172個(gè)周期負(fù)載率為0,負(fù)載率最高為62.8%,最低為30.5%,均勻度為31.14%。雖然兩種算法得到的周期掃描表均符合IEC 61375標(biāo)準(zhǔn),但是我們可以很明顯地看到優(yōu)化算法得到的周期掃描表分布更為均勻,周期負(fù)載率波動(dòng)幅度更小。
圖5 優(yōu)化算法得到的周期掃描表部分結(jié)果
圖6 逐步填空方法得到的周期掃描表部分結(jié)果
4.2.2實(shí)例2
實(shí)例2中,MVB總線上總共有219個(gè)需要配置的端口,如表2所示。其中輪詢周期為16 ms的有0個(gè)端口,輪詢周期為32 ms 的有59個(gè)端口,輪詢周期為64 ms的有26個(gè)端口,輪詢周期為128 ms的有0個(gè)端口,輪詢周期為256 ms的有43個(gè)端口,輪詢周期為512 ms的有39個(gè)端口,輪詢周期為1 024 ms的有52個(gè)端口。同實(shí)例1,將端口信息形成的配置文件導(dǎo)入軟件生成周期掃描表結(jié)果,圖9為優(yōu)化算法得到的結(jié)果,圖10為逐步填空方法得到結(jié)果,圖11和圖12分別為優(yōu)化算法得到的周期掃描表的柱狀圖表示形式和逐步填空的方法得到的周期掃描表的柱狀圖表示形式。
圖7 優(yōu)化算法得到的周期掃描表的柱狀圖
圖8 逐步填空方法得到的周期掃描表的柱狀圖
表2 端口參數(shù)
從圖11可以比較明顯地看出負(fù)載率為0的情況較少,對(duì)負(fù)載率為0的情況進(jìn)行統(tǒng)計(jì),結(jié)果僅有38個(gè)周期負(fù)載率為0,負(fù)載率最高為51. 8%,最低為33.21%,均勻度為26.6%;從圖12中可以看出負(fù)載率為0的情況較多,有49個(gè)周期負(fù)載率為0,負(fù)載率最高為51%,最低為16%,均勻度為27.47%。雖然兩種算法得到的周期掃描表均符合IEC 61375標(biāo)準(zhǔn),但是我們可以很明顯地看到優(yōu)化算法得到的周期掃描表分布更為均勻,周期負(fù)載率波動(dòng)幅度更小,能得到更高的實(shí)時(shí)性和可靠性。
圖9 優(yōu)化算法得到的周期掃描表部分結(jié)果
圖10 逐步填空方法得到的周期掃描表部分結(jié)果
圖11 優(yōu)化算法得到的周期掃描表的柱狀圖
圖12 逐步填空方法得到的周期掃描表的柱狀圖
在充分分析了MVB總線周期數(shù)據(jù)的通信方式基礎(chǔ)上,結(jié)合IEC 61375標(biāo)準(zhǔn)中關(guān)于建立周期掃描表的基本規(guī)則,提出了一種生成周期掃描表的優(yōu)化算法,該優(yōu)化算法將MVB總線負(fù)載均勻度加入約束條件,同時(shí)對(duì)每個(gè)基本周期可填入的周期數(shù)據(jù)的數(shù)量進(jìn)行了設(shè)定。將該算法和逐步填空方法對(duì)2個(gè)實(shí)例生成的周期掃描表進(jìn)行對(duì)比,從結(jié)果進(jìn)行比較分析,文中提出的算法明顯改善了周期數(shù)據(jù)負(fù)載率的分布,在均勻度方面優(yōu)于逐步填空方法,更好地實(shí)現(xiàn)了周期掃描表的均勻分布,周期負(fù)載率波動(dòng)幅度更小,有效提升列車網(wǎng)絡(luò)控制系統(tǒng)的實(shí)時(shí)性和可靠性。該算法還可以進(jìn)行人工設(shè)定優(yōu)先數(shù)據(jù),比如,在一些試驗(yàn)中,需要人為規(guī)定某些端口在周期掃描表選定的基本周期中發(fā)送數(shù)據(jù),這樣做可以在通過(guò)示波器采集波形或者通過(guò)MVB分析儀器進(jìn)一步分析數(shù)據(jù)的時(shí)候,快速找到并分析這個(gè)端口發(fā)出的數(shù)據(jù)。最后結(jié)合該算法,開(kāi)發(fā)了一款專門的周期掃描表生成軟件,并結(jié)合兩個(gè)具體的實(shí)例說(shuō)明該算法是如何完成周期掃描表的配置。