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