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

嵌入式系統(tǒng)中FFT算法分析及設(shè)計(jì)方案

Linux的嵌入式紅外熱成像系統(tǒng)設(shè)計(jì)方案

嵌入式系統(tǒng)電源設(shè)計(jì)方案

嵌入式linux系統(tǒng)GUI設(shè)計(jì)方案

基于嵌入式操作系統(tǒng)VxWorks的SCSI硬盤(pán)高速記錄系統(tǒng)

嵌入式系統(tǒng)是如何組成的

嵌入式系統(tǒng)的組成結(jié)構(gòu)詳細(xì)說(shuō)明
嵌入式驅(qū)動(dòng)組成概論3.9

評(píng)論