<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í)間:2004-12-08 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:采用VHDL語(yǔ)言設計,用控制模/數轉換電路,完成模擬輸入的高速同步數/模轉,具有容錯和自檢能力。與處理之間采用并行接口,具有很好的移植性、可靠性。

關(guān)鍵詞:VHDL 高速同步數/模轉換 容錯和自檢 并行接口 移植性

引言

CPLD(Complex Programmable Logic Device,復雜可編程邏輯器件)是在傳統的PAL、GAL基礎上發(fā)展而來(lái)的,具有多種工作方式和高集成、高速、高可靠性等明顯的特點(diǎn),在超高速領(lǐng)域和實(shí)時(shí)測控方面有非常廣泛的應用。與FPGA相比,CPLD比較適合計算機總線(xiàn)控制、地址譯碼、復雜狀態(tài)機、定時(shí)/計數器、存儲控制器等I/O密集型應用,且無(wú)須外部配置ROM、時(shí)延可預測等。目前的CPLD普遍基于E2PROM和Flash電可擦技術(shù),可實(shí)現100次以上擦寫(xiě)循環(huán)。部分CPLD支持ISP編程或者配置有JTAG口,對于批量小、品種多的模板開(kāi)發(fā)極為有利。而用VHDL設計的程序,借助EDA工具可以行為仿真、功能仿真和時(shí)序仿真,最后通過(guò)綜合工具產(chǎn)生網(wǎng)表,下載到目標器件,從而生成硬件電路。

1 設計原理及框圖

以Altera公司7000S系列CPLD產(chǎn)品之一EPM7128S-10為控制核心,控制模/數轉換電路,最多可完成32路模擬數據的16位高速同步A/D轉換。

圖1為與A/D轉換電路相關(guān)的外圍電路框圖。外部32路模擬輸入通過(guò)調理電路后,CPLD控制切換器選通某一路信號送入A/D轉換器(AD676)進(jìn)行A/D轉換,轉換結果經(jīng)過(guò)數據緩沖在合適的時(shí)候通過(guò)總線(xiàn)被讀入處理器。一般的設計思路如下:①主處理器直接控制A/D轉換電路,完成模擬輸入信號的采集保持、A/D轉換器的控制、通道的切換、數據的讀取以及控制注入信號完成模擬通道的自檢等。這種解決方案占用主處理器大量的I/O資源和處理時(shí)間,在高速采集與大計算量的時(shí)實(shí)中是不可取的:一方面因為處理器的I/O資源極其有限,同時(shí)又要求大量的匯編軟件配合,不利于設計的移植;另一方面由于頻繁地執行I/O操作完成相對定時(shí)關(guān)系,來(lái)實(shí)現高速數據采集,不利于系統調度軟件的設計的其它軟件模塊的時(shí)實(shí)執行,由于此段I/O操作類(lèi)似于原子操作,很難解決其它模塊響應時(shí)間可能較長(cháng)的矛盾。②采用其它廉價(jià)的從處理器,如MCS-51單片機來(lái)控制上述過(guò)程,使之與主處理器并行化。但此時(shí)從處理器與主處理器之間的高速數據實(shí)時(shí)交換就成為瓶頸,而且由于MCS-51單片機亦為軟件化流程控制,存在跑飛的可能,兩處理器的同步又成為新的問(wèn)題。應用CPLD器件就可以很好地解決上述矛盾,實(shí)現配置隨意可改寫(xiě)和高速硬件流控制等。隨著(zhù)ISP器件的發(fā)展,CPLD已經(jīng)日益廣泛地應用到高速數據采集系統中,但都是很考慮設計本身的容錯、自檢能力和使用的靈活性,不利于故障的定位和嵌入式應用的移植。本設計中采用CPLD作為A/D轉換電路的控制器,和主處理器并行交互數據,很好地解決了上述矛盾。

為突出重點(diǎn),EPM7128S、AD676、LF398等器件的簡(jiǎn)介此處不作介紹,僅列出AD676的控制時(shí)序,如圖2所示。

圖2

模擬信號的同步采樣一般有兩種實(shí)現方法:一種為多個(gè)A/D轉換器同時(shí)進(jìn)行轉換;另一種為僅有一個(gè)A/D轉換器,各通道同時(shí)采樣,然后分時(shí)轉換??紤]到16位高速A/D轉換器AD676的價(jià)格因素,采用后一種方案。AD676有三個(gè)控制信號:SAMPLE、AD-CLK、CAL。它們需要一定的時(shí)序配合才能正常工作,如圖2所示。由于A(yíng)D676的轉換結果不具備三態(tài)輸出功能,所以需增加74F574和總線(xiàn)進(jìn)行隔離,為此配置控制信號WRAD、RDAD;同時(shí)要考慮到32路模擬信號的采樣保持控制S/H、多路切換器的控制信號M1A4~M1A0,以及輸入模擬信號選擇M0A1~M1A0、數據準備好信號INT1等共14個(gè)。CPLD和處理器采用并行接口,因此其輸入信號有:系統復位信號RST、處理器的讀/寫(xiě)信號RD/WR、片選信號IOSTROBE、外部時(shí)鐘輸入CLK、輔助地址信號A20~A17和A5~A0、AD676的反饋輸入BUSY,共22個(gè)輸入。外加雙向數據總線(xiàn)D07~D00。設計中沒(méi)有將總線(xiàn)隔離器74F574集成到CPLD中,主要考慮到保留適當的I/O等資源用于系統的地址譯碼和其它輔助功能。地址譯碼等輔助模塊比較簡(jiǎn)單且與特定的處理器相關(guān),故此處不作介紹。

雖然有復位默認值,但CPLD為靈活控制多路模擬量的同步A/D轉換,要求處理器正確設置兩個(gè)控制參數,即進(jìn)行數/模轉換的模擬量通道的總個(gè)數SUM和數/模轉換的初始通道號chan;然后再對CPLD寫(xiě)入啟動(dòng)A/D轉換命令,這樣CPLD即可脫離處理器,控制A/D轉換電路。CPLD首先按照LF398的時(shí)序要求產(chǎn)生其所需的采樣保持信號S/H完成32路模擬量的同步采樣,然后按照圖2所示的通常轉換時(shí)序控制AD676去完成一次轉換。一旦該次轉換完成,使能WRAD信號,鎖存轉換結果到74F574,并發(fā)出數據準備好信號INT1,同時(shí)標識內部狀態(tài)信號,作為中斷請求通知處理器,或者供處理器查詢(xún)狀態(tài)。CPLD將一直等待處理器將該次轉換結果取走才取消此標示信號。在CPLD等待的過(guò)程中,處理器亦可命令CPLD提前結束轉換,以適應不同的應用要求。轉換結果取走后,CPLD清除內部的標識信號和數據準備好信號,SUM的映像減1,若不為0,chan的映像加1,輸出到M1A[4..0]去切換至下一通道,繼續按照圖2所示的通常轉換時(shí)序工作;若為0,則該次采樣轉換完成,等待處理器的下一次啟動(dòng)信號。這樣,只占用了處理器的一個(gè)中斷請求資源和少數外部空間,就實(shí)現了最多至32路模擬信號的同步高速數模轉換。為使設計具有一定的容錯功能,在A(yíng)/D轉換器空閑時(shí),處理器才可以啟動(dòng)A/D自校準測試,但此時(shí)CPLD應該防止處理器誤啟動(dòng)A/D轉換。當A/D轉換器空閑或者A/D自校準已經(jīng)結束時(shí),處理器才可以進(jìn)行A/D轉換工作。同樣,此時(shí)CPLD應該防止處理器誤啟動(dòng)A/D自校準。為使CPLD能支持處理器的檢錯功能3,應該使CPLD以及A/D轉換器的狀態(tài)信息可以被處理器隨時(shí)讀取,以便在系統級上定位故障。同時(shí),CPLD可以選擇調理電路的模擬輸入信號源,便于處理器檢測調理電路。

圖3

為達到以上的功能,在設計中主要設置了四大功能模塊,分別為時(shí)鐘分頻模塊、控制譯碼模塊、總線(xiàn)接口模塊、狀態(tài)機模塊,設計原理如釁3所示。時(shí)鐘分頻模塊用于產(chǎn)生AD767的轉換時(shí)鐘。為簡(jiǎn)化設計,達到高速和簡(jiǎn)化的目的,此模塊的分頻系數由設計固化??刂菩盘栕g碼模塊用于完成處理器對CPLD片內模塊的尋址和譯碼,為一簡(jiǎn)單譯碼邏輯和觸發(fā)電路??偩€(xiàn)接口模塊用于完成處理器和A/D轉換控制器的數據交換;同時(shí)完成AD767的自校準信號CAL的控制,如圖2所示的自校準時(shí)序。需要注意一點(diǎn)的是,在自校準的過(guò)程中,SAMPLE信號必須保持低電平,否則出錯。狀態(tài)機模塊用于產(chǎn)生A/D轉換的時(shí)序,如圖2所示的通常轉換時(shí)序。在轉換的過(guò)程中,CAL信號必須保持低電平,否則出錯;狀態(tài)機模塊同時(shí)完成對多路切換器的控制。圖2所示的各信號的相對定時(shí)關(guān)系此處不作說(shuō)明,請查閱AD676的數據手冊。

為達到圖2所示SAMPLE、CAL時(shí)序的相互閉鎖關(guān)系,從狀態(tài)機模塊引出其內部狀態(tài)信號到總線(xiàn)接口模塊,一方面,狀態(tài)機的狀態(tài)可以隨時(shí)被處理器感知;另一方面用于閉鎖CAL信號,即閉鎖自校準。詳細地說(shuō),就是在A(yíng)/D轉換期間,在圖2所示的通常轉換時(shí)序中,從SAMPLE變高到BUSY信號再次變低以前,即使處理器再次寫(xiě)入了啟動(dòng)自校準命令,CPLD亦閉鎖CAL信號的產(chǎn)生。為便于安全啟動(dòng)CAL信號,在本次轉換完成或全部轉換完成時(shí),滿(mǎn)足一定的相對時(shí)序即可啟動(dòng)。同理,將總線(xiàn)接口模塊內控制CAL信號的狀態(tài)機的狀態(tài)引入狀態(tài)機模塊,用于在自校準期間,閉鎖SAMPLE信號的產(chǎn)生,即閉鎖處理器啟動(dòng)A/D轉換的命令。這樣,A/D轉換控制器就具有很好的容錯能力。無(wú)論何時(shí),處理器都可以通過(guò)讀取SAMPLE、CAL、BUSY、中斷請求、狀態(tài)機的狀態(tài),來(lái)監測CPLD、AD676等的工作和判斷損壞與否。通過(guò)處理器的配合就使CPLD支持系統的在線(xiàn)自檢,解決了以往類(lèi)似設計中存在錯誤而處理器又無(wú)法進(jìn)行故障定位的問(wèn)題。

圖4

2 系統仿真和驗證

以上設計用VHDL語(yǔ)言描述完成后,首先在A(yíng)CTIVE-HDL5.1環(huán)境下進(jìn)行編譯、綜合、適配后再時(shí)序仿真;但這只是純邏輯驗證,此時(shí)時(shí)序仿真圖中沒(méi)有包含任何硬件延遲信息。結果正確后,在MAX+PLUSII 10.0環(huán)境下進(jìn)行編譯、綜合、適配后,再進(jìn)行時(shí)序仿真驗證。由于考慮了硬件因素,選擇MAX7000S系列的EPM7128STC100-10器件后,該器件的擺率位Turbo bit必須選中,否則在高速時(shí)鐘輸入時(shí),MAXPLUS的仿真結果不正確。圖4即為在MAXPLUS下的時(shí)序仿真結果,模擬40 MHz的CPLD時(shí)鐘輸入和主處理器50ns的外部存儲器訪(fǎng)問(wèn)周期,可以達到AD676的最快轉換速度。實(shí)際電路也驗證了這一點(diǎn)。

考慮到CPLD也完成系統的一部分譯碼功能,此時(shí),MAXPLUS所產(chǎn)生的報告文件表明資源利用情況,如表1所列。在文章的最后詳細給出了狀態(tài)機模塊的時(shí)序電路的VHDL設計程序。

表1

邏輯陣列塊邏輯單元I/O引腳共享擴展項外部互連
A:LC1-LC168/16(50%)10/10(100%)8/16(50%)27/36(75%)
B:LC17-LC3216/16(100%)10/10(100%)15/16(93%)23/36(63%)
C:LC33-LC4816/16(100%)8/10(80%)14/16(87%)21/36(58%)
D:LC49-LC6415/16(93%)7/10(70%)6/16(37%)29/36(80%)
E:LC65-LC8016/16(100%)0/10(0%)0/16(0%)23/36(63%)
F:LC81-LC916/16(100%)10/10(100%)16/16(100%)31/36(86%)
G:LC97-LC11215/16(93%)9/10(90%)5/16(31%)28/36(77%)
H:LC113-LC12816/16(100%)8/10(80%)6/16(37%)29/36(80%)
使用的專(zhuān)用輸入引腳1/14(25%)
使用的I/O引腳62/80(77%)
使用的邏輯單元118/128(92%)
使用的共計擴展項52/128(0%)

最后,通過(guò)EPM7128STC100-10(40MHz)的JTAG口,在MAX+PLUSII 10.0環(huán)境下,下載到器件中,在TMS320C32(40MHz)和MC68332(16.78MHz)兩種CPU構成的數據采集系統中得到了驗證。由于A(yíng)/D轉換控制器與處理器采用并行接口,極大地減輕了CPU的負荷,解決了CPU的I/O資源嚴重不足的矛盾,提高了硬件電路的集成性、可靠性及保密性,可以很方便地移植到多種處理器,具有一定的實(shí)用性。

狀態(tài)機模塊的時(shí)序電路VHDL設計程序見(jiàn)網(wǎng)站(http://www.dpj.com.cn)。



關(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>