微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > PLD和FPGA有什么区别与联系?PLD高速通讯USB转移技术分析

PLD和FPGA有什么区别与联系?PLD高速通讯USB转移技术分析

时间:05-19 来源:网络整理 点击:

阻状态。此外,引脚保持电路设置在器件编程期间将保持以前的状态。 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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top