新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > ADS8344和FPGA的高精度數據采集前端

        ADS8344和FPGA的高精度數據采集前端

        作者: 時間:2008-02-16 來源: 收藏

          數據采集在工業測試系統中是一個很重要的環節,其精確性和可靠性是至關重要的。本文闡述的數據采集系統精度高達16位,能夠對8個外部模擬通道進行A/D采樣,最大模擬輸入信號范圍達到-15~+15V。該系統具有限幅保護功能,程序編寫簡便,能夠實現對遠端數據的采集和傳輸。

        本文引用地址:http://www.104case.com/article/78875.htm

          1 系統硬件設計

          數據采集系統框圖如圖1所示。

          

         

          圖中,A/D轉換器采用了TI公司的16位逐次逼近型ADS8344;FPGA主要用于控制ADC的啟動、停止和查詢ADC狀態等,同時對數據進行高速數據緩沖、異步數據編解碼、無線信道編解碼等數據處理。

          1.1 主要芯片ADS8344

          ADS8344是一款高性能、低功耗的ADC,采用2.7~5V單電源供電,最大采樣頻率為100 kHz,信噪比達84dB,自帶采樣/保持電路,包含8個單端模擬輸入通道(CH0~CH7),也可合成為4個差分輸入。參考電壓VRFF的范圍為500mV~VCC,相應的每個模擬通道的輸入為0V~VREF,DS8344是通過三線SPI接口與FPGA相互通信的,數據從DIN引腳輸入到8位只寫控制寄存器。當FPGA讀取完ADC上次轉換

          結果時,下一個轉換通道的控制字節就寫到了DIN引腳。一個完整的控制字節需要8個DCLK時鐘。寫完控制字節的同時,模/數轉換結束,模/數轉換狀態輸出引腳BUSY產生一下降沿,數據輸出有效,FPGA開始接收由DCUT輸出的轉換結果。16位串行數據需要16個DCLK時鐘,在接收串行數據的LSB位時,下一個通道的控制字開始輸入到A/D芯片。ADS8344完成一次完整的數據采樣保持、轉換和輸出共需要25個DCLK時鐘。ADS8344串行接口時序如圖2所示。

          

         

          1.2 信號調理電路

          數據采集前端的調理電路如圖3所示。2個運放選用的是TI公司的精密儀表放大器OPA277。由于輸入模擬電壓信號為雙極性,范圍為一15~+5 V,而ADX8344模擬輸入通道為O V~VREF(本系統是+5 V),所以必須對輸入信號進行單極性轉換。

          

         

          其傳遞函數為:

          

        公式

         

          式中:VOUT為轉換后的單極性電壓信號;VREF由電壓基準源提供,在圖中是+2.5V;VIN為輸入的一15~+15 V電壓信號。當R3=6R1、R4=6R2時,傳遞函數可化簡為:

          

        公式

         

          可見,傳遞函數是線性函數。只要正確選擇精確的電阻值,一15~+15 V電壓信號可線性轉換為O~+5V,從而保證了系統的精度。

          1.3 無線通道

          本系統是按用戶的要求設計開發的,其中,無線通道是由用戶提供的。本系統采用的無線通道是點對點傳輸,傳輸距離最遠達40 km,傳輸速率最高達11 Mbps,對標準異步串口數據是透明傳輸。A/D電路輸出的數據經FPGA高速數據緩沖、異步數據編碼、無線信道編碼等數據處理后,送到無線通道進行無線傳輸。遠端的無線接收機接收到數據后送到FPGA進行無線信道解碼、異步數據解碼等處理,恢復A/D采樣數據,然后或者送到D/A電路進行模擬量輸出,或者重新進行異步數據編碼送到PC機,由PC機對數據做進一步的分析處理。

          2 軟件設計

          本系統的軟件設計包括了FPGA硬件描述語言編程和PC機應用程序。

          2.1 FPGA編程

          FPGA編程使用VHDL語言,主要包括對ADS8344的數據讀寫、異步數據編解碼等。使用FPGA很容易實現SPI接口間的通信,對ADS8344的數據讀寫僅用兩個進程就可以實現。部分程序如下:

          (1)寫數據進程

          

        程序

         

          程序中的8位控制字節是在另一進程中根據用戶要求進行配置的。控制寄存器格式如下:

          

        控制寄存器格式

         

          控制寄存器各位的功能說明如下:

          S——控制字節開始位。為高時,才表示輸入的字節有效。

          A2~AO——模擬輸入通道選擇位。

          SGL/DIF——模擬通道輸入方式選擇位。為高時,為單端輸入i為低時,為雙端差分輸入。

          PDl~DO——功率管理選擇位。

          (2)讀數據進程

          

        程序

         

          ADS8344是多通道A/D轉換芯片,所以數據要添加通道地址碼。FPGA讀取了16位數據后,進行高速數據緩沖處理,使用速率與低速異步串口速率匹配。由于讀取的數據是16位,而異步數據是10位(1位起始位,8位數據位,l位停止位),因此要對數據重新編碼。用FPGA實現異步數據格式非常簡單。下面是異步數據編碼的部分程序:

          

        程序

         

          在數據編碼進程中,pdatam(15 downto 0)是A/D轉換出來的16位數據,分為4個異步數據幀。每幀的低4位是數據位,高4位是編碼位,數據編碼格式如表l所列。

          上位PC機以指定速率接收到如表l格式的4個異步數據幀后,去掉起始位、停止位,地址位和空閑位,按地址位順序重新排列數據,就得到D15~D0的16位A/D量化數據,PC機對數據可做進一步的處理。

          2.2 PC機編程

          PC機端的應用程序是在NI公司的LahView環境下開發的,主要用于對采集到的數據進行解封裝,顯示,控制整個數據采集系統的進行、停止,設置一些相應的參數,以及進行最后的數據分析處理。

          3 結論

          該系統綜合運用了FPGA硬件描述語言改變電路結構、算法技術和無線點對點傳輸技術,將兩者相結合應用在遠程數據采集中。該系統用戶界面友好,操作簡便,精度、速度以及系統可靠性完全滿足要求。該系統應用于某研究所試驗中的飛艇與地面間的數據采集傳輸。實踐表明,該系統適合用在要求采集通道多、精度高,但速率要求不高的數據采集中。



        關鍵詞: ADS8344 FPGA 數據采集

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安新县| 西乌| 桦甸市| 高安市| 偃师市| 高阳县| 临高县| 徐闻县| 内黄县| 乐亭县| 温泉县| 达州市| 张北县| 安义县| 嵩明县| 定州市| 柘城县| 清远市| 和平区| 三门峡市| 黄冈市| 大石桥市| 昆山市| 宜宾县| 桃江县| 新丰县| 连平县| 三门县| 山东省| 兴文县| 公主岭市| 盐城市| 密山市| 柳州市| 山西省| 普宁市| 都匀市| 丹东市| 元阳县| 阳曲县| 呼和浩特市|