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

摘要:介绍了12位模拟i/o pc/104模块diamond-mm-at的主要参数、内部结构、引脚功能及特性,给出了diamond-mm-at与pc/104及传感器的硬件连接关系?同时给出了它们的一个成功的a/d转换应用程序。
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先读/写低字节,再读/写高字节;
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可支持高级语言编程,因此,程序开发和设计非常方便,可在很大程度上缩短开发时间。可以预见:随着电子技术的发展,这种模块化器件必将有着广阔的发展应用前景。

SaaS软件是什么?SaaS软件市场会因为什么崛起
古建筑失事成频发事件 智能安防发展迫在眉睫
维信诺:积极深化产业布局,引领OLED产业发展
360OS 奇少年手机即将上市,它可解决“家庭手机战争”难题
独家供应 Dreamtech为三星提供指纹识别模组
PC/104模块Diamond-MM-AT的原理与应用
未来智能安防需要逾越几大技术鸿沟
关于智慧供配电监控系统发展现状的解读
利用Transformer和CNN 各自的优势以获得更好的分割性能
快讯:Space X载人飞船首发成功并与国际空间站对接
诺基亚8配置曝光:2K+6GB+骁龙660+1600万蔡司镜头
混动动力总成发动机管理控制器软件架构设计
烽火吉比特无源光纤接入用户端设备获IPv6 Ready Logo测试认证
请问重装系统后D盘里的软件还能不能用
华为p50 pro像素是多少
深度解读触控面板的静电放电防护措施
日本ZMP开发的送货机器人在东京市区进行测试
!销售/回收HP8561E频谱分析仪HP8561E现货!小兵
变频器干扰的常见现象及解决方法
Java为什么一直在编程语言榜首