穆加艷,羅 睿,劉 赟,潘麗麗
(中國船舶重工集團公司第七二四研究所,南京 210003)
隨著雷達性能的不斷提高,雷達分系統(tǒng)規(guī)模逐步擴大,對雷達系統(tǒng)整機操控及故障檢測系統(tǒng)的要求在逐步提高,同時雷達的整機監(jiān)控系統(tǒng)對智能化、實時化方面的要求也在快速提高。過去大部分監(jiān)控系統(tǒng)主要采用RS-485 總線,只定義了一些電器特性,無完整的協(xié)議規(guī)約,系統(tǒng)的實時性、通訊的可靠性、傳輸距離均已難以滿足當今雷達發(fā)展的要求?;?85 總線的監(jiān)控系統(tǒng)只能有一個主站,其余為從站,這樣的系統(tǒng)就無法構成多主結構或冗余結構的系統(tǒng)。CAN 總線是一種具有國際標準的現(xiàn)場總線,應用非常廣泛。CAN的協(xié)議對應于OSI 模型里的物理層和數(shù)據(jù)鏈路層的功能服務,其最高通訊速率可達1 Mbit/s (最大總線長度40 m),任意2個節(jié)點之間的最大距離可以達到10 km(通訊速率為5kbit/s)。CAN 總線在傳輸層上有檢錯等措施,提高了可靠性。CAN 總線是一種多主機的總線,組網(wǎng)很靈活。它突破了RS-485 通信網(wǎng)絡的單主機局限,具有多主機工作方式,是一種多主機的串行通訊局域網(wǎng)絡,能有效地支持具有很高安全等級的分布式控制和實時控制,可同時掛110個智能節(jié)點。
CAN 總線的高性能、高可靠性和實時性等特點使得CAN的應用范圍越來越廣泛。它還具有抗干擾能力強和布線簡單的特點,能夠適合雷達的整機操控和故障檢測系統(tǒng)的要求。雷達系統(tǒng)實時性要求比較高,各個分控制節(jié)點能夠在較短時間限度內(nèi)互相交換數(shù)據(jù),以保證整個系統(tǒng)控制不會有明顯的滯后。
CAN 協(xié)議有兩層,分別為物理層和傳輸層。傳輸層是CAN 協(xié)議的核心部分,主要功能是接收物理層的報文,負責定時及同步、報文分幀、仲裁、應答、錯誤檢測和標定、故障界定。CAN節(jié)點的層結構如表1所示。
表1 CAN節(jié)點的層結構
CAN的報文分標準格式和擴展格式兩種不同的幀格式。標準的CAN 格式有11 位標識符,擴展格式有29 位標識符。本文設計的系統(tǒng)采用擴展格式。幀類型有數(shù)據(jù)幀、遠程幀、錯誤幀和過載幀等4 種。數(shù)據(jù)幀將數(shù)據(jù)從發(fā)送器傳送到接收器。總線單元發(fā)出遠程幀,請求發(fā)送具有統(tǒng)一識別符的數(shù)據(jù)幀。任何節(jié)點單元檢測到錯誤就發(fā)送錯誤幀。過載幀用來在先行的和后續(xù)的數(shù)據(jù)幀(或遠程幀)之間提供一個附加的延時。
數(shù)據(jù)幀由7個不同的位場組成,即幀起始、仲裁場、控制場、數(shù)據(jù)場、CRC 場、應答場和幀結尾。幀起始(標準格式和擴展格式)標志數(shù)據(jù)幀和遠程幀的起始,僅由一個“顯性”位組成,只在總線空閑時才允許其他節(jié)點開始發(fā)送(信號)。所有的節(jié)點必須同步于首先開始發(fā)送報文的站的幀起始前沿。標準格式幀與擴展格式幀的仲裁場格式不同。在標準格式里,仲裁場由11 位識別符和RTR 位組成。ID-28~ID-18為識別符位。在擴展格式里,仲裁場包括29 位識別符、SRR 位、IDE 位和RTR 位。ID-28~ID-0為其識別符。為了區(qū)別標準格式和擴展格式,之前版本CAN 規(guī)范1.0-1.2的保留位r1 現(xiàn)表示為IDE Bit。標準格式識別符的長度為11 位,相當于擴展格式的基本ID(Base ID)。這些位按ID-28 到ID-18的順序發(fā)送。最低位是ID-18。7個最高位(ID-28~ID-22)一定不能全是“隱性”。擴展格式的識別符由29 位組成,其格式含兩個部分:11 位基本ID和18 位擴展ID。數(shù)據(jù)場(標準格式及擴展格式)由數(shù)據(jù)幀里的發(fā)送數(shù)據(jù)組成,可以為0~8個字節(jié),首先發(fā)送MSB。
CAN 總線的數(shù)據(jù)以信息幀的形式按位串行傳送??偩€空閑時,任何節(jié)點都能發(fā)送報文。一次只傳送一幀數(shù)據(jù),由幀起始、仲裁域、控制域、數(shù)據(jù)域、校驗域、應答域和結束域組成一幀信息。
本文報文是指在CAN 總線系統(tǒng)中傳輸信息的有效部分,包括信息的標識符和數(shù)據(jù),可由一個或多個信息幀的有效數(shù)據(jù)部分組成。
網(wǎng)絡拓撲結構采用總線型結構,可靠性高,增加和減少站點都很方便??偩€型結構信息按組發(fā)送,所有節(jié)點共享一個通道,當多點同時發(fā)送數(shù)據(jù)時就有沖突產(chǎn)生。CAN 通過使用標識符的逐位仲裁來解決總線訪問沖突,確保了報文和時間均不損失。CAN的報文是具有優(yōu)先權的。在該系統(tǒng)里,操控報文的優(yōu)先權高于故障檢測報文的優(yōu)先權。在有總線沖突的時候,有較高優(yōu)先權報文的節(jié)點可以獲得總線的訪問權。
在系統(tǒng)的可靠性方面,采用動態(tài)冗余技術,兩套系統(tǒng)同時、同步運行。當聯(lián)機子系統(tǒng)檢測到錯誤時退出程序進行維修;另外的一個熱備份系統(tǒng)還在運行,備用模塊在待機過程中其失效率為零。
本文設計的分布式監(jiān)控系統(tǒng)采用8051 單片機和CAN 控制器SJA1000 設計。SJA1000 是一種獨立的CAN 控制器,支持CAN2.0B 協(xié)議,溫度適應范圍為-40 ℃~+125 ℃。系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)的總體框圖
上位監(jiān)控機是基于X86的嵌入式VxWorks 系統(tǒng),負責對系統(tǒng)各節(jié)點控制命令的發(fā)送以及各控制單元狀態(tài)故障的實時顯示。
終端CAN節(jié)點(CAN節(jié)點0和CAN節(jié)點1)的功能有兩個:一個是作為上位監(jiān)控機與CAN 總線的接口,完成雷達的操控信息的轉發(fā);另一個是對其他節(jié)點傳送過來的采集信息進行故障分析,判斷故障并發(fā)送故障信息給上位監(jiān)控機。終端CAN節(jié)點有兩個,為冗余備份的,這主要是利用CAN的多主機的特性。
其他CAN節(jié)點(CAN節(jié)點2-N)是接收終端CAN節(jié)點的控制信息及采集分機的數(shù)據(jù)上報給終端CAN節(jié)點。
每個CAN節(jié)點的板卡采用統(tǒng)一的標準設計,單片機程序也相同。當每個CAN節(jié)點的板卡裝在分機里時,會根據(jù)分機里的撥碼開關的設置來自動識別位于哪個分機。
雷達控制系統(tǒng)的應用層通信協(xié)議采用“節(jié)點ID+命令+數(shù)據(jù)+校驗”的形式。標識符ID.21~ID.28 固定作為命令,不參與驗收濾波。數(shù)據(jù)則表示通信的具體內(nèi)容。校驗為一個字節(jié),采用校驗和的形式。由于CAN 總線本身具有15 位CRC 校驗,理論上其校驗強度應該完全可以滿足本系統(tǒng)對通信可靠性的要求,但在實際應用中并非如此,所以增加一個校驗位進行端端差錯控制。聯(lián)網(wǎng)通信流程圖如圖2所示。
圖2 聯(lián)網(wǎng)通信示意圖
終端CAN節(jié)點發(fā)送操控報文,分機CAN節(jié)點接收到后寫相應的內(nèi)容到寄存器,并回送操控報文;終端CAN節(jié)點收到回送的報文就說明操控成功,否則就重發(fā)該操控報文;重發(fā)3 次,如果3 次都不成功,就上報上位監(jiān)控機操控失敗。
終端CAN節(jié)點發(fā)送故障詢問報文,分機CAN節(jié)點接收到后把采集的數(shù)據(jù)信息發(fā)送給終端CAN節(jié)點;終端CAN節(jié)點收到數(shù)據(jù)信息就作故障分析;如果在一定的時間內(nèi)沒有收到數(shù)據(jù)信息,就上報該分機的通信故障,偶爾有丟包的,就報上次的故障信息給上位監(jiān)控機。
系統(tǒng)硬件設計采用8051 單片機和CAN 控制器SJA1000,包括兩個終端以及伺服、信號、發(fā)射各分系統(tǒng)。
硬件板卡里的單片機和SJA1000 連線圖見圖3。
圖3 單片機和SJA100的連接圖
單片機軟件設計采用C 語言,開發(fā)工具為Keil C51。軟件設計時,充分考慮系統(tǒng)的安全性和可靠性,以及系統(tǒng)的實時響應能力。在安全性方面,除了CAN總線本身的錯誤檢驗措施外,還增加了1個數(shù)據(jù)校驗位的方式。在可靠性方面,采用動態(tài)冗余技術,兩套系統(tǒng)同時、同步運行。
主程序的功能是初始化全局變量和初始化SJA1000 控制器,根據(jù)節(jié)點的編號調(diào)用相應的模塊。主程序流程圖如圖4所示。
圖4 主程序框圖
圖5 終端CAN節(jié)點功能模塊的流程圖
RS232 串口通信采用波特率為19200bps,CAN 控制器采用PeliCAN 模式,波特率設置為100kbps。終端CAN節(jié)點功能模塊的流程圖如圖5。
本文設計的系統(tǒng)是基于CAN 總線的分布式監(jiān)控系統(tǒng),每個CAN節(jié)點以單片機為核心,利用CAN 控制器來收發(fā)數(shù)據(jù)。與傳統(tǒng)基于RS-485 總線的監(jiān)控系統(tǒng)相比,該系統(tǒng)數(shù)據(jù)傳輸率高,可靠性極高,抗干擾能力強,具有非破壞性總線仲裁,支持競爭,在實際中已經(jīng)得到了廣泛應用,取得了較好的效果。該系統(tǒng)的穩(wěn)定性以及實時性都得到了驗證。
[1]饒運濤,鄒繼軍,王進宏,等.現(xiàn)場總線CAN 原理與應用技術[M].北京:北京航空航天大學出版社,2003.
[2]王幸之,王雷,鐘愛琴,等.單片機應用系統(tǒng)抗干擾技術[M].北京:北京航空航天大學出版社,2000.