一种基于FPGA的多组SPI码信号检测验证方法技术

技术编号:17779658 阅读:40 留言:0更新日期:2018-04-22 08:08
一种基于FPGA的多组SPI码信号检测验证方法,利用高速采样时钟将每组SPI信号中的SPI时钟、SPI数据和SPI锁存信号按位分别存入先入先出队列FIFO,进行去毛刺处理,输出无毛刺的SPI时钟、SPI数据和SPI锁存信号,在SPI时钟的每个由低电平向高电平跳变的时刻,将对应的SPI数据存入随机存储器RAM中,在SPI锁存信号的每个由低电平向高电平跳变的时刻,锁定缓存的SPI数据,回放锁定的SPI数据,在SPI时钟的每个由高电平向低电平跳变的时刻,输出对应的回读数据,将回读数据存成文件,与原始数据进行对比。本发明专利技术避免了去毛刺处理过程产生的延时而导致数据的丢失,解决了多组SPI信号干扰导致数据通信异常的问题,能够确定数据出错的位置,设计简单,通用性好,易于工程实现。

【技术实现步骤摘要】
一种基于FPGA的多组SPI码信号检测验证方法
本专利技术涉及一种基于FPGA的多组SPI码信号检测验证方法。
技术介绍
在数据通信系统中,外围电子器件的接口中存在多种标准,已知的一些接口协议存在速度慢、协议复杂等问题。SPI总线是能够克服上述缺点的一种串行总线,更好地满足数据通信快速、简单、可靠的要求。根据SPI的工作原理,在FPGA中将SPI接口设计成一种通用外围扩展端口(即SPI扩展端口),让该扩展端口来完成数据的读取功能。或者结合FPGA编程的灵活性和SPI总线的易用性,实现基于FPGA的SPI接口的连接,对FLASH进行存取。大部分基于FPGA的SPI端口设计都是应用于一组数据通信链路建立和数据传输控制等方面,当多组SPI时钟、SPI数据和SPI锁存信号同时进行数据通信的情况下,时钟、数据和锁存信号上存在干扰信号,导致数据通信发生异常。
技术实现思路
本专利技术提供一种基于FPGA的多组SPI码信号检测验证方法,避免了去毛刺处理过程产生的延时而导致数据的丢失,解决了当多组SPI时钟、SPI数据和SPI锁存信号同时进行数据通信的情况下,时钟、数据和锁存信号上存在干扰信号,导致数据通信异常的问题,能够确定数据出错的位置,并进行数据重传,设计简单,通用性好,易于工程实现。为了达到上述目的,本专利技术提供一种基于FPGA的多组SPI码信号检测验证方法,包含以下步骤:步骤S1、利用高速采样时钟将每组SPI信号中的SPI时钟、SPI数据和SPI锁存信号按位分别存入FPGA中的先入先出队列FIFO;步骤S2、从先入先出队列FIFO中依次读出SPI时钟、SPI数据和SPI锁存信号,进行去毛刺处理,输出无毛刺的SPI时钟、SPI数据和SPI锁存信号;步骤S3、在先入先出队列FIFO输出的信号中,在SPI时钟的每个由低电平向高电平跳变的时刻,将对应的SPI数据存入FPGA中的随机存储器RAM中;步骤S4、在SPI锁存信号的每个由低电平向高电平跳变的时刻,锁定缓存的SPI数据;步骤S5、回放步骤S4中锁定的SPI数据,在SPI时钟的每个由高电平向低电平跳变的时刻,输出对应的SPI数据,形成回读数据;步骤S6、将回读数据存成文件,与原始数据进行对比,如果回读数据与原始数据不一致,则记录数据出错的位置,并统计错误数据码的个数,重新进行本次数据传输。所述的高速采样时钟的频率为输入SPI时钟频率的4倍。所述的去毛刺处理方法包含以下步骤:对每个采集得到的信号进行二进制判断;当采集得到的信号为‘0’时,则连续对采集得到的信号进行等于‘0’的判断,当连续4次得到的采集信号均为‘0’时,则将该信号输出为‘0’,否则保持该信号的状态不变;当采集得到的信号为‘1’时,则连续对采集得到的信号进行等于‘1’的判断,当连续4次得到的采集信号均为‘1’时,则将该信号输出为‘1’,否则保持该信号的状态不变。本专利技术具有以下优点:1、利用高速采样时钟将每组SPI信号中的SPI时钟、SPI数据和SPI锁存信号按位分别存入先入先出队列FIFO进行缓存,缓存SPI时钟、SPI数据和SPI锁存信号可以完成去毛刺处理,避免了去毛刺处理过程产生的延时而导致数据的丢失;2、直接使用无毛刺的SPI时钟信号和SPI数据,在SPI时钟的每个由低电平向高电平跳变的时刻,将对应的SPI数据存入随机存储器RAM中;3、当SPI锁存信号有效后,在SPI时钟的每个由高电平向低电平跳变的时刻,输出对应的SPI数据,最后将回读数据存成文件,和原始数据进行对比,完成对该组SPI数据的采集和验证,可以显示当前数据出错的位置,自动统计错误数据码的个数,启动重新进行本次数据传输过程。附图说明图1是本专利技术提供的一种基于FPGA的多组SPI码信号检测验证方法的流程图。图2是多组SPI信号采集示意图。图3是每一组SPI信号时序关系图。图4是未采取去毛刺处理的仿真结果。图5是采取去毛刺处理的仿真结果。具体实施方式以下根据图1~图5,具体说明本专利技术的较佳实施例。如图1所示,本专利技术提供一种基于FPGA的多组SPI码信号检测验证方法,包含以下步骤:步骤S1、利用高速采样时钟将每组SPI信号中的SPI时钟、SPI数据和SPI锁存信号按位分别存入FPGA中的先入先出队列FIFO;步骤S2、从先入先出队列FIFO中依次读出SPI时钟、SPI数据和SPI锁存信号,进行去毛刺处理,输出无毛刺的SPI时钟、SPI数据和SPI锁存信号;步骤S3、在先入先出队列FIFO输出的信号中,在SPI时钟的每个由低电平向高电平跳变的时刻,将对应的SPI数据存入FPGA中的随机存储器RAM中;步骤S4、在SPI锁存信号的每个由低电平向高电平跳变的时刻,锁定缓存的SPI数据;步骤S5、回放步骤S4中锁定的SPI数据,在SPI时钟的每个由高电平向低电平跳变的时刻,输出对应的SPI数据,形成回读数据;步骤S6、将回读数据存成文件,与原始数据进行对比,如果回读数据与原始数据不一致,则记录数据出错的位置,并统计错误数据码的个数,重新进行本次数据传输。如图2~图5所示,是本专利技术的一个实施例,该实施例包含以下步骤:步骤S1、利用高速采样时钟将每组SPI信号中的SPI时钟、SPI数据和SPI锁存信号按位分别存入先入先出队列FIFO。高速采样时钟的频率为输入SPI时钟频率的4倍,高速采样时钟的频率4倍于输入SPI时钟频率就已经可以满足系统处理要求了,当然采样速率可以更高,只是会得到更多的冗余数据,对检测系统的处理能力有影响。缓存SPI时钟、SPI数据和SPI锁存信号可以避免后续去毛刺处理过程产生的延时而导致的数据丢失。如图2所示,本实施例中,需要进行码信号采集和验证的SPI信号有20组,每组SPI信号均包含一位时钟信号、一位数据信号和一位锁存信号,以及经过处理后得到的一位回读数据回读数据。每组SPI信号的4路码信号满足的时序关系如图3所示。其中,每一组SPI码包含100位串行数据,因此时钟信号、数据信号、锁存信号和回读数据的FIFO的存储深度为100,存储位宽为1bit。锁存信号在数据码发送的期间一直为低,在数据码发送完成后的下一个SPI时钟上升沿到达之前变为高电平,并对SPI时钟满足数据建立保持时间要求,持续一个SPI时钟周期。步骤S2、从先入先出队列FIFO中依次读出SPI时钟、SPI数据和SPI锁存信号,进行去毛刺处理,输出无毛刺的SPI时钟、SPI数据和SPI锁存信号。所述的去毛刺处理是结合了一种二进制判断和设定毛刺有效时间的检测处理:毛刺指的是信号线上的虚假信号,由于多组SPI信号同时进行信号‘0’和‘1’的快速翻转,互相彼此之间存在干扰,原本输入为‘0’的信号可能在采集后得到的结果为‘1’,而原本输入为‘1’的信号可能在采集后得到的结果为‘0’。利用有效的数据信号的持续时间总是远大于毛刺信号的特点,对每个采集得到的信号进行二进制判断,当采集得到的信号为‘0’时,则连续对采集得到的信号进行等于‘0’的判断,当连续4次得到的采集信号均为‘0’时,则将该信号输出为‘0’,否则保持该信号的状态不变。同理,当采集得到的信号为‘1’时,则连续对采集得到的信号进行等于‘1’的判断,当连续4次得到的采集信号均为‘1’时,则将该信号输出为‘1’,否则保持本文档来自技高网...
一种基于FPGA的多组SPI码信号检测验证方法

【技术保护点】
一种基于FPGA的多组SPI码信号检测验证方法,其特征在于,包含以下步骤:步骤S1、利用高速采样时钟将每组SPI信号中的SPI时钟、SPI数据和SPI锁存信号按位分别存入FPGA中的先入先出队列FIFO;步骤S2、从先入先出队列FIFO中依次读出SPI时钟、SPI数据和SPI锁存信号,进行去毛刺处理,输出无毛刺的SPI时钟、SPI数据和SPI锁存信号;步骤S3、在先入先出队列FIFO输出的信号中,在SPI时钟的每个由低电平向高电平跳变的时刻,将对应的SPI数据存入FPGA中的随机存储器RAM中;步骤S4、在SPI锁存信号的每个由低电平向高电平跳变的时刻,锁定缓存的SPI数据;步骤S5、回放步骤S4中锁定的SPI数据,在SPI时钟的每个由高电平向低电平跳变的时刻,输出对应的SPI数据,形成回读数据;步骤S6、将回读数据存成文件,与原始数据进行对比,如果回读数据与原始数据不一致,则记录数据出错的位置,并统计错误数据码的个数,重新进行本次数据传输。

【技术特征摘要】
1.一种基于FPGA的多组SPI码信号检测验证方法,其特征在于,包含以下步骤:步骤S1、利用高速采样时钟将每组SPI信号中的SPI时钟、SPI数据和SPI锁存信号按位分别存入FPGA中的先入先出队列FIFO;步骤S2、从先入先出队列FIFO中依次读出SPI时钟、SPI数据和SPI锁存信号,进行去毛刺处理,输出无毛刺的SPI时钟、SPI数据和SPI锁存信号;步骤S3、在先入先出队列FIFO输出的信号中,在SPI时钟的每个由低电平向高电平跳变的时刻,将对应的SPI数据存入FPGA中的随机存储器RAM中;步骤S4、在SPI锁存信号的每个由低电平向高电平跳变的时刻,锁定缓存的SPI数据;步骤S5、回放步骤S4中锁定的SPI数据,在SPI时钟的每个由高电平向低电平跳变的时刻,输出对应的SPI数据,形成回读数据;步骤S6、将回读数...

【专利技术属性】
技术研发人员:王珺张靓郭冬梅李媛媛
申请(专利权)人:上海无线电设备研究所
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1