SoPC技術(shù)在圖像采集和處理系統(tǒng)中的應(yīng)用設(shè)計
2 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件部分包括實時操作系統(tǒng)μC/OS-II和數(shù)據(jù)采集與處理部分的應(yīng)用程序。在Nios II IDE中將軟件開發(fā)分為兩大部分,一部分是底層系統(tǒng)軟件的開發(fā),主要完成BSP(板級支持包)的功能;另一部分則是用戶應(yīng)用軟件的開發(fā)(包括用戶硬件驅(qū)動及用戶上層應(yīng)用軟件)。整個用戶軟件的開發(fā)及調(diào)試工作都可以在Nios II IDE中完成。
2.1 實時操作系統(tǒng)μC/OS-II在Nios上的移植
在本課題中使用的是μC/OS-II的v2.83版本,源碼可以從Micrium的網(wǎng)站上獲得。同時還要從網(wǎng)站上獲得μC/OS-II在EDK中使用的配置文件μCOS-II_v2_1_0.mld和μCOS-II_v2_1_0.tcl。將這兩個文件放到EDK能找到的路徑下,這樣在EDK中才能配置使用μC/OS-II。在EDK中通過菜單Software->Software Platform Settings打開配置窗口,在OS中選擇μC/OS-II,OS Version中選擇 v2.83a,然后進入OS Library對μC/OS-II進行配置。
在Nios II IDE中,可以對μC/OS-II的源碼位置、BSP包源碼位置、移植程序文件位置、應(yīng)用程序文件位置進行修改,同時還可對μC/OS-II進行剪裁配置,如是否使用事件、互斥信號量、消息郵箱及任務(wù)是否可刪除等。
2.2 實時操作系統(tǒng)下的軟件設(shè)計
μC/OS-II在ALTERA的Nios微處理器上移植并測試完成后,建立了基于μC/OS-II實時多任務(wù)內(nèi)核的硬件開發(fā)平臺,但μC/OS-II僅是一個有源碼的內(nèi)核,在實際應(yīng)用中,對外設(shè)的操作需要自行編寫底層的代碼。在此平臺下進一步開發(fā),實現(xiàn)數(shù)據(jù)采集功能,需要建立相關(guān)的應(yīng)用程序,也就是要根據(jù)整個系統(tǒng)的要求,劃分不同的任務(wù),這些任務(wù)交由實時內(nèi)核來調(diào)度管理。一般一個任務(wù)對應(yīng)于一段獨立的主程序,它可能調(diào)用各種子程序,并使用各種系統(tǒng)資源,以完成某種特定的功能,并且實時內(nèi)核允許多個任務(wù)并行運行。采用實時操作系統(tǒng),使應(yīng)用程序的編寫簡單且易于調(diào)試。
主程序用C語言編寫,其主要程序如下:
void main()
{sys_initialize();//系統(tǒng)初始化
while(1)
{ad_fft_ctl();//數(shù)據(jù)采集及FFT計算子程序
case collection_order: //圖像采集命令
image_collection();//圖像采集
image_process();//圖像處理
image_save();//圖像保存
mps_decoder();//調(diào)用相應(yīng)的解碼算法
case rs232_transfer://傳輸數(shù)據(jù)命令
lcd_display(p1,p2,p3);//LCD液晶顯示子程序
}
}
3 系統(tǒng)調(diào)試與應(yīng)用實例
調(diào)試包括硬件和軟件調(diào)試。硬件調(diào)試分析電路的設(shè)計合理性及焊接工藝的可靠性,以保證所設(shè)計的各個模塊合理,重點放在調(diào)試自己所設(shè)計的IP核和硬件邏輯的可靠性與適用性。軟件調(diào)試主要是集中在系統(tǒng)內(nèi)核的應(yīng)用程序,以保證各個功能都成功實現(xiàn)。這是一個相當復雜的過程。
3.1 系統(tǒng)硬件調(diào)試
為了驗證FPGA能否正常工作,把CMOS圖像傳感器的輸出連接到Nios II開發(fā)板的擴展插座上,編寫VHDL程序,讀取CMOS圖像傳感器的輸出并存儲到FPGA的內(nèi)部RAM中,利用Quartus II的工具In-System Memory Content Editor,讀取內(nèi)部RAM的值。
要設(shè)計用戶邏輯或者外設(shè),除了要編寫實現(xiàn)特定功能的邏輯之外,還要編寫與Avalon總線的接口,這就要求對Avalon總線的規(guī)范很熟悉。測試結(jié)果表明,程序能夠通過JTAG接口成功下載到FPGA上,顯示在LCD上的運行結(jié)果也正確。這說明FPGA、JTAG接口、電源、晶振和LCD顯示等電路均能正常工作。
3.2 系統(tǒng)軟件調(diào)試
Nios II集成開發(fā)環(huán)境(IDE)是Nios II系列嵌入式處理器的基本軟件開發(fā)工具,所有的開發(fā)任務(wù)都可以在Nios II IDE下完成,包括編輯、編譯、調(diào)試程序和下載。系統(tǒng)的軟件設(shè)計和調(diào)試全部在Nios II IDE下完成,使用C/C++語言編程。
3.3 系統(tǒng)應(yīng)用實例――PDF417二維條碼的識別
二維條碼掃描器開始工作時,首先采集二維條碼圖像數(shù)據(jù),由于實際工作中條碼圖像會出現(xiàn)污損等情況,對碼字的正確譯出造成影響,所以必須對采集到的圖像進行降噪、校正等預(yù)處理。條碼圖像為灰度圖像,對其進行二值化才能進行碼字識別。在將PDF417碼的所有碼字正確分割后,以查表方式在碼本中查找與碼字相對應(yīng)的值,將編碼數(shù)據(jù)譯出。為確認掃描的有效性,必須進行前向錯誤校驗。如出錯,則進行糾錯。最后,將譯碼的正確數(shù)據(jù)傳輸?shù)缴衔挥嬎銠C或LCD顯示。識別過程如圖5所示。
二維條碼數(shù)據(jù)全部識別完以后,Nois控制輸出一個中斷申請信號,開始執(zhí)行中斷服務(wù)程序。首先選定數(shù)據(jù)傳輸口地址,然后譯碼結(jié)果可通過RS-232接口被送至計算機,計算機接收該譯碼數(shù)據(jù)后,中斷結(jié)束。重復該過程,直至全部譯碼結(jié)果輸出結(jié)束。整個軟件處理過程控制在0.3 s以內(nèi),完全可以滿足系統(tǒng)實時性要求。
本文對基于FPGA以及Nios的圖像采集與處理系統(tǒng)設(shè)計進行了深入研究,并在設(shè)計完成硬件實驗平臺的基礎(chǔ)之上,完成了嵌入式操作系統(tǒng)的移植及應(yīng)用程序的設(shè)計。系統(tǒng)采用Nios處理器和FPGA,必要的外圍電路和處理器能集中在一塊芯片上,減少了系統(tǒng)體積,簡化了系統(tǒng)規(guī)模,同時可以方便地進行擴展和升級。μC/OS-II操作系統(tǒng)移植到Nios處理器上,提高了系統(tǒng)的運行效率和可靠性。嵌入式圖像處理系統(tǒng)作為一種新型的智能化視覺系統(tǒng),以其種種優(yōu)點使之具有廣闊的應(yīng)用前景和良好的經(jīng)濟價值。研究與推廣嵌入式圖像處理系統(tǒng)無疑是科技進步的表現(xiàn),尤其當嵌入式圖像處理系統(tǒng)應(yīng)用于工業(yè)生產(chǎn)上時,必能提高生產(chǎn)效率,推動生產(chǎn)力的發(fā)展。
電氣符號相關(guān)文章:電氣符號大全
存儲器相關(guān)文章:存儲器原理
評論