




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、zisioow潴審弟務(wù)號滲廉甲$爭滲碧草sqq賣膾目的賣臉要求dds工作原理田、 軼硬件平臺簡介五、方秦役計六、fpga糸統(tǒng)的棧塊設(shè)計七、單片機糸統(tǒng)程序設(shè)計附錄1 浮點子程序設(shè)計附錄2 子程序接口說朗附錄3 cpu擴展板使用說朗附錄4lm6101型eda綜合賣驗糸統(tǒng)原理圖一、實驗?zāi)康?. 掌握單片機開發(fā)和cpld設(shè)計及其綜合運用技術(shù);2. 掌握dds的工作原理及其硬件實現(xiàn)方法和過程;3. 掌握口頂向下的設(shè)計思想和模塊化的設(shè)計方法。二、實驗要求技術(shù)要求:1. 至少能產(chǎn)生如下信號類型:正弦波、方波、三角波;2. 輸出信號頻率范圍:1hz20khz,步進1hz,頻率偏移小t 5%;3. 輸出頻率可預(yù)
2、置并山鍵盤輸入;4. 用數(shù)碼管顯示輸出頻率。工作要求:1. 硬件部分要求用mcu和fpga來實現(xiàn);2. 軟件部分fpga要求用原理圖或vhdl (verilog)設(shè)計實現(xiàn),mcu耍求用c51實現(xiàn);3. 設(shè)計時要充分考慮系統(tǒng)的可兼容性及可擴展性。三、dds工作原理3. 1 dds基本原理dds的理論依據(jù)是奈奎斯特抽樣定理。根據(jù)該定理,對于任意一個頻率帶寬為f的連 續(xù)信號f(t),可以用一系列離散取樣值/(r),/(r±n/(r±2t),-來表示,對于一個周期正 弦波連續(xù)信號,可以沿其相位軸方向,以等量的相位間隔對其進行相位/幅度抽樣,得到一 個周期性的正弦信號的離散相位的幅度
3、序列,并對模擬幅度進行量化,量化后的幅值采用相 應(yīng)的二進制數(shù)據(jù)編碼,只要取樣點的時間間隔t小于1/2f,這樣的表示就是完整的,包含 了連續(xù)信號f(t)的全部信息。這樣就把一個周期的正弦波連續(xù)信號轉(zhuǎn)換成為一系列離散的二 進制數(shù)字量,然后通過一定的手段固化在只讀存儲器rom中,每個存儲單元的地址即是相 位取樣地址,存儲單元的內(nèi)容是已經(jīng)量化的正弦波幅值。這樣的一個只讀存儲器就構(gòu)成了一 個與2兀周期內(nèi)相位取樣相對應(yīng)的正弦函數(shù)表,因它存儲的是一個周期的正眩波波形幅值, 因此乂稱其為正弦波形存儲器。對于一個連續(xù)的正弦波信號,其角頻率3可以川相位斜率4 4>/at表示。當(dāng)角頻率3為定值時,其相位斜率
4、e仏t也是一個確定值。此時,正弦波信 號的相位與時間成線性關(guān)系,即e = 根據(jù)這一基本關(guān)系,在一定頻率的時鐘信號作用 下,通過一個線性的計數(shù)時序發(fā)牛器所產(chǎn)牛的取樣地址對已得到的正弦波波形存儲器進行掃 描,進而周期性地讀取波形存儲器屮地數(shù)據(jù),其輸岀通過數(shù)模轉(zhuǎn)換器及低通濾波器就可以合 成一個完整的、具有一定頻率的止弦波信號。3.2 dds基本組成dos的基木組成框圖如圖1所示。它主要由標準參考頻率源、相位累加器、波形心儲器、 數(shù)模轉(zhuǎn)換器、低通平滑濾波器構(gòu)成。clk圖1dds原理圖在時鐘脈沖的控制下,頻率控制字mrh累加器得到相應(yīng)的相碼,相碼尋址波形存儲器進 行相碼一幅碼變換輸出不同的幅度編碼,再經(jīng)
5、過數(shù)模變換器得到相應(yīng)的階梯波,最后經(jīng)低通 濾波器對階梯波進行平滑處理,即得到rh頻率控制字m決定的連續(xù)變化的輸出波形。其中, 參考頻率源一般是一個高穩(wěn)定的晶體振蕩器,其輸出信號用于dds小各部件同步工作。因此, dds輸出的合成信號頻率穩(wěn)定度與晶體振蕩器是一樣的。相位累加器是實現(xiàn)dds的核心,如圖12所示。它山一個n位字長的二進制加法器和 一個由固定時鐘脈沖取樣的n位寄存器組成。相位寄存器的輸出與加法器的一個輸入端在內(nèi) 部相連,加法器的另一個是外部輸入的頻率控制字mo這樣,在每一個時鐘脈沖到達時, 相位寄存器采樣上個時鐘周期內(nèi)相位累加器的值與頻率控制字m z和,并作為相位累加器在 這一時鐘周期
6、的輸出。輸出fc當(dāng)頻率合成器止常工作時,在標準頻率參考源地控制下(頻率控制字m決定了和應(yīng)的相 位增量),相位累加器則不斷地對該相位增量進行線性累加,當(dāng)相位累加器積滿量時就會產(chǎn) 生一次溢出,從而完成一個周期性的動作,這個動作周期即是dds合成信號的一個頻率周期。3. 3參數(shù)選擇原理及方案分析dds技術(shù)在本質(zhì)上,是實現(xiàn)了一個數(shù)字分頻器的功能,它的頻率精度是山相位累加器的 比特數(shù)決定的,即輸入的參考頻率除以2、就決定了 dds所能夠?qū)崿F(xiàn)的頻率精度。輸出信號波形的頻率:fout =mfe/2n頻率分辨率:fmin=fe/2n式中:/刎為輸出信號頻率;/min為輸出信號分辨率;m為頻率控制字;n為相位累
7、 加器字長;力為標準參考頻率源工作頻率。由上式可知,dds輸出信號的頻率主要取決于 頻率控制字m,相位累加器字長n決定dds的頻率分辨率。當(dāng)m增人時,/切可以不斷 地提高,山抽樣定理,最高輸出頻率不得大于/(./2,但工作輸出頻率達40%力時,輸出 波形的相位抖動就很人。根據(jù)實踐所得,實際工作時輸出頻率小于fc /3較為合適。同時當(dāng) n增大時,dds輸出頻率的分辨率也越精細。四、軟硬件平臺簡介本章將主要介紹設(shè)計平臺,包括maxplus tt, lca51和altera fpga, adek51仿真機。4. 1軟件平臺介紹4. 1. 1 altera maxplus iialtera公司的max
8、plus 11開發(fā)系統(tǒng)是一個完全集成化、易學(xué)易川的可編程邏輯設(shè)計 環(huán)境,它可以在多種平臺上運行omaxplus 是multiple array matri x and programmable 1 ogi c user system的縮寫,目前已發(fā)行到了 10. 0版本。它所提供的靈活性和高效性是無可比擬 的。其豐富的圖形界而,輔之以完整的、可即時訪問的在線文檔,是設(shè)計人員能夠輕松、愉 快的掌握和使用maxplus ii軟件。maxplus h開發(fā)系統(tǒng)有許多特點。1. 開放的界而altera的工作與eda廠家緊密的結(jié)合,使maxplus ii軟件可與其它工業(yè)標準的設(shè)計輸 入、綜合與校驗工具相連
9、接。設(shè)計人員可以使用altera或標準eda設(shè)計輸入工具來建立邏 輯設(shè)計,使用maxplus t t編譯器(compiler)對altera器件設(shè)計進行編譯,并使用altera 或其它eda校驗工具進行器件或板級仿真。目前,皿xplus ii支持與cadence > exemplarlogic> mentor graphics、synopsys、synplici ty> view logic 和其它公司所提供 的edat具的接口。2. 與結(jié)構(gòu)無關(guān)maxplus ii 系統(tǒng)的核心 compiler 支持 altera 公司的 aecx ik, flex 10k, flex 80
10、00, flex6000, max9000, max7000, max5000 >fll classic 可編程邏輯器件系列,提供了業(yè)界唯一 真正與結(jié)構(gòu)無關(guān)的可編程邏輯設(shè)計環(huán)境。maxplus 11的編譯器還提供了強人的邏輯綜合與 優(yōu)化功能,使川戶比較容易的將其設(shè)計集成到器件屮。3. 多平臺maxplus 11 軟件可在基于 486,購 pc 機的 window nt 3. 51 或 4. 0, windows 95, windows 98 下運行,也可在 sun spac station, iip 9000 series 700/800 和 ibm risc system /6000
11、工作站上運行。4. 完全集成化maxplus 11的設(shè)計輸入、處理與校驗功能全部集成在統(tǒng)一的開發(fā)環(huán)境下,這樣可以加 快動態(tài)調(diào)試,縮短開發(fā)周期。5. 豐富的設(shè)計庫maxplus ii提供豐富的庫單元供設(shè)計者調(diào)用,其中包括74系列的全部器件和多種特殊 的邏輯宏功能(macro-function)以及新型的參數(shù)化的兆功能(mage-function)0調(diào)用庫單 元進行設(shè)計,可以大大減輕設(shè)計人員的工作量,也可以成倍的縮短設(shè)計周期。6. 模塊化工具設(shè)計人員可以從各種設(shè)計輸入、處理和校驗選項中進行選擇從而使設(shè)計環(huán)境用戶化,必 要時,還可根據(jù)需要添加新功能。由于maxplus tt支持各種器件系列,設(shè)計人員
12、不必學(xué)習(xí) 新工具即可支持新結(jié)構(gòu)。7. 硬件描述語言(hdl)maxplus 11軟件支持各種hdl設(shè)計輸入選項,包括vhdl. verilog hdl和altera自己 的硬件描述語言ahdlo& megacore 功能megacore功能是為復(fù)雜的系統(tǒng)及功能提供的,經(jīng)過校驗的hdl網(wǎng)表文件,它能使flex 10k, flex 8000, flex6000, max9000和max7000器件系列實現(xiàn)最優(yōu)化的設(shè)計。充分利用這 些megacore功能會使設(shè)計人員的設(shè)計任務(wù)人人減輕,可把更多的粘力投入到改進各種設(shè)計 和最終的產(chǎn)品上。9. op encore 特性maxplus h軟件具有開
13、放核的特點,它允許設(shè)計人員添加自己認為有價值的宏函數(shù)。除了上述特點外,目前應(yīng)用最廣泛的maxplus 11 10. 0版還增強了寄存設(shè)計性能,減少 了編譯時間,提高t altera的vhdl和veri log hdl合成工具的效果,大大提高了設(shè)計人員 的效率。4.1.2 lca51 (win9x 版本)lca51軟件是aedk系列仿真機的調(diào)試軟件。軟件支持aedk所有系列的5 1類仿真機。 lca51軟件是基于windows95/98操作平臺的多窗口編輯、調(diào)試軟件。軟件對使用兩種界血 方式。在高級用戶界面方式,支持用戶定制界面,包括菜單、工具欄、熱鍵等。用戶可以按 個人習(xí)慣改變工作界而。軟件采
14、用多窗口和船塢化窗口相結(jié)合的標準調(diào)試界而方式。lca51軟件全而支持匯編語言,c51語言,pl/m51語言的編譯、連接、調(diào)試。軟件支持 單文件方式和工程化管理兩種模式。用戶可自定義各種語言的關(guān)鍵詞。軟件完全支持源語句 級在線調(diào)試。髙級語言還支持源文件調(diào)試和匯編語言指令行對照調(diào)試,用戶可同時打開多個 窗體編輯、調(diào)試、變量觀察。用戶可在線對源文件宜接編輯、編譯、連接、加載和調(diào)試,軟 件支持編譯錯課源文件定位。調(diào)試時川戶可動態(tài)觀察、修改設(shè)定變量(包押icpu片內(nèi)寄存器、 特殊寄存器及外部寄存器、內(nèi)存)的值。lca51軟件是集編輯、編譯/連接、加載、調(diào)試等為一體的集成開發(fā)環(huán)境。用戶可以在 同一界面環(huán)境
15、中完成所有任務(wù)。編輯窗口lca51提供一個多窗口的源文件編輯器。該編輯器不受文件大小的限制,允許無限制的 撤銷/重復(fù)功能。編輯器全面支持匯編、c51和pl/m51語言的語法加亮著色。川戶可以自定 義各種類型文本的顏色和不同語言的關(guān)鍵詞。相應(yīng)的關(guān)鍵詞文件名為asm. kwd. c51.kwd、 plm51. kwd0工作區(qū)窗口工作區(qū)窗口有兩個頁而窗口。工程頁而窗口以樹形結(jié)構(gòu)顯示工程中的項目文件等內(nèi)容。 資源管理器頁面窗口和win9x屮資源管理器屮窗口相同。輸出窗口輸;1!窗口顯示用戶編譯連接過程中的輸出信息。觀察窗口觀察窗口中顯示調(diào)試過程中長期觀察的變量項數(shù)據(jù)窗口數(shù)據(jù)窗口屮成批顯示仿真機相應(yīng)存儲
16、區(qū)域的整塊數(shù)據(jù)內(nèi)容。對話窗口用戶通過對話窗口肓接用監(jiān)控命令和仿真機對話。4. 2硬件平臺介紹4. 2. 1 lm6101型eda綜合實驗系統(tǒng)lm6101型eda綜合實驗系統(tǒng)是在東南人學(xué)電工電子實驗屮心多年教學(xué)實踐基礎(chǔ)上開發(fā) 完成的新一代全數(shù)碼控制的eda綜合課程設(shè)計實驗系統(tǒng)。cpld/mcu綜合實驗系統(tǒng)采用了 cpld和mcu雙系統(tǒng)架構(gòu),適應(yīng)了當(dāng)今數(shù)字系統(tǒng)設(shè)計的潮 流,使該系統(tǒng)功能達到了一個比較高的高度,兒乎能完成所佇的數(shù)字系統(tǒng)設(shè)計。該系統(tǒng)屮 mcu和cpi.d的所有管腳都采用了固定連接,通過板載控制芯片和外圍電路相連。連接的改 變、外圍器件功能的轉(zhuǎn)換、時鐘頻率的改變?nèi)坑蓴?shù)碼控制。徹底摒棄了
17、傳統(tǒng)eda實驗系統(tǒng) 需要人量的連線、跳線而帶來的不便,提高了系統(tǒng)的穩(wěn)定性和易用性,減少了實驗故障率。 主板、下載板分離的設(shè)計使用戶可以選擇不同廠家、不同型號、不同規(guī)模的芯片,既適應(yīng)了 各個不同院校的不同教學(xué)需要,也使系統(tǒng)的功能和規(guī)模擴展變的更為容易。實驗板規(guī)格: 4組4位共16位獨立式按鍵(每組可單獨選擇電平輸入或者脈沖輸入) 1組4x4矩陣鍵盤 7組4位共28個led顯示輸出 8位7段數(shù)碼顯示輸出 2組16個共32個1/0擴展輸出 2通道波形輸出 一個8位串行a/d轉(zhuǎn)換器tlc549 一個雙路8位并行d/a轉(zhuǎn)換器tlc7528 1hz11mhz共16個標準脈沖供時鐘信號clk1選擇 兩組連續(xù)
18、町調(diào)脈沖輸出供時鐘信號clk2選擇 一個單步脈沖信號供時鐘信號clk2選擇 一個外接時鐘輸入供時鐘信號clk2選擇 一個vga顯示器接口 一個rs232標準串行總線接口 一個ps/2鍵盤/鼠標接口 一片32k x 8隨機存儲器 2組40腳插座(用于連接cpld下載板) 一片微控制器芯片 一片管理芯片 1個輸出電壓為5v, +12v, -12v開關(guān)電源實驗板的捉供了 cpld和mcu兩個系統(tǒng),可以使川戶方便的實現(xiàn)從最基本的cpld實驗 到復(fù)雜的數(shù)字系統(tǒng)實驗的設(shè)計和驗證工作。此實驗板可以作為獨立的cpld系統(tǒng)來完成常規(guī) 的cpld實驗,這時候川戶兒乎可以使川所有板上提供的輸入和輸出資源,且全部為硬
19、連線。 當(dāng)作為cpld和mcu的雙系統(tǒng)時,由于cpld的管腳資源有限,同時又要盡可能的使用單片機 的資源,所以有一部分輸入輸出資源不能被使川。此實驗系統(tǒng)采川了下載板和實驗板分離的設(shè)計方式,川戶可以根據(jù)自己的需要選川不 同公司,不同型號的對編程器件來完成口己的設(shè)計。詳細內(nèi)容可參見附錄三。3. 2. 2 aedk單片機仿真機aedk51w機有全空間仿真和仿真ram出借,直接對帶有rom的芯片仿真,所有功能一箱 化設(shè)計。其主要性能及特點現(xiàn)簡要描述如門1. 可仿真 mcs-51/320 系列單片機,可仿真 1ntel/ph1l1ps/atmel /dallas/w1nbondden 等51/320系列
20、的單片機。2. 采川專川仿真cpu的雙cpu仿真機。3. 全空間仿真:程序空間0ffffii,數(shù)據(jù)空間0ffffh全空間都可仿真。全空間仿真ram出借:0ffffh,足可適應(yīng)此次系統(tǒng)開發(fā)要求。4. 采川6仆全空間硬件斷點。單步使用仿真cpu提供的專用斷點技術(shù),而不使川外部中 斷。5. 具有夭折處理功能,即執(zhí)行用戶程序后,按暫停熱鍵能保存用戶現(xiàn)場后返冋監(jiān)控,幫 助査找程序走飛,死循環(huán)的原因。6. 采用零地址仿真,即程序起始地址0000h和中斷入口地址都可以使用,使之一次性仿 真,脫機無須更改程序。7. 所有單片機資源均開放,即是reset引腳也開放,便于調(diào)試。8. 可聯(lián)ibm pc及其兼容機,可
21、使用編輯、匯編、pl/m51、c51 m入式定點浮點運算庫 等軟件。9. 機上采用高速串口,自動檢測適配波特率(2400115200)。不占用仿真cpu串口, 支持單片機串口與系統(tǒng)機聯(lián)接調(diào)試串口通訊程序。10. 支持符合化調(diào)試??蓪τ浦驳某绦蚍磪R編后口動加上標號形成匯編源文件,幫助川 戶仿制,修改樣機。11一箱化設(shè)計,進口基板,熱風(fēng)平整,波峰焊接,封閉式機箱,老化考核,可靠性高。12.仿真頭有故障隔離措施,即使川戶系統(tǒng)硬件故障也不影響仿真器工作,可調(diào)試川戶系 統(tǒng)硬件。4.3設(shè)計所用器件介紹現(xiàn)場口j編程門陣列fpga是有許多微小的邏輯單元組成的內(nèi)部陣列,單元間的連接通過 其周圍的布線通道互連實
22、現(xiàn),邏輯單元及布線通道對市用戶現(xiàn)場配置。近幾年來,由于微電 子技術(shù)的迅猛發(fā)展,使得fpga的性能指標也大大改進,規(guī)模越來越大,功能越來越全,時間 性能越來越好。因而fpga在數(shù)字系統(tǒng)設(shè)計中占據(jù)了越來越重要的位置。altera flex 1 ok系列fpga,規(guī)模從一萬門到十萬門,可提供7205392個觸發(fā)器及614424576位ram,提供30ns、40ns及50ns等幾個速率等級,可適應(yīng)18105mhz的信號 處理速率。altera flex 10k系列fpga主要由輸入輸出單元i0e、掩埋陣列eab、邏輯陣 列l(wèi)ab及內(nèi)部連線組成。eab是在輸入和輸出端口加有寄存器的ram塊,其容量可靈活
23、變 化。所以,ea13不僅可以川于存儲器,還可以事先寫入査表值來川它構(gòu)成如乘法器、糾錯邏 輯等電路。當(dāng)用丁 ram時,eab可配制成多種形式的字寬和容量。lab主要川于邏輯電路設(shè)計,一個lab包折8個邏輯單元le,每一個lab提供4個控 制信號及其反和信號,其中兩個可用于時鐘信號。每一個le包括紐合邏輯及一個可編程觸 發(fā)器。觸發(fā)器對被配成d, t, jk, rs等各種形式。i0e提供全局的時鐘及淸零信號輸入端口, 還提供具有可編程性的各種輸入輸出端口,如低噪聲端口、高速端口等。五、方案設(shè)計5.1主要結(jié)構(gòu)它的主要結(jié)構(gòu)包括單片機及其所控制的鍵盤輸入單元、顯示單元,一個ram存儲波形數(shù)據(jù), 并rtl
24、單片機給予初始化ifurh fpga來控制其讀取,然后通過d/a控制及幅度控制單元,再經(jīng) 過一個低通濾波器,就可以得到一個平滑的波形了。而且該方案非常易于在上述提到的 lm6101型eda綜合實驗系統(tǒng)上實現(xiàn)。52由硬件平臺確定的各模塊方案 總體電路方案fpga部分:利川可編程邏輯器件來代替數(shù)字系統(tǒng)屮的中小規(guī)模集成電路,可以人人簡化 系統(tǒng)外圍硬件電路的設(shè)計,增強系統(tǒng)的町靠性,且編程方便、速度快。設(shè)計中,我們使用 maxplusii開發(fā)軟件系統(tǒng),并用altera公司的flex epf10k10器件進行下載。輸入控制 器與單片機相連,傳輸控制命令。從而使單片機的控制范圍人人延仲。mcu部分:單片機系
25、統(tǒng)由89c51、ram、鍵盤、數(shù)碼管顯示等部分組成。數(shù)碼管的譯碼電路 己在實驗底板中用gal22v10d實現(xiàn),很大程度上減少了系統(tǒng)的組合邏輯電路。顯示部分用 五個數(shù)碼管來顯示,不但節(jié)省資源,也相應(yīng)簡化一些編程。 鍵盤控制也元由丁系統(tǒng)要求功能較多,若不加處理的利用單片機p1 口擴展鍵盤,則很有可能出現(xiàn)鍵盤 滿足不了顯示要求的情況,因此必須有效的利川鍵盤。而且實驗板木身在其設(shè)計屮,當(dāng) ram及d/a被使用時,k0kf鍵盤均被禁用,所以設(shè)計中,我們采用了實驗底板上一個已 經(jīng)與單片機的p1 口相連的4x4的小鍵盤,通過輸入的數(shù)字長度、范圍和確認鍵來區(qū)別發(fā) 送的信息。同時利川延時來解決鍵盤消抖動問題。
26、數(shù)碼管顯示單元采用了五個c-5011共陰極數(shù)碼管作為顯示單元。因為當(dāng)ram和d/a被使用時,所有l(wèi)ed 燈均被禁用。由于實驗底板上己用三片gal22v10d完成了所有數(shù)碼管的譯碼功能,所以設(shè) 計中不需要對數(shù)碼管另行做譯碼的工作。而當(dāng)ram被使用時,顯示方式為4位2進制數(shù)控 制顯示數(shù)據(jù)、3位2進制數(shù)控制顯示位數(shù)的掃描顯示,我們采丿|高速頻率掃描數(shù)碼管,使 其分別顯示相應(yīng)數(shù)值,但由于頻率較高,所以可以說是看不見數(shù)碼管的閃爍的。 ram波形存儲我們采川的是底板自帶的隨機存儲器ram62256來存儲正弦波形數(shù)據(jù),它的存儲牢間是 32k。為了盡量提高ram的使用效率,并且考慮到止弦波形的對稱性,所以我們
27、存儲了從 最低點幅值數(shù)據(jù)'00'開始的到最高點幅值數(shù)據(jù)'ff'的半個周期的波形數(shù)據(jù),在讀取數(shù) 據(jù)時,順序讀完這半個周期后則繼續(xù)反相讀取下個半周的數(shù)據(jù)值,這樣合起來就是一整個 工作頻率較高,在5v電源下工作時其建立時間只有l(wèi)oons,傳輸延時時間是80ns,完全可 以滿足木次設(shè)計的要求,其控制信號主要包括:片選cs,低電平有效;d/a選擇端daca/dacb, 低電平位daca,高電平位dacb:數(shù)據(jù)寫入使能wr,低電平有效。通道a作為整個波形的輸 出o周期的波形。也就好像我們擴展了 ram的空 間,即可以認為ram大小為64k (2i6)od/a及外圍電路tlc
28、7528是雙路、8位分辨率的數(shù)字-模擬 轉(zhuǎn)換器,其使用山dip1控制,為0禁用,為 1使能。模擬信號通過實驗板右下方的兩個 bnc接i i輸出到測量儀器中去。該d/a轉(zhuǎn)換器dip.soic叵叵ee叵e叵i叵6 5 4b b bd d dagndout arf8 avref adgnddac a/d ac b(msb) db7ad7528top view(not to scale)bsb b b(lutfbreddvr£bcb1b2b3 orvv_w_dddd 2323回13e回回3hii3系統(tǒng)總線系統(tǒng)總線在實驗底板上是指單片機的p0 口和p2 口,它們與fpga、d/a及ram均連接
29、在 -起(參見附錄屮實驗板原理圖),因此必須采取措施防止存系統(tǒng)運行時出現(xiàn)的總線沖突。我 們采用p3. 0 口對總線進行控制,p3. 1 口選擇d/a的通道。當(dāng)單片機初始化ram時,p3.0為 t,總線山單片機控制。fpga在與單片機p0 口及ram 的數(shù)據(jù)端相連端口為1/0 口,接收單片機的p0的數(shù)據(jù),其輸出為'高阻態(tài)fpga lj單片 機p2 口及ram的高位地址相連端口為輸出端口,其輸出為高阻態(tài);fpga與ram低8位地址 相連端口輸出經(jīng)過鎖存的單片機尋址時的低8位地址。當(dāng)p3.0為0時,fpga控制總線,此時fpga與ram低8位地址相連端口輸出相位累加 器給出的低位地址;fpg
30、a與單片機p2 口及ram的高位地址相連端口輸出相位累加器給出的 髙位地址;而ram此時的讀信號一直有效,epga在與單片機p0 口及ram的數(shù)據(jù)端的總線上 的數(shù)據(jù)就是ram中波形幅值;d/a的數(shù)據(jù)端也連接在這一總線上,此時寫信號也一直有效, 其輸出波形幅值隨這條總線匕數(shù)據(jù)變化而變化。5. 3系統(tǒng)參數(shù)設(shè)計1、相位累加器參數(shù)設(shè)定本次設(shè)計中相位累加器的位數(shù)定為19位。因為輸入頻率采用實驗底板上標準品振,頻 率為11. 0592mhz,根據(jù)任務(wù)書上最小頻率分辨率為1hz的要求,則 11. 0592mhz/(di v*2n)=1hz,其中div為將11. 0592mhz的時鐘分頻的數(shù)值,得到的頻率就是
31、相位累加器 的時鐘,n為相位累加器的位數(shù)。經(jīng)過計算,當(dāng)div二21,n二19時,11. 0592mhz/(div*2n) =1. 0045hzo這樣山于ram的地址是15位的,但是可以看作16位,就用相位累加器的 高16位作為ram的地址線,但是最高位是用作邏輯控制,實現(xiàn)半個周期的波形數(shù)據(jù)變 成完整的周期。2、將波形幅度值寫入fpga的寄存器,選擇da的a通道,然后將總線控制權(quán)交給fpga,山 fpga將幅度值寫入da。在實際的測量中發(fā)現(xiàn)當(dāng)輸出'ff'到da上時,da的輸出是5. 2 v,因此采用如下公式計算實際的幅度值:w3ve_8mp=ampx255x (5/5. 2)/5
32、0,即wave_a mp=ampx4.9o amp的值是鍵盤輸入的幅度值,范圍在0150, 01代表0. iv。3、ram的容量可以看作是64k,實際尋址時可以根據(jù)瑕高位采取適當(dāng)邏輯控制進行尋址。在我們的程序里相位累加器取19位,舍棄低3位,根據(jù)第19位的值分別用第18到第4 位的原碼或者反碼對ram進行尋址操作,當(dāng)19位為'1'時輸出反碼。由丁直接用單片機計算32768個點的正弦幅度值,涉及的多次浮點運算,初始化時間很長,為了提高效率,采取了一種簡單的方法。因為da是8位的,所以每個幅度值也是8位的,因此-共有256個不同的幅度值,rmn中存儲的是余弦函數(shù)從兀到2兀的幅度值,
33、由下式計算:amp = 127.5 + 127.5cos(k + 2 n + 0.5)/65532) n = 0,1,.32768« 將每個幅度值的個數(shù)記下。由于余弦函數(shù)的對稱性,幅度為255的點的個數(shù)和幅度為0的點的個數(shù)是 相同的,因此將幅度0到127的點的個數(shù)分別存儲到一個step128的數(shù)組中,這個數(shù)組位 于程序存儲器中。初始化余弦函數(shù)的波形的時候就町以直接根據(jù)step128向詢n中寫數(shù)據(jù)。 這一設(shè)計大大縮短了 ram空間波形數(shù)據(jù)的初始化時間。單片機產(chǎn)生正弦函數(shù)及浮點處理函數(shù)的說明附于文后,川戶可以直接調(diào)川它來初始化 ram,感興趣的用戶亦可自行設(shè)計鍛煉設(shè)計程序的能力。六、fp
34、ga系統(tǒng)的模塊設(shè)計6. 1 fpga系統(tǒng)的模塊設(shè)計流程fpga的出現(xiàn)使得人們可以借助硬件描述語言來設(shè)計和修改自己的數(shù)字系 統(tǒng)。完整的fpga的vhdl設(shè)計流程如圖6-1所示。算法設(shè)計廳為級描述行為級仿真7 rtl級描述、ril級仿真i|、門級下載網(wǎng)表'圖6-1 fpga設(shè)計流程6. 2管腳的定義根據(jù)lm6101型eda綜合實驗系統(tǒng)原理圖所示,我們將loklo的外部管腳定義如下:1、porto: 8根輸入和輸出引腳,與單片機的po 口相連,對應(yīng)到loklo的器件引腳是 porto. 7-porto. 0= (73, 72, 71, 70, 69, 67, 66, 65)。2、port2_
35、7: 1根輸入引腳,與單片機的p2.7 口相連,對應(yīng)到loklo的器件引腳是 port2_7=(6) o3、portl : 8根輸出引腳,與單片機的pl 口相連,對應(yīng)到loklo的器件引腳是 portl. 7-portl. 0= (29, 30, 35, 36, 37, 38, 39, 47)。4、ram_a14_a8: 7根輸入和輸出引腳,與ram62256的高7位地址和單片機的p2 口的p2. 6-p2. 0相連,對應(yīng)到 loklo 的器件引腳是ram a14 a8. 6-ram a14 a8. 0=(5, 3,83,81,80, 79, 78) o5、ram_a7_a0: 8根輸出引腳,
36、與ram62256的低8位地址相連,對應(yīng)到loklo的器件引腳 是 ram a7 a0. 7-ram a7 a0. 0=(18, 17, 16, 11, 10, 9, & 7)。mcu_wr, mcu_rd, muc_ale: 3根輸入引腳,分別與單片機的wr, rd, ale相連,對應(yīng)到 loklo 的器件引腳是 mcu_wr=(2), mcu_rd= (44), mcu_ale=(84)。7、bus_ctrl, mcu_sel_da: 2根輸入引腳,分別與單片機的p3. 0, p3. 1 口相連,對應(yīng)到loklo的器件引腳是 bus_ctr 1=(48), mcu_sel_da=(
37、49)。8、ram_wr, ram _rd: 2根輸出引腳,分別與ram的wr, rd相連,對應(yīng)到loklo的器件引腳 是 ram_wr=(62), ram_rd= (54)。9、da_wr, da.sel: 2根輸出引腳,分別與da的wr, daca/b相連,對應(yīng)到loklo的器件引 腳是 da_wr= (58), da_sel= (60)。10、segnum: 4根輸出引腳,與數(shù)碼管顯示數(shù)據(jù)端口相連,対應(yīng)到10r10的器件引腳是 segnum. 3-segnum. 0二(23, 22, 21, 19)。11> segport: 3根輸出引腳,與數(shù)碼管選擇端口相連,對應(yīng)到loklo的器
38、件引腳是 segport. 2-segport. 0=(27, 25, 24)。12、elk: 1根輸出引腳,與實驗板上的clkl相連,對應(yīng)到loklo的器件引腳是elk二。 整個dds模塊與外部的引腳關(guān)系如下圖所示圖6-2 dds模塊引腳圖6. 3各模塊介紹整個系統(tǒng)分為分頻模塊,鎖存單片機低位地址模塊,單片機寫fpga內(nèi)寄存器模塊,相位累 加器模塊,數(shù)碼管扌i描顯示模塊。下血詳細介紹各個模塊:1. 分頻模塊將輸入的吋鐘頻率進行分頻,根據(jù)系統(tǒng)方案中的計算,實驗板上的clkl設(shè)定為 11.06mhz,將其進行21分頻得到相位累加器的時鐘phaseclk,頻率為526. 7khz;將mhz 的時鐘
39、50分頻得到數(shù)碼管掃描時鐘segclk,頻率為20khz。2. 鎖存單片機低位地址模塊將單片機寫操作時的低位地址進行鎖存。在單片機中的p0 口是地址數(shù)據(jù)復(fù)用口,在讀寫 操作時需要有一個8位的地址鎖存器根據(jù)ale信號進行鎖存操作,這個模塊就是實現(xiàn)這一功 能的。mcu.ale觸發(fā)該進程,當(dāng)mcu_ale為下降沿時將porto引腳的數(shù)據(jù)送到寄存器 low addresso3. 單片機寫fpga內(nèi)寄存器模塊8051系列單片機的尋址范圍是2",因此根據(jù)系統(tǒng)方案中地址的分配,把波形參數(shù)以及顯 示數(shù)據(jù)寫入fpga內(nèi)各個寄存器。mcu_wr觸發(fā)該進程,當(dāng)mcu_wr為下降沿時,如果port2_7 和
40、bus_ctrl i5p為1' , low_addrcss的低3位地址進行寫入操作,也就是地址為8000h, 時,porto引腳上的數(shù)據(jù)給m0寄存器,m0存儲顯示數(shù)據(jù)的高位,以此類推'8007h,時porto 引腳上的數(shù)據(jù)給n)7。4. 相位累加器模塊這是整個dds系統(tǒng)的核心,由phaseclk或者bus_ctrl觸發(fā)。觸發(fā)后,如果bus_ctrl 為t' , phase_add賦值'o' , phase_add是一個19位的加法器的輸出;否則在phaseclk的 上升沿,進彳了 phase_add=phase_add+dphase的加法操作。5. 數(shù)碼
41、管掃描顯示模塊由segclk觸發(fā),在segclk的上升沿,信號ssegport進行累加操作,當(dāng)達到100'時就 賦值'000, o segport的輸出值就是ssegport,這樣在segclk的上升沿segport輪流掃描5 個數(shù)碼管。程序屮的這一進程還包含一個case語句,根據(jù)ssegport的值將m0到m4屮的值分別送 到segnum引腳上。5.其他信號處理portl引腳始終置為高阻態(tài),確保單片機pl 口上的鍵盤電路不受影響。porto引腳在單片機要改變da的b通道的值(幅度調(diào)節(jié)),即輸入引腳mcu_sel_da二'1' 時,輸岀017,即經(jīng)過換算的幅度值
42、數(shù)據(jù);其他時候始終置為高阻態(tài)。ram_rd信號在總線控制權(quán)由fpga掌握而且da的通道為a,即bus_ctrl= 0,和 mcu_sel_da=,0'時,輸出0',即ram保持在讀狀態(tài);其他時候始終與單片機的rd信號相連, 即輸iti mcu_rd的值。ram_wr信號在總線控制權(quán)由fpga掌握,即bus_ctrl=,0'時,輸出1',即ram寫禁止; 其他時候始終與單片機的rd信號相連,即輸hl mcu_wr的值。da_wr信號在總線控制權(quán)由fpga掌握,即bus_ctrl=0,時,輸出0',即一直寫da:其 他時候始終輸出1',即i)八寫禁止
43、。da_sel信號一直輸出mcu_sel_da的值,mcu_sel_da與單片機的p3. 1 口控制,0,代表 選擇a通道。ram_a7_a0在總線控制權(quán)由fpga掌握而h phase_add的第19位為'0'時,將 phase_add的第11到4位賦給ram_a7_a0;在總線控制權(quán)由fpga掌握而且 phase_add的第19位為t時,將phase_add的第11到4位的反碼賦給 ram_a7_a0;具它時候輸出low_address的值。ram_a14_a8在總線控制權(quán)tl fpga掌握1何且phase_add的第19位為'0'時 將phase_add 的
44、第18到12位賦給ram a14_a8;在總線控制權(quán)由fpga掌握而且phase_add的第19位 為v時,將phase.add的第18到12位的反碼賦給ram_ a14_a8;其它時候輸出為高阻 態(tài)。i*-clkmcu_aleo 0juumrnuwmcu_wr1iii1> buscrl1mcu-seljla0ur1 porloh00jm88 xx06f 30 x00* port2_70juramauash0000ramwr1ram_rdx:-<> da_wr1ida_sel0乙ram_a1z_a8hzzzzjl00x06xocx12i9lz ram_a7_adh00
45、6;°x05(06 x00x11x22x331p m5h0000 x88dz m6hdo00z3(30oz phaseaddhoodoo00000x03008dc06110k09198 j七、單片機程序設(shè)計單片機程序的調(diào)試環(huán)境是前文所述lca51 (windows9x版),編譯器采用keic51。7. 1單片機程序流程圖開始72子程序說明首先定義數(shù)碼管顯示寄存器的地址,相位累加值寄存器的地址,波形幅度寄存器的地址, bus.ctrl和sel_da的口地址。主程序在初始化后,進入鍵盤掃描循環(huán)中。下面詳細介紹各 個子程序的功能。1.delayo用來產(chǎn)牛延遲,消除鍵盤抖動。2 seanke
46、y。對在pl 口上的4x"的鍵盤進行掃描,返冋按鍵值。按鍵值的定義和實驗板上的定義相 同,從0'到,f'。3. wri te wave ampo將波形幅度值寫入fpga的寄存器,選擇da的b通道,然后將總線控制權(quán)交給fpga, 由fpga將幅度值寫入da。在實際的測量中發(fā)現(xiàn)當(dāng)輸出下“到da上時,da的輸出是5. 2v, 因此采川如下公式計算實際的幅度值:wave_amp=ampx255x (5/5. 2)/50o amp的值是鍵 盤輸入的幅度值,范圍在0150, 01代表0. lvo4. write_scg。將輸入的頻率值進行處理,得到各個數(shù)碼管的顯示值,然后寫入fp
47、ga的顯示寄存器中。5. init_ramo根據(jù)輸入的波形類型及占空比初始化ram空間。vave_type二0時,表示正弦波。由于xl接用單片機計算32768個點的正弦幅度值,涉及 的多次浮點運算,初始化時間很長,為了提高效率,采取了一種簡單的方法。因為da是 8位的,所以每個幅度值也是8位的,因此一共有256個不同的幅度值,sn中存儲的是 余弦函數(shù)從 兀至ij 2 n 的幅度值,山下式計算:amp = 127.5 + 127.5cos(兀 + 2兀(口 + 0.5)/65532) n = 0,1,.32768。將每個幅度值的個 數(shù)記下。由于余弦函數(shù)的對稱性,幅度為255的點的個數(shù)和幅度為0的
48、點的個數(shù)是相同的, 因此將幅度0到127的點的個數(shù)分別存儲到一個step128的數(shù)組中,這個數(shù)組位于程序 存儲器中。初始化余弦函數(shù)的波形的時候就可以直接根據(jù)step128向mm中寫數(shù)據(jù)。這 一設(shè)計人人縮短了 ram空i'可波形數(shù)據(jù)的初始化時間。wave_type=l時,表示三角波。wave_type=2時,表示方波,這是需要根據(jù)占空比的值初始化mm。6. wri tedphaseo山于fpga中的相位累加器的時鐘是526. 7khz, ram的空間可以認為是65532,而相位 累加器的低3位被舍棄,用高16位對ram尋址,因此頻率分辨率可以達到526. 7 x 1000hz/ (8 x
49、 65536) = 1. 0045hz,滿足指標要求。實際計算相位累加值的時候,令 delta二1/1.0045 = 0. 9955 ,這樣對應(yīng)于每個頻率的相位累加值計算如下: dphase=freq*deltao取整后送到fpga中的相位累加值寄存器。7. wave out0完成顯示當(dāng)前的頻率,將總線控制權(quán)交給fpga的工作。8. main。首先進行初始化操作,輸出loooiiz,幅度為5v的正弦波。然后進行鍵盤掃描,對輸 入的鍵值進行操作。合法的鍵盤輸入只有5利-1) 5個數(shù)字鍵加'a,鍵,用來設(shè)定頻率。如設(shè)定500hz的頻率,按鍵次序是'00500a'。當(dāng)設(shè)定頻率
50、超過20000hz,認為無效,不改變原先的頻率。2) 2個數(shù)字鍵加'"鍵,用來設(shè)定信號幅度。如設(shè)定2. 4v的峰峰值,按鍵次序 是'24b' o當(dāng)設(shè)定幅度超過5v,認為無效,不改變原先的幅度。3) 1個數(shù)字鍵加'鍵,用來設(shè)定輸岀信號類型。0、1、2分別指止弦波、三角 波、方波。其他數(shù)字認為無效。4) 1個數(shù)字鍵加d'鍵,川來設(shè)定方波的占空比。如設(shè)定20%的占空比,按鍵次 序是2d,o5) 任何時候輸入'鍵,都表示清除前面的所有輸入,回到原來的狀態(tài)。注:不符合上述的按鍵次序都認為是非法的,系統(tǒng)保持原來的輸出狀態(tài),數(shù)碼管的 顯示也回到原來的
51、狀態(tài)。7. 3程序燒錄單片機程序在經(jīng)過aedk51w單片機仿真器仿真調(diào)試后,系統(tǒng)工作i上常,需要將編譯生 成的dds. hex文件燒錄至89c51中的4k容量的e2prom中。燒錄工具采用xeltek公司的 superpr0/l串口編程器。燒錄成功后,將89c51代替仿真器的仿真頭插入系統(tǒng),系統(tǒng)工作 正常。附錄1浮點子程序設(shè)計在這里,我們用三字節(jié)來表示一個浮點數(shù)。浮點數(shù)由尾數(shù)和階碼兩部分組成。在此我 們用ro,r1,r2存放一個浮點數(shù)。在ro,r1中存放的是尾數(shù),r2中為階碼。尾數(shù)和階碼的格 式有用原碼和補碼兩種不同的表示方式,在此我們采用尾數(shù)和階碼都山補碼表示。下而是浮點數(shù)表示的格式:d7d
52、0d7dod7d0數(shù)階/尾數(shù)階碼舉個例子:比如要表示十進制數(shù)10,要將其表示出來,首先先將其表示為二進制數(shù) 1010b (注意計算機只能完成二進制的運算,在此采用b表示二進制),再將其歸一化表示為 0. 1010bx2j00b,將其分離出尾數(shù)和階碼,可見尾數(shù)為正的0. 1010b,即r0=01010000b, rl=0b,階碼為100b,即r2=100b;再比如表示十進制-10,表示為一0. 1010bx2"100b,尾 數(shù)表示為負的 0. 1010,用補碼表示,r0=10110000b, rl=0b, r3=100b<>為了進行浮點數(shù)的處理,我們在此介紹一些基本概念:規(guī)
53、格化:非零二進制浮點數(shù)表示為t*2"p,其中t為尾數(shù),p為階碼。若t滿足 0. 5<=|t|<1,則稱該浮點數(shù)為規(guī)格化浮點數(shù)。對階:對階實質(zhì)上是將相加的兩個數(shù)的小數(shù)點位置對齊,亦即小階向大階看齊;小階 浮點數(shù)的尾數(shù)算術(shù)右移-位,階增一,直到小階增到與大階相等為止,這一過程稱為對階, 對階之后,兩尾數(shù)就可相加。而兩數(shù)相減時,將減去減數(shù)改為加上其補碼,再對階相加。溢出:運算結(jié)果超曲數(shù)的表示范圍。溢出可巾累加器最高兩位上產(chǎn)牛的進、借位情況。 浮點子程序處理流程:浮點加法流程浮點乘法流程圖浮點數(shù)轉(zhuǎn)化為定點數(shù)流程圖附錄2子程序接口說明下血是本次程序采用的浮點數(shù)表示的格式:數(shù)d7do
54、 d7do d7小數(shù)點尾數(shù)階do階碼浮點采用按圖示約定順序的三個寄存器r訂ri2 ri3(il,i2和i3表示不同的數(shù)字)表示。 浮點減法子程序fpsub入口: r0rlr2, r3r4r5 出口: r3r4r5算法:對減數(shù)求補轉(zhuǎn)化為加法浮點加法子程序fpadd入口: r0rlr2,r3r4r5 出口: r3r4r5算法:兩數(shù)相加,首先對階。如果產(chǎn)生溢出(包括階差大于16),取大數(shù)為和。否則尾 數(shù)對階相加調(diào)整。詳見流程圖。占用資源:弘b,0區(qū)的各寄存器浮點數(shù)乘法子程序fpmul入口 :r0rlr2, r3r4ro出口: r3r4r5算法:兩數(shù)相乘,階碼相加,尾數(shù)相乘,結(jié)果調(diào)整。詳見流程圖。占用資源:a,b,0區(qū)的各寄存器,2區(qū)的r(fr5,可尋址位7fh計算正弦子程序sin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個體戶拆伙轉(zhuǎn)讓合同范本
- 公司合同評定管理制度
- 股權(quán)激勵計劃實施與調(diào)整合同
- 旅游酒店行業(yè)雇傭經(jīng)理合同范本
- 房地產(chǎn)項目股權(quán)轉(zhuǎn)讓與后期物業(yè)管理合同
- 高級管理人員專項雇傭合同協(xié)議
- 股權(quán)質(zhì)押借款與知識產(chǎn)權(quán)質(zhì)押貸款結(jié)合合同
- 能源資源開發(fā)公司股權(quán)交易合作協(xié)議書
- 私密股份交易合同
- 互聯(lián)網(wǎng)健康股東合作協(xié)議書典范
- 直播電商基礎(chǔ)試題及答案
- 人工智能在醫(yī)療領(lǐng)域應(yīng)用知識測試卷及答案
- 《實驗室認可培訓(xùn)》課件
- 機柜租賃合同協(xié)議
- 2025年2月22日四川省公務(wù)員面試真題及答案解析(行政執(zhí)法崗)
- 造價項目時效管理制度
- 乳腺癌診治指南與規(guī)范(2025年版)解讀
- 腰痛中醫(yī)護理常規(guī)
- 腹腔鏡手術(shù)術(shù)后腹脹護理
- 泥水平衡-沉井-頂管及沉井施工方案
- 影視剪輯直播測試題及答案
評論
0/150
提交評論