作者:冉義貴,吳勤章,任國強(qiáng)
在一些特別的科學(xué)研究和工程應(yīng)用領(lǐng)域,需要采用高幀頻?大面陣的CCD相機(jī)以獲取高質(zhì)量的圖像數(shù)據(jù),用于對變化較快的觀測對象的運(yùn)動軌跡及其變化特性分析或?qū)崟r計(jì)算?由此可產(chǎn)生高達(dá)50MB/s以上的實(shí)時數(shù)據(jù)流,需要持續(xù)地實(shí)時記錄,以便于事后分析?
本文介紹中科院光電技術(shù)研究所針對高速實(shí)時圖像記錄任務(wù)的要求,專門設(shè)計(jì)開發(fā)的VxWorks嵌入式操作系統(tǒng)下的高速嵌入式SCSI硬盤陣列記錄系統(tǒng)?
在本系統(tǒng)中采用的高幀頻CCD數(shù)字相機(jī)其工作幀頻為:200幀/秒,分辨率為:532%26;#215;516像素,8bit灰度級,有效數(shù)據(jù)率約為55MB/s?要求能對其長時間地持續(xù)記錄,且不允許中間有丟幀現(xiàn)象?
實(shí)際工程項(xiàng)目中,在技術(shù)上采用了嵌入式計(jì)算機(jī)和Vxworks嵌入式操作系統(tǒng)以及SCSI硬盤陣列系統(tǒng),成功地完成了上述任務(wù)?
1 系統(tǒng)硬件結(jié)構(gòu)
1.1 硬件框圖
硬件框圖如圖1所示?
整個系統(tǒng)在硬件上由嵌入式計(jì)算機(jī)?CCD相機(jī)?CI采集卡?SCSI控制卡及SCSI硬盤陣列組成?系統(tǒng)基于PCI總線架構(gòu)?目前使用32位33MHz的PCI總線,可實(shí)現(xiàn)約132MB/s的數(shù)據(jù)傳輸率?以后將使用64位66MHz的PCI總線,以達(dá)到更高的數(shù)據(jù)傳輸率?來自CCD相機(jī)的高速數(shù)據(jù)流經(jīng)PCI采集卡交叉緩沖存儲后送往PCI總線,SCSI控制卡與PCI采集卡在PCI總線上通過DMA方式直接交換數(shù)據(jù)?記錄存儲介質(zhì)的接口采用SCSI總線接口?
1.2 SCSI總線接口
SCSI(Small Computer System Interface)小型計(jì)算機(jī)系統(tǒng)接口是一種連接主機(jī)與外圍設(shè)備的接口,支持包括磁盤驅(qū)動器?磁帶機(jī)?光驅(qū)?掃描儀在內(nèi)的多種設(shè)備?它由SCSI控制器進(jìn)行數(shù)據(jù)操作?SCSI控制器相當(dāng)于一塊小型CPU,有自己的命令集和緩存?SCSI 接口是智能化的,可以彼此通信而不增加CPU 的負(fù)擔(dān)?當(dāng)向SCSI硬盤讀寫數(shù)據(jù)時,主機(jī)CPU只需向SCSI控制卡發(fā)出讀寫命令,SCSI控制卡會自動處理并以DMA方式執(zhí)行相應(yīng)的讀寫操作,完全不需要主機(jī)的干預(yù),使主機(jī)和SCSI卡可以并行地工作?與IDE接口相比,速度?性能和穩(wěn)定性都要比IDE好得多,具體區(qū)別如表1?
SCSI接口幾經(jīng)變革,傳輸率?支持設(shè)備等功能都有大幅度的改進(jìn)?在速度上,SCSI接口規(guī)范隨時間有表2所示的規(guī)范版本?
從Ultra2之后,SCSI采用全新的LVD(Low Voltage Differential)串接模塊?LVD的特性為低電壓?信號干擾少?兼容傳統(tǒng)排線,可以有較長的串接距離,也可以兼顧傳輸速度與設(shè)備數(shù)?這次任務(wù)使用Ultra160,接口速度可達(dá)160MB/s?實(shí)際應(yīng)用中只需要55MB/s的傳輸速度?實(shí)際測出的速度達(dá)80MB/s以上?
2 系統(tǒng)軟件結(jié)構(gòu)
2.1 VxWorks操作系統(tǒng)簡介
系統(tǒng)軟件基于VxWorks操作系統(tǒng)平臺?VxWorks操作系統(tǒng)是目前世界上最先進(jìn)的高性能實(shí)時操作系統(tǒng),主要應(yīng)用于航空?航天?導(dǎo)彈武器系統(tǒng)(包括火星探陸車?愛國者導(dǎo)彈系統(tǒng)?F-16戰(zhàn)機(jī)等)?它包括一個微內(nèi)核?強(qiáng)大的網(wǎng)絡(luò)支持,以及文件系統(tǒng)和I/O管理?C++支持的各種模塊?它的多任務(wù)?搶占調(diào)度?快速上下文切換?低中斷延遲和快速靈活的通信機(jī)制更是VxWorks的突出優(yōu)點(diǎn)?
VxWorks特點(diǎn):
(1) 支持多種CPU
包括x86?owerPC?68K?i960?SPARC?Mips等?還支持RISC和DSP技術(shù)?
(2) 實(shí)時性
VxWorks系統(tǒng)本身的開銷很小,進(jìn)程調(diào)度?進(jìn)程間通信?中斷處理等系統(tǒng)公用程序精練而有效,造成的延遲很短?VxWorks提供多任務(wù)機(jī)制,對任務(wù)的控制采用了優(yōu)先級搶占(Preemptive Priority Scheduling)和輪轉(zhuǎn)調(diào)度(Round-Robin Scheduling)機(jī)制,也充分保證了可靠的實(shí)時性,使同樣的硬件配置能滿足更強(qiáng)的實(shí)時性要求,為應(yīng)用的開發(fā)留下更大的余地?
(3) 可裁減性
用戶在使用操作系統(tǒng)時,并不是操作系統(tǒng)中的每一個部件都用到?例如圖形顯示?文件系統(tǒng)以及一些設(shè)備驅(qū)動在某些嵌入式系統(tǒng)中并不使用?VxWorks 由一個體積很小的內(nèi)核及一些可以根據(jù)需要進(jìn)行定制的系統(tǒng)模塊組成,可裁剪的組件超過80個?VxWorks內(nèi)核最小為 8KB,即便加上其它必要模塊,所占用的空間也很小,且不失其實(shí)時?多任務(wù)的系統(tǒng)特征?由于其高度靈活,用戶可以很容易地對這一操作系統(tǒng)進(jìn)行定制或適當(dāng)開發(fā),滿足自己的實(shí)際應(yīng)用需要?
(4) 可靠性
操作系統(tǒng)的可靠性是用戶首要考慮的問題?而穩(wěn)定?可靠一直是VxWorks的一個突出優(yōu)點(diǎn)?VxWorks以其良好的可靠性在一些實(shí)時關(guān)鍵任務(wù)領(lǐng)域贏得了廣泛的用戶?
2.2 系統(tǒng)軟件功能
系統(tǒng)軟件結(jié)構(gòu)如圖2所示?記錄系統(tǒng)完全通過接收來自RS-232串口或TCP網(wǎng)絡(luò)的命令字進(jìn)行工作?記錄結(jié)束后通過TCP網(wǎng)絡(luò)下載記錄數(shù)據(jù)?
首先進(jìn)行系統(tǒng)初始化,對各硬件進(jìn)行必要的初始設(shè)置,確定其工作狀態(tài)?包括:網(wǎng)絡(luò)部件的初始化?SCSI卡的初始化?SCSI硬盤的初始化?CI采集卡的初始化以及處理來自PCI采集卡硬件中斷的信號量的初始化?
然后進(jìn)行系統(tǒng)自檢,包括對SCSI硬盤記錄速度測試自檢以判定是否能達(dá)到要求的記錄速度?硬盤的讀寫自檢,以及對自己定義在硬盤前一段當(dāng)作數(shù)據(jù)檢索用的信息頭的自檢?
系統(tǒng)自檢成功后將會調(diào)用taskSpawn()系統(tǒng)調(diào)用使處理串口和網(wǎng)絡(luò)命令的模塊運(yùn)行起來?根據(jù)主控計(jì)算機(jī)發(fā)來的命令字調(diào)用相應(yīng)的功能模塊并給主控計(jì)算機(jī)相應(yīng)的回答響應(yīng)?具體命令包括:A查詢系統(tǒng)版本?B自檢?C開始記錄?D停止記錄?E查詢硬盤剩余容量?F開始圖像數(shù)據(jù)下載?G查詢系統(tǒng)狀態(tài)?H硬盤清空?I查詢單次任務(wù)信息?系統(tǒng)最重要的工作是記錄任務(wù)?CI采集卡每75ms發(fā)出一個中斷,在這段時間里采集卡已經(jīng)完成了一個緩沖區(qū)共4MB數(shù)據(jù)的采集,此時來的圖像數(shù)據(jù)流存儲在另外一個4MB緩沖區(qū)中,即所謂的交叉存儲技術(shù),以保證數(shù)據(jù)不會丟失?在這75ms時間內(nèi)必須完成記錄4MB的任務(wù),記錄速度約為54MB/s?在實(shí)際測試中,記錄4MB的數(shù)據(jù)一般50ms即可完成,記錄速度約為80MB/s,因此較好地完成了記錄任務(wù)?實(shí)際編程,在硬件中斷服務(wù)程序中只是用semGive()系統(tǒng)函數(shù)放出一個信號量,由發(fā)起任務(wù)具體處理記錄操作?中斷服務(wù)程序不象一般的任務(wù)那樣運(yùn)行在普通的任務(wù)上下文中,它沒有任務(wù)控制塊,所有的中斷服務(wù)程序共享一個堆棧?所以對中斷服務(wù)程序的基本要求就是不能引起阻塞?例如在中斷服務(wù)程序不能調(diào)用printf()函數(shù)用于輸出信息?
此外,在中斷服務(wù)程序中也不能通過VxWorks驅(qū)動執(zhí)行I/O操作?此項(xiàng)目中陣列了三個SCSI硬盤,每個硬盤容量為36GB,共計(jì)108GB?由于一個硬盤物理的持續(xù)讀寫速度在30MB/s左右,因此必須陣列地讀寫多個SCSI硬盤,在處理中斷服務(wù)程序的任務(wù)中利用每個硬盤物理的讀寫間隙,按一定時隙分別寫入每個硬盤一定的數(shù)據(jù)量,實(shí)現(xiàn)了硬盤的并行工作,達(dá)到了高速存儲記錄的目的?
本系統(tǒng)成功地應(yīng)用于實(shí)際工程項(xiàng)目中,其可靠性和實(shí)時性已在嚴(yán)格的實(shí)際應(yīng)用環(huán)境中得到檢驗(yàn)?下一步,將進(jìn)一步提高記錄系統(tǒng)的性能指標(biāo),采用基于64位66MHz的PCI總線?SCSI Ultra 320接口?千兆網(wǎng)絡(luò)接口以及陣列更多的SCSI硬盤,使系統(tǒng)的記錄速度?記錄容量?下載傳輸速度和可靠性都有更大的提高?本系統(tǒng)雖然是專門為我所實(shí)時測控系統(tǒng)中高速記錄任務(wù)而設(shè)計(jì),但實(shí)際上也廣泛地應(yīng)用于圖像處理?雷達(dá)?聲納等對實(shí)時圖像記錄有要求的領(lǐng)域?
責(zé)任編輯:gt
-
嵌入式
+關(guān)注
關(guān)注
5083文章
19131瀏覽量
305543 -
硬盤
+關(guān)注
關(guān)注
3文章
1311瀏覽量
57331 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6834瀏覽量
123350
發(fā)布評論請先 登錄
相關(guān)推薦
評論