一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用FPGA驅(qū)動(dòng)并行ADC和DAC芯片,使用不同編碼方式的ADC與DAC時(shí)的注意事項(xiàng)

FPGA設(shè)計(jì)論壇 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 2025-03-14 13:54 ? 次閱讀

概述

ADCDACFPGA與外部信號(hào)接口,從數(shù)據(jù)接口類型的角度劃分,有低速的串行接口和高速的并行接口。FPGA經(jīng)常用來(lái)采集中高頻信號(hào),因此使用并行ADC和DAC居多。本文將介紹如何使用FPGA驅(qū)動(dòng)并行ADC和并行DAC芯片。

并行接口包括兩種數(shù)字編碼方式:帶符號(hào)數(shù)signed與無(wú)符號(hào)數(shù)unsigned。本文還將介紹使用不同編碼方式的ADC與DAC時(shí)需要注意的問題。

接口協(xié)議

ADI公司的32M、8位ADC芯片AD9280和125M、8位DAC芯片AD9708為例(這是淘寶上最容易買到的AD/DA模塊)。

AD9280的時(shí)序圖如下:

a8e7f878-0098-11f0-9310-92fbcf53809c.jpg

AD9708的時(shí)序圖如下:

a8f43188-0098-11f0-9310-92fbcf53809c.jpg

由時(shí)序圖可知,AD9280在每個(gè)輸入clock的上升沿對(duì)輸入的模擬信號(hào)做一次采集,采集數(shù)據(jù)由數(shù)據(jù)總線data輸出;AD9708也是在每個(gè)輸入clock的上升沿讀取數(shù)據(jù)總線DB0-DB7上的數(shù)據(jù),將其轉(zhuǎn)換為相應(yīng)的電流IOUTA/IOUTB輸出。

這兩個(gè)芯片的管腳雖然很多,但大多數(shù)都是與硬件設(shè)計(jì)有關(guān)。其實(shí)幾乎所有的并行ADC和并行DAC與FPGA之間的接口只有一條時(shí)鐘線與一組數(shù)據(jù)總線,數(shù)據(jù)總線的位寬即為ADC/DAC的位數(shù)。每個(gè)時(shí)鐘周期ADC都會(huì)完成一次采集(DAC完成一次輸出),因此時(shí)鐘頻率也就是ADC和DAC的采樣頻率。

FPGA設(shè)計(jì)

并行ADC和DAC的接口時(shí)序驅(qū)動(dòng)非常簡(jiǎn)單,只要利用Quartus或Vivado自帶的時(shí)鐘管理IP核生成預(yù)期采樣頻率的時(shí)鐘信號(hào),驅(qū)動(dòng)時(shí)鐘線,從數(shù)據(jù)總線上讀出或?qū)懭霐?shù)據(jù)即可。

比如下面的代碼實(shí)現(xiàn)了將ADC采集到的數(shù)據(jù)再通過(guò)DAC輸出:

`timescale 1ns / 1ps

//-----------------------------------------------

// 將ADC采集到的數(shù)據(jù)通過(guò)DAC輸出

//-----------------------------------------------

module adda_test

(

inputclk,

outputdaclk,

output[7:0] dadata, //DA data

outputadclk,

input[7:0] addata //AD data

);

PLL PLL_inst

(

.clk_in1(clk), //IN

//Clock out ports

.clk_out1(adclk), //OUT 32Mhz

.clk_out2(daclk), //OUT 32Mhz

//Status and control signals

.reset(1'b0), //IN

.locked()

);

assign dadata = addata;

endmodule

上述代碼中實(shí)例化了一個(gè)PLL IP核產(chǎn)生ADC和DAC所需頻率的時(shí)鐘,Quartus中該IP核叫做“PLL”,Vivado中該IP核叫做“Clocking Wizard”。

為了保證DAC輸出與ADC采集到的信號(hào)相同,將兩者時(shí)鐘頻率設(shè)置相同,且連接二者的數(shù)據(jù)總線。上述代碼可以使用開發(fā)板和AD/DA模塊進(jìn)行實(shí)際測(cè)試。

編碼方式問題

上文用到的AD9280和AD9708都是無(wú)符號(hào)數(shù)編碼,而我們知道無(wú)論是Vivado還是Quartus中大多數(shù)的IP核采用的都是帶符號(hào)數(shù)二進(jìn)制補(bǔ)碼的編碼方式(二進(jìn)制原碼、補(bǔ)碼;有符號(hào)數(shù)、無(wú)符號(hào)數(shù)的問題可參考https://blog.csdn.net/fpgadesigner/article/details/80512067 ),這就導(dǎo)致ADC/DAC的數(shù)據(jù)總線不能與IP核接口直接對(duì)接,必須做一定的轉(zhuǎn)換處理。

考慮到上述數(shù)字系統(tǒng)的特點(diǎn),市場(chǎng)上也存在不少以帶符號(hào)數(shù)二進(jìn)制補(bǔ)碼接口的ADC/DAC,比如65M、12位ADC芯片AD9226。如果使用這種編碼方式的芯片,數(shù)據(jù)總線就可以直接與IP核接口對(duì)接,不需要做特殊處理。

但是,我們總會(huì)不可避免的遇到類似這樣的情況:

1. ADC或DAC是無(wú)符號(hào)數(shù)編碼,而設(shè)計(jì)中需要使用一些帶符號(hào)數(shù)接口的IP核;

2. ADC是帶符號(hào)數(shù)編碼,而設(shè)計(jì)中僅需獲取測(cè)量值,并不需要與其它帶符號(hào)數(shù)接口的模塊對(duì)接。

當(dāng)遇到情況1時(shí),需要進(jìn)行無(wú)符號(hào)數(shù)編碼與帶符號(hào)數(shù)編碼之間的轉(zhuǎn)換。將ADC采集到的8位無(wú)符號(hào)數(shù)轉(zhuǎn)換為帶符號(hào)數(shù)補(bǔ)碼形式的代碼如下:

/****將addata轉(zhuǎn)化為帶符號(hào)二進(jìn)制補(bǔ)碼形式 ****/

reg[7:0] ad_data;

always@ (posedge clk or negedge rst_n)

if(!rst_n) ad_data <= 8'd0;

elsead_data <= addata - 128;??? //AD9280采集輸入

將帶符號(hào)數(shù)補(bǔ)碼轉(zhuǎn)換為8位無(wú)符號(hào)數(shù)通過(guò)DAC輸出的代碼如下:

/****將dadata轉(zhuǎn)化為無(wú)符號(hào)數(shù)形式 ****/

reg[7:0] da_data;

always@ (posedge clk or negedge rst_n)

if(!rst_n) da_data <= 8'd0;

elseda_data <= dadata + 128;??? //AD9708輸出 ? ?

當(dāng)遇到情況2時(shí),需要將不易直接觀察的帶符號(hào)數(shù)補(bǔ)碼形式轉(zhuǎn)換為帶符號(hào)數(shù)原碼形式,使其更加直觀。代碼如下:

always @(posedge ad_clk) //AD9226采集

if(ad_ch1[11]==1'b1)begin //如果是負(fù)電壓

ch1_reg<=12'hfff?- ad_ch1 + 1'b1;

ch1_sig<= 45;??????????????????????????????? //'-' asic碼

end

elsebegin

ch1_reg<=ad_ch1;

ch1_sig<=43;??????????????????????????????? //'-'?asic碼

end

轉(zhuǎn)換的依據(jù)是一個(gè)簡(jiǎn)單的運(yùn)算關(guān)系:“補(bǔ)碼的整數(shù)值”+“原碼絕對(duì)值的整數(shù)值”=2^B,B為位寬。比如帶符號(hào)數(shù)原碼1110的補(bǔ)碼為1010:1110取絕對(duì)值0110為6;1010為10,二者加起來(lái)為2^4=16。

上述代碼便是利用了這個(gè)運(yùn)算關(guān)系。為了節(jié)省位寬,先用12’hfff減掉補(bǔ)碼,再加1,達(dá)到同樣的效果,得到帶符號(hào)數(shù)原碼的絕對(duì)值。根據(jù)符號(hào)位便可以知道這個(gè)原碼的正負(fù)情況。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8885

    瀏覽量

    152974
  • adc
    adc
    +關(guān)注

    關(guān)注

    99

    文章

    6611

    瀏覽量

    547739
  • dac
    dac
    +關(guān)注

    關(guān)注

    43

    文章

    2353

    瀏覽量

    192748
  • 編碼方式
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    5770

原文標(biāo)題:并行ADC與DAC

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用FPGA驅(qū)動(dòng)并行ADC并行DAC芯片?

    ADCDACFPGA與外部信號(hào)的接口,從數(shù)據(jù)接口類型的角度劃分,有低速的串行接口和高速的并行接口。
    的頭像 發(fā)表于 02-22 16:15 ?4689次閱讀
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>并行</b><b class='flag-5'>ADC</b>和<b class='flag-5'>并行</b><b class='flag-5'>DAC</b><b class='flag-5'>芯片</b>?

    尋找合適的FPGAADC,DAC

    有沒有具有1個(gè)通道12位的ADC,4個(gè)通道14位DAC的模塊,板子上有FPGA的板子;或者有沒有具有1個(gè)通道12位的ADC,4個(gè)通道14位DAC
    發(fā)表于 12-08 15:10

    ADC/DAC的基礎(chǔ)知識(shí)

    本博客旨在涵蓋“ADC / DAC教程”一文中所述的一般概念。本文介紹了不同類型的ADC / DAC架構(gòu),以及選擇ADC
    發(fā)表于 11-01 15:54

    請(qǐng)問是否有并行ADC并行DAC接口卡讓我能夠使用FX2 FMC連接器連接到FPGA板?

    嗨,您能指定哪種ADC / DAC適合Spartan 3AN入門套件嗎?是否有任何生產(chǎn)(由任何公司)并行ADC并行
    發(fā)表于 06-20 14:07

    FPGA驅(qū)動(dòng)并行ADC&DAC

    驅(qū)動(dòng)并行ADC并行DAC芯片。并行接口包括兩種數(shù)字
    發(fā)表于 09-27 09:40

    Σ-Δ型ADCDAC的特點(diǎn)及構(gòu)成有哪些?

    Σ-Δ型ADCDAC的特點(diǎn)及構(gòu)成有哪些?Σ-Δ型立體聲ADA電路TLC320AD75C的模擬與數(shù)字音頻數(shù)據(jù)接口技術(shù)、DAC的串行控制接口技術(shù)及該類器件有什么注意事項(xiàng)?
    發(fā)表于 04-07 06:55

    DACADC

    ADC 相反。在常見的數(shù)字信號(hào)系統(tǒng)中,大部分傳感器信號(hào)被化成電壓信號(hào),而 ADC 把電壓模擬信號(hào)轉(zhuǎn)換成易于計(jì)算機(jī)存儲(chǔ)、處理的數(shù)字編碼,由計(jì)算機(jī)處理完成后,再由 DAC 輸出電壓模擬
    發(fā)表于 08-09 07:32

    注意ADCDAC使用

    超聲波測(cè)距的距離作為輸入。注意ADCDAC使用時(shí)寫入PCF8591的控制字為0x41,高四位的”4“在ADCDAC時(shí)都要寫入,讓
    發(fā)表于 01-13 07:35

    ADCDAC的歷史進(jìn)程概況

    ADCDAC的歷史進(jìn)程概況 本文以ADC的分辨率及采樣頻率,超高速、高性能DAC,便攜式的需要,AV系統(tǒng)中的ADC
    發(fā)表于 02-26 15:06 ?2406次閱讀
    <b class='flag-5'>ADC</b>及<b class='flag-5'>DAC</b>的歷史進(jìn)程概況

    ADC/DAC,ADC/DAC的原理是什么?

    ADC/DAC,ADC/DAC的原理是什么? 產(chǎn)生原因 隨著現(xiàn)代科學(xué)技術(shù)的迅猛發(fā)展,特別是數(shù)字系統(tǒng)已廣泛應(yīng)用于各種學(xué)科領(lǐng)域及日常生活,微型計(jì)
    發(fā)表于 03-26 10:34 ?2.2w次閱讀

    Σ-Δ型ADCDAC的特點(diǎn)和使用注意事項(xiàng)

    本文介紹了Σ-Δ型ADCDAC的特點(diǎn)及構(gòu)成,并詳細(xì)論述了Σ-Δ型立體聲ADA電路TLC320AD75C的模擬與數(shù)字音頻數(shù)據(jù)接口技術(shù)、DAC的串行控制接口技術(shù)及該類器件的使用注意事項(xiàng)。
    發(fā)表于 08-12 12:50 ?5783次閱讀
    Σ-Δ型<b class='flag-5'>ADC</b>和<b class='flag-5'>DAC</b>的特點(diǎn)和使用<b class='flag-5'>注意事項(xiàng)</b>

    如何使用FPGA驅(qū)動(dòng)并行ADC并行DAC芯片

    ADCDACFPGA與外部信號(hào)的接口,從數(shù)據(jù)接口類型的角度劃分,有低速的串行接口和高速的并行接口。FPGA經(jīng)常用來(lái)采集中高頻信號(hào),因此使
    的頭像 發(fā)表于 04-21 08:55 ?7502次閱讀

    SAR ADC 的輸入注意事項(xiàng)

    SAR ADC 的輸入注意事項(xiàng)
    發(fā)表于 11-04 09:52 ?1次下載
    SAR <b class='flag-5'>ADC</b> 的輸入<b class='flag-5'>注意事項(xiàng)</b>

    并行接口的ADC、DAC的測(cè)試方法

    并行接口的ADC、DAC的測(cè)試方法 ADCDAC是兩種最常見的數(shù)據(jù)轉(zhuǎn)換器,用于模數(shù)(ADC)和
    的頭像 發(fā)表于 11-07 10:21 ?2262次閱讀

    STM32ADC中斷的使用注意事項(xiàng)和優(yōu)化建議

    使用中斷是提高系統(tǒng)性能和精確度的關(guān)鍵。本文將詳細(xì)介紹STM32ADC中斷的使用注意事項(xiàng)和優(yōu)化建議。 注意事項(xiàng): 1. 合理選擇中斷觸發(fā)方式:STM32
    的頭像 發(fā)表于 01-12 15:17 ?4068次閱讀