日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【汇编与接口】ADA转换器

發布時間:2024/3/7 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【汇编与接口】ADA转换器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 模擬量接口
  • A/D轉換器
    • A/D轉換器的主要技術指標
    • A/D轉換器的外部特性
  • A/D轉換器與CPU接口的原理和方法
    • A/D轉換器與CPU的連接
    • A/D轉換器的數據傳輸
    • A/D轉換器接口控制程序
  • A/D轉換器接口設計
    • A/D轉換器接口設計方案的分析
    • A/D轉換器接口設計
      • 例:查詢方式的ADC接口電路設計
      • 例:中斷方式的ADC接口設計
  • D/A轉換器
    • D/A轉換器的主要技術指標
    • D/A轉換器的外部特性
  • D/A轉換器與CPU接口的原理和方法
    • D/A轉換器與CPU的連接
    • D/A轉換器接口的主要任務
    • D/A轉換器接口設計方案的分析
  • D/A轉換器接口電路設計
    • 例:DAC接口電路設計

模擬量接口

在計算機應用系統中,采集對象往往是連續變化的物理量,因此需要對連接變化的物理量進行采樣、保持,再把模擬量轉換為數字量交給計算機處理。計算機輸出的數字量有時需要轉換為模擬量去控制某些執行元件。

  • A/D轉換器完成++模擬量->數字量++的轉換
  • D/A轉換器完成++數字量->模擬量++的轉換

A/D轉換器

A/D轉換器就是把模擬量轉換成數字量的過程。
數字量便于計算機的處理,是自動控制過程的重要步驟。
A/D轉換的原理很多,常見的有雙積分式、逐次逼近式、計數式等。輸出碼制有二進制、BCD碼等;輸出數據寬度(二進制)有8位、12位、16位、20位等。

A/D轉換器的主要技術指標

  • 分辨率
    指A/D轉換器能夠把模擬量轉換成二進制數的位數。
  • 例:用1個10位ADC轉換一個滿量程為5V的電壓,則可能分辨的最小電壓率為5000mV/1024=5mV。若模擬輸入值小于5mV,則ADC無反應,輸出保持不變。

    可見,**ADC的數字量輸出位數越多,其分辨率就越高。**當分辨率大于微機系統數據總線寬度時,每次轉換都需要兩次數據的傳輸。

  • 轉換時間
    從轉換啟動開始到轉換結束,得到穩定的數字量輸出所需要的時間。
    轉換時間的快慢將會影響ADC接口與CPU交換數據的方式。對于低中速的ADC一般采用查詢或中斷方式,對于高速的ADC應采用DMA方式。
    低速:查詢/中斷
    高速:DMA
  • A/D轉換器的外部特性

    任何一種A/D轉換器一般具有以下信號線:

  • 模擬信號輸入線,有單通道與多通道之分。
  • 數字量輸出線,線的數目決定了分辨率。
  • 轉換啟動線(輸入),每次啟動只能轉換一次數據。
  • 轉換結束線(輸出),表示ADC作一次轉換結束的狀態。
  • A/D轉換器與CPU接口的原理和方法

    A/D轉換器與CPU的連接

  • ADC的啟動信號
    :有脈沖啟動 和 電平啟動兩種。
  • ADC的輸入信號
    :有單通道和多通道之分。
  • ADC的輸出信號
    ADC輸出是否有三態鎖存;
    ADC的分辨率是否與系統數據總線一致。
  • ADC的轉換結束信號
    :作為查詢和中斷的依據。
  • A/D轉換器的數據傳輸

    數據的傳送可采用查詢、中斷和DMA方式。不同的方式的電路組成和編程方法不同。

    A/D采集的速度取決于:

  • A/D轉換器的轉換時間T;
  • 將數據存入內存所需要的數據傳輸時間$\tau$。(CSDN的md編輯器打不出來,就是很像t的那個讀作tao的符號)
    則采集數據的頻率上限為:
    f0=1/(T+$\tau$)
    上述幾種方法采集數據的速度是:
  • 查詢中斷DMA

    A/D轉換器接口控制程序

  • 查詢方式的數據采集程序框架
    • 接口芯片初始化(當采用可編程并行接口芯片時);
    • 選擇數據采集通道號(當采用多通道A/D芯片時);
    • 啟動A/D轉換;
    • 查詢轉換結束狀態;
    • 讀取采集數據;
    • 將數據傳輸到存儲器;
    • 在線進行數據處理(顯示、打印、存盤等);
    • 采集未完,繼續啟動下一次轉換;
    • 轉換完成,退出。
  • 中斷方式數據采集程序框架
    • 接口芯片初始化(當采用可編程并行口芯片時);
    • 可屏蔽中斷初始化,包括中斷向量修改、中斷申請的屏蔽等;
    • 選擇數據采集通道號(當采用多通道A/D轉換芯片時);
    • 啟動A/D轉換;
    • 開中斷,并等待中斷;
    • 轉換結束信號申請中斷;
    • 進入中斷服務程序,在服務程序中讀取數據,并將采集數據傳輸到存儲器以及進行在線數據處理;
    • 采集數據未完,繼續啟動下一次轉換;
    • 采集完成,返回。

    A/D轉換器接口設計

    A/D轉換器接口設計方案的分析

    ① ADC的模擬量輸入是否是多通道?
    ② ADC的分辨率是否大于系統數據總線寬度?
    ③ ADC芯片內部是否有三態輸出鎖存器?
    ④ ADC的啟動方式是脈沖觸發還是電平觸發?
    ⑤ A/D轉換的數據采用哪種傳輸方式?
    ⑥ A/D轉換的數據進行什么樣的處理?
    ⑦ ADC接口電路采用什么元器件組成?

    A/D轉換器接口設計

    例:查詢方式的ADC接口電路設計

  • 要求
    利用ADC0804采集100個數據,采集的數據以查詢方式傳輸到內存BUFR區。接口電路采用普通IC芯片組成。
  • 分析
    ADC0804是單個模擬量輸入;
    ADC0804的分辨率為8位,并具有三態輸出鎖存器;
    ADC0804的啟動方式為脈沖啟動;
    數據傳輸方式為查詢方式。

  • STARTP EQU 310H ; 轉換啟動端口 STATEP EQU 311H ; 狀態端口 DATAP EQU 310H ; 數據端口 DATA SEGMENT BUFR DB 1000) DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA BEGIN: MOV SI, OFFSET BUFR ; 緩沖區指針 MOV CX,100 ; 采樣次數 START: MOV DX,STARTP ; 啟動轉換 MOV AL,00H ;(可以是任意值) OUT DX,AL ; 使CS和WR同時有效 WAIT1: MOV DX,STATEP ; 查轉換結束 IN AL,DX AND AL,80H ; 查D7=0(INTR=0?) JNZ WAIT1 ; 未結束,等待 MOV DX,DATAP ; 已結束,讀數據 IN AL,DX MOV[SI],AL ; 數據傳輸到BUFR區 INC SI ;緩沖區地址加1 DEC CX ; 采樣次數減1 JNZ START ; 未完,繼續啟動 MOV AX,4C00H ; 已完,退出 INT 21H CODE ENDS END BEGIN

    例:中斷方式的ADC接口設計

  • 要求
    采用ADC0809,從通道7采集100個數據,采集的數據以中斷方式傳輸到內存緩沖區,并將轉換結束信號EOC連到IRQ4上,請求中斷。
  • 分析
    要實現上述要求,至少有3個方面的問題需要考慮:
    被控對象ADC0809的特性;
    接口電路結構形式;
    中斷處理。



  • ADC0809的工作過程

    根據時序圖,ADC0809的工作過程如下:

  • 把通道地址送到ADDA~ADDC上,選擇模擬輸入;
  • 在通道地址信號有效期間,ALE上的上升沿該地址鎖存到內部地址鎖存器;
  • START引腳上的下降沿啟動A/D轉換;
  • 轉換開始后,EOC引腳呈現低電平,EOC重新變為高電平時表示轉換結束;
  • OE信號打開輸出鎖存器的三態門送出結果。
  • 接口電路結構形式:
    采用可編程接口芯片82C55A

    中斷處理:
    本例題是利用微機系統的中斷資源,故不需做中斷系統的硬件連接和82C59A的初始化。

    只需做兩件事:

    • 中斷向量的修改(IRQ4);
    • 開放IRQ4的中斷和CPU中斷。
  • 硬件設計
    本接口電路應能提供如下信號:
    • ADC0809模擬量通道號選擇信號
    • 啟動信號
    • 讀數據允許信號
      (此前3個由82C55A接口芯片實現)
    • EOC的中斷請求:直接連到系統總線的IRQ4上。

    82C55A的4個端口地址是:
    300H(A口)、301H(B口)、302H(C口)、303H(命令口)。


    MOV DX,303H ;82C55初始化,A口輸入MOV AL,90HOUT DX,ALMOV AL,0EH ;置PC7=0,使START和ALE無效OUT DX,ALMOV AL,0CH ;置PC6=0,使OE無效OUT DX,ALMOV AX,350CH ;獲取IRQ4的中斷向量并保存INT 21HMOV OLD-OFF,BXMOV BX,ESMOV OLD-SEG,BXCLIMOV AX,250CH ;置新中斷向量MOV DX,SEG A-DMOV DS,DXMOV DX,OFFSET A-DINT 21HMOV AX,DATA ;恢復數據段MOV DS,AXSTIIN AL,21H ;開放IRQ4AND AL,0EFHOUT 21H,ALMOV CX,100 ;設置采集字節數MOV DI,OFFSET BUFF ;設置內存指針 BEGIN:MOV DX,303H ;82C55初始化,A口輸出MOV AL,80HOUT DX,ALMOV DX,300H ;選擇通道7MOV AL,07HOUT DX,ALMOV DX,303H ;啟動轉換MOV AL,0FH ;START啟動(地址鎖存)OUT DX,ALNOPMOV AL,0EH ;START啟動(啟動轉換)OUT DX,ALSTI ;開中斷HLT ;等待中斷DEC CX ;采樣次數減1JNZ BEGIN ;沒完,繼續CLI ;已完,關中斷MOV AX,250CH ;恢復IRQ4的原中斷向量MOV DX,OLD-SEGMOV DS,DXMOV DX,OLD-OFFINT 21HMOV AX,DATA ;恢復數據段MOV DS,AXSTIIN AL,21HOR AL,10H ;屏蔽IRQ4OUT 21H,ALMOV AX,4C00H ;返回DOSINT 21H A-D PROC FAR ;中斷服務程序PUSH AX ;保護現場PUSH DXCLI ;關中斷MOV DX,303H ;打開三態鎖存器MOV AL,0DHOUT DX,AL ;置PC6=1高MOV DX,303H ;82C55初始化,A口輸入MOV AL,90HOUT DX,ALMOV DX,300HIN AL,DX ;從PA口讀數據MOV AH,ALMOV DX,303HMOV AL,0CHOUT DX,AL ;置PC6=0低MOV [DI],AH ;存取數據INC DI ;內存地址指針加1MOV AL,20H ;發中斷結束命令OUT 20H,ALPOP DX ;恢復現場POP AXSTI ;開中斷IRET ;中斷返回 A-D ENDP

    D/A轉換器

    D/A轉換器的主要技術指標

  • 分辨率
    指DAC能夠把多少位二進制數轉換成模擬量。
  • 例:DAC0832能夠把8位二進制數轉換成電流,所以DAC0832的分辨率是8位。

  • 轉換時間
    從數字量輸入到DAC完成轉換所需要的時間。
  • D/A轉換器的外部特性

    DAC的外部信號線包括:

  • 數字信號輸入線;
  • 模擬信號輸出線
  • CS信號線和WR(或WR1,WR2)信號線(注意都帶上劃線,即低電平有效),用于形成DAC的啟動轉換信號;
  • 數據輸入鎖存控制線;
  • 模擬量輸出通道地址線。
  • D/A轉換器與CPU接口的原理和方法

    D/A轉換器與CPU的連接

    DAC與CPU的接口包括硬件連接和軟件編程。DAC接口電路的結構形式也有下列幾種:

  • 采用中小規模邏輯芯片;
  • 利用可編程并行I/O接口芯片;
  • 采用GAL器件。
  • D/A轉換器接口的主要任務

    D/A與A/D有很多不同之處,表現在:

  • DAC一般不需要專門的控制信號去觸發,只要CPU把數據送到它的輸入端,就開始轉換。
  • DAC不提供轉換結束狀態信號。
  • DAC主要解決的是:

  • CPU與DAC之間的數據緩沖問題
  • 當D/A轉換器的分辨率大于數據總線的寬度時,CPU必須分兩次傳送和同時選通。
  • D/A轉換器接口設計方案的分析

    ① DAC的模擬量輸出是否是多通道?
    ② DAC的分辨率是否大于系統數據總線的寬度?
    ③ DAC芯片內部是否有三態輸入鎖存器?
    ④ DAC的啟動方式,只有脈沖觸發一種。DAC不設專門的轉換啟動信號,是利用CS和IOW共同進行假寫操作,來實現脈沖啟動的。
    ⑤ DAC的數據傳輸方式,只有無條件傳輸一種。
    ⑥ DAC接口電路采用什么元器件組成?

    D/A轉換器接口電路設計

    例:DAC接口電路設計

  • 要求
    通過DAC0832產生三角波、鋸齒波、方波等。
  • 分析
    • DAC0832是單通道模擬量輸出,不需通道選擇;
    • DAC0832有兩級緩沖鎖存器,它有3種工作方式:
      雙緩沖方式、單緩沖方式和直通方式。

    引腳功能:

    • CS:片選信號,與ILE配合選定芯片
    • ILE:輸入鎖存允許
    • WR1:寫輸入鎖存器
      上述三個信號用于把數據寫入到輸入鎖存器
    • WR2:寫DAC寄存器
    • XFER:允許輸入鎖存器的數據傳送到DAC寄存器
      上述二個信號用于啟動轉換
    • D7~D0:輸入數據線
    • IOU1、IOU2:D/A轉換差動電流輸出,接運放的輸入
    • Rfb:內部反饋電阻引腳,接運放輸出
    • VREF:參考電壓:-10V~+10V,一般為+5V或+10V
    • VCC: 芯片電源:+5V~+15V,最佳工作狀態:+15V
    • AGND、DGND:模擬地和數字地

    DAC0832有三種工作方式:

  • 雙緩沖方式(LE1和LE2分別控制)
    1:直通。輸出隨輸入變化
    0:鎖存
  • 單緩沖方式(其中LE1和LE2有一個直通)
  • 直通方式(LE1和LE2均為直通)
  • 注:在DAC實際連接中,要注意區分“模擬地”和“數字地”的連接,為了避免信號串擾,數字量部分只能連接到數字地,而模擬量部分只能連接到模擬地。

    雙緩沖方式(標準方式)
    轉換要有兩個步驟:

    • 將數據寫入輸入寄存器
      • CS=0、WR1=0、ILE=1 -> WR1=1
    • 將輸入寄存器的內容寫入DAC寄存器
      • WR2=0、XFER=0 -> WR2=1

    優點:
    數據接收與D/A轉換可異步進行;
    可實現多個DAC同步轉換輸出。
    ++分時寫入、同步轉換++




    軟件設計:三角波程序

    8255初始化MOV DX,303H ;8255的命令口MOV AL,10000000B ;8255的方式字OUT DX,AL ;指定B口控制DAC的轉換MOV DX,301H ;8255A的B口地址MOV AL,00010000B ;置DAC0832為直通工作方式OUT DX,AL ;生成三角波的循環MOV DX,300H ;8255A的A口地址MOV AL,0H ;輸出數據從0開始 L1:OUT DX,ALINC AL ;輸出數據加1JNZ L1 ;AL是否加滿?未滿繼續MOV AL,0FFH ;已滿,AL置全1 L2:OUT DX,AL DEC AL ;輸出數據減1JNZ L2 ;AL是否減到0?不為0繼續JMP L1 ;為0,AL加1



    總結

    以上是生活随笔為你收集整理的【汇编与接口】ADA转换器的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。