• 全国客户服务热线:4006-054-001 疑难解答:173-0411-9111(7X24受理投诉、建议、合作、售前咨询),155-4267-2990(售前),传真:0411-83767788,微信:543646
当前位置:主页 > 技术方案 > 环境传感

基于CY7C68013A和FPGA的ADSP-TS101扩展USB接口设计

时间:2023-09-25 22:54来源: 作者: 点击:
>基于CY7C68013A和FPGA的ADSP-TS101扩展USB接口设计

ADI公司的DSP器件()具有浮点实时处理能力强、并行性好等优点,从而广泛被弹载信号处理系统选用。其作为弹载主处理器,在导弹的系统试验中,需要利用上位机对其中的大数据量的软件变量进行实时监控和记录,这就需要一个上行传输给上位机的高速通信,数据上行的数据率需要大于6 MB/s。同时这个通信还需具有双向特性,通过数据下行可实现在线程序加载与烧写。这样的通信,还需具备设备连接简单、通用性强等特性,并能实现远程(大于3m)数据传输。

  自身的外总线接口和链路口(Linkport接口),虽速度很快,但连接复杂,难以长线传输,并不具备上述需求特征。可以通过在DSP的Linkport总线接口上增加实现的适配电路, 2.0接口,实现上述应用需求。下文将介绍具体的实现方案。

  1 系统总体方案

  系统实现的总体方案如图1所示。

  

  在本方案中,接口芯片选用Cypress公司的。该芯片是Cypress公司FX2系列 2.0集成微控制器之一。集成了USB 2.0收发器、SIE、增强8051微控制器和GPIF,是一种优秀的高速USB外设控制器。内置的8051微控制器独立于USB数据通道,由SIE实现大部分USB 1.1和USB 2.0协议;USB FIFO和外部从FIFO映射到相同的8个512 B RAM模块,实现内部传输和外部传输的无缝连接,可以较低的代价获得较高的带宽;8.5 KB内部RAM空间,可运行较为复杂的固件,实现软件对硬件的配置。GPIF是由用户可编程有限状态机驱动的柔性8/16位并行口,可编程GPIF向量组成一个GPIF波形,匹配受控接口的时序。

  作为弹载主DSP芯片,含4个链路口,每个链路口可在时钟双沿以8位进行双向数据传输,速率高达250 MB/s。通过该接口,DSP每个处理帧将预观测的变量结果以DMA的方式打包向上位机发送。

  实现ADSP-TS101的Linkport接口与之间的双向数据缓冲和接口协议转换。考虑到中的FIFO容量较DSP的一个处理帧预发送或接收的数据量较小,故在中设置上行和下行各一个大容量FIFO,用于数据缓冲,以减少对DSP中并行流水运行的程序的打扰。这里,由于DSP链路口的瞬时数据率远高于USB芯片的传输速率(理论上限为60 MB/s),故FIFO的DSP端口的数据传输为:一个处理帧只操作一次,而USB芯片端则分成多次操作。

  限于篇幅,下文将重点对传输数据率要求高、难度大的上行通道的进行详细描述。

  2 FPGA的模拟Linkport口

  FPGA需要模拟Linkport口的接口时序,其与DSP的硬件连接关系图如图2所示。

  

  Link协议通过8位并行数据总线完成双向数据传输,与数据总线配合的还有相应的时钟信号线LxCLKIN,LxCLKOUT。

  2.1 Linkport口的传输协议

  Linkport口传输数据时,每8个周期传送一个4字组(16 B),在时钟的上升沿和下降沿均传送一个字节。在传送过程中,发送端将检测接收端的LxCLKOUT信号,仅当接收端将它的LxCLKOUT置为高时,即接收端处于接收方式,且有空闲的缓冲时,发送端才可以启动下一个传送过程。

  传送启动过程如图3所示,发送端驱动信号LxCLKOUT为低电平,以此向接收端发出令牌请求,发出令牌请求后,发送端等待6个周期,并验证LxCLKIN是否依旧为高,若是则启动传送过程。传送过程启动一个周期以后,接收端将发送端的LxCLKIN驱动为低,以此作为连接测试。若接收完当前4字组后接收端无法再接收另外的4字组,则接收端保持LxCLKIN为低。这种情况下,缓冲空闲后LxCLKIN信号被禁止。若缓冲为空,则接收端将置LxCLKIN为高电平。

  

  作为同步信号,LxCLKOUT信号由发送端驱动。数据在LxCLKOUT的上升沿和下降沿处锁存到接收缓冲中,发送和接收缓冲都是128b宽。 LxCLKIN信号由接收端驱动,发往发送端,它通常用作“等待”指示信号,但LxCLKIN信号也可以用作连接测试信号,保证接收端能正确地接收当前传送数据。

  当LxCLKIN信号用于等待指示信号时,接收端驱动LxCLKIN信号为低电平。若LxCLKIN信号保持低电平状态,则发送端可以[完成当前的4字组传送,但无法启动下一个垂字组传送。若还有其余的数据需要传送,发送端需将LxCLKOUT置低,并等待接收端将LxCLKIN驱动为高电平。如果在第12个时钟沿到来之前LxCLKIN变为高电平,则紧跟着传送的将是新的4字组。

  2.2 FPGA内的Linkport口逻辑设计

  由于Link协议采用双时钟沿传输数据,而同步FPGA系统中,一般只采用单一时钟的上升沿完成操作,因此需要将FPGA系统工作频率SCLK设定为Link时钟的2倍。然后将该时钟的两分频输出作为LxCLKOUT信号,有效数据则在SCLK的上升沿更新。

  FPGA中的Linkport口接口模块电路与ADSP-TS101的Linkport口完全兼容,且采用了双向双倍数据传输DDR技术,能实现双向双倍的数据传输。FPGA中的Link口接口模块电路如图4所示。

  

  图5是FPGA内实现DSP数据上行的Linkport口接收时序仿真图(Modelsim仿真软件)。

  



>基于CY7C68013A和FPGA的ADSP-TS101扩展USB接口设计
热门服务和内容