崔海朋



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