一种PC104温度采集卡的设计
en)则根据采样速率输出采样时钟。采样时钟直接或经定时器(Timer)延时后产生Tpt信号输入到通道触发电路,产生通道使能信号Ena,从而触发通道主控器开始工作。每个通道的通道主控器读取AD7711的数据,当16位数据读完时,输出Rdy信号。控制分配器(Director)接收采样时钟和Rdy信号。当所有通道的Rdy信号都收到时,输出通道选择信号到4~16多路选择器,依次选通各个通道的数据,并产生FIFO写控制信号,将每个通道的数据写入FIFO里。当采样次数达到输出因子大小时,就通过中断产生模块(IntrGen)输出一个指定的中断脉冲。PC104主机接收到中断后,读取参数寄存器(0x280)的值,其大小即为输出数据的个数。控制分配器还对主机连续读取数据的/IOR信号进行计数,若该次中断读取的数据完毕,产生中断处理结束信号,允许下次对FIFO进行写操作。
当CH=0时,由CH3CH2CH1CH0决定对哪个通道操作,一般对AD7711读写控制字和校准字时使用单通道的操作。当PC104主机写控制寄存器时,内部产生一个表示写新控制字完毕的脉冲信号,触发通道触发电路使之产生一个通道使能信号Ena,使相应的通道主控器开始工作。如果写AD7711控制/校准寄存器,则通道主控器将24位数据锁存,进行并-串转换发送出去。如果读AD7711控制/校准豁口,则通道主控器接收串行数据并转换成24位并行数据。通道操作寄存器的通道号决定多路选择器的输出,将数据锁存到通道寄存器数据锁存器(0x284)里。操作完成后,状态寄存器的busy位为0,主机就可以从地址0x284读取到相应AD7711控制/校准寄存器里的数据。
图2里还包括了内部RAM和对外部串口E2PROM。可以初始化RAM,使CPLD在上电时就保存有各通道校准参数,但是若修改固化参数,必须重新编译和对外部配置器件编程,用户主机不能修改。若将参数保存在片外的串口E2PROM,则可以对其读和写,以方便用户主机根据实际情况校准各个通道,并保存新的校准参数。
2.2通道主控器的设计
通道主控器的主要结构如图3所示,包括左移移位寄存器、/RFS和TFS生成模块、SCLK计数器。发送时,内部输入数据通过LodSht锁存,通过移位从Sdata_o输出;接收时,串行数据从Sdata_I输入,通过移位得到并行数据(24位)输出到内部。ClrSht和EnaSht分别是清零和使能信号。
2.3FIFO和RAM
FIFO提供数据缓冲能力。FLEX10K50QC240能够提供2880个逻辑单元、10个嵌入式阵列块(EAB),总计20480个RAM位。根据板卡的要求,最大的输出因子为32,它所需的最大RAM位为32×12×16=6144。每个EAB只能配置成256×8bit,深度为384、数据位宽为16的FIFO需要占用4个EAB。所以FIEX10K50QC240完全可以满足要求,实际上它可以实现最大输出因子为64所需要的FIFO缓冲。这里使用Altera公司提供的参数化模块LPM_FIFO来实现所需的模块。它是一个单时钟同步FIFO,支持同时读和写。
2.4控制分配器
控制分配器主要输出通道选择信号和FIFO的写控制信号。当条件满足时,便输出从1~12个FIFO写控制信号。这里休用状态机实现这一过程。
2.5可编程时钟发生器
《一种PC104温度采集卡的设计(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/145580.html
当CH=0时,由CH3CH2CH1CH0决定对哪个通道操作,一般对AD7711读写控制字和校准字时使用单通道的操作。当PC104主机写控制寄存器时,内部产生一个表示写新控制字完毕的脉冲信号,触发通道触发电路使之产生一个通道使能信号Ena,使相应的通道主控器开始工作。如果写AD7711控制/校准寄存器,则通道主控器将24位数据锁存,进行并-串转换发送出去。如果读AD7711控制/校准豁口,则通道主控器接收串行数据并转换成24位并行数据。通道操作寄存器的通道号决定多路选择器的输出,将数据锁存到通道寄存器数据锁存器(0x284)里。操作完成后,状态寄存器的busy位为0,主机就可以从地址0x284读取到相应AD7711控制/校准寄存器里的数据。
图2里还包括了内部RAM和对外部串口E2PROM。可以初始化RAM,使CPLD在上电时就保存有各通道校准参数,但是若修改固化参数,必须重新编译和对外部配置器件编程,用户主机不能修改。若将参数保存在片外的串口E2PROM,则可以对其读和写,以方便用户主机根据实际情况校准各个通道,并保存新的校准参数。
2.2通道主控器的设计
通道主控器的主要结构如图3所示,包括左移移位寄存器、/RFS和TFS生成模块、SCLK计数器。发送时,内部输入数据通过LodSht锁存,通过移位从Sdata_o输出;接收时,串行数据从Sdata_I输入,通过移位得到并行数据(24位)输出到内部。ClrSht和EnaSht分别是清零和使能信号。
2.3FIFO和RAM
FIFO提供数据缓冲能力。FLEX10K50QC240能够提供2880个逻辑单元、10个嵌入式阵列块(EAB),总计20480个RAM位。根据板卡的要求,最大的输出因子为32,它所需的最大RAM位为32×12×16=6144。每个EAB只能配置成256×8bit,深度为384、数据位宽为16的FIFO需要占用4个EAB。所以FIEX10K50QC240完全可以满足要求,实际上它可以实现最大输出因子为64所需要的FIFO缓冲。这里使用Altera公司提供的参数化模块LPM_FIFO来实现所需的模块。它是一个单时钟同步FIFO,支持同时读和写。
2.4控制分配器
控制分配器主要输出通道选择信号和FIFO的写控制信号。当条件满足时,便输出从1~12个FIFO写控制信号。这里休用状态机实现这一过程。
2.5可编程时钟发生器
《一种PC104温度采集卡的设计(第3页)》