輸入系統(tǒng)的信息大多數(shù)是模擬量,,為使計(jì)算機(jī)能夠處理這些模擬量,必須經(jīng)由數(shù)據(jù)采集系統(tǒng)將模擬量轉(zhuǎn)化為數(shù)字量,。CPLD是在PAL,、GAL等邏輯器件的基礎(chǔ)上發(fā)展起來(lái)的,CPLD的規(guī)模比較大,,適合于時(shí)序,、組合等邏輯電路的應(yīng)用場(chǎng)合,它的高集成度能力大大縮小電路板的尺寸,,降低了系統(tǒng)的成本,,而且能夠提高系統(tǒng)的性能和可靠性。 對(duì)于一個(gè)成型的探測(cè)系統(tǒng)而言,通常都是有采集儲(chǔ)存部分的,,無(wú)論是電信號(hào),、光信號(hào)、聲音信號(hào),、磁信號(hào)等在被探測(cè)器接收到后大部分都需要轉(zhuǎn)化為數(shù)字信號(hào)傳給處理器才能完成分析,、判斷的過(guò)程。對(duì)于需要高速采集并存儲(chǔ)的系統(tǒng),,常常需要購(gòu)買(mǎi)昂貴的高速采集卡等設(shè)備,,在基于CPLD、AVR等控制高速ADC,、儲(chǔ)存等技術(shù)的基礎(chǔ)上,,本文設(shè)計(jì)低成本、高速采集存儲(chǔ)的硬件實(shí)現(xiàn),。
1 系統(tǒng)總體設(shè)計(jì)方案
系統(tǒng)利用ATmegal62作為主控制器,,CPLD用于產(chǎn)生控制時(shí)序,二者相結(jié)合協(xié)調(diào)進(jìn)行數(shù)據(jù)的采集與傳輸控制,。圖1給出其系統(tǒng)總體設(shè)計(jì)方案框圖,。
數(shù)據(jù)采集系統(tǒng)的工作原理是:模擬量信號(hào)經(jīng)過(guò)傳感器后轉(zhuǎn)化成電壓量,通過(guò)ADC將模擬量轉(zhuǎn)換為數(shù)字量,,而后進(jìn)行傳輸存儲(chǔ)和處理,。在本系統(tǒng)中,在CPLD和AVR的控制下,,將采集到的模擬信號(hào)經(jīng)過(guò)A/D器件轉(zhuǎn)換之后,轉(zhuǎn)換結(jié)果先緩存到FIFO,,再轉(zhuǎn)存到非易失性FLASH陣列中,,其中FIFO不但可以實(shí)現(xiàn)緩存功能,還可以解決A/D轉(zhuǎn)換之后數(shù)據(jù)位數(shù)跟FLASH存儲(chǔ)器的數(shù)據(jù)線位數(shù)不匹配的矛盾,。
1.1 采集部分
本系統(tǒng)應(yīng)用的A/D轉(zhuǎn)換器是MAXl308,,它具有8通道可編程配置,可接收數(shù)字輸入分別激活每一路通道,;100 ps通道間T/H匹配,;轉(zhuǎn)換時(shí)間為0.72(單通道),0.9(2通道),,1.2*通道),,1.98μs(8通道);吞吐率為1 075(單通道),,90(2通道),,680(4通道),456千次/秒(8通道)。其他特性包括20 MHz T/H輸入帶寬,、并具有內(nèi)部時(shí)鐘,、內(nèi)部(+2.5 V)或外部(+2.0~+3.O V)基準(zhǔn),以及低功耗省電模式,。
1.2 控制與存儲(chǔ)部分
如圖2所示是4個(gè)FLASH模塊組采用流水線(pipeline)操作,,使用該方式可以克服FLASH寫(xiě)入速度較慢的缺點(diǎn)。FLASH存儲(chǔ)器的寫(xiě)入有2個(gè)階段:數(shù)據(jù)加載階段(通過(guò)I/0端口將數(shù)據(jù)寫(xiě)入頁(yè)寄存器)和編程階段(在芯片內(nèi)部,,將頁(yè)寄存器的數(shù)據(jù)傳輸?shù)酱鎯?chǔ)單元),。由于編程階段是自動(dòng)進(jìn)行的,不需要外部系統(tǒng)的干預(yù),,控制器可以進(jìn)行其他事務(wù)的處理,,如有效塊地址的運(yùn)算等,從而節(jié)省系統(tǒng)開(kāi)銷(xiāo),。NAND型FLASH存儲(chǔ)器的寫(xiě)操作以流水線方式進(jìn)行,,首先加載第1個(gè)FLASH模塊組,數(shù)據(jù)加載完后,,第1個(gè)模塊組進(jìn)入自動(dòng)編程階段:再加載第2個(gè)FLASH模塊組,,數(shù)據(jù)加載完后,第2個(gè)模塊組進(jìn)入自動(dòng)編程階段,;然后依次對(duì)第3個(gè)乃至第4個(gè)模塊組進(jìn)行操作,,當(dāng)?shù)?個(gè)模塊組數(shù)據(jù)加載完后,第1個(gè)存儲(chǔ)模塊組已經(jīng)自動(dòng)編程結(jié)束,,接著再加載和自動(dòng)編程形成流水線的工作方式,。從整個(gè)系統(tǒng)總體效果來(lái)看,它一直在進(jìn)行存儲(chǔ)加載數(shù)據(jù),。
2 程序設(shè)計(jì)與實(shí)現(xiàn)
編程實(shí)現(xiàn)采集部分的功能,,采集部分時(shí)序圖如圖3所示。任意選擇兩條通道進(jìn)行內(nèi)部時(shí)鐘分析,,圖中為第3通道和第7通道,,當(dāng)控制信號(hào)產(chǎn)生低電平時(shí),控制引腳起作用,,觸發(fā)采集功能,,同時(shí)EOC引腳電平至低。在tCTR段時(shí)間后讀信號(hào)被啟動(dòng)經(jīng)過(guò)tACC的時(shí)間后,,12位數(shù)據(jù)將出現(xiàn)在DO-D11引腳上,。在整個(gè)采集、存儲(chǔ)過(guò)程中其他通道和通道3,、通道7一樣,,隨后將數(shù)據(jù)存入數(shù)據(jù)緩存器中,。
2.1 控制A/D轉(zhuǎn)換程序設(shè)計(jì)
根據(jù)控制存儲(chǔ)的要求,首先要設(shè)計(jì)控制A/D轉(zhuǎn)換的狀態(tài)機(jī),,用來(lái)確定A/D轉(zhuǎn)換的狀態(tài),,根據(jù)MAXl308工作時(shí)序特點(diǎn)而設(shè)計(jì)的控制A/D轉(zhuǎn)換的狀態(tài)機(jī)轉(zhuǎn)換圖如圖4所示。實(shí)現(xiàn)控制A/D轉(zhuǎn)換的狀態(tài)機(jī)部分主要VHDL程序源代碼如下:
將程序下載至CPLD中運(yùn)行調(diào)試,,經(jīng)過(guò)對(duì)電路的調(diào)試和測(cè)量,,控制8通道A/D同時(shí)轉(zhuǎn)換的狀態(tài)機(jī)產(chǎn)生的示波器時(shí)序波形如圖5所示,其中,,0,、1、2,、3,、4分別對(duì)應(yīng)的是圖3中的CONVST、EOC,、EOLC,、CS、RD,,而第5通道是對(duì)FIF0的寫(xiě)信號(hào),。從示波器顯示的波形圖可以看出產(chǎn)生的8個(gè)連續(xù)的脈沖對(duì)應(yīng)位置完全滿足圖3所要求的時(shí)序要求,也就是說(shuō)在控制器同時(shí)控制8路信號(hào)的采集時(shí)不會(huì)出現(xiàn)時(shí)序混亂的情況,。由此可知,,采用本系統(tǒng)中設(shè)計(jì)的采集程序可以實(shí)現(xiàn)同時(shí)采集的要求,并且根據(jù)采集的脈沖寬度分析可知該系統(tǒng)能滿足采集速度為10 Mb/s的設(shè)計(jì)要求,。
2.2 控制FLASH存儲(chǔ)程序設(shè)計(jì)
4個(gè)FLASH存儲(chǔ)器的流水線工作原理如圖2所示,,對(duì)單獨(dú)的每一片F(xiàn)LASH來(lái)說(shuō)每一次存儲(chǔ)都是在上一次存儲(chǔ)過(guò)程中加載完成后進(jìn)行,而對(duì)于由4片F(xiàn)LASH存儲(chǔ)器組成的整個(gè)系統(tǒng),,它一直在加載存儲(chǔ)數(shù)據(jù),,這樣可以保證存儲(chǔ)速度大于采集速度,從而保證存儲(chǔ)過(guò)程中不會(huì)因單片F(xiàn)LASH存儲(chǔ)速度慢而造成丟失數(shù)據(jù),。實(shí)現(xiàn)FLASH存儲(chǔ)的主要程序:
在數(shù)據(jù)加載期間本系統(tǒng)應(yīng)采用DMA傳輸控制方式,,即:每當(dāng)FIF0的半滿標(biāo)志信號(hào)HF產(chǎn)生一次有效電平時(shí),,ATmegal62就啟動(dòng)一次中斷,,在中斷程序中,ATmegal62將產(chǎn)生NAND FLASH命令和有效地址,,以及啟動(dòng)DMA控制器,。一旦DMA控制器啟動(dòng),ATmegal62就將轉(zhuǎn)入后臺(tái)進(jìn)行有效地址的運(yùn)算等,,從而參與數(shù)據(jù)傳輸過(guò)程,,整個(gè)數(shù)據(jù)從FIFO到FLASH存儲(chǔ)器的傳輸過(guò)程是由CPLD內(nèi)部編寫(xiě)的DMA控制器控制完成,。啟動(dòng)一次DMA控制器傳輸一頁(yè)2048個(gè)字節(jié)的數(shù)據(jù),一次中斷完成16 K字節(jié)的傳輸,。其示波器時(shí)序如圖6所示:第0,,1,2,,3通道是FIF0的讀數(shù)據(jù)時(shí)序波形,,第4通道是FLASH的寫(xiě)通道時(shí)序波形。
3 結(jié)論
通過(guò)使用AVR和CPLD編程,,設(shè)計(jì)實(shí)現(xiàn)了一種成本低且可實(shí)現(xiàn)10 Mb/s以上并行采集數(shù)據(jù)率的高速數(shù)據(jù)采集存儲(chǔ)系統(tǒng),。在分析MAXl308特性及轉(zhuǎn)換時(shí)序的基礎(chǔ)上,設(shè)計(jì)完成了A/D轉(zhuǎn)換器及其外圍電路,,并通過(guò)調(diào)試可知時(shí)序穩(wěn)定,。通過(guò)VHDL語(yǔ)言實(shí)現(xiàn)了采集模塊、控制與存儲(chǔ)模塊和FLASH存儲(chǔ)功能,。在完成硬件連接后調(diào)試,,試驗(yàn)結(jié)果顯示,該設(shè)計(jì)能夠?qū)崿F(xiàn)低成本高速采集,,多路同時(shí)采集速度大于10 Mb/s采集系統(tǒng),,具有一定的實(shí)用價(jià)值。