新闻中心

EEPW首页>EDA/PCB>设计应用> 基于CPLD和ISA总线的数据采集系统设计

基于CPLD和ISA总线的数据采集系统设计

作者: 时间:2010-04-02 来源:网络 收藏

1.2 8254可编程定时器电路
8254可编程定时器内部具有3个独立的16位减法计数器,它可由程序设置成多种工作方式,有6种可选工作方式。计数器按照设置各工作方式寄存器中控制字工作,按十进制计数或二进制计数,最高计数速率可达10 MHz。
系统需要由8254提供AD转换电路的时钟信号和片选信号,通过改变8254的控制字改变系统的转换频率。8254定时器的输入时钟由外部晶振提供。定时器和定时器的输出信号直接送入可编程逻辑器件XC9572,经处理后提A/D转换电路使用。上位机写入的控制字经送至8254,同时XC9572给8254提供必要的控制信号,如:8254读/写信号、片选信号、地址信号等。
假设系统的外部时钟为2 MHz,如果需要8254的定时器0输出一个频率为l MHz,占空比为50%的时钟,则8254的定时器控制字可设置为:D7~D0=00110110,其中,D7D6=00,表示选择定时器;D5D4=11,表示先读/写低8位,后读/写高8位数据;D3D2Dl=011,表示工作方式3,方波发生器;D0=0,表示二进制计数。
1.3 A/D转换电路
A/D转换电路完成和转换,主要包括MD转换和模拟信号采样两部分电路。
8通道模拟采样开关ADG508用于采样模拟信号。由送来的通道选择信号(CH0~CH2)用于选择输入的通道号。被选通的通道采样得到的模拟信号送给ADS7816的IN+端,进行AD转换,如图3所示。

本文引用地址://m.amcfsurvey.com/article/191750.htm


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的数据转换结果是串行输入到中,需在中将得到的数据进行串并转换后再通过的8位数据线分2次送出。
系统进行数据转换前需先选择输入通道,确定采集哪一路信号。上位机输入的通道号经CPLD送至8路模拟采样开关。



评论


相关推荐

技术专区

关闭