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