新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的任意波形發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)

基于FPGA的任意波形發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)

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

3 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)
3.1 固件程序設(shè)計(jì)
CY7C68013內(nèi)嵌有8051微處理器,用于控制芯片的工作狀態(tài)設(shè)置,寫入微處理器的程序文件稱為固件程序(Firmware),為了便于維護(hù)和移植,一般采用單片機(jī)的C語言編寫。主要有以下幾種功能:a.初始化工作,包括設(shè)置一些特殊功能寄存器的初值以實(shí)現(xiàn)所需的設(shè)備屬性或者功能,例如開中斷、使能端點(diǎn)、配置端口等。b.輔助硬件完成設(shè)備的重新列舉過程,包括模擬設(shè)備的斷開與重新連接,對接收到的設(shè)置包進(jìn)行分析判斷,從而對主機(jī)的設(shè)備請求作出適當(dāng)?shù)捻憫?yīng),完成主機(jī)對設(shè)備的配置任務(wù)。c.對中斷的處理。d.?dāng)?shù)據(jù)的接收和發(fā)送。e.外圍電路的控制。固件程序的流程如圖4所示。


3.2 程序設(shè)計(jì)
在本系統(tǒng)中作為主控制器,提供USB控制、DA控制、SRAM控制、I2C控制及全局時(shí)鐘控制等功能模塊。這里重點(diǎn)介紹USB接口控制模塊。固化程序?qū)Y7C68013A設(shè)置為Slave FIFO工作模式,需要提供FIFO端口的讀寫操作控制時(shí)序。CY7C68013A為每個(gè)端口提供了”空”標(biāo)志、”滿”標(biāo)志和”可編程級”標(biāo)志。FPGA檢測這些信號,用于控制讀寫的過程,F(xiàn)PGA再完成這些端口FIFO的操作時(shí)序控制。USB控制器的狀態(tài)轉(zhuǎn)移如圖5所示,控制器工作在五個(gè)狀態(tài)中,上電復(fù)位后工作在IDLE狀態(tài),當(dāng)讀/寫事件發(fā)生時(shí)進(jìn)入狀態(tài)1;在狀態(tài)1中根據(jù)讀/寫事件使能FIFOADR[1:0]指向相應(yīng)FIFO并進(jìn)入狀態(tài)2;在狀態(tài)2,如果FIFO空/滿,在當(dāng)前狀態(tài)等待,否則進(jìn)入狀態(tài)3;在狀態(tài)3中,驅(qū)動數(shù)據(jù)總線,完成讀/寫操作,進(jìn)入狀態(tài)4;在狀態(tài)4中,如需傳輸更多數(shù)據(jù),進(jìn)入狀態(tài)2,否則進(jìn)入狀態(tài)IDLE。本系統(tǒng)采用Verilog HDL硬件描述語言實(shí)現(xiàn)了FIFO的讀寫時(shí)序,并在ALTERA公司提供的QuartusII8.0開發(fā)工具中綜合編譯并映射到FPGA中運(yùn)行。

4 結(jié)果及分析
在設(shè)計(jì)結(jié)果中,最后的波形圖是使用泰克公司的TDSl012型示波器得到的。經(jīng)過實(shí)際的測試,該信號發(fā)生器產(chǎn)生的波形精度高、失真小,完全滿足設(shè)計(jì)的要求。圖6是產(chǎn)生的正弦波、鋸齒波的波形結(jié)果。


上一頁 1 2 3 下一頁

關(guān)鍵詞: FPGA 任意波形發(fā)生器

評論


相關(guān)推薦

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

關(guān)閉