日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 工業(yè)控制

圖像采集和處理已經(jīng)成為了現(xiàn)代工業(yè)控制中必不可少的環(huán)節(jié)。傳統(tǒng)的方法一般采用的是圖像采集卡加工控機(jī)來(lái)實(shí)現(xiàn)整個(gè)系統(tǒng)。但隨著嵌入式技術(shù)的發(fā)展,芯片的性能大大增強(qiáng),嵌入式系統(tǒng)在工業(yè)控制系統(tǒng)中普及。作為前端的圖像采集系統(tǒng)此時(shí)就不適宜再以圖像采集卡的形式出現(xiàn),而應(yīng)當(dāng)以更加簡(jiǎn)捷,方便的接口與主系統(tǒng)相連。


本設(shè)計(jì)使用Alera的FPGA實(shí)現(xiàn)了整個(gè)圖像采集系統(tǒng)。整個(gè)系統(tǒng)完成了圖像的采集、壓縮和傳輸。系統(tǒng)采用流行的工業(yè)總線CAN做為其傳輸總線,不僅接口簡(jiǎn)易,成本低,而且可靠性較高。

系統(tǒng)描述


本設(shè)計(jì)中圖像采集系統(tǒng)預(yù)期的目標(biāo)是每秒采集2~3幅30萬(wàn)像素(640×480)的圖像,壓縮后通過(guò)CAN總線進(jìn)行傳輸。按照1:8的壓縮比計(jì)算,壓縮后每幀數(shù)據(jù)量大約為0.3Mb,CAN總線峰值傳輸速度是1Mb/s,因此這樣的一個(gè)總體的設(shè)計(jì)方案是可行的。


根據(jù)系統(tǒng)所實(shí)現(xiàn)的功能,決定整個(gè)系統(tǒng)要包括六大模塊,分別是圖像采集及存儲(chǔ)接口、I2C主控制模塊(對(duì)SAA7113H進(jìn)行配置)、JPEG編碼器、CAN總線控制器、Wishbone總線和中央控制模塊。圖1為系統(tǒng)的結(jié)構(gòu)框圖。

圖1 系統(tǒng)結(jié)構(gòu)框圖


攝像頭產(chǎn)生的原始模擬圖像數(shù)據(jù)流首先通過(guò)SAA7113H轉(zhuǎn)換為數(shù)字信號(hào),并攜帶有一定的同步及控制信息,傳入FPGA內(nèi)部異步FIFO內(nèi)。圖像采集及存儲(chǔ)接口從異步FIFO讀取數(shù)據(jù)并分析,提取所需要的保存至外部SRAM中,當(dāng)存滿一幀數(shù)據(jù)時(shí),便可以進(jìn)行壓縮了。當(dāng)JPEG編碼模塊壓縮好數(shù)據(jù)后,便等待CAN總線進(jìn)行傳輸,最后直至整幀數(shù)據(jù)處理完畢。


整個(gè)系統(tǒng)的實(shí)現(xiàn)大約是60~100萬(wàn)門左右,因此可以采用Altera CycloneII系列中器件的EP2C20,它擁有2萬(wàn)個(gè)LE,24萬(wàn)左右的存儲(chǔ)單元和52個(gè)乘加單元。系統(tǒng)Fitter之后的結(jié)果如表1所示,占用了芯片63%的邏輯資源和12%存儲(chǔ)資源。在這其中,JPEG編碼模塊以及JPEG模塊與Wishbone總線的接口占用了絕大多數(shù)部分資源。可以看出,使用EP2C20實(shí)現(xiàn)本文所描述的系統(tǒng)還是非常富余的。

圖2 PCB調(diào)試樣板


圖2為最后制成的樣板,這塊樣板上還包括了一些便于調(diào)試和其他研發(fā)目的的額外部件,真正產(chǎn)品的PCB板將會(huì)更加小巧。

視頻信號(hào)采集及存儲(chǔ)接口


本設(shè)計(jì)采用Phillips的SAA7113H芯片做模擬視頻信號(hào)的采集。它的功能非常強(qiáng)大,最多可同時(shí)采集4路CVBS格式的視頻數(shù)據(jù)。它通過(guò)VPO口輸出數(shù)據(jù),并支持多種視頻格式輸出,同時(shí)在輸出數(shù)據(jù)流中包含同步信息和場(chǎng)信息,接口比較簡(jiǎn)單。


VPO的數(shù)據(jù)輸出與27M時(shí)鐘同步的,這與JPEG encoder采用30M內(nèi)部系統(tǒng)時(shí)鐘處于兩個(gè)時(shí)鐘域。因此,使用異步FIFO進(jìn)行跨時(shí)鐘域的數(shù)據(jù)傳遞。


數(shù)據(jù)采集以后便是對(duì)其進(jìn)行識(shí)別和存儲(chǔ)。從SAA7113H傳出數(shù)據(jù)的最小單位是一個(gè)掃描行,以0xFF 0x00 0x00為標(biāo)識(shí),并且在行首尾分別有SAV(start of active video)和EAV(end of active video)字段。SAV和EAV中含有該掃描行是否是有效行,屬于第幾場(chǎng)這樣的信息。JPEG編碼器需要的數(shù)據(jù)是一整幅圖像,即一個(gè)場(chǎng)對(duì)。因此對(duì)采集的圖像,需要使用幀解碼(Frame Decoder)子模塊處理原始數(shù)據(jù)流中的同步信息,垂直掃描消隱信號(hào)。


本設(shè)計(jì)的存儲(chǔ)器件使用了一塊4Mb的SRAM,正好可以保存一副未經(jīng)壓縮的30萬(wàn)像素的圖片。對(duì)SRAM存儲(chǔ)和讀取地址的產(chǎn)生應(yīng)該完全采用不同的方式,在本設(shè)計(jì)中分別采用兩個(gè)子模塊分別負(fù)責(zé)這兩項(xiàng)功能。Frame Decoder輸出的數(shù)據(jù)在存入SRAM時(shí)是按照行的順序逐個(gè)存入,而JPEG encoder在讀取的時(shí)候則應(yīng)該是按照對(duì)像素處理順序——以8×8塊的方式讀出。整個(gè)讀寫由控制狀態(tài)機(jī)(Read &Write Control)來(lái)進(jìn)行統(tǒng)一控制。視頻采集及存儲(chǔ)接口的結(jié)構(gòu)圖如圖3所示。

圖3 視頻采集及存儲(chǔ)接口模塊

JPEG壓縮模塊


JPEG壓縮標(biāo)準(zhǔn)從1993年提出至今已有14年了,從各個(gè)方面來(lái)看都已經(jīng)非常成熟,并且被廣泛的使用于各個(gè)領(lǐng)域,這也正是本設(shè)計(jì)采用JPEG壓縮模式的原因之一。JPEG壓縮的過(guò)程包括了8×8 DCT(離散余弦變換)、Zig-Zag掃描、量化、游程編碼和熵編碼(使用Huffman編碼)五個(gè)主要的過(guò)程。本設(shè)計(jì)中的JPEG壓縮模塊除了包括這五大部分之外還要有字節(jié)分包處理、字節(jié)碼處理(主要是插入一些特殊的碼字)、FIFO、wishbone總線接口和配置寄存器等一些功能模塊來(lái)協(xié)調(diào)整個(gè)系統(tǒng)的運(yùn)作。該模塊的結(jié)構(gòu)如圖4所示。

圖4 JPEG壓縮模塊結(jié)構(gòu)圖


Huffman編碼出來(lái)的數(shù)據(jù)是變長(zhǎng)碼,它包括了兩部分,即碼字本身和碼字長(zhǎng)度。在Byte Pack模塊中,根據(jù)碼字的長(zhǎng)度對(duì)碼字進(jìn)行適當(dāng)?shù)囊莆唬缓笳沓?位長(zhǎng)度,送入Byte Code Insetion模塊。該模塊根據(jù)碼字的實(shí)際值進(jìn)行判斷,如果當(dāng)前碼字的值是FF,便在其后插入0x00,如果當(dāng)前碼字是本幀最后一個(gè)碼字的話,便在其后插入0xFFD9(0xFFD9是JPEG圖像標(biāo)準(zhǔn)中的結(jié)束標(biāo)志)以標(biāo)示該幀的完結(jié)。這樣在接收端中就可以用0xFFD9對(duì)數(shù)據(jù)流中每一幀壓縮的數(shù)據(jù)進(jìn)行分割。最后處理好的字節(jié)流將送入FIFO中,以等待CAN總線空閑。


另外,還有Control Regs模塊,可以使用總控制器通過(guò)Wishbone Bus對(duì)其中的功能寄存器進(jìn)行修改,進(jìn)而操控整個(gè)JPEG編碼的過(guò)程。這個(gè)操作必不可少,只有使JPEG編碼具有可控性,才能協(xié)調(diào)采集、壓縮、傳輸?shù)拳h(huán)節(jié)的順利進(jìn)行。

系統(tǒng)控制模塊


本系統(tǒng)的大部分功能都采用硬件進(jìn)行實(shí)現(xiàn),因此,軟件的控制流程就變的非常簡(jiǎn)單,僅僅包括了對(duì)各個(gè)模塊進(jìn)行初始化配置和控制協(xié)調(diào)各個(gè)模塊。本設(shè)計(jì)中的控制模塊采用了微碼狀態(tài)機(jī)替代了微處理器核,不僅可以節(jié)約邏輯成本(包括微碼在內(nèi),僅有216個(gè)LE),還提高了運(yùn)行效率。微碼狀態(tài)機(jī)的實(shí)現(xiàn)是根據(jù)系統(tǒng)的具體要求,對(duì)處理器的體系結(jié)構(gòu)進(jìn)行簡(jiǎn)化,本設(shè)計(jì)所實(shí)現(xiàn)的微碼狀態(tài)機(jī)在功能上相當(dāng)于一個(gè)只有mov和jump指令的處理器。另外,微碼的使用本身就增加了該模塊的靈活性,想修改整個(gè)系統(tǒng)配置或者工作的過(guò)程的話并不需要修改模塊的代碼,而只是修改微碼便可以,大大增加了可重用性。整個(gè)系統(tǒng)的控制流程如圖5所示。

圖5 系統(tǒng)工作流程


本設(shè)計(jì)的系統(tǒng)圖像采集壓縮速度都要大于CAN總線的傳輸速度,因此只有第一次向CAN總線發(fā)送數(shù)據(jù)時(shí)需要判斷壓縮的數(shù)據(jù)是否已經(jīng)達(dá)到8字節(jié),以后每次當(dāng)CAN傳輸完上一次壓縮數(shù)據(jù)時(shí),JPEG encoder已經(jīng)又一次壓縮好8字節(jié)數(shù)據(jù),等待傳輸了,因此就不必每次都進(jìn)行判斷。

Wishbone總線與開源IP


系統(tǒng)中各模塊的互連采用的是比較簡(jiǎn)單的Wishbone總線。Wishbone總線標(biāo)準(zhǔn)是開放式總線,沒(méi)有任何專利費(fèi)用,它現(xiàn)在由opencore維護(hù),并且在opencore的網(wǎng)站上有很多由專人維護(hù)并且與Wishbone兼容的開源IP。本設(shè)計(jì)中的I2C master和CAN controller就是從opencore上免費(fèi)獲得的開源IP。合理的使用這些軟核,并將其集成于自己的系統(tǒng)中將大大加快整個(gè)設(shè)計(jì)的進(jìn)程和產(chǎn)品的成本。


在系統(tǒng)中存在1個(gè)主設(shè)備(master)和3個(gè)從設(shè)備(slave),為每個(gè)slave分配好固定的地址,因此Wishbone總線模塊所做的事情僅僅是進(jìn)行地址譯碼。

系統(tǒng)驗(yàn)證與仿真


雖然本設(shè)計(jì)所構(gòu)建的SOC系統(tǒng)是基于FPGA的,但是在上板調(diào)試前首先在PC上建立整個(gè)系統(tǒng)的仿真環(huán)境,對(duì)系統(tǒng)進(jìn)行充分的驗(yàn)證,這樣可大大的加速整個(gè)項(xiàng)目的進(jìn)度。本設(shè)計(jì)中為系統(tǒng)建立的仿真環(huán)境如圖6所示。

圖6 驗(yàn)證環(huán)境


準(zhǔn)備原始數(shù)據(jù)做為系統(tǒng)圖像源的輸入,并且使用Can Receiver采集系統(tǒng)的輸出,最后和軟件模型生成的JPEG壓縮數(shù)據(jù)進(jìn)行比對(duì),對(duì)錯(cuò)誤進(jìn)行定位,另外也可在系統(tǒng)中設(shè)置監(jiān)控點(diǎn),輸出數(shù)據(jù)流,這樣便可知道具體在哪一個(gè)環(huán)節(jié)中出現(xiàn)了錯(cuò)誤。圖7為運(yùn)行testbench產(chǎn)生的接收數(shù)據(jù)波形文件。

圖7 數(shù)據(jù)波形

總結(jié)


在本設(shè)計(jì)中,筆者使用FPGA構(gòu)建了一個(gè)SOC系統(tǒng),完成了圖像的采集、壓縮和傳輸功能,很多地方還可以進(jìn)一步的優(yōu)化。本設(shè)計(jì)的重點(diǎn)在于在FPGA上應(yīng)用了SOC的設(shè)計(jì)方法,并實(shí)現(xiàn)了一個(gè)比較簡(jiǎn)單的SOC系統(tǒng)。這樣做繞過(guò)了ASIC設(shè)計(jì)的高復(fù)雜性,高風(fēng)險(xiǎn)性和高投入,從而實(shí)現(xiàn)了簡(jiǎn)化最終PCB系統(tǒng),降低硬件成本的目的,并且對(duì)系統(tǒng)的實(shí)現(xiàn)更加靈活,能按照客戶的愿望定制,修改系統(tǒng)的功能。另外在整個(gè)設(shè)計(jì)過(guò)程中,盡量的應(yīng)用可重用的IP軟核,最大限度的加快了開發(fā)進(jìn)度和降低了開發(fā)費(fèi)用和成本。


現(xiàn)在,F(xiàn)PGA廠商已推出65nm最新工藝的器件,使集成度進(jìn)一步提高,而功耗和成本又大幅度降低。在這樣的環(huán)境下,相信在不久的將來(lái)FPGA會(huì)不僅僅只作為協(xié)處理器的配角出現(xiàn),而是更多的出現(xiàn)以FPGA實(shí)現(xiàn)的SOC系統(tǒng)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

最近為什么越來(lái)越多的研究開始利用FPGA作為CNN加速器?FPGA與CNN的相遇究竟能帶來(lái)什么神奇效果呢?原來(lái),F(xiàn)PGA擁有大量的可編程邏輯資源,相對(duì)于GPU,它的可重構(gòu)性以及高功耗能效比的優(yōu)點(diǎn),是GPU無(wú)法比擬的;同時(shí)...

關(guān)鍵字: FPGA 可編程邏輯資源 GPU

FPGA的應(yīng)用領(lǐng)域包羅萬(wàn)象,我們今天來(lái)看看在音樂(lè)科技領(lǐng)域及醫(yī)療照護(hù)的智能巧思。

關(guān)鍵字: FPGA 科技領(lǐng)域 智能

強(qiáng)大的產(chǎn)品可降低信號(hào)噪音并提高分辨率與動(dòng)態(tài)

關(guān)鍵字: Spectrum儀器 數(shù)字化儀 FPGA

最近某項(xiàng)目采用以太網(wǎng)通信,實(shí)踐起來(lái)有些奇怪,好像設(shè)計(jì)成只能應(yīng)答某類計(jì)算機(jī)的ICMP(ping)命令, 某類計(jì)算機(jī)指的是Windows特定系統(tǒng),其他系統(tǒng)發(fā)送ping都不能正確識(shí)別。

關(guān)鍵字: 嵌入式Linux FPGA 協(xié)議

近兩年,國(guó)外廠商的FPGA芯片價(jià)格飆升,由于價(jià)格,貨期,出口管制等多方面因素的影響,很多公司都在尋找FPGA國(guó)產(chǎn)化替代方案。我工作中正在使用的幾款芯片也面臨停產(chǎn)的風(fēng)險(xiǎn),用一片少一片,了解到國(guó)產(chǎn)FPGA發(fā)展的也不錯(cuò),完全自...

關(guān)鍵字: FPGA 芯片 EDA

本篇是FPGA之旅設(shè)計(jì)的第十二例,在前面的例程中,完成了DS18B20溫度傳感器數(shù)據(jù)的采集,并且將采集到的數(shù)據(jù)顯示在數(shù)碼管上。由于本例將對(duì)溫濕度傳感器DHT11進(jìn)行采集,而且兩者的數(shù)據(jù)采集過(guò)程類似,所以可以參考一下前面的...

關(guān)鍵字: FPGA DS18B20溫度傳感器

這是FPGA之旅設(shè)計(jì)的第十三例啦,本例是一個(gè)綜合性的例程,基于OLED屏幕顯示,和DHT11溫濕度采集,將DHT11采集到的溫濕度顯示到OLED屏幕上。

關(guān)鍵字: FPGA OLED屏幕

第八例啦,本例將介紹如何通過(guò)FPGA采集DS18B20傳感器的溫度值。

關(guān)鍵字: FPGA DS18B20傳感器

這是FPGA之旅設(shè)計(jì)的第九例啦?。?!本例將介紹如何使用FPGA驅(qū)動(dòng)OLED屏幕,并在接下來(lái)的幾例中,配合其它模塊,進(jìn)行一些有趣的綜合實(shí)驗(yàn)。由于使用的OLED屏是IIC接口的,對(duì)IIC接口不是很清楚的,可以參考第五例的設(shè)計(jì)...

關(guān)鍵字: FPGA OLED屏幕

這是FPGA之旅設(shè)計(jì)的第十例啦,在上一例中,已經(jīng)成功驅(qū)動(dòng)了OLED屏幕,本例將結(jié)合上一例,以及第四例多bytes串口通信做一個(gè)有趣的例程。

關(guān)鍵字: FPGA OLED屏 串口

工業(yè)控制

13606 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉