CN113836075A - 一种基于fpga平台的spi接口信号消除毛刺的方法 - Google Patents

一种基于fpga平台的spi接口信号消除毛刺的方法 Download PDF

Info

Publication number
CN113836075A
CN113836075A CN202111108117.8A CN202111108117A CN113836075A CN 113836075 A CN113836075 A CN 113836075A CN 202111108117 A CN202111108117 A CN 202111108117A CN 113836075 A CN113836075 A CN 113836075A
Authority
CN
China
Prior art keywords
spi
signals
data
burrs
spi interface
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
CN202111108117.8A
Other languages
English (en)
Other versions
CN113836075B (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.)
Zhuhai Huawang Technology Co ltd
Original Assignee
Zhuhai Huawang 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 Zhuhai Huawang Technology Co ltd filed Critical Zhuhai Huawang Technology Co ltd
Priority to CN202111108117.8A priority Critical patent/CN113836075B/zh
Publication of CN113836075A publication Critical patent/CN113836075A/zh
Application granted granted Critical
Publication of CN113836075B publication Critical patent/CN113836075B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level

Abstract

本发明公开一种基于FPGA平台的SPI接口信号消除毛刺的方法,主要是SPI从机对MOSI、SCLK、CS信号进行固定电平设定时长去进行消抖,若信号沿来了只有达到消抖延时才能判定为信号的跳变,否则就判定为信号线上的毛刺而忽略掉,从而实现了SPI接口信号毛刺的消除,使得数据能够被正确接收。本发明可以通过动态设定延时参数的值去解决复杂环境下主机SPI发出的信号受干扰产生毛刺导致从机接收数据出现错误的问题,并且能解决相对较大毛刺的影响。由此使得SPI接口在传输数据的时候工作系统可靠,灵活、稳定性高。

Description

一种基于FPGA平台的SPI接口信号消除毛刺的方法
技术领域
本发明属于基于FPGA平台的高速数据采集和板间通信等技术领域,具体涉及了一种基于FPGA平台的SPI接口信号消除毛刺的方法。
背景技术
SPI接口的全称是“Serial Peripheral Interface”,即串行外围接口。SPI通信以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,单向传输时需要至少3根线,双向传输时需要至少4根线,四根线的主要功能为MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)、CS(片选)。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器、摄像头,还有数字信号处理和数字信号解码器之间。SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,数据传输速度总体来说比I2C总线要快,速度可达几十Mbps。在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显的简单高效。尽管SPI总线有这么多优点,但是该总线最大的一个缺点就是没有指定的流控制,没有应答机制确认是否接收到数据,一旦信号受到干扰就会接收不到正确的数据。
因此目前各个领域都需要得到更精确的数据,获得更准确的信息,如果接收到错误的配置信息器件是不会正常工作的甚至误操作,由此带来的损失是不可估量的。尤其在现在日益复杂的系统中,SPI接口通常都是板间或者器件之间通信甚至是一个主器件和N多个从器件通信,这就避免不了各种干扰导致信号出现毛刺,对能够正确接收到数据提出非常大的挑战。
发明内容
本发明针对现有基于FPGA平台的SPI接口在数据传输时从机在接收主机发出的信号时存在毛刺的问题,提供了一种消除该毛刺的方法。
本发明是这样实现的:
一种基于FPGA平台的SPI接口信号消除毛刺的方法,主要是SPI从机对MOSI、SCLK、CS信号进行固定电平设定时长去进行消抖,若信号沿来了只有达到消抖延时才能判定为信号的跳变,否则就判定为信号线上的毛刺而忽略掉,从而实现了SPI接口信号毛刺的消除,使得数据能够被正确接收;具体包括:
首先,正确连接从机和主机的SPI接口信号,并且尽可能保证接口所有信号线等长;
其次,在SPI从机上使用VIVADO软件设置DEBUG在线调试逻辑,即设定消抖时长N,N值小于一个SCLK的周期;当SPI从机在检测到主机发出的片选信号CS的某一个跳边沿后持续一个消抖时长N都没有跳变的话,就认为该跳边沿是个稳定的跳边沿,SPI从机开始接收数据或者停止接收数据,直至检测到片选信号CS的下一个稳定的跳边沿;否则就认为出现了一个毛刺忽略该跳边沿,保持当前工作状态。
本发明进一步说明,所述的消抖时长N值通过FPGA在线逻辑分析仪中插入VIO(虚拟I/O)通过动态设置N值去查看SPI从机接收到数据的正确性去判断确定N值的大小。使用VIVADO软件设置DEBUG在线调试逻辑,将消除时长N值设定为VIO(虚拟I/O)并在线抓取主机的数据观测是否正确,若不正确就调整N值直到获取的数据正确即可。
本发明的优点:
本发明可以通过动态设定延时参数的值去解决复杂环境下主机SPI发出的信号受干扰产生毛刺导致从机接收数据出现错误的问题,并且能解决相对较大毛刺的影响。由此使得SPI接口在传输数据的时候工作系统可靠,灵活、稳定性高。
附图说明
图1是SPI接口的系统框图。
图2是SPI接口采用三线制且正常不受干扰的时序图。
图3是SPI接口在信号受干扰时的异常时序图。
图4是本发明一实施例中设定消抖时长的示意图。
图5是SPI接口在经过设定消抖时长消除毛刺后的时序图。
具体实施方式
下面结合附图、实施例以及设计原理对本发明进一步说明,但以下描述不是对本发明所要求保护范围进行限制。
实施例:
一种基于FPGA平台的SPI接口信号消除毛刺的方法,具体包括:
首先,正确连接从机和主机的SPI接口信号,并且尽可能保证接口所有信号线等长;
其次,在SPI从机上使用VIVADO软件设置DEBUG在线调试逻辑,即设定消抖时长N,N值小于一个SCLK的周期;当SPI从机在检测到主机发出的片选信号CS的某一个跳边沿后持续一个消抖时长N都没有跳变的话,就认为该跳边沿是个稳定的跳边沿,SPI从机开始接收数据或者停止接收数据,直至检测到片选信号CS的下一个稳定的跳边沿;否则就认为出现了一个毛刺忽略该跳边沿,保持当前工作状态。
所述的消抖时长N值通过FPGA在线逻辑分析仪中插入VIO(虚拟I/O)通过动态设置N值去查看SPI从机接收到数据的正确性去判断确定N值的大小。
下面以一个项目案例对本发明进一步的阐述:
1、系统设计框图
整个系统主要包括两部分,系统框图如图(1)所示。
(1)该系统框图包括主机和从机两部分采用点对点通信。
(2)从机对主机发出的SPI信号进行去除毛刺操作。
SPI接口共有四根信号线,分别是:片选线、时钟线、串行输出数据线、串行输入数据线。
(1)MOSI:主器件数据输出,从器件输入。
(2)MISO:主器件数据输入,从器件输出。
(3)SCLK:时钟信号,由主器件产生。
(4)CS:从器件使能信号,由主器件控制。
(5)SYS_CLK:系统时钟。
2、SPI时序图
SPI采用三线制,正常不受干扰的时序图如图(2)所示。在图(2)的时序中,从器件只需要在时钟SCLK的上升沿去接受数据即可正确接收主机发出的数据。SPI异常时序图(信号受干扰)可以看到片选信号CS、时钟信号SCLK、数据信号MOSI上面均存在毛刺,如图(3)所示。注:此处SYS_CLK为50M即周期为20ns、SCLK为1M即周期为1us、数据传输长度为1个字节。
3、SPI的时序分析
SPI接口信号在不收干扰的情况下时序图如图(2)所示。SPI从机在检测到主机发出的片选信号CS的下降沿后就开始在主机发出的时钟信号SCLK的上升沿去接收数据,直到检测到主机发出的片选信号CS的上升沿后停止接受数据即完成了一个字节的接收。当检测到主机发出的下一个片选信号CS的下降沿时开始接收下一个字节。
4、消除毛刺原理分析
由上述分析我们知道了如果主机的SPI接口信号在不收到干扰的情况下,从机按照正常的时序接收主机传过来的数据理论上是没有错误的,但是往往我们的电子系统比较复杂从机在接受主机传输数据的时候主机的信号就已经被干扰,因此如果不对主机传过来的信号加以处理的话就很可能接收不到或者接收到错误的数据。所以本发明采用对SPI主机传过来的所有信号均进行设定时长去消抖。
在图(3)中片选信号CS下降沿A点到B点的上升沿之间的跳变沿都是毛刺,如果我们按照正常时序从CS的下降沿开始去接受数据但是还没有接收够完整的一个字节时,由于毛刺引起CS的上升沿提前到来,如图(3)中的a点和b点,因此接受的数据肯定是错的。同理时钟信号的毛刺引起误采集,即从机理论上是需要在SCLK的上升沿去采集数据的,但是由于毛刺引起的跳边沿导致c点、d点上升沿就去接收数据,结果数据肯定是错误的。数据信号同理,因此我们若对主机发出的信号采用设定时长去消抖就会解决这个问题。
5、设定时长消除毛刺
设定时长为N,N的值小于一个SCLK的周期。如图(4)设定N(400ns),系统时钟SYS_CLK采用频率较高的时钟,如图(4)设定为频率f为50M,即系统时钟的周期Tsys为(1/f)即20ns,所以此处设定时长delay_cnt=N/Tsys。如图(4)设定为delay_cnt=400/20=20,当检测到CS的某一个跳边沿后持续20个系统时钟即400ns的时长都没有跳变的话就认为该跳边沿是个稳定的跳边沿,否则就认为出现了一个毛刺忽略该跳边沿即可。如图(4)所示CS_O即为经过设定时长消除毛刺的结果,可以看到经过处理的CS信号平滑而稳定。
如图(5)是经过设定时长消除毛刺后的时序图,由此可以看出SCLK_O信号和MOSI_O信号均是平滑稳定不带毛刺的信号。此时从机再去接受数据就可以稳定正确的接受数据了。
6、时长N值的确定
时长N值通过FPGA在线逻辑分析仪中插入VIO(虚拟I/O)通过动态设置N值去查看SPI从机接收到数据的正确性去判断N值的大小,如此就会解决相对较大的毛刺对接口造成的影响,等待从机接收到稳定正确的数据时,固定N值的大小即可。
显然,上述实施例仅仅是为了清楚的说明本发明所作的举例,而并非对本发明实施的限定。对于所属技术领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动;这里无需也无法对所有的实施方式予以穷举;而由此所引申出的显而易见的变化或变动仍处于本发明的保护范围之中。

Claims (2)

1.一种基于FPGA平台的SPI接口信号消除毛刺的方法,其特征在于:主要是SPI从机对MOSI、SCLK、CS信号进行固定电平设定时长去进行消抖,若信号沿来了只有达到消抖延时才能判定为信号的跳变,否则就判定为信号线上的毛刺而忽略掉,从而实现了SPI接口信号毛刺的消除,使得数据能够被正确接收;具体包括:
首先,正确连接从机和主机的SPI接口信号,并且尽可能保证接口所有信号线等长;
其次,在SPI从机上使用VIVADO软件设置DEBUG在线调试逻辑,即设定消抖时长N,N值小于一个SCLK的周期;当SPI从机在检测到主机发出的片选信号CS的某一个跳边沿后持续一个消抖时长N都没有跳变的话,就认为该跳边沿是个稳定的跳边沿,SPI从机开始接收数据或者停止接收数据,直至检测到片选信号CS的下一个稳定的跳边沿;否则就认为出现了一个毛刺忽略该跳边沿,保持当前工作状态。
2.根据权利要求1所述的基于FPGA平台的SPI接口信号消除毛刺的方法,其特征在于:所述的消抖时长N值通过FPGA在线逻辑分析仪中插入VIO通过动态设置N值去查看SPI从机接收到数据的正确性去判断确定N值的大小。
CN202111108117.8A 2021-09-22 2021-09-22 一种基于fpga平台的spi接口信号消除毛刺的方法 Active CN113836075B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111108117.8A CN113836075B (zh) 2021-09-22 2021-09-22 一种基于fpga平台的spi接口信号消除毛刺的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111108117.8A CN113836075B (zh) 2021-09-22 2021-09-22 一种基于fpga平台的spi接口信号消除毛刺的方法

Publications (2)

Publication Number Publication Date
CN113836075A true CN113836075A (zh) 2021-12-24
CN113836075B CN113836075B (zh) 2024-03-19

Family

ID=78960262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111108117.8A Active CN113836075B (zh) 2021-09-22 2021-09-22 一种基于fpga平台的spi接口信号消除毛刺的方法

Country Status (1)

Country Link
CN (1) CN113836075B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114911743A (zh) * 2022-07-12 2022-08-16 杭州晶华微电子股份有限公司 Spi从机设备、spi主机设备和相关的通信方法
CN115389856A (zh) * 2022-10-27 2022-11-25 季华实验室 信号变化沿检测方法、装置、电子设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055587A (en) * 1998-03-27 2000-04-25 Adaptec, Inc, Integrated circuit SCSI I/O cell having signal assertion edge triggered timed glitch filter that defines a strobe masking period to protect the contents of data latches
US6745337B1 (en) * 2000-09-29 2004-06-01 Intel Corporation Glitch detection circuit for outputting a signal indicative of a glitch on a strobe signal and initializing an edge detection circuit in response to a control signal
CN101364426A (zh) * 2007-08-08 2009-02-11 联发科技股份有限公司 存储器控制电路及其方法
CN103092255A (zh) * 2011-11-03 2013-05-08 辉达公司 无毛刺可编程时钟整形器
CN105116318A (zh) * 2015-09-02 2015-12-02 电子科技大学 一种逻辑分析仪中实现毛刺检测的方法
US20160087615A1 (en) * 2014-09-24 2016-03-24 Dialog Semiconductor (UK) Ltd. Debounce Circuit with Dynamic Time Base Adjustment for a Digital System
CN105867877A (zh) * 2016-03-25 2016-08-17 中国科学技术大学 一种基于fpga的真随机数发生器
CN112073049A (zh) * 2020-09-04 2020-12-11 中科微至智能制造科技江苏股份有限公司 基于fpga的rs485接口信号消除毛刺方法、接收方法和fpga
CN112558519A (zh) * 2020-12-07 2021-03-26 中国工程物理研究院核物理与化学研究所 一种基于fpga和高精度延时芯片的数字信号延时方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055587A (en) * 1998-03-27 2000-04-25 Adaptec, Inc, Integrated circuit SCSI I/O cell having signal assertion edge triggered timed glitch filter that defines a strobe masking period to protect the contents of data latches
US6745337B1 (en) * 2000-09-29 2004-06-01 Intel Corporation Glitch detection circuit for outputting a signal indicative of a glitch on a strobe signal and initializing an edge detection circuit in response to a control signal
CN101364426A (zh) * 2007-08-08 2009-02-11 联发科技股份有限公司 存储器控制电路及其方法
CN103092255A (zh) * 2011-11-03 2013-05-08 辉达公司 无毛刺可编程时钟整形器
US20160087615A1 (en) * 2014-09-24 2016-03-24 Dialog Semiconductor (UK) Ltd. Debounce Circuit with Dynamic Time Base Adjustment for a Digital System
CN105116318A (zh) * 2015-09-02 2015-12-02 电子科技大学 一种逻辑分析仪中实现毛刺检测的方法
CN105867877A (zh) * 2016-03-25 2016-08-17 中国科学技术大学 一种基于fpga的真随机数发生器
CN112073049A (zh) * 2020-09-04 2020-12-11 中科微至智能制造科技江苏股份有限公司 基于fpga的rs485接口信号消除毛刺方法、接收方法和fpga
CN112558519A (zh) * 2020-12-07 2021-03-26 中国工程物理研究院核物理与化学研究所 一种基于fpga和高精度延时芯片的数字信号延时方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114911743A (zh) * 2022-07-12 2022-08-16 杭州晶华微电子股份有限公司 Spi从机设备、spi主机设备和相关的通信方法
CN115389856A (zh) * 2022-10-27 2022-11-25 季华实验室 信号变化沿检测方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113836075B (zh) 2024-03-19

Similar Documents

Publication Publication Date Title
US10108578B2 (en) Single wire communications interface and protocol
US8103896B2 (en) Method and system for I2C clock generation
CN113836075A (zh) 一种基于fpga平台的spi接口信号消除毛刺的方法
KR101086426B1 (ko) I2c 컨트롤러에서 직렬 데이터 라인의 상태 변화의타이밍 제어 장치 및 그 제어 방법
US8782300B2 (en) Electronic apparatus
US8290103B2 (en) Method for transmitting parallelization signals of uninterruptible power supplies
WO2017027417A1 (en) Dynamic data-link selection over common physical interface
CN109918332B (zh) Spi从设备及spi设备
US7558902B2 (en) Bus to MCU bridge
US9418037B2 (en) SPI interface and method for serial communication via an SPI interface having an SPI protocol handler for evaluating signal transitions of SPI signals
CN103714029A (zh) 新型二线同步通信协议及应用
WO2017065923A1 (en) Methods to avoid i2c void message in i3c
CN112564882B (zh) 一种基于ahb总线的单线数字通讯接口
CN112540943B (zh) 一种防止i2c接口错误唤醒soc系统的电路结构及方法
CN109871344B (zh) 通讯系统、接口电路及其传输信号的方法
CN108920401B (zh) 多主多从的i2c通信方法、系统及节点设备
KR20180019560A (ko) 독립적인 uart brk 검출
CN107533533B (zh) 集成电路之间的通信
KR20210075878A (ko) I2c와의 하위 호환성을 촉진하는 i3c 허브
CN103401743B (zh) 一种i2c总线消除干扰信号的方法和装置
CN102622325B (zh) I2c总线启动与停止电路结构
CN116015324A (zh) 一种强化抗干扰的uart数据接收装置及其接收方法
WO2016085600A1 (en) Symbol transition clocking clock and data recovery to suppress excess clock caused by symbol glitch during stable symbol period
US20040133820A1 (en) Interfact circuit
CN111338450A (zh) 一种芯片复位电路及芯片

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
GR01 Patent grant
GR01 Patent grant