CN102681953A - 直接存储器存取装置及其数据接收方法 - Google Patents

直接存储器存取装置及其数据接收方法 Download PDF

Info

Publication number
CN102681953A
CN102681953A CN2011100625714A CN201110062571A CN102681953A CN 102681953 A CN102681953 A CN 102681953A CN 2011100625714 A CN2011100625714 A CN 2011100625714A CN 201110062571 A CN201110062571 A CN 201110062571A CN 102681953 A CN102681953 A CN 102681953A
Authority
CN
China
Prior art keywords
direct memory
gpio
pin
unit
data
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
Application number
CN2011100625714A
Other languages
English (en)
Other versions
CN102681953B (zh
Inventor
邹桥
高兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lusheng Technology Co.,Ltd.
Original Assignee
Leadcore Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Leadcore Technology Co Ltd filed Critical Leadcore Technology Co Ltd
Priority to CN201110062571.4A priority Critical patent/CN102681953B/zh
Publication of CN102681953A publication Critical patent/CN102681953A/zh
Application granted granted Critical
Publication of CN102681953B publication Critical patent/CN102681953B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Bus Control (AREA)

Abstract

本发明涉及一种直接存储器存取装置及其数据接收方法,以克服传统基于查询模式和中断模式的接收方法的缺陷。该数据接收方法包括以下步骤:首先,启动直接存储器循环接收数据,其次使能一GPIO中断口,该GPIO中断口用于检测接收开始点。当检测到接收开始后禁止该GPIO中断口,并且周期性地查询接收数据。本发明可在检测到接收开始后再启动定时器查询接收数据,从而节省系统开销,并且可在接收开始前就启动直接存储器接收数据,避免了丢失部分数据的风险。

Description

直接存储器存取装置及其数据接收方法
技术领域
本发明涉及直接存储器存取方式,尤其是涉及一种直接存储器存取装置及其数据接收方法。
背景技术
直接存储器存取(Direct Memory Access;以下简称DMA)为本领域专业技术人员所熟知的一种数据传输模式,可用于从一个装置通过外围装置将数据传输至另一装置。与通过CPU来传输数据的方法相比,利用DMA传输方法进行数据传输时,其速度要快许多。
在手机、PDA等手持电子设备中,UART串口是调试中很重要的调试通讯接口。采用直接存储器存取方式进行串口传输时,接收比较复杂,因为接收是被动的,所以无法确定接收方接收数据的长度。鉴于这种情况,目前主要采取的接收方法有以下两种:
查询模式:提前启动直接存储器采用循环模式接收数据,启动定时器定时,以周期性地查询接收数据,接收数据长度是通过比较直接存储器当前地址与直接存储器起始地址比较获得。
中断模式:通过串口中断检测接收开始点,当检测到接收开始后禁止串口中断,启动直接存储器采用循环模式接收数据,启动定时器定时,以周期性地查询接收数据,接收数据长度是通过比较直接存储器当前地址与直接存储器起始地址获得。当定时器查询到接收数据长度为零时,则认为串口空闲,停止直接存储器接收,停止定时器查询,重新使能串口中断来检测接收开始点。
上面两种方法都通过直接存储器循环接收模式和定时器查询来解决无法确定接收方接收数据的长度的问题。对查询模式而言,由于在接受开始前提前启动定时器,因此在串口空闲时也会定时查询,导致增加系统开销。
对中断模式而言,从检测到接收开始到启动直接存储器接收数据需要一定的时间,而如果串口传输速率比较高,硬件FIFO(先进先出的数据缓存器)比较小,就存在FIFO溢出的可能,因此存在丢失数据的风险。
受硬件限制,当采用查询模式提前启动直接存储器接收数据时,就无法通过串口中断检测接收开始,所以无法结合查询模式和中断模式的优点。
发明内容
本发明的一个目的是提供一种直接存储器存取装置的数据接收方法,一解决现有接收方法存在的问题。
本发明的另一目的是提供一种直接存储器存取装置,其使用上述的数据接收方法。
本发明提出一种直接存储器存取装置的数据接收方法,包括以下步骤:首先,启动直接存储器循环接收数据,其次使能一GPIO中断口,该GPIO中断口用于检测接收开始点。当检测到接收开始后禁止该GPIO中断口,并且周期性地查询接收数据。
在本发明的一实施例中,上述方法还包括:比较直接存储器当前地址与直接存储器起始地址,获得接收数据长度。
在本发明的一实施例中,上述方法还包括:当获得的接收数据长度为零时,停止周期性查询,重新使能该GPIO中断口。
在本发明的一实施例中,上述方法该GPIO中断口的引脚是与一串口的Rx引脚相连。
在本发明的一实施例中,上述方法该GPIO中断口的引脚是与一串口的Rx引脚复用。
本发明另一种直接存储器存取装置,包括传输端口、GPIO单元、直接存储器单元、定时器和处理器。传输端口具有一接收引脚,GPIO单元具有一GPIO引脚,该GPIO引脚与该接收引脚相连,以根据接收引脚的电平变化产生指示该传输单元的接收开始点的中断。直接存储器单元连接该传输端口。处理器连接该GPIO单元、该直接存储器单元和该定时器,该处理器启动该直接存储器单元循环接收数据,并且不早于该直接存储器单元的启动而使能该GPIO单元的中断。当检测接收开始后,该处理器禁止该GPIO中断口,启动该定时器,利用该定时器产生的中断,周期性地查询接收数据。
在本发明的一实施例中,所述传输端口为串口。
在本发明的一实施例中,所述串口单元具有先进先出缓存。
本发明还提出一种可实现直接存储器存取的芯片,包括传输端口、GPIO单元、直接存储器单元、定时器和处理器。传输端口具有一接收引脚,GPIO单元具有一GPIO引脚,该GPIO引脚与该接收引脚复用,以根据接收引脚的电平变化产生指示该传输端口的接收开始点的中断。直接存储器单元连接该传输端口。处理器连接该GPIO单元、该直接存储器单元和该定时器,该处理器启动该直接存储器单元循环接收数据,并且不早于该直接存储器单元的启动而使能该GPIO单元的中断。当检测接收开始后,该处理器禁止该GPIO中断口,启动该定时器,利用该定时器产生的中断周期性地查询接收数据。
本发明由于采用以上技术方案,使之与现有的查询模式相比,可在检测到接收开始后再启动定时器查询接收数据,从而节省系统开销;而与现有中断模式相比,可在接收开始前就启动直接存储器接收数据,避免了丢失部分数据的风险。
附图说明
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1示出本发明一实施例的直接存储器存取装置示意图。
图2示出本发明一实施例的直接存储器存取装置的数据接收方法流程图。
具体实施方式
在多数处理器芯片中,都会包含GPIO接口(General-Purpose IO ports,通用输入输出接口)。因此根据本发明的构思,使用GPIO接口作为中断口,来监控直接存储器存取装置的接收管脚,以检测接收何时开始。一处理器可提前启动直接存储器接收数据。当检测到接收开始点,GPIO中断口以中断方式通知处理器。响应这一中断,处理器启动定时器,利用定时器的周期定时来周期性地查询接收数据。这样,由于直接存储器是在接收开始点前启动,不会丢失数据,而定时器是在接收开始点后启动,不会有增加系统开销。
图1示出本发明一实施例的直接存储器存取装置示意图。参照图1所示,装置包括处理器102、直接存储器单元104、存储器接口106、串口108、GPIO单元110和定时器112。处理器102作为装置的核心,可执行从存储器200的数据读取,以及到存储器200的数据写入。当启用直接存储器存取(DMA)过程时,处理器102不进行数据的读取和写入,而是参与数据从串口108经直接存储器单元104到存储器200的写入过程,以及数据从存储器200经直接存储器单元104到串口108的读取过程。在DMA过程的接收流程中,直接存储器单元104作为循环接收缓存,从串口108获得数据并写入存储器200。
在此,循环接收缓存的大小设置,必须保证一个查询周期中,循环接收缓存不会产生回环覆盖。假设串口传输速率为V,循环接收缓存大小S和查询周期P参考公式如下:
S≥(V*P*1.5)
存储器接口106作为处理器102和直接存储器单元104访问存储器200的接口。串口108作为直接存储器存取装置与外部设备进行数据传输的接口。串口108包含先进先出缓存(FIFO)109,以缓冲传输的数据。串口108可包含发送管脚Tx和接收管脚Rx。定时器112连接处理器102,用来提供计时。GPIO单元110具有至少一GPIO管脚。在此,该GPIO管脚连接到串口108的Rx管脚,用来检测Rx管脚的电平变化。当电平发生变化时,GPIO单元110可向处理器102发出中断,以告知串口108的接收开始点到来。
在本发明的实施例中,直接存储器存取装置可适用于任意包含串口和直接存储器单元的设备,例如手机、个人计算机等。在图1所示的示例中,处理器102、直接存储器单元104、存储器接口106、串口108、GPIO单元110和定时器112被整合到一芯片中,以作为手机的主芯片100。
在本发明的一实施例中,在放置主芯片100的电路板上,可使用导线或者其他手段将GPIO管脚和Rx管脚相连,以实现GPIO单元110对串口108的接收开始点的检测。
在本发明的另一实施例中,可对主芯片100内部的设计进行局部修改,使Rx管脚和GPIO管脚复用,以实现GPIO单元110对串口108的接收开始点的检测。
图2示出本发明一实施例的直接存储器存取装置的数据接收方法流程图。参照图2所示,接收方法包括以下步骤:
首先在步骤S1,启动直接存储器单元104,以循环接收数据。
在步骤S1的同时或者之后,在步骤S2,使能由GPIO单元110构成的GPIO中断口,利用该GPIO中断口检测串口108的接收开始点。使步骤S2不早于步骤S1的好处是,可以提前接收数据,以免因串口108的FIFO溢出而丢失部分数据。
在步骤S3,处理器102会检测GPIO中断以确定接收开始点,当检测到GPIO中断时,进入步骤S4。
在步骤S4,处理器102禁止GPIO中断,并且启动定时器周期性定时。从而,处理器102可以周期性地查询接收数据。
在步骤S5,定时器定时时间到,产生中断给处理器102。
在步骤S6,处理器102查询接收数据,通过比较直接存储器单元104的当前地址与直接存储器单元的起始地址来获得接收数据长度。
在步骤S7,当查询到接收数据长度为零时,则认为串口108空闲,进入步骤S8,停止定时器,返回步骤S2。
如果接收数据长度不为零,返回步骤S5,继续周期性查询。
在这一实施例中,直接存储器一直处于接收状态,所以可以避免定时器和GPIO中断切换过程中串口108的FIFO溢出的问题,这样可以有效地解决查询模式和中断模式的缺点。此外,利用串口的Rx管脚的电平变化来检测接收开始点,可以减少处理器的开销。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。

Claims (9)

1.一种直接存储器存取装置的数据接收方法,包括以下步骤:
启动直接存储器循环接收数据;
使能一GPIO中断口,该GPIO中断口用于检测接收开始点;
当检测到接收开始后禁止该GPIO中断口,并且周期性地查询接收数据。
2.如权利要求1所述的方法,其特征在于,还包括:比较直接存储器当前地址与直接存储器起始地址,获得接收数据长度。
3.如权利要求2所述的方法,其特征在于,还包括:当获得的接收数据长度为零时,停止周期性查询,重新使能该GPIO中断口。
4.如权利要求1所述的方法,其特征在于,该GPIO中断口的引脚是与一串口的Rx引脚相连。
5.如权利要求1所述的方法,其特征在于,该GPIO中断口的引脚是与一串口的Rx引脚复用。
6.一种直接存储器存取装置,包括:
传输端口,具有一接收引脚;
GPIO单元,具有一GPIO引脚,该GPIO引脚与该接收引脚相连,以根据接收引脚的电平变化产生指示该传输单元的接收开始点的中断;
直接存储器单元,连接该传输端口;
定时器;
处理器,连接该GPIO单元、该直接存储器单元和该定时器,该处理器启动该直接存储器单元循环接收数据,并且不早于该直接存储器单元的启动而使能该GPIO单元的中断;当检测接收开始后,该处理器禁止该GPIO中断口,启动该定时器,利用该定时器产生的中断,周期性地查询接收数据。
7.如权利要求6所述的直接存储器存取装置,其特征在于,所述传输端口为串口。
8.如权利要求7所述的直接存储器存取装置,其特征在于,所述串口单元具有先进先出缓存。
9.一种可实现直接存储器存取的芯片,包括:
传输端口,具有一接收引脚;
GPIO单元,具有一GPIO引脚,该GPIO引脚与该接收引脚复用,以根据接收引脚的电平变化产生指示该传输端口的接收开始点的中断;
直接存储器单元,连接该传输端口;
定时器;
处理器,连接该GPIO单元、该直接存储器单元和该定时器,该处理器启动该直接存储器单元循环接收数据,并且不早于该直接存储器单元的启动而使能该GPIO单元的中断;当检测接收开始后,该处理器禁止该GPIO中断口,启动该定时器,利用该定时器产生的中断周期性地查询接收数据。
CN201110062571.4A 2011-03-15 2011-03-15 直接存储器存取装置及其数据接收方法 Active CN102681953B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110062571.4A CN102681953B (zh) 2011-03-15 2011-03-15 直接存储器存取装置及其数据接收方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110062571.4A CN102681953B (zh) 2011-03-15 2011-03-15 直接存储器存取装置及其数据接收方法

Publications (2)

Publication Number Publication Date
CN102681953A true CN102681953A (zh) 2012-09-19
CN102681953B CN102681953B (zh) 2015-07-29

Family

ID=46813911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110062571.4A Active CN102681953B (zh) 2011-03-15 2011-03-15 直接存储器存取装置及其数据接收方法

Country Status (1)

Country Link
CN (1) CN102681953B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888829A (zh) * 2019-12-02 2020-03-17 上海移柯通信技术股份有限公司 一种通过串口对通信模组进行开机、唤醒的方法
WO2021109707A1 (zh) * 2019-12-02 2021-06-10 湖南明康中锦医疗科技发展有限公司 多模块通信控制方法及呼吸支持设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182165B1 (en) * 1998-06-01 2001-01-30 Advanced Micro Devices, Inc. Staggered polling of buffer descriptors in a buffer descriptor ring direct memory access system
CN101217573A (zh) * 2007-12-29 2008-07-09 厦门大学 一种加速网卡报文捕获的方法
CN101556564A (zh) * 2008-04-11 2009-10-14 联芯科技有限公司 数据接收/发送方法和装置
CN101718981A (zh) * 2009-11-03 2010-06-02 四川省电力工业调整试验所 一种分散控制系统网络数据采样仪

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182165B1 (en) * 1998-06-01 2001-01-30 Advanced Micro Devices, Inc. Staggered polling of buffer descriptors in a buffer descriptor ring direct memory access system
CN101217573A (zh) * 2007-12-29 2008-07-09 厦门大学 一种加速网卡报文捕获的方法
CN101556564A (zh) * 2008-04-11 2009-10-14 联芯科技有限公司 数据接收/发送方法和装置
CN101718981A (zh) * 2009-11-03 2010-06-02 四川省电力工业调整试验所 一种分散控制系统网络数据采样仪

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
田志宏等: "基于半轮询驱动的网络入侵检测单元的涉及与实现", 《通信学报》, vol. 25, no. 7, 31 July 2004 (2004-07-31), pages 148 - 3 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888829A (zh) * 2019-12-02 2020-03-17 上海移柯通信技术股份有限公司 一种通过串口对通信模组进行开机、唤醒的方法
CN110888829B (zh) * 2019-12-02 2021-03-26 上海移柯通信技术股份有限公司 一种通过串口对通信模组进行开机、唤醒的方法
WO2021109707A1 (zh) * 2019-12-02 2021-06-10 湖南明康中锦医疗科技发展有限公司 多模块通信控制方法及呼吸支持设备

Also Published As

Publication number Publication date
CN102681953B (zh) 2015-07-29

Similar Documents

Publication Publication Date Title
US10324891B2 (en) Methods and apparatus for reducing power consumption within embedded systems
US7260662B2 (en) I2C bus controlling method
CN113419620B (zh) 串行高级技术附件接口、存储设备及其电力管理方法
US20100332868A1 (en) Squelch filtration to limit false wakeups
CN105468548B (zh) 串行外围接口的通信
CN103914424A (zh) 基于gpio接口的lpc外设扩展方法及装置
CN201859389U (zh) 一种复位管理芯片及复位系统
US10552363B2 (en) Data processing
US9990027B2 (en) Status switching method
CN102681953A (zh) 直接存储器存取装置及其数据接收方法
CN102890667A (zh) 一种韦根数据处理装置及方法
JPWO2012081085A1 (ja) 割込み要因管理装置及び割込み処理システム
US9372528B2 (en) Universal serial bus (USB) 3.0 compatible host with lower operation power consumption and method for reducing operation power consumption of a USB 3.0 compatible host
CN103488595A (zh) 一种保证小容量缓存串口通讯安全性的数据传输方法
CN105373423A (zh) 解决处理器的中断口不足的装置、方法及系统
US9003072B2 (en) Portable data storage device with wireless functionality having a digital switch circuit and a method for storing data in the aforementioned
US9870161B2 (en) Computation processing device and control method thereof
CN101097555B (zh) 芯片上处理数据的方法和系统
CN101989181A (zh) 闪存控制装置
JP2005223555A (ja) 調歩同期シリアル通信システムおよびその通信方法
EP2904503B1 (en) Methods and apparatus for reducing power consumption within embedded systems
CN110896349A (zh) 一种密钥安全设备
CN203279051U (zh) 嵌入式监控系统
CN117648209A (zh) 一种fpga和arm高速通信的方法、系统
CN103427261A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170418

Address after: 201206 Shanghai, China (Shanghai) free trade zone, the moon Road, No. 3, building fourth, room B412, level 1258

Patentee after: Shanghai Li Ke Semiconductor Technology Co., Ltd.

Address before: 201206 Pudong New Area Mingyue Road, Shanghai, No. 1258

Patentee before: Leadcore Technology Co., Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 201203 1st, 6th and 7th floors, building 2, No. 1761, Zhangdong Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201203

Patentee after: Shanghai Li Ke Semiconductor Technology Co.,Ltd.

Address before: 201206 Shanghai, China (Shanghai) free trade zone, the moon Road, No. 3, building fourth, room B412, level 1258

Patentee before: Shanghai Li Ke Semiconductor Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200831

Address after: 610200 Sichuan Chengdu Shuangliu District Dongsheng Street Chengdu core industrial park concentration area

Patentee after: Lusheng Technology Co.,Ltd.

Address before: 201203 1st, 6th and 7th floors, building 2, No. 1761, Zhangdong Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201203

Patentee before: Shanghai Li Ke Semiconductor Technology Co.,Ltd.