<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于CPLD的數(shù)據(jù)采集與顯示接口電路仿真設(shè)計

          基于CPLD的數(shù)據(jù)采集與顯示接口電路仿真設(shè)計

          作者: 時間:2010-03-18 來源:網(wǎng)絡(luò) 收藏

          系統(tǒng)工作過程如下:ALE為地址鎖存使能信號,當(dāng)下降沿來時,將P0口將低8位地址送入可編程芯片/FPGA中的地址鎖存器,然后在P2口和P0口形成的16位地址及WR信號共同作用下,將P0口的數(shù)據(jù)送入可編程芯片。單片機通過兩條指令MOVXDPTR@ ADDR和MOVX @DPTR A將數(shù)據(jù)寫入芯片。在P2口和P0口形成的16位地址及RD信號共同作用下,將AD0809轉(zhuǎn)換后數(shù)據(jù)data送入單片機的P0口。單片機通過兩條指令 MOVX DPTR @ADDR和MOVXA@ DPTR將數(shù)據(jù)讀入P0口。設(shè)置A/D轉(zhuǎn)換器件片選信號ad_e和DA轉(zhuǎn)換器件片選信號da_e,設(shè)置數(shù)據(jù)輸入/輸出口data[7..0]。單片機與FPGA通信接口程序(名為MCS51)通過編譯后,生成的邏輯符號如圖2所示。

          本文引用地址:http://www.ex-cimer.com/article/191769.htm

          使用EPM7128時鐘為16 MHz有源晶振,首先使用CLK對復(fù)位信號采樣,8051的復(fù)位信號要求是高電平維持2個機器周期,2個機器周期就是2×12=24個振蕩周期,對復(fù)位信號連續(xù)采樣10次,若是一直為高電平,就產(chǎn)生片內(nèi)復(fù)位使能信號。其他片內(nèi)寄存器以這個復(fù)位信號做同步復(fù)位,對WR.RD,ALE都做了采樣,避免毛刺干擾。
          1.3 AD0809與/FPGA狀態(tài)機接口設(shè)計
          1.3.1 AD0809狀態(tài)機功能設(shè)計
          狀態(tài)機的最簡結(jié)構(gòu)一般由兩個進程構(gòu)成,即主控時序進程和主控組合進程。一個進程描述時序邏輯輸出,另一個進程描述組合邏輯包括進程問狀態(tài)值的傳遞邏輯以及狀態(tài)轉(zhuǎn)換值的輸出。將AD0809與CPLD/FPGA的接口設(shè)計系統(tǒng)劃分為兩部分,即數(shù)據(jù)單元和控制單元。數(shù)據(jù)單元包括保存運算數(shù)據(jù)和運算結(jié)果的數(shù)據(jù)寄存器,也包括完成數(shù)據(jù)運算的組合邏輯??刂茊卧脕懋a(chǎn)生信號序列,以決定何時進行何種數(shù)據(jù)運算,控制單元要從數(shù)據(jù)單元得到條件信號,以決定繼續(xù)進行那些數(shù)據(jù)運算。數(shù)據(jù)單元要產(chǎn)生輸出信號、數(shù)據(jù)運算狀態(tài)等有用信號。數(shù)據(jù)單元和控制單元中,有兩個非常重要的信號,即復(fù)位信號和時鐘信號。復(fù)位信號保證了系統(tǒng)初始狀態(tài)的確定性,時鐘信號則是時序系統(tǒng)工作的必要條件。狀態(tài)機通常在復(fù)位信號到來的時候恢復(fù)到初始狀態(tài),每個時鐘到來的時候內(nèi)部狀態(tài)發(fā)生變化。從AD0809的初始狀態(tài)開始,也就是狀態(tài)機復(fù)位以后開始的狀態(tài)。在建立每個狀態(tài)時都寫出關(guān)于這個狀態(tài)的文字功能描述,AD0809狀態(tài)機功能描述與相應(yīng)引腳的取值如下:

          1. 3.2 ADC0809狀態(tài)機程序設(shè)計
          ADC0809為單極性輸入,8位轉(zhuǎn)換精度逐次逼進式A/D轉(zhuǎn)換器。其采樣速度為每次轉(zhuǎn)換約100μs。在轉(zhuǎn)換開始前由地址鎖存允許信號ALE將3位地址鎖入鎖存器中以確定轉(zhuǎn)換信號通道。EOC為轉(zhuǎn)換結(jié)束狀態(tài)信號,由低電平轉(zhuǎn)為高電平時指示轉(zhuǎn)換結(jié)束,此時可讀人轉(zhuǎn)換好的8位數(shù)據(jù)。EOC在低電平時指示正在進行轉(zhuǎn)換。START為轉(zhuǎn)換啟動信號,上升沿啟動。OE為數(shù)據(jù)輸出允許高電平有效。CLK為ADC轉(zhuǎn)換時鐘輸入端口500 kHz左右。為了達到A/D器件的最高轉(zhuǎn)換速度,A/D轉(zhuǎn)換控制器必須包含監(jiān)測EOC信號的邏輯,一旦EOC從低電平變?yōu)楦唠娖郊纯蓪E置為高電平,然后傳送或顯示已轉(zhuǎn)換好的數(shù)據(jù)[DO..D7]。狀態(tài)機由三個進程組成ADC,AD_STATE和DATA_LOCK。ADC是此狀態(tài)機的主控組合邏輯進程,確定狀態(tài)的轉(zhuǎn)換方式和反饋控制信號的輸出工作過程中首先監(jiān)測系統(tǒng)復(fù)位信號RST,當(dāng)其為高電平時使此進程復(fù)位至初始態(tài)ST0。啟動A/D轉(zhuǎn)換信號START在狀態(tài)ST3搜索轉(zhuǎn)換狀態(tài)信號EOC由0變1時即在狀態(tài)ST4開啟輸出。使能信號OE在下一狀態(tài)使LOCK產(chǎn)生一個上跳沿從而在此時啟動進程DATA_LOCK將由0809轉(zhuǎn)換好的8位數(shù)據(jù)鎖進鎖存器ADC_DATA。根據(jù)時序圖通過狀態(tài)機設(shè)計程序完成與CPLD/FPGA芯片的連接。圖3為狀態(tài)機程序仿真結(jié)果。


          1.4 BCD碼轉(zhuǎn)換與顯示設(shè)計
          當(dāng)ADC0809的基準(zhǔn)電壓(Vref)為5.12V時,最小電壓準(zhǔn)位是5.12/28=O.2V。分析模擬輸入電壓與輸出電壓的對應(yīng)關(guān)系可知,當(dāng)ADC0809的D[7..0]收到的數(shù)據(jù)信號為10000110(即86H)時,則高4位1000為2.56V,而低4位0110為O.12V,所以最后的電壓輸出結(jié)果是2.68V。為了方便后續(xù)的電壓數(shù)據(jù)顯示,在此將輸出電壓表示成12位的BCD碼形式。將高4位數(shù)據(jù)D(7..4)轉(zhuǎn)換為對應(yīng)的高12位BCD碼H(11..0);將低4位數(shù)據(jù)D(3..0)轉(zhuǎn)換為對應(yīng)的低12位BCD碼L(11..O)。在程序中首先用VHDL語言描述一個新的進程Process(regl),然后采用case…when …語句,生成并行結(jié)構(gòu)的電路。

          DIY機械鍵盤相關(guān)社區(qū):機械鍵盤DIY




          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();