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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【汇编与接口】ADA转换器

發(fā)布時(shí)間:2024/3/7 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【汇编与接口】ADA转换器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

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

模擬量接口

在計(jì)算機(jī)應(yīng)用系統(tǒng)中,采集對(duì)象往往是連續(xù)變化的物理量,因此需要對(duì)連接變化的物理量進(jìn)行采樣、保持,再把模擬量轉(zhuǎn)換為數(shù)字量交給計(jì)算機(jī)處理。計(jì)算機(jī)輸出的數(shù)字量有時(shí)需要轉(zhuǎn)換為模擬量去控制某些執(zhí)行元件。

  • A/D轉(zhuǎn)換器完成++模擬量->數(shù)字量++的轉(zhuǎn)換
  • D/A轉(zhuǎn)換器完成++數(shù)字量->模擬量++的轉(zhuǎn)換

A/D轉(zhuǎn)換器

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

A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)

  • 分辨率
    指A/D轉(zhuǎn)換器能夠把模擬量轉(zhuǎn)換成二進(jìn)制數(shù)的位數(shù)。
  • 例:用1個(gè)10位ADC轉(zhuǎn)換一個(gè)滿量程為5V的電壓,則可能分辨的最小電壓率為5000mV/1024=5mV。若模擬輸入值小于5mV,則ADC無(wú)反應(yīng),輸出保持不變。

    可見(jiàn),**ADC的數(shù)字量輸出位數(shù)越多,其分辨率就越高。**當(dāng)分辨率大于微機(jī)系統(tǒng)數(shù)據(jù)總線寬度時(shí),每次轉(zhuǎn)換都需要兩次數(shù)據(jù)的傳輸。

  • 轉(zhuǎn)換時(shí)間
    從轉(zhuǎn)換啟動(dòng)開(kāi)始到轉(zhuǎn)換結(jié)束,得到穩(wěn)定的數(shù)字量輸出所需要的時(shí)間。
    轉(zhuǎn)換時(shí)間的快慢將會(huì)影響ADC接口與CPU交換數(shù)據(jù)的方式。對(duì)于低中速的ADC一般采用查詢或中斷方式,對(duì)于高速的ADC應(yīng)采用DMA方式。
    低速:查詢/中斷
    高速:DMA
  • A/D轉(zhuǎn)換器的外部特性

    任何一種A/D轉(zhuǎn)換器一般具有以下信號(hào)線:

  • 模擬信號(hào)輸入線,有單通道與多通道之分。
  • 數(shù)字量輸出線,線的數(shù)目決定了分辨率。
  • 轉(zhuǎn)換啟動(dòng)線(輸入),每次啟動(dòng)只能轉(zhuǎn)換一次數(shù)據(jù)。
  • 轉(zhuǎn)換結(jié)束線(輸出),表示ADC作一次轉(zhuǎn)換結(jié)束的狀態(tài)。
  • A/D轉(zhuǎn)換器與CPU接口的原理和方法

    A/D轉(zhuǎn)換器與CPU的連接

  • ADC的啟動(dòng)信號(hào)
    :有脈沖啟動(dòng) 和 電平啟動(dòng)兩種。
  • ADC的輸入信號(hào)
    :有單通道和多通道之分。
  • ADC的輸出信號(hào)
    ADC輸出是否有三態(tài)鎖存;
    ADC的分辨率是否與系統(tǒng)數(shù)據(jù)總線一致。
  • ADC的轉(zhuǎn)換結(jié)束信號(hào)
    :作為查詢和中斷的依據(jù)。
  • A/D轉(zhuǎn)換器的數(shù)據(jù)傳輸

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

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

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

    A/D轉(zhuǎn)換器接口控制程序

  • 查詢方式的數(shù)據(jù)采集程序框架
    • 接口芯片初始化(當(dāng)采用可編程并行接口芯片時(shí));
    • 選擇數(shù)據(jù)采集通道號(hào)(當(dāng)采用多通道A/D芯片時(shí));
    • 啟動(dòng)A/D轉(zhuǎn)換;
    • 查詢轉(zhuǎn)換結(jié)束狀態(tài);
    • 讀取采集數(shù)據(jù);
    • 將數(shù)據(jù)傳輸?shù)酱鎯?chǔ)器;
    • 在線進(jìn)行數(shù)據(jù)處理(顯示、打印、存盤(pán)等);
    • 采集未完,繼續(xù)啟動(dòng)下一次轉(zhuǎn)換;
    • 轉(zhuǎn)換完成,退出。
  • 中斷方式數(shù)據(jù)采集程序框架
    • 接口芯片初始化(當(dāng)采用可編程并行口芯片時(shí));
    • 可屏蔽中斷初始化,包括中斷向量修改、中斷申請(qǐng)的屏蔽等;
    • 選擇數(shù)據(jù)采集通道號(hào)(當(dāng)采用多通道A/D轉(zhuǎn)換芯片時(shí));
    • 啟動(dòng)A/D轉(zhuǎn)換;
    • 開(kāi)中斷,并等待中斷;
    • 轉(zhuǎn)換結(jié)束信號(hào)申請(qǐng)中斷;
    • 進(jìn)入中斷服務(wù)程序,在服務(wù)程序中讀取數(shù)據(jù),并將采集數(shù)據(jù)傳輸?shù)酱鎯?chǔ)器以及進(jìn)行在線數(shù)據(jù)處理;
    • 采集數(shù)據(jù)未完,繼續(xù)啟動(dòng)下一次轉(zhuǎn)換;
    • 采集完成,返回。

    A/D轉(zhuǎn)換器接口設(shè)計(jì)

    A/D轉(zhuǎn)換器接口設(shè)計(jì)方案的分析

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

    A/D轉(zhuǎn)換器接口設(shè)計(jì)

    例:查詢方式的ADC接口電路設(shè)計(jì)

  • 要求
    利用ADC0804采集100個(gè)數(shù)據(jù),采集的數(shù)據(jù)以查詢方式傳輸?shù)絻?nèi)存BUFR區(qū)。接口電路采用普通IC芯片組成。
  • 分析
    ADC0804是單個(gè)模擬量輸入;
    ADC0804的分辨率為8位,并具有三態(tài)輸出鎖存器;
    ADC0804的啟動(dòng)方式為脈沖啟動(dòng);
    數(shù)據(jù)傳輸方式為查詢方式。

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

    例:中斷方式的ADC接口設(shè)計(jì)

  • 要求
    采用ADC0809,從通道7采集100個(gè)數(shù)據(jù),采集的數(shù)據(jù)以中斷方式傳輸?shù)絻?nèi)存緩沖區(qū),并將轉(zhuǎn)換結(jié)束信號(hào)EOC連到IRQ4上,請(qǐng)求中斷。
  • 分析
    要實(shí)現(xiàn)上述要求,至少有3個(gè)方面的問(wèn)題需要考慮:
    被控對(duì)象ADC0809的特性;
    接口電路結(jié)構(gòu)形式;
    中斷處理。



  • ADC0809的工作過(guò)程

    根據(jù)時(shí)序圖,ADC0809的工作過(guò)程如下:

  • 把通道地址送到ADDA~ADDC上,選擇模擬輸入;
  • 在通道地址信號(hào)有效期間,ALE上的上升沿該地址鎖存到內(nèi)部地址鎖存器;
  • START引腳上的下降沿啟動(dòng)A/D轉(zhuǎn)換;
  • 轉(zhuǎn)換開(kāi)始后,EOC引腳呈現(xiàn)低電平,EOC重新變?yōu)楦唠娖綍r(shí)表示轉(zhuǎn)換結(jié)束;
  • OE信號(hào)打開(kāi)輸出鎖存器的三態(tài)門(mén)送出結(jié)果。
  • 接口電路結(jié)構(gòu)形式:
    采用可編程接口芯片82C55A

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

    只需做兩件事:

    • 中斷向量的修改(IRQ4);
    • 開(kāi)放IRQ4的中斷和CPU中斷。
  • 硬件設(shè)計(jì)
    本接口電路應(yīng)能提供如下信號(hào):
    • ADC0809模擬量通道號(hào)選擇信號(hào)
    • 啟動(dòng)信號(hào)
    • 讀數(shù)據(jù)允許信號(hào)
      (此前3個(gè)由82C55A接口芯片實(shí)現(xiàn))
    • EOC的中斷請(qǐng)求:直接連到系統(tǒng)總線的IRQ4上。

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


    MOV DX,303H ;82C55初始化,A口輸入MOV AL,90HOUT DX,ALMOV AL,0EH ;置PC7=0,使START和ALE無(wú)效OUT DX,ALMOV AL,0CH ;置PC6=0,使OE無(wú)效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 ;恢復(fù)數(shù)據(jù)段MOV DS,AXSTIIN AL,21H ;開(kāi)放IRQ4AND AL,0EFHOUT 21H,ALMOV CX,100 ;設(shè)置采集字節(jié)數(shù)MOV DI,OFFSET BUFF ;設(shè)置內(nèi)存指針 BEGIN:MOV DX,303H ;82C55初始化,A口輸出MOV AL,80HOUT DX,ALMOV DX,300H ;選擇通道7MOV AL,07HOUT DX,ALMOV DX,303H ;啟動(dòng)轉(zhuǎn)換MOV AL,0FH ;START啟動(dòng)(地址鎖存)OUT DX,ALNOPMOV AL,0EH ;START啟動(dòng)(啟動(dòng)轉(zhuǎn)換)OUT DX,ALSTI ;開(kāi)中斷HLT ;等待中斷DEC CX ;采樣次數(shù)減1JNZ BEGIN ;沒(méi)完,繼續(xù)CLI ;已完,關(guān)中斷MOV AX,250CH ;恢復(fù)IRQ4的原中斷向量MOV DX,OLD-SEGMOV DS,DXMOV DX,OLD-OFFINT 21HMOV AX,DATA ;恢復(fù)數(shù)據(jù)段MOV DS,AXSTIIN AL,21HOR AL,10H ;屏蔽IRQ4OUT 21H,ALMOV AX,4C00H ;返回DOSINT 21H A-D PROC FAR ;中斷服務(wù)程序PUSH AX ;保護(hù)現(xiàn)場(chǎng)PUSH DXCLI ;關(guān)中斷MOV DX,303H ;打開(kāi)三態(tài)鎖存器MOV AL,0DHOUT DX,AL ;置PC6=1高M(jìn)OV DX,303H ;82C55初始化,A口輸入MOV AL,90HOUT DX,ALMOV DX,300HIN AL,DX ;從PA口讀數(shù)據(jù)MOV AH,ALMOV DX,303HMOV AL,0CHOUT DX,AL ;置PC6=0低MOV [DI],AH ;存取數(shù)據(jù)INC DI ;內(nèi)存地址指針加1MOV AL,20H ;發(fā)中斷結(jié)束命令OUT 20H,ALPOP DX ;恢復(fù)現(xiàn)場(chǎng)POP AXSTI ;開(kāi)中斷IRET ;中斷返回 A-D ENDP

    D/A轉(zhuǎn)換器

    D/A轉(zhuǎn)換器的主要技術(shù)指標(biāo)

  • 分辨率
    指DAC能夠把多少位二進(jìn)制數(shù)轉(zhuǎn)換成模擬量。
  • 例:DAC0832能夠把8位二進(jìn)制數(shù)轉(zhuǎn)換成電流,所以DAC0832的分辨率是8位。

  • 轉(zhuǎn)換時(shí)間
    從數(shù)字量輸入到DAC完成轉(zhuǎn)換所需要的時(shí)間。
  • D/A轉(zhuǎn)換器的外部特性

    DAC的外部信號(hào)線包括:

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

    D/A轉(zhuǎn)換器與CPU的連接

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

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

    D/A與A/D有很多不同之處,表現(xiàn)在:

  • DAC一般不需要專門(mén)的控制信號(hào)去觸發(fā),只要CPU把數(shù)據(jù)送到它的輸入端,就開(kāi)始轉(zhuǎn)換。
  • DAC不提供轉(zhuǎn)換結(jié)束狀態(tài)信號(hào)。
  • DAC主要解決的是:

  • CPU與DAC之間的數(shù)據(jù)緩沖問(wèn)題
  • 當(dāng)D/A轉(zhuǎn)換器的分辨率大于數(shù)據(jù)總線的寬度時(shí),CPU必須分兩次傳送和同時(shí)選通。
  • D/A轉(zhuǎn)換器接口設(shè)計(jì)方案的分析

    ① DAC的模擬量輸出是否是多通道?
    ② DAC的分辨率是否大于系統(tǒng)數(shù)據(jù)總線的寬度?
    ③ DAC芯片內(nèi)部是否有三態(tài)輸入鎖存器?
    ④ DAC的啟動(dòng)方式,只有脈沖觸發(fā)一種。DAC不設(shè)專門(mén)的轉(zhuǎn)換啟動(dòng)信號(hào),是利用CS和IOW共同進(jìn)行假寫(xiě)操作,來(lái)實(shí)現(xiàn)脈沖啟動(dòng)的。
    ⑤ DAC的數(shù)據(jù)傳輸方式,只有無(wú)條件傳輸一種。
    ⑥ DAC接口電路采用什么元器件組成?

    D/A轉(zhuǎn)換器接口電路設(shè)計(jì)

    例:DAC接口電路設(shè)計(jì)

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

    引腳功能:

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

    DAC0832有三種工作方式:

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

    雙緩沖方式(標(biāo)準(zhǔn)方式)
    轉(zhuǎn)換要有兩個(gè)步驟:

    • 將數(shù)據(jù)寫(xiě)入輸入寄存器
      • CS=0、WR1=0、ILE=1 -> WR1=1
    • 將輸入寄存器的內(nèi)容寫(xiě)入DAC寄存器
      • WR2=0、XFER=0 -> WR2=1

    優(yōu)點(diǎn):
    數(shù)據(jù)接收與D/A轉(zhuǎn)換可異步進(jìn)行;
    可實(shí)現(xiàn)多個(gè)DAC同步轉(zhuǎn)換輸出。
    ++分時(shí)寫(xiě)入、同步轉(zhuǎn)換++




    軟件設(shè)計(jì):三角波程序

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



    總結(jié)

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

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。