国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VxWorks實時操作系統(tǒng)的多串口通信系統(tǒng)的實現(xiàn)

2013-06-05 13:30劉亙煒
火控雷達技術(shù) 2013年1期
關鍵詞:子類實時性串口

雷 瑛 劉亙煒 張 安 張 磊

(西安電子工程研究所 西安 710100)

1 引言

VxWorks是一個具有微內(nèi)核、可裁剪的高性能強實時操作系統(tǒng),它以其良好的可靠性和卓越的實時性被廣泛地應用在工業(yè)控制、醫(yī)療器械、航空航天以及國防電子等高精尖技術(shù)及實時性要求極高的領域中[1]。相對于RS-232串口,RS-422串口具有抗干擾能力強、通訊速率高、通訊距離遠等特點,在嵌入式實時操作系統(tǒng)中使用串口通信,不僅可擴展嵌入式設備通信能力,而且可擴大其應用范圍。

2 VxWorks簡介

VxWorks是美國Wind River System公司推出的一個嵌入式實時操作系統(tǒng),主要特點有:

a.微內(nèi)核Wind具有快速多任務切換、搶占式任務調(diào)度、中斷延遲小、任務間通信手段多樣化、網(wǎng)絡流量大等特點。b.VxWorks系統(tǒng)具有良好的可裁減能力,用戶可根據(jù)自己系統(tǒng)的功能目標通過交叉開發(fā)環(huán)境方便地設置。c.支持應用程序的動態(tài)鏈接和下載,縮短了編輯和調(diào)試的周期。d.具有良好的兼容性,在不同運行環(huán)境間可以方便的移植,減少了開發(fā)周期和經(jīng)費。

3 設計思想

3.1 背景需求

某多功能雷達為有效適應復雜作戰(zhàn)任務和戰(zhàn)場環(huán)境,多個分系統(tǒng)之間均有數(shù)據(jù)量較大的實時通訊,并要求響應時間快,處理迅速。系統(tǒng)硬件設計選用定制方式將計算機模塊和大規(guī)??删幊唐骷﨔PGA作在一塊印制板上,采用F81218多串口芯片擴展了6個標準RS422串口,將2個計算機自帶的可設串口也設為標準RS422串口,系統(tǒng)硬件原理圖如圖1所示。軟件采用VxWorks 5.5開發(fā),能很好地解決以上問題。

圖1 系統(tǒng)硬件原理圖

3.2 BSP修改

VxWorks 5.5附帶的BSP版本為1.2.3,該版本BSP已經(jīng)內(nèi)置串行通訊接口的驅(qū)動,但是默認僅能驅(qū)動大多數(shù)主板附帶的COM1和COM2兩個串口,為了滿足該項目應用需求,需要修改BSP,以添加對COM3~COM8串行接口的驅(qū)動支持,修改如下:

a.在VxWorks內(nèi)核組件中加入hardware→periphe→serial中所有組件;

b.在BSP文件夾pc.h文件里加入8個串口對應地址:

添加串口中斷號定義,其中COM3~COM8共享5號中斷:

c.在 sysSerial.c文件的表 I8250-CHAN-PARAS devParas[]中加入對新添加串口設備的映射:

添加中斷服務程序?qū)蚕碇袛嗟奶幚韀2]:

若以上添加成功,在 VxWorks啟動后可以用devs命令查詢到新添加的串行設備。

3.3 軟件設計

VxWorks對于串口的操作是通過I/O系統(tǒng)提供的 create、open、read、write、close、delete、ioctl等控制接口實現(xiàn),分別完成串口創(chuàng)建、串口打開、讀串口、寫串口、關閉串口、刪除串口,串口設置等操作[3]。串口基類完成對串口基本參數(shù)的設置及工作流程的構(gòu)建,各個子類與基類不同的處理過程通過純虛函數(shù)重載來添加。根據(jù)不同標志(FLAG),轉(zhuǎn)入相應的串口子類程序。系統(tǒng)軟件模塊圖如圖2所示。

圖2 系統(tǒng)軟件模塊圖

串口通信協(xié)議如下所示:

4 程序示例

4.1 基類串口初始化

在基類中完成對所有串口基本工作參數(shù)如工作模式、設備控制字、輸入輸出緩沖區(qū)等的設置,程序舉例如下[4]:

4.2 基類啟動串口接收和處理數(shù)據(jù)線程

在基類中定義串口收數(shù)任務(任務1)和串口數(shù)據(jù)處理任務(任務2)。串口收數(shù)任務實時監(jiān)測串口是否有數(shù)據(jù)到來,一旦監(jiān)測到有數(shù)據(jù)則全部讀取并交由數(shù)據(jù)封包函數(shù)按照通訊協(xié)議根據(jù)字頭、數(shù)據(jù)長度打包;數(shù)據(jù)封包函數(shù)一旦收滿一包數(shù)則釋放信號量通知串口數(shù)據(jù)處理任務。串口數(shù)據(jù)處理任務一旦獲取信號量則根據(jù)FLAG不同轉(zhuǎn)入相應的串口子類數(shù)據(jù)解析函數(shù)根據(jù)數(shù)據(jù)類型的不同進行相應的處理,程序舉例如下:

4.3 基類寫串口

將傳進來的數(shù)據(jù)寫入相應的串口,程序舉例如下:

4.4 A子類構(gòu)造及重載函數(shù)

在串口子類構(gòu)造函數(shù)中定義FLAG的具體值;在子類重載函數(shù)Open()中調(diào)用基類串口初始化函數(shù)重新定義該串口特有的一些工作參數(shù);在子類重載函數(shù)parse(const BYTE* pBYTE,const int size)中對傳進來封好包的數(shù)據(jù)進行進一步解析,根據(jù)數(shù)據(jù)類型的不同轉(zhuǎn)到相應的處理函數(shù)進行處理。Open()和 parse(const BYTE* pBYTE,const int size)在基類中設置為可重載的純虛函數(shù),程序舉例如下:

5 結(jié)束語

本文描述了在實時操作系統(tǒng)VxWorks中對多串口系統(tǒng)實現(xiàn)數(shù)據(jù)通信的方法,并給出了示例程序,該方法適用于工業(yè)控制等多方面。VxWorks以其優(yōu)異的實時性和可靠性,增強了了串口通信能力,并且擴大了其應用范圍,能適應數(shù)據(jù)量大,多任務、多響應、實時性要求高的環(huán)境。

[1]徐惠民.基于VxWorks的嵌入式系統(tǒng)及實驗[M].北京:北京郵電大學出版社,2006.

[2]孔祥營,張保山,俞烈彬.VxWorks驅(qū)動及分布式編程[M].北京:中國電力出版社,2007.

[3]張楊,于銀濤.VxWorks內(nèi)核、設備驅(qū)動與BSP開發(fā)詳解[M].北京:人民郵電出版社,2009.

[4]孟英謙,王玲.嵌入式VxWorks實時操作系統(tǒng)中串口通信的實現(xiàn)[J].軟件技術(shù),2003(1):52~54.

猜你喜歡
子類實時性串口
基于NPORT的地面綜合氣象觀測系統(tǒng)通信測試方法及故障處理
基于EM9000工控板高性能雙串口通信模型設計與實現(xiàn)
電子技術(shù)與軟件工程(2019年24期)2020-01-18
漢語兒童早期子類名詞獲得研究
Java類的繼承
船舶電子設備串口數(shù)據(jù)的軟件共享方法
航空電子AFDX與AVB傳輸實時性抗干擾對比
計算機控制系統(tǒng)實時性的提高策略
可編程控制器的實時處理器的研究
CSerialPort 類分析及漏洞的修正
民和| 永登县| 南投市| 疏附县| 大渡口区| 丰顺县| 翁牛特旗| 吉隆县| 莲花县| 玉门市| 马边| 土默特左旗| 平安县| 南汇区| 临澧县| 陆川县| 姚安县| 井研县| 涪陵区| 保亭| 朔州市| 塔城市| 凤翔县| 郧西县| 丽水市| 竹北市| 龙门县| 浮山县| 屯昌县| 和龙市| 科技| 射阳县| 花垣县| 临泽县| 东明县| 长顺县| 固安县| 乐亭县| 怀安县| 南和县| 伊吾县|