顧震宇,巫亞強(qiáng),李紅麗,周 楊
(西北機(jī)電工程研究所,陜西 咸陽(yáng) 712099)
隨著火炮技術(shù)的日益復(fù)雜,對(duì)隨動(dòng)系統(tǒng)的數(shù)據(jù)傳輸速率及穩(wěn)定性要求越來(lái)越高。由于傳統(tǒng)總線技術(shù)對(duì)信息的采集、傳遞效率低,逐漸不能適應(yīng)復(fù)雜武器系統(tǒng)的通信要求。因此,設(shè)計(jì)基于高速FlexRay總線技術(shù)的火炮隨動(dòng)系統(tǒng),有助于提高系統(tǒng)實(shí)時(shí)性、可靠性和快速反應(yīng)能力。
FlexRay是新一代現(xiàn)場(chǎng)總線接口標(biāo)準(zhǔn),利用兩條獨(dú)立的物理線路進(jìn)行通信,每個(gè)通信信道可提供1~10 Mbps的確定數(shù)據(jù)傳輸速率,雙通道傳輸同一數(shù)據(jù)時(shí)可實(shí)現(xiàn)硬件冗余,提高系統(tǒng)可靠性,傳輸不同數(shù)據(jù)時(shí)最大可達(dá)到20 Mbps[1]。
FlexRay總線采用了時(shí)間觸發(fā)和事件觸發(fā)的雙觸發(fā)通信方式。采用時(shí)間觸發(fā)通信時(shí),先生成網(wǎng)絡(luò)時(shí)間報(bào)表,通過(guò)報(bào)表安排,各節(jié)點(diǎn)能預(yù)先掌握將要進(jìn)行通信的時(shí)槽,接收器提前知道報(bào)文的到達(dá)時(shí)間。因此,報(bào)文在總線上的時(shí)間可以預(yù)測(cè),對(duì)總線的訪問(wèn)具有確定性。而事件觸發(fā)部分與CAN總線相同,是基于優(yōu)先級(jí)的,用來(lái)處理突發(fā)事件消息的響應(yīng)工作,提高系統(tǒng)實(shí)時(shí)特性[1]。
設(shè)計(jì)基于FlexRay總線技術(shù)的隨動(dòng)系統(tǒng),可改善消息響應(yīng)速度,確保消息準(zhǔn)確到達(dá)相應(yīng)節(jié)點(diǎn),從而提升武器系統(tǒng)整體性能。
目前隨動(dòng)系統(tǒng)中大量應(yīng)用CAN總線技術(shù),由于物理特性的局限,其傳輸速度及穩(wěn)定性逐漸下降,以下通過(guò)建模分析CAN總線和FlexRay總線的穩(wěn)定特性,證明FlexRay作為下一代通信總線的可行性。
FlexRay幀結(jié)構(gòu)包含靜態(tài)段和動(dòng)態(tài)段兩部分,其中靜態(tài)段為主要通信方式,基于時(shí)分多址技術(shù)。消息長(zhǎng)度包含:傳輸開(kāi)始序列TSS,一般為3~15位;幀開(kāi)始序列FSS,1位;幀結(jié)束序列FES,2位;每個(gè)字節(jié)為8位,但字節(jié)開(kāi)頭需要添加2位的字節(jié)開(kāi)始序列BSS,所以一共是10位;td為發(fā)送和接收過(guò)程中存在一個(gè)傳播時(shí)間延時(shí),大約為2~3位[2]。靜態(tài)段消息結(jié)構(gòu)如圖1所示。
根據(jù)靜態(tài)段消息結(jié)構(gòu)構(gòu)建模型,設(shè)置FlexRay靜態(tài)段消息傳輸時(shí)間為CF,在數(shù)據(jù)幀中數(shù)據(jù)場(chǎng)的長(zhǎng)度為Sm,位時(shí)間為τbit。
其靜態(tài)段傳輸時(shí)間計(jì)算公式為[3]:
CF=[TSS+FSS+FES+td+(8+Sm)·
(8+2)]·τbit
帶入限定范圍內(nèi)幀序列位數(shù),得到:
CF=[10+1+2+td+(8+Sm)·(8+2)]·τbit
CF=(93+td+10·Sm)·τbit
CAN通信采用事件觸發(fā)方式,根據(jù)各節(jié)點(diǎn)分配的優(yōu)先級(jí)狀況,會(huì)出現(xiàn)總線競(jìng)爭(zhēng)關(guān)系,即同消息等級(jí)因爭(zhēng)奪發(fā)送權(quán)而沖突,此時(shí),低優(yōu)先級(jí)消息必須等待延時(shí)結(jié)束,而隨著高優(yōu)先級(jí)信息增多,低優(yōu)先級(jí)消息阻塞現(xiàn)象更為嚴(yán)重。
作為與實(shí)時(shí)性密切相關(guān)的系統(tǒng),確切掌握消息的最壞響應(yīng)時(shí)間是確保系統(tǒng)正常運(yùn)行的前提,CAN響應(yīng)時(shí)間從通信事件開(kāi)始到目標(biāo)節(jié)點(diǎn)為止,包括收發(fā)節(jié)點(diǎn)內(nèi)部處理時(shí)間,從節(jié)點(diǎn)到控制器的時(shí)間,總線仲裁時(shí)間,和控制器傳入節(jié)點(diǎn)的時(shí)間。用到的參數(shù)定義如下:
Tm為啟動(dòng)通信的時(shí)間間隔;Jm為由事件發(fā)生到消息開(kāi)始送入獨(dú)立通信控制器的時(shí)間最大變化量;Cm為在總線上傳送消息m所需時(shí)間(要考慮位填充值);Dm為由應(yīng)用決定的傳送消息m允許的時(shí)限;Rm為傳送消息m時(shí)最壞等待時(shí)間。
Rm由兩部分組成:一個(gè)是低優(yōu)先級(jí)m在總線上傳輸造成的阻塞Bm,一個(gè)是高優(yōu)先級(jí)m在總線上競(jìng)爭(zhēng)控制權(quán)造成的干擾Im。當(dāng)這兩部分取最大值時(shí)就構(gòu)成了Rm的最壞等待時(shí)間。其中,lp(m)為比消息m優(yōu)先級(jí)低的消息集合;hp(m)為比消息m優(yōu)先級(jí)高的消息集合。以下利用遞推公式得出CAN總線消息最壞響應(yīng)時(shí)間[4]:
Rm=Bm+Im
(1)
Bm=max(Cl)l∈lp(m)
(2)
Im=∑((Rm+Jk+τ)/Tk)·Ckk∈hp(m)
(3)
(4)
通過(guò)FlexRay靜態(tài)段和CAN通信傳輸時(shí)長(zhǎng)公式的對(duì)比可以發(fā)現(xiàn),F(xiàn)lexRay靜態(tài)段消息傳輸不存在沖突,響應(yīng)時(shí)間基本恒定,存在的抖動(dòng)現(xiàn)象較小,在保持了系統(tǒng)響應(yīng)實(shí)時(shí)性的同時(shí),不影響系統(tǒng)穩(wěn)定性。而CAN總線消息傳輸需要競(jìng)爭(zhēng),通過(guò)遞推公式可以看出,隨著傳送消息的增加,高優(yōu)先級(jí)消息m數(shù)量增大,高優(yōu)先級(jí)信息的競(jìng)爭(zhēng)增強(qiáng),響應(yīng)時(shí)間隨邏輯時(shí)間成上升趨勢(shì),若為了滿足系統(tǒng)實(shí)時(shí)性需要,必須降低單位時(shí)間通信量,保持總線負(fù)載率不超過(guò)30%左右。
基于FlexRay的隨動(dòng)系統(tǒng)基本結(jié)構(gòu)如圖2所示,炮長(zhǎng)任務(wù)終端向總線上傳遞射擊主令,由火控計(jì)算機(jī)進(jìn)行接收,并通過(guò)捷聯(lián)慣導(dǎo)裝置傳輸?shù)亩ㄏ蚪?、姿態(tài)角和本炮坐標(biāo)位置,結(jié)合隨動(dòng)系統(tǒng)反饋的狀態(tài)信息和誤差信號(hào)計(jì)算出火炮實(shí)時(shí)掉轉(zhuǎn)指令,控制隨動(dòng)系統(tǒng)進(jìn)行調(diào)炮。
FlexRay接口適配器是隨動(dòng)系統(tǒng)與各節(jié)點(diǎn)聯(lián)系的紐帶。節(jié)點(diǎn)是一種帶有FlexRay控制器的接口,能進(jìn)行數(shù)據(jù)采集和處理,并具有信息收發(fā)功能。所有節(jié)點(diǎn)均掛接在FlexRay總線網(wǎng)絡(luò)上,通過(guò)接口適配器接入系統(tǒng)內(nèi)部,進(jìn)行調(diào)炮指令接收,完成對(duì)隨動(dòng)系統(tǒng)的控制,進(jìn)而實(shí)現(xiàn)火炮的調(diào)炮指令,見(jiàn)圖3。
FlexRay隨動(dòng)節(jié)點(diǎn)選取MC9S12XF系列單片機(jī),它是Freescale公司研發(fā)的高性能單片機(jī),總線速度可達(dá)50MHz,外圍時(shí)鐘可達(dá)40MHz,具備片上糾錯(cuò)能力,使節(jié)點(diǎn)設(shè)計(jì)可靠性得到提升[5]。由于單片機(jī)集成總線控制器功能,外圍只需加入一個(gè)收發(fā)器即可??偩€收發(fā)器選用Freescale公司的TJA1080,該模塊主要由狀態(tài)機(jī)、信號(hào)路由器、輸入/輸出管理模塊、收發(fā)模塊以及發(fā)送器組成。
當(dāng)MC9S12XF512單片機(jī)向總線上發(fā)送數(shù)據(jù)時(shí),先將數(shù)據(jù)傳送到TJAl080上,由收發(fā)器把嵌入于CPU的總線控制器的邏輯電平轉(zhuǎn)換成抗干擾能力強(qiáng)的差分電平,經(jīng)濾波和電阻匹配發(fā)往FlexRay總線網(wǎng)絡(luò);接收時(shí),F(xiàn)lexRay總線網(wǎng)絡(luò)信息經(jīng)阻抗匹配和濾波,發(fā)送到收發(fā)器的BP與BM端口,收發(fā)器接收到總線的信號(hào)后,轉(zhuǎn)換成邏輯電平,送入集成于CPU中的FlexRay總線控制器,完成接收過(guò)程,見(jiàn)圖4。
MC9S12XF512初始化設(shè)置后,讀取寄存器。一旦初始化成功,給定收發(fā)寄存器地址值,然后設(shè)置單片機(jī)內(nèi)各個(gè)寄存器地址,進(jìn)行正常的總線數(shù)據(jù)讀寫(xiě)。MC9S12XF512利用自帶FlexRay控制器判斷當(dāng)前是否有數(shù)據(jù)讀寫(xiě)。其中數(shù)據(jù)讀功能是通過(guò)判斷是否有掛起的硬件中斷實(shí)現(xiàn)的。當(dāng)MC9S12XF512收到數(shù)據(jù)時(shí),先關(guān)中斷,檢測(cè)到中斷程序后,數(shù)據(jù)信息寫(xiě)入相應(yīng)寄存器,再進(jìn)行數(shù)據(jù)處理。在無(wú)數(shù)據(jù)收發(fā)情況下,MC9S12XF512定期發(fā)送測(cè)試命令確定系統(tǒng)是否工作正常。也可以根據(jù)需要,將單片機(jī)轉(zhuǎn)入睡眠狀態(tài),節(jié)省網(wǎng)絡(luò)資源。
利用MC9S12XF512單片機(jī)實(shí)現(xiàn)隨動(dòng)系統(tǒng)通信的軟件流程如圖5所示。
隨著火炮系統(tǒng)的快速發(fā)展,F(xiàn)lexRay總線將逐漸成為取代CAN總線的新一代高速總線通信技術(shù),應(yīng)用于火炮武器系統(tǒng)當(dāng)中,使控制系統(tǒng)在速度、穩(wěn)定及可靠性方面得到提升。本文從理論數(shù)學(xué)模型出發(fā),分析了FlexRay總線穩(wěn)定性優(yōu)勢(shì),并以MC9S12XF512單片機(jī)為核心設(shè)計(jì)了基于FlexRay的隨動(dòng)系統(tǒng)接口電路,提高和改善了隨動(dòng)系統(tǒng)的實(shí)時(shí)可靠性能。
[1] 丁天寶,王剛.基于FlexRay的新型復(fù)雜武器總線體系[J].火炮發(fā)射與控制學(xué)報(bào),2011(3):60-62.
DING Tian-bao,WANG Gang.Bus system of a new complex weapon based on FlexRay[J].Journal of Gun Launch & Control,2011(3):60-62.(in Chinese)
[2] FlexRay consortium.FlexRay communication system protocol specification,version 2.1 revision A[S] 2005.
[3] YE Qiong-song,FRANCOISE SIMONOT-LION.Evaluating quality of service and behavioral reliability of steer-by-wire systems[J].IEEE Emerging Technologies and Factory Automation,2003(1):193-200.
[4] IAN BROSTER,ALAN BURNS,Probabilistic analysis of CAN with faults[J].IEEE Real-Time Systems Symposium,2002(23):269-278.
[5] Freescale Semiconductor Inc.MC9S12XF512 Reference Manua[EB/OL].(2010-05-18).Http://www.freescale.com.