崔海朋
摘要:現(xiàn)在很多采集系統(tǒng)要求較高的精度,而且信號(hào)形式、范圍也有所不同,處理電路比較復(fù)雜,硬件成本高。為了解決該問(wèn)題,設(shè)計(jì)了基于STM32和LTCl859的16位高精度數(shù)據(jù)采集系統(tǒng),詳細(xì)介紹了軟硬件設(shè)計(jì)。此系統(tǒng)不僅可以實(shí)現(xiàn)8路電流信號(hào)的單端輸入,也可以實(shí)現(xiàn)8路電壓信號(hào)的單端輸入,成本低,精度高。
關(guān)鍵詞:數(shù)據(jù)采集;Cortex-M3;LTCl859
0引言
現(xiàn)在很多數(shù)據(jù)采集系統(tǒng)要求較高的精度,同時(shí)要求可以適應(yīng)不同的信號(hào)形式,例如可以連接電流信號(hào)、電壓信號(hào),信號(hào)的范圍也不同,常規(guī)的方法是采用復(fù)雜的電路處理再進(jìn)行數(shù)據(jù)采集,這樣不僅增加了硬件成本,還降低了系統(tǒng)精度。本系統(tǒng)設(shè)計(jì)的基于Cortex-M3處理器和LTCl859的16位高精度數(shù)據(jù)采集系統(tǒng),不僅可以實(shí)現(xiàn)8路的電流信號(hào)的輸入,還可以實(shí)現(xiàn)8路電壓信號(hào)的輸入,對(duì)輸入信號(hào)的范圍可以通過(guò)軟件來(lái)設(shè)置,同時(shí)AD采集電路與Cortex-M3處理器采用了電源隔離和信號(hào)隔離,提高了系統(tǒng)的可靠性。
LTCl859是ADI公司推出的一款高性能的具停機(jī)功能的8通道、16位、100ksps的AD轉(zhuǎn)換器,每個(gè)通道可通過(guò)軟件實(shí)現(xiàn)0~5V,0~10V,0~±5V,0~±10V的不同范圍的輸入電壓,同時(shí)還可以實(shí)現(xiàn)單輸入和差分信號(hào)輸入的選擇,每個(gè)通道可承受至±25V的故障保護(hù)。LTCl859的多路復(fù)用器可以配置為接受4個(gè)差分輸入、8個(gè)單端輸入、或差分與單端輸入的組合。該器件提供了卓越的DC性能,具有在整個(gè)溫度范圍內(nèi)的15位無(wú)漏失碼和±3LSB MAX INL。LTCl 859與控制器之間采用SPI總線(xiàn)進(jìn)行通信。LTCl859用單5V電源工作,同時(shí)僅消耗40mW功率。LTCl 859還具有溫度系數(shù)為±1.0×10-5/℃的2.5V內(nèi)部基準(zhǔn),如果需要較高的準(zhǔn)確度,還可以從外部驅(qū)動(dòng)。對(duì)于那些對(duì)功耗敏感的應(yīng)用,LTC1859提供了兩種斷電模式:打盹模式和休眠模式。
本系統(tǒng)的Cortex-M3處理器為意法半導(dǎo)體公司推出的32位RISC處理器STM32F103VCT6,主頻最高可達(dá)72MHz。該處理器具有256kB的程序存儲(chǔ)器,48k13的RAM,同時(shí)它有8個(gè)定時(shí)器、5路串口、3路SPI、2路12C,具有獨(dú)立看門(mén)狗和窗口看門(mén)狗,非常適合于與LTCl859構(gòu)成高精度的數(shù)據(jù)采集和控制系統(tǒng)。
1硬件系統(tǒng)設(shè)計(jì)
本系統(tǒng)設(shè)計(jì)了由2片LM324運(yùn)放和1片LTCl859構(gòu)成8通道的單端信號(hào)輸入。每片LM324含有4個(gè)運(yùn)放,2片LM324構(gòu)成了8路信號(hào)調(diào)理電路,其中電阻實(shí)現(xiàn)電流信號(hào)到電壓信號(hào)的轉(zhuǎn)換,當(dāng)連接電壓信號(hào)時(shí),該電阻不連接。LM324為電壓跟隨器電路,這里不再詳述。LTCl859的電路如圖1所示。本電路具有通用性,在實(shí)際應(yīng)用中性能穩(wěn)定,效果很好。下面對(duì)電路進(jìn)行詳細(xì)分析。
LTCl859引腳中CH0-CH7是8路模擬輸入通道,在本系統(tǒng)中構(gòu)成了8路單端輸入信號(hào)。MUXOUT+、MUXOUT-為模擬復(fù)用器的正負(fù)輸出,把它們連在A(yíng)DC+、ADC-上進(jìn)行正常操作。BUSY為輸出轉(zhuǎn)換器的狀態(tài),當(dāng)正在轉(zhuǎn)換中為低,轉(zhuǎn)換結(jié)束變高,連在A(yíng)RM處理器的I/O口上,SDO為SPI總線(xiàn)的串行數(shù)據(jù)輸出,接在Cortex-M3處理器的SPI接口的MISO引腳上,SDI為SPI總線(xiàn)的串行數(shù)據(jù)輸入,接在Cortex-M3處理器的SPI接口的MOSI引腳上,SCK為SPI總線(xiàn)的時(shí)鐘,接在Cortex-M3處理器的SPICLK上。RD為引腳SDO數(shù)字輸出的能使信號(hào),當(dāng)RD為低能使輸出,當(dāng)RD為高SDO為高阻抗。在本系統(tǒng)中,該引腳連接至地,一直使能LTCl859的輸出功能。CONVST為啟動(dòng)轉(zhuǎn)換引腳。其它引腳分別接電源、數(shù)字地、模擬地,在布線(xiàn)時(shí)注意數(shù)字地和模擬地的分開(kāi),幾個(gè)電容推薦采用鉭電容,這樣可以提高系統(tǒng)的精度。
2隔離電路設(shè)計(jì)
為了提高系統(tǒng)的可靠性,本系統(tǒng)設(shè)計(jì)了電源隔離和SPI總線(xiàn)隔離電路,使LTCl859采集電路與Cortex-M3處理器電氣完全隔離,外部輸入信號(hào)不會(huì)影響到處理器電路的運(yùn)行,大大提高了系統(tǒng)的可靠性。下面從2個(gè)方面來(lái)重點(diǎn)介紹。
2.1電源隔離
LTCl 859的供電采用DC/DC變換器實(shí)現(xiàn)電源與CPU電源的隔離。電源模塊采用廣州金升陽(yáng)公司的B1212M-2M。B1212M-2M采用小型DIP封裝,溫度特性好,隔離電壓1000VDC。圖2中12V輸出電壓為前端信號(hào)調(diào)理電路中LM324芯片供電,后端電源采用了L7805CV穩(wěn)壓,為L(zhǎng)TCl859供電。
2.2S PI總線(xiàn)的隔離是非常關(guān)鍵的一部分
本系統(tǒng)采用了專(zhuān)用的s P I隔離芯片ADUMl411。它是ADI公司推出的四通道數(shù)字隔離芯片,單芯片可以替代4個(gè)光耦,采用芯片級(jí)脈沖變壓器磁耦合技術(shù),施密特觸發(fā)器輸入/輸出,隔離電壓2500V。與傳統(tǒng)的光耦隔離相比,具有壽命長(zhǎng),節(jié)省PCB(印制板)面積等諸多優(yōu)點(diǎn)。每個(gè)ADUMl411芯片含有3路數(shù)字輸出和1路數(shù)字輸入通道。由于LTCl859有5條控制線(xiàn)與Cortex-M3處理器進(jìn)行通訊,因此本系統(tǒng)選用了2片ADUMl411實(shí)現(xiàn)與Cortex-M3處理器的完全隔離。電路如圖3所示。
3軟件設(shè)計(jì)
系統(tǒng)采用SPI總線(xiàn)通信,軟件的關(guān)鍵是Cortex-M3處理器和LTCl859之間的時(shí)序匹配,下面詳細(xì)介紹。
3.1LT C 1859軟件配置
LTCl859是在SCK的下降沿傳輸,上升沿被捕獲,這就要求Cortex-M3處理器在進(jìn)行SPI初始化時(shí)采用上升沿?zé)o延時(shí)模式。8位的控制字通過(guò)SDI輸入,用于配置LTCl859以進(jìn)行下一個(gè)轉(zhuǎn)換,同時(shí)前一個(gè)轉(zhuǎn)換輸出在SDO上輸出,在數(shù)據(jù)交換的末端,在CONVST上施加1個(gè)上升沿啟動(dòng)被請(qǐng)求的轉(zhuǎn)換。轉(zhuǎn)換完成后,轉(zhuǎn)換結(jié)果將在下1個(gè)數(shù)據(jù)傳送周期提供。LTCl859的8位命令控制字在首8個(gè)SCK的上升沿按時(shí)間順序記錄到SDI輸入中,SDI隨后的輸入的位被忽略。8位的控制字含有對(duì)通道地址、信號(hào)輸入范圍和斷電模式的控制,具體內(nèi)容參見(jiàn)手冊(cè),這里不再贅述。本系統(tǒng)中配置為8通道單端輸入方式,信號(hào)輸入范圍默認(rèn)配置為0-5V,斷電模式設(shè)置為上電模式,不進(jìn)入打盹和休眠模式。
3.2C o rtex-M 3處理器S P I接口配置
Cortex-M3處理器的SPI接收設(shè)置為全雙工主模式。為了一次可以讀取到LTCl859轉(zhuǎn)換后的16位的結(jié)果,SPI接收設(shè)置為16位模式。禁止軟件NSs功能,SPI的速率默認(rèn)設(shè)置為256分頻后的速率,實(shí)際應(yīng)用可以根據(jù)需要進(jìn)行更改。初始化代碼如下:
3.3模數(shù)轉(zhuǎn)換采集
下面詳細(xì)介紹軟件編寫(xiě),SPI總線(xiàn)的時(shí)鐘很快,既可以采用中斷方式,也可以采用查詢(xún)方式。本系統(tǒng)采用查詢(xún)方式,其軟件流程如圖4所示。
程序源代碼及其詳細(xì)注釋如下,該函數(shù)的入口參數(shù)為通道號(hào),即為0-7,函數(shù)根據(jù)通道號(hào)讀取該通道的數(shù)據(jù),同時(shí)將該數(shù)據(jù)值返回,其中部分函數(shù)為STM32的庫(kù)函數(shù),這里不再詳細(xì)講述。
4結(jié)論
本系統(tǒng)成功實(shí)現(xiàn)了基于STM32處理器和LTCl859的16位高精度數(shù)據(jù)采集系統(tǒng),給出了全新實(shí)用的硬件和軟件設(shè)計(jì),適用于不同信號(hào)類(lèi)型和電壓范圍變化較大的數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)精度高,成本低,可靠性高,具有一定的應(yīng)用推廣價(jià)值。