|
杭州達內(nèi)嵌入式培訓(xùn)怎么樣_VxWorks嵌入式系統(tǒng)下視頻監(jiān)控系統(tǒng)通信的研究,
摘要:通過嵌入式實時操作系統(tǒng)(VxWorks) ,實現(xiàn)了視頻監(jiān)控系統(tǒng)的解決方案. 研究了VxWorks 系統(tǒng)下實現(xiàn)設(shè)備和數(shù)據(jù)通信的關(guān)鍵技術(shù)和相應(yīng)機制,并采用有限狀態(tài)機( FSM) 解決了串行數(shù)據(jù)通信的幀同步. 文中重點分析了采用計數(shù)器信號量解決多進程同步通信,即生產(chǎn)者—消費者問題. 本文的方案可以推廣到串行設(shè)備以外的其它通信機制.
關(guān)鍵詞:通信技術(shù);計數(shù)器信號量;有限狀態(tài)機(FSM) ;嵌入式實時操作系統(tǒng)(VxWorks)
現(xiàn)代的各種視頻監(jiān)控系統(tǒng)是高度復(fù)雜的集成系統(tǒng),這些系統(tǒng)的內(nèi)部外部所產(chǎn)生的數(shù)據(jù)遠遠超過了操作員的處理能力. 所以,對各種數(shù)據(jù)進行準確及時的傳送和處理,是視頻監(jiān)控系統(tǒng)的一個突出的要求. 它不僅提供系統(tǒng)的實時監(jiān)控和檢測診斷,為數(shù)據(jù)的正確傳輸和處理提供了重要的保障,而且通過實時的監(jiān)控平臺,可以及時準確地顯示、處理各種信息,回饋到監(jiān)視器上. 它可以最大限度的滿足系統(tǒng)對數(shù)據(jù)處理連通性的要求. 這種數(shù)據(jù)處理的連通性提供了有效的數(shù)據(jù)獲得和傳送結(jié)構(gòu).
本文所論述的視頻監(jiān)控系統(tǒng)應(yīng)用于飛機發(fā)動機的各項參數(shù)顯示與記錄;同時對于各項異常情況,在顯示報警的同時應(yīng)能夠在微秒級時間內(nèi)作出自動響應(yīng). 它取代了原有的機械儀表而使整機的智能化有了很大的提高. 由于飛行系統(tǒng)的特殊性,它對整個系統(tǒng)的實時性和穩(wěn)定性都有很大的提高.
1 監(jiān)控系統(tǒng)通信模塊的設(shè)計
1. 1 VxWorks 嵌入式操作系統(tǒng)簡介
本文所涉及的系統(tǒng)對實時性要求較高,監(jiān)控信息必須在微秒級時間內(nèi)作出反應(yīng);而且要求支持搶占式任務(wù)調(diào)度,所以需采用性能良好的嵌入式操作系統(tǒng)VxWorks.VxWorks 操作系統(tǒng)是美國WindRiver 公司開發(fā)的一種嵌入式實時操作系統(tǒng). VxWorks擁有高性能的內(nèi)核及友好的用戶開發(fā)環(huán)境,在高可靠性、高性能的嵌入式應(yīng)用領(lǐng)域中占統(tǒng)治地位,廣泛地應(yīng)用在通信、軍事、航空、航天等高端技術(shù)及實時性、擴展性要求極高的領(lǐng)域中.
1. 2 視頻監(jiān)控系統(tǒng)的功能
本系統(tǒng)的主要功能包括:飛行系統(tǒng)發(fā)動機壽命周期的分析,分析判斷未決的故障和進行預(yù)防性的維護,實時監(jiān)控及出錯診斷.所有這些功能都和所獲得數(shù)據(jù)的正確性息息相關(guān)的. 每時每刻,系統(tǒng)都在處理著大量數(shù)據(jù),如果數(shù)據(jù)的傳輸發(fā)生錯誤,系統(tǒng)就會判斷錯誤,從而導(dǎo)致操作的失誤. 所以,視頻監(jiān)控系統(tǒng)的設(shè)備通信和數(shù)據(jù)通信就顯得尤其重要. 視頻監(jiān)控系統(tǒng)組成圖見圖1.
圖1 視頻監(jiān)控系統(tǒng)組成圖
本設(shè)計中,數(shù)據(jù)源與接收設(shè)備之間使用ARINC429 (航空數(shù)據(jù)總線) 串行接口進行通信. 全雙工數(shù)據(jù)接口為主通道,單工數(shù)據(jù)接口為備份通道,傳輸頻率為12 次/s. 正常情況下,信號源通過主通道向接收設(shè)備發(fā)送一個數(shù)據(jù)幀(每幀80B) ,接收設(shè)備在接收到這個數(shù)據(jù)幀后,向信號源發(fā)送響應(yīng)數(shù)據(jù)幀. 當信號源連續(xù)8 次接收不到接收設(shè)備發(fā)送的響應(yīng)后,認為主通道發(fā)生故障,此后通過備份通道向接收設(shè)備發(fā)送數(shù)據(jù).
1. 3 通信模塊的硬件實現(xiàn)
系統(tǒng)的數(shù)據(jù)處理模塊采用嵌入式微處理器和嵌入式操作系統(tǒng)VxWorks. 基于嵌入式設(shè)備和技術(shù)的視頻監(jiān)控系統(tǒng)的優(yōu)點表現(xiàn)在:由于系統(tǒng)的硬件是一個嵌入式處理器和操作系統(tǒng)相結(jié)合的功能專一、設(shè)計專門的獨立的設(shè)備,不易受其它軟硬件變化的影響,因此,性能上更穩(wěn)定,便于操作,易于實現(xiàn)系統(tǒng)的模塊化.
系統(tǒng)的數(shù)據(jù)傳輸采用航空電子專用的串行通信設(shè)備ARINC429航空數(shù)據(jù)總線,它由兩條互相扭繞的雙絞線組成,數(shù)據(jù)的傳送和接收端口是相互獨立的. ARINC429航空數(shù)據(jù)總線的數(shù)據(jù)傳送速度為12. 5kb/ s 或者100kb/ s ,同時它可以進行數(shù)據(jù)傳送的校驗和監(jiān)控. ARINC429 標準是專用的航空電子設(shè)備和系統(tǒng)間通信的規(guī)范,它的優(yōu)點是數(shù)據(jù)傳送速度快、傳送和接收獨立、傳送出錯概率小,可以進行數(shù)據(jù)的傳送校驗和監(jiān)控.
在系統(tǒng)中,利用RS-232 串口和以太網(wǎng)與計算機相連,組成可以交叉編譯的開發(fā)環(huán)境,支持C 語言,而且可以對嵌入式系統(tǒng)進行各種剪裁、完善、在線調(diào)試,從而使系統(tǒng)功能不斷升級,增加操作用戶的需求. 網(wǎng)上還有與之相關(guān)的郵件組,開發(fā)人員通過它來溝通信息,彼此幫助. 這使得開發(fā)人員可以專心于應(yīng)用部分的系統(tǒng)開發(fā),縮短了系統(tǒng)開發(fā)周期.
1. 4 通信模塊的軟件實現(xiàn)
(1) 數(shù)據(jù)讀寫模塊
VxWorks 的I/O系統(tǒng)為各種設(shè)備提供的統(tǒng)一的設(shè)備獨立接口,使用時只需調(diào)用write ( ) 、read ( )等函數(shù)就可以進行數(shù)據(jù)操作,而不用了解設(shè)備或驅(qū)動程序的細節(jié)從而屏蔽了底層硬件的多樣性,盡量做到應(yīng)用程序與底層硬件無關(guān),以便于程序的復(fù)用.圖2 為I/ O 設(shè)備、驅(qū)動程序和設(shè)備操作之間的關(guān)系.
圖2 I/ O設(shè)備、驅(qū)動程序和設(shè)備操作之間的關(guān)系
。2) 用有限狀態(tài)機( FSM) 實現(xiàn)串行數(shù)據(jù)通信的幀同步利用FSM可實現(xiàn)串行數(shù)據(jù)通信的幀同步. 令系統(tǒng)初值為空閑狀態(tài),每次不斷檢測幀同步字. 當檢測到幀同步字時狀態(tài)才進行翻轉(zhuǎn),否則返回空閑狀態(tài). 直到所有同步字都被檢測到,才進入數(shù)據(jù)接收處理狀態(tài). 最后還要對整幀數(shù)據(jù)進行校驗和處理,判斷整個數(shù)據(jù)幀的接收是否正確. 圖3為系統(tǒng)狀態(tài)轉(zhuǎn)換圖.
圖3 用狀態(tài)機實現(xiàn)幀同步的狀態(tài)轉(zhuǎn)換圖
利用FSM處理異步通信同步的好處是:當通信協(xié)議發(fā)生變化時,可以很容易地對軟件進行移植工作. 因為在數(shù)據(jù)鏈路層,所有幀格式都是由幀頭+ 數(shù)據(jù)+ 校驗字的方式所組成,只需要改變同步字和校驗方式就可以完成數(shù)據(jù)鏈路層的數(shù)據(jù)接收和應(yīng)答.
。3) 用生產(chǎn)者—消費者問題實現(xiàn)數(shù)據(jù)同步通信數(shù)據(jù)同步通信過程實際上等同于生產(chǎn)者—消費者問題( Producer-Consumer Problem) . 生產(chǎn)者—消費者問題是一個著名的進程同步問題,它描述的是: 用一群生產(chǎn)者進程生產(chǎn)消息,并用此消息提供給消費者進程消費. 為使生產(chǎn)者進程和消費者進程能并發(fā)執(zhí)行,在它們之間設(shè)置一個具有N 個緩沖區(qū)的緩沖池,生產(chǎn)者進程可將它所生產(chǎn)的消息投入一個緩沖區(qū)中,消費者進程可從一個緩沖區(qū)中取得一個消息消費. 盡管所有的生產(chǎn)者進程和消費者進程都是以異步方式進行,但它們之間必須保持同步,即不允許消費者進程到一個空緩沖區(qū)中去取消息,也不允許生產(chǎn)者進程到一個已裝有消息但該消息未被取走的緩沖區(qū)中投放新消息.
采用共享數(shù)據(jù)的方法簡化了數(shù)據(jù)交換,但在多進程數(shù)據(jù)通信過程中卻可能發(fā)生錯誤,使數(shù)據(jù)內(nèi)容被破壞. 為解決問題,可利用信號量的互斥性加以同步保護,獲得對緩沖區(qū)(數(shù)據(jù)) 的獨占訪問,見圖4.
圖4 使用信號量的緩沖區(qū)管理圖
圖4 中,假設(shè)緩沖池包含10 個緩沖區(qū),一個任務(wù)通過調(diào)用BufReq ( ) 可以從緩沖區(qū)管理器中獲得一個緩沖區(qū),用BufRel ( ) 釋放該緩沖區(qū)到緩沖區(qū)管理器中. 緩沖區(qū)管理器共有10 個信號量,當所有的信號量都被使用時,再申請緩沖區(qū)的任務(wù)將被掛起,直到有信號量可以使用為止. 當一個帶有緩沖區(qū)的任務(wù)完成后,它將調(diào)用BufRel ( ) 把緩沖區(qū)還給緩沖區(qū)管理器.
本文采用計數(shù)器信號量來管理緩沖區(qū),與其它信號量相比,計數(shù)器信號量的特點在于,它可以保持對信號量釋放次數(shù)的追蹤. 信號量每次釋放,計數(shù)器加1 ,每次獲取,計數(shù)器減1. 當計數(shù)器為0 時,試圖獲取該信號量的任務(wù)被阻塞. 在中斷服務(wù)程序中,可以將數(shù)據(jù)寫入緩沖區(qū),然后再釋放信號量. 由于它保持對信號量釋放次數(shù)的追蹤功能,如果任務(wù)暫時無法讀取數(shù)據(jù),數(shù)據(jù)也不會被丟棄.
2 結(jié)論
本文所研究的視頻監(jiān)控系統(tǒng),是嵌入式技術(shù)的典型. 嵌入式系統(tǒng)因其體積小、指令精簡、實時性處理能力強、處理速度快、穩(wěn)定性好、可擴展性好的特點,在專業(yè)性、實時性較強的領(lǐng)域中,發(fā)揮著重要的作用. 本文采用硬件抽象層分層設(shè)計的思想,實現(xiàn)了應(yīng)用程序與數(shù)據(jù)鏈路層設(shè)備的無關(guān)性,最大限度地實現(xiàn)了軟件的復(fù)用性. 文中采用FSM 和計數(shù)器信號量實現(xiàn)了異步通信的幀同步,這種方法不僅適用于串行通信,而且對于其它通信協(xié)議的實現(xiàn)都具有借鑒作用. |
|