基于FPGA的IEEE-1394b双向数据传输系统设计

发布者:北极星小鹏最新更新时间:2011-03-30 来源: 电子工程专辑关键字:FPGA  IEEE-1394b 手机看文章 扫描二维码
随时随地手机看文章
    随着IEEE Std 1394-1995技术的高速发展,IEEE 1394已经成为众多电子设备基本的外部接口。然而,要进一步扩展它的适用领域,就必须克服其接口被限制工作在较短距离以及不适用于较高数据传输率的缺陷。IEEE Std 1394b-2002作为其修订版本支持800 Mb·s-1传输速率,且中继距离长达100m。它将原来的DS(Data-Strobe)编码方式改进为8B/10B编码方式,这对于1394性能的改进起着决定性作用。同时,1394b是向下兼容的,也就是说同一个电路既可以选择使用DS编码也可以选择使用8B/10B编码。

  现在符合1394b标准的链路层和物理层控制芯片都遵循1394 OHCI(开放式主机控制接口协议),它的主要功能是实现总线的链路层协议。本系统通过NIOSII处理器,根据1394 OHCI,对FPGA以及1394套片进行控制,实现了双向数据传输。其主要功能是将外部视频数据打包,按照1394b协议,传输到主机端进行实时显示,并实现与主机的相互通信。

  1 1394 OHCI的特点

  支持事务层和总线管理层,而且带有一个PCI主机总线接口,以及高速率数据传输所需要的DMA引擎。支持两种数据传输:异步传输和等时传输。

  异步传输:1394 OHCI可以发送和接收所有1394所定义的数据包格式。无论是从主机存储器中读出发送数据包,还是将接收到的数据包写入主机存储器,都是通过DMA来实现的。在向主机总线存储空间读和写时,1394 OHCI也可以通过直接执行1394读和写请求而作为主机总线和1394之间的总线桥。

  等时传输:1394 OHCI可以执行循环控制器的功能。也就是说它包含了一个循环计时器和计数器,可以在8 kHz时钟的每个上升沿后安排一个循环开始包的传输。1394 OHCI可以产生内部时钟。当它不是循环控制器时,1394 OHCI根据循环开始包,通过更正其循环计时器来保持它的内部时钟与主节点的周期同步。1394 OHCI为等时发送和等时接收各提供了一个DMA控制器。每个DMA控制器支持高达32个不同的DMA上下文(context)。等时发送DMA控制器可以在每个周期,从每个上下文发送数据。而每个上下文只能从唯一的等时信道发送数据。等时接收DMA控制器可以在每个周期,从每个上下文接收数据。但是每个上下文既可以从唯一的等时信道接收数据,也可以从多个等时信道接收数据。

  2 硬件结构

  以FPGA内嵌的NIOSII处理器为开发平台,控制实现数据的双向传输。其硬件结构框图如图1所示。主要由NIOSII系统模块、SPI口的数据输入输出模块、1394套片模块、SRAM模块、串口(UART)通信模块、电源管理模块、EPCS模块和Flash模块组成。其中,FPGA芯片为主控芯片,选择Ahera公司Cyclone II系列的EP2C70F672C8N;Flash芯片用于存储NIOSII嵌入式处理器的代码和数据,FPGA上电后从中读取;SRAM芯片一个用于对外部大量视频数据进行缓存,另一个作为C代码的运行空间。串口主要用以产生异步数据,外部视频数据则主要通过SPI口进行等时传输。

 系统的硬件结构框图

图1 系统的硬件结构框图

  3 软件工作流程

  在NIOSII IDE集成环境下,根据1394 OHCI协议,使NIOSII处理器实现对总线的初始化,以及管理,并通过DMA方式实现等时和异步数据传输。其中等时数据传输仅考虑将外部视频数据打包发送到主机,而异步数据传输分为主机发起的异步传输和1394设备发起的异步传输。

  3.1 系统的自举

  主要为系统初始化、检测电缆以及根节点的确定。系统初始化主要是配置链路层芯片寄存器,使其工作在需要的状态下。分为对PCI寄存器的初始化和对OHCI寄存器的初始化。对PCI寄存器的初始化包括对TSB82AA2设备ID和PCI厂商ID的验证,OHCI基地址寄存器的设置以及对指令状态寄存器的配置。而对OHCI寄存器的初始化则包括对各个中断寄存器和DMA上下文的设置,以及控制寄存器的配置。检测电缆是否插入是通过读取物理层芯片某寄存器的相应位来判断的。电缆插入后,通过检查和配置Node ID寄存器,强制设置本节点为子节点,主机为根节点,直到成功为止。

  3.2 数据的传输

  在1394 OHCI中,不管是等时传输,还是异步传输,都是通过DMA方式实现的,而且每个DMA都有一个FIFO,用于暂时存放数据。其中各FIFO的存储容量为:异步发送(AT)FIFO为5 kB,异步接收(AR)F7FO为2 kB,等时发送(IT)fIFO为2 kB,等时接收(IR)FIFO为2 kB。无论是物理层接收到的还是要发送出去的数据包,都被暂时存放在相应的FIFO中,由1394套片的内部逻辑控制将其传送到1394总线上。

  (1)主机发起的异步传输。

  主机发起的异步传输即由主机发出异步传输请求,1394设备进行响应,因此在这一部分,主要是异步请求包的接收以及异步响应包的发送。其工作流程如图2所示。1394设备接收到主机发来的异步请求包后,就会产生异步接收请求中断,这可由链路层芯片中断寄存器的RQPkt位表征。当一个数据包传送完毕后,数据包的最后一个指令描述符的xferStatus字段将被重置,这时数据包已被成功传送到AT响应FIFO中。

主机发起的异步传输工作流程

图2 主机发起的异步传输工作流程

  (2)1394设备发起的异步传输。

  同样,由1394设备发起的异步传输即由1394设备发出异步传输请求,主机进行响应。因此,这一部分主要是异步请求包的发送以及异步响应包的接收,其工作流程如图3所示。这时会产生异步请求输出DMA中断,这可由链路层芯片中断寄存器的reqTxComplete位表征。1394设备接收到主机发来的异步响应包后,会产生异步接收响应中断,这可通过链路层芯片中断寄存器得知。另外,发送出去的请求包也将被暂时存放在内存中,以便与返回的响应包对应。

1394设备发起的异步传输的工作流程

图3 1394设备发起的异步传输的工作流程

  (3)等时传输。

  等时传输主要实现的功能是通过1394设备将外部的视频数据等时传输到主机进行实时显示。外部视频数据与FPGA的SPI接口相连,FPGA把接收到的数据缓存在SRAM中,等时传输时,FPGA读取SRAM中的数据,生成等时数据包。这一部分的主要工作就是等时数据包的发送,其工作流程如图4所示。

等时传输的工作流程

图4 等时传输的工作流程

  4 测试结果分析

  为了测试系统性能,进行了最快传输速度测试。设置总线传输速度为800Mb·s-1,根据1394总线协议的规定,每个数据包最大为4 096 bit。理论上一个传输周期125μs传送一个数据包,因此每秒最多传输数据31.25 Mb,转换为比特率,最大传输速度为250 Mb·s-1。实测的最快传输速度可达227 Mb·s-1,相对于1394a理论上的最大速度125 Mb·s-1提高了较多,因此该系统在传输速度上具有较大优势。同时,主机端实时显示的视频实时性和可靠性也较好。

  5 结束语

  本系统,采用800 Mb·s-1的总线传输速率,利用FPGA内嵌的NIOSII处理器作为控制核心,实现了双向传输,用异步传输方式传输主机端指令和摄像头方位及状态信息,用等时传输方式将摄像头数据传输到主机端进行实时显示。实验表明,相对于1394a,该方案具有高速通信、可靠性高、实时性强等优点,达到了预定目标,运行良好。本系统研究的是1394设备与主机间的通信,在此基础上还可以研究在脱离计算机的环境下,两个1394设备间的通信传输以及多个设备的组网传输。



关键字:FPGA  IEEE-1394b 引用地址:基于FPGA的IEEE-1394b双向数据传输系统设计

上一篇:基于FPGA的高性能DAC芯片测试与研究
下一篇:一种改进型的时分多址的实现方法

推荐阅读最新更新时间:2024-05-02 21:19

一种基于FPGA的三轴伺服控制器的设计优化
  目前伺服控制器的设计多以DSP或MCU为控制核心,但DSP的灵活性不如FPGA,且在某些环境比较恶劣的条件如高温高压下DSP的应用效果会大打折扣,因此以FPGA为控制核心,对应用于机载三轴伺服控制平台的控制器进行了设计与优化。    1 总体方案   FPGA(Field-Prograromable Gate Array,现场可编程门阵列)是在PAL,GAL,CPLD等可编程器件的基础上进一步发展的产物。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)
[嵌入式]
装入CPLD/FPGA的步进电机运动控制器与驱动器
本设计实例进一步拓展了以前将步进电机驱动器集成到CPLD中的设计(参考文献1)。本实例不仅集成了驱动器,而且还集成了一个简单的单轴步进电机运动控制器。根据CPLD大小,可以将多个运动控制器设计到单一设备中。例如,单轴运动控制器采用68%或63%的可用宏单元设计到Xilinx XC95108中。运动控制器以确定的速度与时间曲线顺时针或逆时针旋转步进电机指定的步数。运动开始时,控制器对电机加速,直到其达到巡航速度,然后减速直到停止(图1)。 控制器可将电机速度调节到16 个值,V=VMAX×speed/16, 其中速度值为0到16的整数。在加速阶段,速度从1到16升高,在巡航阶段,速度保持在16,最后,在减速阶段,速度下降到1
[嵌入式]
基于ARM+FPGA的食用花生油质量快速 检测仪的设计
食用油种类有很多种,各类食用油的检测方法不尽相同。以花生油质量检测为例,由花生油的特殊物理性质可知,花生油在0~5℃时开始结晶 ,其他种类的食用油都不是在这个温度下结晶,利用这一特殊物理性质,在花生油结晶状态条件下对其进行吸光度测量,花生油在不同温度的结晶度信息是不一样的,所以需要一个恒定的温度环境来确保测量精度。本文给出了一种基于ARM+FPGA的便携式免化学试剂且环境友好型花生油质量快速检测仪的设计方案。 1仪器工作原理与方案设计 食用油质量现场快速检测仪是利用信号采集模块检测样品油的吸光度,因为吸光度与样品油的物质成分有关,通过吸光度可以了解样品油的纯度。 1.1工作原理 通过ARM处理器模糊PID计算,调整FP
[工业控制]
基于ARM+<font color='red'>FPGA</font>的食用花生油质量快速 检测仪的设计
FPGA帮您实现家居遥控
   引言   人们生活中的家用电器种类日益增多,遥控器的种类也随之增加,不同种类的遥控器之间一般不能相互替代,这给人们的生活带来诸多不便。   各类遥控器功能大致相同,大多都有数字键、启动停止键、前进键、快进键、后退键,复杂的也就是增加几个功能键,现实生活中,由于用户的个体差异,特殊功能键的使用频率很低,甚至部分用户自始至终就从未使用过这类键,因此,这些键完全可以简化和归类使用,对于那些不易简化和归类的少量特殊功能键,可以通过开辟自定义按键区的方法予以解决。   鉴于此,本文以单片机和大规模可编程门阵列FPGA为基础,以记录波形的思想设计了一款自学习式通用家居遥控器,又为原本无遥控功能的电灯、电扇、窗帘等设施追加了
[嵌入式]
莱迪思推出Lattice Insights培训网站,助力FPGA应用设计和开发
中国上海——2023年6月25日—— 莱迪思半导体公司,低功耗可编程器件的领先供应商,今日宣布推出官方培训门户网站“Lattice Insights™”,帮助客户和合作伙伴充分体验低功耗FPGA设计。 Lattice Insights由FPGA和培训专家开发,提供各种学习计划、强大的课程库以及可定制的交互式讲师指导培训,涵盖FPGA开发的方方面面,包括芯片、软件、解决方案、开发板等。 莱迪思全球销售高级副总裁Mark Nelson 表示:“Lattice Insights旨在为我们的客户提供全面的内容和实践培训,帮助他们扩展专业知识,并将先进的解决方案推向市场,无论他们已经有多年的FPGA开发经验,还是第一次使用FPGA,都
[嵌入式]
Ximmerse VR/AR跟踪平台采用莱迪思的低功耗、小尺寸ECP5 FPGA
莱迪思半导体公司(NASDAQ: LSCC),客制化智能互连解决方案市场的领先供应商,今日宣布广东虚拟现实科技有限公司(Ximmerse),移动AR/VR应用交互系统提供商,选择采用莱迪思ECP5™ FPGA为其AR/VR跟踪平台实现立体视觉计算解决方案。得益于低功耗、小尺寸和低成本的优势,市场领先的莱迪思ECP5 FPGA是用于实现网络边缘灵活的互连和加速应用的理想选择,可实现低功耗、低延迟的解决方案。 随着对于AR/VR设备市场需求的不断增长,目前基于头戴式显示器(HMD)的系统在使用移动应用处理器(AP)处理内容时的性能瓶颈日趋明显。由此可见,使用移动处理器执行基于视觉的位置跟踪功能挑战性颇高。莱迪思的ECP5 FPG
[嵌入式]
Ximmerse VR/AR跟踪平台采用莱迪思的低功耗、小尺寸ECP5 <font color='red'>FPGA</font>
脉冲压缩原理及FPGA实现
摘要:为解决雷达作用距离和距离分辨力的问题,分析了线性调频脉冲压缩的原理及工程实现方法,并利用Matlab软件对加权前后的线性调频信号脉冲压缩波形进行对比。简述了分布式(DA)算法的基本原理,给出一种基于FPGA分布式算法的时域脉冲压缩实现结构,利用QuartusⅡ软件完成脉冲压缩处理模块设计以及波形仿真。通过分析可以得出基于分布式算法实现的脉冲压缩可以减少资源利用率,大大节省硬件资源。 关键词:脉冲压缩;匹配滤波器;分布式算法;FPGA 0 引言 随着现代科技的发展,对雷达的作用距离、距离分辨力等性能提出了越来越高的要求。根据雷达理论,距离分辨力取决于信号的带宽,探测距离取决于信号的时宽,所以理想的雷达信号应具有大时宽带
[嵌入式]
脉冲压缩原理及<font color='red'>FPGA</font>实现
BittWare发布配备Intel® Agilex™ M系列和I系列的PCIe 5.0/CXL FPGA加速器
BittWare发布配备Intel® Agilex™ M系列和I系列的PCIe 5.0/CXL FPGA加速器,推动内存和互连性改进,并且降低风险 • BittWare加入Intel的Agilex M系列早期使用计划,以推动开发用于内存密集型应用的FPGA解决方案 • BittWare新添两种全新的Intel Agilex I系列 SmartNIC加速器,打造最广泛的Intel基于FPGA加速器的企业级产品组合 • 与Intel进行数十年的合作,使客户可随时获取高性能计算、计算存储、网络和传感器处理领域的的成熟产品 新罕布什尔州康科德 - 2022年8月3日 - Molex莫仕旗下的子公司BittWare是用于边缘
[嵌入式]
BittWare发布配备Intel® Agilex™ M系列和I系列的PCIe 5.0/CXL <font color='red'>FPGA</font>加速器
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved