<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

基于CPLD的數據采集與顯示接口電路仿真設計

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

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

本文引用地址:http://dyxdggzs.com/article/191769.htm

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

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


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

DIY機械鍵盤(pán)相關(guān)社區:機械鍵盤(pán)DIY




關(guān)鍵詞: CPLD 數據采集 電路 仿真設計

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>