李延寧,徐宏偉,吳 超,孫虎元
(1中國兵器工業第203研究所,西安 710065;2清華大學精密儀器與機械學系,北京 100084;3解放軍邊防學院,西安 7101081)
總線型通信是彈上通信網絡的發展趨勢,目前戰術導彈通訊多采用RS-422/485以及ARINC429總線實現。CAN總線作為一種現場總線,與其他總線形式相比,具有較高可靠性和性價比。
針對導彈武器系統的具體應用背景,CAN總線有如下技術優勢:
1)高可靠性。導彈使用環境惡劣,彈上電子設備分布密集,可靠性要求很高。CAN總線模塊之間僅靠雙絞線連接,減少通訊故障發生的可能性。短幀報文結構,傳輸時間短,受擾概率低,CRC校驗等檢錯措施保證數據出錯率極低。CAN總線還可以作主、備冗余設計。以上均有利于提高導彈通信系統的可靠性。
2)模塊化設計。模塊獨立設計,作為智能終端掛接到CAN總線網絡,有助于提高導彈性能,縮短武器研發時間。
3)小型化。相比點對點雙線連接,省去了模塊間的復雜接線,大大節省彈體內部空間,提高了空間利用率。
4)靈活性。CAN總線可以適應多種導彈電子設備的通信需求。通信介質可選雙絞線、同軸電纜或光纜。支持熱拔插,適于充當需要級間分離的設備節點。
彈上數據具有不均勻性、變化性、實時性強的特點,主要可以分為周期性發送的數據信息以及主控制器與各節點交互管理和協調的命令字信息。
系統主要節點包括:制導控制計算機、慣性導航組件、高度計、導引頭、彈上記錄裝置等。綜合考慮導彈控制系統對網絡結構變化、傳輸內容變化的適應性等方面的需求,采用主從式通訊協議完成控制系統的信息傳輸。整個總線系統的活動,消息傳輸的隊列,由主控計算機根據導彈控制系統的實際需要通過發送遠程請求的方式控制。

圖1 兩型彈上通信系統示意圖
CAN應用層協議規定了信息標識符分配、數據交換方法、點對點通信實現以及報文濾波機制的使用方法等。
該CAN網絡應用層幀格式采用擴展幀。短幀報文在增強傳輸可靠性的同時導致一次傳輸數據量低的問題,因此需要對報文進行拆解和拼接。利用標識符的低3位作為同一報文的不同報文段順序編號,可以在接收緩沖區內實現拼接和拆卸。
信息標識符的分配采用靜態分配策略,PeliCan模式,標識符為29位。依據報文的發送和接受節點,在圖2規定的相應位置置1,其他位置置0即得到ID11-28位,低11位用于區分相同發收節點不同報文。根據報文對實時性的要求、重要程度及發送方式(周期/單次)區分報文優先級。

圖2 信息標識符分配
數據交換方法采用遠程請求方式,由制導控制計算機通過發送遠程請求的方法控制消息傳輸的隊列,其他節點根據主節點的請求被動返回。
采用PC/104主機模擬彈上各通信節點,按照應用層協議發送數據。CANoe和示波器接入網絡分別監聽總線數據和總線波形。CAN控制器和收發器分別選用SJA1000以及PC82C250。
主從節點的軟件流程分別如圖3(a)、3(b)所示。

圖3 主/從節點軟件流程圖
CAN總線應用CSMA/CD(Carrier Sense Multiple Access with Collision Detect)即載波偵聽多路訪問/沖突檢測的方式訪問和控制總線,通過逐位仲裁的方式使有最高優先權的報文優先發送。但對于低優先級的報文而言,其在總線訪問沖突時會有一定的延時。彈上CAN總線網絡對實時性有較高的要求,一般而言,不注重實時性的網絡也不宜作為控制網絡。因此,有必要對該設計的CAN總線網絡系統的實時性進行分析。
CAN總線的發送延時主要由以下三部分組成。
串行發送延時是信息串行化的過程中產生的,與信息幀長度以及傳輸波特率有關。
相同類型的報文高波特率總線系統延時低于低波特率總線系統。
位填充機制使得CAN總線上實際消息傳輸位數大于原始位數。對于不同字節數的擴展幀,其最大填充位數:

因此擴展幀串行發送最大延時的計算公式可以由式(2)給出。

式(1)、式(2)中L均為數據幀字節長度。
硬件接口延時主要包括光耦延時和總線控制器、收發器延時以及線纜傳輸延遲。
硬件接口延時可以用如下公式表示:

其中:tr為CAN收發器延遲;tl為CAN控制器延遲;ts為其它器件(如光耦)延遲,l為節點間總線長度,δ為傳輸介質傳播延遲。一般而言,器件延時和總線傳輸延時均在十納秒數量級,硬件接口延時相比串行發送延時為一個較小的時間值。
根據CAN規范2.0B,CAN總線可以視作一個帶優先級的排隊系統。其模型可以作如下簡化:
1)輸入過程{M(t),t≥0}為 Poisson流,平均到達速率為λ,顧客(報文)源的個數為無窮;
2)對每個顧客的服務時間{vn,n=1,2,…}相互獨立且都服從負指數分布,平均服務時間E(vn)=1/μ,其中μ>0,表示單位時間內服務完的平均顧客數(由總線波特率決定);
3)單服務員,非搶占式;
4)優先級高的顧客比優先級低的顧客先得到服務沒有顧客從隊列中被丟失。
對該排隊系統,具有i優先級的報文的等待時間為(該時間包括服務和等待時間,即包含了2.1中的串行發送延遲):

對于該彈上CAN總線網絡而言,共有優先級不同的53條周期性報文,更新周期為10ms(考慮最嚴酷情況,到達速率均為λ=100幀/s)。根據報文長度和總線傳輸波特率的不同,總線對各條報文的服務時間各不相同。σ表示系統各報文服務強度的和,當該值大于1時,表示系統已經飽和。
理論計算表明,在500k的波特率下,系統僅支持前41條優先級報文的傳輸,53條報文會導致總線阻塞(在實際總線仿真中驗證發現500k波特率下總線網絡會出現丟幀情況)。計算表明系統正常通信所需要最低波特率為638k。如圖4所示,當總線報文數量較小時,總線波特率對總線延時影響不大;隨著報文數量增多,波特率對低優先級報文延時影響逐漸凸顯。1M波特率下的最大延時小于600μs,800M波特率下的最大延遲則超過2700μs。當然,排隊論分析得到的最大延遲是考慮了所有最差條件的情況,出現這種延遲情況的概率是很低的。

圖4 不同波特率下理論計算的媒體訪問延遲
基于所建立的彈上CAN總線網絡,對該總線網絡協議進行了仿真驗證。總線波特率分別設定為500k,800k和1000k,得到總線負載分別為 81.81%,51.14%以及41.10%。在500k波特率下,總線負載率過高,系統出現阻塞丟幀。提高波特率有效降低了總線負載,在800k和1000k波特率下,總線節點之間通信正常,沒有阻塞和丟幀現象的發生。
在該網絡的基礎上,增加一個節點用于測量該節點向總線上發送一幀優先級最低的報文(ID:0x02020801數據幀長度為8個字節)時,報文從申請發送到發送成功的延遲時間。延遲時間的測量通過軟件計數器的方式實現,總共進行5000次發送,測得在不同波特率下該ID報文的發送延遲時間的概率分布如圖5所示。可見,當總線負載較低時,總線空閑,該幀報文能夠被立即發送的概率較高;隨著總線負載的升高,該幀報文送到總線時出現總線沖突的可能性增加,延遲時間的概率分布向坐標橫軸右側移動,出現較長延時的概率增加。
實測不同總線波特率,不同總線負載下該通信網絡的最大延遲時間如表1。500k波特率最大負載時已出現了總線阻塞丟幀,這里不再討論。800k和1M情況下,當不存在總線沖突的情況下,延遲時間僅包括串行發送延時和硬件接口延時,分別為170~180μs、90~100μs左右。該數值與排隊論方法計算得到的最高優先級報文的延遲時間(122μs-800k,78μs-1000k)基本一致。5000次發送測試環境下,800k和1M波特率下的實測最大延遲時間分別為508μs和292μs,遠小于最低10ms的數據發送周期。

圖5 實際測量的最低優先級報文發送延遲時間概率分布

表1 實際測量的最低優先級報文發送延遲時間
基于某型戰術空地導彈控制系統,對彈上CAN總線網絡的應用層網絡協議和底層軟硬件進行了設計。對設計的CAN總線網絡系統的實時性進行分析表明:影響CAN總線網絡實時性的因素主要包括串行發送延時、硬件接口延時以及介質訪問延時。采用非搶占優先級的M/M/1排隊論模型研究了該總線系統的介質訪問延時,理論計算表明:對該設計的彈上CAN總線網絡,800k、1000k波特率下理論最大延遲分別約為2700μs和600μs。在實際應用中,還可以通過優化負載分布,采用動態調度算法等手段進一步減小總線延遲時間。
基于該CAN總線網絡的仿真驗證表明:800k和1000k波特率下該總線網絡能夠正常工作。實際測得800k和1000k波特率下該總線網絡的最大延遲時間分別為508μs和292μs,該時間延遲遠小于應用層協議中最低10ms的數據發送周期,能夠滿足系統的實時性要求。
[1]龍志強,李迅,李曉龍,等.現場總線控制網絡技術[M].北京:機械工業出版社,2011.
[2]陳曦,劉魯源,呂偉杰,等.基于排隊論的CAN總線消息響應時間建模分析[J].天津大學學報,2012,45(3):228-235.
[3]張向文,許學雷,吳林瑞.CAN總線系統信號傳輸延時分析[J].導彈與航天運載技術,2006(3):48-51.
[4]劉向明,方建安.CAN總線網絡的實時性研究改進[J].現代電子技術,2011,34(22):46 -49.
[5]侯書明,徐德民,許化龍.CAN總線技術在導彈控制系統中的應用[J].彈箭與制導學報,2006,26(1):701-704.
[6]DATASHEET—SJA1000[Z].PhilipsSemiconductors,1997.