基于單片機(jī)和CPLD的高精度數(shù)據(jù)采集系統(tǒng)設(shè)計
掃描二維碼
隨時隨地手機(jī)看文章
1 引言
數(shù)據(jù)采集系統(tǒng)的任務(wù),就是采集傳感器輸出的模擬信號轉(zhuǎn)換成計算機(jī)能識別的數(shù)字信號,送入計算機(jī),將計算機(jī)得到的數(shù)據(jù)進(jìn)行顯示或打印,以便實(shí)現(xiàn)對某些物理量的監(jiān)視,其中一部分?jǐn)?shù)據(jù)還將被生產(chǎn)過程中的計算機(jī)控制系統(tǒng)用來控制某些物理量。數(shù)據(jù)采集系統(tǒng)性能的好壞,主要取決于它的精度和速度。在保證精度的條件下,應(yīng)有盡可能高的采樣速度,以滿足實(shí)時采集、實(shí)時處理和實(shí)時控制對速度的要求。
當(dāng)前科學(xué)技術(shù)的發(fā)展對數(shù)據(jù)采集系統(tǒng)的采樣速率、分辨率、精度、接口及抗干擾能力等提出越來越高的要求,許多領(lǐng)域越來越多地要求具有高精度A/D轉(zhuǎn)換和實(shí)時處理功能。同時,市場對支持更復(fù)雜的顯示和通信接口的要求也在提高,如環(huán)境監(jiān)測、電表、醫(yī)療設(shè)備、便攜式數(shù)據(jù)采集以及工業(yè)傳感器和工業(yè)控制等。傳統(tǒng)設(shè)計方法是應(yīng)用MCU通過軟件控制數(shù)據(jù)采集的A/D轉(zhuǎn)換,這樣必將頻繁中斷系統(tǒng)的運(yùn)行,從而減弱系統(tǒng)的數(shù)據(jù)運(yùn)算能力,數(shù)據(jù)采集的速度也將受到限制。本文采用MCU+CPLD的方案,由硬件控制A/D轉(zhuǎn)換和數(shù)據(jù)存儲,同時采取多模冗余的模/數(shù)轉(zhuǎn)換結(jié)構(gòu),最大限度地提高系統(tǒng)的信號采集精度和處理能力。
2采集系統(tǒng)硬件設(shè)計
本文的設(shè)計方案來源于對某控制系統(tǒng)的檢測與診斷的研究,該控制系統(tǒng)在工作過程中,有多種產(chǎn)生于不同部件的信號需要檢測,其中有模擬輸入信號9路(其中6路16位精度要求,3路12位精度要求),數(shù)字輸入信號3路(16位),要求以CAN2.0總線/RS232輸出,誤差<=10-5,溫度范圍為:-400C≤ T ≤ +850C。
2.1數(shù)據(jù)采集系統(tǒng)硬件設(shè)計
根據(jù)該系統(tǒng)功能和性能要求以及傳統(tǒng)的基于單一的單片機(jī)的數(shù)據(jù)采集系統(tǒng)的缺點(diǎn),本文設(shè)計了結(jié)合單片機(jī)和CPLD器件的各自優(yōu)點(diǎn), 以MCU+CPLD的雙片結(jié)構(gòu)設(shè)計了高精度的多模冗余的數(shù)據(jù)采集系統(tǒng)。系統(tǒng)主要由MCU處理模塊、CPLD處理模塊和ADC陣列、通信模塊四個部分組成,其總體硬件框圖如圖1所示。
圖1 數(shù)據(jù)采集系統(tǒng)總體框圖
根據(jù)系統(tǒng)精度要求,A/D轉(zhuǎn)換器件要分別達(dá)到16、12位精度,為此選用了美國模擬器件公司(ADI)公司的16位高速A/D轉(zhuǎn)換器AD7656以及12位高速A/D轉(zhuǎn)換器AD7864。3路數(shù)據(jù)采集并行實(shí)現(xiàn),所有的時序信號和控制邏輯由同一片CPLD實(shí)現(xiàn),系統(tǒng)體積小,速度快。本設(shè)計選用了Altera公司的MAX3000系列可編程邏輯器件EPM3128芯片。3路ADC模數(shù)轉(zhuǎn)換結(jié)束后,CPLD調(diào)用三模冗余表決程序?qū)/D轉(zhuǎn)換結(jié)果進(jìn)行判斷,并把結(jié)果送入運(yùn)算模塊的輸入FIFO。三模冗余的原理結(jié)構(gòu)圖如圖2所示。
圖2 三模冗余原理結(jié)構(gòu)圖
此處的三模冗余表決程序使用VHDL語言編寫,運(yùn)行速度快,可靠性高。此方案的具體硬件設(shè)計如圖3所示。
圖3 系統(tǒng)硬件原理圖
3 系統(tǒng)主要芯片介紹
系統(tǒng)所使用的幾個主要的芯片包括MCU、CPLD、A/D等芯片,下面對芯片進(jìn)行簡單的介紹。
3.1 MCU
Cygnal公司的單片機(jī)C8051F040具有與8051指令集完全兼容的CIP-51內(nèi)核。它的最高頻率可達(dá)25Mhz,內(nèi)置64KB FLASH RAM和4KB的數(shù)據(jù)存儲器。C8051F040在一個芯片內(nèi)集成了構(gòu)成單片機(jī)數(shù)據(jù)采集或控制系統(tǒng)所需要的幾乎所有模擬和數(shù)字外設(shè)及其它功能部件,包括ADC、可編程增益放大器、DAC、電壓比較器、溫度傳感器、SMBus/I2C、UART、SPI、定時器、內(nèi)部振蕩器、看門狗電路以及CAN控制器等,這種高度集成為設(shè)計小體積、低功耗、高可靠和高性能的測控系統(tǒng)提供了方便,同時也使測控設(shè)備整體成本能夠降低。
C8051F040內(nèi)部集成有BOTSH CAN,它兼容CAN技術(shù)規(guī)范2.0A和2.0B,主要由CAN內(nèi)核、消息RAM(獨(dú)立于CIP-51的RAM)、消息處理單元和控制寄存器組成。
3.2 CPLD
根據(jù)數(shù)據(jù)采集系統(tǒng)的需要,在現(xiàn)有的CPLD中選擇Altera公司中MAX 3000A[50]系列中的EPM3218ATC100-10。MAX 3000A器件具有以下特性:
1) Altera 的MAX 3000A 可編程邏輯器件(PLD)是滿足大批量,成本敏感性應(yīng)用的非易失性和即用性CPLD理想的解決方案。MAX 3000A提供從32到512個宏單元,3.3V邏輯內(nèi)核電壓,并支持通用特性和封裝;
2)Altera的MultiVolt™ 多電壓接口從工業(yè)應(yīng)用傳統(tǒng)所要求的5.0V I/O信號到消費(fèi)電子應(yīng)用要求的低電壓標(biāo)準(zhǔn)如2.5V,MAX 3000A器件都提供強(qiáng)大的I/O電壓選項。
3)出眾的硅片特性:MAX 3000A器件是具有即用性,非易失性,提供全局時鐘,在系統(tǒng)可編程,IEEE-1532標(biāo)準(zhǔn)支持,和開路輸出特性的器件,MAX 3000A器件適用于大量系統(tǒng)級的應(yīng)用;
4)易用的設(shè)計軟件:MAX器件為易用的Quartus® II網(wǎng)絡(luò)版和MAX+PLUS® II 基礎(chǔ)版設(shè)計軟件所支持。這兩個平臺提供綜合布局布線,設(shè)計驗證和器件編程功。
本文中采用的EPM3218ATC100-10具有128個宏單元,80用戶I/O管腳數(shù),工作電壓為3.3V,具有2500個可用門和ISP,管腳間延遲快至10ns,計數(shù)器速度可高達(dá)100MHz,可以很好的滿足系統(tǒng)的需要。
3.3 A/D
ADI公司16位模數(shù)轉(zhuǎn)換芯片AD7656采用iCMOS工藝制造的,是高集成度、6通道16-bit逐次逼近(SAR)型ADC,內(nèi)含1個2.5V基準(zhǔn)電壓源和基準(zhǔn)緩沖器。AD7656在每通道250kS/s采樣速率下的精度(±4LSB最大值積分線性誤差)是同類產(chǎn)品的2倍,可以滿足工業(yè)領(lǐng)域?qū)Ω叻直媛?、多通道、高轉(zhuǎn)換速率和低功耗的要求。AD7864是一種高速、低功耗、可以4通道同時采樣的A/D轉(zhuǎn)換器。它的主要特性有:高速12位A/D轉(zhuǎn)換器;同時采樣4個輸入通道,并具有4個采樣、保持放大器;0.35ms采樣保持獲取時間,每一個通道轉(zhuǎn)換時間1.65ms;可以通過軟件或者硬件的方法選取用于采樣的通道;多個轉(zhuǎn)換電壓范圍;具有高速并行接口,可以與處理器直接連接;低功耗,每通道功耗90mW;對于每一個模擬輸入通道均有過壓保護(hù)電路。AD7864 4通道同時工作時,最大采樣率可以高達(dá)130KHz。以上兩種芯片能滿足系統(tǒng)的精度和實(shí)時性的要求。
4數(shù)據(jù)采集系統(tǒng)軟件設(shè)計
在一般的數(shù)據(jù)采集系統(tǒng)中,每次數(shù)據(jù)采集過程,單片機(jī)和A/ D 轉(zhuǎn)換之間都存在數(shù)據(jù)的傳送,由于受單片機(jī)執(zhí)行指令時間的限制,采集一個數(shù)據(jù)需要幾到幾十微秒的時間,這樣的數(shù)據(jù)采集系統(tǒng)難以適應(yīng)高速信號采集的需要。本系統(tǒng)是在單片機(jī)控制下,完全由CPLD自動實(shí)現(xiàn)數(shù)據(jù)采集的全過程。在該系統(tǒng)中單片機(jī)只控制數(shù)據(jù)采集的啟動和采集結(jié)束后對數(shù)據(jù)的處理或傳輸,在數(shù)據(jù)采集的過程中,單片機(jī)并不對采集通道進(jìn)行任何控制,這樣就使系統(tǒng)的采集速率完全不受單片機(jī)速度的限制,從而實(shí)現(xiàn)高速數(shù)據(jù)采集的目的。系統(tǒng)的主程序的基本流程框圖如圖4所示。
圖4 主程序流程圖
主程序主要采用中斷的方式對整個系統(tǒng)進(jìn)行操作和控制。其中,數(shù)據(jù)采集使用外部中斷方式,當(dāng)CPLD的數(shù)據(jù)緩沖器數(shù)據(jù)存滿時發(fā)出中斷申請,單片機(jī)就轉(zhuǎn)入相應(yīng)的中斷程序,進(jìn)行中斷數(shù)據(jù)處理,把CPLD中的數(shù)據(jù)轉(zhuǎn)移到SRAM里進(jìn)行保存;與PC機(jī)的數(shù)據(jù)連接使用串行口中斷方式(設(shè)置為最高優(yōu)先級,響應(yīng)時屏蔽其他一切任務(wù)的執(zhí)行),將SRAM中的數(shù)據(jù)傳送到PC機(jī)。與主機(jī)通信主要由C8051F040通過中斷方式接收PC機(jī)發(fā)送過來的字符,在進(jìn)行碼字的判別之后,把相應(yīng)的數(shù)據(jù)送回到PC機(jī)。
5 應(yīng)用分析與結(jié)論
本文作者的創(chuàng)新觀點(diǎn)是:針對某軍工產(chǎn)品的設(shè)計需要,采用CPLD和MCU設(shè)計了一種多路高速實(shí)時數(shù)據(jù)采集系統(tǒng)的設(shè)計方案及實(shí)現(xiàn),該系統(tǒng)能夠?qū)崿F(xiàn)多通道同步采樣或異步采樣,利用CPLD實(shí)現(xiàn)對A/D的邏輯控制,使用C8051F040對A/D轉(zhuǎn)換數(shù)據(jù)進(jìn)行處理。測試結(jié)果表明,所設(shè)計的基于CPLD的多通道數(shù)據(jù)采集系統(tǒng),能夠準(zhǔn)確有效地進(jìn)行A/D數(shù)據(jù)采集。本系統(tǒng)的設(shè)計思想和方法不僅適用于多路數(shù)據(jù)采集,而且能有效地擴(kuò)MCU訪問外設(shè)的能力,在成本控制、可擴(kuò)展性以及資源利用效率上都有非常大的提高。此設(shè)計方案已經(jīng)成功的運(yùn)用于該產(chǎn)品上,對其數(shù)據(jù)采集的精度有了較大幅度的提高,產(chǎn)生了較好的經(jīng)濟(jì)效益。