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