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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PIC系列單片機(jī)開(kāi)發(fā)的高精度數(shù)據(jù)采集器

          基于PIC系列單片機(jī)開(kāi)發(fā)的高精度數(shù)據(jù)采集器

          作者: 時(shí)間:2011-10-18 來(lái)源:網(wǎng)絡(luò) 收藏
          1ADS1210引腳及功能
            ADS1210是一種、寬動(dòng)態(tài)范圍,采用單5V電源供電,具有24位分辨率的新型A/D轉(zhuǎn)換器。封裝形式有18腳雙列直插式和18線貼片式,引腳功能描述如表1。
            ●指令寄存器(INSR)
            指令寄存器是一個(gè)8位寄存器,它指明了系統(tǒng)是進(jìn)行讀操作還是寫(xiě)操作,并確定讀/寫(xiě)操作的字節(jié)長(zhǎng)度以及讀/寫(xiě)操作寄存器的起始地址。
            ●命令寄存器(CMR)
            命令寄存器是ADS1210的關(guān)鍵,它控制著ADS1210的所有特性功能。一旦串口時(shí)鐘的下降沿將數(shù)據(jù)字節(jié)的最后一位寫(xiě)入命令寄存器,新的模式就開(kāi)始生效。命令寄存器控制ADS1210所選用的選項(xiàng)和操作模式,包括可編程增益放大器的增益(G)設(shè)置、增強(qiáng)模式(TMR)、輸出數(shù)據(jù)率(Decimation)和校正方式等等。
            ●數(shù)據(jù)輸出寄存器(DOR)
            數(shù)據(jù)輸出寄存器保存最近的轉(zhuǎn)換結(jié)果?!皵?shù)據(jù)準(zhǔn)備就緒信號(hào)”變?yōu)榈碗娖角?,寄存器的?nèi)容被一個(gè)新的結(jié)果更新。
            ●失調(diào)寄存器(OCR)
            失調(diào)寄存器對(duì)放入數(shù)據(jù)輸出寄存器前的轉(zhuǎn)換結(jié)果進(jìn)行失調(diào)校正。在這種應(yīng)用中,失調(diào)寄存器的內(nèi)容可能是自校正結(jié)果,也可能是系統(tǒng)校正結(jié)果,通過(guò)串行口可以對(duì)失調(diào)寄存器進(jìn)行讀寫(xiě)。
            ●滿刻度校正寄存器(FCR)
            滿刻度校正寄存器對(duì)放入數(shù)據(jù)輸出寄存器前的轉(zhuǎn)換結(jié)果進(jìn)行滿刻度校正。實(shí)際的失調(diào)寄存器值和滿刻度校正寄存器值隨結(jié)構(gòu)、溫度和電源的變化而改變。因此,任何狀態(tài)下的失調(diào)寄存器和滿刻度校正寄存器的實(shí)際值都不能精確地預(yù)測(cè),也就是說(shuō),給定系統(tǒng)的校正不能簡(jiǎn)單地通過(guò)外部誤差的測(cè)量來(lái)獲得某一結(jié)果,將其寫(xiě)入寄存器作為校正因子。
            與ADS1210的通信是在數(shù)據(jù)轉(zhuǎn)換完成之后,即電平為低的時(shí)候開(kāi)始進(jìn)行的。通常首先是對(duì)指令寄存器進(jìn)行寫(xiě)操作,指明下一步要進(jìn)行操作的寄存器的起始地址和字節(jié)長(zhǎng)度以及系統(tǒng)是進(jìn)行讀操作還是寫(xiě)操作,由此決定接下來(lái)進(jìn)行什么類型的通信。之后隨著合適的時(shí)鐘脈沖產(chǎn)生(SCLK時(shí)鐘的周期數(shù)是由指令寄存器指定的字節(jié)長(zhǎng)度所決定的),對(duì)指令寄存器指定的寄存器進(jìn)行操作,完畢后等待引腳的下一個(gè)低電平產(chǎn)生,如此反復(fù)直到數(shù)據(jù)采集完成。
            在實(shí)際的測(cè)量中,電源是影響精度的重要因素。為了減小其影響,電源必須穩(wěn)定,噪聲小,因此,使用MAX666作+5V電壓的穩(wěn)壓芯片,以及利用外圍電容的作用減少電壓波動(dòng)。此外,ADS1210可使用本身的校正寄存器,通過(guò)編程對(duì)A/D轉(zhuǎn)換的數(shù)據(jù)進(jìn)行校正,進(jìn)一步提高測(cè)量精度。通過(guò)CMR的設(shè)置,使用者可自行選擇合適的校正模式。在背景校正下,校正以固定的時(shí)間間隔重復(fù)不斷地進(jìn)行,其他的幾種類型,一旦校正運(yùn)行完成就恢復(fù)正常運(yùn)行。本設(shè)計(jì)采用背景校正模式。??
            PIC系列單片機(jī)硬件系統(tǒng)設(shè)計(jì)簡(jiǎn)潔,指令系統(tǒng)設(shè)計(jì)精煉。集成了豐富的外圍模塊,可以通過(guò)對(duì)內(nèi)部的寄存器操作實(shí)現(xiàn)對(duì)外圍模塊的控制。
            串行擴(kuò)展通信接口是單片機(jī)與其他計(jì)算機(jī)或模塊之間進(jìn)行數(shù)據(jù)交換的重要渠道。PIC16F87X系列單片機(jī)主要配置有2種形式的串口通信模塊,即主控同步串行通信MSSP和通用同步/異步收發(fā)器USART。其中,MSSP模塊主要應(yīng)用于系統(tǒng)內(nèi)部近距離的串行通信,如SPI和I2C模式;USART模塊主要應(yīng)用于系統(tǒng)之間的遠(yuǎn)距離的串口通信。
            SPI(Serial Peripheral Interface)是一種單片機(jī)外設(shè)芯片同步串行擴(kuò)展接口,由于ADS1210自帶一個(gè)靈活的同步串行接口與SPI通信模式兼容,故本設(shè)計(jì)中與ADS1210進(jìn)行的所有數(shù)據(jù)交換都采用SPI的通信模式。的SPI模塊電路包含3個(gè)主要部分:發(fā)送緩沖器、接收緩沖器和移位寄存器。
            USART在異步模式下采用的數(shù)據(jù)格式為1位起始位、8位或9位數(shù)據(jù)位和1位停止位,無(wú)奇偶位校驗(yàn)碼,常用的數(shù)據(jù)為8位。片內(nèi)提供的8位波特率發(fā)生器BRG,可以利用系統(tǒng)時(shí)鐘信號(hào)產(chǎn)生標(biāo)準(zhǔn)的波特率頻率為串行傳送所用。USART具有分別獨(dú)立的發(fā)送器和接收器,但它們所采用的數(shù)據(jù)格式和波特率是相同的。本設(shè)計(jì)運(yùn)用單片機(jī)的USART異步發(fā)送功能通過(guò)MAX232芯片進(jìn)行必要的電平轉(zhuǎn)換后向上位機(jī)傳送所采集的數(shù)據(jù)。
            ADS1210與外部器件接口形式有雙線制、三線制、四線制和多線制,此處采用的是四線制實(shí)現(xiàn)與單片機(jī)的接口,接口信號(hào)是數(shù)據(jù)準(zhǔn)備就緒信號(hào)(),數(shù)據(jù)輸入/輸出線(SDIO)、數(shù)據(jù)輸出線(SDOUT)、時(shí)鐘信號(hào)線(SCLK)。具體見(jiàn)圖1。

            PIC單片機(jī)程序的流程圖如圖2。
            圖3是用來(lái)從串口接收數(shù)據(jù)的軟件運(yùn)行界面,作為本設(shè)計(jì)的測(cè)試軟件。接收區(qū)內(nèi)顯示的 數(shù)據(jù)是使用本所采集的幾組數(shù)據(jù),而界面下端的狀態(tài)欄RX顯示的是接收數(shù)據(jù)的組 數(shù),實(shí)驗(yàn)表明,本設(shè)計(jì)完全可以達(dá)到20位以上的精度。
            本設(shè)計(jì)可用于工業(yè)過(guò)程控制、儀器儀表、血液分析、智能發(fā)射機(jī)、電位計(jì)、質(zhì)量標(biāo)準(zhǔn)、 壓力轉(zhuǎn)換等高分辨率測(cè)量場(chǎng)合,例如可用于精度要求較高的電容式測(cè)壓微傳感器的性能測(cè)試 ,具有一定的通用性。


          評(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); })();