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