基于PCI核的BUFFER模式下链式DMA的设计

- 75 -小区供水系统
工艺设备科学大众·Popular Science 2019年4月神仙树学名叫双翅六道木
毛毯清洗剂基于PCI核的BUFFER模式下链式DMA的设计
广州海格通信集团股份有限公司    涂传亮
作者简介:涂传亮(1986— ),男,汉族,江西南昌人,硕士;研究方向:电子科学与技术。
摘  要:数字电视信号的采集速度要求不低于270 Mbit/s ,为了保证如此高速的数据流持续存入主机磁盘,且不丢失任何数据,必须解决数字视频采集卡的PCI 接口设计这一关键问题。文章研究了一种基于ALTERA 公司开发的PCI 核PCLmt32的链式DMA 的设计方法。这种方式的DMA 能够实现BUFFER 模式下的最高传输效率,速度达到2.112 Gbit/s ,使得数字视频采集卡的PCI 总线能够持续、高速地传输大量数据。 关键词:PCI ;链式DMA ;SOPC ;Win Driver 随着数字广播电视技术的普及,人们的视觉品位要求越来越高,将数字视频信号采集到计算机中,在计算机中可以方便地对采集的视频进行各种特效处理后再播出,这样可丰富视频特效种类、提高视频的视觉效果。为了高速、实时地采集数字视频信号,必须解决外设部件互连标准(Peripheral Component Interconnect ,PCI )总线接口技术这一关键问题。
本文介绍了基于链式直接存储器访问(Direct Memory Access ,DMA )方式控制点云库(Point Cloud Library ,PCL )mt32核完成66 MHz 、32位数据传输的PCI 接口设计的方法,该设计是在ALTERA 公司的Cyclone II EP2C20Q240C8为主处理芯片的电路板上完成的。1    SOPC系统框架组成
离子风机aryang采集卡的可编程片上系统(System-on-a-Programmable-Chip ,SOPC )主要由3大组件组成,主控组件是PCI 组件、DMA 组件、自定义数据采集组件。
P C I 组件相当于此系统的C PU 组件,控制DM A 组件与data_in 自定义组件,在PCI 组件中,bar0_Prefetchable Ava lo n M a s t e r ,表示预取址Ava lo n -M M 主端口,提供PCI 内存对Avalon-MM 从设备的高带宽访问。Bar1_Non_Prefetchable Avalon Master ,表示非预取址Avalon-MM 主端口,提供PCI 内存对Avalon-MM 从设备的低延时访问。Control Status Registers Avalon Slave ,表示控制状态寄存器,包含了很多与PCI-Avalon 总线配置有关的寄存器,通过对它们的设置订制所需的功能。PCI Bus Access Avalon Slave ,表示PCI 总线通道,可以通过程序设定,映射为程序申请的内存空间。2    DMA控制器
在实现DMA 开始工作时,对主机产生一个中断,此时,主机CPU 参与响应中断,在DMA 工作后,不需要CPU 参与,可以自行进行数据传输,采用DMA 方式进行数据传输,可以大大减轻CPU 的压力,提高设备的性能。
在ALTER 的SOPC Builder 中,可定制的DMA 分为2种:threadx操作系统
BLOCK DMA 和scatter-/gather DMA 。Block DMA 要求主设备提
供PCI 和Local 的起始地址、传输字节数和传输方向。主机启动DMA 传输并当所有数据传输完成时,PCI 接口控制器将向主机申请中断。scatter/gather DMA 加入了一个描述符模块,该模块存储PCI 和Local 的起始地址,传输字节数和下一个描述模块的地址。其传输的过程大概如下:当启动DMA 状态机时,PCI 接口控制首先读取DMA 起始地址,开始完成第1个模块指定的数据的传输。当第1个模块中的数据传输完毕,DMA 根据描述符先进先出队列提供的下一个模块的指针连续加载下一个模块,直到检测到“链结束位”,PCI 接口控制器向主机申请中断。
本文设计的链式DMA 是基于BLOCK DMA ,能过驱动控制BLOCK DMA 从而实现scatter/gather DMA 的功能。2.1  DMA Core 寄存器
防水摄像头
DMA 控制器主要有5个寄存器,如图1所示,分别是状态寄存器status ,读地址寄存器readaddress ,写地址寄存器writeaddress ,长度寄存器length ,控制寄存器control
图1  DMA控制器模块结构
在启动D M A 时,首先需要分别配置r e a d a d d r e s s ,
writeaddress ,length 和control 这4个寄存器,然后总线就会启动DMA 传输,DMA 控制器向readaddress 寄存器指向的地址中读取数据,将数据写入至writeaddress 寄存器指向的地址,整个DMA 操作所需传输的数据个数存储在length 中,而数据传输的模式存储在控制寄存control 中。2.2  DMA BUFFER 的选择
当DMA 工作在突发模式下,一次DMA 传输最多传送1 024个32位宽度的数据,每传送完1 024个字则需要对DMA 进行中断,频繁地对DMA 中断会对程序计数器效率造成影响。
当DMA 工作在非突发模式下,一次DMA 传输则可以传输任意大小的字,当传输完规定的数据个数后才进行一次中断,此时传输的数据个数不受1 024的控制。而两种工作状态下,数据传输的效率是不一样的。
DMA 工作在非突发模式下,经过逻辑分析仪采集的数据图,逻辑分析仪的主时钟为PCI 的工作时钟66 MHz ,yushu_out (即SOPC 系统中自定义组件的地址)信号每隔5个时钟周期进行一次地址的自增,也意味着每隔5个时钟周期SOPC 才接收一个动态随机存取存储器(Dynamic Random Access Memory ,DRAM )的输出数据,效率变为标准的1/5。
DMA 工作在突发模式下,经过逻辑分析仪采集的数据图,

本文发布于:2024-09-21 12:30:28,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/214482.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:传输   数据   模块   地址   寄存器   采集   组件
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议