CN103049409A - 一种单向高速数据传输的控制方法 - Google Patents
一种单向高速数据传输的控制方法 Download PDFInfo
- Publication number
- CN103049409A CN103049409A CN201210591200XA CN201210591200A CN103049409A CN 103049409 A CN103049409 A CN 103049409A CN 201210591200X A CN201210591200X A CN 201210591200XA CN 201210591200 A CN201210591200 A CN 201210591200A CN 103049409 A CN103049409 A CN 103049409A
- Authority
- CN
- China
- Prior art keywords
- transmission
- data
- unit
- receiving end
- tcu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了一种单向高速数据传输的控制方法,通过增加数据传输的自主性提高数据传输效率,同时提高了硬件利用率和系统实时性。该单向高速数据传输的控制方法包括以下执行环节:接收端将配置数据写入配置寄存器组;接收端启动传输控制器;传输控制状态机启动计算单元;计算单元计算出接收端目的地址后,将其传送给传输单元;传输控制状态机启动传输单元;检测是否有数据需要传输,若有,则向数据接口发出占用请求;数据接口占用请求被确认后,传输单元将数据组合成数据接口要求的格式后传输;若接收端关闭传输控制器,传输控制器退回空状态并清空计算单元和传输单元,否则跳向步骤c。
Description
技术领域
本发明涉及一种数据传输控制方法,特别涉及一种单向高速数据传输的控制方法。
背景技术
在计算机通信领域,目前主要通过多总线结构和DMA控制器来实现通信双方数据的高速传输。多总线结构和DMA控制器不通过CPU,而是直接在存储器间进行数据传输,减少了CPU的开销,不仅减轻了CPU的负担而且大大提高数据传输速率。但是,现阶段主要的DMA控制器——普通DMA控制器和链式DMA控制器在实际应用中还存在一些不足:
⒈普通DMA控制器在每次传输前都需要从CPU获取配置数据,这在一定程度上会影响数据传输速率,链式DMA控制器虽然可以由CPU一次配置多组配置数据,然后在传输过程中由DMA控制器自动读取,但由于配置数据是CPU预先设置,而CPU并不能准确获知所需传输数据的形式,因此预先设置的配置数据也比较少,其传输效率仅比普通DMA控制器稍高;
⒉基于DMA控制器的原理,需要在发起端设置一块较大的缓存来防止数据溢出,这可能会在某些应用场景下造成存储器的浪费。
⒊由于DMA控制器必须等到CPU的指令才能开始传输,如果CPU被优先级高的事务占用,数据的实时性无法得到很好的保证。
发明内容
本发明的目的是提供一种单向高速数据传输的控制方法,该方法通过增加数据传输的自主性提高数据传输效率,同时提高了硬件利用率和系统实时性。
为达到以上目的,本发明是采取如下技术方案予以实现的:
一种单向高速数据传输的控制方法,采用配置寄存器组、本地缓存、参数寄存器组和传输控制器;其中
配置寄存器组由接收端配置,用来储存接收端缓存和传输控制器的配置参数;
发送端缓存(本地缓存),用于存放发送端待传输数据;
参数寄存器组,用于存放待传输数据的长度信息;
传输控制器,包括计算单元、传输单元和传输控制状态机,其中传输控制状态机控制计算单元和传输单元的工作时序,确保两个单元能够协调工作,以完成传输目的地址的计算以及数据的传输;
该单向高速数据传输的控制方法包括以下执行环节:
i.接收端将配置数据写入配置寄存器组;
j.接收端启动传输控制器;
k.传输控制状态机启动计算单元;
l.计算单元计算出接收端目的地址后,将其传送给传输单元;
m.传输控制状态机启动传输单元;
n.检测是否有数据需要传输,若有,则向数据接口发出占用请求;
o.数据接口占用请求被确认后,传输单元将数据组合成数据接口要求的格式后传输;
若接收端关闭传输控制器,传输控制器退回空状态并清空计算单元和传输单元,否则跳向步骤c。
与DMA控制器相比,本发明的有益效果是:
a)传输效率高。数据传输完全独立于接收端工作,不会由于接收端处理其它事务而影响数据传输效率。
b)缓存利用率高。能够根据不同的实际应用环境和条件,灵活分配缓存,有效减少缓存浪费,提高缓存的利用率。
c)实时性强。传输控制器实时检测是否达到数据传输条件,一旦条件满足,马上启动数据传输。
d)使用简单。用户只用根据实际应用环境,在启动传输前进行一次数据配置。
附图说明
图1是本发明的技术方案示意图;
图2是本发明技术方案工作流程示意图;
图3是传输控制状态机状态转移示意图;
图4是传输控制器计算单元工作流程示意图;
图5是传输控制器传输单元工作流程示意图。
具体实施方式
本发明创新地提出了一种单向高速数据传输的控制方法,仅在启动前需要CPU配置一次,之后独立于CPU工作,完全避免了CPU的开销,其数据传输效率比DMA控制器更加高效;另外,还能够根据实际应用场景通过配置数据对缓存进行灵活分配,减少缓存浪费,降低系统硬件成本;最后,通过实时检测并自动传输数据,提升系统的实时性。
下面结合附图及具体实例对本发明做进一步的详细说明。
如图1所示,一种单向高速数据传输方法,包括
a)配置寄存器组
配置寄存器组的定义和说明如表1所示。
表1配置寄存器组说明
b)本地缓存(发送端缓存)
根据外部信号和数据接口要求,本地缓存使用一个写端口宽度32bit、读端口宽度64bit、深度4096的双口RAM实现,并将其划分成4个深度为1024的缓存单元,每个缓存单元仅用来缓存一帧数据。
c)参数寄存器组
参数寄存器组使用一个宽度为16bit、深度16的直通FIFO实现,写入的接收数据长度信息由传输控制器读出。外部单元每接收完一帧数据后就将该帧数据的长度信息写入FIFO中,而当传输控制器检测到FIFO不为空时,读出FIFO中的数据并开始传输数据。
d)传输控制器
传输控制器分为计算单元、传输单元和传输控制状态机三部分,其实现方法分别如下:
1)传输控制状态机
传输控制状态机控制计算单元和传输单元的工作时序,确保两个单元能够协调工作。状态转移关系如图3所示,设计了三种状态:空状态(S0)、计算状态(S1)和传输状态(S2)。状态机最初处于空状态,一旦传输控制器被启动就转移到计算状态,完成计算后转移到传输状态,传输结束后若传输控制器关闭则转移到空状态,否则转移到计算状态。
传输控制状态机启动条件为mont_buff_ready_reg的最低位置1,关闭条件为mont_buff_ready_reg的最低位置0。
2)计算单元
计算单元的工作流程如图4所示,具体说明如下:
a.若为第一次传输,则初始化传输地址为主机缓存区的起始地址;
b.若不为第一次传输,检查主机缓存单元剩余长度是否小于2180字节,若小于则切换主机缓存单元,更新mont_buff_tptr_reg的值;
c.若切换主机缓存单元,则将传输地址更新为新缓存单元起始地址,否则将传输地址加上本次传输的字节数作为新的传输地址。
3)传输单元
传输单元的工作流程如图5所示,具体说明如下:
a.检测参数FIFO是否为空,若不空,则有数据需要进行传输;
b.若主机缓存区满(mont_buff_tptr_reg的值加1等于mont_buff_hptr_reg的值),则将本地缓存读指针(内部设置)指向下一个缓存单元,拉高FIFO读使能一个时钟周期,丢弃一帧数据,本次传输完成;
c.若主机缓存区可写,申请占用PCIe接口,并初始化剩余数据寄存器(内部设置)的值为FIFO读出数据;
d.PCIe接口占用被确认后,从本地缓存读指针指向的本地缓存单元中读出数据并通过PCIe接口发出;
e.收到PICe接口发送成功确认后,将剩余数据寄存器的值减去已发送完成的数据字节数;
f.若剩余数据寄存器的值为0,则将本地缓存读指针指向下一个缓存单元,拉高FIFO读使能一个时钟周期,本次传输完成;否则,继续传输缓存单元中的数据直到剩余数据寄存器的值为0。
e)附加寄存器组
另外,还可以配置附加寄存器组,为接收端提供反映传输状态的相关信息。这是根据接收端的需求设置的,不是必需的。比如接收端需要提供主机缓存满指示和主机缓存单元实际使用长度指示功能,则设置主机缓存满标志寄存器和主机缓存单元实际长度寄存器组,附加寄存器组说明如表2所示。
表2附加寄存器组说明
Claims (1)
1.一种单向高速数据传输的控制方法,采用配置寄存器组、本地缓存、参数寄存器组和传输控制器;其中
配置寄存器组由接收端配置,用来储存接收端缓存和传输控制器的配置参数;
发送端缓存,用于存放发送端待传输数据;
参数寄存器组,用于存放待传输数据的长度信息;
传输控制器,包括计算单元、传输单元和传输控制状态机,其中传输控制状态机控制计算单元和传输单元的工作时序,确保两个单元能够协调工作,以完成传输目的地址的计算以及数据的传输;
该单向高速数据传输的控制方法包括以下执行环节:
a.接收端将配置数据写入配置寄存器组;
b.接收端启动传输控制器;
c.传输控制状态机启动计算单元;
d.计算单元计算出接收端目的地址后,将其传送给传输单元;
e.传输控制状态机启动传输单元;
f.检测是否有数据需要传输,若有,则向数据接口发出占用请求;
g.数据接口占用请求被确认后,传输单元将数据组合成数据接口要求的格式后传输;
h.若接收端关闭传输控制器,传输控制器退回空状态并清空计算单元和传输单元,否则跳向步骤c。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210591200.XA CN103049409B (zh) | 2012-12-28 | 2012-12-28 | 一种单向高速数据传输的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210591200.XA CN103049409B (zh) | 2012-12-28 | 2012-12-28 | 一种单向高速数据传输的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103049409A true CN103049409A (zh) | 2013-04-17 |
CN103049409B CN103049409B (zh) | 2015-04-15 |
Family
ID=48062055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210591200.XA Active CN103049409B (zh) | 2012-12-28 | 2012-12-28 | 一种单向高速数据传输的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103049409B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105490780A (zh) * | 2015-12-11 | 2016-04-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于rs422协议的可变数据传输方法 |
CN105490785A (zh) * | 2015-12-08 | 2016-04-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于共享缓存的fc网络余度发送控制方法 |
CN107193766A (zh) * | 2017-05-12 | 2017-09-22 | 苏州中科集成电路设计中心有限公司 | 一种PCIe设备与主机之间的多路有序数据传输方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276029A1 (en) * | 2007-05-03 | 2008-11-06 | Haraden Ryan S | Method and System for Fast Flow Control |
JP2009188508A (ja) * | 2008-02-04 | 2009-08-20 | Toshiba Corp | データ送受信装置 |
CN102945291A (zh) * | 2012-08-03 | 2013-02-27 | 南京理工大学 | 基于pci-e的高速图像采集存储卡 |
-
2012
- 2012-12-28 CN CN201210591200.XA patent/CN103049409B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276029A1 (en) * | 2007-05-03 | 2008-11-06 | Haraden Ryan S | Method and System for Fast Flow Control |
JP2009188508A (ja) * | 2008-02-04 | 2009-08-20 | Toshiba Corp | データ送受信装置 |
CN102945291A (zh) * | 2012-08-03 | 2013-02-27 | 南京理工大学 | 基于pci-e的高速图像采集存储卡 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105490785A (zh) * | 2015-12-08 | 2016-04-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于共享缓存的fc网络余度发送控制方法 |
CN105490785B (zh) * | 2015-12-08 | 2018-10-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于共享缓存的fc网络余度发送控制系统及方法 |
CN105490780A (zh) * | 2015-12-11 | 2016-04-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于rs422协议的可变数据传输方法 |
CN105490780B (zh) * | 2015-12-11 | 2018-09-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于rs422协议的可变数据传输方法 |
CN107193766A (zh) * | 2017-05-12 | 2017-09-22 | 苏州中科集成电路设计中心有限公司 | 一种PCIe设备与主机之间的多路有序数据传输方法 |
CN107193766B (zh) * | 2017-05-12 | 2020-04-10 | 苏州中科集成电路设计中心有限公司 | 一种PCIe设备与主机之间的多路有序数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103049409B (zh) | 2015-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101556565B (zh) | 嵌入式处理器的片上高性能dma | |
CN102231142B (zh) | 一种带有仲裁器的多通道dma控制器 | |
CN100440184C (zh) | 一种能同时进行读写操作的dma控制器及传输方法 | |
EP2097828B1 (en) | Dmac to handle transfers of unknown lengths | |
KR101298862B1 (ko) | Pci 익스프레스를 통해 ⅰd 기반 스트림을 가능하게 하는 방법 및 장치 | |
CN101866328A (zh) | 一种自动访问的串行总线读写控制方法 | |
CN101916237B (zh) | 一种pci总线dma高速数据传输方法 | |
CN102023956A (zh) | 集成电路芯片中串行外设从器件接口结构及数据读写方法 | |
WO2018147955A1 (en) | Multi-port multi-sideband-gpio consolidation technique over a multi-drop serial bus | |
KR20110078471A (ko) | 모바일 인더스트리 프로세서 인터페이스 | |
CN110188059B (zh) | 数据有效位统一配置的流控式fifo缓存装置及方法 | |
CN116069711B (zh) | 直接内存访问控制器、异构设备、内存访问方法及介质 | |
CN103323006A (zh) | 基于omap的光纤陀螺捷联系统的导航计算机 | |
CN103049409B (zh) | 一种单向高速数据传输的控制方法 | |
JP4022442B2 (ja) | フィールドバスインタフェースボードの制御方法 | |
CN103377170B (zh) | 异构处理器间spi高速双向对等数据通信系统 | |
US10684981B2 (en) | Fast termination of multilane single data rate transactions | |
CN115934625A (zh) | 一种用于远程直接内存访问的敲门铃方法、设备及介质 | |
US7610415B2 (en) | System and method for processing data streams | |
US8671230B2 (en) | Data transfer device and data transfer method | |
EP2899644A1 (en) | Device and method for inter-core communication in multi-core processor | |
US20060218334A1 (en) | System and method to reduce memory latency in microprocessor systems connected with a bus | |
CN101237346A (zh) | 网络处理器及网络处理器的读写串口的方法 | |
CN102043750A (zh) | 一种微处理器总线结构及微处理器 | |
CN1234550B (zh) | 一种输入/输出总线系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |