PLD和FPGA有什么区别与联系?PLD高速通讯USB转移技术分析
阻状态。此外,引脚保持电路设置在器件编程期间将保持以前的状态。 ATF1508AS器件出厂时被初始化为已擦除状态,可以直接用来ISP编程。
5 应用实例
(1)应用ATF1508AS进行串并转换
本系统应用ATMEL公司的ATF1508AS进行串行数据到并行数据的转换,在进行数据采集中,用到Crystal半导体公司生产的24位高精度Σ-△模/数转换器CS5321/CS5322组件。该组件最终输出字长为24位的2的补码格式的串行数字信号,将其转换为并行数据可以方便与单片机的接口。串并转换可采用移位寄存器来实现。对实现6通道24位采样,若采用移位寄存器,则需要8位移位寄存器,共3&TImes;6=18片,另外还要用几片译码器。这样,会使芯片数量大增,占用大片电路板面积,使系统的体积增大。本系统使用ATF1508AS来实现6通道24位数据的串并转换,可将大部分数字逻辑设计(包括组合逻辑和时序逻辑)集成在一个芯片内,大幅减少芯片数量,减小系统体积。
由于ATF1508AS内部有128个宏单元,而且24位串并转换需要24个移位寄存器,因此不能同时进行6通道的串并转换,只能分时复用。本系统分3次进行串并转换,每次转换2个通道,等待单片机读取2个通道的并行数据后再进行剩下的转换。部分串并转换VHDL程序如下(硬件描述语言是VHDL,软件是ALTERA公司的MAXPLUSⅡ软件和ATMEL公司的POF2JED软件,下载软件是ATMEL公司的ATMISP,下载电缆是ATMEL公司的专用电缆):
s2p : process(SCLK1M,DRDYIN,WORKING,RESET)
begin
if WORKING=‘1’ or RESET=‘1’ then
shift_enable 《= ‘0’;
state 《= s0;
elsif SCLK1M‘event and SCLK1M=’0‘ then
count1 《= count1+1;
case state is
when s0 =》if DRDYIN=’0‘ then
shift_enable 《= ’1‘;
count1 《= (others=》’0‘);
int_reg 《= ’1‘;
state 《= s1;
elsif READOK=’1‘ then
int_reg 《= ’1‘;
end if;
when s1=》shift_reg0《=shift_reg0(22 downto 0)& SOD(0);
shift_reg1《=shift_reg1(22 downto 0)& SOD(1);
if count1=23 then
shift_enable 《= ’0‘;
int_reg 《= ’0‘;
state 《= s2;
else
int_reg 《= ’1‘; end if;
when s2 =》 if shift_enable=’1‘ then
shift_reg0《=shift_reg0(22 downto 0)& SOD(2);
shift_reg1《=shift_reg1(22 downto 0)& SOD(3);
if count1=23 then
shift_enable 《= ’0‘;
int_reg 《= ’0‘;
state 《= s3;
else
int_reg 《= ’1‘; end if;
elsif READOK=’1‘ then
shift_enable 《= ’1‘;
count1 《= (others=》’0‘);
end if;
when s3 =》if shift_enable=’1‘ then
shift_reg0《=shift_reg0(22 downto 0)& SOD(4);
shift_reg1《=shift_reg1(22 downto 0)& SOD(5);
if count1=23 then
shift_enable 《= ’0‘;
int_reg 《= ’0‘;
state 《= s0;
else
int_reg 《= ’1‘; end if;
elsif READOK=’1‘ then
shift_enable 《= ’1‘;
count1 《= (others=》’0‘);
end if;
end case;
end if;
end process;
(2)应用ATF1508AS进行高速USB通信
USB是近年来应用在PC领域的新型接口技术,具有使用方便、速度快、连接灵活、支持热插拔等特点。USB1.1协议定义在高速下12 Mb/s、低速下1.5 Mb/s的传输速度。若要达到高速12 Mb/s(相当于近1 MB/s)的速度,就要大约1μs传输1个字节。但由于USB的控制传输、错误检测以及单片机本身速度的限制,很难达到这么高的速度,因此,必须采用 DMA方式才能达到真正的高速传输,使用CPLD就可以实现类似DMA方式。单片机负责解释USB的控制传输,当要进行从外存取数送到USB接口芯片时,单片机让出总线,由CPLD完成该工作。CPLD产生外存的读取时序和地址、片选信号,同时产生USB接口芯片的写时序和地址、片选信号,这样就可以自动实现外存数据到USB接口芯片的工作,而且速度很快,不需要单片机干预。以下给出RAM的读取时序、地址信号和USB接口芯片写时序的VHDL程序片断:
rram1 : pro
- 基于CPLD的激光驱动电源的设计(08-26)
- 在CPLD基础上的电器定时开关控制系统设计(03-29)
- 基于DSP与CPLD设计智能变电站电网的IED(02-25)
- 基于ADSP-TS101S的多芯片数字信号处理系统的实现方案(02-11)
- 51单片机+CPLD让系统更高效(10-25)
- 基于CPLD的线阵CCD数据采集系统的开发(04-14)