摘 要: 雷達中繼級設備是連接雷達設備與管制中心的關鍵設備,,但目前對該類設備的故障檢測還沒有行之有效的方法,。針對這一問題,提出了一種可以快速定位中繼級設備故障的解決方案,。重點闡述了方案中設備的數(shù)據(jù)流模型,、用戶空間軟件設計以及底層驅動程序設計三個方面的內容。試驗結果表明,,該設備可以幫助技術人員有效提高雷達中繼級設備故障檢測效率,。
關鍵詞: 串行通信;tty設備驅動,;故障診斷,;信號檢測
電子技術和計算機技術的迅速發(fā)展推動了雷達技術的發(fā)展。雷達憑借其發(fā)現(xiàn)目標距離遠,、測定目標坐標速度快,、能全天候工作等優(yōu)良特性在警戒、引導,、武器控制,、偵察等方面得到廣泛應用,成為現(xiàn)代戰(zhàn)爭中的重要電子裝備[1],。但雷達中繼設備一旦發(fā)生故障將使這些優(yōu)良特性受到嚴重影響,,據(jù)統(tǒng)計,中繼故障設備占所有故障設備的70%左右,,而中繼設備維修的基礎建設還很薄弱,,缺乏集成、高效的故障檢測手段,。然而,中繼級信號檢測設備具有雷達數(shù)據(jù)轉發(fā),、信號模擬,、接口協(xié)議分析,、鏈路質量檢測等功能,可以滿足中繼設備維修的要求,。
Z85230是Zilog公司生產的比較成熟的串行通信控制芯片,,支持的協(xié)議豐富、操作方便,,是該設備的關鍵部件,。嵌入式處理器AT91RM9200本身集成了豐富的外設,成本低,、體積小,、功能強,是中繼信號檢測設備的控制器[2-4],。
1 設備的功能要求
中繼信號檢測設備(以下簡稱檢測設備)具有以下功能:
(1)3個10/100 Mb/s對外網(wǎng)口,,方便參數(shù)配置和接入雷達服務器主機;
(2)4個串行接口,同時支持HDLC/BSC/ASYNC,可接入不同的雷達或中繼設備,,接口最高速率達115 200 b/s,;
(3)支持網(wǎng)口到串口、串口到網(wǎng)口的雙向數(shù)據(jù)轉發(fā),;
(4)能夠檢測雷達設備的接口協(xié)議,;
(5)能夠檢測中繼級設備的鏈路質量。
2 硬件平臺
維修平臺采用C/S設計模式,,如圖1所示,。在硬件方面采用ARM處理器AT91RM9200作為檢測設備的控制器,是控制模塊的核心器件,;Z85230構成檢測設備的串口模塊,。
3 嵌入式軟件設計與實現(xiàn)
3.1 數(shù)據(jù)流模型及其分析
根據(jù)設備的功能要求將檢測設備的數(shù)據(jù)流分為兩大類:(1)航空管制中心用戶對設備的配置數(shù)據(jù)流,雙方按照約定的通信協(xié)議發(fā)送配置和響應信息,;(2)雷達信息數(shù)據(jù)流,,可由雷達數(shù)據(jù)服務器主機發(fā)起,也可以由雷達中繼級設備發(fā)起,。前者屬于雷達數(shù)據(jù)的回放過程,,雷達數(shù)據(jù)從雷達主機經(jīng)檢測設備回放出來;后者屬于雷達數(shù)據(jù)的錄制過程,,數(shù)據(jù)經(jīng)檢測設備最后轉發(fā)給雷達數(shù)據(jù)分析軟件,。如圖2所示。
3.2 軟件模塊劃分及其實現(xiàn)
按照功能將檢測設備的軟件部分劃分為通信模塊,、配置模塊,、轉發(fā)模塊、協(xié)議分析模塊,、IP地址搜索模塊和底層驅動模塊,。其中IP地址搜索模塊屬于單獨的模塊,,與其他模塊沒有關系。模塊間關系如圖3所示,。
3.2.1 通信模塊
該模塊的主要功能包括:(1)偵聽來自配置管理軟件的連接請求,;(2)接收來自配置管理軟件的配置命令;(3)接收來自網(wǎng)口的雷達數(shù)據(jù),;(4)將配置命令的執(zhí)行結果以及協(xié)議分析模塊的分析結果發(fā)送給配置管理軟件,;(5)設備關閉或重啟時對內存進行清理。
配置命令通過以太網(wǎng)傳輸,,延遲相對較大,。為降低配置命令的發(fā)送延遲和接收延遲,設置發(fā)送器直接從用戶空間獲取數(shù)據(jù),,接收器直接將數(shù)據(jù)交付給用戶空間緩存,,而不經(jīng)過中間緩存。
3.2.2 配置模塊
配置模塊用于解析和執(zhí)行配置命令,,并將執(zhí)行結果交付給通信模塊最終發(fā)送給配置管理軟件,。串口配置命令是該模塊中最重要的命令,該命令用于對串口參數(shù)進行配置,,直接影響到串口能否正常工作,。該命令將串口配置參數(shù)傳輸給底層驅動,數(shù)據(jù)量相對較大,,不能使用get_user()和put_user()等少量數(shù)據(jù)傳輸函數(shù),。本文采用ioctl命令配合copy_from_user()和copy_to_user()函數(shù)實現(xiàn)用戶空間與內核空間之間的大量數(shù)據(jù)交換。串口配置命令的關鍵代碼如下:
//用戶空間關鍵代碼
int SerialPortConf(int fd_sock,Conf_cmd *cmd){
……
sprintf(dev_name,"%s%d",devBaseName,index);
fd_serial=open(dev,O_RDWR);
ioctl(fd_serial,TIOCCONFIG,cfg_data);//調用ioctl
close(fd_serial);
……}
//內核空間關鍵代碼
int z85230_ioctl(struct tty_struct *tty,struct file * file,
unsigned int cmd,unsigned long arg){
……
switch(cmd){
case TIOCCONFIG:
copy_from_user(confBuf,(void __user*)arg,CONFIG_SIZE);
//拷貝數(shù)據(jù)到內核空間
z85230_config_format(info->pChannel,confBuf,regTable);
//格式化配置信息
//根據(jù)配置信息配置Z85230
z85230_config(info->pChannel,regTable);
break;
……}}
3.2.3 轉發(fā)模塊
轉發(fā)模塊按照雷達中繼檢測設備的數(shù)據(jù)流模型將數(shù)據(jù)轉發(fā)到網(wǎng)口或者串口,,其中轉發(fā)到網(wǎng)口的數(shù)據(jù)流按照轉發(fā)表的設置進行,,轉發(fā)到串口的數(shù)據(jù)流按照數(shù)據(jù)幀標示進行。本文中為每一個串口建立兩個線程,,分別負責發(fā)送,、接收和封裝成幀的工作。
3.2.4 協(xié)議分析模塊
在配置管理軟件的配合下,,該模塊實現(xiàn)從未知雷達協(xié)議的串行鏈路中推斷出雷達協(xié)議,。一則便于對未知雷達協(xié)議的串行鏈路進行故障診斷;二則便于對中繼設備的參數(shù)進行配置,。本項目中使用兩片CPLD對各串口各引腳的狀態(tài)進行采集,,并將采集結果發(fā)送給配置管理軟件,由配置管理軟件對采集結果進行分析推斷,,最后再將推斷的結果發(fā)送給檢測設備作為協(xié)議分析的基參數(shù),,檢測設備在此基礎上重新采集各引腳的狀態(tài),重復以上過程即可逐漸接近雷達協(xié)議。
3.2.5 IP地址搜索模塊
航空管制中心的中繼設備一般以IP地址作區(qū)分,,隨著規(guī)模的不斷擴大,,人工管理將逐漸變得異常困難且效率低下,。該模塊通過響應配置管理軟件的地址搜索指令,,將設備的基本信息發(fā)送給配置管理軟件,因此在未知設備IP地址的前提下也能對設備進行配置管理,。本項目中,,在檢測設備端啟動一個進程負責偵聽來自網(wǎng)絡的地址搜索指令,當識別到搜索指令后該進程將設備的基本信息以廣播的形式發(fā)送出去,。
3.2.6 底層驅動模塊
檢測設備要求同時支持多種鏈路控制協(xié)議,,這是驅動程序設計的關鍵。本項目采用Linux下tty設備驅動程序框架結構[5],,該結構封裝了通用的設備訪問接口,,只需編寫鏈路規(guī)程和硬件驅動即可方便地對設備進行控制。以下是Z85230的中斷處理和tty驅動程序的設計,。
(1)中斷處理函數(shù)的設計
Z85230芯片的每個通道都有3個中斷源,,按照中斷優(yōu)先級由高到低分別為:接收中斷、發(fā)送中斷,、外部/狀態(tài)中斷,。另外A通道中斷源優(yōu)先級高于B通道。中斷處理流程如圖4所示,。
(2)構建tty驅動程序
tty驅動程序最重要的數(shù)據(jù)結構是tty_driver,,它用于向tty核心注冊和注銷驅動程序,該結構提供了tty驅動程序最重要的信息,。為獲得tty_driver對象,,首先調用alloc_tty_driver(),該函數(shù)向tty核心申請并返回指向tty_
driver對象的指針,。
初始化tty_driver對象之后,,調用函數(shù)tty_register_driver(driver),并傳遞初始化的tty_driver對象,,即可向tty核心注冊該驅動,。
最后一步是注冊中斷服務程序,本項目中兩片Z85230分別連接在兩條不同的中斷線上,,因此需將中斷處理函數(shù)注冊到不同的中斷號上,。調用Linux內核中斷注冊函數(shù)request_irq()即可完成中斷注冊過程。
request_irq(z85230_irqs,z85230_interrupt,SA_INTERRUPT,"Z85230_SERIAL",&z85230_devs);
注意:z85230_devs為觸發(fā)中斷的設備,;z85230_irqs為中斷號,,兩芯片需單獨注冊;z85230_interrupt為中斷處理函數(shù)。
4 設備功能測試
4.1 轉發(fā)功能測試
測試過程:首先使用配置管理軟件對設備的串口進行配置,,參數(shù)如表1所示,。
4.2 協(xié)議分析功能測試
測試過程:將串口1連接到雷達情報服務器的輸出端口,啟動協(xié)議分析功能,,對情報服務器的輸出端口的數(shù)據(jù)協(xié)議進行分析,,協(xié)議分析過程如圖6所示。
雷達中繼信號檢測設備改變了中繼級設備傳統(tǒng)的手工故障定位方式,,在配置管理軟件的配合下可以有效地幫助技術人員快速定位故障設備,。將檢測設備的不同功能組合起來不僅可以實現(xiàn)中繼級設備鏈路質量的檢測,還可用于非雷達中繼級串行設備信號的檢測,。檢測設備的協(xié)議分析功能目前還不完善,,只能識別出通信協(xié)議類型、通信角色等,。對波特率,、同步字符還不能正確識別,,必須人工或配置軟件干預,,還需要進一步完善,。
參考文獻
[1] 邱榮欽.雷達技術的發(fā)展[J].電子科學技術評論,2005(3):1-6.
[2] 郝福珍,,李天萬,,王江少.基于Z85230的雷達情報服務器的設計[J].計算機工程與應用,2009,,45(10):76-79.
[3] Zilog Inc.Z85230/Z80230 enhanced serial communications controller[S].2002.
[4] Atmel Corporation.ARM920T-based microcon-troller AT91RM9200 datasheet[S].2009.
[5] JONATHAN C,,ALESSANDRO R,GREG K H,,et al.Linux設備驅動程序(第3版)[M].魏永明,,耿岳,鐘書毅,,譯.北京:中國電力出版社,,2006.