專利名稱:一種圖像處理機(jī)數(shù)據(jù)加載與測試方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字圖像處理應(yīng)用領(lǐng)域,具體涉及對圖像處理機(jī)進(jìn)行數(shù)據(jù)加載的方 法與裝置。
背景技術(shù):
圖像處理機(jī)是對輸入圖像進(jìn)行一系列處理、分析、識別、跟蹤等操作,從而得 出有用信息的設(shè)備。數(shù)字信號處理器(Digital Signal Processing, DSP)是圖像處理機(jī) 系統(tǒng)運行的主要載體之一。DSP在運行時,其程序和數(shù)據(jù)一般存放在內(nèi)部的DSP 或外擴(kuò)的靜態(tài)存儲器(Static Random Access Memory, SRAM)中,掉電后將全部丟 失,因此,DSP的程序文件和部分?jǐn)?shù)據(jù)文件需要固化到外部的非易失性存儲器中, 如閃存(FLASH)。
圖像處理機(jī)針對不同對象類型需采用不同的圖像處理算法、不同的工作參數(shù)以 及針對特定對象的模板圖像,其對象類型可能為運動中的汽車、輪船、飛機(jī),也可 能為靜止的建筑物、交通樞紐、重要設(shè)施等。由于圖像處理的多樣性和復(fù)雜性,決 定了圖像處理機(jī)具有多程序模塊的特點。能夠正確無誤的將上述數(shù)據(jù)加載到圖像處 理機(jī)中,是圖像處理機(jī)加載與測試裝置必須滿足的條件,如果數(shù)據(jù)加載失敗,如何 保證加載與測試裝置能夠繼續(xù)正常工作,是此類裝置設(shè)計中的技術(shù)難點。
常用的DSP軟件在線調(diào)試與加載的方法是利用DSP制作廠商提供的仿真器通過 DSP上的JTAG (Joint Test Action Group)端口進(jìn)行。該方法在調(diào)試階段非常方便, 但是在復(fù)雜的嵌入式系統(tǒng)中,圖像處理機(jī)可能只是整個系統(tǒng)的一部分。完成系統(tǒng)對 接后,圖像處理機(jī)與整個系統(tǒng)配合工作, 一旦出現(xiàn)問題,就需要將圖像處理機(jī)與整 個系統(tǒng)分離,露出JTAG端口后才能實現(xiàn)軟件的調(diào)試與加載。且使用JTAG加載, 不僅需要仿真器、開發(fā)平臺等額外的工具,還需要專業(yè)人士操作,適用范圍窄。在《世界電子元器件》2008年第8期,空空導(dǎo)彈研究院的李世杰等人的《基于 計算機(jī)串口 DSP程序加載的實現(xiàn)》 一文中,提到一種基于計算機(jī)串口對DSP進(jìn)行加 載的方法,通過一個UART芯片進(jìn)行電平轉(zhuǎn)換后連接到DSP的多通道緩存串口 (Multi-channel Buffered Serial Port, McBSP)來進(jìn)行,但是通信協(xié)議簡單,給出的實 例中只涉及到DSP單個程序模塊的情況,不能適用于復(fù)雜的圖像處理機(jī)。且該加載 方法的可靠性不高,如果加載錯誤,將導(dǎo)舉加載與測試裝置癱瘓。
在《研究與開發(fā)》2007年第26巻第10期,南京航空航天大學(xué)的張兵等人的《DSP 片外Flash在系統(tǒng)編程的設(shè)計與實現(xiàn)》 一文中,也提到了一種采用計算機(jī)串口對DSP 片外Flash進(jìn)行加載的方法,構(gòu)建了一個常駐Flash的更新固件程序,解決了加載錯 誤導(dǎo)致加載與測試裝置癱瘓的問題,但是該方法所給出的實例也只涉及DSP處理單 個軟件的情況,通信協(xié)議簡單,不能適用于具有多程序模塊的圖像處理機(jī),且沒有 考慮更有效的措施來保證數(shù)據(jù)傳輸?shù)目煽啃浴?br>
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種圖像處理機(jī)數(shù)據(jù)加載方法和裝置,在圖像處理機(jī)被 封裝后,能夠?qū)Τ绦蜻M(jìn)行升級和維護(hù),并可根據(jù)不同的目標(biāo)類型啟用不同的圖像處 理程序,操作方便,可靠性高。
一種圖像處理機(jī)數(shù)據(jù)加載與測試方法,加載程序存儲于圖像處理機(jī)的FLASH首 地址處,包括FLASH加載子模塊、軟件切換子模塊、通路檢測子模塊、第一測試子 模塊、第二測試子模塊、......、第n測試子模塊,加載與測試裝置啟動時圖像處理
機(jī)的DSP將加載程序調(diào)入內(nèi)存;待加載數(shù)據(jù)存入FLASH的后續(xù)地址,包括圖像處 理程序、程序參數(shù)以及目標(biāo)模板圖像;圖像處理程序包括切換軟件子模塊、通路檢 測子模塊和圖像處理子模塊;
DSP的當(dāng)前運行程序接收加載與測試裝置發(fā)送的指令信息,判斷自身是加載程 序還是圖像處理程序,若是加載程序,則按照方式A進(jìn)行處理若是圖像處理程序,則按照方式B進(jìn)行處理; 方式A:
Al)若指令信息為FLASH加載指令,則運行加載程序的FLASH加載子模 塊完成FLASH數(shù)據(jù)加載操作;
FLASH數(shù)據(jù)加載操作按照如下方法進(jìn)行
(all) FLASH加載子模塊檢測DSP連接的FLASH類型,向加載與測試裝置 返回包含有FLASH類型的接收就緒信息;
(al2)加載與測試裝置根據(jù)FLASH類型對待加載數(shù)據(jù)進(jìn)行編碼,將編碼得到 的數(shù)據(jù)包發(fā)送給FLASH加載子模塊;
(al3) FLASH加載子模塊接收數(shù)據(jù)包,對數(shù)據(jù)包解碼并作正確性校驗,將 校驗結(jié)果返回給加載與測試裝置,如校驗結(jié)果為正確,進(jìn)入步驟(a4),否則,結(jié)束;
(al4) FLASH加載子模塊將解碼得到的數(shù)據(jù)寫入FLASH加載指令指定的 FLASH扇區(qū);
(al5) FLASH加載子模塊對寫入FLASH的數(shù)據(jù)進(jìn)行正確性校驗,如果正確, 則返回FLASH加載成功的狀態(tài)信息,否則結(jié)束;
A2)若指令信息為程序切換指令,則判斷自身是否為目標(biāo)程序,若是,則照常 運行加載程序,向加載與測試裝置返回目標(biāo)程序正在運行的狀態(tài)信息,否則DSP復(fù) 位,運行加載程序的切換程序子模塊將目標(biāo)程序從FLASH中引導(dǎo)加載到DSP內(nèi)存 作為新的當(dāng)前運行程序,并向加載與測試裝置返回目標(biāo)軟件切換成功的狀態(tài)信息;
A3)若指令信息為第i測試指令,i=l, 2,......, n,則運行加載程序的第i個測
試子模塊完成相應(yīng)測試,并向加載與測試裝置返回表示測試結(jié)果的狀態(tài)信息;
A4)若指令信息為通路檢測指令,則運行加載程序的通路檢測子模塊完成加載 與測試裝置與DSP間的通路檢測,并向加載與測試裝置返回表示檢測結(jié)果的狀態(tài)信 息;
方式B:
Bl)若指令信息為數(shù)據(jù)加載指令,則向加載與測試裝置返回提示用戶切換到加
9載程序的狀態(tài)信息;
B2)若指令信息為切換程序指令,則判斷自身是否為目標(biāo)程序,若是,則照常 運行當(dāng)前圖像處理程序,向加載與測試裝置返回目標(biāo)程序正在運行的狀態(tài)信息,否 則DSP復(fù)位,運行前圖像處理程序的切換程序子模塊將目標(biāo)程序從FLASH中引導(dǎo) 加載到DSP內(nèi)存作為新的當(dāng)前運行程序,并向加載與測試裝置返回目標(biāo)軟件切換成 功的狀態(tài)信息;
B3)若指令信息為第i測試指令,i=l, 2,......, n,則向加載與測試裝置返回提
示切換到加載程序的狀態(tài)信息;
B4)若指令信息為通路檢測指令,則運行當(dāng)前圖像處理程序的通路檢測子模塊 完成加載與測試裝置與DSP間的通路檢測,并向加載與測試裝置返回表示檢測結(jié)果 的狀態(tài)信息。
和以往傳統(tǒng)背景技術(shù)相比,本發(fā)明的技術(shù)效果體現(xiàn)在
1. 提高了加載可靠性。
設(shè)計了一套常駐FLASH首地址處的加載程序,交付給用戶后一般不用更改,有 效的解決了數(shù)據(jù)加載失敗導(dǎo)致加載與測試裝置崩潰的問題。
2. 在圖像處理機(jī)被封裝后,方便對程序進(jìn)行升級和維護(hù) 用戶通過主控機(jī)控制圖像處理機(jī)運行加載程序,以完成數(shù)據(jù)加載任務(wù),從而方
便地升級圖像處理機(jī)的程序數(shù)據(jù);另外,可以實際需要,擴(kuò)展加載程序的測試子模 塊,例如監(jiān)測圖像處理機(jī)上重要器件器件的工作狀態(tài)、査看并更改DSP中當(dāng)前運行 的程序類型、査看FLASH中已存儲的數(shù)據(jù)內(nèi)容等,實現(xiàn)對程序的有效維護(hù)。
3. 制訂了一套通用的加載與測試裝置與被加載圖像處理機(jī)之間的通信協(xié)議。
該協(xié)議可擴(kuò)展、易解釋,不僅適用于基于計算機(jī)串口,還可以略加修改用于基 于USB 口或PCI 口或網(wǎng)口的加載與測試裝置,通用于具有FPGA+DSP+FLASH結(jié)構(gòu) 的圖像處理機(jī)平臺,具有通用、可擴(kuò)展性強(qiáng)以及可靠性高等優(yōu)點。4.改進(jìn)了DSP多程序模塊切換技術(shù)
通過引入軟件方式實現(xiàn)的引導(dǎo)選擇開關(guān),不需要修改處理機(jī)硬件,只需要用戶 輸入待切換的目標(biāo)程序信息,主控機(jī)控制DSP就可以實現(xiàn)多程序模塊之間的任意切 換。
圖1是本發(fā)明操作步驟圖2是指令包格式定義示意圖3是文件包格式定義示意圖4是本發(fā)明加載與測試裝置的整體結(jié)構(gòu)圖5是本發(fā)明加載與測試裝置和被加載圖像處理機(jī)的層次結(jié)構(gòu)圖; 圖6是主控機(jī)端控制程序功能模塊劃分圖; 圖7是串口數(shù)據(jù)格式圖8是本發(fā)明加載與測試裝置與被加載圖像處理機(jī)的連接示意圖9是主DSP和從DSP之間的McBSP 口連接示意圖10是FLASH中數(shù)據(jù)存儲示意圖11是加載程序的子模塊劃分示意圖12是加載程序?qū)嵤├淖幽K劃分示意圖13是運行于圖像處理機(jī)主DSP中的加載程序模塊流程圖14是運行于圖像處理機(jī)主DSP中的圖像處理程序模塊流程圖15是運行于圖像處理機(jī)從DSP中的加載程序模塊流程圖16是運行于圖像處理機(jī)從DSP中的圖像處理程序模塊流程圖。
具體實施例方式
下面結(jié)合附圖及實施例作進(jìn)一步詳述。
圖1給出了本發(fā)明加載方法流程,具體為。
(l)將由DSP的開發(fā)平臺編譯生成的加載程序可執(zhí)行文件轉(zhuǎn)換成FLASH所支持的純數(shù)據(jù)文件,例如將由CCS(Code Composer Studio)編譯生成的.out文件,轉(zhuǎn)換為 16進(jìn)制的.hex文件。加載程序包括FLASH加載子模塊、切換程序子模塊、通路檢 測子模塊、器件測試子模塊和FLASH數(shù)據(jù)査看子模塊。
(2) 采用DSP制作廠商提供的仿真器和調(diào)試接口,例如采用TI公司的USB仿 真器和JTAG端口,將步驟(1)中生成的數(shù)據(jù)文件寫到DSP片外FLASH的首地址 處。
(3) 啟動加載與測試裝置,包括連接加載與測試裝置與被加載圖像處理機(jī),打開 主控機(jī),運行主控機(jī)控制程序模塊,啟動圖像處理機(jī)。此時圖像處理機(jī)中的各DSP 所運行的程序均為步驟(2)中燒寫到FLASH首地址處的加載程序。
(4) 加載程序的FLASH加載子模塊進(jìn)行數(shù)據(jù)加載前,先測試從主控機(jī)一圖像處 理機(jī)DSP—主控機(jī)的數(shù)據(jù)通路是否正確,如果正確,則進(jìn)入步驟(5),否則結(jié)束操 作,檢査故障原因。
(5) FLASH加載子模塊按照下述方式分別將各種數(shù)據(jù)寫入指定FLASH的扇區(qū)位
置
(5.1) 用戶向FLASH加載子模塊發(fā)送FLASH加載指令,F(xiàn)LASH加載指令 包括的信息有待加載數(shù)據(jù)大小、寫入FLASH的扇區(qū)起始地址;
(5.2) FLASH加載子模塊接收到FLASH加載指令后,檢測連接的FLASH類 型,并做好接收待加載數(shù)據(jù)的準(zhǔn)備;
(5.3)加載與測試裝置接收到DSP準(zhǔn)備就緒的消息后,對待加載數(shù)據(jù)進(jìn)行編碼, 并將編碼得到的數(shù)據(jù)包發(fā)送給加載程序;待加載數(shù)據(jù)存入FLASH的后續(xù)地址,包括 圖像處理程序、程序參數(shù)以及目標(biāo)模板圖像;圖像處理程序包括切換程序子模塊、 通路檢測子模塊和圖像處理子模塊;
(5.4) FLASH加載子模塊接收待加載數(shù)據(jù)包,對數(shù)據(jù)包解碼并作正確性校驗, 將校驗結(jié)果返回給加載與測試裝置,如校驗結(jié)果為正確,進(jìn)入步驟(5.5),否則, 結(jié)束本次操作,檢測故障原因,回到步驟(3);
(5.5) FLASH加載子模塊將解碼得到的有效待加載數(shù)據(jù)寫入FLASH加載指
12令所指定的扇區(qū)位置;
(5.6) FLASH加載子模塊對寫入FLASH的數(shù)據(jù)進(jìn)行正確性校驗,如果正確, 則返回加載成功的信息給加載與測試裝置,本次加載完畢,回到步驟(5);否則結(jié) 束本次操作,檢測錯誤原因,回到步驟(4);
(6)加載與測試裝置將所有數(shù)據(jù)都正確寫入圖像處理機(jī)的FLASH之中后,DSP 的當(dāng)前運行程序接收用戶的指令信息,判斷自身是加載程序還是圖像處理程序,若 是加載程序,則按照前述方式A進(jìn)行處理若是圖像處理程序,則按照前述方式B 進(jìn)行處理。
加載與測試裝置與圖像處理機(jī)所交互的主要數(shù)據(jù)有加載與測試裝置發(fā)送給圖像 處理機(jī)的指令數(shù)據(jù)、加載與測試裝置發(fā)送給圖像處理機(jī)的被加載數(shù)據(jù)和圖像處理機(jī) 返回給主控機(jī)的狀態(tài)消息數(shù)據(jù)三種,具體為-
(1) 加載與測試裝置將通路檢測指令發(fā)送給圖像處理機(jī);
(2) 加載與測試裝置發(fā)送切換程序指令給圖像處理機(jī);
(3) 加載與測試裝置發(fā)送文件數(shù)據(jù)更新指令給圖像處理機(jī);
(4) 加載與測試裝置發(fā)送待加載文件數(shù)據(jù)給圖像處理機(jī);
(5) 加載與測試裝置發(fā)送測試板上器件指令字給圖像處理機(jī);
(6) 加載與測試裝置發(fā)送FLASH數(shù)據(jù)查看指令給圖像處理機(jī);
(7) 圖像處理機(jī)返回通路正常與否的信息給加載與測試裝置;
(8) 圖像處理機(jī)返回切換程序狀態(tài)信息給加載與測試裝置;
(9) 圖像處理機(jī)返回加載FLASH信息給加載與測試裝置;
(10) 圖像處理機(jī)返回器件測試結(jié)果信息給加載與測試裝置;
(11) 圖像處理機(jī)返回FLASH中存儲的數(shù)據(jù)信息給加載與測試裝置。
為了保證加載方法的可靠性,本發(fā)明主要采取了以下幾個措施 (1) 制定了一套由加載與測試裝置與圖像處理機(jī)共同遵循的通信協(xié)議; 將加載與測試裝置與圖像處理機(jī)所交互的數(shù)據(jù)定義為固定大小格式,每個數(shù)據(jù) 包大小為32Bytes。加載與測試裝置發(fā)送給圖像處理機(jī)的指令包和圖像處理機(jī)返回給加載與測試裝置的狀態(tài)消息包的格式定義相同,如圖2所示,前三個字段為包頭信 息,分別表示DSP編號、程序編號和指令類別,最后兩個字段為16位循環(huán)校驗碼 (Cyclic Redundancy Check, CRC),中間字段為具體的指令或狀態(tài)字。
待加載數(shù)據(jù)包的格式定義如圖3所示,包頭包尾信息與指令包的包頭包尾一致, 文件包的第3, 4字段是數(shù)據(jù)幀號。
(2) 對加載與測試裝置與圖像處理機(jī)之間傳送的數(shù)據(jù)包進(jìn)行CRC校驗;
(3) 對加載與測試裝置發(fā)送給圖像處理機(jī)的被加載程序模塊數(shù)據(jù)包進(jìn)行幀 號校驗,校驗錯誤的數(shù)據(jù)包將不允許寫入FLASH。
(4) 設(shè)定了常駐FLASH的加載程序模塊。
即步驟(1) (2)中所提到的加載程序,該程序獨立與其它的圖像處理程序,專 用于實現(xiàn)數(shù)據(jù)加載功能,其寫入FLASH后一般不用更新,解決了數(shù)據(jù)加載失敗導(dǎo)致 加載與測試裝置不能繼續(xù)正常工作的問題。
(5) 超時處理。
包含圖像處理機(jī)超時和加載與測試裝置超時兩種。如果圖像處理機(jī)超時,則主 控機(jī)控制程序給出系統(tǒng)消息,提示用戶"處理機(jī)超時無響應(yīng)",用戶根據(jù)此提示進(jìn)行 故障檢測。圖像處理機(jī)上設(shè)置有看門狗電路,如果DSP超過一定時間沒有運行,處 理機(jī)將會自動重啟。
如果DSP在接收完一個文件包后30s內(nèi)沒有收到下一個文件包,則認(rèn)為主控機(jī) 超時,在DSP中設(shè)定一個時鐘監(jiān)視器, 一旦時鐘監(jiān)視器被觸發(fā),DSP就放棄當(dāng)前操 作,回到初始狀態(tài)。
本發(fā)明不僅用于單DSP圖像處理機(jī),還適用于多DSP圖像處理機(jī),現(xiàn)以多DSP 圖像機(jī)為例說明實現(xiàn)上述方法的加載與測試裝置。如圖4所示,加載與測試裝置包 含一臺RS232/RS422串口轉(zhuǎn)換器、具備RS232串口的主控機(jī)、電氣特性轉(zhuǎn)換電路和 加載程序,被加載圖像處理機(jī)是一種基于多DSP+FPGA+FLASH的結(jié)構(gòu)。
加載與測試裝置和被加載圖像處理機(jī)的層次結(jié)構(gòu),參考圖5,從低到高依次為 從低到高依次為硬件層、硬件接口層、監(jiān)控系統(tǒng)層、Windows設(shè)備驅(qū)動層、Windows操作系統(tǒng)層和應(yīng)用層。
(1) 硬件層圖像處理機(jī)及其板上各種硬件資源。
(2) 硬件接口層又稱硬件驅(qū)動層,由一系列經(jīng)過封裝的驅(qū)動函數(shù)組成,這 些驅(qū)動函數(shù)直接對硬件進(jìn)行操作,從而驅(qū)動硬件電路正常工作。它們向上提供的調(diào) 用接口使用戶不必關(guān)心底層硬件是如何工作的。
(3) 監(jiān)控系統(tǒng)層監(jiān)控程序用于控制整個圖像處理機(jī)的運行,完成整個系統(tǒng)的 任務(wù)調(diào)度,資源分配,數(shù)據(jù)的傳遞、命令的接收、解釋和執(zhí)行。
(4) Windows設(shè)備驅(qū)動層介于應(yīng)用層和監(jiān)控軟件層之間,控制程序和圖像處 理機(jī)之間所有數(shù)據(jù)通信要有Windows設(shè)備驅(qū)動層的支持,設(shè)備驅(qū)動層將應(yīng)用層的數(shù) 據(jù)和命令轉(zhuǎn)變成IRP請求包,調(diào)用相應(yīng)的處理例程完成控制程序和DSP的數(shù)據(jù)通信。
(5) Windows操作系統(tǒng)層主控機(jī)端控制臺控制程序模塊的運行環(huán)境。利用其 消息循環(huán)機(jī)制處理控制程序模塊的各種Windows窗口消息,同時調(diào)用設(shè)備驅(qū)動程序 處理相應(yīng)的IRP,是整個主控機(jī)控制程序模塊的支撐環(huán)境。
(6) 應(yīng)用層主控機(jī)控制程序模塊就處于該層,有良好的人機(jī)交互界面,用戶 通過該程序模塊控制整個系統(tǒng)的運行和監(jiān)控系統(tǒng)的狀態(tài)。
其中,(1) (2) (3)層的所有任務(wù)和功能的實現(xiàn)位于圖像處理機(jī)上,(4) (5) (6)層的所有任務(wù)和功能的實現(xiàn)位于加載與測試裝置上。
實現(xiàn)上述方法的數(shù)字圖像機(jī)數(shù)據(jù)加載與測試裝置,包括主控機(jī)、RS232/RS422 串口轉(zhuǎn)換器、電器特性轉(zhuǎn)換電路和加載程序,下面對加載與測試裝置的各組件詳細(xì) 介紹。
1、 RS232/RS422串口轉(zhuǎn)換器
串口轉(zhuǎn)換器一端連接主控機(jī)的RS232端口 ,另一端連接圖像處理機(jī)的電氣轉(zhuǎn)換 電路。其作用是將主控機(jī)輸出數(shù)據(jù)流轉(zhuǎn)換為差分模式,便于長距離傳輸。
2、 主控機(jī)
主控機(jī)的控制程序模塊在Visual C++6.0的環(huán)境下開發(fā),向上與用戶交互,向下 調(diào)用Windows API (Application Programming Interface,應(yīng)用編程接口)函數(shù)。要能向圖像處理機(jī)發(fā)送協(xié)議規(guī)定的數(shù)據(jù),接收并解析DSP返回的信息;搭建與用戶交互 的界面,根據(jù)用戶操作,產(chǎn)生相關(guān)指令信息并且發(fā)送給圖像處理機(jī)。接收到圖像處 理機(jī)返回的信息后,解析并且通知給用戶。主控機(jī)控制程序模塊的功能模塊劃分如 圖6所示,包含六個功能子模塊,分別為文件格式轉(zhuǎn)換子模塊、編碼子模塊、發(fā) 送子模塊、接收子模塊、解析子模塊和顯示子模塊。
(1) 文件格式轉(zhuǎn)換子模塊用于將用戶輸入的數(shù)據(jù)文件轉(zhuǎn)換為FLASH所支持的 文件格式,例如將由CCS編譯生成的.out文件轉(zhuǎn)換為.hex文件,文件格式轉(zhuǎn)換的步 驟如下
①將文件的擴(kuò)展名由.out改為.hex; (D將.hex文件頭去掉,分離出數(shù)據(jù)文件;
③將轉(zhuǎn)換完成后的.hex寫入.out文件的目錄下,即存入主控機(jī)硬盤。
(2) 編碼子模塊接收用戶輸入的指令信息,讀取主控機(jī)硬盤中的數(shù)據(jù)文件,按 照通信協(xié)議分別對指令信息和數(shù)據(jù)文件信息進(jìn)行編碼,得到指令包和文件包。例如 指令包
OOcOOOOO 1 ABCDEFGHIJKLMNOPQRSTU(CRC 1 )(CRC2),表示這是一條發(fā)送給 DSP0的通路檢測指令,并且DSP0中正在運行的應(yīng)該是0號程序,最后兩個字段 CRC1、 CRC2表示CRC校驗碼。
11c000002200000000000000000000(CRCl)(CRC2),表示這是一條發(fā)送給DSP1 的切換程序指令,DSP1中正在運行的是1號程序,要求DSP1將程序切換到2號。
20c000003100064010000000000000(CRC1)(CRC2),表示這是一條發(fā)送到DSP2 的FLASH加載指令,待加載文件大小為0xl000Bytes,待加載到FLASH中的起始 地址是0x64010000。
例如文件包00dfe00010d24f353dfs5fgg5f3g4f(CRCl)(CRC2),表示這是一個發(fā)送 到DSPO的文件包,幀號為0xfe(254),中間25個字段為有效文件數(shù)據(jù)。當(dāng)剩余文件 數(shù)據(jù)個數(shù)不足25Bytes時,加0補(bǔ)齊。
(3) 發(fā)送子模塊配置主控機(jī)串口,并將指令包和數(shù)據(jù)包發(fā)送給主控機(jī)串口。
16串口參數(shù)包括串口名稱、波特率、校驗位、數(shù)據(jù)位和停止位。本發(fā)明采用的波特 率是19200,校驗位為0,數(shù)據(jù)位為8,停止位為0, Ubits數(shù)據(jù)中的有效數(shù)據(jù)為8bit, 串行數(shù)據(jù)格式如圖7所示。
(4) 接收子模塊通過主控機(jī)串口將圖像處理機(jī)反饋的狀態(tài)信息寫入主控機(jī)的存儲區(qū)。
(5) 解析子模塊用于解析處理機(jī)返回的狀態(tài)信息包。 例如狀態(tài)信息包
02c000001ABCDEFGHIJKL畫OPQRSTU(CRCl)(CRC2),表示PC到DSPO之 間的串口數(shù)據(jù)通路正確,且DSPO中正在運行的程序是2號程序。
12c000002200000000000000000000(CRCl)(CRC2),表示DSP1已經(jīng)成功切換到 2號程序。
20c000003510000000000000000000(CRCl)(CRC2),表示DSP2己經(jīng)準(zhǔn)備號接收 待加載文件數(shù)據(jù),DSP2片外的FLASH型號為SST28VF016。
如果消息包不符合通信協(xié)議的規(guī)定,則認(rèn)為該數(shù)據(jù)包是錯誤信息。
(6) 顯示子模塊將解析子模塊得到的解析結(jié)果顯示到用戶界面狀態(tài)欄。例如 "PC到0號DSP的串口通路正確,DSP正在運行0號程序","處理機(jī)超時無響應(yīng),
請檢査數(shù)據(jù)通路是否連接或重啟處理機(jī)","DSP寫FLASH錯誤,請檢查FLASH是 否正確"等。
3、電氣特性轉(zhuǎn)換電路
由于RS-422工作于差分模式,而圖像處理機(jī)的FPGA工作于單端模式,因此需 要在FPGA外圍附加電氣特性轉(zhuǎn)換電路,使通信雙方的電氣特性匹配,例如MAXIM 公司推出的一款專用于RS-422、 RS-485通信的轉(zhuǎn)換芯片MAX3490便可以實現(xiàn)這種 功能。
4、加載程序
加載程序主要是用于將待加載數(shù)據(jù)寫入FLASH,本發(fā)明采用DSP制作廠商提供 的仿真器和調(diào)試接口,例如采用TI公司的USB仿真器和JTAG端口,將其寫到FLASH的首地址處。
被加載圖像處理機(jī)是一種基于多DSP+FPGA+FLASH的結(jié)構(gòu),包括1 4片 FPGA (Field Programmable Gate Array,區(qū)域可編程門陣列),1 9片DSP,以及與 DSP—一對應(yīng)的NOR FLASH,其與加載與測試裝置的連接方式見圖8,下面將分別 描述圖像處理機(jī)各組件的工作原理
1、 FPGA
FPGA —般用1 4片,分為主FPGA和從FPGA,與電氣特性轉(zhuǎn)換電路相連 的FPGA為主FPGA,其余為從FPGA。主FPGA—方面將主控機(jī)傳來的串行數(shù)據(jù) 轉(zhuǎn)換為并行,根據(jù)其包頭信息(DSP編號)判斷數(shù)據(jù)流向,將數(shù)據(jù)包傳送給相應(yīng)的 DSP;另一方面將DSP返回的并行信息包轉(zhuǎn)換為串行,并反饋給主控機(jī)。在主FPGA 中構(gòu)建通用異步收發(fā)器(Universal Asynchronous Receiver and Transmitter, UART),實 現(xiàn)數(shù)據(jù)的串/并轉(zhuǎn)換。從FPGA只需要判定數(shù)據(jù)流向以及轉(zhuǎn)發(fā)數(shù)據(jù),不需要進(jìn)行串/ 并轉(zhuǎn)換。FPGA在圖像處理機(jī)中起到了構(gòu)建數(shù)據(jù)通路的作用,實現(xiàn)DSP與主控機(jī)之 間的數(shù)據(jù)交互。
2、 DSP和FLASH
DSP—般用1 9片,也分為主DSP和從DSP,具體分配由用戶指定,但是與 主FPGA相連的DSP —定為主DSP。主DSP與FPGA之間的數(shù)據(jù)通路由一對FIFO 緩存(輸入緩存FIFO和輸出緩存FIFO)構(gòu)建,主DSP和從DSP之間的數(shù)據(jù)通路 由DSP自帶的接口實現(xiàn),例如TI C6000 DSP的McBSP 口 , ADI SHARC系列DSP 的Link 口 ,兩個TI DSP采用McBSP 口的連接方式如圖9所示。從DSP間的加載 通道相互獨立。DSP響應(yīng)主控機(jī)的指令,執(zhí)行相應(yīng)的操作,是數(shù)據(jù)加載的主要執(zhí)行 者。
與主DSP和從DSP相連的FLASH均存儲有加載程序模塊和圖像處理程序模塊 兩種,如圖10所示。由于NORFLASH在編程之前需要將相應(yīng)的扇區(qū)擦除,因此為 了方便編程,將各數(shù)據(jù)存放到FLASH中的起始地址規(guī)定為某個扇區(qū)的起始地址,并 根據(jù)各數(shù)據(jù)的大小和程序編號,為其分配固定的扇區(qū)位置。各數(shù)據(jù)在定型后一般變化較小,扇區(qū)分配考慮一定余量,分配后將不用更改。
主DSP的加載程序子模塊整體劃分示意圖參見圖11,該加載程序的一個實例如
圖12所示,包括六個功能子模塊
(1) 數(shù)據(jù)流向判斷及轉(zhuǎn)發(fā)子模塊用于判定主DSP收到的數(shù)據(jù)包是否需要轉(zhuǎn) 發(fā)給從DSP。具體為判定數(shù)據(jù)包中的DSP編號信息是否對應(yīng)當(dāng)前主DSP編號, 若是,則由主DSP對其進(jìn)行處理,若不是,則將其轉(zhuǎn)發(fā)給對應(yīng)的從DSP。
(2) 通路檢測子模塊,用于測試從主控機(jī)一圖像處理機(jī)一主控機(jī)的數(shù)據(jù)通路是 否正確,具體為判斷指令包中的握手?jǐn)?shù)據(jù)是否與通信協(xié)議中的規(guī)定一致,如果一 致,則返回通路正常消息包;如果不一致,表明通路傳送的數(shù)據(jù)錯誤,返回通路不 正常消息包,之后回到初始狀態(tài);
(3) FLASH加載子模塊,用于將有效數(shù)據(jù)寫入FLASH。 FLASH加載子模塊 從數(shù)據(jù)加載指令中提取出待加載數(shù)據(jù)大小、該文件將寫入FLASH的扇區(qū)起始地址、 最多可燒寫次數(shù)等信息,計算出數(shù)據(jù)包的個數(shù),再檢測DSP所掛載的FLASH類型, 返回消息包給主控機(jī)端控制程序表明"DSP0已經(jīng)準(zhǔn)備好接收文件數(shù)據(jù),DSP所掛載 的FLASH型號為XXXX",之后打開時鐘監(jiān)視器。DSP接收到文件數(shù)據(jù)包后進(jìn)行 可靠性校驗,將校驗正確的數(shù)據(jù)提取出來存入燒寫數(shù)組,丟掉校驗不正確的數(shù)據(jù)包 并記錄錯誤數(shù)據(jù)包的個數(shù)。如果數(shù)據(jù)包完全接收正確,則可以進(jìn)行下一步操作了, 否則跳出該模塊,回到初始狀態(tài)。如果兩個相鄰的文件數(shù)據(jù)包的到達(dá)時間超過30s, 便認(rèn)為主控機(jī)超時,DSP觸發(fā)時鐘監(jiān)視器跳出FLASH加載模塊,回到起始狀態(tài)。
DSP接收數(shù)據(jù)包完畢后,關(guān)閉時鐘監(jiān)視器,調(diào)用FLASH加載模塊的燒寫函數(shù)開 始寫FLASH。寫完后校驗FLASH中數(shù)據(jù)與內(nèi)存中的燒寫文件數(shù)據(jù)是否一致,如果 一致,則返回消息包"FLASH燒寫成功完成",并回到初始狀態(tài);如果不一致,表 示寫FLASH錯誤,如果沒有超過可重復(fù)操作的最大次數(shù),則再寫一次,如果己經(jīng)超 過可重復(fù)操作次數(shù)依然沒有寫FLASH成功,則返回信息包"寫FLASH錯誤",之 后回到初始狀態(tài),準(zhǔn)備下一次操作。
(4) 切換程序子模塊,用于圖像處理機(jī)多程序模塊之間的相互切換。切換方式具體為先判斷待切換的目標(biāo)程序與DSP內(nèi)存中正在運行的程序是否一致,若一致, 則返回消息包"程序已成功啟動",若不一致,則返回消息包"正在切換到目標(biāo)程序",
之后DSP復(fù)位,將目標(biāo)程序從FLASH中加載到DSP內(nèi)存。
(5) 器件測試子模塊,用于測試DSP所掛載的片外器件的工作狀態(tài),獲取 FLASH中所存放的數(shù)據(jù)等。掛載到DSP的常用器件有同步動態(tài)隨機(jī)存取存儲器
(Synchronous Dynamic Random Access Memory, SDRAM)、FLASH、雙口 RAM(Dual Port Random Access Memory , DPRAM)等。測試方法具體為首先判定待測器件 類型,再向待測器件寫入一組遞增的數(shù)據(jù),再讀出來,判斷與寫入數(shù)據(jù)是否相同, 若相同,則表明該器件工作正常,否則認(rèn)為該器件工作不正常。
(6) FLASH數(shù)據(jù)査看子模塊用于查看存放在FLASH中的數(shù)據(jù)內(nèi)容。査看 方法具體為FLASH加載子模塊先根據(jù)指令包中待獲取數(shù)據(jù)的存放地址信息和大小 信息,讀取FLASH中的該段數(shù)據(jù),再按照上述主控機(jī)控制程序模塊中編碼子模塊對 文件包進(jìn)行編碼的方法對數(shù)據(jù)進(jìn)行編碼,生成查看結(jié)果消息包,最后返回給主控機(jī)。
主DSP的圖像處理程序包括通路檢測子模塊、切換程序子模塊、流向判斷子模 塊和圖像處理子模塊。其中通路檢測子模塊和切換程序子模塊與前述主DSP加載程 序的通路檢測子模塊、切換程序子模塊的功能相同。此處的流向判斷子模塊與主DSP 加載程序的流向判斷及轉(zhuǎn)發(fā)子模塊的相同點在于兩者都需要判定數(shù)據(jù)包中的DSP 編號信息是否對應(yīng)當(dāng)前主DSP編號;不同點在于前者判定結(jié)果為不對應(yīng)時,則返
回提示切換到加載程序的狀態(tài)信息,而后者判定結(jié)果為不對應(yīng)時,則直接將數(shù)據(jù)轉(zhuǎn)
發(fā)給目標(biāo)從DSP。圖像處理子模塊用于實現(xiàn)某種特定任務(wù)的圖像處理算法。 圖像處理機(jī)端的工作流程如下
主DSP和從DSP上電后都默認(rèn)啟動存儲在FLASH首地址處的加載程序,如果 超過規(guī)定時間,沒有收到主控機(jī)數(shù)據(jù),則認(rèn)為用戶當(dāng)前不作FLASH加載操作,將程 序自動切換到默認(rèn)的圖像處理程序,否則,繼續(xù)運行加載程序?qū)χ骺貦C(jī)任務(wù)數(shù)據(jù)作 相應(yīng)處理。
主DSP在執(zhí)行圖像處理程序的過程中,如果有主控機(jī)任務(wù)數(shù)據(jù)到,則圖像處理
20程序停止當(dāng)前操作,轉(zhuǎn)而對主控機(jī)任務(wù)數(shù)據(jù)進(jìn)行處理主DSP調(diào)用圖像處理程序的 流向判斷子模塊判斷數(shù)據(jù)包是否需要轉(zhuǎn)發(fā),若需要,則返回消息包提示用戶切換到 主DSP的加載程序,若不需要,則參考圖14,按照如下步驟進(jìn)行處理
(101) 若指令包中的命令字表明為檢測通路指令,則運行圖像處理程序的通 路檢測子模塊。
(102) 若指令包中的命令字表明為數(shù)據(jù)加載指令,則返回消息包提示用戶切 換到加載程序。
(103) 若指令包中的命令字表明為切換程序指令,則運行圖像處理程序的切換 程序子模塊。
(104) 若指令包中的命令字表明為器件測試指令,則返回信息包提示用戶切 換到加載程序。
(105) 若指令包中的命令字表明為FLASH數(shù)據(jù)査看指令,則返回信息包提示 用戶切換到加載程序。
主DSP在執(zhí)行加載程序時,如果有主控機(jī)任務(wù)數(shù)據(jù)到,則加載程序?qū)χ骺貦C(jī)傳 來的串口數(shù)據(jù)(指令包和數(shù)據(jù)包)作解析,調(diào)用加載程序的數(shù)據(jù)流向判定及轉(zhuǎn)發(fā)子 模塊判定數(shù)據(jù)包是否需要轉(zhuǎn)發(fā),若需要,則轉(zhuǎn)發(fā)數(shù)據(jù)包給對應(yīng)的從DSP,若不需要, 則參考圖13按照下述步驟進(jìn)行處理
(201) 若指令包中的命令字表明為檢測通路指令,則運行加載程序的通路檢 測子模塊。
(202) 若指令包中的命令字表明為數(shù)據(jù)加載指令,則運行加載程序的FLASH 加載子模塊。
(203) 若指令包中的命令字表明為切換程序指令,則運行加載程序的切換程序 子模塊。
(204) 若指令包中的命令字表明為器件測試指令,則運行加載程序的器件測 試子模塊。
(205) 若指令包中的命令字表明為FLASH數(shù)據(jù)査看指令,則運行加載程序的FLASH數(shù)據(jù)査看子模塊。
圖15和圖16分別給出了從DSP的加載程序處理流程和圖像處理程序處理流 程,從DSP接收主DSP轉(zhuǎn)發(fā)的指令包和數(shù)據(jù)包,對它們的后續(xù)操作與主DSP處理 基本相同,區(qū)別有兩點a、從DSP不需要轉(zhuǎn)發(fā)數(shù)據(jù)包給其它的DSP,因此從DSP 的加載程序不包含數(shù)據(jù)流向判斷及轉(zhuǎn)發(fā)子模塊,從DSP的圖像處理程序不包含數(shù)據(jù) 流向判斷子模塊;b、從DSP產(chǎn)生的信息包通過主DSP返回給主控機(jī)。
本發(fā)明中,被加載圖像處理機(jī)DSP的引導(dǎo)加載過程與華中科技大學(xué)圖像識別與 人工智能研究所鄭偉等人申請的中國專利文件《多DSP多程序模塊引導(dǎo)加載方法及 其系統(tǒng)》中所提到的引導(dǎo)加載方法相同,該專利文件還提到了一種對DSP多程序模 塊進(jìn)行切換的方法,但需要對電路板上的撥碼開關(guān)進(jìn)行操作才能實現(xiàn)。當(dāng)處理機(jī)被 封裝后,板上的撥碼開關(guān)也同時被封裝了,將導(dǎo)致程序切換功能不可用。如果強(qiáng)行 將按鍵連接出來,將影響系統(tǒng)的可靠性。本發(fā)明對這種方法做了改進(jìn),采用軟件方 式實現(xiàn)了 DSP程序模塊之間的切換。本實施例在與DSP相連的FPGA中設(shè)置一個 可讀寫寄存器作為引導(dǎo)選擇開關(guān)。DSP進(jìn)行引導(dǎo)加載的時候讀取該引導(dǎo)選擇開關(guān)的 值,根據(jù)這個值來啟動相應(yīng)的程序。
具體方法如下
1) DSP當(dāng)前運行的程序收到切換指令后,首先判斷目標(biāo)程序編號與正在運行的 程序編號是否一致,若不一致,則將目標(biāo)程序編號寫入引導(dǎo)選擇開關(guān),進(jìn)行下一步 操作;若一致,則不進(jìn)行下一步操作。
2) 關(guān)閉全局中斷并清除中斷控制寄存器。
3) 將DSP —級緩存中的數(shù)據(jù)設(shè)置為無效。
4) 跳轉(zhuǎn)到DSP內(nèi)存地址0處執(zhí)行。
5) DSP內(nèi)存地址0處存放的是用戶加載代碼,所以DSP執(zhí)行用戶加載過程, 將FLASH中存放的編號與引導(dǎo)選擇開關(guān)值對應(yīng)的程序數(shù)據(jù)載入內(nèi)存,加載完畢。
權(quán)利要求
1、一種圖像處理機(jī)數(shù)據(jù)加載與測試方法,加載程序存儲于圖像處理機(jī)的FLASH首地址處,包括FLASH加載子模塊、切換程序子模塊、通路檢測子模塊、第一測試子模塊、第二測試子模塊......、第n測試子模塊,加載與測試裝置啟動時圖像處理機(jī)的DSP將加載程序調(diào)入內(nèi)存;待加載數(shù)據(jù)存入FLASH的后續(xù)地址,包括圖像處理程序、程序參數(shù)以及目標(biāo)模板圖像;圖像處理程序包括切換程序子模塊、通路檢測子模塊和圖像處理子模塊;DSP的當(dāng)前運行程序接收加載與測試裝置發(fā)送的指令信息,判斷自身是加載程序還是圖像處理程序,若是加載程序,則按照方式A進(jìn)行處理若是圖像處理程序,則按照方式B進(jìn)行處理;方式AA1)若指令信息為FLASH加載指令,則運行加載程序的FLASH加載子模塊完成FLASH數(shù)據(jù)加載操作;FLASH數(shù)據(jù)加載操作按照如下方法進(jìn)行(a11)FLASH加載子模塊檢測DSP連接的FLASH類型,向加載與測試裝置返回包含有FLASH類型的接收就緒信息;(a12)加載與測試裝置根據(jù)FLASH類型對待加載數(shù)據(jù)進(jìn)行編碼,將編碼得到的數(shù)據(jù)包發(fā)送給FLASH加載子模塊;(a13)FLASH加載子模塊接收數(shù)據(jù)包,對數(shù)據(jù)包解碼并作正確性校驗,將校驗結(jié)果返回給加載與測試裝置,如校驗結(jié)果為正確,進(jìn)入步驟(a4),否則,結(jié)束;(a14)FLASH加載子模塊將解碼得到的數(shù)據(jù)寫入FLASH加載指令指定的FLASH扇區(qū);(a15)FLASH加載子模塊對寫入FLASH的數(shù)據(jù)進(jìn)行正確性校驗,如果正確,則返回FLASH加載成功的狀態(tài)信息,否則結(jié)束;A2)若指令信息為程序切換指令,則判斷自身是否為目標(biāo)程序,若是,則照常運行加載程序,向加載與測試裝置返回目標(biāo)程序正在運行的狀態(tài)信息,否則DSP復(fù)位,運行加載程序的切換程序子模塊將目標(biāo)程序從FLASH中引導(dǎo)加載到DSP內(nèi)存作為新的當(dāng)前運行程序,并向加載與測試裝置返回目標(biāo)軟件切換成功的狀態(tài)信息;A3)若指令信息為第i測試指令,i=1,2,......,n,則運行加載程序的第i個測試子模塊完成相應(yīng)測試,并向加載與測試裝置返回表示測試結(jié)果的狀態(tài)信息;A4)若指令信息為通路檢測指令,則運行加載程序的通路檢測子模塊完成加載與測試裝置與DSP間的通路檢測,并向加載與測試裝置返回表示檢測結(jié)果的狀態(tài)信息;方式BB1)若指令信息為數(shù)據(jù)加載指令,則向加載與測試裝置返回提示用戶切換到加載程序的狀態(tài)信息;B2)若指令信息為切換程序指令,則判斷自身是否為目標(biāo)程序,若是,則照常運行當(dāng)前圖像處理程序,向加載與測試裝置返回目標(biāo)程序正在運行的狀態(tài)信息,否則DSP復(fù)位,運行前圖像處理程序的切換程序子模塊將目標(biāo)程序從FLASH中引導(dǎo)加載到DSP內(nèi)存作為新的當(dāng)前運行程序,并向加載與測試裝置返回目標(biāo)軟件切換成功的狀態(tài)信息;B3)若指令信息為第i測試指令,i=1,2,......,n,則向加載與測試裝置返回提示切換到加載程序的狀態(tài)信息;B4)若指令信息為通路檢測指令,則運行當(dāng)前圖像處理程序的通路檢測子模塊完成加載與測試裝置與DSP間的通路檢測,并向加載與測試裝置返回表示檢測結(jié)果的狀態(tài)信息。
2、根據(jù)權(quán)利要求1所述的圖像處理機(jī)數(shù)據(jù)加載與測試方法,其特征在于,為 DSP外設(shè)一個可讀寫寄存器作為引導(dǎo)選擇開關(guān);DSP進(jìn)行程序切換時,先將目標(biāo)程 序編號寫入引導(dǎo)選擇開關(guān),再熱復(fù)位,然后讀取引導(dǎo)選擇開關(guān)存儲的數(shù)值,最后將 存儲于FLASH中編號與該數(shù)值相等的程序載入內(nèi)存。
3、實現(xiàn)權(quán)利要求1所述方法的圖像處理機(jī)數(shù)據(jù)加載與測試裝置,包括主控機(jī)、 RS232/RS422串口轉(zhuǎn)換器、電器特性轉(zhuǎn)換電路和加載程序;主控機(jī)通過RS232/RS422串口轉(zhuǎn)換器、電器特性轉(zhuǎn)換電路與基于FPGA+DSP +FLASH結(jié)構(gòu)的圖像處理機(jī)相連;加載程序存儲于圖像處理機(jī)的FLASH首地址處, 包括FLASH加載子模塊、軟件切換子模塊、通路檢測子模塊、第一測試子模塊、第二測試子模塊.......第n測試子模塊,加載啟動時DSP將加載程序模塊調(diào)入內(nèi)存;待加載數(shù)據(jù)存入FLASH的后續(xù)地址,待加載數(shù)據(jù)包括圖像處理程序、程序參數(shù)以及 目標(biāo)模板圖像;圖像處理程序包括切換程序子模塊、通路檢測子模塊和圖像處理子 模塊;主控機(jī)對用戶輸入的待加載數(shù)據(jù)和指令信息編碼得到數(shù)據(jù)包和指令包,將其發(fā) 送給圖像處理機(jī)的DSP;接收DSP返回的狀態(tài)消息,對其解碼后反饋給用戶;RS232/RS422串口轉(zhuǎn)換器一端連接主控機(jī),另一端連接電器特性轉(zhuǎn)換電路,用 于實現(xiàn)串行數(shù)據(jù)RS232格式與RS422格式的相互轉(zhuǎn)換;電器特性轉(zhuǎn)換電路一端連接RS232/RS422串口轉(zhuǎn)換器,另一端連接圖像處理機(jī) 的FPGA,用于實現(xiàn)串行數(shù)據(jù)RS422差分模式與單端模式的相互轉(zhuǎn)換;DSP的當(dāng)前運行程序接收加載與測試裝置發(fā)送的指令信息,判斷自身是加載程 序還是圖像處理程序,若是加載程序,則按照方式A進(jìn)行處理若是圖像處理程序, 則按照方式B進(jìn)行處理;方式A:Al)若指令信息為FLASH加載指令,則運行加載程序的FLASH加載子模 塊完成FLASH數(shù)據(jù)加載操作;FLASH數(shù)據(jù)加載操作按照如下方法進(jìn)行(all) FLASH加載子模塊檢測DSP連接的FLASH類型,向加載與測試裝置 返回包含有FLASH類型的接收就緒信息;(al2)加載與測試裝置根據(jù)FLASH類型對待加載數(shù)據(jù)進(jìn)行編碼,將編碼得到 的數(shù)據(jù)包發(fā)送給FLASH加載子模塊;(al3) FLASH加載子模塊接收數(shù)據(jù)包,對數(shù)據(jù)包解碼并作正確性校驗,將 校驗結(jié)果返回給加載與測試裝置,如校驗結(jié)果為正確,進(jìn)入步驟(a4),否則,結(jié)束;(al4) FLASH加載子模塊將解碼得到的數(shù)據(jù)寫入FLASH加載指令指定的 FLASH扇區(qū);(al5) FLASH加載子模塊對寫入FLASH的數(shù)據(jù)進(jìn)行正確性校驗,如果正確, 則返回FLASH加載成功的狀態(tài)信息,否則結(jié)束;A2)若指令信息為程序切換指令,則判斷自身是否為目標(biāo)程序,若是,則照常 運行加載程序,向加載與測試裝置返回目標(biāo)程序正在運行的狀態(tài)信息,否則DSP復(fù) 位,運行加載程序的切換程序子模塊將目標(biāo)程序從FLASH中引導(dǎo)加載到DSP內(nèi)存 作為新的當(dāng)前運行程序,并向加載與測試裝置返回目標(biāo)軟件切換成功的狀態(tài)信息;A3)若指令信息為第i測試指令,i=l, 2,......, n,則運行加載程序的第i個測試子模塊完成相應(yīng)測試,并向加載與測試裝置返回表示測試結(jié)果的狀態(tài)信息;A4)若指令信息為通路檢測指令,則運行加載程序的通路檢測子模塊完成加載 與測試裝置與DSP間的通路檢測,并向加載與測試裝置返回表示檢測結(jié)果的狀態(tài)信 息;方式B:Bl)若指令信息為數(shù)據(jù)加載指令,則向加載與測試裝置返回提示用戶切換到加 載程序的狀態(tài)信息;B2)若指令信息為切換程序指令,則判斷自身是否為目標(biāo)程序,若是,貝U照常 運行當(dāng)前圖像處理程序,向加載與測試裝置返回目標(biāo)程序正在運行的狀態(tài)信息,否 則DSP復(fù)位,運行前圖像處理程序的切換程序子模塊將目標(biāo)程序從FLASH中引導(dǎo) 加載到DSP內(nèi)存作為新的當(dāng)前運行程序,并向加載與測試裝置返回目標(biāo)軟件切換成 功的狀態(tài)信息;B3)若指令信息為第i測試指令,i=l, 2,......, n,則向加載與測試裝置返回提示切換到加載程序的狀態(tài)信息;B4)若指令信息為通路檢測指令,則運行當(dāng)前圖像處理程序的通路檢測子模塊完成加載與測試裝置與DSP間的通路檢測,并向加載與測試裝置返回表示檢測結(jié)果 的狀態(tài)信息。
4、根據(jù)權(quán)利要求3所述的圖像處理機(jī)數(shù)據(jù)加載與測試裝置,其特征在于,為 DSP外設(shè)一個可讀寫寄存器作為引導(dǎo)選擇開關(guān);DSP進(jìn)行軟件切換時,先將目標(biāo)軟 件編號寫入引導(dǎo)選擇開關(guān),再熱復(fù)位,最后進(jìn)行DSP重加載;重加載過程具體為 DSP讀取引導(dǎo)選擇開關(guān)存儲的數(shù)值,將存儲于FLASH中與該數(shù)值對應(yīng)的軟件載入 內(nèi)存。
全文摘要
本發(fā)明公開了一種圖像處理機(jī)數(shù)據(jù)加載與測試方法及裝置,加載程序存儲于FLASH的首地址處,加載啟動時DSP將加載程序模塊調(diào)入內(nèi)存,待加載的多個圖像處理程序存儲于FLASH的后繼地址中;DSP根據(jù)接收的指令信息在加載程序以及多個圖像處理程序之間進(jìn)行切換,以完成FLASH數(shù)據(jù)加載、通路測試和其它測試任務(wù)。本發(fā)明在圖像處理機(jī)被封裝后,能夠?qū)Τ绦蜻M(jìn)行升級和維護(hù),并可根據(jù)不同的目標(biāo)類型啟用不同的圖像處理程序,操作方便,可靠性高。
文檔編號G06F9/445GK101609544SQ20091006326
公開日2009年12月23日 申請日期2009年7月21日 優(yōu)先權(quán)日2009年7月21日
發(fā)明者強(qiáng) 付, 磊 張, 張?zhí)煨? 曹治國, 王來健, 舒 董, 賀文嬌, 勝 鐘, 顏露新 申請人:華中科技大學(xué)