《电子技术应用》
您所在的位置:首页 > 模拟设计 > 设计应用 > 基于CDT2000 I/O口的A/D转换系统设计
基于CDT2000 I/O口的A/D转换系统设计
2014年电子技术应用第9期
林子豪,黄 俊,蒙志君,张浩宇
北京航空航天大学,北京100191
摘要: 为实现传感器数据快速、高精度地转换,提出了一种采用AD7891芯片的A/D转换系统的设计方法。数据读、写和并行工作时序通过CDT2000 I/O口控制,CDT2000 I/O口的电位变化由PC/104通过总线操作。在AD7891与CDT2000之间添加JK触发器实现对A/D转换完成的识别。试验结果表明,这种方法能够满足数据采集系统的设计要求,并且在硬件上较容易实现。
关键词: CDT2000 AD7891 JK触发器
中图分类号: TP274+.2
文献标识码: B
文章编号: 0258-7998(2014)09-0075-03
Design of A/D conversion system based on CDT2000 I/O port
Lin Zihao,Huang Jun,Meng Zhijun,Zhang Haoyu
Beihang University,Beijing 100191,China
Abstract: To realize high-speed and high-precision data conversion from sensors, an analog-to-digital(A/D) conversion system was proposed. The A/D conversion system was composed of an AD7891 chip, a PC/104 module,CDT2000 module and a DM74LS73A J-K flip and flop. The AD7891 pins′ voltage was controlled by CDT2000 I/O ports to carry out the data writing,data reading and parallel interface operational sequence. CDT2000 connected with PC/104 through bus. DM74LS73A J-K flip and flop was adopted to distinguish negative pulse which was outputted by AD7891 at the end of conversion every time. The experimental data indicates that the AD conversion system satisfies the design requirement well and the hardware circuit is simple.
Key words : CDT2000;AD7891;J-K flip and flop;A/D conversion

    随着航空器以高度自动化的趋势发展,传感器数据需要被快速采集和高精度转换,以便飞行控制系统使用和处理。传统的集成于DSP的A/D转换芯片往往不能满足速度和精度的要求,因此需要使用独立的A/D转换芯片实现传感器数据的采集和转换。同时,随着嵌入式计算机种类的多样化,部分嵌入式计算机不再集成A/D芯片,由于各种因素在选择不含A/D转换功能的嵌入式计算机时,也必须考虑如何对独立A/D芯片进行控制以实现对模拟信号的快速采集与转换。在项目的研发中,通过使用SBS公司的CDT2000模块,实现了对AD7891芯片的控制,取得了快速、精确的转换效果。CDT2000含有丰富的I/O口,同时电位值与普通A/D芯片的引脚电位吻合,因此可以方便地与A/D芯片引脚连接;而且其I/O的电位变化迅速,能够满足高速转换的要求。文中给出了系统主要的硬件电路和CDT2000 I/O对AD7891芯片的控制方法,同时对A/D转换结果做了数据分析。

1 系统硬件构成

1.1 系统概况

    本转换系统要求转换频率不低于100 Hz,对于0~10 V的输入电压,转换误差不大于10 mV。为达到以上要求, 系统选用的硬件包括SBS公司的嵌入式PC/104计算机、CDT2000模块,ADI公司的AD7891型号芯片和Fairchild公司的DM74LS73A型号JK触发器

1.2 PC/104与CDT2000 I/O口

    PC/104是嵌入式PC的机械电气标准,它秉承了IBM-PC开放式总线结构的优点,与IBM-PC 100%兼容。

    CDT2000是16位计数器/定时器与数字量I/O模块,通过总线与PC/104模块连接,可将由PC/104模块构成的系统变成一个高性能的控制系统。CDT2000有48通道TTL/CMOS 兼容的数字量I/O,这些I/O由模块上的71055可编程外围接口(PPI)芯片提供,由I/O连接器引出。端口能直接与外部设备或信号连接,端口高电位为5 V,低电位为0 V。

    CDT2000的48通道数字量I/O在硬件上以两排I/O口排列,每排包括24路数字量I/O;这24路I/O又分为口0(8条线)、口1(8条线)、口2(8条线)3组,每组I/O都分配有独立的基地址,因此可以单独决定每组I/O的输入/输出模式。

1.3 AD7891芯片

    AD7891是一款8通道、12位数据采集系统,有并行和串行两种接口模式。本系统采用的输入量程为-10 V~

+10 V,理论转换精度可达4.88 mV。

    在单通道输入,采用硬件启动转换时,AD7891的转换速率可达454.5 kS/s。芯片的每个输入通道都拥有过电压保护机制,允许的过压值为±17 V。

    AD7891可以通过MODE引脚来选择并行或串行接口模式。无论是串行还是并行工作模式,芯片均能提供标准控制输入及快速数据访问时间特性,确保与现代微处理器、微控制器和数字信号处理器轻松对接[2]。由于CDT2000模块提供丰富的I/O口,本转换系统采用并行接口方式。芯片端口的控制以及数据的读写全部通过CDT2000的I/O口实现,既满足转换的快速性要求,在硬件上也较容易实现。

1.4 DM74LS73A型号JK触发器

    DM74LS73A是负脉冲边缘触发型的主-从JK触发器,当触发器CLK端电位由低升高时,可触发输出端Q、ck4-gs4.gif的电位变化。

    A/D转换结束时,AD7891的EOC端输出脉宽为80 ns的负脉冲。但CDT2000没有捕捉负脉冲的功能,因此在AD7891与CDT2000之间增加一个JK触发器,由触发器CLK端捕捉EOC引脚输出的负脉冲。EOC引脚输出的负脉冲使JK触发器Q端的电位变化时,表明A/D转换结束。

1.5 系统硬件连接

    根据以上系统各硬件的性能及特性,设计系统硬件连接电路如图1所示。

ck4-t1.gif

    图1中,由CDT2000 I/O指向AD7891和JK触发器的箭头线表示CDT2000 I/O口以输出模式与AD7891和JK触发器的引脚连接,I/O通过输出电位的变化实现AD7891和JK触发器中与之连接的各引脚的功能;由AD7891和JK触发器指向CDT2000 I/O的箭头线表示CDT2000 I/O口以输入模式与AD7891和JK触发器的引脚连接,I/O口读取AD7891和JK触发器中与之连接的各引脚的电位,通过总线传递给PC/104;CDT2000 I/O与AD7891间的双向箭头线表示AD7891上的引脚为复用端口,I/O口既要以输出模式控制该引脚的电位,又要在A/D转换结束时,以输入模式读取该引脚的电位。

    在A/D转换过程中,CDT2000 I/O始终向AD7891的STANDBY和MODE引脚输出高电位,以使AD7891处于正常工作状态和并行工作模式;向JK触发器的J引脚和K引脚分别给予低电位和高电位,以使A/D转换开始前JK触发器的Q输出端为低电位。A/D转换结束时由AD7891的EOC引脚输出的负脉冲将使Q输出端的低电位转换为高电位,经I/O口读取后告知PC/104 A/D转换结束。同时在每次A/D转换开始前,向JK触发器的CLR引脚给予一不小于30 ns的负脉冲,使Q输出端恢复低电位。

2 系统软件实现

2.1 AD7891时序分析

    为实现系统的高速转换,首先对AD7891的转换时序进行分析。并行接口模式下AD7891的转换时序见图2。

ck4-t2.gif

    图2中,t1为从CS到RD/WR的触发时间,为0 ns;t2为写脉冲宽度,不小于35 ns;t3为写有效数据时间,不小于25 ns;t4为有效数据保持时间,不小于5 ns;t5为CS到RD/WR的保持时间,为0 ns;t6为CONVST脉冲宽度时间,不小于35 ns;t7为EOC脉冲宽度时间,不小于55 ns;t8为读脉冲宽度,不小于35 ns;t9为RD下降沿之后读数据时间,不小于25 ns;tCONV为A/D转换时间,不大于1.6 μs;t10不小于30 ns。

2.2 I/O口对AD7891工作时序的控制

    AD7891的工作时序由CDT2000的I/O口控制,因此在操作I/O口的电位变化时,必须根据AD7891的转换时序,合理地分配以上时间,以实现快速高效的转换。

    在硬件层,PC/104核心处理器的晶振频率为100 MHz,单周期指令的执行时间为10 ns。PC/104通过总线操作改变CDT2000的I/O口的电位。一次总线操作的时间在1 μs以上,即C语言操纵I/O口电位变化的代码执行时间在1 μs以上,远大于时序中要求的各负脉冲时间。因此在连续改变I/O口电位时,无需考虑延时。

    AD7891的DB0~DB5为复用数据线,写入数据时,通过这6个引脚改变AD7891控制寄存器的数值;读取数据时,通过这6个引脚获得A/D转换结果的低6位数值。因此在每次A/D转换中,与这6个引脚连接的I/O口都要进行一次输入/输出模式的转换。而CDT2000 I/O的特性是在某一路I/O由输入模式转变为输出模式时,同一排I/O中所有输出口的电位都会清零,因此必须保证与AD7891 DB0~DB5连接的6个I/O口的输入/输出模式改变时,不会影响其他输出端口的电位,否则将导致转换失败。为实现以上条件,需将与AD7891 DB0~DB5连接的6个I/O口单独安排在CDT2000 I/O的一排,而与AD7891其他引脚连接的I/O口在另一排。

    使用CDT2000 I/O对AD7891的控制操作中,首先向JK触发器的CLR引脚输出一负脉冲,使其Q输出端恢复低电位;然后将与AD7891芯片DB0~DB5引脚连接的I/O置为输出模式,并向其输出电位以选择A/D输入通道和转换结果输出格式;然后向WR引脚输出负脉冲,将DB0~DB5引脚的电位数据写入控制寄存器;随后向CONVST引脚输出负脉冲启动A/D转换,待Q端电位升高后,将与DB0~DB5引脚连接的I/O改为输入模式;然后将RD引脚电位置底,读取DB0~DB11引脚的电位值,获得A/D转换结果;最后将RD引脚电位置高,完成A/D转换。以上为完成一次A/D转换的操作流程,其执行时间不超过25 μs,转换频率可达4×104 Hz,满足系统对转换频率大于100 Hz的要求。

3 试验结果

    AD7891转换数值的输出格式既可以是普通二进制形式也可以是补码形式,由FORMAT引脚的电位控制。普通二进制形式时,输出范围为0~4 095;补码形式时,输出范围为-2 048~2 047。转换数值理论上与输入电压呈线性关系。由于项目要求采集的电压范围为0~10 V,因此本转换系统选择的输出格式为普通二进制形式。试验中输入电压由稳压电源提供,在输入电压固定时,取转换数值的平均值作为转换结果,试验数据如图3所示。

ck4-t3.gif

    对试验转换值线性拟合获得的参数中,R平方值(相关系数)为1,说明A/D转换结果与输入电压呈现良好的线性关系,这与理论相符合。对试验转换值拟合得到的线性函数为:

    ck4-gs1.gif

式(1)、(2)中y为A/D转换值,x为输入电压。对比式(1)和式(2)表明,试验转换结果相较理论值存在2 077.26-2 047.50=29.76的偏差,即零漂值。将零漂值修正后,试验值与理论值的差值为:

    ck4-gs3.gif

式(3)说明转换误差随着采集电压增大而增大,当输入电压范围为0~10 V时,试验转换值与理论值的最大差值为0.4,转换误差在最低有效位以内。对于12位的A/D转换器,一个最低有效位的误差表征4.88 mV转换误差,因此该系统满足转换误差不大于10 mV的设计要求。

    本文基于CDT2000 I/O对A/D芯片的控制,设计了一种A/D高速采集转换系统,通过使用CDT2000 I/O对AD7891和JK触发器各引脚电位的控制及读取,实现了对模拟数据的高速采集和转换。系统完成一次A/D转换的时间小于25 μs,满足系统对转换频率大于100 Hz的要求;对转换结果中存在的固定偏差修正后,转换误差不超过4.88 mV,满足系统对采集精度的要求。本系统具有硬件结构简单、编程容易、易于实现的特点。

参考文献

[1] 何学辉,苏涛.TMS320VC5402 DSP与串行AD73360 A/D转换器的接口设计[J].电子技术应用,2003,29(11):67-70.

[2] 赵纲领,蔚永强,张宁,等.基于DSP I/O口的多路高速数据采集系统设计[J].电测与仪表,2007,44(2):54-56.

[3] 刘春生,游志刚,李小波.AD7891高速数据采集系统的原理与应用[J].国外电子元器件,2001(3):6-9.

[4] 陈劲操.利用增强型并行口设计12位数据采集系统[J].电子工程师,2001,27(7):1-3

[5] 邝坚.Tornado/VxWorks入门与提高[M].北京:科学出版社,2004.

[6] 谭浩强.C程序设计(第3版)[M].北京:清华大学出版社,2005.

此内容为AET网站原创,未经授权禁止转载。