新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > SoPC技術(shù)在圖像采集和處理系統(tǒng)中的應(yīng)用設(shè)計(jì)

SoPC技術(shù)在圖像采集和處理系統(tǒng)中的應(yīng)用設(shè)計(jì)

作者: 時(shí)間:2010-05-04 來源:網(wǎng)絡(luò) 收藏

2 系統(tǒng)軟件
系統(tǒng)軟件部分包括實(shí)時(shí)操作系統(tǒng)μC/OS-II和數(shù)據(jù)部分的程序。在Nios II IDE中將軟件開發(fā)分為兩大部分,一部分是底層系統(tǒng)軟件的開發(fā),主要完成BSP(板級(jí)支持包)的功能;另一部分則是用戶軟件的開發(fā)(包括用戶硬件驅(qū)動(dòng)及用戶上層軟件)。整個(gè)用戶軟件的開發(fā)及調(diào)試工作都可以在Nios II IDE中完成。
2.1 實(shí)時(shí)操作系統(tǒng)μC/OS-II在Nios上的移植
在本課題中使用的是μC/OS-II的v2.83版本,源碼可以從Micrium的網(wǎng)站上獲得。同時(shí)還要從網(wǎng)站上獲得μC/OS-II在EDK中使用的配置文件μCOS-II_v2_1_0.mld和μCOS-II_v2_1_0.tcl。將這兩個(gè)文件放到EDK能找到的路徑下,這樣在EDK中才能配置使用μC/OS-II。在EDK中通過菜單Software->Software Platform Settings打開配置窗口,在OS中選擇μC/OS-II,OS Version中選擇 v2.83a,然后進(jìn)入OS Library對(duì)μC/OS-II進(jìn)行配置。
在Nios II IDE中,可以對(duì)μC/OS-II的源碼位置、BSP包源碼位置、移植程序文件位置、應(yīng)用程序文件位置進(jìn)行修改,同時(shí)還可對(duì)μC/OS-II進(jìn)行剪裁配置,如是否使用事件、互斥信號(hào)量、消息郵箱及任務(wù)是否可刪除等。
2.2 實(shí)時(shí)操作系統(tǒng)下的軟件
μC/OS-II在ALTERA的Nios微器上移植并測(cè)試完成后,建立了基于μC/OS-II實(shí)時(shí)多任務(wù)內(nèi)核的硬件開發(fā)平臺(tái),但μC/OS-II僅是一個(gè)有源碼的內(nèi)核,在實(shí)際應(yīng)用中,對(duì)外設(shè)的操作需要自行編寫底層的代碼。在此平臺(tái)下進(jìn)一步開發(fā),實(shí)現(xiàn)數(shù)據(jù)功能,需要建立相關(guān)的應(yīng)用程序,也就是要根據(jù)整個(gè)系統(tǒng)的要求,劃分不同的任務(wù),這些任務(wù)交由實(shí)時(shí)內(nèi)核來調(diào)度管理。一般一個(gè)任務(wù)對(duì)應(yīng)于一段獨(dú)立的主程序,它可能調(diào)用各種子程序,并使用各種系統(tǒng)資源,以完成某種特定的功能,并且實(shí)時(shí)內(nèi)核允許多個(gè)任務(wù)并行運(yùn)行。采用實(shí)時(shí)操作系統(tǒng),使應(yīng)用程序的編寫簡單且易于調(diào)試。
主程序用C語言編寫,其主要程序如下:
void main()
{sys_initialize();//系統(tǒng)初始化
while(1)
{ad_fft_ctl();//數(shù)據(jù)及FFT計(jì)算子程序
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)用實(shí)例
調(diào)試包括硬件和軟件調(diào)試。硬件調(diào)試分析電路的合理性及焊接工藝的可靠性,以保證所設(shè)計(jì)的各個(gè)模塊合理,重點(diǎn)放在調(diào)試自己所設(shè)計(jì)的IP核和硬件邏輯的可靠性與適用性。軟件調(diào)試主要是集中在系統(tǒng)內(nèi)核的應(yīng)用程序,以保證各個(gè)功能都成功實(shí)現(xiàn)。這是一個(gè)相當(dāng)復(fù)雜的過程。
3.1 系統(tǒng)硬件調(diào)試
為了驗(yàn)證FPGA能否正常工作,把CMOS圖像傳感器的輸出連接到Nios II開發(fā)板的擴(kuò)展插座上,編寫VHDL程序,讀取CMOS圖像傳感器的輸出并存儲(chǔ)到FPGA的內(nèi)部RAM中,利用Quartus II的工具In-System Memory Content Editor,讀取內(nèi)部RAM的值。
要設(shè)計(jì)用戶邏輯或者外設(shè),除了要編寫實(shí)現(xiàn)特定功能的邏輯之外,還要編寫與Avalon總線的接口,這就要求對(duì)Avalon總線的規(guī)范很熟悉。測(cè)試結(jié)果表明,程序能夠通過JTAG接口成功下載到FPGA上,顯示在LCD上的運(yùn)行結(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è)計(jì)和調(diào)試全部在Nios II IDE下完成,使用C/C++語言編程。
3.3 系統(tǒng)應(yīng)用實(shí)例――PDF417二維條碼的識(shí)別
二維條碼掃描器開始工作時(shí),首先采集二維條碼圖像數(shù)據(jù),由于實(shí)際工作中條碼圖像會(huì)出現(xiàn)污損等情況,對(duì)碼字的正確譯出造成影響,所以必須對(duì)采集到的圖像進(jìn)行降噪、校正等預(yù)處理。條碼圖像為灰度圖像,對(duì)其進(jìn)行二值化才能進(jìn)行碼字識(shí)別。在將PDF417碼的所有碼字正確分割后,以查表方式在碼本中查找與碼字相對(duì)應(yīng)的值,將編碼數(shù)據(jù)譯出。為確認(rèn)掃描的有效性,必須進(jìn)行前向錯(cuò)誤校驗(yàn)。如出錯(cuò),則進(jìn)行糾錯(cuò)。最后,將譯碼的正確數(shù)據(jù)傳輸?shù)缴衔挥?jì)算機(jī)或LCD顯示。識(shí)別過程如圖5所示。

二維條碼數(shù)據(jù)全部識(shí)別完以后,Nois控制輸出一個(gè)中斷申請(qǐng)信號(hào),開始執(zhí)行中斷服務(wù)程序。首先選定數(shù)據(jù)傳輸口地址,然后譯碼結(jié)果可通過RS-232接口被送至計(jì)算機(jī),計(jì)算機(jī)接收該譯碼數(shù)據(jù)后,中斷結(jié)束。重復(fù)該過程,直至全部譯碼結(jié)果輸出結(jié)束。整個(gè)軟件處理過程控制在0.3 s以內(nèi),完全可以滿足系統(tǒng)實(shí)時(shí)性要求。
本文對(duì)基于FPGA以及Nios的圖像采集與處統(tǒng)設(shè)計(jì)進(jìn)行了深入研究,并在設(shè)計(jì)完成硬件實(shí)驗(yàn)平臺(tái)的基礎(chǔ)之上,完成了嵌入式操作系統(tǒng)的移植及應(yīng)用程序的設(shè)計(jì)。系統(tǒng)采用Nios處理器和FPGA,必要的外圍電路和處理器能集中在一塊芯片上,減少了系統(tǒng)體積,簡化了系統(tǒng)規(guī)模,同時(shí)可以方便地進(jìn)行擴(kuò)展和升級(jí)。μC/OS-II操作系統(tǒng)移植到Nios處理器上,提高了系統(tǒng)的運(yùn)行效率和可靠性。嵌入式圖像處統(tǒng)作為一種新型的智能化視覺系統(tǒng),以其種種優(yōu)點(diǎn)使之具有廣闊的應(yīng)用前景和良好的經(jīng)濟(jì)價(jià)值。研究與推廣嵌入式圖像處統(tǒng)無疑是科技進(jìn)步的表現(xiàn),尤其當(dāng)嵌入式圖像處理系統(tǒng)應(yīng)用于工業(yè)生產(chǎn)上時(shí),必能提高生產(chǎn)效率,推動(dòng)生產(chǎn)力的發(fā)展。

電氣符號(hào)相關(guān)文章:電氣符號(hào)大全


存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理



上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉