欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于嵌入式Linux系統(tǒng)的高速圖像記錄裝置的制作方法

文檔序號(hào):7754657閱讀:241來(lái)源:國(guó)知局
專利名稱:一種基于嵌入式Linux系統(tǒng)的高速圖像記錄裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于高速圖像處理領(lǐng)域,涉及一種如何將高幀頻、高分辨率CCD圖像進(jìn)行高速存儲(chǔ)。
背景技術(shù)
隨著嵌入式應(yīng)用的快速蓬勃發(fā)展,嵌入式系統(tǒng)已經(jīng)廣泛應(yīng)用到軍事、航空航天、工業(yè)控制和消費(fèi)電子等領(lǐng)域。嵌入式系統(tǒng)作為計(jì)算機(jī)領(lǐng)域的一個(gè)重要組成部分,已經(jīng)成為研究與應(yīng)用的熱點(diǎn)。隨著高速圖像記錄裝置的復(fù)雜化和小型化,嵌入式系統(tǒng)和高速記錄系統(tǒng)的融合是發(fā)展的必然趨勢(shì)。目前高速圖像記錄技術(shù)在國(guó)內(nèi)外都有很廣泛的應(yīng)用,根據(jù)所使用的記錄方法和存儲(chǔ)介質(zhì)不同,在記錄速度上也有所差異。美國(guó)Ampex公司使用磁盤作為存儲(chǔ)介質(zhì)的記錄器(DDR) S400可提供50MB/S的記錄速度。PROMISE公司使用磁盤進(jìn)行數(shù)據(jù)記錄的產(chǎn)品SuperTrakATARAID記錄速度最高可以達(dá)到133MB/s。德國(guó)控創(chuàng)公司的使用 NAND FLASH的記錄卡實(shí)現(xiàn)了 256GB的容量和120MB/s的寫入速度。在國(guó)內(nèi)采用的記錄技術(shù)大多是在可編程邏輯器件(FPGA)上構(gòu)建嵌入式系統(tǒng)(SoC)來(lái)實(shí)現(xiàn)圖像記錄。使用電子集成驅(qū)動(dòng)器(IDE)的記錄技術(shù)主要是采用硬盤直寫圖像文件的模式,將圖像數(shù)據(jù)以文件的方式存放在硬盤,事后硬盤通過(guò)USB接口對(duì)圖像進(jìn)行讀取。目前該技術(shù)在國(guó)內(nèi)實(shí)際項(xiàng)目應(yīng)用的記錄速度可以達(dá)到單盤50MB/S的記錄速度,還可以在FPGA內(nèi)擴(kuò)展硬盤控制器的個(gè)數(shù)實(shí)現(xiàn)多個(gè)IDE硬盤的并行記錄,從而提高記錄速度。以記錄器(DDR)模組為存儲(chǔ)介質(zhì)的記錄裝置目前最高可以達(dá)到lOOOMB/s的記錄速度,但DDR模組存在容量的限制和掉電數(shù)據(jù)丟失的問(wèn)題?;赑CI接口總線的高速記錄技術(shù)可以分為以工控機(jī)為核心的平臺(tái)和以嵌入式系統(tǒng)為核心的平臺(tái)。在以工控機(jī)為核心的平臺(tái)上,通常是在Windows操作系統(tǒng)上利用DDK開(kāi)發(fā)驅(qū)動(dòng)程序?qū)崿F(xiàn)圖像數(shù)據(jù)記錄。在嵌入式記錄平臺(tái)上目前已經(jīng)應(yīng)用的方案主要是基于嵌入式實(shí)時(shí)操作系統(tǒng)(VxWorks)的高速記錄裝置,記錄速度可以達(dá)到200MB/S。Linux操作系統(tǒng)由于其源代碼開(kāi)放、可剪裁配置、支持多種硬件平臺(tái)、應(yīng)用程序豐富等優(yōu)點(diǎn)而受到廣泛的關(guān)注,把它引入到嵌入式領(lǐng)域是當(dāng)前嵌入式操作系統(tǒng)研究的熱點(diǎn)。與常見(jiàn)的嵌入式操作系統(tǒng)如VxWorks和Windows CE等相比,嵌入式Linux操作系統(tǒng)有開(kāi)源、穩(wěn)定、硬件支持豐富、價(jià)格低廉、功能強(qiáng)大和開(kāi)發(fā)工具完善等優(yōu)點(diǎn),越來(lái)越多的企業(yè)和科研機(jī)構(gòu)已經(jīng)把目光轉(zhuǎn)向了嵌入式Linux操作系統(tǒng)的開(kāi)發(fā)和應(yīng)用上也使Linux操作系統(tǒng)在嵌入式領(lǐng)域得到快速發(fā)展。對(duì)于高速記錄裝置來(lái)說(shuō),不但需要完成對(duì)高幀頻、大陣面相機(jī)的圖像數(shù)據(jù)記錄,還需要實(shí)現(xiàn)將圖像數(shù)據(jù)通過(guò)網(wǎng)絡(luò)進(jìn)行下載的功能,然后恢復(fù)為圖像或視頻文件進(jìn)行存儲(chǔ),以便事后的查找和訪問(wèn)。目前由于軟硬件兼容性等問(wèn)題,大多數(shù)記錄裝置使用的IOOMbps的網(wǎng)絡(luò),所以高速記錄裝置在完成高速圖像記錄任務(wù)的同時(shí)還必須充分發(fā)揮記錄單元的網(wǎng)絡(luò)傳輸能力,解決圖像數(shù)據(jù)高速網(wǎng)絡(luò)傳輸?shù)膯?wèn)題。這就要求對(duì)嵌入式Linux操作系統(tǒng)網(wǎng)絡(luò)傳輸?shù)牧鞒毯托阅苓M(jìn)行分析和研究
發(fā)明內(nèi)容
為了彌補(bǔ)傳統(tǒng)Linux操作系統(tǒng)的內(nèi)核中接口 PCI設(shè)備通用數(shù)據(jù)傳輸記錄模式,解決現(xiàn)有技術(shù)不能滿足圖像數(shù)據(jù)高速網(wǎng)絡(luò)傳輸?shù)募夹g(shù)缺陷,本發(fā)明的目的是滿足CCD相機(jī)的幀頻高、分辨率高、數(shù)據(jù)量大、滿足圖像數(shù)據(jù)高速網(wǎng)絡(luò)傳輸?shù)囊螅瑸榇吮景l(fā)明提供一種基于Linux操作系統(tǒng)的高速圖像記錄裝置。為了實(shí)現(xiàn)所述目的,本發(fā)明基于嵌入式Linux系統(tǒng)的高速圖像記錄裝置的技術(shù)方案是由圖像采集模塊、圖像記錄模塊和PCI總線構(gòu)成;圖像采集模塊的輸入端為相機(jī)輸入數(shù)據(jù),輸出端掛載在PCI總線上,接收采集圖像數(shù)據(jù)先緩存儲(chǔ)到圖像采集模塊的存儲(chǔ)單元中,將Linux操作系統(tǒng)的內(nèi)核移植裁剪到圖像記錄模塊的嵌入式處理器中,以管理整個(gè)圖像記錄裝置;圖像記錄模塊的輸入端通過(guò)PCI總線將接收?qǐng)D像采集模塊中的數(shù)據(jù)映射存儲(chǔ)到圖像記錄模塊的硬盤陣列中;PCI總線分別連接圖像采集模塊和圖像記錄模塊,PCI總線接收?qǐng)D像采集模塊的輸出端輸出的存儲(chǔ)單元中的數(shù)據(jù),將圖像采集模塊存儲(chǔ)單元中的數(shù)據(jù)傳輸?shù)綀D像記錄模塊中。本發(fā)明的有益效果本發(fā)明在串行連接小型計(jì)算機(jī)系統(tǒng)接口(SAS -Serial Attached SCSI (Small Computer System Interface)_)圖像記錄模塊的硬件上,通過(guò)對(duì)本發(fā)明公開(kāi)的高速圖像記錄裝置測(cè)試證明該基于嵌入式Linux操作系統(tǒng)的高速圖像記錄技術(shù)可實(shí)現(xiàn)242MB/S的記錄速度,并且記錄速度隨著硬件系統(tǒng)的升級(jí)還可以進(jìn)一步提高。并在傳輸控制協(xié)議TCP)/計(jì)算機(jī)之間的互聯(lián)協(xié)議(IP)基礎(chǔ)上開(kāi)發(fā)了應(yīng)用程序模塊,實(shí)現(xiàn)了對(duì)圖像數(shù)據(jù)的管理和網(wǎng)絡(luò)遠(yuǎn)程控制功能,滿足了高速記錄軟件系統(tǒng)的需求。該裝置基于開(kāi)源 Linux操作系統(tǒng)進(jìn)行開(kāi)發(fā),根據(jù)其內(nèi)核的機(jī)制和機(jī)構(gòu),結(jié)合高速記錄裝置的專用需求,設(shè)計(jì)并實(shí)現(xiàn)了高速圖像記錄模塊,打破了 Linux操作系統(tǒng)的內(nèi)核中擴(kuò)展接口(PCI)設(shè)備數(shù)據(jù)傳統(tǒng)的傳輸模式。實(shí)現(xiàn)了將擴(kuò)展接口設(shè)備采集到的圖像數(shù)據(jù)以零拷貝的方式直接存儲(chǔ)到硬盤陣列中,并通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)了對(duì)圖像記錄模塊的遠(yuǎn)程控制。本發(fā)明主要采用了在嵌入式系統(tǒng)平臺(tái)上移植了 Linux操作系統(tǒng)的內(nèi)核,利用一種內(nèi)存映射和總線控制技術(shù),使得數(shù)據(jù)不經(jīng)過(guò)裝置的內(nèi)存,而是將采集到的數(shù)據(jù)直接存儲(chǔ)到存儲(chǔ)介質(zhì)中,打破了傳統(tǒng)相數(shù)據(jù)記錄方式, 有效地提高了裝置記錄速度。并針對(duì)實(shí)際工程應(yīng)用,設(shè)計(jì)了必不可少的應(yīng)用程序,實(shí)現(xiàn)了對(duì)圖像記錄模塊的遠(yuǎn)程控制,為該圖像記錄裝置的產(chǎn)品化提供了初步構(gòu)想。也為研制更高速的圖像數(shù)據(jù)記錄裝置提供了一個(gè)參考。本發(fā)明中所涉及的高速圖像記錄裝置結(jié)構(gòu)簡(jiǎn)單、使用方便,在實(shí)際工程中有效地提高了數(shù)據(jù)記錄速度。滿足了高幀頻、高分辨率CCD圖像高速存儲(chǔ)需求,在航天航空、光測(cè)遙感等領(lǐng)域具有廣闊的市場(chǎng)前景和實(shí)際應(yīng)用價(jià)值。


圖1為本發(fā)明基于嵌入式Linux操作系統(tǒng)的高速圖像記錄裝置的硬件結(jié)構(gòu)圖;圖2為本發(fā)明Linux操作系統(tǒng)的內(nèi)核系統(tǒng)啟動(dòng)流程圖;圖3為本發(fā)明高速記錄程序流程圖;圖4為本發(fā)明圖像記錄程序流程;圖5為記錄裝置應(yīng)用的實(shí)施例;圖6為本發(fā)明記錄裝置數(shù)據(jù)流與傳統(tǒng)數(shù)據(jù)流對(duì)比框圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及具體實(shí)施方式
進(jìn)一步詳細(xì)介紹本發(fā)明。在本發(fā)明中公開(kāi)了一種基于Linux操作系統(tǒng)的高速圖像數(shù)據(jù)的記錄裝置,所述高速的范圍是穩(wěn)定記錄速度可達(dá)M2MB/S,且隨硬件升級(jí),速度還可以進(jìn)一步提高,所述的記錄裝置實(shí)現(xiàn)了將PCI設(shè)備采集到的圖像數(shù)據(jù)以零拷貝的方式直接存儲(chǔ)到硬盤陣列觀中, 請(qǐng)參見(jiàn)圖1示出本發(fā)明基于嵌入式Linux操作系統(tǒng)的的高速圖像記錄裝置的硬件結(jié)構(gòu)框圖,包括二部分第一部分為圖像采集模塊1,圖像采集模塊1將相機(jī)11數(shù)據(jù)采集并緩存到圖像采集模塊1的可編程邏輯器件14的外部存儲(chǔ)器12中。第二部分為圖像記錄模塊2, 圖像記錄模塊2是將圖像采集模塊1緩存中的數(shù)據(jù)映射存儲(chǔ)到圖像記錄模塊2的硬盤陣列28中,圖像采集模塊1和圖像記錄模塊2都是掛載在PCI (外設(shè)部件互聯(lián)Peripheral Component Interconnect-PCI)總線3上,以PCI總線3為核心進(jìn)行通信,其中圖像采集模塊1的輸入端為相機(jī)11輸入數(shù)據(jù),輸出端掛載在PCI總線3上,接收采集圖像數(shù)據(jù)先緩存儲(chǔ)到圖像采集模塊1的存儲(chǔ)單元中,將Linux操作系統(tǒng)的內(nèi)核移植裁剪到圖像記錄模塊 2的嵌入式處理器(PowerPC)中,以管理整個(gè)圖像記錄裝置;圖像記錄模塊2的輸入端通過(guò) PCI總線3將接收?qǐng)D像采集模塊1中的數(shù)據(jù)映射存儲(chǔ)到圖像記錄模塊的硬盤陣列中;PCI總線3分別連接圖像采集模塊1和圖像記錄模塊2,PCI總線3接收?qǐng)D像采集模塊1的輸出端輸出的存儲(chǔ)單元中的數(shù)據(jù),將圖像采集模塊1存儲(chǔ)單元中的數(shù)據(jù)傳輸?shù)綀D像記錄模塊2中。在圖像記錄模塊2中將引導(dǎo)加載程序(U-Boot) ,Linux內(nèi)核程序、根文件系統(tǒng)以及應(yīng)用程序都固化到嵌入式處理器的外部閃存中。續(xù)請(qǐng)參考圖2中示出的圖像采集模塊1包括相機(jī)11、第一存儲(chǔ)器12、串口 13、可編程邏輯器件(FPGA) 14 ;其中可編程邏輯器件14的輸入端與相機(jī)11的輸出端連接,可編程邏輯器件14接收相機(jī)11傳輸過(guò)來(lái)的數(shù)據(jù),對(duì)傳輸過(guò)來(lái)的數(shù)據(jù)進(jìn)行采集,將采集過(guò)的數(shù)據(jù)緩存到圖像采集模塊 2的外部存儲(chǔ)器12中,當(dāng)存儲(chǔ)數(shù)據(jù)量達(dá)到一數(shù)值后可編程邏輯器件14再將存儲(chǔ)的數(shù)據(jù)通過(guò) PCI總線傳輸?shù)降诙糠执鎯?chǔ)模塊的硬盤陣列觀中;串口 13的輸入輸出端與可編程邏輯器件14輸入輸出端連接,串口 13的輸入端輸入了相機(jī)11的圖像的附加信息,所述附加信息為圖像產(chǎn)生時(shí)間,圖像坐標(biāo)位置,并將這些附加信息輸出到可編程邏輯器件14中,可編程邏輯器件14輸出相機(jī)數(shù)據(jù);第一存儲(chǔ)器12的輸入輸出端與可編程邏輯器件14的輸入端輸出連接,第一存儲(chǔ)器12輸入可編程邏輯器件14采集后的相機(jī)數(shù)據(jù),當(dāng)輸入數(shù)據(jù)達(dá)某一設(shè)定數(shù)量后,將所有相機(jī)數(shù)據(jù)輸出;PCI總線3與可編程邏輯器件14的輸入輸出端連接,PCI總線3負(fù)責(zé)將圖像采集模塊1中的數(shù)據(jù)傳輸?shù)綀D像記錄模塊2中,PCI總線3在整個(gè)系統(tǒng)中起到的是數(shù)據(jù)傳輸作用。續(xù)請(qǐng)參考圖2示出圖像記錄模塊2包括第一閃存21、控制器22、網(wǎng)口 23、嵌入式處理器對(duì)、第二存儲(chǔ)器25、硬盤接口 26、第二閃存27、硬盤陣列28 ;第一閃存21、控制器22、第二存儲(chǔ)器25的輸入輸出端分別與嵌入式處理器M的輸入輸出端連接,第一閃存21為固化程序存儲(chǔ)器,固化程序存儲(chǔ)器里放置了引導(dǎo)加載程序(U-Boot), Linux內(nèi)核程序、根文件系統(tǒng)以及應(yīng)用程序;控制器22為網(wǎng)絡(luò)控制器,控制網(wǎng)口 23數(shù)據(jù)收發(fā);第二存儲(chǔ)器25為嵌入是處理器的系統(tǒng)內(nèi)存,接收輸出記錄過(guò)程中系統(tǒng)產(chǎn)生的中間數(shù)據(jù);網(wǎng)口 23的輸入輸出端與控制器22的輸入輸出端連接,網(wǎng)口 23作用有二個(gè)一為遠(yuǎn)端通過(guò)網(wǎng)絡(luò)輸入控制指令到嵌入式處理器M中,以控制整個(gè)圖像記錄裝置,包括記錄暫停,記錄數(shù)據(jù)清除、記錄數(shù)據(jù)檢索、記錄圖像數(shù)據(jù)回放,二為事后記錄數(shù)據(jù)下載;嵌入式處理器M輸入輸出端與PCI總線連接,嵌入式處理器M輸入端接收了 PCI 總線輸出圖像數(shù)據(jù),輸入控制指令到硬盤控制器,控制數(shù)據(jù)記錄;硬盤接口沈的輸入輸出端與PCI總線連接,硬盤接口沈的輸入輸出端接收了從第一部分采集端可編程邏輯器件14傳輸過(guò)來(lái)的數(shù)據(jù)以及從嵌入式處理器M端傳送過(guò)來(lái)的指令,并對(duì)指令做出作出相應(yīng)響應(yīng),從而輸入數(shù)據(jù)到硬盤陣列觀中,或事后從硬盤陣列觀中輸出數(shù)據(jù)到外部;第二閃存27和硬盤陣列觀的輸入輸出端分別與硬盤接口沈的輸入輸出端連接, 第二閃存27中存放了控制器22的引導(dǎo)啟動(dòng)程序,第二閃存27為固化程序存儲(chǔ)器,固化程序存儲(chǔ)器里放置了引導(dǎo)加載程序(U-Boot)、Linux內(nèi)核程序、根文件系統(tǒng)以及應(yīng)用程序;硬盤陣列觀為存儲(chǔ)介質(zhì),接收存儲(chǔ)硬盤接口 26中傳輸過(guò)來(lái)數(shù)據(jù)。下面將詳細(xì)介紹基于Linux操作系統(tǒng)的圖像記錄裝置的實(shí)現(xiàn)過(guò)程。1嵌入式Linux操作系統(tǒng)的軟件平臺(tái)搭建構(gòu)建嵌入式圖像記錄硬件平臺(tái),將Linux操作系統(tǒng)移植到嵌入式平臺(tái)中,一個(gè)完整的Linux系統(tǒng)包括一個(gè)Linux操作系統(tǒng)的內(nèi)核及設(shè)備驅(qū)動(dòng)程序,利用加載程序(U-Boot) 初始化嵌入式圖像記錄硬件平臺(tái)的各種設(shè)備,引導(dǎo)Linux操作系統(tǒng)的內(nèi)核啟動(dòng)并最終調(diào)用Linux操作系統(tǒng)的內(nèi)核,并向Linux操作系統(tǒng)的內(nèi)核中傳遞參數(shù),加載程序只對(duì)硬件進(jìn)行基本的初始化,并將Linux操作系統(tǒng)的內(nèi)核映像文件和文件系統(tǒng)拷貝到嵌入式處理器 24(PowerPC)的內(nèi)存(RAM)中,為L(zhǎng)inux操作系統(tǒng)的內(nèi)核的啟動(dòng)設(shè)置基本的運(yùn)行環(huán)境,此后就跳轉(zhuǎn)到Linux操作系統(tǒng)的內(nèi)核映像的首地址處,將中央處理器(Central Processing Unit-CPU)運(yùn)行權(quán)交給Linux操作系統(tǒng)的內(nèi)核,以便Linux操作系統(tǒng)的內(nèi)核進(jìn)一步初始化硬件;為引導(dǎo)一個(gè)完整的Linux操作系統(tǒng)的還需要Linux操作系統(tǒng)的內(nèi)核啟動(dòng)后掛載一個(gè)根文件系統(tǒng),當(dāng)所有功能調(diào)試完成后,使圖像記錄模塊2脫離主機(jī)獨(dú)立運(yùn)行(因?yàn)樵撚涗浹b置是嵌入式系統(tǒng)裝置,固所有功能調(diào)試完畢后,必須脫離主機(jī)即調(diào)試該圖像記錄裝置的PC 機(jī)獨(dú)立運(yùn)行,所以需要移植加載Linux系統(tǒng)到嵌入式處理器(PowerPC)中)。故所有的文件需要保存在永久的存儲(chǔ)介質(zhì)Flash上,根據(jù)本發(fā)明所公開(kāi)的嵌入式高速圖像記錄裝置出實(shí)際需要和以及文件系統(tǒng)JFFS2的優(yōu)良特性,采用了 JFFS2作為根文件系統(tǒng),搭建出嵌入式 Linux操作系統(tǒng)的平臺(tái);嵌入式Linux操作系統(tǒng)的構(gòu)建過(guò)程幾乎包括了嵌入式軟件開(kāi)發(fā)中運(yùn)用到的所有技術(shù),整個(gè)移植過(guò)程中包括了交叉開(kāi)發(fā)環(huán)境的搭建、宿主機(jī)的代碼編輯、程序編譯、連接以及通過(guò)目標(biāo)機(jī)上的調(diào)試代理進(jìn)行系統(tǒng)主機(jī)端(圖5中示出的系統(tǒng)主機(jī)端)的遠(yuǎn)程調(diào)試,最終把建立好的程序固化到嵌入式目標(biāo)板中,完成最后的應(yīng)用發(fā)布工作。建立好交叉開(kāi)發(fā)環(huán)境后,就可以對(duì)Linux操作系統(tǒng)的內(nèi)核進(jìn)行配置和編譯。通過(guò)make menuconfig命令可以根據(jù)具體硬件平臺(tái)為圖像記錄模塊2中的控制器22、嵌入式處理器M、硬盤接口 26,硬件平臺(tái)對(duì)Linux操作系統(tǒng)的內(nèi)核進(jìn)行配置和剪裁。在配置好Linux操作系統(tǒng)的內(nèi)核后,通過(guò) make命令進(jìn)行編譯。編譯成功后就會(huì)在/arch/ppc/boot/images/目錄下生成ulmage內(nèi)核文件。不過(guò)該文件還不能應(yīng)用于嵌入式處理器對(duì),還需要對(duì)U-Boot和Linux操作系統(tǒng)的內(nèi)核進(jìn)行移植后才能使用。1. 1引導(dǎo)加載程序(U-Boot)移植通常在移植U-Boot過(guò)程中會(huì)選擇一個(gè)和目標(biāo)板所使用的處理器相同的程序移植模板,所以U-Boot移植過(guò)程中嵌入式處理器的初始化部分基本不需要修改,主要是需要針對(duì)嵌入式處理器M所使用的外圍設(shè)備進(jìn)行配置和驅(qū)動(dòng)移植。圖像記錄單元2是以PowerPC 為核心的硬件平臺(tái),針對(duì)工程中具體硬件平臺(tái)主要做一下移植工作。由于U-Boot啟動(dòng)一般是分為二個(gè)階段完成,所以在移植中也是按照二個(gè)階段來(lái)進(jìn)行操作。第一階段主要包括依賴于CPU體系結(jié)構(gòu)的硬件初始化代碼移植包括1)定義入口,由于一個(gè)可執(zhí)行的程序在上電是必須由一個(gè)入口點(diǎn),并且只能有一個(gè)全局入口,在PowerPC平臺(tái)上該地址為OxFFFFFFFC。因此必須通知編譯器以使其知道這個(gè)入口。2)設(shè)置異常向量表和系統(tǒng)復(fù)位(在U-Boot中),包括未定義指令異常、軟中斷異常、內(nèi)存操作異常、數(shù)據(jù)異常、中斷異常及快速中斷異常等;設(shè)置CPU為SVC模式,關(guān)閉看門狗,屏蔽所有中斷,設(shè)置CPU時(shí)鐘頻率及中斷控制寄存器。3)初始化內(nèi)存控制器22。4)將Flash中的程序自身復(fù)制到RAM中;初始化堆棧,為C程序執(zhí)行創(chuàng)造條件,然后轉(zhuǎn)到RAM中繼續(xù)執(zhí)行。第二階段C代碼的移植包括1)初始化本階段要用到的硬件設(shè)備;幻檢測(cè)系統(tǒng)內(nèi)存映射;幻將內(nèi)核映像和根文件系統(tǒng)從Flash讀到RAM中;4)為內(nèi)核設(shè)置啟動(dòng)參數(shù);5)調(diào)用內(nèi)核。1. 2Linux操作系統(tǒng)的內(nèi)核移植為了引導(dǎo)Linux操作系統(tǒng)的,U-Boot需要初始化嵌入式開(kāi)發(fā)板的各種設(shè)備,最終調(diào)用Linux操作系統(tǒng)的內(nèi)核,并向內(nèi)核中傳遞必要的參數(shù)。U-Boot只完成對(duì)硬件的基本初始化,并將內(nèi)核映像文件和文件系統(tǒng)拷貝到RAM中,然后為內(nèi)核啟動(dòng)設(shè)置基本的運(yùn)行環(huán)境。 此后就跳轉(zhuǎn)到內(nèi)核映像的首地址處,將CPU運(yùn)行權(quán)交給內(nèi)核。內(nèi)核需要在此基礎(chǔ)上對(duì)硬件做進(jìn)一步的初始化才能進(jìn)行設(shè)備驅(qū)動(dòng)程序的加載等工作。具體工作包括1)CPU自身初始化;當(dāng)U-Boot完成自身任務(wù)后,就開(kāi)始跳入到內(nèi)核的入口處進(jìn)行內(nèi)核初始化的第一階段, 完成自身的初始化工作。i)系統(tǒng)資源初始化;這是內(nèi)核初始化第二階段的主體,是對(duì)系統(tǒng)結(jié)構(gòu)相關(guān)的硬件進(jìn)行初始化,主要是和內(nèi)存有關(guān)的選項(xiàng),如內(nèi)存大小的判定等。3)內(nèi)核初始化線程功能;在初始化函數(shù)init中,通過(guò)調(diào)用相關(guān)函數(shù)完成文件系統(tǒng)的加載等相關(guān)設(shè)備的初始化工作。1. 3根文件系統(tǒng)的移植—個(gè)完整的Linux操作系統(tǒng)還需要在Linux操作系統(tǒng)的內(nèi)核啟動(dòng)后掛載一個(gè)根文件系統(tǒng),根據(jù)嵌入式記錄裝置實(shí)際需求和文件系統(tǒng)JFFS2的良好特性,在本發(fā)明中選取了 JFFS2作為根文件系統(tǒng)。JFFS2使用一個(gè)抽象層把Flash模擬為一個(gè)普通硬盤,并結(jié)合閃存的特殊屬性,對(duì)標(biāo)準(zhǔn)的日志文件系統(tǒng)結(jié)構(gòu)進(jìn)行了簡(jiǎn)化。它保證當(dāng)運(yùn)行的嵌入式Linux系統(tǒng)非正常關(guān)閉時(shí)操作的可靠性,是Flash設(shè)備上保存經(jīng)常修改數(shù)據(jù)的文件系統(tǒng)的理想選擇。至此整個(gè)Linux操作系統(tǒng)的軟件平臺(tái)已經(jīng)搭建完畢,其中涉及到的具體移植工作如上述所述。整個(gè)Linux操作系統(tǒng)的內(nèi)核的啟動(dòng)可以簡(jiǎn)單的概括為如圖2所示步驟Al 首先上電啟動(dòng)U-Boot轉(zhuǎn)跳至Flash啟動(dòng);步驟A2 設(shè)置異常向量表;步驟A3 系統(tǒng)復(fù)位、初始化PowerPC ;步驟A4:初始化內(nèi)存;步驟A5 拷貝其余代碼到內(nèi)存中;步驟A6 —切正常則轉(zhuǎn)向內(nèi)存中進(jìn)行第二階段初始化;步驟A7 默認(rèn)三秒等待擊鍵,有擊鍵則執(zhí)行步驟A8,沒(méi)有擊鍵則直接裝載并啟動(dòng)內(nèi)核;步驟A8 =U-Boot循環(huán)等待命令,如果有循環(huán)等待命令則執(zhí)行步驟A9,如果沒(méi)有循環(huán)等待命令則返回U-Boot循環(huán)等待命令;步驟A9 解析并等待啟動(dòng)內(nèi)核執(zhí)行命令,如果有啟動(dòng)內(nèi)核命令則裝載并啟動(dòng)內(nèi)核,如果沒(méi)有啟動(dòng)內(nèi)核命令則返回U-Boot循環(huán)等待命令。2圖像記錄模塊設(shè)計(jì)圖像記錄模塊2的設(shè)計(jì)是在采集和存儲(chǔ)之間建立了直接數(shù)據(jù)傳輸通道,以零拷貝的方式將采集到數(shù)據(jù)直接存儲(chǔ)待硬盤陣列觀中;采用映射內(nèi)存以及總線控制技術(shù),控制器 22為PCI總線的主設(shè)備,可編程邏輯器件14為從設(shè)備,控制器22對(duì)可編程邏輯器件14直接進(jìn)行訪問(wèn),用于縮短系統(tǒng)數(shù)據(jù)傳輸路徑,從而在提高系統(tǒng)記錄速度的同時(shí)減少了系統(tǒng)延遲和響應(yīng)時(shí)間;要實(shí)現(xiàn)高速圖像記錄模塊2必須按照Linux操作系統(tǒng)的設(shè)備驅(qū)動(dòng)模型來(lái)開(kāi)發(fā)軟件,完成將采集到可編程邏輯器件14的緩存中的數(shù)據(jù)不經(jīng)過(guò)嵌入式處理器的第二存儲(chǔ)器25,以零拷貝的方式直接存儲(chǔ)到硬盤陣列觀中的功能。在Linux操作系統(tǒng)的內(nèi)核中所支持的硬盤接口 26都是實(shí)現(xiàn)嵌入式處理器M中運(yùn)行的Linux系統(tǒng)和外部硬件即硬盤接口 26的數(shù)據(jù)交互,實(shí)現(xiàn)將可編程邏輯器件14采集的數(shù)據(jù)直接存儲(chǔ)到硬盤陣列觀中的高速圖像記錄模塊2需要自行設(shè)計(jì),該圖像記錄模塊2主要有以下三個(gè)特點(diǎn)1)調(diào)用方式;2)實(shí)時(shí)操作性;3)內(nèi)存管理和映射方式。高速圖像記錄模塊2主要是將可編程邏輯器件14采集的數(shù)據(jù)通過(guò)PCI總線3和硬盤接口沈存儲(chǔ)到硬盤陣列觀,在高速記錄過(guò)程中沒(méi)有使用文件系統(tǒng),所以通過(guò)對(duì)Linux操作系統(tǒng)的內(nèi)核中SCSI設(shè)備操作程序結(jié)構(gòu)的介紹,結(jié)合高速圖像記錄模塊2的具體需求,高速圖像記錄模塊2主要是在通用塊層、塊設(shè)備驅(qū)動(dòng)程序?qū)雍?SCSI子系統(tǒng)中實(shí)現(xiàn)。2. ISCSI設(shè)備操作的程序架構(gòu)Linux操作系統(tǒng)的內(nèi)核中SCSI設(shè)備操作的一個(gè)分層實(shí)現(xiàn)圖,主要由虛擬文件系統(tǒng)、文件系統(tǒng)層、通用塊層、I/O調(diào)度程序?qū)?、塊設(shè)備驅(qū)動(dòng)程序和SCSI子系統(tǒng)組成。通用塊層是Linux內(nèi)核中重要的組成部分,它負(fù)責(zé)Linux系統(tǒng)中所有塊設(shè)備發(fā)出的請(qǐng)求;塊設(shè)備是一種具有一定結(jié)構(gòu)的隨機(jī)存取設(shè)備,對(duì)這種設(shè)備的讀寫是按塊進(jìn)行的,它使用緩沖區(qū)來(lái)存放暫時(shí)的數(shù)據(jù),待條件成熟后,從緩存一次性寫入設(shè)備或從設(shè)備中一次性讀出放入緩存區(qū),如磁盤和文件系統(tǒng),SCSI硬盤也屬于塊設(shè)備。bio結(jié)構(gòu)是該層的核心結(jié)構(gòu),它描述了塊設(shè)備的 I/O操作。每個(gè)bio結(jié)構(gòu)都包含一個(gè)磁盤存儲(chǔ)區(qū)標(biāo)示符(包括起始扇區(qū)號(hào)和扇區(qū)數(shù)目)和與I/O操作相關(guān)的內(nèi)存區(qū),并包含了驅(qū)動(dòng)程序執(zhí)行請(qǐng)求的全部信息。根據(jù)具體數(shù)據(jù)讀寫應(yīng)用初始化bio結(jié)構(gòu)。塊設(shè)備驅(qū)動(dòng)程序是Linux塊子系統(tǒng)中底層組件,它從I/O調(diào)度程序中獲取請(qǐng)求,然后按照要求處理這些請(qǐng)求。每個(gè)塊設(shè)備驅(qū)動(dòng)程序的核心是它的請(qǐng)求函數(shù)。當(dāng)內(nèi)核需要驅(qū)動(dòng)程序處理讀寫及其它設(shè)備操作時(shí)就會(huì)調(diào)用請(qǐng)求函數(shù)。Linux操作系統(tǒng)的內(nèi)核中SCSI子系統(tǒng)是一種分層的架構(gòu),共分為三層。頂層代表內(nèi)核針對(duì)SCSI設(shè)備驅(qū)動(dòng)器的最高接口。中間層包含上層和底層的一些公共服務(wù)。底層代表適合于SCSI物理接口的實(shí)際驅(qū)動(dòng)器。2. 2高速記錄流程請(qǐng)參見(jiàn)圖3本發(fā)明高速記錄程序流程圖,圖1中圖像記錄模塊2主要在兩個(gè)層次上實(shí)現(xiàn)。圖像記錄模塊2主要記錄步驟如圖3所示步驟Bl 首先是在Linux系統(tǒng)的通用塊層中完成初始化bio結(jié)構(gòu);步驟B2 分配嵌入式處理器M中內(nèi)存,并在內(nèi)存中設(shè)置標(biāo)志和參數(shù);bio結(jié)構(gòu)中包含了讀寫硬盤陣列觀操作時(shí)所需要的所有信息,所以可以根據(jù)需要初始化包括設(shè)置硬盤陣列觀的描述符、讀寫數(shù)據(jù)量大小和存儲(chǔ)硬盤扇區(qū)位置等信息。但是在bio結(jié)構(gòu)中數(shù)據(jù)存儲(chǔ)位置只能設(shè)置為L(zhǎng)inux系統(tǒng)的內(nèi)存虛擬地址,無(wú)法直接將其指向 FPGA虛擬地址地址。為了解決這個(gè)問(wèn)題,在嵌入式處理器M中運(yùn)行的Linux系統(tǒng)內(nèi)存中分配一塊內(nèi)存,在這塊內(nèi)存中設(shè)置標(biāo)志和參數(shù),然后將這塊內(nèi)存虛擬地址賦值給bio結(jié)構(gòu)。步驟B3 通過(guò)submit_bio ()函數(shù)提交操作請(qǐng)求。步驟B4 然后是在SCSI子系統(tǒng)中根據(jù)bio內(nèi)存中設(shè)置的標(biāo)志和參數(shù),判斷該請(qǐng)求是否為高速圖像記錄模塊2的請(qǐng)求,如果是高速圖像記錄模塊2的請(qǐng)求,則執(zhí)行步驟B5,如果不是高速圖像記錄模塊2的請(qǐng)求,則執(zhí)行步驟B6。步驟B5 根據(jù)FPGA緩存物理地址和讀寫數(shù)據(jù)量大小,設(shè)置FPGA緩存地址和參數(shù), 執(zhí)行步驟B6 ;步驟B6 通過(guò)SCSI底層驅(qū)動(dòng)設(shè)置控制器,寄存器,完成數(shù)據(jù)傳輸。在本發(fā)明的圖像記錄裝置中,第一部分可編程邏輯器件采集模塊和控制器22都是PCI設(shè)備,高速圖像記錄模塊2就是控制和協(xié)調(diào)這兩個(gè)PCI設(shè)備工作。圖像記錄模塊2 作為L(zhǎng)inux操作系統(tǒng)的內(nèi)核的一部分,必須按照Linux內(nèi)核規(guī)范的特定方式來(lái)完成。PCI將系統(tǒng)外部設(shè)備以結(jié)構(gòu)化與可控制方式連接起來(lái),CPU和PCI設(shè)備需要在它們之間共享內(nèi)存空間存取數(shù)據(jù)。這塊內(nèi)存區(qū)域被設(shè)備驅(qū)動(dòng)用來(lái)控制PCI設(shè)備并在CPU和PCI設(shè)備之間傳遞信息。PCI的所有空間確??梢员籆PU訪問(wèn),其中輸入輸出(1/0)空間和存儲(chǔ)空間提供給設(shè)備驅(qū)動(dòng)程序使用,而配置空間則由Linux操作系統(tǒng)的內(nèi)核中的PCI初始化代碼使用。內(nèi)核在啟動(dòng)時(shí)負(fù)責(zé)對(duì)所有PCI設(shè)備進(jìn)行初始化。配置所有的PCI設(shè)備,包括中斷號(hào)以及1/0 基地址等。在用模塊方式實(shí)現(xiàn)PCI設(shè)備驅(qū)動(dòng)程序時(shí),需要實(shí)現(xiàn)初始化設(shè)備模塊、設(shè)備打開(kāi)模塊、數(shù)據(jù)讀寫和控制模塊、中斷處理模塊、設(shè)備釋放模塊、設(shè)備卸載模塊。執(zhí)行安裝驅(qū)動(dòng)命令后,首先執(zhí)行的就是模塊初始化函數(shù)函數(shù),在該函數(shù)中需要設(shè)置驅(qū)動(dòng)模塊的主次設(shè)備號(hào),然后根據(jù)主次設(shè)備號(hào)注冊(cè)為字符設(shè)備驅(qū)動(dòng)。注冊(cè)為字符設(shè)備驅(qū)動(dòng)后,Linux內(nèi)核中各驅(qū)動(dòng)模塊就可以和用戶空間的應(yīng)用程序進(jìn)行交互,為整個(gè)軟件系統(tǒng)功能的完成奠定基礎(chǔ)。然后打開(kāi)需要寫入數(shù)據(jù)的硬盤,得到塊設(shè)備描述符。讀取采集模塊中可編程邏輯器件產(chǎn)生的中斷號(hào),注冊(cè)中斷處理函數(shù)。讀取可編程邏輯器件FPGA配置空間得到可編程邏輯器件FPGA緩存空間的物理地址,并將其映射到虛擬地址空間。在訪問(wèn)PCI設(shè)備地址前必須建立映射,將物理地址映射到內(nèi)核地址空間中,該功能是由特定的函數(shù)ioremapO完成,它專用于為I/ 0內(nèi)存區(qū)域分配虛擬地址。一旦經(jīng)過(guò)ioremap映射后,設(shè)備驅(qū)動(dòng)程序就可以訪問(wèn)相應(yīng)的I/ 0內(nèi)存地址了。整個(gè)圖像記錄裝置是通過(guò)網(wǎng)絡(luò)來(lái)進(jìn)行遠(yuǎn)程控制,當(dāng)需要開(kāi)始記錄圖像數(shù)據(jù)時(shí),就通過(guò)網(wǎng)絡(luò)將命令發(fā)送給第二部分的嵌入式處理器M中,24中運(yùn)行的Linux內(nèi)核系統(tǒng)收到命令后,首先對(duì)命令進(jìn)行解析。如果判斷是開(kāi)始記錄命令就調(diào)用開(kāi)始記錄函數(shù),該函數(shù)主要功能就是使能可編程邏輯器件14中斷。由于CCD相機(jī)的圖像數(shù)據(jù)是連續(xù)的,所以圖像采集模塊中的可編程邏輯器件14對(duì)圖像數(shù)據(jù)的采集也是連續(xù)的。圖像記錄程序流程如圖 4所示,當(dāng)可編程邏輯器件14采集數(shù)據(jù)存滿緩存時(shí),就發(fā)出中斷通知PowerPC。在沒(méi)有使能可編程邏輯器件14中斷前,PowerPC不對(duì)中斷進(jìn)行處理。當(dāng)可編程邏輯器件14中斷使能后,PowerPC接受到中斷時(shí)就會(huì)調(diào)用中斷處理函數(shù)對(duì)其進(jìn)行處理步驟Cl:開(kāi)始記錄;步驟C2:判斷檢測(cè)記錄是否中斷,如果有中斷標(biāo)志則執(zhí)行步驟C3,如果沒(méi)有中斷標(biāo)志則結(jié)束;步驟C3 清除中斷標(biāo)志;步驟C4 并調(diào)用tasklet處理例程進(jìn)行中斷下半部分處理;步驟C5 進(jìn)而tasklet處理例程就會(huì)按照上面所述的高速記錄程序開(kāi)始對(duì)圖像數(shù)據(jù)進(jìn)行記錄,如果沒(méi)有停止記錄,則執(zhí)行步驟C2,如果停止記錄,則結(jié)束返回。3應(yīng)用程序設(shè)計(jì)為了提高系統(tǒng)的記錄速度,本發(fā)明中記錄平臺(tái)采用硬盤陣列觀順序方式寫入。此外設(shè)計(jì)一種格式對(duì)任務(wù)信息和圖像數(shù)據(jù)進(jìn)行管理,進(jìn)而便于事后對(duì)所記錄的圖像數(shù)據(jù)進(jìn)行下載、恢復(fù)和處理;包括圖像記錄裝置啟動(dòng)\停止、信息查詢、工作模式設(shè)置和圖像下載和圖像在線回放功能,實(shí)現(xiàn)對(duì)圖像記錄單元2進(jìn)行遠(yuǎn)程控制,所述遠(yuǎn)程控制包括圖像記錄裝置的啟動(dòng)\停止、信息查詢、工作模式設(shè)置和圖像下載和圖像在線回放。3. 1圖像數(shù)據(jù)管理在記錄數(shù)據(jù)過(guò)程中,為了減少硬盤的尋道時(shí)間提高記錄速度,圖像記錄裝置采用了對(duì)硬盤陣列觀順序?qū)懭氲姆绞健R簿褪前凑沼脖P的邏輯塊地址依次寫入硬盤。這樣雖然可以提高數(shù)據(jù)的記錄速度,但是硬盤陣列觀中就沒(méi)有文件系統(tǒng),這對(duì)數(shù)據(jù)的管理提出了要求。圖像記錄裝置在使用中需要記錄多個(gè)任務(wù),并且每個(gè)任務(wù)所記錄的圖像都有不同的參數(shù)和格式,所以必須設(shè)計(jì)出一種格式對(duì)任務(wù)信息和圖像數(shù)據(jù)進(jìn)行管理,這樣才能事后方便的對(duì)所記錄的圖像數(shù)據(jù)進(jìn)行下載、恢復(fù)和處理。為了將記錄的數(shù)據(jù)恢復(fù)為圖像,需要建立每次記錄任務(wù)數(shù)據(jù)的管理信息。在記錄中根據(jù)具體需求用頭表和任務(wù)信息表兩個(gè)部分來(lái)管理硬盤所記錄的數(shù)據(jù)。頭表包含硬盤陣列的一些總的信息,包括硬盤個(gè)數(shù)、總?cè)萘俊⑹S嗳萘康鹊?;每ι個(gè)任務(wù)對(duì)應(yīng)1個(gè)任務(wù)信息表,任務(wù)信息表占1個(gè)扇區(qū)共512字節(jié),包含有每個(gè)任務(wù)的具體信息,例如起始、結(jié)束邏輯塊地址,圖像幀數(shù)等等。在開(kāi)始記錄前和停止記錄后將得到的參數(shù)信息更新到指定的硬盤邏輯塊地址中進(jìn)行保存。當(dāng)需要下載圖像數(shù)據(jù)時(shí)將圖像數(shù)據(jù)和參數(shù)信息一起發(fā)送給主機(jī),主機(jī)就可以根據(jù)這些參數(shù)信息將圖像數(shù)據(jù)進(jìn)行恢復(fù)。3. 2網(wǎng)絡(luò)遠(yuǎn)程控制在圖像記錄裝置實(shí)際工程使用時(shí)如圖5所示。從圖中可以看出系統(tǒng)主機(jī)通過(guò)網(wǎng)絡(luò)交換機(jī)來(lái)控制圖像記錄單元2并且記錄在硬盤陣列觀(圖1中示出)上的圖像數(shù)據(jù)最終也要通過(guò)網(wǎng)絡(luò)下載到遠(yuǎn)端控制部分的系統(tǒng)主機(jī)上,為了實(shí)現(xiàn)對(duì)圖像記錄單元2進(jìn)行遠(yuǎn)程控制,必須定義出網(wǎng)絡(luò)命令協(xié)議,根據(jù)具體工程應(yīng)用的需要定義了各種網(wǎng)絡(luò)命令。本發(fā)明中公開(kāi)了該記錄裝置平臺(tái)可以實(shí)現(xiàn)圖像記錄單元2的啟動(dòng)/停止、數(shù)據(jù)清空、信息查詢、工作模式設(shè)置和圖像下載命令。下面針對(duì)幾個(gè)主要的命令給出具體如何執(zhí)行的技術(shù)方案在圖5中,遠(yuǎn)端控制的系統(tǒng)主機(jī)上按照命令格式發(fā)送開(kāi)始記錄命令,圖像記錄單元2通過(guò)網(wǎng)絡(luò)接收到命令后對(duì)其進(jìn)行解析。按照命令字調(diào)用不同的處理函數(shù)。開(kāi)始記錄調(diào)用函數(shù),主要操作流程如下1、更新頭表增加記錄的任務(wù)數(shù)、更新當(dāng)前任務(wù)號(hào)、查找當(dāng)前任務(wù)起始邏輯塊地址;2、更新任務(wù)信息表將新任務(wù)的任務(wù)號(hào)、起始邏輯塊地址、任務(wù)名稱和參數(shù)信息寫入任務(wù)信息表;3、將開(kāi)始記錄命令通過(guò)網(wǎng)絡(luò)傳入內(nèi)核空間,內(nèi)核處理函數(shù)始能中斷;4、中斷觸發(fā)中斷處理函數(shù),記錄裝置開(kāi)始記錄數(shù)據(jù);遠(yuǎn)端主機(jī)按照命令格式發(fā)送停止記錄命令,圖像記錄單元2對(duì)命令進(jìn)行解析,停止記錄所調(diào)用的處理函數(shù)主要操作流程如下1、將停止記錄命令通過(guò)網(wǎng)絡(luò)接口傳遞給內(nèi)核;2、內(nèi)核接到停止記錄命令后,關(guān)閉FPGA中斷,記錄裝置停止記錄數(shù)據(jù);3、將當(dāng)前任務(wù)的結(jié)束邏輯塊地址傳回給用戶空間;4、用戶空間更新頭表和任務(wù)信息表;主機(jī)按照命令格式發(fā)送圖像下載命令,圖像記錄單元2對(duì)命令進(jìn)行解析。因?yàn)橄螺d圖像是將圖像數(shù)據(jù)從硬盤讀出到嵌入式處理器25的內(nèi)存(圖1中示出),然后再?gòu)那度胧教幚砥?5內(nèi)存經(jīng)過(guò)網(wǎng)絡(luò)發(fā)送給遠(yuǎn)端主機(jī),所以整個(gè)流程可以在用戶空間完成。主要操作流程如下1、從命令參數(shù)中解析出任務(wù)號(hào)和需要下載的圖像幀序號(hào);2、從任務(wù)信息表中獲取該任務(wù)的起始邏輯塊地址,進(jìn)而得到需要下載的圖像幀的邏輯塊地址;3、將數(shù)據(jù)從得到的邏輯塊地址讀出到系統(tǒng)內(nèi)存中;4、將讀取到嵌入式處理器的內(nèi)存中的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)發(fā)送給遠(yuǎn)端主機(jī),這樣圖5中的遠(yuǎn)端控制的主機(jī)接收數(shù)據(jù)后將其還原為圖像;圖6為本發(fā)明記錄裝置數(shù)據(jù)流與傳統(tǒng)數(shù)據(jù)流對(duì)比框圖,該圖反應(yīng)了說(shuō)明書中所闡述的數(shù)據(jù)不經(jīng)過(guò)系統(tǒng)內(nèi)存直接進(jìn)入硬盤陣列觀中。以上所述,僅為本發(fā)明中的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可理解想到將整個(gè)高速圖像記錄裝置中的部分器件更換,或增加、減少本發(fā)明中涉及到的部分應(yīng)用程序,故這些都應(yīng)涵蓋在本發(fā)明的包含范圍之內(nèi)。
權(quán)利要求
1.一種基于嵌入式Linux系統(tǒng)的高速圖像記錄裝置,其特征在于由圖像采集模塊、圖像記錄模塊和PCI總線構(gòu)成;圖像采集模塊的輸入端為相機(jī)輸入數(shù)據(jù),輸出端掛載在PCI總線上,接收采集圖像數(shù)據(jù)先緩存儲(chǔ)到圖像采集模塊的存儲(chǔ)單元中,將Linux操作系統(tǒng)的內(nèi)核移植裁剪到圖像記錄模塊的嵌入式處理器中,以管理整個(gè)圖像記錄裝置;圖像記錄模塊的輸入端通過(guò)PCI總線將接收?qǐng)D像采集模塊中的數(shù)據(jù)映射存儲(chǔ)到圖像記錄模塊的硬盤陣列中;PCI總線分別連接圖像采集模塊和圖像記錄模塊,PCI總線接收?qǐng)D像采集模塊的輸出端輸出的存儲(chǔ)單元中的數(shù)據(jù),將圖像采集模塊存儲(chǔ)單元中的數(shù)據(jù)傳輸?shù)綀D像記錄模塊中。
2.根據(jù)權(quán)利要求1所述的基于嵌入式Linux系統(tǒng)的高速圖像記錄裝置,其特征在于,在圖像記錄模塊中將引導(dǎo)加載程序、Linux內(nèi)核程序、根文件系統(tǒng)以及應(yīng)用程序都固化到嵌入式處理器的外部閃存中。
3.根據(jù)權(quán)利要求1所述的基于嵌入式Linux系統(tǒng)的高速圖像記錄裝置,其特征在于,所述圖像采集模塊包括相機(jī)、第一存儲(chǔ)器、串口、可編程邏輯器件,其中可編程邏輯器件的輸入端與相機(jī)的輸出端連接,可編程邏輯器件接收相機(jī)傳輸過(guò)來(lái)的數(shù)據(jù),對(duì)傳輸過(guò)來(lái)的數(shù)據(jù)進(jìn)行采集后緩存到圖像采集模塊的外部存儲(chǔ)器中;串口的輸出端與可編程邏輯器件輸入輸出端連接,串口的輸入端輸入了相機(jī)圖像的附加信息,所述附加信息為圖像產(chǎn)生時(shí)間,圖像坐標(biāo)位置,并將這些附加信息輸出到可編程邏輯器件中,可編程邏輯器件輸出相機(jī)數(shù)據(jù);第一存儲(chǔ)器的輸入輸出端與可編程邏輯器件的輸入端輸出連接,第一該存儲(chǔ)器的輸入端接收可編程邏輯器件輸出的相機(jī)數(shù)據(jù),當(dāng)輸入相機(jī)數(shù)據(jù)達(dá)到某一設(shè)定數(shù)量后,則將所有相機(jī)數(shù)據(jù)輸出。
4.根據(jù)權(quán)利要求1所述的基于嵌入式Linux系統(tǒng)的高速圖像記錄裝置,其特征在于,所述圖像記錄模塊包括第一閃存、控制器、網(wǎng)口、嵌入式處理器、第二存儲(chǔ)器、硬盤接口、第二閃存、硬盤陣列,其中第一閃存、控制器、第二存儲(chǔ)器的輸入輸出端分別與嵌入式處理器的輸入輸出端連接, 第一閃存為固化程序存儲(chǔ)器,固化程序存儲(chǔ)器里放置了引導(dǎo)加載程序、Linux內(nèi)核程序、根文件系統(tǒng)以及應(yīng)用程序;控制器為網(wǎng)絡(luò)控制器,控制網(wǎng)口數(shù)據(jù)收發(fā);第二存儲(chǔ)器為嵌入式處理器的系統(tǒng)內(nèi)存,接收輸出記錄過(guò)程中系統(tǒng)產(chǎn)生的中間數(shù)據(jù);網(wǎng)口的輸入輸出端與控制器的輸入輸出端連接,網(wǎng)口的作用有二個(gè)一為遠(yuǎn)端通過(guò)網(wǎng)絡(luò)輸入控制指令到嵌入式處理器中,以控制整個(gè)圖像記錄裝置,包括記錄暫停、記錄數(shù)據(jù)清除、記錄數(shù)據(jù)檢索、記錄圖像數(shù)據(jù)回放;二為事后記錄數(shù)據(jù)下載;嵌入式處理器輸入輸出端與PCI總線連接,嵌入式處理器輸入端接收了 PCI總線輸出圖像數(shù)據(jù),輸入控制指令到硬盤控制器,控制數(shù)據(jù)記錄;硬盤接口的輸入輸出端與PCI總線連接,硬盤接口的輸入輸出端接收了從第一部分采集端可編程邏輯器件傳輸過(guò)來(lái)的數(shù)據(jù)以及從嵌入式處理器端傳送過(guò)來(lái)的指令,并對(duì)指令做出相應(yīng)響應(yīng),從而輸入數(shù)據(jù)到硬盤陣列中,或事后從硬盤陣列中輸出數(shù)據(jù)到外部;第二閃存和硬盤陣列的輸入輸出端分別與硬盤接口的輸入輸出端連接,第二閃存中存放了控制器的引導(dǎo)啟動(dòng)程序,第二閃存為固化程序存儲(chǔ)器,固化程序存儲(chǔ)器里放置了引導(dǎo)加載程序、Linux內(nèi)核程序、根文件系統(tǒng)以及應(yīng)用程序;硬盤陣列為存儲(chǔ)介質(zhì),接收存儲(chǔ)硬盤接口中傳輸過(guò)來(lái)數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的基于嵌入式Linux系統(tǒng)的高速圖像記錄裝置,其特征在于,實(shí)現(xiàn)圖像記錄模塊的步驟是,按照Linux設(shè)備驅(qū)動(dòng)模型將圖像采集模塊中的數(shù)據(jù)不經(jīng)過(guò)內(nèi)存以零拷貝的方式直接存儲(chǔ)到硬盤陣列中。
6.根據(jù)權(quán)利要求1所述的基于嵌入式Linux系統(tǒng)的高速圖像記錄裝置,其特征在于,為引導(dǎo)一個(gè)完整的Linux操作系統(tǒng)的還需要Linux操作系統(tǒng)的內(nèi)核啟動(dòng)后需要掛載的根文件系統(tǒng),同時(shí)保證系統(tǒng)非正常關(guān)閉時(shí)操作的可靠性。
7.根據(jù)權(quán)利要求4所述的基于嵌入式Linux系統(tǒng)的高速圖像記錄裝置,其特征在于,為提高記錄速度,采用硬盤陣列順序?qū)懭敕绞綄?duì)數(shù)據(jù)進(jìn)行記錄,實(shí)現(xiàn)了對(duì)圖像記錄單元進(jìn)行遠(yuǎn)程控制,所述遠(yuǎn)程控制包括圖像記錄裝置的啟動(dòng)\停止、信息查詢、工作模式設(shè)置和圖像下載和圖像在線回放。
全文摘要
本發(fā)明涉及基于嵌入式Linux系統(tǒng)的高速圖像記錄裝置,由圖像采集模塊、圖像記錄模塊和PCI總線構(gòu)成;圖像采集模塊的輸入端為相機(jī)輸入數(shù)據(jù),輸出端掛載在PCI總線上,接收采集圖像數(shù)據(jù)先緩存儲(chǔ)到圖像采集模塊的存儲(chǔ)單元中,將Linux操作系統(tǒng)的內(nèi)核移植裁剪到圖像記錄模塊的嵌入式處理器中,以管理整個(gè)圖像記錄裝置;圖像記錄模塊的輸入端通過(guò)PCI總線將接收?qǐng)D像采集模塊中的數(shù)據(jù)映射存儲(chǔ)到圖像記錄模塊的硬盤陣列中;PCI總線分別連接圖像采集模塊和圖像記錄模塊,PCI總線接收?qǐng)D像采集模塊的輸出端輸出的存儲(chǔ)單元中的數(shù)據(jù),將圖像采集模塊存儲(chǔ)單元中的數(shù)據(jù)傳輸?shù)綀D像記錄單元中。
文檔編號(hào)H04N5/76GK102438116SQ20111023651
公開(kāi)日2012年5月2日 申請(qǐng)日期2011年8月17日 優(yōu)先權(quán)日2011年8月17日
發(fā)明者任國(guó)強(qiáng), 姚俊, 徐永剛, 李其虎, 田園, 黃靜 申請(qǐng)人:中國(guó)科學(xué)院光電技術(shù)研究所
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
高青县| 井陉县| 叶城县| 滨海县| 原平市| 大同市| 靖远县| 藁城市| 仪征市| 襄汾县| 公安县| 隆回县| 连州市| 永兴县| 临沧市| 玛多县| 陵水| 巧家县| 寿光市| 北川| 陵水| 泉州市| 千阳县| 海城市| 汶上县| 宜昌市| 墨脱县| 乐东| 平昌县| 云阳县| 仪陇县| 越西县| 潼关县| 德庆县| 永州市| 米易县| 什邡市| 久治县| 镇原县| 读书| 偏关县|