tag 标签: 现场可编程门阵列

相关博文
  • 热度 16
    2015-4-28 15:27
    1145 次阅读|
    0 个评论
    现代测控系统和通信领域对数据传输速率的要求越来越高。相比PC 中其他技术的发展,总线技术的发展显得相对缓慢,总线性能已经成为制约系统性能发挥的瓶颈。传统的ISA, EISA 总线等已无法适应高速数据传输的要求,PCI 总线技术虽然经过了不断的修正和发展,但是由于它固有的缺陷,使其应用领域受到限制。PCI Express 总线以其优异的性能和低廉的造价引起了业界的广泛关注,具有广阔的应用前景。本文介绍PCI Express 总线接口的设计方法,,并实现一个基于IP核的PCI Express 总线接口。 1 PCI Express 总线简介 PCI Express 总线是Intel 于1997 年提出的第3 代I/O 技术,是种全新的串行总线技术。与PCI 总线相比,PCI Express 总线具有以下特点: (1)在数据传输模式上,PCI Express 总线采用双工串行传输模式,一条PCI Express 通道由2 对LVDS 差分线对组成: 一对负责发送,另一对负责接收,单向数据传输速率为2.5 Gb/s。 (2)具有很好的灵活性,一个PCI Express 物理连接可以根据实际需要配置成×1,×2,×4,×8,×16,×32 个并行的数据通 道,满足不同设备之间通信带宽的要求。 (3)在软件层与PCI 总线完全兼容,原有PCI 总线的驱动程序可以完全移植到PCI Express 总线架构的系统中。 (4)串行连接采用自同步时钟技术,时钟内嵌于串行数据的8 bit/10 bit 编码中,可实现数据传输率的自适应调整。 PCI Express 协议定义了3 层结构:物理层,数据链路层和事务层。每个层次按照协议中规定的内容,完成相应的数据处理功能。 2 PCI Express 接口设计方法 PCI Express 总线的接口的设计方法大体有2 种:使用专用接口芯片或者使用可以实现PCI Express 物理接口的可编程器件。 专用接口芯片实现了 PCI Express 总线的物理层、数据链路层和事务层的控制逻辑。例如,PEX 8311 是PLX 推出的第1 款本地总线到PCI Express×1 的桥接芯片,符合PCI Express 1.0 规范,支持自动极性反转、CRC 校验、链路设备电源管理,具有直接主模式、直接从模式、DMA 和数据预取等功能。 使用 PEX 8311 实现PCI Express 接口,用户仅需实现相对简单的本地总线接口即可,降低了开发难度。但是这种方法受限于专用接口芯片的性能,用户无法根据自身的需求提升接口的性能。 可编程器件设计方案的基本思想是由 FPGA 实现PCI Express 的上层电路,利用Philip 或TI 提供的PHY(物理层)器件实现物理层接口,通常需要购买Xilinx或Altera 提供的IP 核与PHY 器件配合使用。在有些FPGA 产品中,集成有PCI Express 接口的硬核模块,可以采用相应的产品实现PCI Express 接口的功能。例如,Xilinx Virtex-5 LXT/SXT/FXT/TXT 系列FPGA 器件中,集成有PCI Express 硬核端点模块,能够自动完成数据链路层和物理层的数据处理功能。采用这种方法,用户只需要设计处理事务层数据包的逻辑电路即可。还可以根据自己的需求,设计具有特殊功能的电路结构,发挥接口的性能,但是这种方法的开发难度较大,开发周期相对较长。 【分页导航】 第1页: PCI Express总线简介 第2页: PCI Express接口实现:接口电路设计 第3页: PCI Express接口实现:控制状态机设计 第4页: PCI Express接口实现:DMA控制器设计 3 PCI Express 接口实现 本设计采用 Xilinx Virtex-5 系列xc5vlx30t 芯片,使用该芯片内部的PCI Express Endpoint 硬核端点模块,设计了处理事务层数据的逻辑电路,实现了计算机内存与用户逻辑之间数据的正确传输。其中,控制状态机的设计和DMA 控制器的设计是重点、难点,下面详细介绍具体的实现过程。 3.1 接口电路的设计 在接口电路中,PCI Express 物理层和数据链路层的电路采用Xilinx 的PCI Express Endpoint Block plus v1.5 硬核端点模块实现,能够有效完成接口物理层和数据链路层的数据处理功能,提供给上层一个事务层数据接口。 上层电路主要由 5 部分电路构成,分别是核配置与辅助控制模块、数据发送控制器、数据接收控制器、数据输入FIFO和数据输出FIFO,如图1 所示,最终提供给用户FIFO 类型的用户逻辑接口。 图 1 PCI Express 接口电路结构 核配置与辅助控制模块与硬核端点模块紧密联系,完成硬核端点模块中通道宽度、时钟频率、设备号、版本号、存储空间类型与大小等一系列可控制参数的配置与一些基本功能的控制。 硬核端点模块提供的事务层数据接口为 64 bit 的数据发送接口和64 bit 的数据接收接口以及控制数据发送和接收的一系列控制信号接口。数据接收控制器将收到的事务层包进行解析,根据数据包的类型进行相应的处理。数据发送控制器用于将所要发送的数据按照事务层包的格式进行封装后,发送到硬核端点模块。 数据输入 FIFO 和数据输出FIFO 共同构成了数据通道,均为双端口FIFO,用于连接PCI Express 接口和用户逻辑。数据输入FIFO 用于保存从接口收到的数据;用户逻辑电路输出的数据保存到数据输出FIFO 中后发送到接口电路。 【分页导航】 第1页: PCI Express总线简介 第2页: PCI Express接口实现:接口电路设计 第3页: PCI Express接口实现:控制状态机设计 第4页: PCI Express接口实现:DMA控制器设计 3.2 控制状态机的设计 数据发送控制器和数据接收控制器负责事务层数据的封装和解析工作,是本设计中的关键电路模块。这两个模块均采用有限状态机方式进行设计,下面详细介绍这2 个模块状态机的设计。 接收控制器从硬核端点模块中收到事务层包(TLP),根据TLP 的格式,第56 bit~第62 bit 为表示数据包类型的标志位。按照标志位中的信息,对TLP 的内容进行解析,进行相应的数据操作。所设计的状态机的状态转换图如图2 所示,各个状态的说明如表1 所示。 图2 接收控制器状态机 系统复位后,接收控制器状态机处于空闲状态,等待接收数据包,收到TLP 后跳转到相应的状态进行存储器或者I/O的读写操作。在操作过程中,对存储器或者I/O 的状态进行监控,如果目标设备没有准备好,则进入等待状态直到目标设备就绪。在存储器或者I/O 的读写操作完成后,状态机又返回空闲状态。在各个状态中接收控制器产生相应的控制信号完成数据的写入以及对发送控制器的操作。 与接收控制器状态机相比,发送控制器状态机相对简单,只有3 个状态,状态转换图见图3,各个状态的说明见表2。 系统复位后,发送控制器状态机处于复位状态。当从接收控制器收到发送数据的命令后,如果需要发送的是一个载荷数据,则将从存储器或者I/O 中取出的载荷数据填充到TLP中的相应位置后发送到端点模块;如果需要发送的只是一个响应或者标志信息,则直接封装成一个TLP 发送到端点模块。 【分页导航】 第1页: PCI Express总线简介 第2页: PCI Express接口实现:接口电路设计 第3页: PCI Express接口实现:控制状态机设计 第4页: PCI Express接口实现:DMA控制器设计 3.3 DMA 控制器的设计 由于串行总线结构与传统的并行总线结构不同,因此存储器的读写操作都是以数据包的形式传输。普通的读写操作一次最多只能进行64 bit 数据的读写,使得总线多数时间处于等待状态,严重影响了PCI Express 总线的数据传输速率。本文设计出相应的DMA 控制器,实现了DMA 方式的数据传输。 DMA 控制器的主要电路结构为14 个与DMA 操作相关的寄存器,通过对这些控制寄存器的读写,设定DMA 方式数据读写操作的地址范围和数据大小,完成DMA 数据读写操作。这些寄存器的定义和功能描述如表3 所示。 在设计了上述14 个DMA 控制寄存器后,接收控制器和发送控制器的状态机也要进行相应的调整,以适应DMA 操作的需要。在接收控制器状态机中加入了2 个状态,分别用于接收数据传输过程中的第1 个DMA 数据包和剩余的DMA数据包。在发送控制器状态机中也加入了2 个状态,分别用于发送数据传输过程中的第1 个DMA 数据包和剩余的DMA数据包。为了达到尽可能高的数据传输速率,在接收和发送过程中都使用了64 bit 数据传输模式。 在设计了如上所述的 DMA 控制器后,PCI Express 总线接口就可以用DMA 方式进行数据的读写操作。进行DMA 读/写操作的具体过程如下:(1)写中断控制寄存器,打开中断;(2)写读/写地址寄存器,设置读/写数据的起始地址;(3)写读/写包长度寄存器,设置读/写数据包的大小;(4)写读/写包数量寄存器,设置读/写数据包的数量;(5)写控制寄存器,启动DMA 读/写操作;(6)等待中断服务寄存器发出中断;(7)收到中断,读中断服务寄存器;(8)写中断控制寄存器,关闭中断。 4 仿真与性能测试 使用 Verilog 语言编写代码实现本设计,使用Modelsim SE 6.2g 对该设计进行功能仿真。从数据写入FIFO 的仿真波形图中可以看到,未采用DMA 方式时,每次只能够将一个数据写入到FIFO 中,在2 次写操作之间存在较长的等待时 间;采用DMA 方式时,可以根据用户的设置连续写入多个数据,消除了2 次操作之间的等待时间,大大提高了数据传输速率。 自行设计了采用Xilinx xc5vlx30t 芯片的PCI Express×4 接口数据传输卡;使用Xilinx 的ISE 9.2 对设计代码进行综合和布局布线, 生成配置文件, 下载到xc5vlx30t 芯片中;使用DELL Precision 690 工作站,在Windows 环境下编写测试程序对数据传输卡PCI Express 接口数据传输的速率进行测试。 采用多种数据量对 PCI Express 接口进行DMA 方式读数据测试,得到的结果如图4 所示,硬件层数据传输速率稳定在840 Mb/s。 图4 实际测试读数据速率 采用多种数据量对 PCI Express 接口进行DMA 方式写数据测试,得到的结果如图5 所示,硬件层数据传输速率稳定在720 Mb/s。 图5 实际测试写数据速率 从图 4、图5 可以看出,DMA 控制器有效减少了数据传输过程中的等待时间,大幅度地提高了数据传输速率,发挥了PCI Express 总线的优越性能。 5 结束语 本文采用基于 Xilinx 硬IP 核的方法设计实现了PCI Express 总线接口及数据的传输。对于DMA 控制器的设计,能提高数据传输的速率,使PCI Express 总线的性能得到充分发挥。 【分页导航】 第1页: PCI Express总线简介 第2页: PCI Express接口实现:接口电路设计 第3页: PCI Express接口实现:控制状态机设计 第4页: PCI Express接口实现:DMA控制器设计
  • 热度 16
    2015-4-17 08:57
    1238 次阅读|
    0 个评论
    仿人假手作为肢残患者重获人手功能的主要对象,具有重大的社会需求。理想的假手应具有人手的仿生特征,主要体现在假手构造、控制方式与环境感知3 个方面,但由于其有限的体积和复杂的传感器系统,对控制系统提出了更高的要求。 现有的控制系统有外置式和内置式两种。外置式控制系统多用于研究型假手,如Cyber Hand,Tokyo Hand,Vanderbilt Hand等,这种控制系统主要用于算法、方案的验证,在残疾人应用上推广意义较小。内置式控制系统在研究型假手和商业型假手上均有应用,其中研究型假手控制系统,在环境感知和双向信息交互上投入大量研究,如Smart Hand,DARPA hand; 而商业型假手控制系统虽然也有部分集成有外部传感器,但传感器系统简单,双向信息交互上也有较大欠缺,如i-Limb,BeBionic Hand。 HIT IV 代假手控制系统采用DSP 作为主控芯片,集成有位置传感器和力矩传感器,可对肌电信号采样。但控制系统为一个整体,且体积较大,只适用于HIT IV 代假手。DSP 芯片在功能拓展上弱于FPGA,不利于二次开发。 本文采用模块化设计方案,以FPGA 作为核心芯片,运动控制、肌电信号采集、电刺激等模块独立设计,通过通用接口连接。在此基础上,进行多模式的多指抓取实验。 1 仿人假手系统介绍 本文所设计的控制系统以HIT V 代手为控制对象。该手略小于成年人人手,具有5 根手指,每根手指2 个指节,大拇指还另有一个内旋/外展关节,共有11 个活动关节,整个手由6 个直流电机驱动,每根手指安装有力矩传感器、位置传感器、指尖六维力传感器。 控制系统采用模块化设计思想,将整个系统分割成几个模块,通过通用接口建立相互连接,使整个控制系统可以放置在仿人假手内部,实现机电一体化。 2 基于FPGA 的控制系统设计 仿人假手电气控制系统用于实现假手各手指的驱动控制、多种传感器信息的采集以及与上位机( PC 或PCI 控制卡) 之间的通信。该控制系统由10 个模块组成,分别为: 由FPGA 组成的主控芯片模块、USB 接口模块、拇指控制电路模块、食指控制电路模块、中指控制电路模块、无名指控制电路模块、小指控制电路模块、肌电信号采集模块、电池管理系统模块、电刺激反馈模块。模块化设计方法增加了控制系统的灵活性与独立性,便于对模块单独进行调试与修改。电气系统总体功能框图如图1。 图1 电气系统功能框图 【分页导航】 第1页: 仿人假手系统介绍 第2页: FPGA主控芯片模块设计 第3页: 手指运动控制模块设计 第4页: 仿人假手系统的FPGA控制流程 2.1 FPGA 主控芯片模块设计 FPGA 主控芯片模块采用Altera 公司Cyclone Ⅲ系FPGA芯片EP3C25F25617 作为控制核心,负责肌电信号和多种传感器信号的处理、与手指电路的通信、USB 通信、CAN通信接口等功能。同时,主控芯片模块还负责大拇指内旋/外展自由度驱动电机的控制。各个功能通过VHDL 语言进行编写,FPGA 中嵌入双NIOS 核构成双核处理器,其中一个NIOS 核用于肌电信号处理,另一个NIOS 核用于通信; 双核通过2M 的EEPROM 进行通信。FPGA 功能框图如图2。 图2 FPGA 功能框图 RS—485 通信通过在NIOS 核内自定义元件AutoSCI 控制RS—485 收发接口芯片MAX3362 实现。MAX3362 收发芯片可通过3.3 V 低压实现高速数据传送。CAN 与LVDS通信采用复用电路设计( 图3) ,通过更换接收发送接口芯片完成功能转换。CAN 通信采用TI 公司的CAN 收发器SN65HVD230QD 作为接口芯片。LVDS 通信采用TI 公司的半双工LVDS 收发接口芯片SN65LVDM176,构成PPSeCo高速串行通信系统与PCI 控制卡通信,通信速率可达25 Mbps,保证控制信息与传感器信息传送的及时性。 图3 CAN 通信/LVDS 通信复用电路 拇指内旋/外展自由度驱动电机由NIOS 核中自定义元件PWM 控制。元件功能通过VHDL 语言编写,PWM 波周期和占空比均可调。电机驱动芯片采用MPC17531A,其内部集成双H 桥,可直接控制直流有刷电机。 【分页导航】 第1页: 仿人假手系统介绍 第2页: FPGA主控芯片模块设计 第3页: 手指运动控制模块设计 第4页: 仿人假手系统的FPGA控制流程 2.2 手指运动控制模块设计 五根手指的运动控制模块采用相同的设计方案,增强系统的互换性与通用性。该模块由DSP 作为控制核心,直流有刷电机驱动芯片MPC17531A 作为电机驱动芯片,负责手指电机的驱动,力矩传感器、位置传感器、电机电流传感器信号的采集与处理,以及与触觉传感器系统的通信,最后各项数据通过RS—485 通信接口与主控芯片模块通信。控制模块如图4。 图4 手指运动控制模块功能框图 该模块采用的DSP TMS320F28027 运行速率高,封装小。内部集成的16 通道12 位A/D 转换器可实现对力矩、位置、电机电流信号的采样。串行异步通信接口通过RS—485 收发接口芯片实现与主控芯片模块通信。EPWM 模块可直接控制直流有刷电机驱动芯片MPC17531A。 如图5,关节力矩传感器信号采集系统包括力矩传感器、处理放大电路、滤波电路和A/D 转换电路。力矩传感器基于应变原理,采用仪表放大器INA337 组成半桥电路对力矩信号进行放大后通过RC 滤波电路进入A/D 转换芯片。 图5 力矩传感器信号采集系统 如图6,关节位置传感器信号采集系统包括位置传感器、处理放大电路、滤波电路和A/D 转换电路。位置传感器基于旋转电位器原理,采用集成运放MAX9618 对电位器信号进行放大后通过RC 滤波电路进入A/D 转换芯片。 图6 位置传感器信号采集系统 2.3 肌电信号采集模块设计 肌电信号采集模块用来采集肌电电极的信号以及对信号的滤波和D/A 转换后存储在CPU 中,包括RC 电路组成的滤波电路、D/A 转换电路和电压转换电路。数字信号通过电压转换芯片转换为3.3 V 电压,通过SPI 接口输入到CPU 中央处理器。 2.4 电池管理系统模块设计 电池管理模块包括电池、电流传感器、蜂鸣器电路、LED 显示电路。电流传感器实时监测电池输出电流大小,通过LED 显示电路和蜂鸣器电路显示充电状态和电池电量过低报警。 【分页导航】 第1页: 仿人假手系统介绍 第2页: FPGA主控芯片模块设计 第3页: 手指运动控制模块设计 第4页: 仿人假手系统的FPGA控制流程 3 软件实现 在FPGA 控制器程序设计中主要完成各系统参数的初始化与控制算法的实现,具体由如下几部分构成: 1) 与上位机通信部分: 通过3 种方式与上位机通信,获得控制指令,分别为USB 通信、LVDS 通信、CAN 通信,其中LVDS 通信与CAN 通信不能同时使用; 2) 肌电信号采集部分: 通过A/D 转换芯片将肌电电极信号转换为数字量,并经过运算处理得到控制指令; 3) 与手指运动控制模块通信部分: 通过SCI 接口实现与手指运动控制模块的RS—485 通信; 4) 生成驱动电机控制参数部分: 运算处理控制指令,生成电机运动参数( 方向与占空比) 。 控制流程图如图7 所示。 图7 FPGA 控制流程图 DSP 控制程序主要完成DSP 各参数的初始化,控制流程图如图8。 图8 DSP 控制流程图 4 假手抓取实验 基于上述设计,研制出HIT V 假手样机,进行抓取实验( 图9) ,可实现多种动作模式的抓取,分别为: 两指捏取、三指捏取、圆柱抓取、球形抓取、单指指向、胡克抓取、侧边捏取、五指端取。控制过程中,系统工作稳定,满足仿人假手运动控制和传感器信息采集要求。 图9 多指抓取实验 5 结论 本文介绍了结合FPGA 与DSP 的仿人假手控制系统的设计组成与工作流程。该控制系统体积小巧,可完全安装于假手内部。实验证明: 该系统运行可靠、控制灵活,使用效果良好。 【分页导航】 第1页: 仿人假手系统介绍 第2页: FPGA主控芯片模块设计 第3页: 手指运动控制模块设计 第4页: 仿人假手系统的FPGA控制流程
  • 热度 22
    2012-9-17 15:17
    1135 次阅读|
    0 个评论
        【摘要】: 通信系统是雷达的神经中枢,协调着各个分系统的工作。本雷达通信系统主要负责接收终端计算机发出的控制指令,将指令解析处理后实现对各分系统的控制,同时采集各分系统的工作状态以及故障状态信息,并将这些信息发送至终端计算机,以达到对各分系统监测的目的,还将信号处理系统回传的高速雷达回波数据传输至终端计算机,以便终端计算机实时显示目标的位置。由于通信系统需要与多个终端进行通信,采用串口通信方式已不能满足需求。因此,设计一种具有实时性强、可靠性高、连接关系简单、易于组网的雷达通信系统已具有十分重要的意义,采用以太网通信是最佳的选择。本文首先介绍了TCP/IP协议栈的层次结构,以及各层协议的性能特点。然后详细论述了基于硬件TCP/IP协议栈芯片W5300的以太网接口硬件设计,以及利用FPGA对W5300的控制实现与终端计算机之间的以太网通信,并设计了串口通信模块实现与各分系统之间的串行通信。最后给出了该系统的测试结果。测试结果表明,该系统满足预期要求,工作稳定可靠。 作者是来自于西安电子科技大学的吴金星。   全文请阅读:http://cdmd.cnki.com.cn/Article/CDMD-10701-1011074997.htm   更多有关W5300的博文请看这里: W5300相关视频http://blog.iwiznet.cn/?page_id=482 培训笔记之WIZnet的主要产品是什么?http://blog.iwiznet.cn/?p=390 W5300E01-ARM用户手册版本1.0(二)http://blog.iwiznet.cn/?p=86 WIZnet员工Richard培训笔记: WIZnet核心技术和产品对比 http://blog.iwiznet.cn/?p=29   也可进入我们的官方网站或博客查看更多。 如果您对WIZnet的产品或是技术感兴趣,请随时与我们联系。 可以直接留言或登录WIZnet官方网站:http://www.iwiznet.cn 公司微博是: http://weibo.com/wiznet2012 公司博客是:http://blog.iwiznet.cn/
  • 热度 19
    2012-9-17 14:46
    1145 次阅读|
    0 个评论
        【摘要】: 通信系统是雷达的神经中枢,协调着各个分系统的工作。本雷达通信系统主要负责接收终端计算机发出的控制指令,将指令解析处理后实现对各分系统的控制,同时采集各分系统的工作状态以及故障状态信息,并将这些信息发送至终端计算机,以达到对各分系统监测的目的,还将信号处理系统回传的高速雷达回波数据传输至终端计算机,以便终端计算机实时显示目标的位置。由于通信系统需要与多个终端进行通信,采用串口通信方式已不能满足需求。因此,设计一种具有实时性强、可靠性高、连接关系简单、易于组网的雷达通信系统已具有十分重要的意义,采用以太网通信是最佳的选择。本文首先介绍了TCP/IP协议栈的层次结构,以及各层协议的性能特点。然后详细论述了基于硬件TCP/IP协议栈芯片W5300的以太网接口硬件设计,以及利用FPGA对W5300的控制实现与终端计算机之间的以太网通信,并设计了串口通信模块实现与各分系统之间的串行通信。最后给出了该系统的测试结果。测试结果表明,该系统满足预期要求,工作稳定可靠。 作者是来自于西安电子科技大学的吴金星。   全文请阅读: http://cdmd.cnki.com.cn/Article/CDMD-10701-1011074997.htm   更多有关W5300的博文请看这里: W5300相关视频 http://blog.iwiznet.cn/?page_id=482 培训笔记之WIZnet的主要产品是什么? http://blog.iwiznet.cn/?p=390 W5300E01-ARM用户手册版本1.0(二) http://blog.iwiznet.cn/?p=86 WIZnet员工Richard培训笔记: WIZnet核心技术和产品对比 http://blog.iwiznet.cn/?p=29   也可进入我们的官方网站或博客查看更多。 如果您对WIZnet的产品或是技术感兴趣,请随时与我们联系。 可以直接留言或登录WIZnet官方网站: http://www.iwiznet.cn 公司微博是:  http://weibo.com/wiznet2012 公司博客是: http://blog.iwiznet.cn/
相关资源
  • 所需E币: 3
    时间: 2019-5-26 18:04
    大小: 1.66MB
    上传者: royalark_912907664
    螺栓松动、连接不紧密是一种非常常见而又隐藏巨大潜在危害的机械故障。而在振动的工作环境因数下,其发生松动的可能性与危害性又大为增加。鉴于螺栓连接松动情况下将导致相邻工件的相互作用力函数发生变化,本文设计一种通过相邻工件振动函数相位差来判断其连接状态的系统。系统主要由压电陶瓷传感器模块、高速AD采样模块、FPGA系统模块与PC上位机四部分组成。通过建立实验装置及反复的实验与对比表明该系统能够准确判断螺栓连接状态。且具备操作简单、实时性高、易于应用的特点。而以相位差作为切入点来进行螺栓连接健康监测亦可作为一种新的监测方法。