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