公務員期刊網 論文中心 正文

VxWorks的嵌入式多協(xié)議通信控制器設計

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了VxWorks的嵌入式多協(xié)議通信控制器設計范文,希望能給你帶來靈感和參考,敬請閱讀。

VxWorks的嵌入式多協(xié)議通信控制器設計

摘要:通信控制器是地面戰(zhàn)術組網以及其他工業(yè)控制設備組網的核心節(jié)點。其目前的工程實現(xiàn)形式多為燒錄單片機加外圍電路搭建,這種方法存在很多弊端。該文提出了一種在通用硬件平臺上,借助嵌入式實時操作系統(tǒng)vxworks實現(xiàn)系統(tǒng)功能的設計方案;介紹了系統(tǒng)基本結構、基本硬件、軟件特點。設計了系統(tǒng)通信協(xié)議,重點說明了設計思路,同時給出了部分模塊的設計細節(jié)和實驗結果。

關鍵詞:多協(xié)議通信控制;VxWorks;嵌入式實時操作系統(tǒng)

0引言

通信控制器是工業(yè)和軍事領域快速組網的關鍵部分。目前武器系統(tǒng)的通信接口相對單一、滯后,形式基本停留在協(xié)議的單對單轉換,這種狀況很難滿足系統(tǒng)中各型號設備間對接以及系統(tǒng)的更新和擴展要求。實現(xiàn)方面主要基于以MCU為核心的自制電路,用匯編或C語言編寫控制環(huán)完成接口控制、數(shù)據(jù)通信。這樣的設計思路在系統(tǒng)資源、功能需求相對單一時可以勝任,如果系統(tǒng)接口多、功能復雜,對信息處理能力要求較高,解決如何管理系統(tǒng)資源(I/O、存儲器、協(xié)議棧等),在數(shù)據(jù)和資源引用上始終保持一致,并且在此基礎上高效可靠地實現(xiàn)通信控制等問題就顯得非常繁復。這時實時操作系統(tǒng)(RTOS)就變得尤其重要。實時系統(tǒng)在各高精尖技術領域迅猛發(fā)展,作為嵌入式應用軟件的基礎和開發(fā)平臺,其主要任務是對事件進行實時處理。事件可能在無法預知的時刻到達,但軟件必須在事件發(fā)生時在嚴格的時限內做出響應。VxWorks操作系統(tǒng)是美國WindRiverSystem公DOI:10.3969/j.issn.1671-1041.2022.03.001文章編號:1671-1041(2022)03-0001-04司于1983年設計開發(fā)的一種嵌入式實時操作系統(tǒng)[1],因其高可靠性、高靈活性和卓越實時性被廣泛應用在軍事、通信、航空航天等要求強實時性的領域[2],如軍事演習、彈道制導等。美國F-16、FA-18戰(zhàn)機、B-2隱形轟炸機、愛國者導彈以及97年登陸火星表面的探測器上都使用了VxWorks。在應用VxWorks的嵌入式系統(tǒng)中,網絡通信起著重要的作用,是嵌入式系統(tǒng)與其他系統(tǒng)交互的主要途徑[3]。針對目前某些武器系統(tǒng)接口需要,為了滿足多種標準接口間互聯(lián)和當前武器系統(tǒng)中各設備的接口形式,減少系統(tǒng)中相關設備數(shù)量,從根本上提高系統(tǒng)的可靠性和擴展能力,本文提出了一種基于VxWorks的嵌入式多協(xié)議通信控制器設計方案,在實現(xiàn)上述設計目標的前提下,與傳統(tǒng)設計方式相比,還具有系統(tǒng)可靠增強、開發(fā)時間縮短、系統(tǒng)升級維護方便等優(yōu)勢。

1總體設計

1.1系統(tǒng)結構

控制器為不同接口的數(shù)傳設備提供數(shù)據(jù)傳輸通路,作用相當于網絡架構中的應用網關。系統(tǒng)中設備接口包括:以太網、并口、RS232和RS422等。相關設備間數(shù)據(jù)傳輸方向符合特定應用的規(guī)定,控制器面板的屏幕實時顯示工作參數(shù),可以通過鍵盤和鼠標控制控制器的工作狀態(tài),同時具有實時存儲各種數(shù)據(jù)的能力。系統(tǒng)拓撲采用星形網,以控制器為數(shù)據(jù)交換中心,外接各種設備。具體結構如圖1。

1.2硬件平臺

本文設計的控制器基本硬件模塊采用MB890Mini-ITX。它是一塊高度集成、小功耗、大溫寬、高穩(wěn)定性的CPU模塊,提供了多個串口、USB口、并行口、VGA和LVDS等顯示卡接口,并采用了千兆以太網卡。PentiumMCPU工作主頻是1.2GHz,內存為1GB,可滿足一般數(shù)據(jù)處理和通信的要求,且支持在今后的設計中做進一步的擴展。啟動方式選擇為CF卡啟動,最終的映像文件下載到CF卡內,控制器上電自動加載運行。

1.3軟件平臺

數(shù)據(jù)處理和傳輸實時性要求較高,處理過程中不能阻塞,控制器連接多個數(shù)據(jù)設備,所以需要宏觀上發(fā)起并運行多個任務。選擇強實時系統(tǒng)VxWorks主要基于其優(yōu)秀的時間性能和可靠性。VxWorks的核心是一個高性能微內核。該內核支持所有實時功能,包括高效的實時多任務調度、中斷管理、實時的系統(tǒng)資源以及實時的任務間通信。內核最小可被裁剪到8KB,400多個相對獨立、短小精煉的目標模塊可根據(jù)需要選擇和配置系統(tǒng),保證系統(tǒng)穩(wěn)定和可靠。Wind內核的缺省調度策略是基于優(yōu)先級搶占式,同時它也提供了時間片輪轉調度。內核支持256級優(yōu)先級,一般應用程序任務的優(yōu)先級在100~255之間,控制器主要任務共有5個。一般來說,實時操作系統(tǒng)都是多任務的。Vxworks中內核調度策略、信號量、中斷服務程序等直接支持構建實時多任務系統(tǒng)。VxWorks的內核保證任務切換在μs級,I/O操作時間短,實時響應硬件中斷,保證數(shù)據(jù)傳輸和處理的實時性。VxWorks具有較清晰的層次結構。系統(tǒng)軟件部分可以分為2層,基本結構從BSP[4]開始,包括目標機加電后硬件初始化、操作系統(tǒng)初始化和一些基本硬件的驅動,它貫穿硬件、操作系統(tǒng)和上層應用,是移植系統(tǒng)到目標機的關鍵。與其他硬件的驅動程序一起,這部分都是和硬件相關的。VxWorks庫、I/O系統(tǒng)和文件系統(tǒng)等系統(tǒng)軟件,這部分和用戶的應用軟件一起構成與硬件無直接關系的軟件。該層次結構是VxWorks高效靈活的原因。由于層次結構和BSP的存在,同樣的應用模塊可以在不同的硬件平臺上移植。這對于大系統(tǒng)的擴展很有意義,同時是相比MCU加匯編這樣的傳統(tǒng)設計的優(yōu)越之處。

2通信協(xié)議設計

目標機采用X86架構CPU,機器對存儲器字節(jié)排序為小端模式(littleedian),規(guī)定系統(tǒng)中設備的數(shù)據(jù)幀格式,作為控制器處理信息數(shù)據(jù)的規(guī)則。管理機采用以太網接口,以UDP協(xié)議工作,承擔接收系統(tǒng)中其他接口設備的數(shù)據(jù)和發(fā)送本機數(shù)據(jù)至其他各設備的任務。生成的數(shù)據(jù)幀格式如圖2。前3byte指定了該數(shù)據(jù)包數(shù)據(jù)量,便于內存緩沖區(qū)開辟。Byte4標識出所要路由的目的設備,byte5留待做檢驗,之后是實際的信息byte各下位機設備所發(fā)出的數(shù)據(jù)包有統(tǒng)一的幀格式,定義如圖3。前1byte標識出數(shù)據(jù)包來源設備,后3byte表示數(shù)據(jù)幀總長度,最后是實際發(fā)送的信息數(shù)據(jù)。下位機標志位以接口類型區(qū)別,定義見表1。

3控制器軟件設計

3.1軟件結構

軟件部分劃分為BSP、內核、應用程序軟件。BSP部分主要根據(jù)目標機MB890配置相關文件。其中,最主要的是..\target\config\pcPentium\config.h,在該文件中配置啟動方式和使用的網絡控制芯片等內容,最后的映像文件(image)所包含的程序結構如下:BSP部分,嚴格說還有如網絡控制驅動部分,需要針對目標機的配置件分別編寫或修改、編譯,以打通整個硬件系統(tǒng)。內核作為硬件相關軟件,支持調度運行應用程序中的各個任務[5]。應用軟件部分則嚴格按照應用要求,分為6大模塊,如圖4。

3.2系統(tǒng)任務設計

3.2.1任務的劃分與功能描述。在實時多任務系統(tǒng)開發(fā)中,任務劃分對系統(tǒng)運行至關重要。而任務劃分存在以下矛盾:如任務太多,必然增加系統(tǒng)任務切換的開銷,同時任務間頻繁通信也會增加系統(tǒng)負擔;如任務太少,系統(tǒng)的并行度就會降低,實時性就得不到保證。任務劃分一般要遵循H.Gomma原則,即I/O原則、時間優(yōu)先級、大計算量功能、功能內聚、時間內聚和周期性執(zhí)行功能。根據(jù)H.Gomma原則,控制器主要任務劃分為:網絡檢測任務、初始化任務、網絡接收任務、數(shù)據(jù)包解析與轉發(fā)任務、接收多接口設備數(shù)據(jù)任務。分別說明如下:網絡檢測任務:主要監(jiān)測網絡狀態(tài),出錯即關閉網絡并重新初始化控制器。這個任務的優(yōu)先級定為最高,為120。它是控制器工作的基本保證。初始化任務:執(zhí)行系統(tǒng)初始化操作,初始化套接字并打開控制器上相應接口,如RS232、RS422等。創(chuàng)建消息隊列,為消息隊列創(chuàng)建實現(xiàn)同步的計數(shù)信號量。生成系統(tǒng)中其他任務,該任務優(yōu)先級為122。網絡接收任務:系統(tǒng)網絡通信的傳輸層采用UDP協(xié)議,以Socket套接字機制實現(xiàn)。任務在控制器初始化套接字后進入循環(huán),等待管理機端的數(shù)據(jù)包。此時任務處于阻塞狀態(tài),一旦數(shù)據(jù)包傳來,就將數(shù)據(jù)包送入消息隊列緩沖,然后釋放信號量。任務優(yōu)先級為124。數(shù)據(jù)包解析與轉發(fā)任務:該任務是一個循環(huán)條件為semTake()的循環(huán)任務,一旦消息隊列里有數(shù)據(jù)包,那么它就可以得到對應信號量,任務就解除阻塞,接收數(shù)據(jù)包,同時根據(jù)協(xié)議解析數(shù)據(jù),解析完后直接轉發(fā)給其他接口設備。任務優(yōu)先級為126。接收多接口設備數(shù)據(jù)任務:任務采用掛接中斷服務程序方式,等待各種接口設備,如RS232、RS422設備向控制器發(fā)送數(shù)據(jù)。根據(jù)應用對中斷安排優(yōu)先級,該任務接收數(shù)據(jù)后直接轉發(fā),因為目的地只有管理機。該任務的實現(xiàn)也可采用select機制處理。任務優(yōu)先級為124。3.2.2任務間調度與通信機制??刂破骶W絡接收任務將接收管理機端通過網口發(fā)送來的數(shù)據(jù)包,根據(jù)數(shù)據(jù)包的路由標示,選擇目的地址轉發(fā)。接收多接口設備數(shù)據(jù)任務也會監(jiān)視各接口設備是否有數(shù)據(jù)要發(fā)往管理機。這兩個任務的優(yōu)先級一樣,采用時間片輪轉調度方式。控制器有一定容量的緩沖幀數(shù),接收、解析、轉發(fā)任務并行。對于多種接口設備發(fā)來的數(shù)據(jù)幀,控制器響應中斷,接收數(shù)據(jù)。VxWorks系統(tǒng)任務間通信手段包括消息隊列、管道、信號量、共享內存、Socket套接字和信號,是協(xié)同各任務工作、控制任務時序的關鍵??刂破髦饕褂肧ocket套接字、消息隊列和信號量。網絡接收任務接收數(shù)據(jù)包,據(jù)協(xié)議約定得到數(shù)據(jù)包大小,開辟相應內存,接收完后直接發(fā)到前向消息隊列(網口至下位多接口設備),同時釋放一個信號量semMsgRecv,有數(shù)據(jù)從管理機端發(fā)來則一直接收。如果有數(shù)據(jù)來自下位設備,則啟用時間片輪轉調度。數(shù)據(jù)包解析與轉發(fā)任務等待接收量semMsgRecv,如沒有則任務阻塞,一旦開啟就從消息隊列中取出數(shù)據(jù)包解析出目的地址后直接轉發(fā)。網絡接收任務與數(shù)據(jù)包解析與轉發(fā)任務間的通信采用消息隊列,以計數(shù)器信號量作為觸發(fā),保證實時性。系統(tǒng)任務間調度和通信方式見表2。

4實驗結果

在usrAppInit.c的應用程序入口函數(shù)usrAppInit()里加入應用初始化程序,屏幕打印出Muti-Protocolcommcontrollerisreadytowork!,VxWorks加載界面正確。說明VxWorks內核已正確加載至目標機內存,BSP移植完全正確,系統(tǒng)控制流已轉至應用初始化程序。表2任務分配表Table2Taskallocationtable任務間的通信是控制器系統(tǒng)有效工作的關鍵部分,下面給出控制器網絡接收任務與數(shù)據(jù)包解析與轉發(fā)任務間數(shù)據(jù)流的部分測試結果,如圖5。對比測試數(shù)據(jù),測試結果顯示正確。

5結論

通信控制器作為一般組網的中心結點,可靠性和穩(wěn)定性至關重要。本文采用MB890CPU模塊,以VxWorks作為軟件平臺。該軟件經過美國DO-178認證,可靠和穩(wěn)定性突出。今后的專用網發(fā)展一定會向多功能、高速率、強實時方面發(fā)展。傳統(tǒng)的使用一般MCU自己搭建硬件平臺,把應用代碼和系統(tǒng)資源管理代碼混在一起的設計方法今后可能無法適應變化?;诓僮飨到y(tǒng)的設計穩(wěn)定可靠,便于代碼重用,節(jié)省開發(fā)時間。同時,代碼重用也是軟件可靠性的保證。本文給出了通信控制器在這種方式下的設計方案,說明了設計細節(jié),在專用網設計方面是一個很好的解決思路。

作者:張明利 許清清 李阿明 施群 王道 顧杰 單位:上海無線電設備研究所