新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CPLD的數(shù)據(jù)采集與顯示接口設(shè)計(jì)及實(shí)現(xiàn)

基于CPLD的數(shù)據(jù)采集與顯示接口設(shè)計(jì)及實(shí)現(xiàn)

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

  0 引 言

本文引用地址:http://m.butianyuan.cn/article/248873.htm

  稱為復(fù)雜可編程邏輯設(shè)計(jì)芯片,它是大規(guī)模可編程器件,具有高集成度、高可靠性、高速度的特點(diǎn)。是利用EDA技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的載體。硬件描述語言是EDA技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的主要表達(dá)手段,VHDL語言是常用的硬件描述語言之一;軟件開發(fā)工具是利用EDA技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的智能化的自動(dòng)化設(shè)計(jì)工具,常用開發(fā)工具有QuartusII,Ispexpert,F(xiàn)oundation等。以高速、高可靠性、串并行工作方式等特點(diǎn)在電子設(shè)計(jì)中廣泛應(yīng)用。它打破了軟硬件之間的界限,加速了產(chǎn)品的開發(fā)過程。同樣單片機(jī)具有性價(jià)比高、功能靈活、良好的數(shù)據(jù)處理能力等特點(diǎn)。 CPLD芯片與單片機(jī)結(jié)合在高性能儀器儀表中應(yīng)用廣泛。

  1 電路的仿真設(shè)計(jì)

  1.1 硬件電路功能

  用一片芯片、一片CPLD/FPGA芯片、模/數(shù)轉(zhuǎn)換器ADC0809和數(shù)/模轉(zhuǎn)換器DAC0832構(gòu)成一個(gè)系統(tǒng),并用CPLD/FPGA實(shí)現(xiàn)數(shù)據(jù)采樣、D/A轉(zhuǎn)換輸出、有關(guān)數(shù)據(jù)顯示的控制,單片機(jī)完成對(duì)A/D轉(zhuǎn)換數(shù)據(jù)運(yùn)算。電路如圖1所示。

  

 

  系統(tǒng)功能如下:系統(tǒng)按一定速率采集輸入電壓Ui,經(jīng)AD0809轉(zhuǎn)換為8位數(shù)字量data;輸入數(shù)據(jù)與通過CPLD/FPGA采樣后輸入單片機(jī)進(jìn)行相關(guān)運(yùn)算,最后通過CPLD/FPGA送至DAC0832轉(zhuǎn)換為△U;和處理均在系統(tǒng)控制器的管理下有序進(jìn)行。工作速率由時(shí)鐘信號(hào) CLK的速率決定。

  1.2 單片機(jī)與CPLD/FPGA接口設(shè)計(jì)

  單片機(jī)采用以總線方式與可編程芯片進(jìn)行數(shù)據(jù)與控制信息通信,此方式有許多優(yōu)點(diǎn):

  (1)速度快。其通信工作時(shí)序是純硬件行為,對(duì)于單片機(jī)只需一條單字節(jié)指令就能完成所需的讀/寫時(shí)序如MOV@DPTR A和MOVA@DPTR。

  (2)節(jié)省CPLD芯片的I/O口線。如果將圖中的譯碼器設(shè)置足夠的譯碼輸出以及安排足夠的鎖存器就能僅通過19根I/O口線在FPGA/CPLD與單片機(jī)之間進(jìn)行各種類型的數(shù)據(jù)與控制信息交換。

  (3)相對(duì)于非總線方式單片機(jī)的編程簡(jiǎn)捷控制可靠。

  (4)在FPGA/CPLD中通過邏輯切換單片機(jī)易于與SRAM或ROM接口。這種方式首先由FPGA/CPLD與接口的高速A/D等器件進(jìn)行高速數(shù)據(jù)采樣并將數(shù)據(jù)暫存于SRAM中。采樣結(jié)束后通過切換使單片機(jī)與SRAM以總線方式進(jìn)行數(shù)據(jù)通信以便發(fā)揮單片機(jī)強(qiáng)大的數(shù)據(jù)處理能力。

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

  

 

  CPLD使用EPM7128時(shí)鐘為16 MHz有源晶振,首先使用CLK對(duì)復(fù)位信號(hào)采樣,8051的復(fù)位信號(hào)要求是高電平維持2個(gè)機(jī)器周期,2個(gè)機(jī)器周期就是2×12=24個(gè)振蕩周期,對(duì)復(fù)位信號(hào)連續(xù)采樣10次,若是一直為高電平,就產(chǎn)生片內(nèi)復(fù)位使能信號(hào)。其他片內(nèi)寄存器以這個(gè)復(fù)位信號(hào)做同步復(fù)位,對(duì)WR.RD,ALE都做了采樣,避免毛刺干擾。

  1.3 AD0809與CPLD/FPGA狀態(tài)機(jī)接口設(shè)計(jì)

  1.3.1 AD0809狀態(tài)機(jī)功能設(shè)計(jì)

  狀態(tài)機(jī)的最簡(jiǎn)結(jié)構(gòu)一般由兩個(gè)進(jìn)程構(gòu)成,即主控時(shí)序進(jìn)程和主控組合進(jìn)程。一個(gè)進(jìn)程描述時(shí)序邏輯輸出,另一個(gè)進(jìn)程描述組合邏輯包括進(jìn)程問狀態(tài)值的傳遞邏輯以及狀態(tài)轉(zhuǎn)換值的輸出。將AD0809與CPLD/FPGA的接口設(shè)計(jì)系統(tǒng)劃分為兩部分,即數(shù)據(jù)單元和控制單元。數(shù)據(jù)單元包括保存運(yùn)算數(shù)據(jù)和運(yùn)算結(jié)果的數(shù)據(jù)寄存器,也包括完成數(shù)據(jù)運(yùn)算的組合邏輯電路??刂茊卧脕懋a(chǎn)生信號(hào)序列,以決定何時(shí)進(jìn)行何種數(shù)據(jù)運(yùn)算,控制單元要從數(shù)據(jù)單元得到條件信號(hào),以決定繼續(xù)進(jìn)行那些數(shù)據(jù)運(yùn)算。數(shù)據(jù)單元要產(chǎn)生輸出信號(hào)、數(shù)據(jù)運(yùn)算狀態(tài)等有用信號(hào)。數(shù)據(jù)單元和控制單元中,有兩個(gè)非常重要的信號(hào),即復(fù)位信號(hào)和時(shí)鐘信號(hào)。復(fù)位信號(hào)保證了系統(tǒng)初始狀態(tài)的確定性,時(shí)鐘信號(hào)則是時(shí)序系統(tǒng)工作的必要條件。狀態(tài)機(jī)通常在復(fù)位信號(hào)到來的時(shí)候恢復(fù)到初始狀態(tài),每個(gè)時(shí)鐘到來的時(shí)候內(nèi)部狀態(tài)發(fā)生變化。從AD0809的初始狀態(tài)開始,也就是狀態(tài)機(jī)復(fù)位以后開始的狀態(tài)。在建立每個(gè)狀態(tài)時(shí)都寫出關(guān)于這個(gè)狀態(tài)的文字功能描述,AD0809狀態(tài)機(jī)功能描述與相應(yīng)引腳的取值如下:

  

fpga相關(guān)文章:fpga是什么


51單片機(jī)相關(guān)文章:51單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理


晶振相關(guān)文章:晶振原理

上一頁 1 2 下一頁

關(guān)鍵詞: CPLD MCS-51 數(shù)據(jù)采集

評(píng)論


相關(guān)推薦

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

關(guān)閉