<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 設(shè)計(jì)應(yīng)用 > 基于STM 32和LTC 1859的數(shù)據(jù)采集系統(tǒng)

          基于STM 32和LTC 1859的數(shù)據(jù)采集系統(tǒng)

          作者:崔海朋 時(shí)間:2020-03-03 來(lái)源:電子產(chǎn)品世界 收藏

          崔海朋 (青島杰瑞工控技術(shù)有限公司,山東?青島?266071)

          本文引用地址:http://www.ex-cimer.com/article/202003/410486.htm

          摘? 要:現(xiàn)在很多采集系統(tǒng)要求較高的精度,而且信號(hào)形式、范圍也有所不同,處理電路比較復(fù)雜,硬件成本 高。為了解決該問題,設(shè)計(jì)了基于STM32和的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ù)采集;;

          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ì)的基于處理 器和 的 16位高精度數(shù)據(jù)采集系統(tǒng),不僅可以 實(shí)現(xiàn)8路的電流信號(hào)的輸入,還可以實(shí)現(xiàn)8路電壓信號(hào)的 輸入,對(duì)輸入信號(hào)的范圍可以通過軟件來(lái)設(shè)置,同時(shí) AD采集電路與處理器采用了電源隔離和信 號(hào)隔離,提高了系統(tǒng)的可靠性。 

          LTC1859是ADI公司推出的一款高性能的具停機(jī)功 能的8通道、 16位、100 ksps的 AD轉(zhuǎn)換器,每個(gè)通道可 通過軟件實(shí)現(xiàn) 0~5 V,0~10 V,0~±5 V,0~± 10V的 不同范圍的輸入電壓,同時(shí)還可以實(shí)現(xiàn)單輸入和差分 信號(hào)輸入的選擇,每個(gè)通道可承受至±25 V的故障保 護(hù)。LTC1859的多路復(fù)用器可以配置為接受 4個(gè)差分輸 入、8個(gè)單端輸入、或差分與單端輸入的組合。該器件 提供了卓越的DC性能,具有在整個(gè)溫度范圍內(nèi)的15位無(wú)漏失碼和±3 LSB MAX INL。LTC1859與控制器之 間采用SPI總線進(jìn)行通信。LTC1859用單5 V電源工作, 同時(shí)僅消耗40 mW功率。LTC1859還具有溫度系數(shù)為 ±1.0×10-5/℃的 2.5 V內(nèi)部基準(zhǔn),如果需要較高的準(zhǔn)確 度,還可以從外部驅(qū)動(dòng)。對(duì)于那些對(duì)功耗敏感的應(yīng)用, LTC1859提供了兩種斷電模式:打盹模式和休眠模式。 

          本系統(tǒng)的 Cortex-M3處理器為意法半導(dǎo)體公司推 出的32位RISC處理器STM32F103VCT6,主頻最高可 達(dá)72 MHz。該處理器具有256 kB的程序存儲(chǔ)器,48 kB 的RAM,同時(shí)它有8個(gè)定時(shí)器、5路串口、3路SPI、2 路I2C,具有獨(dú)立看門狗和窗口看門狗,非常適合于與 LTC1859構(gòu)成高精度的數(shù)據(jù)采集和控制系統(tǒng)。

          1  硬件系統(tǒng)設(shè)計(jì) 

          本系統(tǒng)設(shè)計(jì)了由 2片LM324運(yùn)放和1片 LTC1859構(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為電壓跟隨器電路,這里不再詳述。LTC1859的電路如圖1所示。本電路具有通用性,在實(shí) 際應(yīng)用中性能穩(wěn)定,效果很好。下面對(duì)電路進(jìn)行詳細(xì) 分析。 

          1583481848753474.jpg

          1583481873971949.jpg

          LTC1859引腳中CH0~CH7是8路模擬輸入通道, 在本系統(tǒng)中構(gòu)成了8路單端輸入信號(hào)。 MUXOUT+、 MUXOUT-為模擬復(fù)用器的正負(fù)輸出,把它們連在 ADC+、ADC-上進(jìn)行正常操作。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總線的時(shí)鐘,接 在Cortex-M3處理器的SPICLK上。RD為引腳SDO數(shù)字 輸出的能使信號(hào),當(dāng)RD為低能使輸出,當(dāng)RD為高SDO 為高阻抗。在本系統(tǒng)中,該引腳連接至地,一直使能

          LTC1859的輸出功能。CONVST為啟動(dòng)轉(zhuǎn)換引腳。其它 引腳分別接電源、數(shù)字地、模擬地,在布線時(shí)注意數(shù)字 地和模擬地的分開,幾個(gè)電容推薦采用鉭電容,這樣可 以提高系統(tǒng)的精度。

          2  隔離電路設(shè)計(jì) 

          為了提高系統(tǒng)的可靠性,本系統(tǒng)設(shè)計(jì)了電源隔離和 SPI總線隔離電路,使LTC1859采集電路與Cortex-M3處 理器電氣完全隔離,外部輸入信號(hào)不會(huì)影響到處理器電 路的運(yùn)行,大大提高了系統(tǒng)的可靠性。下面從2個(gè)方面 來(lái)重點(diǎn)介紹。 

          2.1 電源隔離 

          LTC1859的供電采用DC/DC變換器實(shí)現(xiàn)電源與 CPU電源的隔離。電源模塊采用廣州金升陽(yáng)公司的 B1212M-2M。B1212M-2M采用小型DIP封裝,溫度特 性好,隔離電 壓1 000 V DC。 圖2中12 V輸出 電壓為前端信 號(hào)調(diào)理電路中 LM324芯片供 電,后端電源采 用了L7805CV穩(wěn) 壓,為L(zhǎng)TC1859 供電。 

          2.2 SPI總線的 隔離是非常關(guān) 鍵的一部分 

          本系統(tǒng)采 用了專用的 SPI隔離芯片 ADUM1411。 它是ADI公司推 出的四通道數(shù) 字隔離芯片, 單芯片可以替 代 4 個(gè)光耦,采用芯片級(jí)脈沖變壓器磁耦合技術(shù),施密特觸發(fā)器輸 入/輸出,隔離電壓2 500 V。與傳統(tǒng)的光耦隔離相比, 具有壽命長(zhǎng),節(jié)省PCB(印制板)面積等諸多優(yōu)點(diǎn)。 每個(gè)ADUM1411芯片含有3路數(shù)字輸出和1路數(shù)字輸入 通道。由于LTC1859有5條控制線與Cortex-M3處理器 進(jìn)行通訊,因此本系統(tǒng)選用了2片ADUM1411實(shí)現(xiàn)與 Cortex-M3處理器的完全隔離。電路如圖3所示。

          1583481892562032.jpg

          3  軟件設(shè)計(jì) 

          系統(tǒng)采用SPI總線通信,軟件的關(guān)鍵是Cortex-M3處 理器和LTC1859之間的時(shí)序匹配,下面詳細(xì)介紹。 

          3.1 LTC1859軟件配置 

          LTC1859是在SCK的下降沿傳輸,上升沿被捕獲, 這就要求Cortex-M3處理器在進(jìn)行SPI初始化時(shí)采用上 升沿?zé)o延時(shí)模式。8位的控制字通過SDI輸入,用于配 置LTC1859以進(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ù)傳送周期提供。LTC1859的8位命令控制字 在首8個(gè)SCK的上升沿按時(shí)間順序記錄到SDI輸入中, SDI隨后的輸入的位被忽略。8位的控制字含有對(duì)通道地 址、信號(hào)輸入范圍和斷電模式的控制,具體內(nèi)容參見手 冊(cè),這里不再贅述。本系統(tǒng)中配置為8通道單端輸入方 式,信號(hào)輸入范圍默認(rèn)配置為0~5 V,斷電模式設(shè)置為上電模式,不進(jìn)入打盹和休眠模式。 

          3.2 Cortex-M3處理器SPI接口配置 

          Cortex-M3處理器的SPI接收設(shè)置為全雙工主模式。 為了一次可以讀取到LTC1859轉(zhuǎn)換后的16位的結(jié)果, SPI接收設(shè)置為16位模式。禁止軟件NSS功能,SPI的速 率默認(rèn)設(shè)置為256分頻后的速率,實(shí)際應(yīng)用可以根據(jù)需 要進(jìn)行更改。初始化代碼如下:

          void SPI1_Configuration(void) 

          SPI_InitTypeDef   SPI_ InitStructure; 

          SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  //全雙工 

          SPI_InitStructure.SPI_Mode = SPI_Mode_Master;   //主模式 

          SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;//16bit模式 

          SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;   //空閑時(shí)為低電平 

          SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //上升沿?zé)o延遲模式 

          SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;  //禁止軟件NSS功能 

          SPI_InitStructure.SPI_BaudRatePrescaler = SPI_ BaudRatePrescaler_256;      //SPI速率設(shè)置 

          SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //高位先發(fā) 

          SPI_Init(SPI1, &SPI_InitStructure); 

          SPI_Cmd(SPI1, ENABLE); 

          3.3 模數(shù)轉(zhuǎn)換采集 

          下面詳細(xì)介紹軟件編寫,SPI總線的時(shí)鐘很快,既 可以采用中斷方式,也可以采用查詢方式。本系統(tǒng)采用查詢方式,其軟件流程如圖 4所示。

          微信截圖_20200306160129.jpg

          程序源代碼及其詳細(xì)注釋如下,該函數(shù)的入口參數(shù) 為通道號(hào),即為0~7,函數(shù)根據(jù)通道號(hào)讀取該通道的數(shù) 據(jù),同時(shí)將該數(shù)據(jù)值返回,其中部分函數(shù)為STM32的庫(kù) 函數(shù),這里不再詳細(xì)講述。 

          u16 ReadADC1859(u16 channel) 

          u16 control_code; 

          control_code=Get_Control_Code(channel);//根 據(jù)通道計(jì)算控制字 

          while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_ FLAG_TXE) == RESET); //等待發(fā)送緩沖器為空 

          SPI_I2S_SendData(SPI1,control_code);   //發(fā)送 控制字 

          while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_ FLAG_RXNE) == RESET);//等待接收緩沖器變非空 

          temp_value = SPI_I2S_ReceiveData(SPI1); / / 讀取數(shù)據(jù) 

          GPIO_ResetBits(GPIOA, GPIO_Pin_4);//convst 置低 

          GPIO_SetBits(GPIOA, GPIO_Pin_4);  //convst 置高啟動(dòng)一個(gè)轉(zhuǎn)換 

          delay40ns();  //延遲 

          delay40ns(); 

          GPIO_ResetBits(GPIOA, GPIO_Pin_4);//將 convst拉低 

          while(GPIO_ReadInputDataBit(GPIOC, GPIO_ Pin_4)==0x00); //等待busy變高 

          delay40ns();  //延遲 

          delay40ns(); 

          while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_ FLAG_TXE) == RESET); //等待發(fā)送緩沖器為空

          SPI_I2S_SendData(SPI1,control_code);   //發(fā)送 控制字 

          while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_ FLAG_RXNE) == RESET);//等待接收緩沖器變非空 

          temp_value = SPI_I2S_ReceiveData(SPI1); / / 讀取數(shù)據(jù) 

          return temp_value; //數(shù)據(jù)返回 

          }

          4  結(jié)論 

          本系統(tǒng)成功實(shí)現(xiàn)了基于STM32處理器和LTC1859的 16位高精度數(shù)據(jù)采集系統(tǒng),給出了全新實(shí)用的硬件和軟 件設(shè)計(jì),適用于不同信號(hào)類型和電壓范圍變化較大的數(shù) 據(jù)采集系統(tǒng)。該系統(tǒng)精度高,成本低,可靠性高,具有 一定的應(yīng)用推廣價(jià)值。

          參考文獻(xiàn): 

          [1] LTC1857/LTC1858/LTC1859 DataSheet[EB]. Linear Corp, 2004. 

          [2] 李軍民,祝紅軍,王瑞.基于DSP和LTC1859數(shù)據(jù)采集系統(tǒng)設(shè)計(jì) [J].微計(jì)算機(jī)信息,2010,26(02):115-117. 

          [3] 陳東升,高俊俠,胡科堂.基于STM32的遠(yuǎn)程溫控系統(tǒng)設(shè)計(jì)[J].電 子產(chǎn)品世界,2011(5):30-32. 

          [4] 王永虹,徐煒,郝立平.STM32系列ARM Cortex-M3微控制器原理及實(shí)踐[M].北京:北京 航空航天大學(xué)出版社,2008.

          本文來(lái)源于科技期刊《電子產(chǎn)品世界》2020年第03期第43頁(yè),歡迎您寫論文時(shí)引用,并注明出處。



          關(guān)鍵詞: 202003 Cortex-M3 LTC1859

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();