




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
XXX(設計)I1緒論信號發(fā)生器是一種悠久的測量工具。直接數字頻率合成技術即DDS技術是一種新型的信號產生方法,是現代信號源的發(fā)展方向?;贜iosII控制的DDS數字信號發(fā)生器系統,以理學院EL-EDA-VI實驗箱為例,以Altera公司的CycloneⅡ的核心器件EP2C35F484C8為例,運用SOPC技術,NiosⅡCPU通過讀取按鍵的值,來實現不同頻率、不同波形的輸出顯示功能。本章介紹了信號發(fā)生器的和DDS的一些背景知識,和一些研究內容的概述。1.1DDS信號發(fā)生器背景概述在通訊領域和電子行業(yè)領域,函數發(fā)生器都是普遍的儀器。它可以生成不同頻率和波形的信號,來對產品進行測試及其它用途。上個世紀,第一臺正弦波發(fā)生器出現之后,信號發(fā)生器不斷在創(chuàng)新設計,在當代通訊與電子領域中,直接數字合成(DDS)技術漸漸主流化。DDS在大部分操作中使用數字電路,提供了數字操作擁有的許多優(yōu)勢。信號在最后一步轉換成模擬的之前,一直保持數字化,大大提高了函數發(fā)生器的穩(wěn)定性,相對模擬電路也簡化了很多。DDS的主要優(yōu)點之一是輸出信號的頻率精度可以達到作為發(fā)生器參考信號使用的晶體控制振蕩器的水平。如果想實現更高的精度,也可以采用函數發(fā)生器本身的溫度補償晶體振蕩器產生。這些信號可以提供高于0.1PPM的頻率精度。在許多情況下,函數發(fā)生器還可以把頻率鎖定到外部實驗室頻率參考源上,從而生成超高精度的信號。DDS發(fā)生器可以生成非常高的頻率精度。DDS信號發(fā)生器的數字電路可以實現與數字電路相同的頻率精度,控制數據位數越高分辨率越高,頻率自然精度也會上去。如果DDS電路有一個64位計數器,便可以提供高達64位的頻率分辨率。由于所有的波形都是以數字方式生成的,因此函數發(fā)生器中的調制功能、掃描功能和突發(fā)生成功能都受到數字控制,并可以以非常高的精度進行設置。不僅可以精確地設置/改變頻率和定時,還可以精確地設置/改變相位和幅度。[2]DDS的第三個優(yōu)點是如果擁有RAM波形存儲器,它幾乎可以發(fā)出任何波形。DDS發(fā)生器通過采集存儲器中存儲的波形來產生波?,F有的產品來說,每個函數發(fā)生器中都會內置正弦波、方波、三角波和類似的波形。但是對于占空比為10%的方波,僅帶有只讀存儲器的DDS發(fā)生器則無法實現。不過如果DDS電路有存儲波形的RAM,那么控制器電路可以把任何波形寫入RAM,并通過合成器重放波形。綜上所述三個優(yōu)點,函數發(fā)生器遠遠優(yōu)于傳統函數發(fā)生器。對稱性可變的波形現在已是標配功能,另外還可以內置各種不常見的波形,如指數上升和下降型波形或正弦脈沖型波形等。最新的函數發(fā)生器利用了DDS的優(yōu)勢,能夠把多臺不同儀器中的功能融合到一部儀器中,像軟件的IDE編譯環(huán)境一樣,以后的基于DDS的函數發(fā)生器能給人一條龍的服務。這些功能將會給傳統測試方案帶來一次革命。1.2DDS信號發(fā)生器的當下現狀DDS信號發(fā)生器采用直接數字頻率合成(DirectDigitalSynthesis,簡稱DDS)技術,具有能把頻率穩(wěn)定度、分辨率提高到與基準頻率相同的水平的能力,而且可以在一定的頻率范圍內進行精細的頻率調節(jié)。采用這種方法設計的信號源可工作于調制狀態(tài),可對輸出電平進行調節(jié),也可輸出各種波形。在現代電子及通信領域中,DDS的應用極其廣泛。它具有頻率切換速度快、很容易提高頻率分辨率、對硬件要求低且可編程全數字化方法便于單片集成、降低成本、提高可靠性、容易生產等優(yōu)點。目前,實現DDS的方法主要有兩種:第一種方式是采用專用DDS芯片,目前,市場上性能優(yōu)良的DDS芯片很多,主要有Qualcomm和AD等公司的產品。Qualcomm公司推出了DDS系列Q2220、Q2334、Q2368;美國AD公司也推出了他們的DDS系列:AD9850、AD9851、AD9852、兩路正交輸出的AD9854以及以DDS為核心的QPSK調制器AD9853,AD9856和AD9857。AD公司的DDS產品性價比較高,應用較為廣泛。2009年8月,中科院微電子所微波器件與集成電路研究室HBT超高速電路小組在劉新宇研究院和金智研究院的帶領下研制成功兩款基于lumGaAsHTB工藝的10GHz、8-bit超高速DDS芯片,這兩款超高速DDS芯片的研制成功,大大提升了國內DDS電路的最高頻率,顯示了其當前國際上GaAsHTB基DDS芯片時鐘頻率的最高水平,同時也證明了中國科研人員走在世界前列。第二種方式是我們將采取的自行設計基于可編程邏輯器件的解決方案。DDS技術的實現依賴于數字器件。本論文便討論了以理學院實驗箱Altera公司的CycloneⅡ的核心器件(EP2C35F484C8)為核心,采用SOPC和DDS技術,實現不同頻率、不同波形的輸出功能的DDS信號發(fā)生器設計。1.3SOPC解決方案及本設計方案的選擇電子系統的設計在近幾年發(fā)生了革命性的變化,高性能產品的要求和微電子技術的發(fā)展使SOC(SystemonChip)技術成為主流設計技術。Altera提出了一種靈活高效的SOC解決方案—SOPC(SystemonaProgrammableChip)。它將處理器及各種外設存儲器(ROM、RAM等)、總線和總線控制器、I/O口、DSP鎖相環(huán)等集成到一片FPGA中,可裁剪、可擴充,具有靈活的設計方式并具備軟硬件在系統可編程功能。在現代通信領域中,DDS的應用極其廣泛,目前各大制造廠商都推出了采用COMS生產的高性能和多功能DDS芯片,專用DDS芯片采用特殊工藝,內部數字信號抖動很小,輸出的質量高;但是在某些場合,專用的DDS芯片的控制方式是不能改變的,所以可能在工作方式及頻率控制與系統的要求存在差距,這時如果用FPGA器件設計一個符合需求的DDS電路,就是一個很好的解決方案,可重配置性結構能方便地實現復雜的調制功能,具有很好的實用性和靈活性。[1]我們將采取第二種方式自行設計基于可編程邏輯器件的解決方案。本論文研究內容如下:DDS信號發(fā)生器頻率可設置;DDS信號發(fā)生器波形可選擇;輸出頻率范圍為20KHz—5MHz(和分頻部分、頻率控制字長度以及外部DAC性能有關);能夠輸出正弦波,鋸齒波以及三角波;
2SOPC系統開發(fā)概述百萬門級的FPGA芯片,復雜的IP核和可重構嵌入式軟核處理器的出現,使得SOPC設計成為一種非常重要的設計辦法。本章首先介紹了可編程邏輯器件FPGA、CLPD,然后介紹系統的SOPC設計流程。2.1可編程邏輯器件概述及開發(fā)環(huán)境概述2.1.1可編程邏輯器件概述隨著時代的發(fā)展,數字集成電路不斷的進行更新換代,設計與制造集成電路的任務已經不完全由廠商來承擔。一些人更愿意自己設計專用集成電路(ASIC)芯片,而且希望設計周期盡可能短,在實驗室里就設計出合適ASIC芯片,并立即投入應用之中,因而出現了可編程邏輯器件(PLD)??删幊踢壿嬈骷膬煞N,現場可編程門陣列FPGA和復雜可編程邏輯器件CPLD。FPGA提供了最高的邏輯密度、最豐富特性和最高性能?,F在最新FPGA器件,如XilinxVirtex?系列中的部分器件,可提供八百萬"系統門"(相對邏輯密度)。這些器件還提供諸如內建的硬連線處理器(如IBMPowerPC)、大容量存儲器、時鐘管理系統等,并支持多種最新的超快速器件至器件(device-to-device)信號技術。FPGA應用廣泛,數據處理和存儲,以及到儀器儀表、信號處理等。與此相比,CPLD提供的邏輯資源少得多-最高1萬門。但是,CPLD提供了好的可預測性,所以對于關鍵的控制應用非常理想。而且有的CLPD如XilinxCoolRunner?系列CPLD器件需要的功耗極低。FPGA/CPLD都是特殊的ASIC芯片,除了具有ASIC的特點之外,還有如下優(yōu)點:可編程邏輯器件在設計過程中為客戶提供了更大的靈活性,因為對于可編程邏輯器件來說,設計反復只需要簡單地改變編程文件就可以了,而且設計改變的結果可立即查看??删幊踢壿嬈骷恍枰L前置時間來制造原型或正式產品。可編程邏輯器件不需要客戶支付高昂的NRE成本和購買昂貴的掩模組,可編程邏輯器件供應商在設計其可編程器件時已經支付了這些成本,并且可通過PLD產品線多年的生命期來支付這些成本??删幊踢壿嬈骷试S客戶在需要時訂購需要的數量,使客戶可控制庫存。采用固定邏輯器件的客戶常會面臨需要廢棄過量庫存,當對其產品的需求高漲時,他們又為器件供貨不足所苦,不得不面對生產延遲的現實??删幊踢壿嬈骷踔猎谠O備付運到客戶那兒以后還可以重新編程。2.1.2SOPC介紹System-on-a-Programmable-Chip,即可編程片上系統。用可編程邏輯技術把整個系統放到一塊硅片上,稱作SOPC??删幊唐舷到y(SOPC)是一種特殊的嵌入式系統:首先它是片上系統(SOC),即由單個芯片完成整個系統的主要邏輯功能;其次,它是可編程系統,具有靈活的設計方式,可裁減、可擴充、可升級,并具備軟硬件在系統可編程的功能。[3]SOPC結合了SOC和PLD、FPGA各自的優(yōu)點,一般具備以下基本特征:(1)至少包含一個嵌入式處理器內核;(2)具有小容量片內高速RAM資源;(3)豐富的IPCore資源可供選擇;(4)足夠的片上可編程邏輯資源;(5)處理器調試接口和FPGA編程接口;(6)可能包含部分可編程模擬電路;(7)單芯片、低功耗、微封裝。SOPC是PLD和ASIC技術融合的結果,目前0.13微米的ASIC產品制造價格仍然相當昂貴,相反,集成了硬核或軟核CPU、DSP、存儲器、外圍I/O及可編程邏輯的SOPC芯片在應用的靈活性和價格上有極大的優(yōu)勢。SOPC被稱為“半導體產業(yè)的未來”。2.1.3Cyclone器件與NiosII介紹Altera公司作為全球最大的可編程邏輯器件供應商之一,提供了多種型號的FPGA,可滿足不同用戶的需求。目前的主流產品包括MAXII系列PLD產品以及Cyclone,CycloneII,Stratix和StratixII系列FPGA。Cyclone系列FPGA是基于1.5V,0.13μm,SRAM工藝的中等規(guī)模FPGA,它具有以下特點:支持低成本串行配置器件,如EPCS1。支持LVTTLLVCMOS,SSTL-2和SSTL-3的I/O標準。支持33MHz到66Hz,32位到64位的PCI標準。支持高速(640Mbps)和低速(311Mbps)LVDSI/O接口,311-Mbps,RSDSI/O接口。支持DDRSDRAM(133MHz),FCRAM和SDRSDRAM的擴展內存。支持AlteraMegaCore和AlteraMegafuctionsPartnersProgram在內的多種IP核。每片FPGA中有最多2個鎖相環(huán),提供時鐘相乘和時鐘移相。多達8個全局時鐘,且每個LAB可以使用6個時鐘信號??紤]到設計需求及價格,在本邏輯分析儀中選用了Altera公司的CycloneⅡ系列中的EP2C35F484C8作為系統的FPGA芯片,同時選用了EPCS16配置芯片。NiosII是Altera公司推出的系列32位RSIC嵌入式處理器。他以軟核的方式提供給用戶,并專為在Altera的FPGA上事先做了優(yōu)化,用于SOPC(片上可編程系統)集成,最后在FPGA上實現。NiosII系列軟核處理器是Altera的第二代FPGA嵌入式處理器,其性能超過200DMIPS,在AlteraFPGA中實現僅需35美分。Altera的Stratix、StratixGX、StratixII和Cyclone系列FPGA全面支持NiosII處理器,以后推出的FPGA器件也將支持NiosII。NiosII是一種靈活的體系結構,它提供以下特性:(1)32位的指令集、數據總線以及地址空間。(2)32個通用寄存器和32個外部中斷源。(3)32位乘除法的單周期指令(在運算結果也是32位的情況下)。擁有專門的指令計算64位以及128位結果的乘法??稍L問多種片上組件,并擁有與片外設備的接口。擁有一個完整的開發(fā)環(huán)境NiosIIIDE,支撐程序的開始、停步、單步以及跟蹤等多種調試手段。不同的NiosII處理器實現均完整的支持統一指令集。支持用戶自定義指令,用戶可以將一些復雜的重復度高的關鍵運算用硬件邏輯實現,并賦予一條指令使得NiosII可以通過該指令實現這個運算。性能在150Mbps以上。2.1.4SOPC開發(fā)硬件平臺適配器布局及硬件資源:E_Play-SOPCEP2C35適配器(以下簡稱:適配器)布局如下圖:圖2.1整體效果圖Fig.2.1Integratedeffectmap圖2.2主板效果圖Fig.2.2 Viewofmotherboard主板資源:1)主控制器FPGA芯片:EP2C35F484C8N2)配置芯片:EPCS16N3)兩片SDRAM:HY57V561620CT-6,每片為4Bank×4M×16Bit(即32MB),總共64MB。4)FLASH:S29GL256N,32MB5)兩片SRAM:IS61LV25616AL-10T,每片256K×16(即512KB),總共1MB。6)USB2.0控制器:CY7C68013A-56,24C32E2PROM7)100M網絡控制器:LAN91C111-NE8)24位真彩VGA:ADV7125KSTZ1409)電源模塊:AS28303.30413(3.3V),LM2678S-ADJ(1.2V)10)其它接口及資源:5V電源接口、USB接口、PS2接口、232串口、VGA接口、AS下載口、JTAG下載口、4位按鍵、4位LED燈、復位鍵、E-PLAY插槽PORTA、PORTB,64針擴展插槽。圖2.3擴展板效果圖Fig.2.3 Viewofexpansionboard擴展板資源:1)視頻解碼芯片:ADV7181B2)音頻芯片:TLV320AIC233)實時時鐘:PCF8563T4)E2PROM:24LC025)紅外收發(fā)對管:HSDL-32016)其它接口及資源:SD卡接口、RCA視頻接口,SV接口,音頻接口LIN、LOUT、POUT。2.1.4QuartusII9.0開發(fā)環(huán)境介紹Altera公司的QuartusII軟件提供了一個完整的多平臺開發(fā)環(huán)境,它包含整個FPGA/CPLD設計階段的解決方案,該軟件提供了提完整的圖形用戶界面,可完成可編程片系統的整個開發(fā)流程各個階段,包括輸入、綜合、仿真等,使設計的數字系統最后能夠在硬件上實現?;赒uartusII9.0軟件工具,設計者可以方便地完成數字系統設計的全過程。QuartusII9.0的軟件界面如圖2.4所示。[4]QuartusII軟件的工程文件包含所有的設計文件、源文件以及完成其他操作相關文件。QuartusII9.0支持多種設計方式,設計文件的輸入方法有原理圖式的圖形輸入、硬件語言文本輸入、內存編輯。其中文本輸入支持AHDL、VHDL、VerilogHDL等。完成設計文件之后,需要定義輸入輸出引腳,之后才可以編譯。圖2.4QuartusII軟件界面Fig.2.4QuartusIIsoftwareinterfaceQuartusII編譯器主要任務是設計邏輯綜合、在器件中布局、布線、計算設計與器件上產生的延時,最后生成器件的下載文件,為模擬和編程產生輸出文件。在把設計項目配置到器件之前,可以用仿真對設計進行測試。在把設計項目的仿真和驗證在QuartusII9.0仿真器中進行,可以實現功能仿真與時序仿真,同時支持多種輸入信號格式:矢量表輸出文件(.tbl)、矢量波形文件(.vwf)、MAX+PLUSII產生的向量文件(.vec)或仿真器通道文件(.scf)。也可直接在TCL控制臺窗口輸入激勵信號。QuartusII的主要設計特性如下:基于模塊的設計方法可提高工作效率。更快的集成IP,縮短設計時間。在設計周期的早期對I/O引腳進行分配和確認。存儲器編譯器可對AlteraFPGA中的嵌入式存儲器進行輕松管理。支持CPLD、FPGA和基于HardCopy的ASIC。使用全新的命令行和腳本功能全自動化設計流程。高級教程幫助深入了解QuartusII的功能特性。另外,在使用QuartusII進行FPGA設計時,可以使用AlteraSignalTapII嵌入式邏輯分析儀對Altera部分系列的FPGA內部信號狀態(tài)進行評估。因為SignaltapII是捕獲實際的管腳邏輯值,儲存在片內存儲器中,并且通過下載線傳給PC,所以是真實的輸出。我們可以設置SingalTapII嵌入式邏輯分析儀的采樣時鐘,分配數據信號、選擇觸發(fā)類型和觸發(fā)級數、觸發(fā)位置。SignalTapII嵌入式邏輯分析儀的使用幫助設計者發(fā)現設計中存在問題的原因。QuartusII9.0里面的SOPCBuilder是一個自動化的系統開發(fā)工具,它能夠極大地簡化高性能SOPC的設計。該工具提供出一個直觀的圖形界面,用戶通過圖形界面簡化系統的定義工作。SOPCBuilder不需要直接編寫HDL代碼來定義系統,極大地節(jié)約了開發(fā)時間。SOPCBuilder為每個元件提供向導,利用該想到能很容易定義元件功能。例如通過向導能夠容易地在一個設計中加入Nios處理器、外設接口等。為了將微處理器核、外圍設備、存儲器和其他IP核相互連接起來,SOPCBuilder能夠自生成片上總線和總線仲裁器等邏輯。SOPCBuilder在一個工具中實現了嵌入式系統方方面的開發(fā),為利用SOPC技術提高電子系統性能、降低成本提供了有力的支持。2.2SOPC系統的設計流程2.2.1基于NiosII的SOPC系統開發(fā)流程基于NiosII的SOPC系統開發(fā)主要分為兩部分:SOPC系統的定制、基于定制系統的軟件開發(fā),具體流程圖如圖2.5:[5]在采用NiosII處理器設計嵌入式系統時一般執(zhí)行如下流程:分析系統需求說明,包括功能需求和性能要求等;建立QuartusII9.0工程,建立頂層實體;調用SOPCBuilder生成一個用戶定制的系統模塊(包括NiosII及標準外設模塊);將SOPC系統模塊集成到硬件工程中,并添加一些模塊,可以使Altera公司提供的LPM模塊、第三方提供的或用戶自己定制的模塊;在頂層實體中,將SOPC系統模塊、Altera的LPM或用戶自定義的模塊連接起來;分配引腳和編譯工程,分別生成系統的硬件配置文件.sof和.pof文件;下載工程,驗證,將配置文件下載到開發(fā)板上進行驗證;軟件開發(fā),開發(fā)可以使用IDE開發(fā)環(huán)境,也可以使用CommandShell;圖2.5SOPC系統開發(fā)流程Fig.2.5SOPCsystemdevelopmentprocess編譯軟件工程,生成可執(zhí)行文件.elf;調試程序,將硬件配置文件下載到開發(fā)板,將可執(zhí)行文件下載到RAM,知道軟硬件協同工作。在上面的過程中,用到的軟件有QuartusII9.0和NiosIIIDE、ModleSim等,如果進行DSP的開發(fā),還會用到Matlab和DSPBuilder。Quartus9.0用來建立硬件的系統,其中包括SOPCBuilder工具,它用來建立SOPC系統模塊。軟件開發(fā)使用NiosIISDKshell或NiosIIIDE,IDE開發(fā)環(huán)境采用圖形化的開發(fā)環(huán)境,使用方便直觀,而SDKshell采用命令窗口的方式進行橫須的調試。在本系統中使用QuartusII9.0軟件中SOPCBuilder功能將設計好的CPU(NiossII)模塊和DDS信號發(fā)生器模塊下載到cycloneII(EP2C35F484C8)FPGA器件中。CPU模塊通過輸出頻率控制字和波形控制字來控制DDS信號發(fā)生器,最后將輸出送到D/A轉換器,經低通濾波器平滑得到所需信號,并采用NiosIIIDE進行編程開發(fā)實現頻率可變,波形可選。所有軟件開發(fā)任務都可以NiosIIIDE下完成,包括編輯、編譯和調試程序。NiosIIIDE提供了一個統一的開發(fā)平臺,用于所有NiosII處理器系統。僅僅通過一臺PC機、一片Altera的FPGA以及一根JTAG下載電纜,軟件開發(fā)人員就能夠往NiosII處理器系統寫入程序以及和NiosII處理器系統進行通訊。2.2.2Avalon總線概述圖2.6Avalon交換架構Fig.2.6ExchangearchitectureoftheAvalon處理器與外設一般都是通過總線完成數據傳輸,NiosII也不例外。Avalon總線是Altera公司為SOPC系統開發(fā)的一種專用的內部連線技術,是一種理想的用于系統處理器和外設之間的內聯總線。Avalon交換架構能進行多路數據同時處理,實現無與倫比的系統吞吐量。SOPCBuilder自動生成的Avalon交換架構針對系統處理器和外設的專用互聯需求進行優(yōu)化。傳統總線架構中,單個總線仲裁器控制總線主機和從機之間的通信。每個總線主機發(fā)起總線控制請求,由總線仲裁器對某個主機授權接入總線。[6]Avalon交換架構同時多主機體系結構提高了系統的帶寬,消除帶寬瓶頸。采用Avalon交換架構,每個總線主機均有自己專用互聯,總線主機只需要搶占共享從機,不是總線本身。每當系統加入模塊或者外設接入優(yōu)先權改變,SOPCBuilder利用最少FPGA資源,產生最佳的Avalon交換架構。2.3DDS信號發(fā)生器設計概述2.3.1系統設計方案本文使用理學院實驗箱EI-EDA-VI,是Altera公司的CycloneⅡ的核心器件EP2C35F484C8,可嵌入CPU單元,有效避免了硬件電路設計的復雜性,所以采用FPGA方案,如圖2.7所示圖2.7FPGA+DAC實現DDS框圖Fig.2.7FPGADDS+DACrealizeblockdiagram即CPU和DDS產生的數字信號輸出之前部分全部由SOPCBuilder功能使用QuartusII9.0FPGA下載器下載到FPGA上,并對其進行編程控制來達到所需波形要求。其內部功能圖如圖2.8所示。[1]圖2.8系統內部功能圖Fig.2.8 Functionalblockdiagram2.4本章小結本章對SOPC系統開發(fā)軟硬件流程進行了概要的介紹,開發(fā)環(huán)境、硬件、內部總線等。分析了基于NiosII控制的DDS信號發(fā)生器的總體設計,通過本章介紹對SOPC系統開發(fā)有了更進一步的了解,對DDS的設計有了初步構想。具體DDS模塊的建立介紹在3章,CPU的設計在第4章。
3DDS信號發(fā)生器的設計基于NiosII控制的DDS信號發(fā)生器的設計重點部分在于DDS信號發(fā)生器的設計,本章詳細介紹了一個DDS信號發(fā)生器的原理和建立,并仿真。3.1DDS信號發(fā)生器的原理3.1.1DDS信號發(fā)生器的原理概述DDS是一種直接把數字量形式的信號,經過D/A轉換器轉換成模擬量的信號合成技術。目前使用廣泛的直接數字頻率合成方式就是高速存儲器作查詢表,通過高速D/A轉換器產生已經用數字形式存入存儲器中的波形。[3]根據奈奎斯特取樣定理,對于任意一個頻率帶寬為B的連續(xù)信號f(t),可以用一系列的離散的取樣值f(t1).f(t1+T)f(t1+2T)來表示,T為采樣周期。只要這樣取樣點的時間間隔小于1/2B,則這樣的表示是完整的,包含著連續(xù)信號f(t)的全部信息。因此,對于一個周期的正弦波連續(xù)信號,可以沿其相位軸方向,以等量的相位間隔對其進行取樣,得到一個周期的正弦波信號的離散相位幅值序列,然后通過一定的手段放到存儲器中。每一個存儲單元的地址即是相位取樣地址,存儲單元的內容即是已經量化了的正弦波幅值。這樣的一個存儲器就夠成了一個與2π周期內相位取樣相對應的正弦函數功能表,因為他存儲的是一個周期的正弦波波形幅值,又稱其為正弦波波形存儲器。對于一個連續(xù)的正弦波信號,其角頻率ω可以用相位斜率/表示。當角頻率ω為一確定值時,其相位斜率也是一個確定值。此時,正弦波信號的相位與時間成線性關系,即=ω。根據這一基本關系,在一定頻率的時鐘信號作用下,通過一個線性的計數時序數列發(fā)生器所產生的取樣地址對已得到的正弦波波形存儲器進行循環(huán)掃描,進而周期性地讀取波形存儲器中的數據,其輸出通過D/A轉換器及低通濾波器就可以合成一個完整的、具有一定頻率的正弦波信號了。DDS信號發(fā)生器原理如圖3.1所示。[7]3.1.2DDS信號發(fā)生器的性能分析圖3.1中fc是一個穩(wěn)定的晶體振蕩器,其作用在于提供DDS中各部件同步工作。相位累加器在fc的控制下以步長K做累加后輸出N位二進制碼,與相位控制字、波形控制字相加后作為波形ROM的尋址地址,對波形ROM進行尋址,波形ROM輸出D位的幅度碼經D/A轉換器變換成階梯波輸出。經過LPF低通濾波處理,變成平滑的波。原理如圖:圖3.1DDS原理框圖Fig.3.1DDSprincipleblockdiagram若采用計數容量為2N的相位累加器,由DDS的數學模型可知,DDS的輸出頻率滿足:所以K=1時有最小輸出頻率,為隨著K的增大,輸出頻率也變大,但是根據抽樣定理,DDS理論上最大頻率為[1]本設計中N位8位并對系統時鐘(50MHz)進行了10分頻,輸出最小頻率為19.5KHz,通過調整N的位數和分頻倍數,可進行調節(jié)。而最大輸出頻率理論為2.5MHz,但是實際最大頻率約為:即1.66MHz(K=85時)。3.2DDS信號發(fā)生器各模塊設計及其VHDL實現見附錄A。3.2.1分頻器因為FPGA芯片中的系統時鐘為50MHz,我們采用的是8位累加器。為了達到更精確的頻率步進(K位8位二進制必須為整數,每一步進即K加1),為了使整體產生頻率稍低,必須對輸入時鐘進行分頻處理。其編程原理是首先設置一個寄存器存儲分頻倍數的的溢出值。本文中對系統時鐘進行了10分頻,因此設置寄存器值為5,上升沿到來時高電平計數1到5,然后低電平計數1到5就得到了10分頻。因此設置不同的分頻與倍頻,在DA轉換器性能可以達到的要求范圍內,可以使產生波形的頻率范圍變化。器元件圖標如圖3.2。圖3.2分頻器元件圖標Fig.3.2Prescalercomponentsicon3.2.2累加器累加器是由N位加法器和N位寄存器級聯成的,每一個時鐘脈沖fc。加法器將頻率控制字K與寄存器輸出的累加相位數據相加,把相加后的結果送至寄存器的數據輸入端,寄存器將加法器在上一個時鐘作用所產生的相位數據反饋到加法器輸入端,使加法器在下一個時鐘作用下進行相位累加。當相位累加器累加滿產生溢出,就完成一個周期性的動作。累加器連接圖如圖3.3圖3.3累加器元件圖標Fig.3.3Accumulatorscomponentsicon3.2.3波形存儲器用相位累加器輸出8位數據作為波形存儲器的取樣地址,進行相位到幅度轉換。N位的尋址ROM相當于把一個周期的波形離散成具有2N個樣值的序列,若波形ROM有D位的數據位,則2N個樣值的幅值以D位二進制數值固化在ROM中,按照地址的不同可以輸出相應的波形幅值。[3]本設計采用8位二進制數值存儲波形幅值,波形存儲器采用Altera公司提供的IP和建立,以正弦波為例對存儲器的建立進行說明如下:首先用C語言或生成28個正弦波數據,建立存儲器初值設定文件(.mif文件),File→New→Memoryinitialization,得到空的存儲器初值文件,將張顯波數據復制到表,得到文件樣如圖3.4。圖3.4存儲器初值設定文件Fig.3.4Memoryinitialvaluesetfile(2)下一步加入只讀存儲器ROM元件。在元件選擇窗口中選擇MegaWizardPlug-lnManager設置正弦信號存儲器,第三步添加生成的.mif文件。生成元件如圖3.5。圖3.5正弦波存儲器元件圖標Fig.3.5Sinewavememoryelementfigure在時鐘的同步作用下,對輸入控制字進行不同的設置,可得到正弦波存儲器中不同間隔的正弦數值,仿真如下圖3.6所示。圖3.6正弦波存儲器仿真圖形Fig.3.6Sinewavememorysimulationdiagram同樣的方法得三角波、鋸齒波元件依次如圖3.7。圖3.7其他波形存儲器生成元件圖標Fig.3.7Otherwaveformmemoryformationcomponentsicon3.2.4波形改變CPU內核輸出波形控制字對波形進行控制,因此波形選擇模塊只需完成簡單的根據輸入選擇不同波形即可,當輸入為00時輸出正弦波,輸入為01是輸出三角波,輸入為10時輸出鋸齒波。元件圖標如圖所示圖3.8波形選擇模塊元件圖標Fig.3.8Waveformchoosemodulecomponentsicon3.2.5DDS整體DDS頂層連接如圖3.9所示。圖3.9DDS模塊整體連接圖Fig.3.9DDSmodulewholeconnectiondiagram在時鐘控制下,選擇輸入端進行不同的賦值,得到不同波形存儲器的數值輸出,仿真圖如下圖3.10所示圖3.10DDS模塊整體仿真圖Fig.3.10ThewholesimulationdiagramDDSmodule3.3DDS信號發(fā)生器性能擴展可行性分析本文要實現基于NiosII控制的DDS信號發(fā)生器,實現頻率可調,波形可調。這其中涉及到DDS的性能問題,如輸出頻率范圍、波形樣式等,下面對想到的問題進行分析。3.3.1DDS信號發(fā)生器的頻率分析因實驗條件等因素限制,我采用了對系統時鐘進行10分頻,波形存儲器位數8位,頻率控制字8位,從而完成的頻率范圍理論只有20KHz—5MHz,實際基本可達19.5KHz—1.6MHz的范圍。據理論波形輸出頻率公式,同步時鐘改變可以改變輸出頻率的范圍,而累加器步長和波形存儲器的容量都可以改變輸出頻率的精度(最小輸出頻率和頻率分辨率),因此改變頻分部分值可以改變頻率的范圍,增加累加器步長同時增大波形存儲器容量可以提高輸出頻率精度。盡量提高相位累加器的字長可以獲得較高的頻率分辨率,一般設置為32位,但隨著相位累加器尋址位的增加,波形存儲器的容量以2冪增長。各種參考資料顯示一般波形存儲器都選用8到16位的寬度。因此整個DDS模塊需要做一個折中,以提高頻率分辨率減低波形存儲器的容量,一般會采用相位截斷技術,選用高幾位作為尋址位,剩余的低位全舍棄不用。[3]3.4本章小結本章主要介紹了DDS信號發(fā)生器的設計,本部分在D/A轉換之前是要全部下載到FPGA上的。本章詳細介紹各個模塊的生成和DDS信號發(fā)生器的原理,其中分頻器的改變可以完全改變生成的頻率范圍,此部分有極大的靈活性,并可靈活擴展功能(例如升級成模擬信號調制與數字信號調制)。4基于NiosII控制的DDS信號發(fā)生器的硬件開發(fā)我們首先來介紹NiosII的硬件部分開發(fā),所謂硬件開發(fā)就是用QuartusII9.0和SOPCbuilder來建立自己需要的軟核,并將其下載到FPGA上。4.1建立工程首先,打開QuartusII9.0軟件。建立一個工程File→NewProjectWizard點擊Next,選擇CycloneII(EP2C35F484C8)FPGA器件其他不需要修改,點擊Finish。[8]4.2構建Nios軟核接下來,進入了構建軟核環(huán)節(jié),點擊Tools→SOPCBuilder(1)配置CPU模塊Altera提供了三種類型,NiosII/e占用資源最少600-800LEs,功能最簡單,速度最慢。NiosII/s占資源比前者多一些,功能也多,速度快一些NiosII/f占資源最多,功能最多,速度最快。具體比較如下表4.1。表4.1NiosII可定制標準Table4.1standardoftheNiosIIcustomizable特性NiosII/f(快速)NiosII/s(標準)NiosII/e(經濟)說明針對最佳性能優(yōu)化平衡性能和尺寸針對邏輯資源占用優(yōu)化流水線6級5級無乘法器1周期3周期軟件仿真實現支路預測動態(tài)靜態(tài)無指令緩沖可設置可設置無數據緩沖可設置無無定制指令256256256選擇的時候要根據你的需求和你的芯片資源來決定。在返里,我選擇NiosII/e,功能和速度都可以得到滿足。下面的ResetVector是復位后啟動時的Memory類型和偏移量,ExceptionVector是異常情況時的Memory類型和偏移量?,F在不能配置,需要SDRAM和FLASH設置好以后才能修改這里。設置JTAGDebugModule,即JTAG調試時所用到的功能模塊。功能越多,需要資源越多,返里,我們選擇Level1即可,不需要過多其他功能圖4.1SOPCBuilderFig.4.1SOPCBuilder(2)在理學院SdramCpu工程添加輸入端口和兩個輸出端口用來控制波形變換,頻率變換。圖4.3輸入輸出端口Fig.4.3I/Oport(3)配置SDRAM控制器內核在Presets中選擇第一項Custom,Bits中選擇16,其他不動,Next→Finish,完成SDRAM控制器的設置。在這里選16位,因為我們用的SDRAM(HY57V641620)是16位的。[8]圖4.2SDRAM??覨ig.4.2SDRAMmouldpit(4)建立EPCS和SystemIDEPCS是一種串行Flash,因此EPCS可以作為配置芯片單獨存儲配置文件,這是主要作用,也可以替代并行的Flash存儲程序,但必須使用存儲器配置文件的剩余空間。SystemID是一種標示符,類似校驗的東西,在下載程序之前或者重啟之后,都會對它進行檢驗,以防止Quartus和Nios程序版本不一致的錯誤。圖4.4配置的軟核Fig.4.4Configurationofthesoft-core(5)建立JTAGUARTJTAGUART是實現PC和NiosII系統間串行通信接口,它用字符輸入輸出,在NiosII的開發(fā)調試過程中扮演了重要角色。如圖4.5所示(6)配置及編譯NiosII我們需要對cpu進行設置一下,雙擊cpu,ResetVector處的Memeory選擇cfi_flash,ExceptioniVector選擇SDRAM,我們需要對FLASH地址進行鎖定,因為FLASH是系統重啟后的起始位置,保證FLASH的起始地址為0x00000000,這樣做的好處是利于我們操作。最后一步設置是對地址自動分配和對寄存器自動分配,這樣做是為了不浪費空間,點擊SYSTEM→Auto-assignBasicAddresses,SYSTEM→Auto-IRQs。系統進行編譯,生成系統,如圖4.5。圖4.5系統生成Fig.4.5Systemgenerates在block界面雙擊添加,可得到生成的CPU,在Project里面,如圖4.6所示。4.3連接DDS信號發(fā)生器部分將上一步構建的Nios軟核輸出的頻率控制字與DDS信號發(fā)生器頻率控制字連接,波形控制字與波形選擇連接。圖4.6生成的CPUFig.4.6GeneratedCPU4.4分配管腳和設置引腳將4.3生成的連接圖,添加各個輸入輸出端口,并分別進行命名,為分配引腳做準備,這一步作用就是生成管腳。[9]接下來就要開始分配引腳了,在這一步之前我們首先要明白我們所用的FPGA芯片上個端口的對應地址,參看實驗指導書,本設計通過試驗箱上IO9—IO16作為DDS數字輸出連接D/A轉換器。試驗箱板子上有四個小按鈕作為頻率控制和波形控制的輸入。[10]圖4.7引腳設定Fig.4.7Pinset分配引腳有兩種方法,我覺得比較好的一種,就是選擇Assignments→Pins,開始對各輸入輸出等引腳進行分配,如圖4.7所示。此時就會發(fā)現各個端口有了固定的地址,如下圖4.8所示。這種方法當然也可以生成引腳文件,即Project→GenerateTclFileForProject。圖4.8硬件整體連接圖Fig.4.8Overallthehardwareconnectiondiagram圖4.9編譯結果Fig.4.9Compileresults圖4.10編程器下載的界面Fig.4.10Programmerinterface4.5本章小結本章介紹基于NiosII控制的DDS信號發(fā)生器的硬件設計概述,對CPU內核的建立進行了詳細的說明,每一部分的添加都有很多的參數需要設置,有部分直接默認就是可以的。其中個引腳的設定是比較困難的,可參考配套實驗書。
5基于NiosII控制的DDS信號發(fā)生器的軟件設計SOPC系統,不僅僅依賴于系統硬件的設計,而且還需要配套軟件進行管理,本系統軟件采用NiosIIIDE進行開發(fā),實現DDS模塊的控制和鍵盤信息的的處理。本章介紹了軟件構造和論文產生的結果。5.1軟件整體架構根據功能設計需要,本程序需完成波形切換、頻率可變的操作,軟件流程圖如圖5.1。圖5.1軟件流程圖Fig.5.1softwareflowchart軟件主題包括初始化、設定波形、設定頻率3部分。初始化時,將波形設定為正弦波,頻率控制字設定為1;小板子上四個按鍵,左邊兩個控制頻率,另外兩個控制波形。5.2軟件操作流程本設計中采用NiosIIIDE進行開發(fā),使用C語言編寫程序。下面介紹開發(fā)的詳細過程:(1)建立軟件工程將NiosIIIDE9.0軟件打開,打開后如圖5.2,選擇硬件部分生產成的CPU,工程建好以后右鍵點擊工程名選擇SystemLibraryProperties,進行進一步配置一定要對存儲器的使用進行合理分配。[11]圖5.2建立NiosIIIDE工程文件Fig.5.2EstablishNiosIIIDEengineeringdocuments(2)工程模板的編譯工程建立設置完成后,我們正式進入NiosIIIDE的界面了,現有HelloNiosII簡單程序,現就其BuildProject,若兩者匹配,各方面正確會得到如下圖5.3所示的結果圖5.3編譯HelloNiosII結果Fig.5.3HelloNiosIIresultscompiled(3)軟件編譯接下來開始編譯,第一次的編譯時間比較長,因為編譯過程中會生成一個重要的文件system.h,這個文件是根據我們的NiosII軟核產生的,system.h的內容與軟核的模塊一一對應。如果軟核發(fā)生發(fā)化,就需要重新編譯,重新產生system.h文件。而后右鍵選擇所建NiosIIIDE工程選擇RunAs→NiosII Hardware,運行程序,結果如圖5.4。[m]圖5.4運行程序Fig.5.4Toruntheprogramresults5.3所得結果及分析因為直接輸出的數字量,我先使用嵌入式邏輯分析儀來進行系統輸出測試。[12][13]5.3.1頻率變化以正弦波輸出為例:圖5.5為初始狀態(tài)下,圖5.6和圖5.7均為提高頻率以后的波形。據以上三個不同頻率的波形分析可得,因為仿真為數字信號輸出,隨著頻率的增大波形看到了明顯的不連續(xù)性,是因為取樣數減小了。通過仿真看到DDS信號發(fā)生器的穩(wěn)定性,頻率的變化并不會引起信號的不穩(wěn)定。圖5.5初始狀態(tài)下正弦波Fig.5.5Theinitialstatesinewave圖5.6提高頻率的正弦波Fig.5.6Raisethefrequencysinewave圖5.7再次提高頻率的正弦波Fig.5.7Onceagainraisefrequencysinewave5.3.2波形變換如下圖5.8-5.10所示為進行DDS信號發(fā)生器的波形變換輸出,波形變換只需按鍵簡單控制,切換所需輸出即可,又可以看出DDS的靈活性,如將ROM改成RAM存儲讀取數據,更減小了所需內存,增強了波形變換的靈活性。[14]圖5.9鋸齒波仿真Fig.5.9Toothwavesimulation圖5.10三角波仿真Fig.5.10Trianglewavesimulation5.3.4結果分析及優(yōu)化方案畢業(yè)設計要求的功能基本上能夠實現,但是實驗也存在一些不足。因為頻率控制字和ROM的位數都比較低,所以達得的精度比較低,頻率以19KHz的速度增長。因為我設計的ROM位數以及頻率控制字字長的限制,累加器步長增長以后達到更高的精度我們就有條件設計需要的頻率,比如以0.5KHz為最小精度,根據設定自己所需的頻率。希望以后的方案有條件的話,在精度和分辨率上進行必要的優(yōu)化,不過還是合適的是最好的。5.4本章小結至此,我們完成預期的基于NiosII控制的DDS信號發(fā)生器的功能。本章通過分析總體C語言控制流程,進行C語言編程,NiosIIIDE使用詳細流程介紹,最終顯示了結果。當然真正的基于NiosII控制的DDS信號發(fā)生器的功能更強大的,要更多功能的擴展和延伸,我還需要在此基礎上進行深層次的研究和學習。
6總結與展望6.1總結主要展開的工作以及取得的成果有:(1)收集、閱讀及分析了有關SOPC系統設計和DDS信號發(fā)生器的文獻資料,DDS信號發(fā)生器的發(fā)展和國內外研究現狀有了解和認識。(2)研究了DDS信號發(fā)生器的原理、特點、實現過程和以及改進措施。(3)對SOPC系統開發(fā)進行了全方面的分析、研究、實踐。(4)從單獨的DDS信號發(fā)生器的仿真,到嵌入式邏輯分析儀的系統測試,每一步都努力達到設計預期目標。6.2展望大規(guī)模集成電路以及FPGA的高速發(fā)展,因為DDS信號發(fā)生器應用廣泛,基于FPGA器件的DDS信號發(fā)生器發(fā)展成果不錯,但是仍帶來很多需要解決的問題,比如為了高分辨率和存儲器相對小地中和而產生的相位截斷;產生任意波形、任意頻率還是有一定的限制。DDS在大部分操作中使用數字電路,提供了數字操作擁有的許多優(yōu)勢。由于信號只在合成的最后階段轉換到模擬信號,提高了函數發(fā)生器的穩(wěn)定性?,F代通信技術、電子、微電子技術的發(fā)展,對信號發(fā)生器提出了更高的要求。除對信號頻率范圍、帶寬和頻率分辨率的嚴格限制外,對信號波型及調制特性也有著苛刻規(guī)定。研究開發(fā)具有更高性價比的信號發(fā)生器是當前和今后一段時間內急需解決的課題。若能充分利用FPGA強大的數據運算處理能力以及編程靈活、運行速率快等各種優(yōu)點,合理整合IP核資源和更好地利用SOPC技術,一定可以設計出性能更加出色的信號發(fā)生器[15]。致謝畢業(yè)設計能夠得以順利完成,真的要感謝所有指導過我的老師、同學,在這里對他們表示深深的謝意!要特別感謝我的指導老師——周越老師。每次遇到問題,周老師總是不厭其煩的幫我講解,從老師那里也讓我學到的不只是知識,更是一絲不茍的態(tài)度。當我感覺時間緊急來不及完成我的畢業(yè)設計的時候,也是周越老師跟我做思想工作,讓我相信自己的能力,我開始耐心地去看那些對于我來說是天書的書,很多的不明白,還是周越老師得醍醐灌頂。最終讓我完成了我的畢業(yè)設計,從中感覺到了不僅是知識的增加更是個人能力的提高。老師高度的敬業(yè)精神令我心悅誠服。而周越老師的分析過程,細微的掌握之處讓我震驚,極高的科研能力令人折服。在此,對我的指導老師周越老師真誠的道一聲:“老師您辛苦了,感謝您!”我還要感謝理學院全體老師對我的教育培養(yǎng),是他們教會我做人,讓我成為一個合格的大學生,在此由衷的感謝各位老師!最后,我要感謝養(yǎng)育我的父母,定會回報你們的養(yǎng)育之恩!四年的大學的生活就此結束,最后由衷的感謝母?!本┝謽I(yè)大學!我愛這里,不想離開。
參考文獻[1]侯建軍,郭勇.SOPC技術基礎教程[M].北京:清華大學出版社,2008:1-55.[2]王晨,基于DDS的高精度任意波形發(fā)生器設計[J]電子科技大學,2010,23(7):60-65[3]劉鐵新,高俊法.DDS輸出品皮特點及改善方法[J].陜西天文臺臺刊,1999,6:1-22.[4]LiZhuo,ChenZhiliang.VerificationandautotestforLCDdriver/controller[M]2003.[5]肖鐵軍,黃建文.數字電路邏輯測試系統中的測試生成[J].江蘇工學院學報,1993,14(6):67-72.[6]IGonzalez;FJGomezArribasCipheringalgorithmsinMicroBlaze-basedembeddedsystems[J]2006(02).[7]赫建國,倪德克,鄭燕.基于NiosII內核的FPGA電路系統設計[M].電子工業(yè)出版社.2010,1(4):87-94.[8]TexasInstrumentsCorporation.TLV5580Datasheet[A].[9]AlteraCorporation.QuickStartGuideforQuartusⅡSoftware.2006.[10]李越,蘇杰,宋凱.基于FPGA和EPP的芯片測試電路設計[J].無線電工程,2008,38(4):10-12.[11]AlteraCorporation.NiosⅡIEDHelpSystem.2006.[12]彭澄廉.挑戰(zhàn)SOC—基于Nios的SOPC設計與實踐[M].清華大學出版社,2004.7.[13]郭書軍,王玉花,葛紉秋.嵌入式處理器原理及應用——Nios系統設計和C語言編程[M].北京:清華大學出版社,2004.[14]郭勇.SOPC技術及運用[EB/OL]./html/09-01/415519050917eGki.shtml.[15]羅毅.基于FPGA和單片機的DDS信號發(fā)生器的設計[D]電子科技大學,2012,3附錄附錄ADDS信號發(fā)生器各模塊VHDL語言部分(1)頻分--10fenpinarchitecturebehavoffenpinissignalcount:STD_LOGIC_VECTOR(2DOWNTO0);signalclk_temp:STD_LOGIC;beginprocess(clk)begin if(clk'eventandclk='1')then if(count="100")THEN count<="000"; clk_temp<=notclk_temp; else count<=count+1; endif; endif; endprocess; k_clk<=clk_temp;endbehav;寄存器architecturebehavofjicunqiisbeginprocess(Load,DIN)begin ifLoad'EVENTANDLoad='1'THEN DOUT<=DIN; endif;endprocess;endbehav;波形選擇器architecturebehavofxuanzeisbegin process(s,clk) BEGIN ifclk'eventandclk='1'then ifs="00"then z<=A; elseifs="01"then z<=B; elseifs="10"then z<=C; ENDIF; ENDIF; ENDIF; endif; ENDPROCESS;endbehav;附錄B工程源程序#include"sys/alt_irq.h"#include"stdio.h"#include"stdlib.h"#include"string.h"#include"system.h"#include"unistd.h"#include"alt_types.h"#include"altera_avalon_pio_regs.h"#include<io.h>#include"altera_avalon_timer_regs.h"volatilealt_u8data;volatilealt_u8box;unsignedchars[4][7]={"正弦","三角","鋸齒"};unsignedcharAC_TABLE[]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,//第一行漢字位置0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,//第二行漢字位置0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,//第三行漢字位置0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第四行漢字位置};voidudelay(alt_u8us){alt_u8i;while(us--)for(i=1;i<=1;i++);}//串口發(fā)送一個字節(jié)voidSendByte(unsignedcharDbyte){unsignedchari,tmp_byte=Dbyte;for(i=0;i<8;i++){IOWR(E_BASE,0,0x00);IOWR(RW_BASE,1,0x01);IOWR(RW_BASE,0,(tmp_byte>>(7-i)));IOWR(E_BASE,0,0x01);IOWR(E_BASE,0,0x00);}}//串口接收一個字節(jié)//僅在讀取數據的時候用到//而讀出的數據是一次只能讀出4bit的unsignedcharReceiveByte(void){unsignedchari,temp1,temp2,tmp_recv=0x00;temp1=temp2=0;for(i=0;i<8;i++){temp1=temp1<<1;IOWR(E_BASE,0,0x00);IOWR(E_BASE,0,0x01);IOWR(E_BASE,0,0x00);IOWR(RW_BASE,1,0x00);tmp_recv=IORD(RW_BASE,0)&0x01;if(tmp_recv)temp1++;}for(i=0;i<8;i++){temp2=temp2<<1;IOWR(E_BASE,0,0x00);IOWR(E_BASE,0,0x01);IOWR(E_BASE,0,0x00);IOWR(RW_BASE,1,0x00);tmp_recv=IORD(RW_BASE,0)&0x01;if(tmp_recv)temp2++;}return((0xf0&temp1)+(0x0f&temp2));}voidCheckBusy(void){doSendByte(0xfc);//11111,RW(1),RS(0),0while(0x80&ReceiveByte());//BF(.7)=1Busy}voidWriteCommand(unsignedcharCbyte){IOWR(RS_BASE,0,0x01);SendByte(0xf8);//11111,RW(0),RS(0),0SendByte(0xf0&Cbyte);//高四位SendByte(0xf0&Cbyte<<4);//低四位(先執(zhí)行<;<;)IOWR(RS_BASE,0,0x00);}voidWriteData(unsignedcharDbyte){IOWR(RS_BASE,0,0x01);udelay(1);usleep(100);CheckBusy();SendByte(0xfa);//11111,RW(0),RS(1),0SendByte(0xf0&Dbyte);//高四位SendByte(0xf0&Dbyte<<4);//低四位(先執(zhí)行<;<;)IOWR(RS_BASE,0,0x00);udelay(2);}voidLcmInit(void){WriteCommand(0x30);//8BitMCU,基本指令集合WriteCommand(0x03);//AC歸0,不改變DDRAM內容WriteCommand(0x0C);//顯示ON,游標OFF,游標位反白OFFWriteCommand(0x01);//清屏,AC歸0Write
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯網教育企業(yè)有限合伙人合作協議
- 抖音企業(yè)號年度內容審核與風險控制服務合同
- 模塊化應急醫(yī)院建造與醫(yī)療廢物處理設施建設協議
- 城市綜合體購物中心A類鋪位租賃及品牌推廣協議
- 國際醫(yī)療設施租賃與專業(yè)操作培訓合同
- 拼多多電商平臺客服團隊建設與客戶關系維護合同
- 移動應用積分合作補充協議
- 小紅書短視頻內容營銷戰(zhàn)略合作協議
- 影視特效化妝假體租賃與特效制作技術指導與實施合同
- 空間技術產業(yè)私募股權投資基金有限合伙人全面合作協議
- 山東交通學院成人高考智能交通系統復習題及參考答案
- 汽車類駕照考試科目一考試題庫(900題完美打印版)
- DBS改善工具-T-I事務性流程改善-課件
- 山東大學畢業(yè)生登記表
- 《心肺復蘇及電除顫》
- Fe3+-Bi3+混合溶液各含量的測定
- 毫針刺法技術操作規(guī)程
- 基于stm32的智能小車設計畢業(yè)設計論文
- 手術通知單模板
- GB∕T 26077-2021 金屬材料 疲勞試驗 軸向應變控制方法
- GB∕T 3853-2017 容積式壓縮機 驗收試驗
評論
0/150
提交評論