《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 嵌入式系統在氣浮轉臺無線測控實驗中的應用

嵌入式系統在氣浮轉臺無線測控實驗中的應用

2008-07-16
作者:曲宏松1,2,張 葉1,2,徐

??? 摘 要: 以衛星氣浮轉臺實驗為背景,介紹了基于實時嵌入式系統" title="嵌入式系統">嵌入式系統的氣浮轉臺無線測控通信子系統的設計。利用VxWorks操作系統實時性強、多任務" title="多任務">多任務調度的特點,對轉臺上的串口" title="串口">串口數據采集、轉臺上下的無線網絡通信進行了任務化編程。在線測試表明,嵌入式實時操作系統VxWorks可以合理而快速地對各任務進行實時而可靠的管理和調度,嵌入式系統可以出色地完成轉臺無線測控通信任務。
??? 關鍵詞: 氣浮轉臺? 無線網? VxWorks? 嵌入式系統

?

??? 在衛星的地面全物理或半物理仿真實驗中,氣浮轉臺作為衛星的運動仿真器,不僅可以模擬衛星的剛性本體,而且要承載轉臺控制系統、測控通信系統等實物部件,所以氣浮轉臺是衛星控制系統物理仿真實驗的核心設備。由于在仿真實驗中需要將轉臺上的各種實驗數據實時下傳到臺下的監控計算機中,并且有時需要臺下的監控計算機上傳必要的遙控指令和數據信息至臺上的控制計算機,因此需要有一套實時性、魯棒性很強的測控系統來完成轉臺上下的通信任務。
??? 當前,嵌入式技術發展迅猛,已經廣泛滲透到科學研究、工程設計、軍事技術以及人們的日常生活中。VxWorks作為一款實時嵌入式操作系統,以其強實時性、高可靠性成為航空航天、軍事國防、通信等領域應用最廣的操作系統之一。而PC104設備采用了緊固堆疊的安裝方式,體積小巧、結構緊湊,特別適合轉臺這種空間有限的應用。本系統針對氣浮轉臺實驗的實際需要,并結合嵌入式系統的特點,最終選取了“VxWorks+PC104”的嵌入式軟硬件搭配方式,完成轉臺數據采集管理、轉臺控制以及臺上的測控終端" title="測控終端">測控終端等實驗任務。
1 硬件實驗環境
?? ?氣浮轉臺測控實驗要完成的中心任務是:將轉臺上的各系統、各設備的遙測數據下傳到地面測控終端中,由地面測控終端進行處理、顯示以及保存。同時,地面測控終端要將轉臺上所需要的數據信息以及一些控制指令上傳到臺上測控終端中。
1.1 臺上實驗環境
??? 轉臺上采用PC104嵌入式計算機作為轉臺主控計算機,選用的型號是數字邏輯公司的CPU卡MSMP5SEV, VxWorks操作系統在此CPU卡上運行。為了能夠采集臺上設備的工程數據,并對臺上的執行部件進行控制,通過PC104總線擴展了一個8COM的串口卡和一個D/A轉換卡。臺上的GPS接收機、光纖陀螺、自制飛輪電機通過串口與PC104串口卡相連,以傳遞GPS授時數據、轉臺轉速以及飛輪轉速等遙測數據。而自制飛輪電機和磁力矩器等執行部件連接到D/A轉換卡上,由D/A卡發出的模擬信號控制執行部件。此外臺上配有多路供電電源,為臺上電子設備供電。
1.2 臺下實驗環境
??? 轉臺下需要一個工業控制計算機作為地面的監控平臺,負責接收轉臺傳來的重要數據,并向臺上傳遞控制命令及必要的實驗數據。需要上傳的數據有模擬衛星的軌道數據和轉臺感應同步器得到的轉臺位置信息。模擬衛星軌道數據可以利用STK軟件得到,而轉臺感應同步器的數據則通過一個自制數據采集板,將并行數據轉換成串行數據輸入到監控計算機中。
1.3 轉臺上下的通信鏈路
??? 由于轉臺在實驗時不斷轉動,很不適合有線通信,所以選用無線局域網作為轉臺上下的數據通信鏈路。臺上使用符合IEEE802.11g協議的無線接入點(Wireless Access Point)作為臺上的測控連接點,通過網線接入到PC104主機。臺下使用USB接口的無線網卡,直接插入到地面監控計算機中。這樣就建立起一個無線點對點的局域網。圖1給出了轉臺實驗環境的總體結構圖。

?


2 基于VxWorks的轉臺測控通信端軟件開發
2.1 實時嵌入式操作系統VxWorks

??? VxWorks是美國風河公司(Windriver)為嵌入式系統量身打造的一款實時操作系統。其微秒量級的任務切換和中斷延遲時間,使其成為實時操作系統家族中的佼佼者。經過二十多年市場應用的驗證,VxWorks被認為是高度可靠的操作系統。
??? VxWorks除了強實時性和高可靠性之外,還具備多任務調度的特點。VxWorks中任務的概念類似Windows中的線程,每個明顯單獨運行的程序成為一個任務。每個任務都可以直接訪問或共享大多數資源和內存空間,并擁有自己存放局部變量的棧和存放寄存器、延時定時器、時間片定時器等控制塊。每個任務都擁有自己的任務名、任務ID和優先級。內核根據各任務優先級的高低,進行高優先級搶占式的調度,而對于同等優先級的任務采用輪轉調度策略。VxWorks任務間的同步方式也比較靈活,分別提供了共享內存、管道、信號量、消息隊列等機制。豐富的通信機制和調度方式選擇使VxWorks下的任務編制非常靈活,十分適合在有限時間內同時處理多個事件。
2.2 測控系統軟件設計
??? 測控軟件從功能角度分類可以分為遙測任務和遙控任務兩個部分。遙測任務需要采集、整理轉臺上各設備的工程數據,然后通過網絡發送到地面監控計算機中。遙控任務需要先通過網絡接收到地面監控計算機發送來的數據,然后通過解包、解碼發送給遙控處理任務來執行遙控指令。但從數據的通信類別角度分類,可以分為串口通信和網絡通信兩部分。從編程角度,更傾向于后一種分類來組織軟件的編寫。
2.2.1 串口通信
??? 串口通信的主要任務是采集遙測數據。從圖1可以看出,轉臺上有3路數據要通過串口進行通信,分別是GPS、陀螺和飛輪電機。由于3個設備的數據更新率不同(GPS為1Hz、陀螺為300Hz、飛輪電機為2Hz),所以對于PC104主機而言,遙測數據的到來具有隨機性。為了能在各路遙測數據到來之際及時做出響應,需要利用VxWorks系統提供的I/O復用機制進行串口數據接收。具體程序代碼如下:
??? if((xxxFd =open(″/tyCo/0″,O_RDWR,0))==ERROR)
??? {
??????? perror(″Error in opening com1!″);
??????? return(ERROR);
????}
??? taskSpawn(TNAME_COMXXXRECV,TPRI_COMXXXRECV,0,XXX_STACK_SIZE,(FUNCPTR)xxxRecv,0,0,0,0,0,0,0,0,0,0);
??? STATUS xxxRecv(void)
??? {? …
??????? while(1)
?????{
??????? FD_ZERO(&readFds);
??????? FD_SET(xxxFd,&readFds);
??????? if(select (width,&readFds,NULL,NULL,NULL)==ERROR)
???????????? return (ERROR);
??????? if(FD_ISSET(xxxFd,&readFds))
??????? {
?????????????if((recvLen=read(xxxFd,recvBuf,buf_size))==ERROR)
???????????? {
????????????????printf(″ERROR when read XXX!);
??????????????? return(ERROR);
???????????? }
???????????? ……
??????? //釋放相應信號量,進行數據處理、遙測數據編碼、下傳數據打包等任務的執行。
????????……
??????}
?????}
????}
??? 首先,需要通過I/O系統API函數open()打開串口,系統為相應的串口分配一個表示該串口的文件標識符xxxFd,然后通過taskSpawn()函數發起串口接收任務。串口接收任務對應的入口函數為xxxRecv(),xxxRecv()函數的函數體是一個死循環,不斷接收串口數據。在死循環的開始處應用I/O復用機制,利用FD_ISSET()函數查看文件描述符集的xxxFd位是否被置位。如果xxxFd所對應的串口有數據到來,底層的驅動程序會將數據傳遞到系統維護的接收環形隊列緩沖內存中,同時將文件描述符集中的xxxFd位置位。當FD_ISSET()函數發現xxxFd位被置位時,則使串口接收任務解除阻塞,開始向下執行,通過read()函數將存放在環形隊列中的數據接收到用戶緩沖區recvBuf[]數組中。如果沒有數據到來,則文件描述符集中的xxxFd位為復位狀態,串口接收任務阻塞。通過使用I/O復用機制,成功地解決了不同數據源更新率不同步的難題。這種機制類似一個軟中斷,真正做到了數據的即到即收。
2.2.2 網絡通信
??? 無線網絡通信擔負著連接轉臺與地面監控計算機的重任。由于PC104主機帶有網卡,而且VxWorks對多任務和BSD Socket具有良好的支持,所以完備的嵌入式軟硬件環境使得無線網絡通信在轉臺測控系統中的應用成為可能。
??? 網絡通信任務是基于BSD Socket的編程,使用的是Server/Client模式。轉臺上的嵌入式主機為服務器(Server),臺下的監控計算機為客戶端(Client)。BSD Socket通常構造兩種應用類型:面向連接的SOCK_STREAM應用和無連接的SOCK_DGRAM應用。面向連接的應用即基于TCP協議的socket應用,無連接的應用即UDP應用。TCP協議是提供給用戶的一種可靠的全雙工面向連接的協議,而且TCP協議具有正確性檢查機制。在此選用TCP協議進行網絡通信。
??? 基于TCP協議面向連接的Socket應用框架如圖2所示。首先,在服務器端創建Socket,然后調用bind()函數將Socket與一個端點地址綁定,并通過listen()函數偵聽客戶的連接請求,然后調用accept()阻塞任務,等待請求的到來。當客戶端利用connect()連接到服務器的偵聽端口時,服務器與客戶端進行3次握手建立點到點的連接。連接建立完畢以后,就可以調用read()和write()函數進行網絡數據的接收和發送了。

?


??? 從圖3可以看出,網絡通信應用程序中建立了兩個緩沖隊列,用來緩沖網絡接收和網絡發送數據。緩沖隊列由鏈表" title="鏈表">鏈表數據結構的動態添加與刪除來實現。為了節省空間,沒有用VxWorks自身提供的雙向鏈表結構,而是用單向鏈表,并用兩個全局指針來記錄鏈表頭尾的首地址,用一個全局變量來記錄鏈表的長度,以省略查找的過程。

?


??? 每個鏈表元素為一個結構體struct xxxList,結構體內容包含網絡數據頭指針pTemp和指向下一個元素的指針pNext。全局變量為鏈表頭的指針listHead、指向鏈表尾的指針listRear以及鏈表的長度變量listLen。圖4表示含有n個元素的鏈表結構。

?


??? 使用緩沖隊列可以有效地提高通信的可靠性。在沒有緩沖隊列的情況下,雖然實時性極強的VxWorks在絕大多數情況下能夠保證對需要傳遞的數據進行及時的處理,但仍然不能避免數據缺失情況的發生。而如果有一幀關鍵數據丟失,則有可能造成某任務的阻塞。當阻塞時間超時,可能引起Watchdog的啟動,從而中止實驗的進行。而加入緩沖隊列可以使尚未來得及處理的數據得到保護,從而避免了數據的丟失。從另一種角度說,也提高了CPU的利用率。
3 多任務調度測試
??? 由于轉臺上只有一臺嵌入式控制主機,所以臺上各種數據的采集、控制算法的實現、轉臺的自主管理等功能都將由這個嵌入式主機單獨完成。VxWorks強大而靈活的多任務調度管理能力可以協助嵌入式PC104主機完成這些功能。
??? 在轉臺仿真實驗進行過程中,VxWorks操作系統將同時維護二十多個任務。對于用戶來說,要明確各任務的運行狀況就必須了解系統對多個任務調度的情況,從而發現編程時考慮不周的bug。VxWorks的開發環境Tornado為用戶提供了一個動態監視工具WindView,此工具可以在Target端的實時系統運行過程中記錄各個元素之間動態交互的信息,然后在Host端用圖形化的方式直觀地顯示出來。
??? 圖5給出了進行轉臺仿真實驗過程中,用WindView采集到的各任務占用CPU的時序。通過WindView圖可以看出,雖然系統維護的任務很多,而且有的任務被調用或者響應中斷的頻率很高,但由于VxWorks操作系統實時多任務調度的能力很強,所以沒有造成任務的擁堵、死鎖或者饑餓等情況的發生,圓滿地完成了轉臺的仿真實驗。

?


參考文獻
[1] VxWorks Programmer′s Guide.Wind River System Inc,2002.
[2] Tornado 2.2 User′s Guide.Wind River System Inc,2002.
[3] 陳洋,陸宇平.機器人實時遠程控制系統及其開發庫的設計與實現[J].電子技術應用,2006,(2):7-10.
[4] 孔祥營,柏桂枝.嵌入式實時操作系統VxWorks及其開發環境Tornado[M].北京:中國電力出版社,2001.
[5] 程敬原.VxWorks軟件開發項目實例完全解析[M].北京:中國電力出版社,2005.
[6] 鄺堅.Tornado/VxWorks入門與提高[M].北京:科學出版社,2004.
[7] 曲宏松,耿愛輝,陳濤.基于VxWorks的串口芯片ST16C554的驅動程序設計[J].電子器件,2006,(3):959-962.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美一级黄色网| 国产精品99一区二区| 一区二区电影免费观看| 久久精品91| 欧美在线视频免费观看| 午夜精品一区二区三区四区| 在线一区二区三区做爰视频网站 | 国产精品一卡| 国产精品入口| 国产美女精品| 国产一区二区高清| 好吊视频一区二区三区四区| 国产亚洲综合性久久久影院| 国产区精品视频| 国产日韩视频一区二区三区| 国产女主播在线一区二区| 国产毛片一区| 国产在线视频欧美| 黄色成人在线| 1000部精品久久久久久久久| 一区二区三区在线看| 悠悠资源网久久精品| 极品av少妇一区二区| …久久精品99久久香蕉国产 | 亚洲精品国产系列| 夜夜嗨av一区二区三区中文字幕| 夜夜嗨av一区二区三区中文字幕| 亚洲一区二区三区在线观看视频 | 欧美成人精品高清在线播放| 欧美风情在线| 欧美日韩亚洲视频一区| 欧美日韩一二三区| 国产精品日韩一区二区三区| 国产亚洲一二三区| 黑人操亚洲美女惩罚| 亚洲国产合集| 99精品视频免费观看| 亚洲视频每日更新| 欧美一区二区三区啪啪| 亚洲精品国产精品国产自| 一区二区三区三区在线| 欧美一区二区三区在| 久久久欧美一区二区| 欧美gay视频| 欧美日韩性生活视频| 国产模特精品视频久久久久| 在线播放一区| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲国产欧美在线人成| 一本色道久久88亚洲综合88| 亚洲欧美国产三级| 久久综合影音| 国产精品h在线观看| 国产一区久久| 日韩视频在线播放| 香蕉久久a毛片| 亚洲精品午夜精品| 性做久久久久久| 嫩草成人www欧美| 国产精品久久久久国产精品日日 | 亚洲少妇最新在线视频| 欧美一区二区三区在线播放| 亚洲免费成人| 欧美影院在线播放| 欧美韩日一区二区三区| 国产精品视频xxxx| 亚洲国产成人精品女人久久久 | 欧美在线高清视频| 亚洲深夜av| 久久午夜精品| 欧美视频观看一区| 一区在线视频| 亚洲尤物在线视频观看| 亚洲巨乳在线| 久久人人爽人人爽爽久久| 欧美特黄一区| 亚洲大胆av| 欧美亚洲综合在线| 亚洲一区二区免费在线| 免费精品视频| 国产欧美日韩在线观看| 日韩视频免费| 亚洲精品国产视频| 久久久久久国产精品mv| 欧美亚洲不卡| 亚洲人体大胆视频| 亚洲国产精品久久久久婷婷884| 午夜天堂精品久久久久| 欧美日韩第一区| 亚洲国产精品一区在线观看不卡| 香蕉免费一区二区三区在线观看 | 午夜视频在线观看一区二区| 欧美精品尤物在线| 在线观看亚洲视频| 欧美一级在线视频| 午夜免费电影一区在线观看| 欧美日韩 国产精品| 亚洲成人直播| 亚洲第一偷拍| 久久欧美中文字幕| 国产亚洲欧美日韩日本| 亚洲午夜三级在线| 亚洲午夜av| 欧美日韩综合不卡| 亚洲精品黄色| 亚洲美女精品久久| 欧美国产激情| 91久久香蕉国产日韩欧美9色| 亚洲破处大片| 欧美成人免费大片| 在线欧美影院| 亚洲国产一区二区在线| 麻豆久久精品| 伊人久久久大香线蕉综合直播| 欧美一区二区三区四区在线| 欧美在线|欧美| 国产欧美一区二区三区沐欲| 亚洲专区在线| 欧美一区二区视频97| 国产精品女主播| 亚洲综合大片69999| 西瓜成人精品人成网站| 国产精品欧美日韩一区| 亚洲一区免费看| 欧美在线电影| 韩国成人福利片在线播放| 欧美在线播放高清精品| 久久天天躁狠狠躁夜夜av| 激情综合自拍| 日韩视频一区二区三区在线播放免费观看| 欧美3dxxxxhd| 亚洲美女中文字幕| 亚洲一区亚洲| 国产欧美一区二区三区在线老狼| 午夜欧美精品久久久久久久| 久久成人精品视频| 精品成人一区| 夜夜嗨一区二区| 国产精品xxxav免费视频| 亚洲自拍偷拍一区| 久久免费视频观看| 亚洲高清久久| 宅男在线国产精品| 国产精品免费看| 久久se精品一区精品二区| 你懂的一区二区| 最新热久久免费视频| 亚洲线精品一区二区三区八戒| 国产精品v欧美精品v日韩精品 | 一本色道久久88亚洲综合88 | 国产精品你懂的在线| 午夜精品久久久久久久99热浪潮| 久久精品一区二区国产| 悠悠资源网亚洲青| 一本色道久久88亚洲综合88| 国产精品久久久久久久久果冻传媒| 亚洲一区日本| 麻豆久久久9性大片| av成人天堂| 久久久久久久综合色一本| 亚洲激情视频| 欧美影视一区| 亚洲黄色小视频| 亚洲欧美日韩在线| 一区二区三区在线观看视频| 亚洲视频自拍偷拍| 国产一区二区高清| 亚洲色图自拍| 激情文学综合丁香| 亚洲视频你懂的| 国产综合精品一区| 宅男精品视频| 激情伊人五月天久久综合| 亚洲午夜视频在线观看| 国产日韩视频| 亚洲视频观看| 伊人精品成人久久综合软件| 亚洲一区二区三区在线| 精品不卡在线| 香蕉久久a毛片| 亚洲第一主播视频| 欧美有码在线观看视频| 亚洲三级免费| 久久午夜电影| 亚洲午夜一区二区三区| 欧美国产先锋| 欧美在线看片| 国产精品久久久久久av下载红粉 | 久久精品国产77777蜜臀| 亚洲激情影视| 久久青青草综合| 亚洲综合三区| 欧美剧在线观看| 亚洲第一在线综合在线| 国产精品久久久久高潮| 亚洲乱码国产乱码精品精可以看 | 最新日韩av| 久久一区国产| 亚洲欧美一区二区视频| 欧美日韩视频不卡|