模拟量输入输出通道_第1页
模拟量输入输出通道_第2页
模拟量输入输出通道_第3页
模拟量输入输出通道_第4页
模拟量输入输出通道_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工业系统的驱动与控制模拟量输入输出通道2023/2/1西安交通大学工程训练中心2训练目的了解计算机如何采集工业系统中的模拟量信号Inportb——读端口(寄存器)Intvar=Inportb(基地址+偏移地址)了解计算机如何输出模拟信号Outportb——写端口(寄存器)Outportb(基地址+偏移地址,Outvar)2023/2/1西安交通大学工程训练中心3模拟量输入输出系统的一般组成信号调理电路驱动电路端子板工业系统Intvar=Inportb(基地址+偏移地址)Outportb(基地址+偏移地址,Outvar)2023/2/1西安交通大学工程训练中心4模拟量输入通道(AI)任务:把被控对象的模拟量信号(如温度、压力、流量、料位或成分等)转换成计算机可以接收的数字量信号;组成:一般由信号调理、多路模拟开关、前置放大器、采样保持器、模/数转换器、接口和控制电路组成;核心:模/数转换器,简称A/D或ADC(analog-to-digitalconverter),通常也把模拟量输入通道(AI)简称为A/D通道。2023/2/1西安交通大学工程训练中心5

PCL-812PG

工业系统模拟量传感器模拟量传感器模拟量传感器信号调理多路开关MUX可编程放大器接口电路控制电路A/D转换器采样/保持器

S/H控制线…信号调理信号调理数据总线模拟量输入通道的一般组成共用一套电路,要进行通道选择每个通道输入的模拟量的范围不同,选择不同的增益先采样,再保持,等待处理(存放在寄存器)1)采集卡不主动工作,要有触发信号启动A/D过程2)多种触发方式可以选择3)触发方式要明确约定4)转换是逐位进行的,需要一定的时段(30us)5)转换完成通知CPU6)按照规定的数据传输方式传入计算机内存AD0AD1.......AD152023/2/1西安交通大学工程训练中心6PCL-812PG采集卡的模拟量输入通道A/D转换有三种触发方式:

①软件触发(训练中采用);②板上定时器触发(8253定时/计数器);③外部脉冲触发(CN5,PN1)。

A/D转换结果的传输方式有三种:

①查询A/D完成标志位DRDY,然后再从寄存器读取数据到内存变量(训练中采用);②A/D转换完成后发中断请求,然后由中断服务程序读取数据;③DMA方式。DMA---DirectMemoryAccess,直接内存访问,是一种数据传输模式。DMA方式下由于不直接访问计算机的CPU,而直接在RAM与设备之间传输,因而大大提高了数据传输速度,适用于高速采集。2023/2/1西安交通大学工程训练中心7模拟量输入的实现1.多路控制:选择哪一路通道输入;2.可编程放大器:调节输入信号范围;3.A/D转换:模拟量转化成计算机可处理的数字量信号;4.数据传输:转化结果传送到内存。2023/2/1西安交通大学工程训练中心8A/D通道多路开关寄存器地址:Base+10属性:只写数据格式:低4位提供了A/D通道号:CL3~CL0对应0~15号通道0000~1111(AD0~AD15)outportb(base+10,

channels)BitD7D6D5D4D3D2D1D0Base+10XXXXCL3CL2CL1CL02023/2/1西安交通大学工程训练中心9A/D增益控制寄存器地址:Base+9属性:只写数据格式:低3位G2~G0提供了不同增益。BitD7D6D5D4D3D2D1D0Base+9XXXXXG2G1G0outportb(base+9,

Gain)采集卡的最大输入电压,由跳线决定,可以是±5V或±10V模拟信号输入的最大电压2023/2/1西安交通大学工程训练中心10A/D输入范围设置A/D转换器的最大输入电压是由跳线所决定的;PCL-812PG采集卡中A/D转换器的最大输入电压是±5V或±10V,其中缺省为±5V,训练中采用±10V

。2023/2/1西安交通大学工程训练中心11A/D增益定义outportb(base+9,

3);/*增益为8*/G2G1G0增益极性输入范围0001双极性±5V或±10V0012双极性±2.5V或±5V0104双极性±1.25V或±2.5V0118双极性±0.625V或±1.25V10016双极性±0.3125V或±0.625V2023/2/1西安交通大学工程训练中心12A/D操作模式控制寄存器S2S1S0操作模式描述000禁止触发A/D001仅允许软件触发+查询方式传输(默认)010仅允许卡自带定时器触发+DMA传输110允许卡自带定时器触发+查询方式或中断传输outportb(base+11,

1)BitD7D6D5D4D3D2D1D0Base+11XXXXXS2S1S0地址:Base+11属性:只写数据格式:低3位S2~S0提供模式选择。2023/2/1西安交通大学工程训练中心13A/D软件触发寄存器outportb(BASE+12,0)如果给PCL-812PG的A/D转换产生一个触发脉冲,只要向这个软件触发寄存器写一个任意值,然后A/D转换器将会被触发;软件触发寄存器地址:Base+12属性:只写可以为任意值2023/2/1西安交通大学工程训练中心14A/D数据寄存器DataReaDY说明:地址:Base+4andBase+5AD11~AD0:A/D转换完成后的数据,AD0是最低位(LSB),AD11是最高位(MSB)。DRDY:转换完成标志位,当转换没有完成时为1,完成后跳变为0,当读A/D低字节寄存器时,变回1。Base+4D7D6D5D4D3D2D1D0A/D低字节数据AD7AD6AD5AD4AD3AD2AD1AD0Base+5D7D6D5D4D3D2D1D0A/D高字节数据000DRDYAD11AD10AD9AD82023/2/1西安交通大学工程训练中心15A/D转换过程选择A/D通道,通过写多路转换控制寄存器(Base+10);确定增益,通过写增益控制寄存器(Base+9);选择工作模式,通过写模式控制寄存器(Base+11);启动软件触发,通过写软件触发寄存器(Base+12);通过判断DRDY(Base+5,4),等待A/D完成;从数据寄存器(Base+5)(Base+4)中读数据(inportb),先读高字节,再读低字节;将整数值转换成模拟电压值,用作计算机显示。2023/2/1西安交通大学工程训练中心16A/D转换公式十六路A/D通道均可将模拟电压信号转换成12位数字信号。被转换电压的范围有六种(±10V、±5V、±2.5V、±1.25V、±0.625V、±0.3125V),可以在程序中配合板卡上的跳线开关设定;训练中采集卡的最大输入电压跳线为±10V,增益为1。12位2进制数0–4095(212-1)inputData=Inportb(Base+5)&0x0F<<8+inportb(Base+4)Volt=(inputData-2047)*20.0/4095±10VVolt=inputData*20.0/4095-10.02023/2/1西安交通大学工程训练中心17模拟量输出通道(AO)任务:把计算机输出的数字量信号转换成模拟电压或电流信号,以便去驱动相应的执行机构,达到控制目的;组成:一般由接口电路、数/模转换器和电压/电流变换器组成;核心:数/模转换器,简称D/A或DAC(digital-to-analogconverter),通常也把模拟量输出通道(AO)简称为D/A通道。2023/2/1西安交通大学工程训练中心18模拟量输出通道的一般组成2023/2/1西安交通大学工程训练中心19D/A数据寄存器Base+4D7D6D5D4D3D2D1D0D/A#1低字节DA7DA6DA5DA4DA3DA2DA1DA0Base+5D7D6D5D4D3D2D1D0D/A#1高字节XXXXDA11DA10DA9DA8Base+6D7D6D5D4D3D2D1D0D/A#2低字节DA7DA6DA5DA4DA3DA2DA1DA0Base+7D7D6D5D4D3D2D1D0D/A#2高字节XXXXDA11DA10DA9DA82023/2/1西安交通大学工程训练中心20D/A数据寄存器D/A#1outportb(Base+4,lbyte);outportb(Base+5,hbyte);先写低字节后写高字节D/A#2outportb(Base+6,lbyte);outportb(Base+7,hbyte);2023/2/1西安交通大学工程训练中心21D/A参考电压设置Internalprecisionfixedvoltreference–5vor–10vwhichbeusedasD/Ainputreference.TheD/Aoutputrangewillbe0to+5vorto+10v.

2023/2/1西安交通大学工程训练中心22D/A转换公式

两路模拟信号输出通道可输出电压范围是0~+5V或0~+10V。812内部是-5v或-10v的参考电压。2023/2/1西安交通大学工程训练中心23PCL-812PG采集卡在工控机中的安装CN1:模拟量输入CN2:模拟量单端输入与输出CN3:开关量输出CN4:开关量输入(DI)(DO)(AD/DA)(AD)2023/2/1西安交通大学工程训练中心24PCL-812PG采集卡的模拟量输入/出通道CN1连接0号~9号A/D通道,CN2连接10号~15号A/D通道。此外,CN2还用其13和14号线连接1号D/A通道,15和16号线连接2号D/A通道。1234567891011121314151617181920A/D0A/D1A/D2A/D3A/D4A/D5A/D6A/D7A/D8A/D9A.GNDA.GNDA.GNDA.GNDA.GNDA.GNDA.GNDA.GNDA.GNDA.GNDCN1模拟量单端输入1234567891011121314151617181920A/D10A/D11A/D12A/D13A/D14A/D15D/A1D/A2V.REF1V.REF2A.GNDA.GNDA.GNDA.GNDA.GNDA.GNDA.GNDA.GNDA.GNDA.GNDCN2模拟量输入与输出2023/2/1西安交通大学工程训练中心25训练接线图在关机状态下接线!输入A/D通道的电压严禁超出±10V!在关机状态下接线!输出D/A通道严禁短路接信号发生器或直流稳压电源接示波器训练接线图2023/2/1西安交通大学工程训练中心27训练内容11.模拟量输出通道D/A运行演示程序产生一个直流电压;产生一个方波信号,周期和幅值可调;产生一个正弦波信号,周期和幅值可调。上述产生的三种信号均可经由1号D/A通道输出,接示波器观察波形,此时,工控机和采集卡共同构成了一个信号发生器。(!!!注意示波器探头的正确使用,不能相碰,否则设备损害)2023/2/1西安交通大学工程训练中心28训练内容22.模拟量输入通道A/D运行演示程序将0~+10V的直流电压、正弦波信号以及方波信号经10号A/D通道采入计算机,在显示器上显示;相当于一个数字示波器;演示中可用信号发生器作为信号源,也可将演示程序D/A部分产生的信号作为信号源;可用示波器同时观察采集的信号。2023/2/1西安交通大学工程训练中心29训练内容33.模拟量输出通道D/A单步运行范例程序在TC环境中单步运行程序DA_ONE.C(源程序见附录6),该程序将一个由键盘键入的直流电压信号输出。程序运行中,利用“watch”区域观察有关变量的值,确认并记录程序中的关键语句及其作用。注意对采集卡各端口的寻址和数据格式。2023/2/1西安交通大学工程训练中心30训练内容44.模拟量输出通道D/A单步运行范例程序在TC环境中单步运行程序AD_ONE.C(源程序见附录6),该程序将一个直流电压信号采入计算机,以数字形式显示,相当于一个数字电压表。程序运行中,利用“watch”区域观察有关变量的值,确认程序中的关键语句及其作用,并作记录;注意对采集卡端口的寻址。2023/2/1西安交通大学工程训练中心31总结Inportb——读端口(寄存器)Intvar=Inportb(基地址+偏移地址)Outportb——写端口(寄存器)Outportb(基地址+偏移地址,Intvar)2023/2/1西安交通大学工程训练中心32AD通道程序#defineBASS_ADDRESS0x220/*设置基地址*/intChannel=0~15;/*定义通道*/(训练中选择AD10通道!)main(){unsignedshortintDRDY;inthbyte,lbyte;floattemp;charc;outportb(BASS_ADDRESS+10,Channel);/*多路选择控制*/outportb(BASS_ADDRESS+9,0);/*增益控制*/outportb(BASS_ADDRESS+11,1);/*模式控制:软件触发*/while(1){DRDY=1;outportb(BASS_ADDRESS+12,1);/*AD软件触发*/2023/2/1西安交通大学工程训练中心33AD通道程序(续)while((DRDY!=0)&&(!kbhit()))/*判断有无键按下*/{DRDY=inportb(BASS_ADDRESS+5)&0x10;/*等待转换完成*/}hbyte=inportb(BASS_ADDRESS+5)&0x000f;/*获取高字节*/lbyte=inportb(BASS_ADDRESS+4)&0x00ff;/*获取低字节*/temp=((hbyte<<8)+lbyte-2047)*20.0/4095.0;/*计算值*/printf("\nValue=%f",temp);printf("\nPressNtonextandPressotherkeytoquit!!");c=bioskey(0);if(c=='n'||c=='N')continue;elsebreak;}}2023/2/1西安交通大学工程训练中心34DA通道程序#defineBASE_ADDRESS0x220intChannel=1/2;main(){floatOutputdata;intlbyte,hbyte;intout=0;charc;while(1){clrscr();printf("\nPleaseinputAmplitude(0~10V):");scanf("%f",&Outputdata);out=Outputdata*4095.0/10.0;hbyte=(out>>8)&0x0f;2023/2/1西安交通大学工程训练中心35DA通道程序(续)lbyte=out&0xff;outportb(BASE_ADDRESS+4+2*(Channel-1),lbyte);outportb(BASE_ADDRESS+5+2*(Channel-1),hbyte);printf("\nPressNtonextandPressotherkeytoquit!!");c=bioskey(0);if(c=='n'||c=='N')continue;elsebreak;}outportb(BASE_ADDRESS+4+2*(Channel-1),0);outportb(BASE_ADDRESS+5+2*(Channel-1),0);}说明:D/A输出时,先写低字节,暂存在寄存器里面,当高字节写完后,再进行D/A转换2023/2/1西安交通大学工程训练中心36课后作业复习本次课程内容,思考模拟量输入输出与开关量输入输出的区别与联系阅读附录1-3,进一步熟悉相关寄存器的功能注释AD和DA通道程序改写AD和DA通道程序为子程序intAD(intchannel)/*0-15*/{ ……}DA(intchannel,intdata)/*1-2;0-10V*/{……}2023/2/1西安交通大学工程训练中心37

PCL-812PG

工业系统模拟量传感器模拟量传感器模拟量传感器信号调理多路开关MUX可编程放大器接口电路控制电路A/D转换器采样/保持器

S/H控制线…信号调理信号调理数据总线模拟量输入通道的一般组成Inportb(Base+5)Inportb(Base+4)Outportb

(Base+10,通道号)Outportb

(Base+9,增益)Outportb(Base+11,控制字)Outportb(Base+12,控制字)2023/2/1西安交通大学工程训练中心38模拟量输出通道的一般组成Outportb(Base+4/6,lbyte)Outportb(Base+5/7,hbyte)2023/2/1西安交通大学工程训练中心39训练内容1调试AD子程序,实现附录5.1的功能

floatAD(intchannel)/*0-15*/

{ ……}调试DA子程序,实现附录5.2的功能

DA(intchannel,floatdata)/*1-2;0-10V*/

{ ……}在关机状态下接线!输入A/D通道的电压严禁超出±10V!在关机状态下接线!输出D/A通道严禁短路接信号发生器或直流稳压电源接示波器训练接线图2023/2/1西安交通大学工程训练中心41训练内容2编写程序实现以下功能:经键盘输入任意0-10V电压,由D/A通道转换后输出,然后经A/D通道采集回来,转换后显示在屏幕上,并计算误差。AD通道和DA通道可任选;参考AD_one.c和DA_one.c程序,使用AD和DA子程序。在关机状态下接线!输入A/D通道的电压严禁超出±10V!在关机状态下接线!输出D/A通道严禁短路训练接线图2023/2/1西安交通大学工程训练中心43DA通道程序#defineBASE_ADDRESS0x220/*设置基地址*/intChannel=1/2;/*定义通道*/main(){floatOutputdata;intlbyte,hbyte;intout=0;charc;while(1){clrscr();printf("\nPleaseinputAmplitude(0~10V):");scanf(“%f”,&Outputdata);/*屏幕读入电压值*/out=Outputdata*4095.0/10.0;/*转换成二进制数*/hbyte=(out>>8)&0x0f;/*获取高4位*/2023/2/1西安交通大学工程训练中心44DA通道程序(续)lbyte=out&0xff;/*获取低8位*/outportb(BASE_ADDRESS+4+2*(Channel-1),lbyte);outportb(BASE_ADDRESS+5+2*(Channel-1),hbyte);printf("\nPressNtonextandPressotherkeytoquit!!");c=bioskey(0);if(c=='n'||c=='N')continue;elsebreak;}outportb(BASE_ADDRESS+4+2*(Channel-1),0);outportb(BASE_ADDRESS+5+2*(Channel-1),0);}说明:D/A输出时,先写低字节,暂存在寄存器里面,当高字节写完后,再进行D/A转换写低8位写高4位输出清02023/2/1西安交通大学工程训练中心45AD通道程序#defineBASS_ADDRESS0x220/*设置基地址*/intChannel=0~15;/*定义通道*/main(){unsignedshortintDRDY;inthbyte,lbyte;floattemp;charc;outportb(BASS_ADDRESS+10,Channel);/*多路选择控制*/outportb(BASS_ADDRESS+9,0);/*增益控制*/outportb(BASS_ADDRESS+11,1);/*模式控制:软件触发*/while(1){DRDY=1;outportb(BASS_ADDRESS+12,1);/*AD软件触发*/2023/2/1西安交通大学工程训练中心46AD通道程序(续)while((DRDY!=0)&&(!kbhit()))/*判断有无键按下*/{DRDY=inportb(BASS_ADDRESS+5)&0x10;/*等待转换完成*/}hbyte=inportb(BASS_ADDRESS+5)&0x000f;/*获取高字节*/lbyte=inportb(BASS_ADD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论