當前位置:首頁 > 工業(yè)控制 > 電子設計自動化

摘 要: 提出了一種在FPGA上實現(xiàn)視頻圖像處理器分系統(tǒng)與系統(tǒng)之間的數(shù)據(jù)串行通信設計方法,采用UART串行數(shù)據(jù)傳輸協(xié)議,傳輸波特率可設置調(diào)整,采用視頻場同步信號作為發(fā)送器發(fā)送控制信號,實現(xiàn)視頻圖像處理的實時性要求。串口采用雙口RAM實現(xiàn)與視頻圖像處理部分的異步通信。設計中大量采用參數(shù)化設計,使用靈活、通用性強,可實現(xiàn)FPGA與一般串口通信系統(tǒng)通信。設計程序下載到FPGA芯片中,通信數(shù)據(jù)完全正確,電路工作穩(wěn)定、可靠。

關(guān)鍵詞: FPGA;Verilog HDL;UART;雙口RAM;視頻圖像

在視頻圖像處理系統(tǒng)中,諸如圖像相減等操作,處理的數(shù)據(jù)量很大,對處理速度的要求很高,但算法結(jié)構(gòu)相對簡單,適合用FPGA進行硬件實現(xiàn)。由于FPGA的開發(fā)具有很強的靈活性,因此,可以利用FPGA的資源,在芯片上實現(xiàn)視頻圖像處理的串口通信功能,從而簡化了電路,縮小了體積,提高了可靠性,并且在使用上有很大的靈活性。

1 總體概述

在FPGA上實現(xiàn)視頻圖像處理器分系統(tǒng)與系統(tǒng)之間的數(shù)據(jù)串行通信,采用UART串行數(shù)據(jù)傳輸協(xié)議,通信的傳輸波特率、FPGA系統(tǒng)時鐘頻率均采用參數(shù)化設計,可滿足不同系統(tǒng)主頻和傳輸波特率要求。分系統(tǒng)發(fā)送接收有幀頭、幀尾,用來判斷數(shù)據(jù)接收的正確性。數(shù)據(jù)格式為一個起始位低電平0,8個數(shù)據(jù)位數(shù),一個停止位高電平1,一個數(shù)據(jù)串為10位??傮w結(jié)構(gòu)如圖1所示。

為解決串口與視頻圖像部分的異步通信問題,采用了在FPGA上產(chǎn)生雙口RAM實現(xiàn)串口與視頻圖像處理部分的對接。雙口RAM就是存儲數(shù)據(jù)共享的存儲器,配備兩套獨立的地址、數(shù)據(jù)和控制線,允許兩個獨立的CPU或控制器同時異步地訪問存儲單元,特別適合異步處理器之間的異步高速通信。雙口RAM的存儲空間大小和數(shù)據(jù)地址位數(shù)均采用參數(shù)化設計,使得雙口RAM的存儲空間大小可根據(jù)實際應用需要進行調(diào)整,增加了串口使用的靈活性和通用性。

在視頻圖像處理中,為滿足實時性要求,一次圖像處理在一場圖像時間中完成,故可用視頻場同步信號作為串口發(fā)送器發(fā)送控制信號。PAL電視制式規(guī)定,場掃描頻率為50Hz,一幀圖像分為奇數(shù)場和偶數(shù)場。

2 結(jié)構(gòu)功能設計

2.1 波特率發(fā)生器

波特率發(fā)生器如圖2所示。

rst_n:系統(tǒng)復位信號

clk:系統(tǒng)時鐘頻率

clk_16x:輸出波特率(傳輸波特率時鐘頻率的16倍)

串口在接收數(shù)據(jù)時,理想的采樣點是在數(shù)據(jù)位的中間。為了對串行數(shù)據(jù)位進行精確采樣,可對數(shù)據(jù)位時間進行分段,分段數(shù)越大,則采樣點越靠近中間點,但同時也增加了系統(tǒng)的開銷。在設計應用中,采用了16倍時間分段。

串口的接收和發(fā)送是按照相同的波特率進行的,波特率發(fā)生器產(chǎn)生的時鐘頻率不是波特率時鐘頻率,而是波特率時鐘頻率的16倍(即一個傳輸位的寬度為16個clk_16x時鐘周期)。可以根據(jù)給定的系統(tǒng)時鐘頻率和要求的波特率算出波特率計數(shù)值。假設系統(tǒng)時鐘頻率為40MHz,要求的傳輸波特率為115 200b/s,則可產(chǎn)生Counter=(Clk_frequency/(2*16*Baud_rate))-1,即對clk計數(shù)到Counter時對clk_16x進行翻轉(zhuǎn)一次。在程序設計中,采用參數(shù)化設計,可根據(jù)應用要求改變波特率大小。

parameter Clk_frequency=40000000,

//系統(tǒng)時鐘頻率40MHz

Baud_rate=115200,

//要求傳輸波特率值115 200b/s

Counter=(Clk_frequency/(2*16*Baud_rate))-1,Width=7;

//能夠存儲Counter值的二進制形式所需的位數(shù)

2.2 帶雙口RAM的發(fā)送器

帶雙口RAM的發(fā)送器模塊如圖3所示。

Data_out:串行輸出

Vs: 發(fā)送控制信號(視頻場同步信號)

Cs: 雙口RAM的片選信號

Wren: 雙口RAM的寫使能信號

Addr: 雙口RAM的地址線

Data: 雙口RAM的數(shù)據(jù)線

串口發(fā)送器采用雙口RAM與視頻圖像處理部分對接,視頻圖像處理部分將并行數(shù)據(jù)發(fā)送到雙口RAM中,然后,在發(fā)送控制信號(視頻場同步信號)的控制下,由串口發(fā)送器將雙口RAM中的并行數(shù)據(jù)讀出來,并轉(zhuǎn)為串行數(shù)據(jù)發(fā)送出去。

為簡化串口發(fā)送器對雙口RAM的控制,采用了將雙口RAM和發(fā)送器做到一個模塊中的方式。因此,對發(fā)送器而言,雙口RAM就相當于一個內(nèi)部存儲器,可以直接對其進行讀寫操作,而不需要額外的存儲器控制端口和數(shù)據(jù)傳輸接口。

視頻圖像處理部分對雙口RAM的發(fā)送數(shù)據(jù)過程與對一般的存儲器操作過程類似,就是根據(jù)控制端口將數(shù)據(jù)寫到雙口RAM中。部分程序如下(程序中采用參數(shù)化設計,可以改變雙口RAM的大?。?/p>

parameter width=5,//發(fā)送器雙口RAM地址位數(shù)

number=30;//發(fā)送器雙口RAM存儲字節(jié)大小

input[width-1:0] Addr;//發(fā)送器雙口RAM數(shù)據(jù)的地址

reg[7:0] memory[number-1:0];//發(fā)送器雙口RAM

always @(posedge Wren)//對雙口RAM寫入并行數(shù)據(jù),wren為上升沿有效

begin

if(Cs==1′b0)

begin

memory[Addr]<=Data;

end

end

發(fā)送器從發(fā)送控制信號(場同步信號)Vs到來開始,隔16個clk_16x周期輸出1位數(shù)據(jù),順序為1位起始位,8位數(shù)據(jù)位和1位停止位,數(shù)據(jù)位為從低位到高位發(fā)送形式。發(fā)送器采用狀態(tài)機風格進行描述,共分為5個狀態(tài):空閑狀態(tài)S0、開始狀態(tài)S1、等待狀態(tài)S2、移位狀態(tài)S3、停止狀態(tài)S4。

在狀態(tài)機轉(zhuǎn)換過程中,需要一位寄存器變量來判斷要發(fā)送的數(shù)據(jù)是否已發(fā)送完, 以確保一個場同步信號只對雙口RAM中的number字節(jié)數(shù)據(jù)發(fā)送一遍。

系統(tǒng)一旦復位,發(fā)送器就進入S0狀態(tài),同時對一位寬寄存器型變量num置0。

空閑狀態(tài)S0:在此狀態(tài)完成初始化工作,即對所要用到的寄存器賦初值(包括雙口RAM的數(shù)據(jù)讀出地址addr_cnt清0),且將串行輸出Data_out置為高電平。當Vs有效(場同步期間)且num==0成立時,進入S1狀態(tài)。在Vs無效期間,將num置0,且繼續(xù)在S0狀態(tài)。

開始狀態(tài)S1:給出起始位低電平0,即將Data_out置0,同時將當前addr_cnt地址的數(shù)據(jù)從雙口RAM中讀出并存入發(fā)送移位寄存器shift_reg,系統(tǒng)進入S2狀態(tài)。

等待狀態(tài)S2:在此狀態(tài),每次等待16個clk_16x,即:保證每位的寬度位16個clk_16x時鐘周期,包括起始位等待在內(nèi),要等待9次,其中,數(shù)據(jù)位等待為8次。若等待次數(shù)在9次以內(nèi),則轉(zhuǎn)入S3狀態(tài),否則,轉(zhuǎn)入S4狀態(tài)。

移位狀態(tài)S3:將shift_reg[0]賦給Data_out,同時實現(xiàn)從高位到低位移位。進入S2狀態(tài)。

停止狀態(tài)S4:給出停止位高電平1,即將Data_out置為高電平,且計滿16個clk_16x。然后,判斷是否已將memory[number-1:0]中的number個字節(jié)的數(shù)據(jù)都輸出,若沒有,就轉(zhuǎn)入S1狀態(tài)繼續(xù)輸出,否則,就進入S0空閑狀態(tài),同時將num置1。

2.3 帶雙口RAM的接收器

帶雙口RAM的接收器模塊如圖4所示。

Data_in 串行輸入

Cs_rd 雙口RAM的片選信號

Rd 雙口RAM的讀使能信號

addr_rd 雙口RAM的地址線

Data_rd 雙口RAM的數(shù)據(jù)線

串口接收器采用雙口RAM與視頻圖像處理部分對接,接收器將接收到的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)并將其存儲到雙口RAM中。視頻圖像處理部分在進行數(shù)據(jù)處理時則可根據(jù)雙口RAM的控制端口將并行數(shù)據(jù)讀出并進行處理,其讀出數(shù)據(jù)過程與在發(fā)送器中寫數(shù)據(jù)過程類似。

在接收一個串行數(shù)據(jù)幀的起始位時,是由邏輯1轉(zhuǎn)為邏輯0來判斷的。為了避免毛刺(周期很短)的影響,能夠得到正確的起始位信號,必須要求接收到的起始位至少有1/4都是屬于邏輯0才可認定接收到的是起始位。因為波特率發(fā)生器產(chǎn)生的時鐘頻率為接收串行數(shù)據(jù)波特率的16倍,所以計數(shù)4次就可以去除毛刺的影響。

接收器采用狀態(tài)機風格進行描述,共分為5個狀態(tài):開始狀態(tài)S0、延遲狀態(tài)S1、等待狀態(tài)S2、移位狀態(tài)S3、停止狀態(tài)S4。

系統(tǒng)復位后,對所要用到的寄存器初始化,進入S0狀態(tài)。

開始狀態(tài)S0: 如果串口輸入Data_in為0且維持4個clk_16x,就判斷起始位信號(低電平)到來,進入S1狀態(tài)。

延遲狀態(tài)S1:計數(shù)4次clk_16x,再加上S0狀態(tài)已經(jīng)計數(shù)的4次,共8次。因為接收器采用的時鐘clk_16x為波特率的16倍,所以一個串行位有16個clk_16x 時鐘周期,則計數(shù)8次可以保證采樣點在起始位電平的中間。進入S2狀態(tài)。

等待狀態(tài)S2:計數(shù)16次clk_16x,即:采樣點在下一個串行位的中間。然后,判斷是否已經(jīng)移位了8次,若沒有,則轉(zhuǎn)入S3狀態(tài);否則,轉(zhuǎn)入S4狀態(tài)。

移位狀態(tài)S3:將串行輸入Data_in賦給內(nèi)部移位寄存器的最高位shift_reg1[7],同時實現(xiàn)shift_reg1從高位向低位移位一次。進入S2狀態(tài)。

停止狀態(tài)S4:將shift_reg存到雙口RAM中。判斷是否已將需要接收的數(shù)據(jù)個數(shù)接收完,若沒有,則在雙口RAM中的存儲地址自動累加,否則,雙口RAM中的存儲地址清0。進入S0狀態(tài)。

3 仿真驗證

在實驗中,選用了Altera公司的Cyclone系列EP1C12024017芯片,采用Verilog HDL語言進行描述,用QuartusII5.1進行綜合、仿真。仿真中,先進行各個模塊的仿真,然后采用自發(fā)自收方式仿真,即將發(fā)送器的發(fā)送輸出串口和接收器的接收輸入串口直接連接,比較接收到的數(shù)據(jù)是否和發(fā)送的一樣。仿真結(jié)果表明,串口的接收和發(fā)送工作完全正確。圖5、圖6給出了波特率發(fā)生器仿真波形和自發(fā)自收方式仿真波形。將程序下載到芯片中運行,通信數(shù)據(jù)完全正確,電路工作穩(wěn)定、可靠。

本設計采用雙口RAM實現(xiàn)串口與視頻圖像處理部分的異步通信。設計中大量采用參數(shù)化設計,雙口RAM的存儲空間大小、傳輸波特率和系統(tǒng)主頻均可根據(jù)實際使用要求靈活調(diào)整;通用性強,只需將發(fā)送器的場同步發(fā)送控制信號改為所要求的發(fā)送控制信號,就可實現(xiàn)FPGA與一般串口通信系統(tǒng)通信。

參考文獻

[1] 王誠,吳繼華.Altera FPGA/CPLD設計.北京:人民郵電出版社,2005.

[2] 張兆揚.工業(yè)電視.北京:科學出版社,1982.

[3] 蘇光大.微機圖像處理系統(tǒng).北京:清華大學出版社,2000.

[4] 賀前華.基于FPGA的視頻轉(zhuǎn)換系統(tǒng)的實現(xiàn).微電子學與計算機,2003,(5).

[5] Henry Chang,Larry Cooke.Surviving the SOC Revolution-AGuide to Platform-Based Design.Kluwer Academic Publishers,1999.

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉