CN110865954A - 基于dma的spi设备间通信自动界定可变长帧结束的方法 - Google Patents
基于dma的spi设备间通信自动界定可变长帧结束的方法 Download PDFInfo
- Publication number
- CN110865954A CN110865954A CN201911167690.9A CN201911167690A CN110865954A CN 110865954 A CN110865954 A CN 110865954A CN 201911167690 A CN201911167690 A CN 201911167690A CN 110865954 A CN110865954 A CN 110865954A
- Authority
- CN
- China
- Prior art keywords
- chip selection
- output signal
- spi
- communication
- level value
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种基于DMA的SPI设备间通信自动界定可变长帧结束的方法,主设备中的片选输出信号上引出一个分支信号连接到从设备中的片选电平值变化监测接口上,当主设备的一帧报文发送完成,主设备中的片选输出信号的电平值以及所述片选输出信号的分支信号的电平值均会产生变化,从设备通过片选电平值变化监测接口检测到所述电平值的变化来判断一次通信的结束,并界定主设备一帧报文发送结束,继而进行后续接收报文的处理,以及下一次通信从设备的DMA属性配置。本发明采用DMA方式的SPI通信中,SPI主设备可以灵活的发送可变长度的报文帧,从设备可以准确的自动界定主设备一帧变长帧报文的帧尾。
Description
技术领域:
本发明涉及一种基于DMA的SPI设备间通信自动界定可变长帧结束的方法。
背景技术:
随着半导体以及集成电路技术的发展,形式各样、功能丰富的芯片设备进入到生活和工业应用的方方面面,芯片之间的信息交互俨然成为系统运行的关键一环,SPI作为设备间高速串行通信的一种接口,由于其物理接口简单、传输速度快、传输质量稳定等优点,被广泛集成在芯片设备的通讯接口模块中。
SPI通讯的实现方式主要有三种:直接无缓冲通讯、带FIFO缓冲通讯以及DMA方式通讯。其中第一种直接无缓冲通讯,每次通讯只能实现最多4字节长度的数据传输,对于一些报文帧较长的传输,需要进行分包多次传输,一方面提升软件复杂度,另一方面抢占硬件资源运行时间,大大降低通讯的质量;第二种带FIFO缓冲的通讯方式,在第一种的基础上添加了FIFO缓冲,有效解决报文帧较长的问题,但是由于FIFO缓冲一般是与SPI模块绑定的,而通讯数据接收完需要拷贝到指定的内存中进行处理,对于时间性能要求过高的应用场合显得力不从心;第三种采用SPI+DMA方式,充分利用DMA的设计初衷,通过DMA的内存搬运一步到位,既解决了缓冲问题,又解决了内存搬运的问题,同时释放了对CPU的占用。
虽然基于DMA方式的SPI传输高效、可靠,但是如果通信过程中,报文帧是变长的、DMA目的内存地址无规律变化,那么接收方的DMA在每一次接收完成之后必须在启动下一次接收之前重新设置DMA控制器的长度、目的地址属性。这就需要一种通知机制,发送方在发送前或者发送时能够及时通知接收方此次即将传输的报文帧长度。常见的处理方式主要有两种方法:(1)SPI发送的第一个字节表示此次报文帧的长度,接收方首先通过中断读取并且解析第一字节,然后再设置DMA属性;(2)确定发送方报文帧的最大长度,将其固定为DMA接收的长度,然后利用通讯接口模块的空闲中断来作为一帧结束的标志。
上述的方法一较为常见,但是存在的问题也很明显,首先接收方需要能够快速响应,在一个字节的时间内处理好中断,并且设置完成DMA,这对接收设备的处理性能有较高的要求,其次可能产生错误累积,由于需要第一个字节来设置DMA,这就需要通讯质量非常可靠,否则当通讯过程受到干扰,导致第一个字节长度设置有误,那么就会导致DMA的接收有误,并且DMA的后续处理必须满足初始设置才能触发,造成不可恢复的连续性通信错误累积;方法二具有一定的特殊要求,即需要芯片设备具备特殊的空闲中断功能,而这一功能并不是所有芯片设备共有,不具备一般的通用性。
发明内容:
本发明提供一种基于DMA的SPI设备间通信自动界定可变长帧结束的方法,该方法在保持基于DMA方式的SPI通信通用处理方式的基础上,可实现灵活的可变长度的报文帧传输,规避了因为干扰影响导致的通信不可恢复,解除了对芯片设备性能以及特殊功能要求的限制。
本发明所采用的技术方案有:
基于DMA的SPI设备间通信自动界定可变长帧结束的方法,包括通信模型,所述通信模型以一个SPI设备为主设备,另一个SPI设备为从设备,两个SPI设备均具有集成SPI接口,本发明方法为:
主设备中的片选输出信号上引出一个分支信号连接到从设备中的片选电平值变化监测接口上,当主设备的一帧报文发送完成,主设备中的片选输出信号的电平值以及所述片选输出信号的分支信号的电平值均会产生变化,从设备通过片选电平值变化监测接口检测到所述电平值的变化来判断一次通信的结束,并界定主设备一帧报文发送结束,继而进行后续接收报文的处理,以及下一次通信从设备的DMA属性配置。
进一步地,所述主设备的片选输出信号的电平值以及所述片选输出信号的分支信号的电平值分别对应为高电平和低电平,所述高电平值范围为逻辑1电平范围;所述低电平值取值范围为逻辑0电平范围。
进一步地,所述主设备的片选输出信号引出的分支信号的信号值与主设备的片选输出信号等效;当主设备的片选输出信号为高电平时,分支信号的信号值与主设备的片选输出信号的高电平值对应;当主设备的片选输出信号为低电平时,分支信号的信号值与主设备的片选输出信号的低电平值对应。
进一步地,所述主设备的片选输出信号及所述分支信号变化为低电平到高电平的上升沿跳变。
本发明具有如下有益效果:
1)采用DMA方式的SPI通信中,SPI主设备可以灵活的发送可变长度的报文帧,从设备可以准确的自动界定主设备一帧变长帧报文的帧尾;
2)由于干扰的影响,只会影响当前帧的传输,在下一次报文开始时,能够自动恢复通信正常,并不会影响后续的数据传输,避免连续的通信错误累积,通信具有独立性;
3)对主、从设备没有特殊要求,只需要具备额外一个输入接口以及通常的SPI接口模块即可,具有一般的普适性。
附图说明:
图 1 为本发明中模块连接原理示意图。
具体实施方式:
下面结合附图对本发明作进一步的说明。
如图1,本发明一种基于DMA的SPI设备间通信自动界定可变长帧结束的方法,包含由集成SPI接口的两个设备组成的一般SPI通信模型,以该通信模型中一个SPI设备为主设备,另一个SPI设备为从设备,主设备发起通信,从设备响应的半双工数据传输方向为例。
主设备包含接口有:片选输出信号(CSO)、时钟输出信号(SCKO)和数据输出信号接口(MOSI)。从设备包含接口有:片选输入信号(CSI)、时钟输入信号(SCKI)、数据输入信号(MOSI)和片选电平值变化监测接口。
本发明的方法为:主设备中的片选输出信号上引出一个分支信号连接到从设备中的片选电平值变化监测接口上,当主设备的一帧报文发送完成,主设备中的片选输出信号的电平值以及所述片选输出信号的分支信号的电平值均会产生变化,从设备通过片选电平值变化监测接口检测到所述电平值的变化来判断一次通信的结束,并界定主设备一帧报文发送结束,继而进行后续接收报文的处理,以及下一次通信从设备的DMA属性配置。
首先明确,高电平值范围为逻辑1电平范围,如典型的TTL为≥2.4V;低电平值取值范围为逻辑0电平范围,如典型的TTL为≤0.4V。通常主设备的片选输出信号在非通信周期为高电平,当有通信需要进行时,主设备会将片选信号拉低,即变为低电平状态,通知从设备有数据需要进行通讯,数据传输过程中,主、从设备在主设备发出的时钟信号下,通过数据信号接口进行数据交互,数据传输完成,主设备会自动或者手动将片选信号的电平值拉高,即片选信号产生由低电平到高电平的电平变化,从设备继而通过电平监测接口检测到一个上升沿的跳变信号,即认为主设备一帧数据的传输完成,此时从设备会进行下一次通信的DMA属性设置的准备,以及接收到的数据处理。
本发明中主设备发送的报文帧的数据长度灵活可变,并且每一帧的结束判断是以片选信号的电平变化为依据,并不需要依靠事先的数据通信,具有确定性,从而保证前后连续报文通信的独立性,因此通信出错可自动恢复,避免连续的错误累积,并且软硬件实现具有普适性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下还可以作出若干改进,这些改进也应视为本发明的保护范围。
Claims (4)
1.基于DMA的SPI设备间通信自动界定可变长帧结束的方法,包括由两个SPI设备组成的通信模型,所述通信模型以一个SPI设备为主设备,另一个SPI设备为从设备,其特征在于:所述方法为:
主设备中的片选输出信号上引出一个分支信号连接到从设备中的片选电平值变化监测接口上,当主设备的一帧报文发送完成,主设备中的片选输出信号的电平值以及所述片选输出信号的分支信号的电平值均会产生变化,从设备通过片选电平值变化监测接口检测到所述电平值的变化来判断一次通信的结束,并界定主设备一帧报文发送结束,继而进行后续接收报文的处理,以及下一次通信从设备的DMA属性配置。
2.如权利要求1所述的基于DMA的SPI设备间通信自动界定可变长帧结束的方法,其特征在于:所述主设备的片选输出信号的电平值以及所述片选输出信号的分支信号的电平值分别对应为高电平和低电平,所述高电平值范围为逻辑1电平范围;所述低电平值取值范围为逻辑0电平范围。
3.如权利要求2所述的基于DMA的SPI设备间通信自动界定可变长帧结束的方法,其特征在于:所述主设备的片选输出信号引出的分支信号的信号值与主设备的片选输出信号等效;当主设备的片选输出信号为高电平时,分支信号的信号值与主设备的片选输出信号的高电平值对应;当主设备的片选输出信号为低电平时,分支信号的信号值与主设备的片选输出信号的低电平值对应。
4.如权利要求2所述的基于DMA的SPI设备间通信自动界定可变长帧结束的方法,其特征在于:所述主设备的片选输出信号及所述分支信号变化为低电平到高电平的上升沿跳变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911167690.9A CN110865954A (zh) | 2019-11-25 | 2019-11-25 | 基于dma的spi设备间通信自动界定可变长帧结束的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911167690.9A CN110865954A (zh) | 2019-11-25 | 2019-11-25 | 基于dma的spi设备间通信自动界定可变长帧结束的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110865954A true CN110865954A (zh) | 2020-03-06 |
Family
ID=69655429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911167690.9A Pending CN110865954A (zh) | 2019-11-25 | 2019-11-25 | 基于dma的spi设备间通信自动界定可变长帧结束的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110865954A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488305A (zh) * | 2020-03-27 | 2020-08-04 | 郑州信大捷安信息技术股份有限公司 | 一种安全芯片快速通信的实现方法及系统 |
CN115941382A (zh) * | 2022-11-10 | 2023-04-07 | 星河智联汽车科技有限公司 | 一种spi通信的流控方法、装置、终端设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101000597A (zh) * | 2007-01-17 | 2007-07-18 | 中山大学 | 一种基于AMBA总线的嵌入式Java处理器IP核 |
CN102023956A (zh) * | 2009-09-23 | 2011-04-20 | 上海摩波彼克半导体有限公司 | 集成电路芯片中串行外设从器件接口结构及数据读写方法 |
CN108989619A (zh) * | 2017-05-31 | 2018-12-11 | 佳能株式会社 | 配件设备和摄像设备及其控制方法 |
CN109891400A (zh) * | 2019-01-24 | 2019-06-14 | 深圳市汇顶科技股份有限公司 | 基于spi异步处理事件的方法、装置及存储介质 |
-
2019
- 2019-11-25 CN CN201911167690.9A patent/CN110865954A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101000597A (zh) * | 2007-01-17 | 2007-07-18 | 中山大学 | 一种基于AMBA总线的嵌入式Java处理器IP核 |
CN102023956A (zh) * | 2009-09-23 | 2011-04-20 | 上海摩波彼克半导体有限公司 | 集成电路芯片中串行外设从器件接口结构及数据读写方法 |
CN108989619A (zh) * | 2017-05-31 | 2018-12-11 | 佳能株式会社 | 配件设备和摄像设备及其控制方法 |
CN109891400A (zh) * | 2019-01-24 | 2019-06-14 | 深圳市汇顶科技股份有限公司 | 基于spi异步处理事件的方法、装置及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488305A (zh) * | 2020-03-27 | 2020-08-04 | 郑州信大捷安信息技术股份有限公司 | 一种安全芯片快速通信的实现方法及系统 |
CN111488305B (zh) * | 2020-03-27 | 2021-12-17 | 郑州信大捷安信息技术股份有限公司 | 一种安全芯片快速通信的实现方法及系统 |
CN115941382A (zh) * | 2022-11-10 | 2023-04-07 | 星河智联汽车科技有限公司 | 一种spi通信的流控方法、装置、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100373297C (zh) | 数据传输系统及其链接电源状态改变方法 | |
US10042794B2 (en) | Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link | |
US9348781B2 (en) | Device disconnect detection | |
US9767064B2 (en) | Low power universal serial bus | |
US10452504B2 (en) | Controller area network (CAN) device and method for emulating classic CAN error management | |
WO2017136474A1 (en) | Unidirectional clock signaling in a high-speed serial link | |
JP6878300B2 (ja) | マルチモード変調を用いる向上した仮想gpio | |
US20140006653A1 (en) | Device connect detection | |
CN107771331B (zh) | 独立式uark brk检测 | |
JP2017528830A (ja) | 修正型uartインターフェースを有する可変フレーム長仮想gpio | |
WO2017065923A1 (en) | Methods to avoid i2c void message in i3c | |
CN111106904B (zh) | 一种DigRF传输端的帧发送处理方法及系统 | |
CN110865954A (zh) | 基于dma的spi设备间通信自动界定可变长帧结束的方法 | |
EP2985955B1 (en) | Controller area network (can) device and method for emulating classic can error management | |
CN113424164A (zh) | USB 2.0转接驱动器和eUSB2中继器中的功耗降低 | |
CN108304335A (zh) | 一种通过dma接收串口不定长报文的方法 | |
CN113792003A (zh) | 单总线通信单元、系统及方法 | |
CN115203109A (zh) | PCIe接口和接口系统 | |
US8755448B2 (en) | Data receiving device, semiconductor integrated circuit, and method for controlling data receiving device | |
CN111352893B (zh) | 一种fpga和stm32单片机的通信方法 | |
CN107810495B (zh) | 具有线活动检测器的uart | |
US7165127B2 (en) | Flow control for interfaces providing retransmission | |
CN219181725U (zh) | Can数据帧同步结构及氛围灯光流帧同步控制系统 | |
CN109871342B (zh) | 自适应连接的串行接口电路及其自适应连接方法 | |
JP2004072225A (ja) | Usbバスコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200306 |