何海龍 王 明 張緋麗
(西安電子工程研究所 西安 710100)
接口控制計算機是雷達的重要組成部分,承擔著雷達內部各子系統和雷達輸入輸出信號的通信、控制等任務。隨著雷達系統的功能需求與復雜性的不斷提高,雷達的接口也日益復雜和多樣,并且對可靠性和實時性有很高的要求。雷達接口控制計算機最主要的任務就是協調主控計算機和各個子系統之間的工作。根據主控計算機的指令對雷達的方位、俯仰驅動器、敵我識別器等設備實時精確控制,接收各分系統的狀態,進行解析和上報。
在傳統方式中,主控計算機內插入各種接口板卡,通過控制接口板卡來實現對雷達設備的控制和管理?,F代雷達中接口種類多、功能復雜、實時性要求高,這些接口全部通過主控計算機直接進行控制較為繁瑣,且會降低主控計算機的效率。因而,采用主從——分布式結構,利用高性能微控制器(MCU)構建接口控制計算機來擴展主控計算機的接口是一種較理想的方式。接口控制計算機負責完成對雷達功能模塊和外部設備的管理和控制,減輕了主控計算機的工作負擔。通過10/100/1000M以太網完成與主控計算機之間的通信,使得主控計算機能夠方便、快捷并高效地訪問雷達各個模塊和設備。對于主控計算機,接口控制計算機就像它本身的一個模塊一樣,實現了接口的透明訪問。
嵌入式系統以其本身體積小,功能多,高智能等優點而逐漸地被引入到雷達控制領域。本文描述了嵌入式MCU構建的雷達接口控制計算機,著重分析、討論了采用 μC/OS-II[1]操作系統設計雷達控制接口軟件的思想和實現方法。
雷達接口控制計算機主要是以MCU和FPGA為核心,配置多種外圍接口,實現對外圍設備的控制與監視。MCU與FPGA通過擴展總線實現高速互聯,相互共享信息。在系統中FPGA主要完成開關量輸入信號去抖動,開關量輸出信號保護,以太網媒體訪問控制層(MAC)層,地址譯碼,ADC控制與數據采集,接收系統定時信號并產生同步輸出,系統安全連鎖保護等功能。MCU主要完成通信協議的封裝、解析,控制方位和俯仰驅動器,采集外設狀態并上報給主控計算機,實現CAN總線與以太網之間的轉發路由,接收GPS、陀螺、驅動器等外設的串口數據等功能。
嵌入式處理器采用TI公司最新推出的最新32位浮點數字信號控制器TMS320F28346,其核心頻率高達300MHz,集成了32位浮點處理單元,258k×16位單時鐘周期訪問單周期訪問靜態RAM(SRAM)和大量通用外設。該控制器兼顧了DSP強大的處理核心和MCU豐富的片上外設,功能強大、性能穩定可靠,片上資源豐富。
雷達接口控制計算機外圍接口包括:16路單端或8路差分16位AD、4路16位DA、16路光電隔離輸入(SI)、10路光電隔離輸出(SO)、8路RS422電平差分IO、2通道光電隔離 CAN、五通道隔離RS422串口、1路10M/100M/1G以太網、1路定時同步輸入與輸出、以及電源及濾波電路組成。完成系統通信、驅動器控制、鎖定控制、系統狀態數據采集、數據處理、敵我識別器控制、接收GPS數據與授時、產生或接收系統定時、增量碼接收等功能。系統組成圖1所示。
由于本系統的實時性要求(例如:通信接口之間的數據轉發時間小于200μs,形成陀螺反饋輸出的滯后時間小于100μs等)與復雜性,根本不可能采用查詢方式或前后臺系統保證其實時性。為此采用了μC/OS-II嵌入式多任務實時操作系統。由于嵌入式實時操作系統的引入,提高了CPU、總線等資源的利用率,從而保證了系統的實時性。
對于比較復雜的軟件系統,在軟件設計時需要遵循簡單準則、同型準則、層次準則、線型準則、易證準則與安全準則等軟件設計準則。多任務操作系統從它產生的原因到現在的廣泛應用,正是由于它簡化了編程模型,滿足了簡單、同型、層次化等準則。
在接口控制計算機中,由于系統需要同時處理多個任務,且所有任務都有嚴格的實時性要求,在MCU上運行μC/OS II嵌入式多任務實時操作系統是最優的軟件結構之一。由于多任務實時操作系統的引入,簡化了系統編程模型,降低了程序設計難度。
在多任務實時操作系統應用中,軟件設計的重點與難點是任務劃分和資源分配與共享。
任務作為多任務系統中的獨立執行單元,有獨立的CPU時間片、堆棧與內存空間,同時系統內的任務共享總的CPU時間,任務之間需要進行通信。因此合理的任務劃分是保證系統效率與實時性的關鍵。
在將軟件系統分解成并行任務時,任務的大小粒度根據任務的特性確定,如果粒度太大會影響任務的實時性;如果粒度太小會增大系統的任務切換開銷與任務管理復雜度,降低系統的效率。主要需考慮系統內功能的異步性,任務按照I/O依賴性、時間關鍵性的功能、計算量大的功能、功能內聚、時間內聚、周期執行的功能等任務劃分準則進行劃分。實時性要求高的、獨占系統資源的任務采用小的粒度,否則采用大的任務粒度。
根據接口控制計算機的應用需求,把接口控制計算機軟件劃分為接收陀螺數據任務、以太網發送數據任務、一層CAN總線發送數據任務、敵我識別器控制任務、接收詢問機數據任務、伺服控制任務、接口控制計算機故檢任務、接收以太網數據包任務、接收控制處理計算機命令任務、接收主控計算機CAN總線消息任務、接收GPS數據任務及人機交互任務。接口控制任務劃分如圖2所示。

圖2 接口控制計算機軟件任務劃分圖
一個任務的執行與掛起必須要有相應的約束條件,這些條件稱為軟件的驅動模型。常見的軟件驅動模型有數據驅動模型,時間驅動模型,事件驅動模型以及它們的混合模型。分析接口控制計算機軟件的特點,可知接口控制計算機軟件的驅動模型屬于混合模型。為了讓不同驅動模型的任務良好協作,降低系統內任務之間通信的時間開銷,任務之間通信采用全局緩沖隊列,資源的互斥使用信號量完成。實現的接口控制計算機軟件活動關系如圖3所示。

圖3 接口控制計算機軟件活動圖
在嵌入式系統中,CPU時間、堆棧空間、存儲空間、共享的I/O接口等系統資源是非常有限的,因此需要對資源進行統籌分配,提高資源利用率,從而降低系統的硬件需求,減小系統的體積與功耗。尤其是MCU內部RAM存儲空間和任務優先級的分配。
根據系統提供的資源的限制性條件,TMS320C28346的內部空間配置,應用程序對資源的需求,對其存儲空間應用分配如表1所示。
需要特別說明的是,在TMS320C28346中,堆棧空間的位置必須位于0x10000地址以下[2],否則μC/OS-II操作系統的行為不可預知。堆棧溢出時,會導致程序跳轉到未知的位置,并且很難通過應用程序對程序進行檢測,因此嵌入式多任務系統的堆棧分配是必須仔細設計。堆??臻g的大小需要根據具體任務使用情況進行調整。分配的方法是先給任務分配一個較大的堆??臻g,然后運行程序,通過μC/OS-II提供的監控程序對堆棧使用情況進行統計,根據極限情況得到堆棧的大小分配堆??臻g,分配堆棧段時必須需要留一定的安全容量。
在嵌入式多任務實時操作系統中,每一個任務都對應一個優先級,優先級高的任務可以打斷優先級低的任務的執行,搶占低優先級任務的CPU時間資源,優先執行優先級高的任務,從而保證系統的實時性。對任務進行合理的優先級分配是保證系統實時性的必要條件之一。任務優先級按照粒度小的任務優先級高、執行頻率高的任務的優先級高、獨占系統資源的任務的優先級高、有特殊實時性性能要求的任務的優先級高。根據任務劃分和任務的屬性,任務的優先級分配見表2。

表1 MCU存儲空間應用分配表

表2 任務優先級分配表
由于μC/OS-II操作系統的引入,根據系統需求進行任務劃分,每個任務都完成一個相對簡單的功能,因此方便了系統軟件設計。下面就以接收陀螺數據任務為例說明任務的設計,其余任務于此相似,不再贅述。
串口中斷服務程序接收到與陀螺通信串口的數據后,把數據寫入循環緩沖隊列,然后給出相應的信號量通知接收陀螺數據任務。接收陀螺數據任務收到串口中斷服務程序給出的信號量后,檢測接收緩沖區內的數據,按照通信協議對數據進行解析,得到陀螺速率,并根據主控計算機給出的余割補償系數和驅動器給定值,計算得到驅動器的反饋電壓和控制電壓,最后更新反饋和控制電壓到相應的DAC。接收陀螺數據任務就完成了一次接收后,等待下一次信號量的到來。接收陀螺數據任務數據流圖如圖4。

圖4 接收陀螺數據任務數據流圖
由圖4可知,由于μC/OS-II操作系統的引入極大地簡化了軟件設計,省去了單任務系統或前后臺系統中復雜的定時、數據、狀態驅動的跳轉邏輯。使得程序易于設計、檢查、維護。
本文以MCU和FPGA構建的嵌入式實時系統為對象,分析了系統中軟件設計的思想,討論了系統任務劃分的準則和資源分配的方法,方便地實現了對主控計算機的通信與控制接口實時擴展?;诖怂枷氲能浖O計方法已經成功應用于某型號雷達系統中,系統實測任務響應時間小于50μs,遠小于系統需求的100μs。實踐證明系統性能強大、實時性好、擴展性強、故障檢測與保護措施完備、工作穩定可靠。
[1]Jean J·Labrosse著,邵貝貝等譯.嵌入式實時操作系統μC/OS II[M].北京:北京航空航天大學出版社,2006.
[2]Texas Instruments.TMS320C28x Assembly Lan guage Tools v5.0.0 User's Guide[M].2007.