把相對成熟的技術應用到某些特定領域如通訊,視頻,信息處理等等開發出滿足行業需要并能被行業客戶接受的產品這方面主要是FPGA技術和專業技術的結合問題,另外還有就是與專業客戶的界面問題產品設計還包括專業工具類產品及民用產品。FPGA因為具備接口,控制,功能IP,內嵌CPU等特點有條件實現一個構造簡單,固化程度高,功能全面的系統產品設計將是FPGA技術應用最廣大的市場,具有極大的爆發性的需求空間產品設計對技術人員的要求比較高。為解決相關FPGA工程師及愛好者提供相關實際案例和電路參考,電子發燒友網隆重整合推出《FPGA設計實例全攻略》系列,后期會陸續推出相關章節,以饗讀者,敬請關注。
參閱相關系列文章
FPGA設計實例全攻略(一)
一、遠程在線更新FPGA程序的方法
1 概述
現場可編程門陣列(Field Programmable Gate Array,FPGA)器件具有高密度、低功耗、高速、高可靠性等優點,在航空航天、通信、工業控制等方面得到了大量應用。FPGA的處理器分為軟核和硬核,并且軟核處理器具有高度的靈活性和可配置性。
由于FPGA器件采用的是SRAM工藝,在斷電的情況下FPGA內的配置數據將丟失,所以需要非易失的存儲器來結合FPGA完成嵌入式系統的設計。EPCS(Erasable Programmable Configurable Serial)Flash屬于串行接口Flash,具有接口簡單、體積小、配置方便的特點,通常用來存儲FPGA的配置文件和NiosII的軟件可執行代碼。在經過合理的配置后,系統在上電后就可以從EPCSFlash中讀取這些文件來啟動整個系統。
為了能使系統得到更靈活的應用,充分發揮FPGA的靈活性、高效性,FPGA的軟硬件程序都需要方便的更新和升級功能;而當形成產品后,通過JTAG和NiosII IDE工具來聯合完成對EPCS Flash的更新燒寫很不方便。為此,本文結合Altera公司提供的工具,提出了一種遠程在線更新FPGA配置文件和NiosII程序文件的方法。
2 系統硬件結構
系統硬件結構如圖1所示。系統主要有上位機系統、FPGA系統、EPCS Flash三個主體部分。上位機系統提供人機交互的部分,FPGA系統包括NiosII處理器、EPCS控制器、網絡及串行接口和其他外部接口,EPCSFlash主要用于存儲FPGA的配置文件和Nios程序映像文件。上位機系統通過FPGA集成的網絡及串行接口來完成通信工作。
FPGA采用Altera公司的CycloneIII系統的EP3C40F48417N芯片。它具有低功耗、高集成度、易于使用的特性。EPCS Flash采用Altera公司的EPCS16SI16N芯片,它支持多種可配置的時鐘源,最高支持100 MHz的外部時鐘源,具有16 Mb的存儲空間,足夠滿足一般的FPGA配置文件和Nios程序文件的存儲需要。
3 更新程序處理流程
更新FPGA的配置文件和NiosII的應用程序的流程如圖2所示。
本方法把由NiosII IDE生成的FPGA配置文件和NiosII程序文件合并,并編程為一個可以直接執行的、包含FPGA配置文件和NiosII程序文件的二進制BIN文件。然后把該文件通過X-modem協議由上位機系統傳輸給NiosII的應用程序。NiosII的應用程序接收到完整的BIN文件后,把該BIN文件寫入到EPCS Flash中。最后,Nios II的應用程序停止看門狗,程序重新啟動,即完成了FPGA的遠程在線更新程序的過程。
4 合并程序文件
Nios II的啟動要經歷兩個過程:
①FPGA器件本身的配置過程。如果內部邏輯中使用了NiosII,則配置完成的FPGA中包含有NiosII軟核CPU。
②NiosII本身的應用過程。一旦FPGA配置成功后,NiosII就被邏輯中的復位電路復位,從reset地址開始執行代碼。
Nios II IDE將FPGA的配置文件(.sof文件)和應用程序(.elf文件)轉成flash格式文件,轉換后的flash格式文件是一種S-Record格式數據,包含如下區域:《type》《length》《address》《data》《checksum》。各字段的意思分別如下:《type》表示記錄的類型;《length》表示數據的長度;《address》表示數據寫入的起始地址,該字段的長度取決于《type》的取值;《data》表示存儲的數據;《checknum》表示校驗位。
配置文件和應用程序可能有多個段,每個段前面都插有一個“程序記錄”。一個“程序記錄”由2個32位的數據構成,一個是32位的整數,另一個是32位的地址,分別表示程序段本身的長度和程序段的運行時地址。其存儲布局如圖3所示。
為了在更新程序時把FPGA配置文件和Nios II應用程序一起更新,把FPGA配置文件和Nios II應用程序合并成一個文件,并且把合并后的Flash格式的文件轉換成不需要地址解碼就能直接執行的二進制BIN文件。具體處理流程如圖4所示。
在合并程序的過程中,去掉了flash文件中的長度、目的地址等用于解析程序的信息,并且把程序映像由字符格式轉換為二進制格式。合并后的BIN文件包含FPGA配置文件和Nios II應用程序,并且Nios II應用程序緊挨在FPGA配置文件的后面,其存儲布局如圖5所示。
5 Nios II更新程序模塊處理
Nios II程序中的更新程序模塊主要負責從上位機接收合并后的可執行BIN文件,并把該BIN文件寫入EPCSFlash,處理流程如圖6所示。
5.1 程序文件的傳輸
Nios II應用程序中的更新程序模塊和上位機系統采用X-modem協議傳輸程序文件,X-modem協議是一種網口和串口通信中廣泛用到的異步傳輸協議。
如果在程序傳輸過程中出現錯誤,更新程序模塊能夠通過設置超時來退出更新程序的狀態。
5.2 對EPCS Flash的讀寫
由于EPCS Flash的串行配置器件定義了特殊的讀寫協議,所以Nios II程序只能通過Altera提供的HAL API(Application Program Inter face,應用程序接口)來完成讀寫Flash。打開、關閉Flash設備的API為:alt flash open_dev()和alt_flash_close_dev()。操作Flash讀寫
的API為:alt_read_flash()和alt_write_flash_block()。清除Flash的API為alt_erase_falsh_block()。
結語
本文以提高FPGA遠程更新程序的方便性為目標,提出了一種基于EPCS Flash的遠程在線更新FPGA程序的方法,從而在應用中能夠使基于FPGA的產品更加方便地維護升級。
二、片上芯片SoC挑戰傳統測試方案
SoC廠商如何在提高復雜器件傳輸速度的同時降低測試成本?
隨著先進的集成電路(IC)設計方法和高密度生產技術的使用,半導體廠商能夠把不同的數字和模擬電路集成在極小芯片上,其尺寸之小、功能之全尚無先例,我們稱之為系統芯片。盡管具有先進的設計和制造能力,可是IC廠商在對這些多元器件進行快速而又低成本地批量生產時,面對 空前的挑戰。當把若干功能單元結合在一個單獨器件上時,今天的SoC器件為減少批量生產時間和測試成本,向傳統的測試方法發起挑戰。結果是,廠商們將更廣泛地研究新方法,這些新方法通過在設計和測試之間的有效平衡,提供了一個更有效地從事SoC設計、生產和測試的方案,并能夠同時做到減少其生產時間和測試費用。
特殊的挑戰
就SoC廠商來說,在一個競爭激烈的市場上,消費者對其在功能、性能和費用等方面的要求,又給他們平添了持續的壓力。SoC廠商將復雜的數字核與模擬功能集成在單芯片中,在功能和性能上能夠應對市場多種用途的需求。可是在制造過程中,SoC廠商發現設計和測試復雜性經常會導致故障。隨 工藝技術的研制費用接近100萬美元,每次故障都使得成本負擔雪上加霜,并且拖延交貨期,加劇經濟受損。工程師們發現在這樣的壓力下,無法充分發揮先進的工藝技術和制造水平的潛力。
對測試工程師來說,他們的測試面對 非常嚴峻的挑戰,一是受測器件龐大的數量,二是多種受測電路復雜的程度。然而,測試工程師必須保證以最優化的測試程序,采用最少最便宜的測試設備,在短時間內完成測試。測試工程師還需要功能更強的混合信號測試儀來處理高端界面。而傳統的連續開發方法中測試故障的費用上升首先導致器件開發延遲,SoC廠商也將為此增加測試時間和費用及生產成本。
SoC測試中當前的困境大多是由于采用早期幾代IC對測試要求不高而造成的。最新的設計雖提高了易測程度但仍缺乏應對當前流程中普遍問題的能力。在傳統的連續開發流程中(圖1a),設計工程師設計時所掌握的有關信息很少,可利用的測試設備也有限,因而可能在最終開始測試后很久才會發現所遇到的問題,造成額外費用并拖延時間。
SoC器件目前不斷增加的復雜程度,促使主要的廠商青睞采用更有效的SoC生產導向設計測試流程法(圖1b)。該方法使各個測試小組分工明確,測試研發工作平行展開。各測試小組集中攻關的結果是同步拿出最優化的設計方案和更有效的測試程序。工程師們在轉移到大批量生產之前,就已充分掌握了器件性能。制造商可以有效平衡高配置的SoC平臺的靈活性,使其滿足不同新產品類型組合的需要,在實現快速批量供應的同時,全面降低測試成本。
早期試驗進展
新測試流程建立在測試開發工具和設計工藝技術之上。多年來,工程師們倚賴專用的內部工具將仿真向量轉變成測試設備使用的模式。SoC顯著地增加了這一轉變過程的復雜性。今天,更加先進的測試工具能夠與主要的電子設計自動化(EDA)供應商所提供的流程一起運行。加上先進的循環運算法則,這些工具能夠把與各種復雜程度的電路相關聯的數據組合起來,并且制作一個單獨的測試模式和定時文檔。手頭掌握了這些統一的結果,測試工程師的工作會更有效。
圖1 生產測試和工程確認的常規流程(a)和平行流程(b)
新SoC生產導向設計測試流程法的一個最重要特點是它能夠在開發循環的早期校驗測試程序。過去,測試工程師需要獲得第一塊芯片和可以排除故障的測試設備后才可以開始測試工作,這將把產量拖沿數星期。而今,由于具有了當前先進的測試開發環境,測試工程師能夠利用數字式虛擬測試儀(DVT)的性能,提前進行調試試驗。虛擬測試法最適合數字電路。但EDA軟件現有的能力已有很大提高,EDA公司與測試公司已有很好的協作。因此,設計和測試工程技術能力擴展至模擬設計也就有了保障。
經過改進的測試開發能力對所有SoC廠商都至關重要,對于無生產線的IC設計公司尤為重要。由于相比較而言,IC設計公司對外界的依賴程度高,因為在設計和測試之間存在一個地理上的差距,存在 交流困難問題。經由外界的設計方案會加劇測試難題對生產延期和生產費用的影響。虛擬測試法讓IC設計公司在其現有的設計環境下進行調試試驗,以保證測試程序運轉正常并能更好地s了解潛在的測試設備問題。
交互式工程設計確證
對不知名的半導體公司和集成器件制造商(IDMs)來說,復雜的設計和先進的工藝技術的結合,要求提高與自動測試儀(ATE)上進行的生產測試截然不同的測試驗證能力。隨 工藝技術達到0.13μm或更細的線寬,先進的器件展示出不斷增加的效能,事實上也限制了多數生產用自動測試儀(ATE)在檢測更細微故障時的有效性。對許多廠商而言,復雜的SoC已致使傳統的測試方法愈加無效,并給生產和成本問題造成嚴重的瓶頸影響。
優化的工程設計驗證測試系統的出現,提供了與生產測試儀明顯有別的能力,達到了大幅度提高生產量的要求。工程技術系統為生產測試儀是非結果的判斷提供了詳細的原因分析。事實上,今天領先的工程設計驗證系統具有的記憶特性,能夠保留所有器件管腳上的完整數據,以便工程師更容易地對器件功能做解剖研究--這是傳統的生產用自動測試儀(ATE)所無法達到的。
生產用自動測試儀(ATE)適合批量生產的需要,有賴于高度優化的測試程序來確保采用最少的測試設備和花費最短的時間。相比較,工程技術驗證系統則適合交互式分析,為測試裝置和測量提供圖形用戶界面(GUI)。工程師們在此環境下可以更有效地進行為最優化設計和調試所采用的交互式的假設分析。用在生產過程中,則有助于加速故障分析。當今復雜的SoC需要更加精密復雜的診斷設備,如皮秒圖象電路分析(picosecond imaging circuit anal-ysis),激光電壓探針(laser voltage probe)和電子束系統(e-beam systems)。領先的工程設計系統直接向這類設備提供界面;工程師們借此利用外部的探頭裝置就能夠測試器件。
圖2 測試程序的核查準備
低成本生產測試
SoC生產技術的成功,依靠的是廠商以最低的生產成本實現大量的生產能力。隨 制造商創造了結合先進數字電路和模擬功能的SoC,就需要不斷提高自動測試儀(ATE)的強大功能。芯片內功能提高了數字數據傳輸速率。而今,防火墻、千兆赫茲以太網和圖形加速接口等功能都集于芯片上,因此需要測試儀的數據速率要達到800Mbps或更高。制造商們正在尋找適應性強和容易升級的操作平臺以滿足新要求,而非過去那樣追加投資,開發新一代產品。
對于混合信號的SoC,可配置的ATE系統在經濟上可以承受大批量生產對測試功能和靈活性的要求。模塊式結構是這些系統的核心,為制造商提供了一個適應性強的高性能共享測試平臺。就IC電路的總體而言,大功率多性能ATE能夠滿足SoC日益增加的功能條件,如管腳的增加、速度的提高、對液體冷卻的需求等。好在先進的冷卻設計可以選用空氣冷卻高速高功耗的CMOS電路,而降低了ATE的復雜性。
系統設計和檢測儀表性能的改善顯著地減少了ATE的費用,加上應用了各種程序開發工具語言,增加了測試開發環境的功效。工程師們利用共享圖形用戶界面(GUI)和現有測試程序模板,使現有的測試程序符合特定的測試用途,從而提高了生產效率。這種以模板為基礎的方法把測試開發時間削減了數周,這對于把握SoC市場稍縱即逝的機會格外重要。
在產業開始復蘇的今天,對市場機會的快速應變能力是SoC制造業重于一切的要務。在現有條件下取得最大效益的能力,對于制造商仍然非常關鍵。系統兼容性在高效的開發環境及生產測試設備中是一個日益重要的特性,將有助于使生產能力達到最高水平。廠商通過有效配置所有測試設備,把測試轉移到最有效的平臺上進行,不斷滿足生產條件的變化要求。
三、基于FPGA與外部SRAM的大容量數據存儲
1 引言
我們將針對FPGA中內部BlockRAM有限的缺點,提出了將FPGA與外部SRAM相結合來改進設計的方法,并給出了部分VHDL程序。
2 硬件設計
這里將主要討論以Xilinx公司的FPGA(XC2S600E-6fg456)和ISSI公司的SRAM(IS61LV25616AL)為主要器件來完成大容量數據存儲的設計思路。
FPGA即現場可編程門陣列,其結構與傳統的門陣列相似,大量的可編程邏輯塊( CLB , Configurable Logic Block ) 在芯片中央按矩陣排列,芯片四周為可編程輸入/輸出塊( IOB , Input / Output Block),CLB行列之間及CLB和IOB之間具有可編程的互連資源(ICR,InterConnectResource)。CLB、IOB和ICR都由分布在芯片中的SRAM靜態存儲單元控制,SRAM中的數據決定FPGA的功能,這些數據可以在系統加電時自動或由命令控制從外部存儲器裝入。
在進行數據存儲時,可直接將數據寫入FPGA內部的BlockRAM中,在一定程度上減少了FPGA的資源分配。但FPGA內部自帶的RAM塊畢竟是有限的,當需進行大容量數據存儲時這有限的RAM塊是遠遠不能滿足系統設計要求的。此時,就需要將FPGA與外部RAM相結合完成大容量數據存儲。具體硬件電路如圖一所示:
3 IS61LV25616AL功能簡介
IS61LV25616AL是Integrated Silicon Solution公司(ISSI)的一款容量為256K×16的且引腳功能完全兼容的4Mb的異步SRAM,可為Xilinx公司的Spartan-2E系列FPGA提供高性能、高消費比的外圍存儲。除了256K×16異步SRAM外,ISSI還提供128K×16、512K×16、256K×8、512K×8和1M×8的異步SRAM。 IS61LV25616AL引腳結構框圖如圖二所示:
3.1 主要特征
(1)工作電壓:3.3伏;
(2)訪問時間:10ns、12ns;
(3)芯片容量:256K×16;
(4)封裝形式:44引腳TSOPII封裝,也有48引腳mBGA和44引腳SOJ封裝;
(5)采用0.18μm技術制造。
3.2 引腳功能
(1)A0~A17:18位的地址輸入線;
(2)IO0~IO15:16位的三態數據輸入輸出線;
(3)寫控制線;
(4)片選信號;
(5)輸出使能信號;
(6)低字節、高字節使能信號;
(3)~(6)的控制線均為低電平有效。
3.3 控制邏輯電路設計
如圖三所示,控制邏輯由FPGA來實現。主要包括讀地址產生器、寫地址產生器、讀寫時鐘信號產生器及讀寫控制等幾部分。下面分別加以講述。
(1)寫地址產生器:由于設計時采用256K×16的SRAM,故有18位地址,寫地址產生器用18位計數器實現。靠外部時鐘驅動,每進行一次寫操作后,讀寫控制單元產生計數脈沖,使其增1,直到18位計數器計滿再循環寫入地址為0的空間。
(2)讀地址產生器同上,也采用18位計數器實現,根據系統要求,每隔一定的采樣周期將讀地址指針偏移一定偏移量,并從該位置讀取數據。
(3)讀寫地址選擇器由于讀寫地址復用管腳,因此在讀寫操作時,必須選通相應的地址。這就需要由FPGA控制芯片上的等控制信號來對SRAM進行讀寫的操作。
(4)此外,由于讀寫之間的切換,數據線上的數據在切換瞬間如不加處理會出現混亂現象。因此,為避免讀、寫操作發生沖突,數據線呈三種狀態,讀數據、寫數據及高阻態。在從寫到讀的過程中需給數據線上送高阻態。
(5)當需要對SRAM進行寫操作時,由FPGA控制產生寫地址選通信號,該選通信號為一單脈沖形式,如圖四中該脈沖下降沿觸發SRAM,告知開始對RAM進行寫操作,使FPGA輸出寫地址,同時給數據線上送數據。在寫操作期間,片選信號始終保持低電平,而寫地址選通信號上升沿到來時使寫地址計數器增1。以此類推,通過寫地址選通信號高低電平變化完成對數據依次寫入。需要注意的是,地址線和數據線在為高時可同時賦新值,但只有在變低后賦予數據線上的新值才有效。
對SRAM進行讀操作相對較簡單,在進行讀操作期間,始終為低電平,始終為高電平。每進行一次讀操作,地址按系統要求變化一次。同時注意,地址的變化時刻總要先于數據的變化時刻。圖五為RAM讀操作時序。
以下是一段用VHDL語言描述的控制RAM的讀寫操作時序的程序代碼:
程序中,在進行讀寫操作時,片選使能信號CE_SRAM及輸出使能信號OE_SRAM始終為低電平。
第0時刻到第2時刻在進行寫操作:第0時刻地址線addr_SRAM和數據線data_SRAM同時賦新值,控制線WE_SRAM、LB_SRAM、UB_SRAM要經歷一個窄脈沖的變化過程,RAM在獲取到此控制線下降沿信息后,便知開始進行寫操作。需要注意的是,雖然數據在第0時刻已賦到數據線上,但因為寫操作是控制線低電平有效,所以數據線上真正發生數據更新是在控制線變為低電平之后,因此,數據線上的實際更新時刻是在第2個時刻。
第3、4狀態是進行讀操作:在讀寫轉換時刻,也就是在第3時刻如前所述需給數據線上送高阻態。這樣,讀取數據的時序關系由系統時鐘進行控制,在第3時刻給地址線上送要讀取的地址,第4時刻將數據端口上的數據送出。這里需注意的是,讀取數據要比讀取地址晚一個時刻。從而,完成了對外部RAM的讀寫操作控制。
4結論
該系統已應用在羅蘭—c導航接收機的信號處理中。實驗證明,此設計可靠穩定地完成了大容量高速異步數據存儲,進一步提高了系統的性能。
四、視頻信號發生器設計方案
引言
在光電測量系統中,需要圖像處理器進行圖像采集、處理。目前檢測圖像處理器的信號發生器多是標準的模擬視頻輸出,如文獻提出的模擬視頻發生器,有的雖然能產生數字視頻但內容是固定的,如果對內容進行更改則需要對數字視頻信號發生器重新編程以達到要求,比較麻煩,不能滿足日益復雜的要求。因此靈活改變視頻內容的數字視頻信號發生器的研制變得十分迫切。本文提出一種數字視頻信號發生器的設計方法,此方法可以同時得到LVDS和CamerLink制式的視頻,供數字化圖像處理器檢測使用。本文提出的設計方法除可以脫離計算機獨立使用外,如果想實時更改信號發生器輸出視頻的各項參數,無需重新改寫程序,只需把該信號發生器通過串口連接到計算機上,即可通過人機交互的方式對視頻中的目標灰度、背景灰度,目標大小、目標運動速度進行更改。此外目標的背景還可以從板卡上的SDRAM中選取。與以往的視頻信號發生器相比,本文提出的信號發生器除能產生多種數字化視頻外,還能靈活更改所產生的視頻各項參數,因此具有一定應用價值。
1 硬件組成
數字視頻發生器主要卣FPGA模塊、單片機模塊、串行通信模塊、TTL轉L,VDS模塊、FTL轉CamerL,ink模塊、SDRAM模塊組成,整個系統框圖如圖1所示。
1.1 工作原理
數字式視頻信號主要由行同步、幀同步、像素時鐘、圖像數據組成。其中行同步決定一行的起始位置,幀同步決定一幀圖像的起始位置,像素時鐘決定一行有多少列圖像數據。根據數字圖像的組成,可以看出如果想要生成一幅數字圖像,必須包含上述要素。其行幀信號同圖像的關系如圖2所示,其中VSYN表示幀同步信號,HSYN表示行同步信號。
其中圖像的采集是從行同步上升沿開始后,按像素時鐘采集的。
本文根據數字視頻產生所需的各要素進行信號發生器的設計。主要通過FPGA產生行同步信號、幀同步信號、像素時鐘;通過單片機+串口通信模塊實現目標參數的更改,并把更改后的參數傳遞給FPGA,供FPGA產生相應運動的視頻信號;通過視頻制式轉換模塊把FPGA生成的視頻數據及視頻控制信號轉換成LVDS和CamerLink制式的數字視頻信號。
2 FPGA控制模塊
FPGA具有高集成度、高可靠性以及開發工具智能化等特點,目前逐步成為復雜數字電路設計的理想首選。此外FPGA可以通過編程實現硬件的邏輯功能,大大減少了硬件設計的復雜程度。因此本文以FPGA為核心器件產生視頻信號,這里選用ALTERA公司的SycloncII系列的EP2C8 F25618N,采用VHDL語言編程生成與數字視頻有關的各個信號,與單片機通信接收視頻修改參數的模塊及得到SDRAM內部圖像的模塊。其結構框圖如圖3所示。
信號發生器上電后,FPGA通過與單片機通信的模塊得到初始視頻各項參數,根據參數進行目標大小、目標灰度、目標運動速度、背景灰度的設置,然后根據各項設置產生視頻數據,FPGA幀同步模塊、行同步模塊、像素時鐘模塊分別產生幀同步、行同步、像素時鐘,圖像數據按以上控制信號從FPGA中發送出去。
在本文中FPGA各功能模塊根據基準時鐘生成幀同步、行同步、像素時鐘。這里以50M時鐘為基準時鐘信號,根據圖像處理平臺對輸入信號的要求,設計的幀同步高電平占33ms,低電平占1.2ms,行同步高電平占35 μm,低電平占8.4μm。這里把50M基準時鐘輸入像素時鐘模塊經過鎖相后依然以50M的時鐘頻率輸出,作為像素時鐘。由于一行較多,可在程序中進行限位,控制每行像素數。像素的產生主要有兩種方式,一種是通過與單片機通信得到目標像素灰度及背景像素灰度,根據這兩種灰度產生像素數據。另一種方式是通過從連接在FPGA上的SDRAM內讀出圖像作為背景,從與單片機通信得到目標灰度,共同形成像素數據。
2.1 單片機控制模塊及通信模塊
在本設計中單片機作為通信管理芯片。它主要實現與計算機的通信,更改信號發生器所產生信號的各個參數,把各個參數經過整合送給FPGA,以便FPGA根據參數控制目標的運動速度、目標大小、目標灰度及背景灰度。為了保證信號發生器能夠方便地和計算連接,實現人機交互,實時更改產生的視頻信號,并且從通信穩定可靠出發,這里采用RS232通信接口。但是因為計算機每次發的數據較多,這里沒有直接應用電平轉換芯片把計算機和單片機的串口連在一起,而是通過一片16C650把電平轉換芯片和單片機連在一起,這樣的好處在于16C650內部具有32字節的FIFO,可起到數據緩存的作用,使單片機能夠穩定可靠地接收數據。
2.2 視頻制式轉換模塊
因為FPGA產生的視頻信號為TTL電平,而目前數字視頻信號以LVDS制式和CamerLink制式為主,因此需要進行電平轉換。這里主要采用把FPGA產生的TTL電平的數字視頻信號接入SN75LVDS387得到LVDS制式的視頻信號,同時可把該TTL數字信號接入DS90CR285得到CamerLink制式信號。
3 軟件設計
本文軟件設計主要對單片機和FPGA進行編程。其中對單片機編程主要應用C語言進行編程,對FPGA主要應用VHDL語言編寫。其中單片機程序框圖如圖4所示。FPGA程序流程框圖如圖5所示。
4 結論
本文介紹了一種基于FPGA的數字視頻信號發生器,具有一定應用價值。
評論