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