1. 硬件平台介绍

TT推荐的USB硬件快速开发方法是直接使用成熟的产品级的FPGA USB模块作为基础来开发。模块已经完成了最复杂及风险最高的硬件开发部分,用户只需要基于具体应用设计一个扩展板即可完成整体的产品级设计。这里以Pionway的XMS6301 FPGA USB模块来做示例说明。

XMS6301是一款深受市场欢迎的FPGA USB3.0产品级模块,用料扎实,做工优良,在高速信号采集、图像/视频采集及处理、数字通信等领域应用广泛。


Pionway XMS6301 实物正面图

Pionway XMS6301 实物背面图

XMS6301按照工业级温度标准设计,采用芯片级的电源输入保护方案,10层板叠层设计,板上所有的传输线全部实现阻抗控制及等长匹配,电磁兼容能力良好。大小仅为标准银行卡尺寸(85.5mm×54mm),可以方便的集成在各种小型的电子设备内部。

Pionway XMS6301 硬件框图

XMS6301框图中心位置的Spartan-6 FPGA为模块的主处理器部分,内置丰富的逻辑资源,可用于实现各种复杂的数字信号处理功能。

板载2Gibit的DDR3 SDRAM连接到了FPGA内置的硬核存储器控制器上,最大读写带宽10.672Gbps,为处理器的处理流程提供了大容量的数据缓存支持。

板载高精度LVDS差分低抖动硅晶振时钟源,降低FPGA的时序约束要求,增强处理器的运行可靠性。

XMS6301 FPGA资源列表
XMS6301型号 XMS6301-LX45I XMS6301-LX150I
Slice数量 6,822 23,038
D触发器数量 54,576 184,304
分布式RAM大小 401Kib 1,355Kib
Block RAM大小 2,088Kib 4,824 Kib
DSP Slice数量 58 180
时钟管理模块(CMT)数量 4 6
XMS6301 晶振性能指标列表
项目 数值
Integrated Phase Jitter(JPH) 2ps
Period Jitter RMS(JPER) 2.5ps
Overall Freq.Stability ±25ppm

2. 扩展板设计

扩展板用来与模块通过板对板连接器相互连接,为模块提供电源供给,并将模块的I/O导出到外部来使用。

在设计过程中,推荐的电子元器件购买渠道是立创商城、Digi-Key、Mouser等自营元器件交易网站。

2.1 模块引脚网络标识说明

XMS6301模块对外有3个80pin的0.8mm间距板对板连接器,标号分别为A、B、C。总共240pin引脚包含了模块的供电输入输出、I/O数据传输及特殊功能的连接。

XMS6301模块引脚网络标识说明表
序号 功能描述  网络标识 I/O引脚数量
1 主电源输入 VCC5VD 10
2 FPGA BANK 0 I/O电压输入

FPGA_VCCO0_IN

4
3

FPGA BANK 0 I/O参考电压输入

在不需要的情况下可以用作I/O

L1N_VREF_0、L8N_VREF_0

L38N_VREF_0、L62N_VREF_0

4

(4双功能)

4 FPGA BANK 1 I/O电压输入

FPGA_VCCO1_IN

4
5 FPGA BANK 1 I/O参考电压输入

在不需要的情况下可以用作I/O

L1N_VREF_1、L28N_VREF_1、L53N_VREF_1

3

(3双功能)

6 数字电源输出 VCC1V2D、VCC1V8D、VCC3V3D 18
7 数字地 DGND 81
8 FPGA BANK 0 I/O L2P_0、L3N_0... 44
9 FPGA BANK 1 I/O L1P_1、L1N_VREF_1

72

(3双功能)

10 复位输入/输出 SYS_RST_IN_N(复位输入)、FX3_RESET_N(漏极开路复位输出) 2
11 JTAG接口

CABLE_TDI、FPGA_TDO、

CABLE_TCK、CABLE_TMS

4
12 电池电源输入 VBAT 1

2.2 扩展板的电源设计

模块的电源电路包含电源输入和电源输出部分,电源输入有两路,一路是USB Cable(输入电流0.5-0.9A),另一路是通过通过板对板连接器(输入电流3-4A),如果两路电源同时接入则板对板连接器的供电内部优先级更高

由于USB Cable的输入电流能力有限,一般仅作为简单的功能演示使用,在产品级的使用场景中建议仅使用板对板连接器来为模块供电,并将XMS6301模块背面的USBP开关拨到DIS(出厂默认)来关断USB的供电使能。

2.2.1 模块的主电源供电设计

XMS6301的输入额定电压为+5V,短时间最高可耐受到+12V,最低输入电压不应低于+4.6V,最大输入电流为4.17A。使用过程中,可以根据如FPGA处理算法的规模、外部驱动负载的情况等实际应用需求来搭建足够功率的DC/DC电路来驱动。

DC/DC电路的最大输出电流、电感的电感量、饱和电流指标要足够,并且建议在DC/DC的电源输出端串联大载流能力的铁氧体磁珠或者EMIFIL滤波器对电源滤波后再送入模块。如果板上有敏感的模拟信号部分,需要远离DC/DC电路或对其加做电磁屏蔽处理。

DC/DC电路按照调节器的类型表(Regulator Type)

序号

调节器类型

电路特点 价格 面积 参考芯片/模块型号

1

Module

内置开关管(MOSFET)和电感,体积最小,价格较高,使用最方便,原包装拆封过久焊接前必须烘烤!

差别较大 最小

3.0A:TPS82130SILR

4.0A:EN2340QI

6.0A:LTM8033双模块并联

2

Converter

内置开关管,需要外接电感,

性价比最高,使用的最多

较低 适中

3.0A:TPS54329DDAR

4.0A:TPS56428DDAR

5.0A:TPS56528DDAR

3 Controller

需要外接开关管和电感,

面积最大,使用相对少

较高 较大
电源滤波元器件参考型号表(EMIFIL最大耐压建议采用50%左右降额)
类型 序号 型号

电容量/

100MHz

阻抗值

耐压 最大通过电流 封装

生产

厂商

特点及作用

适用电路
共模扼流线圈 1 ACM70V-701-2PL-TL00

701Ω

80V 4A

7.0X

6.0mm

TDK

对长导线

产生的

共模噪声

抑制能力强

电源输入的

开始位置

EMIFIL滤波器 2 NFM18PS105D0J3D 1μF 6.3V 2A 0603 Murata 

超低的ESL

滤除高频噪声

效果极佳

高噪声辐射

高阻抗线路

3 NFM18PC225B1A3D  2.2μF 10V 4A 0603 Murata 
4 NFM41PC155B1H3L  1.5μF 50V 6A 1806 Murata 
铁氧体磁珠 5 BLM21PG221SN1D 220Ω N/A 2A 0805 Murata 

抑制高频噪声

无需对地连接

低噪声辐射

低阻抗线路

6 MPZ1608S331ATA00 330Ω N/A 1.7A 0603 TDK
7 MPZ2012S601AT000 600Ω N/A 2A 0805 TDK

MLCC推荐的品牌是Murata、TDK、samsung,推荐的电介质NPO(COG)>X7R>X5R,对于滤波使用尽量选用小封装高耐压的型号。

电源滤波示例图

2.2.2 模块I/O所使用的VCCO和VREF供电设计

XMS6301模块上的I/O连接到了FPGA的Bank0和Bank1,每个Bank的I/O由相应的VCCO和VREF来供电,其不同的输入电压组合决定了Bank当前所能支持的电平标准。

VCCO的所有引脚在所有情况下都必须要全部连接外部电源输入,其输入电流取决于输出I/O的数量和输出负载,一般不小于500mA。并且需要在其他板对板连接器的引脚附近放置10-100nF的去耦电容(阵列)来防止噪声耦合。

VREF则根据实际要是用的电平标准来决定是否输入电压,如没有用到,用可作为FPGA的I/O来使用(第二功能)。如果需要使用,则相应BANK的VREF必须全部供电,VREF所需要的输入电流不大,但对电源噪声敏感,建议外接LDO或者经过EMIFIL滤波后对其供电,并且需要在其他板对板连接器的引脚附近放置一颗10-100nF的MLCC来防止噪声耦合。

XMS6301 I/O 单端电平标准配置表
序号 VCCO电压 VREF 单端电平标准
1 3.3V

不用供电,可做I/O使用

LVTTL、LVCMOS33、PCI33_3、PCI66_3、SDIO

1.5V低噪声+MLCC SSTL3_I、SSTL3_II
2 3.0V 不用供电,可做I/O使用 I2C、SMBUS
3 2.5V 不用供电,可做I/O使用 LVCMOS25
1.25V低噪声+MLCC SSTL2_I、SSTL2_II
4 1.8V 不用供电,可做I/O使用

LVCMOS18、MOBILE_DDR、LVCMOS18_JEDEC

0.9V低噪声+MLCC SSTL18_I、SSTL18_II
5 1.5V 不用供电,可做I/O使用 LVCMOS15、LVCMOS15_JEDEC
0.75V低噪声+MLCC SSTL15_II
6 1.2V 不用供电,可做I/O使用 LVCMOS12、LVCMOS12_JEDEC
XMS6301 I/O 差分电平标准配置表
序号 VCCO电压 VREF电压 差分电平标准
1 3.3V

不用供电,

可做I/O使用

LVDS_33、MINI_LVDS_33、RSDS_33、

PPDS_33、DIFF_SSTL3_I、DIFF_SSTL3_II

2 2.5V

LVDS_25、BLVDS_25、MINI_LVDS_25、RSDS_25、

PPDS_25、DISPLAY_PORT、DIFF_SSTL2_I、DIFF_SSTL2_II

3 1.8V

DIFF_MOBILE_DDR、DIFF_HSTL_I_18、DIFF_HSTL_II_18、

DIFF_HSTL_III_18、DIFF_SSTL18_I、DIFF_SSTL18_II

4 1.5V DIFF_HSTL_I、DIFF_HSTL_II、DIFF_HSTL_III、IFF_SSTL15_II

2.2.3 模块的电源输出

XMS6301模块还将自身的1.2V、1.8V、3.3V三个数字电源输出(可以不使用),其中1.8V和3.3V的最大输出能力为1A,1.2V的最大输出能力为500mA,可以为小功率的数字电路外设提供电源,如要给模拟电路供电需要先经过LDO转换再经过EMIFIL滤波器或铁氧体磁珠滤波后使用。XMS6301的所有电源输出即使没有使用,也需要在旁边并联若干10-100nF MLCC(阵列)以防止连接器的天线效应耦合噪声。

2.3 扩展板的I/O设计

XMS6301的3个板对板连接器上的I/O大部分连接到了FPGA的数据I/O引脚上,负责FPGA的数据通信功能。还有一小部分I/O连接到了模块的复位电路、FPGA的配置电路部分,负责模块的功能管理部分。

2.3.1 扩展板的FPGA I/O设计

XMS6301的I/O总共有116根,分布在FPGA的BANK0和BANK1,包括差分和单端传输线。

差分传输线对总共有21对(48根),差分特性阻抗100Ω,所有的21对差分对之间的传输线长度误差<3mil,连接在BANK0有16对(双向LVDS),连接在BANK1有5对(LVDS只能输入),这21对差分对也可以作为单端信号传输线,但如果用来传输高速信号,需要考虑传输线间的串扰(可以间隔使用)。

剩余的I/O数量总共有74根,特性阻抗50Ω,传输线长度误差<150mil(3.81mm)。其中绝大部分是在PCB叠层中的同一层,配合扩展板的线长补偿,也可以作为差分传输线来使用。

XMS6301板对板连接器引脚分布表
标号 

总I/O数量

差分对数量

差分对名称

(误差<3mil)

需匹配线长

的差分对

(误差<150mil)

只能做单端I/O

GCLK

数量

其他

引脚类型

A 24 9+3

L2_0、L3_0、L4_0、L5_0、L6_0、L7_0、

L33_0、L36_0、L37_0

L8_0、

L32_0、

L34_0

0 6

5V、1.8V、

1.2V、GND 、

VCCO0、

VREF0

B 48 11+12

L35_0、L50_0、L51_0、L62_0、L63_0、L65_0、

L66_0、L19_1、L20_1、L31_1、L71_1

L1_1、L10_1、

L30_1、L32_1、

L33_1、L35_1、L37_1、L38_0、L40_1、L41_1、

L53_1、L64_0

L1N_VREF_0、

L49N_0

4

3.3V、VREF0、

VREF1、

GND

C 44 1+18 L44_1

L9_1、L21_1、

L28_1、L34_1、L36_1、L39_1、

L42_1、L43_1、L45_1、L48_1、L49_1、L50_1、

L50_1、L51_1、L58_1、L59_1、L73_1、L74_1

L46N_1、

L46P_1、

L52N_1、

L60N_1、

L61P_1、

L72P_1

4

VCCO1、VREF1、

复位、

JTAG、

GND

对于XMS6301,在所有情况下外部设备的I/O最高电压不应超过模块当前的I/O所对应的VCCO,比如假设VCCO0的输入电压设置为1.8V,则L2P_0输入信号的输入电压不应超过1.8V,VCCO1的输入电压设置为2.5V,L1P_1的输入信号的最高电压不应超过2.5V,否则有可能会导致I/O损坏

对于最高输入电压高于3.3V的电平标准,如TTL、CMOS。需要外接缓冲芯片,如SN74LVC245A、SN74LVC244A,能够将5V的输入转换成2.5V或3.3V的电平标准,保护了模块的FPGA I/O引脚。

如果所要转换的数字信号频率较高,对转换电路的延迟较为敏感,可以考虑使用CPLD来做接口电平转换功能。

如果扩展板需要将XMS6301的I/O导出到PCB的外部,也建议使用SN74LVC245A、SN74LVC244A来做接口的隔离,并在靠近外部接口处放置ESD保护器件增强静电保护。

2.3.2 扩展板的复位电路设计

XMS6301上电后复位电路会不断监控模块上的VCC1V8D电压轨,当模块内部的VCC1V8D电压轨正常的时候,无复位信号输出。而当各种意外导致模块VCC1V8D电压轨降低到了1.67V以下时,模块内部复位电路会持续输出复位信号,直到VCC1V8D电压持续200ms回到1.67V以上后解除复位信号输出。

用户也可以通过拉低模块的复位信号输入引脚FX3_RESET_N的电平来通知模块强制执行复位操作。

模块的复位输入信号FX3_RESET_N和复位输出信号FX3_RESET_N都为低电平有效,复位输出信号为漏极开路,在内部上拉到了1.8V。

复位输入信号SYS_RST_IN_N在模块内部也做了1.8V的弱上拉,其最高外部输入电压不要超过2.0V。用户可以使用一个漏极开路(集电极开路)的输出引脚来驱动它。

2.3.3 扩展板的配置电路设计

XMS6301将FPGA的JTAG信号引出到了板对板连接器上,用户可以在扩展板上将其引出来实现FPGA的下载及调试工作。

如果需要做外接连接器与Xilinx Platform Cable USB (II)相连接,第二脚的VREF电压需要设置成2.5V来兼容模块上的JTAG电平标准。所有对外的JTAG信号线都需要加ESD保护芯片增加静电保护能力。

Xilinx Platform Cable USB推荐连接器参考型号表格
生产厂商 表贴垂直型号 通孔垂直型号 通孔直角型号
Molex 87832-1420 87831-1450 87833-1420
FCI 98424-G52-14 98414-G06-14 98464-G61-14
Comm Con Connectors 2475-14G2 2422-14G2 2401R-G2-14

XMS6301 扩展板 JTAG接口设计

2.3.4 扩展板的防篡改电路设计

XMS6301的LX150型号支持Xilinx的FPGA bit流文件加密功能,如需使用此功能能,需要不间断的为板对板连接器上的VBATT引脚提供工作电压,VBATT的工作电压范围是1.0V-3.3V之间,可以在扩展板上放置一个可充电的贴片锂电池。当设备连接电源的时候为其充电,当设备掉电后为VBATT引脚继续提供工作电压。

VBATT 充放电路示意图

XMS6301 用户还可以使用FPGA 内部的Device DNA 来实现自定义的加密功能。LX45 与LX150 都支持此功能。

Device DNA 是FPGA 在生产过程中烧录的57bits 数字序列,每一个芯片的序列都不相同。基本的加密思路如下:

  1. 用户在上位机使用JTAG 接口读取FPGA 的Device DNA 序列,然后合并自定义的秘钥key1 一同带入到一个自定义的单向函数中进行不可逆计算,得出结果序列。
  2. 将结果序列存储到与FPGA 相连接的非易失存储器上。
  3. 配置FPGA 程序。
  4. FPGA 内部的解密程序通过DNA_PORT 接口读取自身的Device DNA 序列后合并预定义的秘钥key1 一起送入单向函数进行同样的不可逆算法后得到结果序列。
  5. FPGA 解密程序读取和他相连的非易失存储器内容后进行比较,如果两者内容相同则验证成功,否则FPGA 程序不执行。

使用此加密方法在硬件上需要在FPGA 上外接一个非易失存储器, 如小容量的EEPROM, 如AT24C02C‐SSHM‐T,也可以使用更复杂的安全验证存储器,如AT88SC0104CA‐SH、DS28E38Q+U 等芯片。


Pionway BRK6301分线板正面图(配合XMS6301使用)

BRK6301 原理图

7天内完成基础USB开发(3)——硬件平台介绍及开发要点相关推荐

  1. 7天内完成基础USB开发(2)——Pionway SDK简介

    Pionway SDK是为了解决现有开发平台的种种局限性而开发出的新一代的专用USB快速开发软件套件.为用户在FPGA与计算机之间建立一个灵活便捷的基于USB接口的数据传输通道. Pionway SD ...

  2. 后端开发面试自我介绍_java开发面试评语

    自我评价或是自我介绍(我是Java程序员) 你这里介绍的就挺好啊. 有个条理就行 我前段时间也总参加面试,也是做J2EE,我说下我自我介绍的思路: 1. 先介绍基本情况,哪里人,什么学校毕业在什么公司 ...

  3. 51单片机 | 如何学习单片机 | 开发板功能介绍 | 开发板使用方法 | 51单片机介绍

    文章目录 一.如何学习单片机 1.学习哪种类型的单片机 2.学习单片机的最佳方法 3.学习单片机的准备工作 4.学习单片机的常见疑问 二.开发板功能及使用介绍 1.开发板功能介绍 2.开发板使用方法 ...

  4. usbip--局域网内共享的USB设备

    目录(?)[-] 1 Preliminary Note 2 Installing And Using USBIP On The Server 3 Installing And Using USBIP ...

  5. Java基础学习:尚硅谷项目三 开发团队调度软件

    Java基础学习:尚硅谷项目三 开发团队调度软件 一.软件功能与结构设计 1. 软件功能 该软件实现以下功能: 软件启动时,根据给定的数据创建公司部分成员列表(数组) 根据菜单提示,基于现有的公司成员 ...

  6. iOS 应用内购买基础教程 swift篇

    应用内购买基础教程 原文地址http://www.raywenderlich.com/105365/in-app-purchases-tutorial-getting-started 更新日志:本教程 ...

  7. 零基础学习嵌入式入门以及项目实战开发【手把手教+国内独家+原创】

    零基础学习嵌入式入门以及项目实战开发[手把手教+国内独家+原创] 独家拥有,绝对经典                            创 科 之 龙 嵌入式开发经典系列教程 [第一期] 主讲人: ...

  8. 用USB代替网络通讯(2)—自制开发板上实现的解决故障过程

    任务动机:在自制RK3399开发板上实现基于openEuler的usbnet 任务描述:在两个RK3399板子上分别烧录openEuler系统,编译内核实现usbnet的通信.通过比较不同开发板的电路 ...

  9. 基础实验篇 | RflySim底层飞行控制算法开发系列课程总体介绍

    本讲主要介绍多旋翼的特点及选用多旋翼作为实验平台的原因.对于无人系统教育的一些新需求.RflySim平台对于飞控的底层控制算法的开发优势.本期平台课程的设置.以及如何开发自驾仪系统. 相较于固定翼和直 ...

最新文章

  1. 04-c#入门(类型转换)
  2. 利用废弃建筑建设数据中心
  3. matlab 分段式规范作图
  4. 服务中启动oracle服务,Linux下如何自动启动Oracle服务
  5. matlab引擎 多线程,使用Matlab进行多线程处理
  6. 基于java jsp企业人事管理系统mysql
  7. android gps 室内定位方法,Android GPS室内定位问题的解决方法(location为null)
  8. 解压压缩包的时候要求输入密码
  9. Norms for Vectors and Matrices
  10. 大厂是如何用DevCloud流水线实现自动化部署Web应用的?
  11. Postman接口测试工具实战演练集
  12. 内蒙古大学计算机学院团支部书记,内蒙古大学团委鼓励研支团勇做新时代弄潮儿...
  13. Java并发(一)并发基础
  14. 网络能看到计算机 但是进不去,共享文件夹 在网络邻居看到别人的电脑 进不去...
  15. 建设工程项目质量成本优化与控制
  16. Windows下com及word
  17. 传统行业程序员的深度焦虑?——快来互联网行业吧!
  18. 程序员去外包公司有前途吗?
  19. Unity 第三人称射击游戏视角控制与武器瞄准
  20. Autojs4.1.0实战教程---中青看点签到

热门文章

  1. LA 3363 String Compression(dp)
  2. 技术领导力之路 - 安全感
  3. 量能决定趋势 通达信趋势起妖副图 趋势量能选股指标源码
  4. 截至2017年1月59家金融租赁公司
  5. 零基础必看的Python网络爬虫文本数据分析知识点总结
  6. go testing测试
  7. new FormData()
  8. JAVA开发需求分析套路_需求分析:我走过最长的路,就是需求的套路
  9. Zotero(超好用的文献管理软件)安装+坚果云同步配置教程+常用插件介绍(全面)
  10. Oracle中取月初,月末,季初,季末及年初,年末时间总结