一种具有高速串行协议触发和解码功能的数字存储示波器的制作方法

文档序号:16478402发布日期:2019-01-02 23:50阅读:173来源:国知局
一种具有高速串行协议触发和解码功能的数字存储示波器的制作方法
本发明属于数字示波器
技术领域
,更为具体地讲,涉及一种一种具有高速串行协议触发和解码功能的数字存储示波器。
背景技术
:目前,随着电子技术的发展,串行总线的应用范围有了很大扩展,比如医学影像分析设备中数据传,输智能手机与其摄像头间通信,工业系统中实现多路实时控制等。与此同时使用的串行总线信号速率也越来越快,如pcie、usb3.0、sata等常用总线信号速率都在1gb/s以上,这对数字示波器串行协议解码/触发功能提出了更高的要求。然而,随着嵌入式系统设计中越来越多地使用串行总线代替宽并行总线,设计人员对数字示波器分析串行协议信号的能力提出了更高的要求。在串行协议信号中,所有信息都必须以串行方式在相同的少数导线(有时是一条)上发送。这意味着一个信号可能包括地址信息、控制信息、数据信息和时钟信息。因此,串行协议信号的分析需要完成两个方面的工作,一方面是分析协议信号的电气特性和波形特征,如幅度、波特率等;另一方面则是分析其所包含的串行协议信息,如数据信息、地址信息等。普通数字示波器仅能对电气特性和波形特征进行分析,也只能根据边沿、脉宽等特性来触发信号,所以数字示波器需要能够从协议的角度对串行协议信号进行触发和解码的功能。串行协议解码功能的主要作用就是当不同的串行协议总线信号从数字示波器输入时,经过用户对数字示波器的操作,把原本一条串行协议线上的信号分离出其中的各种信息,并将该信息显示在对应信号波形下方。而串行协议触发的主要功能就是将数字示波器显示区域定位到上面解码得到的数据信息中用户感兴趣的地方。以前的串行协议解码/触发功能主要通过模拟比较器+可编程硬件实现,但是该方案处理高速串行信号时出现困难,主要原因是可编程硬件的输入解串器(iserdes)最大工作速度有限,不能直接接收高速串行信号。例如,针对目前常用的pcie总线,其pcie1.0版本即要求2.5gb/s的传输速率。尽管可以找到相应的高速模拟比较器将完成信号的数字化,但数字化后的高速0/1串行数字流无法使用常用的芯片接收。现有数字示波器的串行协议触发解码/功能中,lecroy公司使用外置硬件协议触发+内部软件协议解码的方式。tektronix公司使用asic芯片作为发送机,将高速串行信号降速转换为低速并行信号后由fpga作为接收机进行协议触发/解码。这些方法虽然解决了对高速串行信号的协议解码/触发问题,但是都额外增加了硬件成本。技术实现要素:本发明的目的在于克服现有技术的不足,提供一种具有高速串行协议触发和解码功能的数字存储示波器,以保证解码的实时性,提高触发点定位的准确性。为实现上述发明目的,本发明一种具有高速串行协议触发和解码功能的数字存储示波器,其特征在于,还包括采集fpga阵列和处理fpga;采集fpga阵列由多块结构相同的采集fpga组成,每块采集fpga中又包括电平比较模块和oserdes模块;用户发送协议命令给工控机,工控机根据用户设置及协议命令本身特点,生成串行协议控制字,用于配置数字存储示波器中各模块工作状态,然后将高速串行协议信号输入至配置完成的模拟通道,在每个模拟通道内通过两路adc对高速串行协议信号进行采样,将其采样值输入至对应的采集fpga;电平比较模块将采样值与工控机配置的协议电平进行比较,如果采样值大于协议电平,则输出1,否则输出0,从而产生由“0”、“1”组成的样点电平数据流;样点电平数据流通过oserdes模块转化为差分并行数据流送入处理fpga;处理fpga包括iserdes模块、协议主模块和触发模块;协议主模块又包括预处理模块、计时器、串行协议触发/解码模块、解码ram、解码标志锁存器和触发时刻存储器;其中,串行协议触发/解码模块又包括协议分析模块、协议解码模块和协议触发模块;iserdes模块将每一路差分并行数据流转换成并行数据流,根据工控机配置的模拟通道数,预处理模块将并行数据流按照模拟通道进行分组,在每一组并行数据流内按照采样点时间先后排序,得到多路的并行数据流,然后在每一路并行数据流中搜索并行数据流的边沿,以第一个边沿点为并行数据流最高位,输出以该点为起始的并行数据流,最后对得到的每一路并行数据流进行抽点,生成协议数据流并发送给协议分析模块;协议分析模块以协议数据流和协议类型为基础,根据不同的协议类型在协议数据流中搜索能代表协议帧传输开始的头标志,以头标志为起点,分解协议数据流中代表不同含义的数据段,通过状态机状态描述这些数据段的类型,并保存这些数据段对应的数据值和数据段对应的计时器时刻值;协议触发模块读取协议分析模块输出的状态机状态和数据值,判断状态机状态和数据值是否满足预设的触发条件,如果满足触发条件,则输出协议触发信号,协议触发信号经过触发模块处理后,作为控制示波器波形采集的触发信号,以此控制全局采集,实现示波器波形显示和解码数据显示能够一一对应;协议解码模块读取协议分析模块输出的状态机状态和数据值、计时器时刻值,将其组织成协议解码数据包,存入至解码ram;同时,在触发信号到来时刻记录下计时器时刻值,并存储在触发时刻存储器,并将该时刻的解码ram的写地址a、解码ram的写结束时地址b、存储满标志c统一存储在解码标志锁存器中。本发明的发明目的是这样实现的:本发明一种具有高速串行协议触发和解码功能的数字存储示波器,由多片adc对高速串行信号采样,然后由相对应的采集fpga对采样信号进行降速和预处理,最后送入1片处理fpga中完成高速串行协议的触发/解码功能;这样一方面能够满足高速串行信号协议触发/解码的实时性和提高触发点定位准确性的功能要求,还能够支持包括rs232、pcie、d-phy、以太网等多种协议的触发和解码;另一方面整个方案涉及的硬件电路结构与数字示波器中广泛使用的时间交替采样技术的结构一致,节省了硬件成本。附图说明图1是本发明具有高速串行协议触发和解码功能的数字示波器一种具体实施方式的原理图;图2是预处理模块中数据流抽取工作流程图;图3是多路并行数据比较示意图;图4是pci-e协议触发/解码模块详细结构图。具体实施方式下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。实施例图1是本发明具有高速串行协议触发和解码功能的数字示波器一种具体实施方式的原理图。在本实施例中,如图1所示,本发明一种具有高速串行协议触发和解码功能的数字存储示波器,包括现有技术的信号调理通道、模数转换器、控制模块、波形数据存储器、微处理器、显示屏,用于串行协议信号波形的采集、存储、显示,这部分与普通数字示波器相同,在此不再赘述。为了硬件实现高速串行协议触发和解码功能,在本发明中还设计了采集fpga阵列和处理fpga。如图1所示,为简便起见,图1中只画出了单个串行协议分析/解码模块的情形。多个协议时,每个协议的模块都与串行协议分析/解码模块示例类似,通过协议主模块中的多路选择器选择输出最终结果到解码ram,解码标志锁存器,触发时刻锁存器和协议触发信号。在本实施例中,采集fpga阵列由4块结构相同的采集fpga组成,每块采集fpga中又包括电平比较模块和oserdes模块;用户发送协议命令给工控机,工控机根据用户设置及协议命令本身特点,生成串行协议控制字,用于配置数字存储示波器中各模块工作状态,然后将高速串行协议信号输入至配置完成的模拟通道1~4,在每个模拟通道内通过两路5gsa/s的8bitadc对高速串行协议信号进行采样,将其采样值输入至对应的采集fpga;电平比较模块将采样值与工控机配置的协议电平进行比较,如果采样值大于协议电平,则输出1,否则输出0,从而产生由“0”、“1”组成的样点电平数据流;样点电平数据流通过oserdes模块转化为4路1.25gsa/s的1bit差分并行数据流送入处理fpga;处理fpga包括iserdes模块、协议主模块和触发模块;协议主模块又包括预处理模块、计时器、串行协议触发/解码模块、解码ram、解码标志锁存器和触发时刻存储器;其中,串行协议触发/解码模块又包括协议分析模块、协议解码模块和协议触发模块;iserdes模块将4通道总共32路1.25gsa/s的1bit差分并行数据流转换成128路312.5msa/s的1bit并行数据流,根据工控机配置的模拟通道数,预处理模块将128路312.5msa/s的1bit并行数据流按通道分成4组,在每一组并行数据流内按照采样点时间先后排序,得到4路32bit并行数据流,然后在每一路并行数据流中搜索并行数据流的边沿,以第一个边沿点为并行数据流最高位,输出以该点为起始的32bit并行数据流,最后对得到的每一路并行数据流进行抽点,生成协议数据流并发送给协议分析模块;在本实施例中,如图2所示,对每一路并行数据流进行抽点从而生成协议数据流的方法为:(2.1)、设x[n]为输入的并行数据流,y[n]为输出的协议数据流;fs=10gsa/s为系统采样率;fin为输入串行信号速率;c,m,n为计算使用的内部标志寄存器,初始值为0;v为本次输出的协议数据流中有效数据位数,n=32为x[n]的位数,n=0,1,…,n-1;运算符表示向下取整,表示向上取整;(2.2)、由fs和fin计算抽取比例a,a=fs/fin;(2.3)、读取输入数据流x[n],若a≥n,则进入步骤(2.4),否则跳转至步骤(2.5);(2.4)、当y[0]~y[30]=0时,若则m=m+1,v=0,y[31]保持原值;否则,再跳转至步骤(2.7);(2.5)、若时,则值为0,v=n,再跳转至步骤(2.7);否则,再进入步骤(2.6);(2.6)、令n=n+1,循环执行步骤(2.5)~(2.6)直到n=31时,将n复位0,v=31,再进入步骤(2.7);(2.7)、循环执行步骤(2.3)~(2.6),生成协议数据流,直到协议触发/解码结束。协议分析模块以协议数据流和协议类型为基础,根据不同的协议类型在协议数据流中搜索能代表协议帧传输开始的头标志,以头标志为起点,分解协议数据流中代表不同含义的数据段,通过状态机状态描述这些数据段的类型,并保存这些数据段对应的数据值和数据段对应的计时器时刻值;在本实施例中,协议类型包括高速串行协议信号和低速串行协议信号,而高速串行协议信号指上述处理中a<32的串行协议信号,低速串行协议信号指上述处理中a≥32的串行协议信号;其中,协议分析模块对高速串行协议信号的处理过程为:(3.1)、设高速串行协议信号的分析单位为kbit,n为的位数,n=0,1,…,n-1;v为高速串行协议信号中有效数据位数;初始化移位寄存器,该寄存器长度为p·vmin,系数p为满足p·vmin≥vmax+k且p·vmin≥vmax+l的最小值,其中,vmax,vmin为本次协议触发/解码中v的最大/小值,l为串行帧头标志的长度;移位寄存器低位存入的高v位有效数据,并移出移位寄存器中高位的v位数据;(3.2)、用状态机的各个状态表示不同的协议帧,初始化状态机的起始状态为空闲状态;(3.3)、由于移位寄存器数据是以并行的方式进入,而且不能保证满足串行帧头标志的第一个点一定出现在某一时刻移位寄存器的最高位,需要进行如图3所示的多路并行数据比较。模块需要每时钟完成vmax次比较判断,判断式为:b[p·vmin-1:p·vmin-l]=h[l-1:0]b[p·vmin-2:p·vmin-l-1]=h[l-1:0]......b[l-1:0]=h[l-1:0]当l和vmax较大时,直接实现需要消耗大量fpga资源,还可能引起fpga时序错误。因此,在本实施例中采用并行分段比较的方式在移位寄存器中搜索串行帧头标志,并把带有帧头标志的数据段设置为帧头,状态机进入帧头状态;(3.4)、记录该数据段的数据值和进入该状态时计时器时刻值,并与该数据段对应的状态机状态一起输出;(3.5)、本数据段结束后状态机进入下一数据段状态;(3.6)、循环执行步骤(3.4)~(3.5),若当前状态为空闲时,跳转到步骤(3.3),直到协议触发/解码结束;协议分析模块对低速串行协议信号的处理过程为:3.1)、搜索低速串行协议信号中的边沿,由边沿开始计时,每当时间达到1个串行信号位时输出一个信号位分隔脉冲,达到半个串行信号位时输出一个信号位采样脉冲;3.2)、以两个分隔脉冲间为一个串行信号位,以串行信号位在信号位采样脉冲时的值为串行信号位的值;3.3)、采用串行比较的方式在串行信号位中搜索串行帧头标志,并把带有帧头标志的数据段设置为帧头,状态机进入帧头状态;3.4)、记录该数据段的数据值和进入该状态时计时器时刻值,并与该数据段对应的状态机状态一起输出;3.5)、本数据段结束后状态机进入下一数据段状态;3.6)、循环执行步骤3.4)~3.5),若当前状态为空闲时,跳转到步骤3.3),直到协议触发/解码结束。协议触发模块读取协议分析模块输出的状态机状态和数据值,判断状态机状态和数据值是否满足预设的触发条件,如果满足触发条件,则输出协议触发信号,协议触发信号经过触发模块处理后,作为控制示波器波形采集的触发信号,以此控制全局采集,实现示波器波形显示和解码数据显示能够一一对应;为了保证示波器波形显示和解码数据显示能够一一对应,除了协议解码数据的时刻外,还需要记录与波形显示有已知关系的参考时刻和几个特殊的地址,分别为:协议解码模块读取协议分析模块输出的状态机状态和数据值、计时器时刻值,将其组织成协议解码数据包,存入至解码ram;同时,在触发信号到来时刻记录下计时器时刻值,并存储在触发时刻存储器,并将该时刻的解码ram的写地址a、解码ram的写结束时地址b、存储满标志c统一存储在解码标志锁存器中。实例下面以pci-express1.0的协议触发/解码功能实现为例,详细说明本发明的具体实施。pcie一种高速串行计算机扩展总线标准,属于高速串行点对点双通道高带宽传输,所连接的设备独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(qos)等功能。它的主要优势就是数据传输速率高,本实施例中的pci-express1.0信号速率为2.5gb/s。表1是tlp帧格式;stpidtlpheaderdatepayloadecrclcrcend1byte2bytes3/4dw0~1024dw1dw1dw1byte表1pci-e的tlp帧遵循表1所示的帧格式,物理层传输中,将对tlp帧的除stp和end外的部分进行数据加扰,加扰完成后,未加扰stp和end和已加扰的其余部分进行8b/10b编码。stp编码为k27.7,end为k29.7,其余部分为编码为dxx.x。本实施例所示的数字示波器结构同图1,模拟通道1使用差分探头接入pci-e1.0差分信号,用户设置完成后,示波器开始进行pci-e1.0串行协议触发和解码。pci-e协议触发/解码模块详细结构如图4所示,除了3个主要子模块外,还包含数据解扰,8b/10b解码,crc计算三个附加子模块。采集fpga1a和1b中的电平比较模块的比较电平设为180mv。比较完成后由oserdes分别处理fpga的iserdes接收到各通道的32路差分并行数据流,转为128路312.5ms/s并行数据。预处理模块从128路数据中选出模拟通道1对应的32路并行数据,按照高采样点时间先后排序,搜索并行数据中的边沿,移位调整数据,使最高位为边沿后第一个点。对32bit并行数据采样率按4抽1,抽取第30,26,22,18,14,10,6,2位,组成8bit协议数据流。协议分析模块的输入整理子模块将8bit协议数据流存入一个40bit移位寄存器a中。以5个系统时钟为周期,前4时钟每次读取10bit数据,打开数据有效标志,后1时钟关闭数据有效标志。数据有效标志打开时,进行后续协议触发/解码的处理工作,数据有效标志关闭时,后续处理工作暂停。头标志搜索子模块在a中搜索10bit数据值k27.7(stp),搜索完成后,以stp为最高10bit,将数据重新存入40bit移位寄存器b。8b/10b解码子模块将输入的10b编码字符解码为8b字符,并输出d/k标志位,区分10b码中的d字符和k字符。数据解扰子模块将需要解扰的8b字符(d字符)进行解扰运算。状态机子模块中,由idle状态起始,收到k27.7的8b字符后进入stp状态,锁存状态值stp,数据值0,锁存计时器当前时刻值t。当下一个8b字符(id的高8位)进入时,状态机进入id状态,输出锁存的状态/数据/时刻值,并锁存当前的状态值id,数据值和时刻值。同样方法,根据输入8b字符和表1的帧格式切换相应状态,输出状态/数据/时刻值。若为同一状态的多个8b字符,一次输出数据最多32bit,记录时刻为其中高8bit到来时刻值。crc计算模块计算tlp帧中需要校验的部分校验值,结果与帧中的crc字段比较,不同时输出crc错标志。pci-e协议触发模块根据数据分段子模块状态输出的状态值和数据值,判断是否满足用户的触发条件,满足时输出pci-e触发信号。pci-e触发信号经协议触发选择器,从多个协议的触发信号中选择输出。pci-e协议解码模块将状态/数据/时刻值组织成解码数据包,计算解码ram写地址,打开解码写使能,通过解码输出选择器,将数据包写入解码ram。解码标志存入解码标志锁存器。触发信号到来时,计时器记下触发时刻,存入触发时刻锁存器。当波形显示结束后,工控机读取解码ram和两锁存器的数据,计算并显示解码数据。尽管上面对本发明说明性的具体实施方式进行了描述,以便于本
技术领域
的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本
技术领域
的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1