- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于CPLD和ISA总线的数据采集系统设计
1.3 A/D转换电路
A/D转换电路完成数据采集和转换,主要包括MD转换和模拟信号采样两部分电路。
8通道模拟采样开关ADG508用于采样模拟信号。由CPLD送来的通道选择信号(CH0~CH2)用于选择输入的通道号。被选通的通道采样得到的模拟信号送给ADS7816的IN+端,进行AD转换,如图3所示。
A/D转换电路采用TI公司的ADS7816,该器件是12位串行A/D转换器,采样频率高达200 kHz,转换所需时间短,转换精度高,输出形式为位串行,因此在对ADS7816进行读数据操作时需注意数据转换过程中的时序。
图4是ADS7816的数据转换时序。当ADS7816的片选端下降沿到来时,开始启动一次A/D转换,保持转换时钟输入和片选信号低电平,最初的1.5~2个时钟时间里,完成模拟信号的采样,这段时间ADS7816的输出呈高阻状态(HI-Z)。紧接着的1个时钟周期里,DOUT输出1个空位(NULL BIT)。随后,ADS7816在12个连续的时钟周期内把12位的A/D转换结果输出,其中先输出最高位(MSB),最后输出最低位(LSB)。如果12位数据送出后仍有转换时钟且ADS7816的片选仍保持低电平,那么转换器会从最低位起逐位重复输出之前转换的结果。当下一个片选信号的下降沿到来时,A/D转换器开始启动下一次A/D转换。
2 系统软件设计
系统软件设计包括基于VHDL的逻辑控制程序设计和基于C语言的上位机采集测试程序设计。
2.1 VHDL程序设计
系统设计硬件中,可编程逻辑器件完成的内容有:接收上位机的地址和数据,为模拟开关提供通道选择信号,为A/D转换电路提供时钟信号和片选信号,接收ADS7816转换的数据,向上位机传送转换结果。
从图4中可得到ADS7816在片选信号下降沿到来后的14.5~15个时钟周期里,完成一次转换并逐位输出12位转换结果。为了能够得到完整的正确的A/D转换结果,采用计数方式设置标志位FLG。在ADS7816的片选信号为低电平的前15个时钟周期中,即"计数器计数值≤14"时,FLG=l,表示A/D转换正在进行;当"计数器的计数值>14",则FLG=0,表示A/D转换结束。当FLG=0时,程序可读取一次正确的A/D转换数据。
因为ADS7816的数据转换结果是串行输入到CPLD中,需在CPLD中将得到的数据进行串并转换后再通过ISA总线的8位数据线分2次送出。
系统进行数据转换前需先选择输入通道,确定采集哪一路信号。上位机输入的通道号经CPLD送至8路模拟采样开关。
2.2 数据采集测试程序设计
上位机的数据采集测试程序采用C语言设计。因为系统采用ISA接口,所以功能测试无需编写复杂的应用程序,只需在Win98操作系统里编写C语言的测试程序即可实现系统的数据采集功能。上位机的数据采集测试程序主要完成:采集系统的硬件初始化、通道选择、数据采集、数据处理和数据输出。其程序设计流程如图5所示。
3 仿真和实验结果
图6所示为写入XC9572的VHDL程序的仿真波形,主要是CPLD控制A/D转换的功能仿真。从仿真波形图中可以看出,当地址A为7时,写入通道号3,得到的输入通道选通信号为3,实现通过上位机选择输入通道功能。当ADCS的下降沿到来后开始启动A/D转换;ADCS下降沿起的第3个时钟对应的ADDATA为系统转换的第1个数据,直到这次转换完毕。由给定的ADDATA数据得知,串行输入的数据是767H(011l O110 0111B)。仿真结果中,地址为4时,数据的低8位结果为67H;地址为5时,数据的高8位结果为07H,仿真结果完全正确。
在Windows98下,使用基于C语言的数据采集测试程序,可得到如表l所示的测试数据。从所列数据看出,该数据采集系统采集数据正确,且精度高。
4 结论
基于CPLD的数据采集系统具有硬件线路简单、精度高、采集速度快的特点。ISA总线和CPLD结合的数据采集系统有其独特的优势。该数据采集系统可循环采样多路(8路)模拟信号采样。实际测试结果表明该设计方案可行,且具有很高的实用价值。
来源:维库开发网
上一篇:信号链基础知识
#29:数字接口——单端接口与差动接口的对比
下一篇:采用RS232接口标准的SMT数据采集方案