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