基于CPLD的多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:隨著數(shù)字化生活的到來(lái),數(shù)據(jù)采集系統(tǒng)在日常生活中的應(yīng)用越來(lái)越顯著。模擬信號(hào)和數(shù)字信號(hào)之間的轉(zhuǎn)換已成為計(jì)算機(jī)控制系統(tǒng)中不可缺少的環(huán)節(jié)。較傳統(tǒng)數(shù)據(jù)采集系統(tǒng),以可編程邏輯器件實(shí)現(xiàn)的數(shù)據(jù)采集系統(tǒng)具有時(shí)鐘頻率高,內(nèi)部延時(shí)小,速度快,效率高,組成形式靈活等特點(diǎn)。
關(guān)鍵詞:CPLD;數(shù)據(jù)采集;VHDL;狀態(tài)機(jī)
數(shù)據(jù)采集系統(tǒng)具有極強(qiáng)的通用性,可廣泛應(yīng)用于軍事、工業(yè)生產(chǎn)、科學(xué)研究和日常生活中。隨著計(jì)算機(jī)的普及,數(shù)據(jù)采集系統(tǒng)在日常生活中的應(yīng)用越來(lái)越顯著。由于基于DSP芯片的高速電子器件成本和制作工藝,以及高密集的技術(shù)含量,使得高速數(shù)據(jù)采集卡的價(jià)格昂貴。而復(fù)雜可編程邏輯器件(CPLD)能夠?qū)⒋罅康倪壿嫻δ芗捎谝粋€(gè)單片集成電路中,以其時(shí)鐘頻率高,內(nèi)部延時(shí)小,速度快,效率高,組成形式靈活等特點(diǎn)在高速數(shù)據(jù)采集方面有著單片機(jī)和DSP無(wú)法比擬的優(yōu)勢(shì)。
1 設(shè)計(jì)思路
該系統(tǒng)由數(shù)據(jù)輸入單元、數(shù)據(jù)處理單元、數(shù)據(jù)輸出單元三大部分組成。其中數(shù)據(jù)輸入單元是由狀態(tài)機(jī)控制ADC0809實(shí)現(xiàn)。輸入信號(hào)可以是各種形式,它可以是語(yǔ)音信號(hào)、調(diào)制后的電話信號(hào)、編碼的數(shù)字信號(hào)、壓縮的圖像信號(hào),也可以是各種傳感器輸出的信號(hào)。A/D能將模擬信號(hào)變換成數(shù)字信號(hào),但必須滿足香農(nóng)采樣定理,也就是為了保證不丟失信息的所有信息,采樣頻率必須高于輸入信號(hào)最高頻率的2倍。A/D變換后得到的數(shù)字信號(hào)輸人到CPLD芯片;再由CPLD芯片對(duì)該數(shù)字信號(hào)進(jìn)行各種數(shù)字信號(hào)算法的處理。經(jīng)過(guò)處理后的數(shù)字信號(hào)再經(jīng)過(guò)數(shù)/模轉(zhuǎn)換器ADC0832將其輸出。
2 系統(tǒng)各部分的功能及實(shí)現(xiàn)
2.1 數(shù)據(jù)輸入電路
數(shù)據(jù)輸入電路主要是由狀態(tài)機(jī)控制ADC0809實(shí)現(xiàn)。其中START為轉(zhuǎn)換控制信號(hào),高電平有效;ALE是3位通道選擇地址(ADDC,ADDB,ADDA)信號(hào)的鎖存信號(hào),高電平有效;EOC是轉(zhuǎn)換情況狀態(tài)信號(hào)(類似于AD574的STATUS),當(dāng)啟動(dòng)轉(zhuǎn)換約100 μs后,EOC產(chǎn)生一個(gè)高電平,以示轉(zhuǎn)換結(jié)束,轉(zhuǎn)換期間一直處于低電平。一旦START有效后,狀態(tài)信號(hào)EOC即變?yōu)榈碗娖?,表示進(jìn)入轉(zhuǎn)化狀態(tài)。轉(zhuǎn)換結(jié)束后,EOC將變?yōu)楦唠娖健E為數(shù)據(jù)輸出允許信號(hào),當(dāng)OE為高電平時(shí),則控制打開三態(tài)緩沖器,把轉(zhuǎn)換好的8位數(shù)據(jù)結(jié)果輸至數(shù)據(jù)總線。其工作時(shí)序如圖1所示。
對(duì)ADC0809的工作過(guò)程分析可知:其工作處于6個(gè)狀態(tài)。在狀態(tài)St1中,ALE高電平將ADC0809的8路采樣輸入通道地址存入ADC0809地址鎖存器中。在狀態(tài)St3中需要對(duì)ADC0809工作狀態(tài)信號(hào)EOC進(jìn)行循環(huán)檢測(cè),如果為低電平,表示轉(zhuǎn)換沒有結(jié)束,仍需要停留在St3狀態(tài)中等待,直到EOC變成高電平后才說(shuō)明轉(zhuǎn)換結(jié)束,在下一時(shí)鐘脈沖到來(lái)時(shí)轉(zhuǎn)向狀態(tài)St4。在狀態(tài)St4,由狀態(tài)機(jī)向ADC0809發(fā)出轉(zhuǎn)換好的8位數(shù)據(jù)輸出命令,這一狀態(tài)周期同時(shí)可作為數(shù)據(jù)輸出穩(wěn)定周期,以便能在下一狀態(tài)中向鎖存器中鎖入可靠的數(shù)據(jù)。在狀態(tài)St5,由狀態(tài)機(jī)向CPLD中的鎖存信號(hào)(LO-CK的上升沿),將ADC-0809輸出的數(shù)據(jù)進(jìn)行鎖存。其采樣控制狀態(tài)圖如圖2所示。
2.2 數(shù)據(jù)處理電路
數(shù)據(jù)處理電路通過(guò)VHDL程序?qū)崿F(xiàn),該電路的主要功能是對(duì)外部輸入信號(hào)進(jìn)行循環(huán)檢測(cè),當(dāng)k1為1時(shí),該器件處于數(shù)據(jù)采集和處理模式。這里的數(shù)據(jù)處理就是對(duì)其輸入的數(shù)字信號(hào)進(jìn)行擴(kuò)大2倍或縮小到原來(lái)的1/2,其中fun用來(lái)選擇輸入方式。在采集數(shù)據(jù)的時(shí)候還可以選擇所采數(shù)據(jù)是ADC0809中的哪一路,并完成在七段數(shù)碼器上顯示。其原理如圖3所示。
2.3 數(shù)據(jù)輸出電路
數(shù)據(jù)輸出電路由數(shù)/模轉(zhuǎn)換器DAC0832實(shí)現(xiàn),ADC0832為8位分辨率A/D轉(zhuǎn)換芯片,其內(nèi)部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓輸入在0~5 V之間。D/A轉(zhuǎn)換結(jié)果采用電流形式輸出。應(yīng)得到相應(yīng)的模擬電壓信號(hào),所以通過(guò)一個(gè)高輸入阻抗的線性運(yùn)算放大器實(shí)現(xiàn)。其連線如圖4所示。
3 電路的VHDL描述
數(shù)據(jù)采集控制電路、數(shù)據(jù)處理電路均是使用硬件描述語(yǔ)言VHDL(Very High Speed Integrated Circuit Hatdware Description Langu-age)設(shè)計(jì)而成。例如:數(shù)據(jù)采集控制模塊設(shè)計(jì)如下:
VHDL語(yǔ)言具有多層次的電路設(shè)計(jì)描述功能,既可描述系統(tǒng)級(jí)電路,也可以描述門級(jí)電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以采用三者的混合描述方式。VHDL語(yǔ)言的強(qiáng)大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類型,采用VHDL語(yǔ)言描述硬件電路時(shí),設(shè)計(jì)人員并不需要首先考慮選擇進(jìn)行設(shè)計(jì)的器件。這樣做的好處是可以使設(shè)計(jì)人員集中精力進(jìn)行電路設(shè)計(jì)的優(yōu)化,而不需要考慮其他的問(wèn)題。當(dāng)硬件電路的設(shè)計(jì)描述完成以后,VHDL語(yǔ)言允許采用多種不同的器件結(jié)構(gòu)來(lái)實(shí)現(xiàn)。
4 系統(tǒng)的波形仿真
在數(shù)據(jù)處理電路中,當(dāng)gate=‘1’,整個(gè)器件處于數(shù)據(jù)采集及處理模式,選擇不同的工作方式,即fun值,可實(shí)現(xiàn)不同的數(shù)據(jù)處理,當(dāng)do為O時(shí),其波形仿真如圖5所示。從仿真波形中可以看出輸入數(shù)據(jù)等于輸出數(shù)據(jù),在通過(guò)輸出運(yùn)放,使輸出值增大2倍,從而使輸出數(shù)據(jù)為輸入數(shù)據(jù)的2倍。
在數(shù)據(jù)處理電路中,當(dāng)gate=‘0’,整個(gè)器件處于循環(huán)檢測(cè)的模式,當(dāng)輸入數(shù)據(jù)超出預(yù)設(shè)值時(shí)就進(jìn)行報(bào)警,即alm=‘1’,當(dāng)無(wú)輸入值大于預(yù)設(shè)值時(shí),就進(jìn)行循環(huán)檢測(cè)。其波形仿真如圖6所示。
5 結(jié)語(yǔ)
設(shè)計(jì)了基于CPLD的多路異步數(shù)據(jù)采集系統(tǒng),系統(tǒng)中使用狀態(tài)機(jī)控制數(shù)據(jù)的采集,使用ADC0832進(jìn)行數(shù)/模轉(zhuǎn)換。同時(shí)利用CPLD強(qiáng)大的數(shù)字處理功能和高密集成的特點(diǎn),降低了硬件的成本,簡(jiǎn)化了電路設(shè)計(jì),并配合軟件增加了系統(tǒng)的靈活性和可擴(kuò)充性,具有很好的經(jīng)濟(jì)效益和社會(huì)效益。