新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于MSP430和USB的數據采集系統

        基于MSP430和USB的數據采集系統

        作者: 時間:2012-03-19 來源:網絡 收藏

        主放大器我們選用美國ADI公司的精密儀表放大器AD620。

        圖3中運放U2部分組成了一個二階壓控低通有源濾波器。傳感器信號通過調節放大之后被送到濾波器的輸入端,通過濾波后將干擾部分消除。其傳遞函數為:。其中為特征角頻率。

        由于傳感器測量的是拉、壓力信號,即放大濾波后輸出的電壓信號為雙極性信號,范圍約為-10V~+10V,必須將它轉換為單極性信號,即對信號進行直流偏置,在此采用簡單的電阻分壓方式,如圖3所示。所需要的+2.5V電壓基準可以由F149提供。

        軟件設計

        的軟件設計主要包括單片機程序、驅動程序、PC機應用程序。單片機部分的程序也稱為固件,它包括設備的連接、協議和中斷處理等。 PDIUSBD12可以按照USB1.1協議對數據進行封裝,然后與PC機進行數據交換。根據接受到的命令通過PDIUSBD12與PC機的應用程序進行交互。

        向PDIUSBD12發送數據/命令部分程序如下:
        void outportb(unsigned char port, unsigned char val)
        {
        P1OUT=0xBF; /使PDIUSBD12的WR引腳為低電平
        P5DIR=0xFF; /P5口為輸出模式
        if(port)
        P1OUT|=A0; /A0為高電平,傳輸命令
        else
        P1OUT=~A0; /A0為低電平,傳輸數據

        P5OUT=val; /向PDIUSBD12寫數據
        P1OUT|=~0xBF; /恢復PDIUSBD12的WR引腳為高電平
        }
        MSP430從PDIUSBD12讀取數據的部分固件程序如下:
        unsigned char inportb(void)
        {
        unsigned char data=0x00;
        P1OUT= 0xDF; /使PDIUSBD12的RD引腳為低電平
        P5DIR=0x00; / P5口為輸入模式
        data=P5IN; /從PDIUSBD12讀取數據
        P1OUT|=~0xDF; /恢復PDIUSBD12的RD引腳為高電平
        return i;
        }

        MSP430中ADC12模塊提供了4種轉換模式,在此采取序列通道單次轉換模式,以方便上位機實時控制。四個通道A/D轉換只須啟動一次,最后一個通道轉換完成后設置中斷標志位。對轉換模式、轉換采樣時序以及轉換通道的設置如下:
        ADC12CTL0=ADC12ON+SHT0_2+MSC; /打開ADC12并設置采樣時間
        ADC12CTL1=SHP+CONSEQ_1; /序列通道單次轉換模式
        ADC12MCTL0=INCH_0; /選擇通道0
        ADC12MCTL1=INCH_1; /選擇通道1
        ADC12MCTL2= INCH_2; /選擇通道2
        ADC12MCTL3= INCH_3+EOS; /選擇通道3和序列結束標志
        ADC12CTL0|=ENC; /啟動AD轉換

        整個的過程都是由PC機為中心,PC機通過向MSP430發送命令來控制A/D轉換的開始和結束。對于MSP430收到的控制數據(命令),我們在此規定:

        字節1:0xFF----啟動A/D轉換,0xFE----停止A/D轉換

        如果MSP430收到的數據第一個字節是0xFF,先設置標志adflag=1,然后啟動A/D轉換并設置相應其他的參數,當四個通道的和轉換均完成,最后通過USB接口向PC發送采集到的數據。當MSP430收到的數據的第一個字節是0xFE,則設置adflag=0,不啟動A/D轉換。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 柘城县| 卫辉市| 潮州市| 鲁甸县| 理塘县| 嘉兴市| 乌恰县| 永修县| 苍梧县| 尼勒克县| 团风县| 洛浦县| 尖扎县| 宁城县| 水城县| 定边县| 祥云县| 沁源县| 额敏县| 泽库县| 临桂县| 慈利县| 南城县| 南涧| 和静县| 宁陵县| 赤峰市| 岑溪市| 神池县| 申扎县| 盘山县| 泸溪县| 磐石市| 桂东县| 互助| 九江市| 上林县| 星座| 玉山县| 商丘市| 井研县|