CN101114269A - 多外设自主数据传输与存储方法 - Google Patents
多外设自主数据传输与存储方法 Download PDFInfo
- Publication number
- CN101114269A CN101114269A CNA2006100619375A CN200610061937A CN101114269A CN 101114269 A CN101114269 A CN 101114269A CN A2006100619375 A CNA2006100619375 A CN A2006100619375A CN 200610061937 A CN200610061937 A CN 200610061937A CN 101114269 A CN101114269 A CN 101114269A
- Authority
- CN
- China
- Prior art keywords
- peripheral
- data
- parameter
- storage
- data transmission
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明公开一种多外设数据自主传输与存储方法,包括如下步骤:将挂接在总线上的前端参数外设设置为主设备,将挂接在总线上的存储器设置为从设备;参数外设通过总线主动对存储器进行数据传输与存储;参数外设的增加不占用额外的CPU资源及片内有限的存储器资源,软件开销低,该方法可以实现大数据量高速传输,因此对参数外设的数据传输和存储效率高、成本低,可适用于监护仪等仪器进行多个端口高速数据流同时传输并存储。
Description
【技术领域】
本发明涉及一种数据的传输与存储方法。
【背景技术】
电子医疗设备种类繁多,其中绝大部分都具有嵌入式系统,电子医疗设备被用于测量人体的各种生理信号,并按需要把经过计算处理后的各生理参数数据记录存储下来,用于病情实时诊断、趋势回顾、术后分析、病历记录等用途。电子医疗设备中的人体生理指数测量电路模块种类繁多,导致了所需的数据传输类型各异,各种协议非常复杂,同时,病人的生理指标数据则需要实时测量、上传并显示,以保证医生对危重病人的及时诊断。因此对其进行数据流调度比较复杂。
和大多数嵌入式系统一样,监护仪通常采用两类方法来实现大量数据并行上传。一类方法是使用缓存,按照一般的存储器缓冲方法来保证数据流的可靠传输。也就是给每个数据通道分配特定的芯片内存储器空间,根据该数据通道的特定需求可将此存储器空间组织成RAM(随机存储器)或是FIFO(先入先出),在每次数据上传的过程中都依赖这一空间中转数据,再将数据导入外部大容量存储器中。现场可编程逻辑门阵列(FPGA)中存储器资源有限绝大多数FPGA自带的存储器容量都在1M字节以下。特定用途集成电路(ASIC)虽然可以定制大容量存储器,但开发周期长,风险高。
另一种方法是CPU介入数据传输。数据传输以字节或是包为单位,较低速率的数据通道可以考虑以字节为单位实现数据传输,而数据速率较高的数据通道则必须以自定义的数据包为单位传输数据。在数据传输的过程中都引入CPU中断信号,每一次数据上传,给CPU发一个中断信号,CPU在收到中断请求后介入本次数据传输,接收下位机的数据,放入片外存储器。由于通道多,数据量大,所以在此种方法中,CPU必须频繁介入,增加的软件开销严重影响系统性能,成为系统的瓶颈。
综上所述,现有技术的缺点有两方面:
1.外设数量增加,将直接导致数据传输需要更多的存储器资源:
以1.152Mbyte/s的数据传输速率为例,使用缓存技术,接受和发送各需要一个32位宽,深度为64k的FIFO,占用FPGA/ASIC片内4Mbit的存储器资源。在较为常见的八通道监护仪中,在每个参数测量模块都以1.152Mbyte/s上传所测得人体生理参数数据的前提下,共需4Mbyte的存储器空间,在现有的IC工艺水平下,这几乎会耗尽整片FPGA/ASIC内的所有存储器资源。
2.外设数量增加,将导致整个系统的性能下降;
外设数量增加,通常需要相应的CPU中断配合。单次传输发生时,外设向CPU发出中断请求,CPU在处理完当前任务后介入本次传输,将外设的数据读入外部存储器。每一次传输都会发出中断请求,都需要CPU的介入。在多外设情况下,对CPU资源的占用是巨大的,整个系统的效能会因此下降很多。
【发明内容】
本发明的目的就是为了克服以上现有技术中的不足,提供一种效率高、易实现、低成本的多外设自主数据传输与存储方法。
为实现上述目的,本发明提出一种多外设自主数据传输与存储方法,包括如下步骤:(1)将挂接在总线上的参数外设设置为主设备,将挂接在总线上的外部存储器设置为从设备;(2)参数外设通过总线主动对外部存储器进行数据传输与存储。
上述的多外设自主数据传输与存储方法,还包括步骤(3)主控制器读取参数外设写入外部存储器内的数据。
上述的多外设自主数据传输与存储方法,还包括主控制器向参数外设下传数据的过程:主控制器将下行数据写入外部存储器内,参数外设从外部存储器读取读下行数据。
上述的多外设自主数据传输与存储方法,所述参数外设通过接口和转换逻辑模块挂接在总线上,所述接口和转换逻辑模块完成包括信号接口以及信号识别、变换以及协议转换的功能。
上述的多外设自主数据传输与存储方法,所述存储器为多个,每一存储器设置为一个或多个参数外设的从设备;不同参数外设同时通过总线主动对各自对应的不同存储器进行数据传输与存储。
上述的多外设自主数据传输与存储方法,系统主控制器与所述参数外设之间存在对所述存储器进行读写的竞争关系,总线机制通过内部仲裁协调该竞争。所述竞争关系的协调过程包括:当所述参数外设与外部存储器进行数据传输时,如果总线被其他外设占用,总线仲裁逻辑向参数外设发出等待信号,参数外设在等待信号有效期间保持发往外部存储器信号,该等待信号失效后,参数外设和外部存储器占用总线,完成本次数据传输。
上述的多外设自主数据传输与存储方法,所述步骤(2)、步骤(3)数据传输与存储过程采用多缓冲机制,包括如下具体步骤:外部存储器为每一参数外设数据通道分配至少两块独立的存储空间A和存储空间B;参数外设首先往存储空间A内存放数据至预定量;参数外设给主控制器发出中断请求,主控制器从存储空间A读取数据;主控制器读取存储空间A的数据时,参数外设往存储空间B写入数据至预定量;参数外设给主控制器发中断请求,主控制器从存储空间B读取数据;参数外设继续将数据写入存储空间A。如权利要求1所述的多外设数据自主传输与存储方法,其特征是:还包括主控制器向参数外设下行数据的过程:主控制器将下行数据写入外部存储器,参数外设读取该下行数据。在基于包的数据传输子机制下,所述预定量指一个包;在不基于包的数据传输子机制下,所述预定量指数据填满存储空间A或存储空间B时的数据量。
上述的多外设自主数据传输与存储方法,所述主控制器向参数外设下行数据的过程采用多缓冲机制,包括如下具体步骤:外部存储器为每一参数外设分配至少两块独立的存储空间C和存储空间D;当主控制器需要向参数外设发送有效信息时,先将数据写入存储空间C,发出一个启动信号,由接口和转换逻辑模块读取存储空间C有效信息传送给参数外设;当参数外设读取存储空间C数据时,主控制器若有数据需要传递给参数外设,则写入存储空间D,并发出一个启动信号,接口和转换逻辑模块在完成存储空间C的数据读取和发送后,再来读取D空间数据并发送给参数外设。
由于采用了以上的方案,本发明带来了如下的有益效果:
参数外设通过总线主动对外部存储器进行数据传输与存储,参数外设的增加不占用额外的CPU资源及片内有限的存储器资源,软件开销低,该方法可以实现大数据量高速传输,因此对参数外设的数据传输和存储效率高、成本低,可适用于监护仪等仪器进行多个端口高速数据流同时传输并存储。
采用本发明的方法大幅度提高系统效率:例如对于单个数据通道,现有技术的方案可能需要向CPU发送1024次中断请求才能完成数据传输,本发明在仅使用存储器内2048字节的存储器空间的情况下,本方法只需要一次CPU中断请求就可以完成,可以将CPU中断的效率提升1024倍。可见,这对于系统效率的提升是几何级的。
采用本发明的方法可以节约大量的FPGA片内存储器资源:如在8路参数外设都以1.152Mbyte/s速率收发数据时,共需4Mbyte片内存储器空间,现阶段只有200-300美元甚至更高价位的FPGA器件才能满足这种需求。而在大多数应用中,考虑到成本,使用这么昂贵的FPGA器件显然是一种巨大的浪费。使用本发明的方法实现,则几乎不需要占用FPGA片内的任何存储器资源,对FPGA芯片的要求大幅降低,可以采用更低成本的FPGA器件。而片外通用存储器可以轻易获得8MByte以上的容量。
采用本发明的方法,在增加外部存储器并将其指定为不同的参数外设的从设备时,多个参数外设可以同时访问各自的存储器,也即多参数外设可以同时进行数据传输和存储,因此对参数外设的数据传输和存储效率进一步提高、成本更低。
本发明的方法可以应用不同的总线实现,只需根据总线特性采用不同的接口逻辑,灵活性好,通用性强。
【附图说明】
图1是本发明系统结构图。
图2是本发明为参数外设定制的一种写接口逻辑示意图。
图3是本发明为参数外设定制的一种读接口逻辑示意图。
图4接口时序图。
【具体实施方式】
下面通过具体的实施例并结合附图对本发明作进一步详细的描述。
硬核CPU是以硅片的形式提交给用户的,它的主频比较高,性能优越,但是一旦完成电路板制作,就无法更改,无法升级。软核CPU则是以设计文件的形式提交给用户,其性能稍弱于硬核CPU,但是其成本低,设计灵活,可多次升级。本例的具体实施方案中采用了Altera公司的FPGA芯片搭配Nios II软核CPU来实现。
Avalon总线把所有挂接在总线上的设备分成两种类型:主设备(Master)和从设备(Slave)。在数据传输中,Master采取主动,而Slave则是被操作的一方。Master和Slave一般都是FPGA片外的外设,比如监护仪参数测量电路模块、以太网MAC、SDRAM、Flash等各异的设备。这取决于嵌入式系统具体的应用。
请参考如图1所示的系统框图,本方案中,把所有的前端参数外设都设置为Master,通过接口和转换逻辑模块挂在Avalon总线上,该逻辑完成信号接口以及信号识别、变换以及协议转换等功能。SDRAM作为参数外设储存数据的对象设置为Slave。在这种系统设计下,参数外设可以绕开CPU操作SDRAM。CPU和参数外设读写对象都是存储器,存在一个竞争关系。Avalon总线机制中含有内部仲裁,通过接口的等待请求(waitrequest)信号来协调这种竞争。参数外设给出的数据、地址、写和片选信号都必须维持到waitrequest无效。当waitrequest信号有效时,表示当前传输尚未完成,数据、地址、写和片选信号都必须保持不变。当总线发出的waitrequest信号无效时,说明当前传输已经结束,参数外设此时对存储器进行访问。读/写接口逻辑设计及时序如图2、图3、图4所示。
本例采用一个独特的双缓冲机制完成存储/读取任务,其中涵盖两个子项:基于包的和不基于包的。每一个参数外设数据通道在SDRAM内分配两块独立的存储空间A和B完成外设上传数据的存储。参数外设首先往A空间内存数,当A内存储的数据累积到预定量的时候,参数外设给CPU发一个中断请求,CPU从A空间取走数据。CPU读A空间时,参数外设可以继续往B空间写入数据。参数外设在B空间写入预定量的数据后,发中断请求,CPU从B空间读取数据,参数外设继续将数据写入A空间,依此类推。在基于包的子机制下,预定量时指一个包。包头内用一个标志位纪录包的长度,当CPU读取包时,就能首先获得正确的包长信息,再将整个包的数据连续读出取走。包内数据通过特定的协议保持包格式,这不是本发明的重点所在,不作详细叙述。在不基于包的子机制下,预定量时指数据填满A空间或B空间,CPU需在参数外设写满另一个空间之前将数据取走。这种A、B存储器空间交替使用的机制,有效地保证了数据传输的连贯性和可靠性。整个数据传输过程中所产生的CPU中断非常少,主要就在于最后读数据包那个阶段。较之现有技术的方法,所需的CPU中断数量有了几何级数的下降,系统简洁而高效。
双缓冲机制具有扩展性,可以延伸设计为多缓冲机制。
当参数外设进行测量时,将处理后的人体生理指数信息数据写入A空间。写入时序为,接口和转换逻辑发出地址,数据和写信号,如果waitrequest信号无效,则一个时钟周期就可以完成一个数据的写操作,否则,接口和转换逻辑保持地址、数据和写信号,直到发出waitrequest信号无效,Avalon总线在waitrequest无效时完成对SDRAM的写操作。完成一个数据的写操作后,地址增量逻辑动作,地址加一,以便下一个数据到来时写入下一个地址。
前面描述的都是数据上传,下面阐述一下数据下传。在每一条数据通道中,主机都需要向参数外设发送控制命令等有效信息。每一个数据通道在SDRAM内分配了C和D两块存储器空间保存下行数据,当CPU需要向参数外设发送控制命令等有效信息时,需要先将数据写入存储器。
当CPU先把批量信息写入C空间,完成之后给接口和转换逻辑发一个启动信号,接口和转换逻辑取走数据。接口和转换逻辑发出地址和读信号,等待waitrequest信号无效。当waitrequest信号无效时,数据就出现在数据线上,接口和转换采样数据,并发送给测量模块,同时地址增量逻辑将地址加一,继续进行上述访问操作,直至读完数据。
当参数外设读取C空间数据时,CPU若有数据需要传递给参数外设,可以写入D空间,并发一个启动信号。接口和转换逻辑锁存此启动信号,在完成C空间数据发送后再来读取D空间数据并发送。这样两个空间交替使用,CPU和参数外设可以并行操作,提升效率。
此外需要申明的一点是,作为嵌入式开发的核心处理器件,软核与硬核在本质上并无不同。本方法在硬核系列的ARM以及Xilinx公司的软核Microblaze等嵌入式CPU架构下同样可以实现相同的功能,只是所借助的总线机制根据CPU的不同会有所变化。在Nios II系统中,采用的是Avalon总线,在ARM架构下则是AHB/APB总线,在Microblaze架构下也有相似的OPB/LMB总线去完成类似的功能。
本方法可以应用于与监护仪具有类似数据传输风格的仪器,完成大数据量的上传、存储、中转。
Claims (10)
1.一种多外设自主数据传输与存储方法,包括如下步骤:(1)将挂接在总线上的参数外设设置为主设备,将挂接在总线上的外部存储器设置为从设备;(2)参数外设通过总线主动对外部存储器进行数据传输与存储。
2.如权利要求1所述的多外设自主数据传输与存储方法,其特征是:还包括步骤(3)主控制器读取参数外设写入外部存储器内的数据。
3.如权利要求1所述的多外设自主数据传输与存储方法,其特征是:还包括主控制器向参数外设下传数据的过程:主控制器将下行数据写入外部存储器内,参数外设从外部存储器读取读下行数据。
4.如权利要求1所述的多外设自主数据传输与存储方法,其特征是:所述参数外设通过接口和转换逻辑模块挂接在总线上,所述接口和转换逻辑模块完成包括信号接口以及信号识别、变换以及协议转换的功能。
5.如权利要求1所述的多外设自主数据传输与存储方法,其特征是:所述存储器为多个,每一存储器设置为一个或多个参数外设的从设备;不同参数外设同时通过总线主动对各自对应的不同存储器进行数据传输与存储。
6.如权利要求2所述的多外设自主数据传输与存储方法,其特征是:系统主控制器与所述参数外设之间存在对所述存储器进行读写的竞争关系,总线机制通过内部仲裁协调该竞争。
7.如权利要求2所述的多外设自主数据传输与存储方法,其特征是:所述步骤(2)、步骤(3)数据传输与存储过程采用多缓冲机制,包括如下具体步骤:外部存储器为每一参数外设数据通道分配至少两块独立的存储空间A和存储空间B;参数外设首先往存储空间A内存放数据至预定量;参数外设给主控制器发出中断请求,主控制器从存储空间A读取数据;主控制器读取存储空间A的数据时,参数外设往存储空间B写入数据至预定量;参数外设给主控制器发中断请求,主控制器从存储空间B读取数据;参数外设继续将数据写入存储空间A。如权利要求1所述的多外设数据自主传输与存储方法,其特征是:还包括主控制器向参数外设下行数据的过程:主控制器将下行数据写入外部存储器,参数外设读取该下行数据。
8.如权利要求3所述的多外设自主数据传输与存储方法,其特征是:所述主控制器向参数外设下行数据的过程采用多缓冲机制,包括如下具体步骤:外部存储器为每一参数外设分配至少两块独立的存储空间C和存储空间D;当主控制器需要向参数外设发送有效信息时,先将数据写入存储空间C,发出一个启动信号,由接口和转换逻辑模块读取存储空间C有效信息传送给参数外设;当参数外设读取存储空间C数据时,主控制器若有数据需要传递给参数外设,则写入存储空间D,并发出一个启动信号,接口和转换逻辑模块在完成存储空间C的数据读取和发送后,再来读取D空间数据并发送给参数外设。
9.如权利要求6所述的多外设自主数据传输与存储方法,其特征是:所述竞争关系的协调过程包括:当所述参数外设与外部存储器进行数据传输时,如果总线被其他外设占用,总线仲裁逻辑向参数外设发出等待信号,参数外设在等待信号有效期间保持发往外部存储器信号,该等待信号失效后,参数外设和外部存储器占用总线,完成本次数据传输。
10.如权利要求7所述的多外设自主数据传输与存储方法,其特征是:在基于包的数据传输子机制下,所述预定量指一个包;在不基于包的数据传输子机制下,所述预定量指数据填满存储空间A或存储空间B时的数据量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006100619375A CN101114269A (zh) | 2006-07-28 | 2006-07-28 | 多外设自主数据传输与存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006100619375A CN101114269A (zh) | 2006-07-28 | 2006-07-28 | 多外设自主数据传输与存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101114269A true CN101114269A (zh) | 2008-01-30 |
Family
ID=39022620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006100619375A Pending CN101114269A (zh) | 2006-07-28 | 2006-07-28 | 多外设自主数据传输与存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101114269A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833441A (zh) * | 2010-04-28 | 2010-09-15 | 中国科学院自动化研究所 | 并行向量处理引擎结构 |
CN104866360A (zh) * | 2015-06-05 | 2015-08-26 | 四川英杰电气股份有限公司 | 一种电熔焊机的usb数据导入方法 |
CN106302234A (zh) * | 2015-06-24 | 2017-01-04 | 龙芯中科技术有限公司 | 网络包传送方法、以太网控制器、高速缓存及系统 |
CN107357756A (zh) * | 2012-12-21 | 2017-11-17 | 高云 | 多设备在主模式下进行iic通信的系统 |
CN107729271A (zh) * | 2017-10-26 | 2018-02-23 | 中国电子科技集团公司第五十八研究所 | 具备自测试功能的双总线型e‑flash控制电路 |
CN111832049A (zh) * | 2020-07-09 | 2020-10-27 | 郑州信大捷安信息技术股份有限公司 | 一种基于spi的数据传输方法及系统 |
CN114567685A (zh) * | 2022-04-26 | 2022-05-31 | 深圳华声医疗技术股份有限公司 | 监护仪和监护仪控制方法 |
-
2006
- 2006-07-28 CN CNA2006100619375A patent/CN101114269A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833441A (zh) * | 2010-04-28 | 2010-09-15 | 中国科学院自动化研究所 | 并行向量处理引擎结构 |
CN107357756A (zh) * | 2012-12-21 | 2017-11-17 | 高云 | 多设备在主模式下进行iic通信的系统 |
CN104866360A (zh) * | 2015-06-05 | 2015-08-26 | 四川英杰电气股份有限公司 | 一种电熔焊机的usb数据导入方法 |
CN104866360B (zh) * | 2015-06-05 | 2017-12-08 | 四川英杰电气股份有限公司 | 一种电熔焊机的usb数据导入方法 |
CN106302234A (zh) * | 2015-06-24 | 2017-01-04 | 龙芯中科技术有限公司 | 网络包传送方法、以太网控制器、高速缓存及系统 |
CN106302234B (zh) * | 2015-06-24 | 2019-03-19 | 龙芯中科技术有限公司 | 网络包传送方法、以太网控制器、高速缓存及系统 |
CN107729271A (zh) * | 2017-10-26 | 2018-02-23 | 中国电子科技集团公司第五十八研究所 | 具备自测试功能的双总线型e‑flash控制电路 |
CN107729271B (zh) * | 2017-10-26 | 2020-06-30 | 中国电子科技集团公司第五十八研究所 | 具备自测试功能的双总线型e-flash控制电路 |
CN111832049A (zh) * | 2020-07-09 | 2020-10-27 | 郑州信大捷安信息技术股份有限公司 | 一种基于spi的数据传输方法及系统 |
CN111832049B (zh) * | 2020-07-09 | 2022-03-15 | 郑州信大捷安信息技术股份有限公司 | 一种基于spi的数据传输方法及系统 |
CN114567685A (zh) * | 2022-04-26 | 2022-05-31 | 深圳华声医疗技术股份有限公司 | 监护仪和监护仪控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101114269A (zh) | 多外设自主数据传输与存储方法 | |
CN106951379B (zh) | 一种基于axi协议的高性能ddr控制器及数据传输方法 | |
CN100471156C (zh) | 数据总线桥接器及其工作方法 | |
CN102789439B (zh) | 控制数据传输过程中的中断的方法与存储设备 | |
CN106951388A (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
CN102681952B (zh) | 将数据写入存储设备的方法与存储设备 | |
US6925512B2 (en) | Communication between two embedded processors | |
CN106874224A (zh) | 自动搬运且适应器件的多线SPI‑Flash控制器 | |
CN102841869B (zh) | 一种基于fpga的多通道i2c控制器 | |
US20090089459A1 (en) | Schedule and data caching for wireless tranmission | |
CN109710548A (zh) | 一种dma控制数据传输方法、系统及设备 | |
TWI634430B (zh) | 資料儲存裝置與資料傳輸速率控制方法 | |
CN103221934A (zh) | 用于处理集群的控制节点 | |
CN1510589A (zh) | 共享存储器数据传送设备 | |
JPH04230557A (ja) | 直接メモリアクセス・コントローラ | |
CN102065568B (zh) | 基于数据描述符的mac软硬件交互方法及其硬件实现装置 | |
CN203812236U (zh) | 一种基于处理器和现场可编程门阵列的数据交换系统 | |
CN113590512B (zh) | 可直连外设设备的自启动dma装置及应用 | |
US11985078B2 (en) | Packet arbitration for buffered packets in a network device | |
CN108595350A (zh) | 一种基于axi的数据传输方法和装置 | |
CN108932207A (zh) | 带有缓存区的sdio-wifi数据传输方法及系统 | |
CN116225998B (zh) | Dma数据传输系统 | |
CN110188059A (zh) | 数据有效位统一配置的流控式fifo缓存结构及方法 | |
IT202000006322A1 (it) | Sistema di elaborazione comprendente un’interfaccia periferica seriale con code, relativo circuito integrato, dispositivo e procedimento | |
JP2009502072A (ja) | FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080130 |