一种基于示波器的SPI总线硬件触发与解码方法与流程

文档序号:13470706阅读:656来源:国知局
一种基于示波器的SPI总线硬件触发与解码方法与流程
本发明属于spi总线硬件控制
技术领域
,尤其涉及的是一种基于示波器的spi总线硬件触发与解码方法。
背景技术
:spi是串行外设接口总线标准,它是一种高速、全双工、同步的通信方式总线。最初由motorola在20世纪80年代为其68000系列微控制器研发的,现在被广泛应用于嵌入式系统设计的各种器件中。spi主要用于微控制器和直接外设之间,它广泛应用于手机等移动设备中,电脑内存芯片与键盘显示器之间的通信。数字示波器是目前电子行业应用最广泛的工具,广泛应用于电子设备的科研、生产、试验和技术保障测试。随着电子技术的发展,数字示波器中都集成了总线分析功能,目前的示波器中的串行总线解码大都是通过软件来实现,但是软件解码存在耗时长,实时性差的缺点。示波器中spi总线传统的软件解码方法,流程图如图1所示,在spi总线软件解码中,软件担负着采集数据和触发与解码的双重任务,解码过程是在采集一定的数据量达到预触发之后进行的,一边解码一边检测是否满足触发条件,一次解码过程很有可能因为没有触发信号而放弃重新采集解码,造成示波器的耗时较长、实时性差、波形捕获率低。等到触发以后,软件提取解码数据和位置信息送给示波器显示。整个过程中软件硬件交互比较多,而且软件解码速度比较慢。因此,现有技术存在缺陷,需要改进。技术实现要素:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于示波器的spi总线硬件触发与解码方法。本发明的技术方案如下:一种基于示波器的spi总线硬件触发与解码方法,包括:同步控制模块分别与命令解析及参数设置模块、信号输入模块、总线解码模块、实时存储模块及显示模块相互连接及相互通讯;所述命令解析与参数设置模块,用于将输入通道选择、通道阈值、通道极性、位顺序、总线显示设置、总线触发类型、总线触发模式、触发数据长度及触发数据发送至同步控制模块,同步控制模块根据通过设置信息,对解码过程进行控制;所述信号输入处理模块,用于给时钟信号线scl、片选信号线ss、主输出/从输入mosi、主输入/从输出miso,选择合适的示波器输入通道然后对信号进行采集前的处理,处理完成后,发送消息给同步控制模块;所述总线解码模块,分为总线触发和总线解析两部分,担负着触发比较和对输入总线信号的解析任务;所述存储模块,用于每完成一次解码需要存储一次标签,然后等到解码完成后,同步控制模块通知显示模块在示波器上显示总线波形;所述显示模块,同步控制模块读取存储器中的spi总线标签,然后根据spi总线协议,控制显示模块按照一定的算法将总线标签显示在示波器相应的位置上;所述同步控制模块,用于控制解码过程,设置参数,与其它模块之间进行信息交互,实现实时输入波形和解码标签的同步显示,通过与触发过程的协调工作,最终提供给用户以完整的输入模拟波形、解码标签。进一步而言,所述总线触发:根据命令解析与参数设置模块中设置的触发类型及触发数据,通过对设置的触发数据及触发字长度与实时解码数据的比较,确定触发位置,以便示波器能够以此位置为参考点将解码标签,数字波形和实时模拟波形同步显示出来。进一步而言,所述总线解析:根据spi总线的协议,解析实时总线信号,完成对总线信号的分析。进一步而言,所述总线解码模块的解码方法包括以下步骤:步骤1:根据spi输入信号的波特率确定16倍频采样需要的时钟频率,由fpga内部的50mhz时钟同步产生;由50mh分频得到16倍频时钟,分频因子计算公式为,公式1:其中,fbaud为对应的spi波特率,f为基准时钟;分频后的时钟作为模块触发和解码时钟;步骤2:分别解码出开始位、数据位、停止位;解码模块根据协议内容和触发要求得到结构数组;步骤3:存储标签,为同步读取做准备;标签的存储以标签类型的变化为敏感信号,而与时钟无关;开始位、数据位和停止位,将分别存储一次,每个数据包将分别包含标签类型,附属数据和地址计数器的计数值;步骤4:读取数据;得到实时解码的数据,当采集数据满足预触发深度后有触发出现时即通知软件,待该次采集完成后准备读取存储区内的标签数据;而且,满足预触发后的第一个触发时刻,fpga会将此时的地址计数器值记录下来供读取,另外同时提供标签存储区的有效标签地址范围值;步骤5:同步显示;根据步骤4中读取的数值,根据地址计数器的计数值实现采集波形、标签、数字信号三者的同步显示,提供给仪器使用者;软件同步显示时,需要实现采集波形、标签、数字信号与示波器的时基刻度档位协调一致,以实现在不同时基档位下都能正常观测总线信号;其中当标签的显示单位处理spi信号为9600的波特率时,在存储深度为1000个点时,标签的显示单位与时基的计算关系公式为,公式2:上述步骤中,每一个时间点总线解码模块得到直接供给显示模块的标签内容及标签位置信息。采用上述方案,成功的应用于示波器中,显著提高了示波器中spi总线的解码效率。本发明提出的方法实现了spi总线的触发和解码,能够减少示波器等待时间,实现快速而准确的触发和解码。改进了spi总线传统的软件解码耗时长,实时性差的缺点,提高了示波器中spi总线的解码效率。附图说明图1为现有技术中示波器中spi总线传统的软件解码方法流程图。图2为本发明基于示波器的spi总线硬件触发与解码方法流程图。图3为本发明spi总线触发与解码结构图。具体实施方式以下结合附图和具体实施例,对本发明进行详细说明。实施例1本发明基于示波器平台通过硬件实现spi总线触发与解码的结构如图3所示,触发与解码过程主要包括6个部分。同步控制模块分别与命令解析及参数设置模块、信号输入模块、总线解码模块、实时存储模块及显示模块相互连接及相互通讯。1、命令解析与参数设置模块将输入通道选择、通道阈值、通道极性、位顺序、总线显示设置、总线触发类型、总线触发模式、触发数据长度及触发数据等,发送至同步控制模块,同步控制模块根据通过设置信息,对解码过程进行控制。2、信号输入处理模块spi总线有四个主要的通道:scl(时钟信号钱)、ss(片选信号线)、mosi(主输出/从输入)、miso(主输入/从输出),信号输入处理模块用于给上述四个通道选择合适的示波器输入通道然后对信号进行采集前的处理。处理完成后,发送消息给同步控制模块。3、总线解码模块同步控制模块发送消息通知开始解码,该过程是整个触发与解码的主体部分,分为总线触发和总线解析两部分,担负着触发比较和对输入总线信号的解析任务。总线触发:根据命令解析与参数设置模块中设置的触发类型及触发数据,通过对设置的触发数据及触发字长度与实时解码数据的比较,确定触发位置,以便示波器能够以此位置为参考点将解码标签,数字波形和实时模拟波形同步显示出来。总线解析:根据spi总线的协议,解析实时总线信号,完成对总线信号的分析,方便仪器使用者观测。将标签编号、实时解码数据、相对位置组成的结构数组如下表1:spi总线解码输出数据结构为标签编号、实时触码数据及相对位置数据,用于实时存储于fpga内部(存储深度较小时)或外挂存储器(存储深度较大时)中。表1:spi总线解码输出数据结构:标签编号实时解码数据相对位置4存储模块总线解码模块中得到的spi总线标签数量可能很大,需要实时的存储下来,每完成一次解码需要存储一次标签,然后等到解码完成后,同步控制模块通知显示模块在示波器上显示总线波形。适当的存储空间能保证对spi总线较长时间的解码与触发,从而一次提供足够的信息。存储过程中进行循环存储,当存储空间满了以后,覆盖掉前面存储的标签,继续存储。存储标签的过程实际是一种异步存储,当总线处于空闲状态时,将不存储任何信息,从而达到充分运用存储空间的目的。5显示模块当采集数据满足预触发后有触发出现时即通知同步控制模块待该次采集完成,准备读取存储区内的标签数据。同步控制模块读取存储器中的spi总线标签,然后根据spi总线协议,控制显示模块按照一定的算法将总线标签显示在示波器相应的位置上。spi总线标签和数字波形都可以在示波器屏幕上移动。6、同步控制模块同步控制过程主要作用是控制这个解码过程,设置各种参数,与其它模块之间进行信息交互,实现实时输入波形和解码标签的同步显示,通过与触发过程的协调工作,最终提供给用户以完整的输入模拟波形、解码标签,这也给用户自行验证提供了方便。实现触发、解码、标签显示、模拟波形与数字波形的同步显示。在满足预触发条件下判断是否有解码模块送来的触发信号,满足这两个条件即达到系统触发,此时需要在示波器屏幕上以触发位置为参考点同时显示模拟波形、总线标签及数字波形。本发明基于示波器中的spi总线硬件解码方法,流程图如图2:图2中包括以下步骤:步骤1:首先根据spi输入信号的波特率确定16倍频采样需要的时钟频率,由fpga内部的50mhz时钟同步产生;由50mh分频得到16倍频时钟,分频因子计算公式为公式1:其中,fbaud为对应的spi波特率,f为基准时钟,这里为50mhz;分频后的时钟当作模块触发和解码时钟。步骤2:根据spi的协议内容和电平规范,分别解码出开始位(图2中的触发点示意)、数据、停止位。解码模块根据协议内容和触发要求得到表1示意的结构数组。步骤3:存储标签,为后续的软件同步读取做准备。标签的存储以标签类型的变化为敏感信号,而与时钟无关。开始位、数据和停止位,将分别存储一次,每个数据包将分别包含标签类型,附属数据和地址计数器的计数值。存储标签的过程实际上是一种异步存储的过程,当总线处于空闲状态时,存储标签过程将不存储任何信息,从而达到充分运用存储空间的目的。步骤4:软件读取数据。由前3步得到实时解码的数据,当采集数据满足预触发深度后有触发出现时即通知软件待该次采集完成后准备读取存储区内的标签数据。而且,满足预触发后的第一个触发时刻,fpga会将此时的地址计数器值记录下来供软件读取,另外一同提供给软件的还有标签存储区的有效标签地址范围值。步骤5:同步显示。根据步骤4中读取的数值,软件根据地址计数器的计数值实现采集波形、标签、数字信号三者的同步显示,提供给仪器使用者。软件同步显示时,需要实现采集波形、标签、数字信号与示波器的时基刻度档位协调一致,以实现在不同时基档位下都能正常观测总线信号。其中以标签的显示单位处理尤为关键,以spi信号9600的波特率为例,在存储深度为1000个点时,标签的显示单位与时基的计算关系公式为,公式2:上述步骤中,每一个时间点总线解码模块得到可以直接供给显示模块的标签内容及标签位置信息。在spi总线硬件解码中,触发和解码都由硬件(fpga)完成,每一个时间点总线解码模块得到可以直接供给软件显示的标签内容及标签位置信息,并实时存储于fpga内部或外挂存储器(存储深度较大时需要)中。整个过程实时进行,在软件提取数据显示之前的衔接处理均由硬件完成,等待时间很短。本发明的关键点如下:(1)本发明提供的spi总线触发与解码方法原理、实施结构和实施流程;(2)实现spi总线触发与解码的解析过程;本发明的保护点如下:(1)本发明提供的spi总线触发与解码思想和原理;(2)图3所示的spi总线触发与解码结构图;本专利的重点是通过硬件实现spi总线的触发和解码工作,触发和解码两部分并行进行,硬件实现实时性很高,并且解析模块实时运行,即一次触发解码完成以后立即开始下一次触发解码,这就避免了软件解法的预触发采集等待和未触发重新采样带来的耗时长的缺点,显著提高了数字示波器中的spi总线的解码效率。应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1