當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]CPLD在多路高速同步數(shù)據(jù)采集系統(tǒng)中的應(yīng)用

   摘要:采用VHDL語(yǔ)言設(shè)計(jì),用CPLD控制模/數(shù)轉(zhuǎn)換電路,完成多路模擬輸入的高速同步數(shù)/模轉(zhuǎn),具有容錯(cuò)和自檢能力。CPLD與處理之間采用并行接口,具有很好的移植性、可靠性。

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

引言

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

1 系統(tǒng)設(shè)計(jì)原理及框圖

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

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

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

圖2

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

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

圖3

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

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

圖4

2 系統(tǒng)仿真和驗(yàn)證

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

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

表1 

邏輯陣列塊 邏輯單元 I/O引腳 共享擴(kuò)展項(xiàng) 外部互連
A:LC1-LC16 8/16(50%) 10/10(100%) 8/16(50%) 27/36(75%)
B:LC17-LC32 16/16(100%) 10/10(100%) 15/16(93%) 23/36(63%)
C:LC33-LC48 16/16(100%) 8/10(80%) 14/16(87%) 21/36(58%)
D:LC49-LC64 15/16(93%) 7/10(70%) 6/16(37%) 29/36(80%)
E:LC65-LC80 16/16(100%) 0/10(0%) 0/16(0%) 23/36(63%)
F:LC81-LC9 16/16(100%) 10/10(100%) 16/16(100%) 31/36(86%)
G:LC97-LC112 15/16(93%) 9/10(90%) 5/16(31%) 28/36(77%)
H:LC113-LC128 16/16(100%) 8/10(80%) 6/16(37%) 29/36(80%)
使用的專(zhuān)用輸入引腳 1/14(25%)
使用的I/O引腳 62/80(77%)
使用的邏輯單元 118/128(92%)
使用的共計(jì)擴(kuò)展項(xiàng) 52/128(0%)

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉