PC/104模块Diamond-MM-AT的原理与应用

发布者:WhisperingSoul最新更新时间:2012-03-01 来源: 21IC关键字:模拟IO  Diamond-MM-AT  信号处理技术 手机看文章 扫描二维码
随时随地手机看文章

1 主要特点

随着数字信号处理技术及各种故障分析技术的快速发展,在一些由工控机构成的较小系统中,对信号进行实时采集与处理已越来越受到人们的重视。PC104系统模块以其结构紧凑,体积小,可扩展性强等特点,在信号采集和故障分析中得到了广泛的应用。Diamond-MM-AT 是一个高性能12bit模拟量I/O口输入输出PC/104模块,它包括A/D,D/A转换通道和定时/计时器,其标准模板结构可与PC/104处理器进行模块组合。

Diamond-MM-AT模块的主要功能如下:

A/D转换精度为12位,可支持的最大采样频率为100kHz;具有16条模拟量输入通道和2条12位D/A转换通道;有8个数字输入口和8个数字输出口;带有32位可编程控制计数/定时器;可编程设置D/A转换量程。

2 插口及引脚功能

图1所示是Diamond-MM-AT模块的外形简图。其中J1、J2为扩展总线端口,主要用于与PC/104处理器总线相连接。U7为A/D转换器。J4是为A/D设置跳线器,用来设置模拟量是单极或双极输入以及输入的量程。J5是D/A设置跳线器,用于设置模拟量是单极或双极输出以及输出的参考电压值。U15是D/A转换器。J6是设置DMA(直接存储器存取)标准的中断级和基地址设置跳线器,模块默认基地址为:0x300。J3为50针的I/O端口,它的具体排列如图2所示,各端口定义如下:

Vin7/7+~Vin0/0+:单极模式模拟量A/D输入端口7~0;同时可用作双极模式模拟量A/D正极输入端口7~0;

Vin15/7-~Vin8/0-:单极模式模拟量A/D输入端口15~8;也可用作双极模式模拟量A/D负极输入端口7~0;

Vout0Vout1:分别为D/A转换输出端口0和1;

Vref Out:+5/-5V精确参考电压输出端口;

Vref In0Vref In1:自定义D/A转换参考电压量程输入端口;

Dout7~Dout0:数字输出端口0~7,兼容TTL/CMOS电平;

Din7~Din0:数字输入端口0~7,兼容TTL/CMOS电平;其中Din2/Gate0 数字输入端口2还可作为计数器0的控制门,并当该端口为高电平时计数;而Din0/Gate1/2数字输入端口0则可作为计数器1和2的控制门,并可由控制寄存器11来进行设定;

In0-:计数器0输入端(下降沿触发);

Out0Out2:分别为计数器0和2的输出端口;

+15V模拟电源;

+5V:与PC/104扩展总线电源相连,用来提供+5V电源;

Agnd:模拟地;

Dgnd:数字地;

Diamond-MM-AT模块通常占用16位地址空间。

3 硬件连接关系

Diamond模块与PC/104处理器及传感器的硬件连接框图如图3所示。 图中当传感器测取待检测信号并输入调理板进行放大滤波处理后,即可将其调制到合适的电压信号范围,并输入到Dia-mond-MM-AT模块相应的I/O端口,然后由Dia-mond-MM-AT模块将其转换为所需要的数据量或模拟量,最后由PC/104处理器通过扩展总线控制读写数据的处理、显示和存储。其电源由PC/104总线提供,在Diamond-MM-AT模块端口J1中,B1为GND,B3为+5V,B5为-5V,B7为-12V,B9为+12V。

4 数据采集应用程序

下面是以PC/104作处理器和Diamond-MM-AT模块进行组合,以对检测的模拟量信号进行A/D转换的读写程序及对各控制寄存器的配置方法。笔者已在实践中对该程序进行了测试,并已成功运用到某测试工程设计中。

#define Base 0x300

Main Void{

union { unsigned int m; unsigned char n[2];}T;

int dat[3000];

int i, cd;

int freq=2000;  // 设定采样频率为2kHz;

outportb(Base+9, 0x83); // 允许中断,由计数器触发;

outportb(Base+10, 0x08); // 计数器1产生1MHz方波

outportb(Base+11, 0x05); // A/D输入范围为0~5V

T.m=(int)(500000/ freq); // 0.5MHz/Freq求写入记数器值;

outportb(Base+15,0x54); // 设定计数器1读/写低字节;

outportb(Base+13,0x01); // 向计数器1写低字节(二分频);

outportb(Base+15,0xb4); // 设定计数器2先读/写低字节,再读/写高字节;[page]

outportb(Base+14,T.n[0]); // 向计数器2写低字节;

outportb(Base+14,T.n[1]);// 向计数器2写高字节;

outportb(Base+2,0xcc);   // 设定测取通道为C通道(即第12通道);

for(i=0;i<3000;i++)  // 循环采集3000个数据;

{

outportb(Base+1,0xff); // 清除FIFO;

outportb(Base+8,0xff); // 设定中断寄存器8,等计数器触发;

while((inportb(Base+8)&0x10)==0x00);   // 等待A/D转换结束;

cd=inportb(Base+0))// 读取低八位数据;

cd=cd/16;    // 数据右移四位,除去右四位的通道标志;

dat[i]=inportb(Base+1); // 读取高八位数据;

dat[i]=dat[i]*16; // 高八位数据左移四位;

dat[i]=dat[i]+cd;  // 高八位与低四位相加即得A/D转换结果12位数据;

}

……

5 结束语

Diamond-MM-AT是标准的PC/104连接模块,具有体积小,结构紧凑等优点,并具有A/D、D/A、I/O转换等多种功能。由于PC/104可支持高级语言编程,因此,程序开发和设计非常方便,可在很大程度上缩短开发时间。可以预见:随着电子技术的发展,这种模块化器件必将有着广阔的发展应用前景。

关键字:模拟IO  Diamond-MM-AT  信号处理技术 引用地址:PC/104模块Diamond-MM-AT的原理与应用

上一篇:DSP和PBL3717A构成的步进电机的控制系统
下一篇:能实现人眼仿真的集成可见光亮度传感器LX1970

推荐阅读最新更新时间:2024-05-02 21:56

stm32通过IO模拟输出多路pwm
这里主要用于控制舵机,使用TIM1模拟了5路50Hz的PWM信号,只调节占空比控制舵机角度。 最大能模拟多少路没有具体测试。 缺点:因为是定时器中断模拟(中断比较频繁),所以会影响main函数运行。 LED p1('A',8); //IO口初始化,这里就不介绍了,推挽输出 LED p2('A',9); LED p3('A',10); LED p4('A',11); LED p5('A',4); u16 count=0; u16 pwm_count=1000; //总计数 周期20ms,20us进次 u16 pwm1=25; u16 pwm2=
[单片机]
IO模拟串口C51程序
/************************** 文件所用资源 1.外部中断0 2.端口:P3.3、P3.4 **************************/ sbit BT_REC =P3^3; //接收 P3.0 sbit BT_SND =P3^4; //发送 P3.1 #define MODE_QUICK #define F_TM F0 #define TIMER0_ENABLE TL0=TH0; TR0=1; #define TIMER0_DISABLE TR0=0; sbit ACC0= ACC^0; sbit ACC1= ACC^1; sbit ACC2= ACC^2; sbit ACC3= AC
[单片机]
lpc1788IO模拟IIC
#ifndef __MYIIC_H_ #define __MYIIC_H_ #include common.h #include delay.h #include debugserial.h //sda 027 scl 028 //IO方向设置 #define IIC1_SDA_IN() P0dir(27) = 0 #define IIC1_SDA_OUT() P0dir(27) = 1 //IO操作函数 #define IIC1_READ_SDA P0in(27) //输入SDA void my_iic_init(void); //初始化IIC的IO口 void my_iic
[单片机]
51单片机IO模拟串口通讯4
硬件环境:STC89C52 软件环境:IDE Keil uVision V4.10 编译器 C51 V9.0 代码如下: /********************************************** 硬件:11.0592MHz晶振,STC89C52,RXD P1.0 TXD P1.1 波特率:9600 描述:这是网上《51单片机模拟串口的三种方法》中附的程序 占用定时器0 时间:2012.07.25 于单位 **********************************************/ #include reg52.h sbit BT_SND =P1^1; sbit B
[单片机]
关于IO模拟SPI
IO口模拟SPI的问题,其实光模拟来说,就时序问题,读取和写入一个字节的时序。 首先选4个IO口,作模拟用,分别模拟CS、SCLK、SI、SO.即是片选、时钟、数据输入、数据输出。 IO口初始化,分别把对应的IO口设置输入输出。CS、SCLK、SO、设置为输出,SI设置为输入。 然后就是时序问题了,一般如下: //设要写的数据是abyte表示。 CS_1; //片选高, SCLK_1; //时钟高 CS_0; //片选低,开始工作。 for(i=0;i 8;i++)//循环产生时钟,写入数据。 { SCLK_0; //时钟低,下降沿 if(0x80&abyte)
[单片机]
STM32F103C8T6使用普通IO模拟串口收发
导: 由于项目系统功能版本升级,需要开发一个带有串口收发的功能,但是硬件串口已经全部使用,发现还剩余部分普通gpio口可以使用,故打算采用软件模拟的方法实现该功能; 很久以前使用过51单片机来实现过类似功能,现在首次使用stm32来实现该功能;先借鉴一些网上的demo; 产品的代码初始框架不是我自己搭建的,下回轮到我来搭,一定一定用操作系统来完成,要不然资源的配置,考虑太多,真的麻烦死了; 参考:https://blog.csdn.net/yunjie167/article/details/79808464 1.阻塞的通讯 阻塞式通讯 51单片机,是没有操作系统的,并且定时器也是非常的有限的;所以再模拟iic通讯,
[单片机]
STM32F103C8T6使用普通<font color='red'>IO</font>口<font color='red'>模拟</font>串口收发
采用Linux与DSP实施双OS信号处理技术
  在系统性能与编程简易性之间的权衡折中是通用操作系统与实时操作系统之间的主要区分点之一。   GPOS(通用操作系统)倾向于提供较高程度的资源抽象,这不仅可通过支持软件模块与资源隔离来提高应用的便携性、简化开发流程,同时还能增强系统的稳健性,这使 GPOS 成为诸如网络、用户界面以及显示管理等通用系统组件的理想选择。   然而,该抽象需要以系统资源的精细粒度控制作为代价,以满足信号处理代码等高强度算法的计算性能要求。对于实现这种高级别的控制,开发人员通常需要采用实时操作系统 (RTOS)。   从嵌入式信号处理角度上讲,我们通常要考虑两种类型的操作系统,即通用操作系统 Linux 与实时操作系统 DSP(数字信号处理器)/BIO
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved