CN113836075A - 一种基于fpga平台的spi接口信号消除毛刺的方法 - Google Patents
一种基于fpga平台的spi接口信号消除毛刺的方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 13
- 230000008030 elimination Effects 0.000 claims abstract description 15
- 238000003379 elimination reaction Methods 0.000 claims abstract description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 230000000630 rising effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 4
- 235000015429 Mirabilis expansa Nutrition 0.000 description 2
- 244000294411 Mirabilis expansa Species 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 235000013536 miso Nutrition 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/343—Logical level
Abstract
本发明公开一种基于FPGA平台的SPI接口信号消除毛刺的方法,主要是SPI从机对MOSI、SCLK、CS信号进行固定电平设定时长去进行消抖,若信号沿来了只有达到消抖延时才能判定为信号的跳变,否则就判定为信号线上的毛刺而忽略掉,从而实现了SPI接口信号毛刺的消除,使得数据能够被正确接收。本发明可以通过动态设定延时参数的值去解决复杂环境下主机SPI发出的信号受干扰产生毛刺导致从机接收数据出现错误的问题,并且能解决相对较大毛刺的影响。由此使得SPI接口在传输数据的时候工作系统可靠,灵活、稳定性高。
Description
技术领域
本发明属于基于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值的大小。
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)
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)
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和高精度延时芯片的数字信号延时方法 |
-
2021
- 2021-09-22 CN CN202111108117.8A patent/CN113836075B/zh active Active
Patent Citations (9)
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)
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 |