一种基于数字荧光示波器的FlexRay总线协议分析系统及方法

文档序号:10597030阅读:585来源:国知局
一种基于数字荧光示波器的FlexRay总线协议分析系统及方法
【专利摘要】本发明提出了一种基于数字荧光示波器的FlexRay总线协议分析系统,包括:用户设定模块、PCIe模块、参数寄存器模块、解码触发模块、解码存储模块、采集模块和显示模块。本发明的系统及方法,由于硬件解码速度远快于软件解码,当采用硬件触发软件解码时其实硬件也在做解码工作,这样可以在硬件解码判断触发的方案的基础上把解码信息以标签的方式储存起来,把触发位置信息也储存起来,上层应用软件直接读取存储的标签信息和触发位置信息用来显示,省去了软件解码时间,提高了总线分析速度,同时软件也省去了再做一次解码的人力开销。
【专利说明】
一种基于数字荧光示波器的FI exRay总线协议分析系统及方法
技术领域
[0001]本发明涉及测试技术领域,特别涉及一种基于数字荧光示波器的FlexRay总线协议分析系统,还涉及一种基于数字荧光示波器的FlexRay总线协议分析方法。
【背景技术】
[0002]FlexRay总线是由领先汽车公司和供应商组成的集团(FlexRay联盟)提出的一种比较新的汽车总线。FlexRay适用于线控操作(X-by-Wire),而且相较于现有的汽车串行标准(如CAN和LIN)具有更灵活的数据通信方式、更快的传输速率、更高的安全性和更完善的容错机制。FlexRay是在屏蔽双绞线或非屏蔽双绞线上运行的一种速率高达lOMb/s的差分总线,采用时间触发协议,通过同时包含静态帧和动态帧的通信周期,实现了同步和异步协议的双重优势。FlexRay帧由三部分组成:包头段、净荷段和包尾段,帧结构如图1所示。
[0003]FlexRay帧包括静态帧和动态帧两种,静态帧和动态帧的解码/编码序列如图2所示。TSS是传输起始序列,为一段时间的低电平。FSS是帧起始序列,为一段时间的高电平,在TSS之后。BSS是字节起始序列,为一段时间的高电平和一段时间的低电平,提供定时信息。FES是帧结束序列,为一段低电平和一段高电平,位于有效数据位之后。如果是动态帧,在FES后还有DTS序列,DTS是动态尾部序列,防止过早判断总线空闲。
[0004]当示波器分析串行总线信号时,采用常用触发方式来捕捉用户关心的帧信息时变得比较困难,为了更好的分析串行总线上的波形,需要专门的串行总线解码触发分析功能,该功能能使用户在关心的总线帧结构的特定部位触发,能以帧结构的形式直观显示总线上的波形信息,能很好地方便用户的使用。
[0005]串行总线协议分析方法一般采用硬件触发、软件解码显示的方式。当采集启动后,预触发信号产生并送给硬件触发模块,硬件解码模块收到预触发信号后对接收到的采集系统的采集数据进行分析,提取总线数据的帧信息,通过将提取的帧信息与用户输入的触发条件比较判断得出触发信号,最后将触发信号送到采集系统。软件解码模块接收采集系统数字量化后的采集数据,根据用户设定的触发电平参数得到采集数据传输的比特信息,然后结合特定总线协议得到总线传输的信息。最后,将得到的总线传输信息交由上层应用软件显示。
[0006]FlexRay总线的信息传送是以帧序列的形式传送,采用测量仪器的传统触发方式(如边沿触发)不能有效地捕获FlexRay总线上的特定帧信息,并且触发采集后的数据是以模拟波形的方式显示在屏幕上,用户不方便解读FlexRay总线信息。因此,有必要配备一种专门的FlexRay总线解码与触发方式。
[0007]如果采用硬件触发软件解码的方案,只有在软件解码完成后才能开始下一次采集过程,存在一定的死区时间,该时间由不同的软件解码平台决定。

【发明内容】

[0008]为解决上述现有技术中的不足,本发明提出一种基于数字荧光示波器的FlexRay总线协议分析系统及方法。
[0009]本发明的技术方案是这样实现的:
[0010]一种基于数字荧光示波器的FlexRay总线协议分析系统,包括:用户设定模块、PCI e模块、参数寄存器模块、解码触发模块、解码存储模块、采集模块和显示模块;
[0011]采集模块首先对FlexRay总线上的模拟信号进行采样,然后将采样值与经过数字量化后的用户设定的触发电平的数字值进行比较得到布尔值,最后将得到的布尔值送到解码模块;
[0012]解码模块根据用户设定的位速率生成合适的采样时钟和计数器计数时钟,接收到采集启动信号后启动计数器计数,并根据采样时钟对采集模块送来的布尔值进行采样,解码模块根据采样值得到总线的帧信息,然后生成对应的标签并存储,同时更新标签个数寄存器值和标签存储循环标志,然后解码模块将帧信息送往触发模块;
[0013]触发模块接收到帧信息后将其与用户设定的触发条件比较,如满足触发条件则将此时的计数器值存储到特定寄存器中并发送触发信号给采集模块;
[0014]采集模块收到触发信号后继续采集一段时间后结束采集并发送采集结束信号给解码模块;
[0015]解码模块接收到采集结束信号后停止解码,示波器上层应用程序读取标签信息、标签长度信息、触发位置信息、标签存储循环信息,然后做显示、分析处理。
[0016]可选地,所述解码与触发模块包括:抽点模块、解码模块、触发模块、触发产生模块;
[0017]抽点模块根据接收用户设定的位速率参数N倍频生成采样时钟,接收用户信号类型判断对几路数据进行抽点;计数器时钟接收位速率信号生成总线序列时间计数器时钟,通过该计数器值可以计算得到在总线各个部分在屏幕上的位置;
[0018]解码模块接收用户设定信号类型判断总线电平个数以及进行相位变换,接收用户设定的通道类型参数判定校验的计算方法,接收总线开关信号判定解码与触发的开始与停止,接收采集模块的采集启动和结束信号判定解码活动的等待与继续运行;
[0019]触发模块接收触发条件参数判断触发条件,接收采集模块的预触发信号判定触发信号产生的开始;
[0020]触发产生模块在接收到预触发信号后产生触发信号传给采集模块。
[0021 ]可选地,所述触发模块接收的用户设定的FI exRay总线触发方式包括:帧开头、指示符位、标识符、净荷长度、循环数、包头CRC、包头字段组合、数据、错误、帧尾。
[0022]可选地,所述触发模块针对帧不同字段都有相应的触发比较器,用于产生触发逻辑,解码模块将解码的帧信息和计算的校验数据传输给触发模块,触发模块根据不同的触发类型调用帧头比较器、包头字段比较器、数据比较器、标识符比较器、帧尾比较器、错误比较器、帧尾校验比较器中的几个或者一个比较器判断触发条件传给触发信号产生模块。
[0023]本发明还提供了一种基于数字荧光示波器的FlexRay总线协议分析方法,包括以下步骤:
[0024]步骤(I)、用户设定FlexRay总线电平阈值参数存储于参数寄存器中,采集模块读取阈值寄存器值,将数字量化后的值与阈值参数比较产生0/1序列信号送给抽点模块,如果总线模拟信号为三电平,则设置高低两个阈值参数,采集模块产生两个0/1序列给抽点模块;
[0025]步骤(2)、用户设定FlexRay总线位速率参数存储于参数寄存器中,抽点模块读取寄存器值生成采样时钟,采样时钟为位速率N倍;
[0026]步骤(3)、用户设定FlexRay总线信号类型存储于参数寄存器中,抽点模块读取寄存器值判断为BM、BP则需要对虚拟通道中经过两个比较器比较的两路0/1序列进行抽点,如果为Tx/Rx则只需对一路进行抽点。
[0027]步骤(4)、用户设定FlexRay总线位速率参数存储于参数寄存器中,计数器时钟模块采用采样时钟相同的倍频数生成计数时钟;
[0028]步骤(5)、用户设定FlexRay总线通道类型,校验码计算模块根据不同的通道类型计算校验码;
[0029]步骤(6)、用户设定FlexRay总线信号类型存储于参数寄存器中,相位转换模块读取寄存器值判断是否进行相位变换,如果为BP则需要进行相位反转;
[0030]步骤(7)、解码模块中的帧起始/结束检测模块读取信号类型参数,如果为BM或者BP则需要读取两路数据,相同采样时刻值不同的为总线空闲,如果信号类型为Tx/Rx,则只需读取一路数据;
[0031 ]步骤(8)、比特提取模块用每个位的中间采样值代表该位的值,动态帧的DTS序列由于高低电平不是由固定位时间组成,不予处理;采样值判定为高电平时,比特信息为“I”,采样值判定为低电平时,比特信息为“O”,比特提取模块将比特信息和采样时钟的N分频一并发送给编码冗余模块;
[0032]步骤(9)、帧起始到帧尾序列之间的帧序列都有一个字节起始序列,解码模块中的编码冗余模块对位个数计数剔除字节起始序列;
[0033]步骤(10)、解码模块的校验码计算模块接收比特位信息和编码冗余模块的采样时钟的N分频时钟,然后采用FlexRay总线协议规定的FlexRay总线包头CRC和包尾CRC的检验方法计算校验码并送给触发模块,供校验码错误触发比较使用;
[0034]步骤(11)、解码模块中的帧字段提取模块接收比特位信息和编码冗余模块的采样时钟的N分频时钟,对帧起始序列到帧结束之间的信息进行帧信息提取,并在帧结束后发送帧结束信号给帧起始/结束检测序列,所述帧字段提取模块解码出帧结构的不同字段信息;
[0035]步骤(12)、计数器模块接收帧起始检测模块的TSS开始信号和TSS结束信号锁定计数器当前计数值作为触发位置值,发送给标签生成模块,标签生成模块收到帧起始检测模块的TSS开始信号和TSS结束信号后分别生成TSS开始标签和TSS结束标签,计数器模块还接收字段提取模块发送的各字段标签检测成功信号锁定相应的计数器值发送给标签生成模块,标签生成模块接收到帧字段提取模块发送的标签类信息类型和标签信息信号后将计数器值、标签信息和标签信息类型整合成标签送存储;另外,计数器模块接收触发信号锁定当前计数器值作为触发位置信息发送给存储模块存储,标签生成模块的标签个数计数器每生成一个标签加I,当检测当前标签个数超过最大存储个数后清零并且循环标识寄存器置I,存储模块读取该寄存器值来决定标签存放位置,实现标签循环存储;
[0036]步骤(13)、触发模块根据接收用户设定的触发方式参数,根据触发参数调用不同的比较器组合将解码模块生成的各帧信息与用户设定的触发条件比较,如果符合条件则产生触发产生逻辑给触发信号生成模块产生触发信号;
[0037]步骤(14)、采集模块收到触发生成模块发送的触发信号后,继续采集一段时间后结束采集,一个采集周期完成。
[0038]可选地,所述步骤(7)中帧起始检测的工作流程如下:
[0039](a)对采样值进行判断,当连续出现NX 11个判断为总线空闲的采样值时,判断为总线空闲;
[0040](b)然后等待采样值为低电平的值,当出现采样值为低电平值时判断为传输起始序列TSS开始,发送TSS开始信号给计数器模块和标签生成模块,同时开始计数低电平采样值个数;
[0041](c)如果大于等于NX 3并且小于等于NX 15个低电平采样值出现后出现高电平采样值,则判断为TSS结束,发送TSS结束信号给计数器模块和标签生成模块;
[0042](d)如果出现小于NX 3则重新回到(a);
[0043](e)如果出现大于NX 15,暂时不予处理;
[0044]当帧起始/结束检测模块收到帧状态字提取模块发送的帧结束信号后,对采样值进行检测;如果出现低电平采样值,则判定为动态帧,存在DTS序列,继续检测采样值;当出现高电平时为DTS高电平段,计数N个采样值后为DTS结束位置;当判定DTS结束后,该模块重新进行帧起始检测。
[0045]可选地,所述步骤(9)具体包括:编码冗余模块在帧起始序列后检测一个“I”值后面一个“O”值,如果为一个“I”值后面一个“O”值则判定为字节起始序列,从而剔除这两个比特信息,不发送给帧字段提取模块和校验计算模块,然后每隔8个比特信息检测一个“I”值和一个“O”值,如果是则剔除;如果首先检测到一个“O”然后是一个“I”,则为FES,不予处理,发送给帧字段提取序列,并且从此后面的采样值不予处理,直接送给下面模块,直到收到比特提取模块的帧起始信号。
[0046]可选地,所述帧字段提取模块按以下10个状态有序解码出帧结构的不同字段信息:
[0047]状态1:空闲状态,上电复位后,状态机即处于该状态,在该状态下,当收到编码冗余模块传送给的帧起始信号,则进入状态2,否则状态不跳转;
[0048]状态2:检测比特信息为“I”值,判定为帧起始,进入状态3,否则状态不跳转;
[0049]状态3:指示符位状态,指示符位包括预留位、净荷前置码指示符、空帧指示符、同步帧指示符、启动帧指示符共五位,依次读取输入的5位比特信息后,进入状态4,否则状态不跳转;
[0050]状态4:帧号ID检测状态,帧号ID由11组成,依次读取11位输入的帧比特信息,输出帧号ID数据后,则进入状态6,否则状态不跳转;
[0051 ]状态5:净荷长度检测状态,依次读取7位输入的帧比特信息输入移位寄存器进行串/并转换,输出净荷长度数据并存储后,进入状态6,否则状态不跳转;
[0052]状态6:包头CRC检测状态,包头CRC由11位组成,依次读取输入的11位帧比特信息组成并输出CRC信息,进入状态7,否则状态不跳转;
[0053]状态7:循环数量检测状态,循环数量长度为6位,依次读取输入的6位帧比特信息组成循环数量,进入状态8,否则状态不跳转;
[0054]状态8:数据字段检测状态,依次读取帧比特输入移位寄存器进行串/并转换,同时数据字段计数器开始计数,当计数值达到净荷长度存储器中的字节数X 8位数据后,移位寄存器输出相应的数据字节信息,进入状态9,否则状态不跳转;
[0055]状态9:包尾CRC检测状态,包尾CRC由三个字节组成,依次读取帧比特输入移位寄存器进行串/并转换,同时包尾CRC计数器开始计数,当计数值达到3 X 8位数据后,移位寄存器输出相应的包尾CRC信息,进入状态10,否则状态不跳转;
[0056]状态10:帧结束序列检测状态,依次读取两位帧比特信息,如果前一个比特位为“O”值,后一个比特位为“I”值,则判定为FES,则跳转到状态I,否则状态不进行跳转。
[0057]可选地,所述步骤(13)中,用户设定的触发方式及比较方法如下:
[0058](131)帧头触发:帧头比较器检测到帧头字段产生触发;
[0059](132)指示符位触发:指示符位比较器将用户设定的4位指示符位数据与解码得到的指示符位信息比较产生触发;
[0060](133)帧号ID触发:帧号ID比较器将用户设定的11位帧号ID数据与解码得到的ID信息比较产生触发;
[0061](134)循环数触发:循环数比较器将用户设定的循环数与解码得到的循环数比较产生触发;
[0062](135)包头字段触发:指示符位比较器、帧号ID比较器、净荷长度比较器、包头CRC比较器和循环数比较器各自将用户设定的参数与解码得到的帧信息比较,产生触发信号与运算后产生触发;
[0063](136)数据触发:数据触发比较器读取用户设定字节偏置值,数据比较器将解码得到的从此数值后面的数据字节与用户设定的数据字比较产生触发;
[0064](137)ID和数据触发:ID触发比较器帧号ID比较器将用户设定的11位帧号ID数据与解码得到的ID信息比较产生触发,数据触发比较器读取用户设定字节偏置值,数据比较器将解码得到的从此数值后面的数据字节与用户设定的数据字比较产生触发,然后将两者触发信号与运算得到触发;
[0065](138)帧尾触发:帧尾比较器检测解码信息中FES信息和有无DTS信息,判断产生触发;
[0066](139)错误触发:错误触发包括包头CRC错误、包尾CRC错误、空帧错误、同步帧错误和启动帧错误,包头CRC比较器将校验码计算模块计算值与解码模块得到的包头CRC帧信息比较,如果不相等产生错误触发,包尾CRC比较器将校验码计算模块计算值与解码模块得到的包尾CRC帧信息比较,如果不相等产生错误触发,空帧错误触发信号由指示符位比较器和帧尾比较器得到,同步帧和启动帧由指示符位判断解码得到的指示符位信息得到。
[0067]本发明的有益效果是:
[0068](I)在带有FlexRay总线信号解码与触发的测量仪器中,用户除了能够用传统触发方式触发采集FlexRay总线信号外,还可以采用专门为FlexRay总线定制的解码触发方式来分析FlexRay解码触发显示总线信息,采用定制的FlexRay总线解码触发方式,能在FlexRay总线的帧头、指示符位、标识符、循环数量、数据、CRC和帧尾等帧序列的任意部位触发,还可以以包头字段的任意组合、标识符与数据的组合、不同错误类型作为触发条件触发,使得捕获感兴趣的事件变得简单;
[0069](2)总线显示不仅有模拟波形还可以以帧格式和帧序列两种方式显示总线信息,使用户读取直观易懂;
[0070](3)由于硬件解码速度远快于软件解码,当采用硬件触发软件解码时其实也在做解码工作,这样可以在硬件解码判断触发的方案的基础上把解码信息以标签的方式储存起来,把触发位置信息也储存起来,上层应用软件直接读取存储的标签信息和触发位置信息用来显示,省去了软件解码时间,提高了总线分析速度,同时软件也省去了再做一次解码的人力开销。
【附图说明】
[0071]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0072]图1为FlexRay帧格式;
[0073]图2为FlexRay帧序列;
[0074]图3为本发明的FlexRay总线的硬件解码触发、软件显示的方案整体框图;
[0075]图4本发明的FlexRay总线定义菜单示意图;
[0076]图5为本发明的FlexRay总线触发菜单结构;
[0077]图6本发明的总线解码与触发模块结构框图;
[0078]图7为本发明的FlexRay解码标签格式示意图。
【具体实施方式】
[0079]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0080]本发明提出了一种基于数字荧光示波器的FlexRay总线协议分析系统及方法,该技术方案中硬件解码并触发,软件只负责显示。
[0081]基于数字荧光示波器的FlexRay总线协议分析系统的整体框图如图3所示,包括用户设定模块、PCIe模块、参数寄存器模块、解码触发模块、解码存储模块、采集模块和显示模块。
[0082]采集模块首先对FlexRay总线上的模拟信号进行采样,然后将采样值与经过数字量化后的用户设定的触发电平的数字值进行比较得到布尔值,最后将得到的布尔值送到解码模块;解码模块根据用户设定的位速率生成合适的采样时钟和计数器计数时钟,接收到采集启动信号后启动计数器计数(用来标定时间信息),并根据采样时钟对采集模块送来的布尔值进行采样,解码模块根据采样值得到总线的帧信息,然后生成对应的标签(此标签包括帧信息值和一个计数值,该计数值用来标定与触发位置的相对位置)并存储同时更新标签个数寄存器值和标签存储循环标志,然后解码模块将帧信息送往触发模块;触发模块接收到帧信息后将其与用户设定的触发条件比较,如满足触发条件则将此时的计数器值存储到特定寄存器中并发送触发信号给采集模块;采集模块收到触发信号后继续采集一段时间后结束采集并发送采集结束信号给解码模块;解码模块接收到采集结束信号后停止解码,示波器上层应用程序读取标签信息、标签长度信息、触发位置信息、标签存储循环信息,然后做显示、分析等处理。
[0083]用户设定模块包括FlexRay总线定义设定、触发类型和参数设定和运行控制设定。
[0084]FlexRay总线定义菜单结构如图4所示,用户不仅可以通过总线定义菜单设置FlexRay总线解码触发开或者关、输入信号的物理特性(通道类型、极性)、阈值、位速率等解码触发参数,也可以用来设置显示属性。
[0085]FlexRay总线触发菜单结构如图5所示,用户可以通过触发设置菜单设置FlexRay总线的触发类型以及数据、标识符和错误触发的特性。
[0086]参数寄存器模块用来存储FlexRay总线的总线定义参数、触发参数和运行控制参数,其中总线定义参数包括信号输入通道、信号的通道类型、信号极性、位速率等;触发参数包括触发类型、数据触发参数、标识符触发参数、触发比较条件参数等;运行控制参数包括运行、停止、单次、总线开关等参数。
[0087]采集模块在总线解码触发方面的工作是接收触发电平参数、对通道板输出的模拟波形进行量化,将量化值与触发电平参数值比较得到0/1序列值输出给解码触发模块。
[0088]总线解码与触发模块是FIexRay总线协议分析功能的核心,如图6所示,该模块包括:抽点模块、解码模块、触发模块、触发产生模块等几个小部分,这几个小部分又有各自的组成部分。抽点模块根据接收用户设定的位速率参数N倍频(N为8,16,32,64……)生成采样时钟,接收用户信号类型判断对几路数据进行抽点。计数器时钟接收位速率信号生成总线序列时间计数器时钟,通过该计数器值可以计算得到在总线各个部分在屏幕上的位置。解码模块接收用户设定信号类型判断总线电平个数以及进行相位变换,该模块接收用户设定的通道类型参数判定校验的计算方法,该模块接收总线开关信号判定解码与触发的开始与停止,该模块接收采集模块的采集启动和结束信号判定解码活动的等待与继续运行。触发模块接收触发条件参数判断触发条件。触发生成模块接收采集模块的预触发信号判定触发信号产生的开始。
[0089]触发模块接收的用户设定的FlexRay总线触发方式包括:帧开头、指示符位、标识符(ID)、净荷长度、循环数、包头CRC、包头字段组合、数据、错误、帧尾。其中,错误触发包括包头CRC错误、包尾CRC错误、空帧错误、同步帧错误、启动帧错误等,帧尾触发包括静态帧触发、动态帧触发、所有帧触发等。触发模块针对帧不同字段都有相应的触发比较器,用于产生触发逻辑,解码模块将解码的帧信息和计算的校验数据传输给触发模块,触发模块根据不同的触发类型调用帧头比较器、包头字段比较器、数据比较器、标识符比较器、帧尾比较器、错误比较器、帧尾校验比较器等中的几个或者一个比较器判断触发条件传给触发信号产生模块。触发生成模块在接收到预触发信号后产生触发信号传给采集模块。
[0090]解码存储模块用来存储解码标签、触发位置、循环标识。解码标签由帧字段数据和位置信息组成。触发位置是锁存当前标签的位置信息存储得到。如果解码标签数量超过最大存储数量时,标签从开始位置覆盖时间比较久的标签循环存储,循环标识用来标识此种情况。FlexRay总线解码标签有32种,通过这些标签的组合可以容易地显示帧信息。FlexRay总线解码标签包括:空标签、TSS开始标签、TSS结束标签、帧开始标签、指示符位开始标签、正常帧标签、净荷帧标签、空帧标签、同步帧标签、启动帧标签、帧ID开始标签、帧ID中间字段标签、帧ID结束标签、净荷长度开始标签、净荷长度结束标签、包头CRC开始标签、包头CRC中间字段标签、包头CRC结束字段标签、循环数开始标签、循环数结束标签、数据字节开始标签、数据字节结束标签、包尾CRC开始标签、包尾CRC中间字段I标签、包尾CRC中间字段2标签、包尾CRC结束标签、FES标签、通道空闲间隔开始标签、通道空闲间隔结束标签、包头CRC校验错误标签、包尾CRC校验错误标签等。解码标签用8字节存储,高32位为位置信息、低32存储标签类型、帧信息类型和帧数据信息,标签格式如图7。
[0091]本发明的基于数字荧光示波器的FlexRay总线协议分析系统不只适用于FlexRay总线协议分析,也适用于其它总线协议分析,如CAN、LIN、MIL-STD-1553等。
[0092]下面对本发明的基于数字荧光示波器的FlexRay总线协议分析方法进行说明:
[0093](I)、用户设定FlexRay总线电平阈值参数存储于参数寄存器中,采集模块读取阈值寄存器值,将数字量化后的值与阈值参数比较产生0/1序列信号送给抽点模块,如果总线模拟信号为三电平,则设置高低两个阈值参数,采集模块产生两个0/1序列给抽点模块。
[0094](2)、用户设定FlexRay总线位速率参数存储于参数寄存器中,抽点模块读取寄存器值生成采样时钟,采样时钟可以为位速率N倍,(N为8,16,32……)。
[0095](3)、用户设定FlexRay总线信号类型存储于参数寄存器中,抽点模块读取寄存器值判断为BM、BP则需要对虚拟通道中经过两个比较器比较的两路0/1序列进行抽点,如果为Tx/Rx则只需对一路进行抽点。
[0096](4)、用户设定FlexRay总线位速率参数存储于参数寄存器中,计数器时钟模块采用采样时钟相同的倍频数生成计数时钟。
[0097](5)、用户设定FlexRay总线通道类型,校验码计算模块根据不同的通道类型计算校验码。
[0098](6)、用户设定FlexRay总线信号类型存储于参数寄存器中,相位转换模块读取寄存器值判断是否进行相位变换,如果为BP则需要进行相位反转。
[0099](7)、解码模块中的帧起始/结束检测模块读取信号类型参数如果为BM或者BP则需要读取两路数据,相同采样时刻值不同的为总线空闲,如果信号类型为Tx/Rx则只需读取一路数据,总线空闲的判断条件为采样值为高电平,帧起始检测的工作流程如下:(a)对采样值进行判断,当连续出现NX 11个判断为总线空闲的采样值时,判断为总线空闲;(b)然后等待采样值为低电平的值,当出现采样值为低电平值时可判断为传输起始序列(TSS)开始,发送TSS开始信号给计数器模块和标签生成模块,同时开始计数低电平采样值个数;(c)如果大于等于NX3并且小于等于NX 15个低电平采样值出现后出现高电平采样值,则判断为TSS结束,发送TSS结束信号给计数器模块和标签生成模块;(d)如果出现小于NX3则重新回到(a) ;(e)如果出现大于NX 15,暂时不予处理。当帧起始/结束检测模块收到帧状态字提取模块发送的帧结束信号后,对采样值进行检测如果出现低电平采样值,则判定为动态帧,存在DTS序列,继续检测采样值当出现高电平时为DTS高电平段,计数N个采样值后为DTS结束位置。当判定DTS结束后,该模块重新进行帧起始检测。
[0100](8)、因为帧起始到帧尾序列之间的帧序列都是由位组成,每个位都是固定时间的低电平或者高电平,因此比特提取模块可以用每个位的中间采样值代表该位的值,动态帧的DTS序列由于高低电平不是由固定位时间组成,不予处理。采样值判定为高电平时,比特信息为“I”,采样值判定为低电平时,比特信息为“O”,比特提取模块将比特信息和采样时钟的N分频一并发送给编码冗余模块。
[0101](9)、因为帧起始到帧尾序列之间的帧序列都有一个字节起始序列,解码模块中的编码冗余模块对位个数计数剔除字节起始序列,工作方法:编码冗余模块在帧起始序列后检测一个“I”值后面一个“O”值,如果为一个“I”值后面一个“O”值则判定为字节起始序列,从而剔除这两个比特信息,不发送给帧字段提取模块和校验计算模块,然后每隔8个比特信息检测一个“I”值和一个“O”值,如果是则剔除,如果首先检测到一个“O”然后是一个“I”则为FES,则不予处理,发送给帧字段提取序列,并且从此后面的采样值不予处理,直接送给下面模块,直到收到比特提取模块的帧起始信号。
[0102](10)、解码模块的校验码计算模块接收比特位信息和编码冗余模块的采样时钟的N分频时钟,然后采用FlexRay总线协议规定的FlexRay总线包头CRC和包尾CRC的检验方法计算校验码并送给触发模块,供校验码错误触发比较使用。
[0103](11)、解码模块中的帧字段提取模块接收比特位信息和编码冗余模块的采样时钟的N分频时钟,对帧起始序列到帧结束之间的信息进行帧信息提取,并在帧结束后发送帧结束信号给帧起始/结束检测序列,帧字段提取模块按以下10个状态有序解码出帧结构的不同字段信息:
[0104]状态1:空闲状态,上电复位后,状态机即处于该状态,在该状态下,当收到编码冗余模块传送给的帧起始信号(逻辑I),则进入状态2,否则状态不跳转;
[0105]状态2:检测比特信息为“I”值,判定为帧起始,进入状态3,否则状态不跳转;
[0106]状态3:指示符位状态,指示符位包括预留位、净荷前置码指示符、空帧指示符、同步帧指示符、启动帧指示符共五位,依次读取输入的5位比特信息后,进入状态4,否则状态不跳转;
[0107]状态4:帧号ID(标识符)检测状态,帧号ID由11组成,依次读取11位输入的帧比特信息,输出帧号ID数据后,则进入状态6,否则状态不跳转;
[0108]状态5:净荷长度检测状态,依次读取7位输入的帧比特信息输入移位寄存器进行串/并转换,输出净荷长度数据并存储后,进入状态6,否则状态不跳转;
[0109]状态6:包头CRC检测状态,包头CRC由11位组成,依次读取输入的11位帧比特信息组成并输出CRC信息,进入状态7,否则状态不跳转;
[0110]状态7:循环数量检测状态,循环数量长度为6位,依次读取输入的6位帧比特信息组成循环数量,进入状态8,否则状态不跳转;
[0111]状态8:数据字段检测状态,依次读取帧比特输入移位寄存器进行串/并转换,同时数据字段计数器开始计数,当计数值达到净荷长度存储器中的字节数X 8位数据后,移位寄存器输出相应的数据字节信息,进入状态:9,否则状态不跳转;
[0112]状态9:包尾CRC检测状态,包尾CRC由三个字节组成,依次读取帧比特输入移位寄存器进行串/并转换,同时包尾CRC计数器开始计数,当计数值达到3 X 8位数据后,移位寄存器输出相应的包尾CRC信息,进入状态:10,否则状态不跳转;
[0113]状态10:帧结束序列检测状态.依次读取两位帧比特信息,如果前一个比特位为“O”值,后一个比特位为“I”值,则判定为FES,则跳转到状态I,否则状态不进行跳转。
[0114](12)、计数器模块接收帧起始检测模块的TSS开始信号和TSS结束信号锁定计数器当前计数值作为触发位置值,发送给标签生成模块,标签生成模块收到帧起始检测模块的TSS开始信号和TSS结束信号后分别生成TSS开始标签和TSS结束标签,计数器模块还接收字段提取模块发送的各字段标签检测成功信号锁定相应的计数器值发送给标签生成模块,标签生成模块接收到帧字段提取模块发送的标签类信息类型和标签信息信号后将计数器值、标签信息和标签信息类型整合成标签送存储,另外计数器模块接收触发信号锁定当前计数器值作为触发位置信息发送给存储模块存储,标签生成模块的标签个数计数器每生成一个标签加I,当检测当前标签个数超过最大存储个数后清零并且循环标识寄存器置I,存储模块读取该寄存器值来决定标签存放位置,实现标签循环存储;
[0115](13)、触发模块根据接收用户设定的触发方式参数,根据触发参数调用不同的比较器组合将解码模块生成的各帧信息与用户设定的触发条件比较,如果符合条件则产生触发产生逻辑给触发信号生成模块产生触发信号,用户可设定的触发方式及比较方法如下:
[0116](131)帧头触发:帧头比较器检测到帧头字段产生触发;
[0117](132)指示符位触发:指示符位比较器将用户设定的4位指示符位数据与解码得到的指示符位信息比较产生触发;
[0118](133)帧号ID触发:帧号ID比较器将用户设定的11位帧号ID数据与解码得到的ID信息比较产生触发;
[0119](134)循环数触发:循环数比较器将用户设定的循环数与解码得到的循环数比较产生触发;
[0120](135)包头字段触发:指示符位比较器、帧号ID比较器、净荷长度比较器、包头CRC比较器和循环数比较器各自将用户设定的参数与解码得到的帧信息比较,产生触发信号与运算后产生触发;
[0121](136)数据触发:数据触发比较器可以读取用户可以设定字节偏置值,数据比较器将解码得到的从此数值后面的数据字节与用户设定的数据字比较产生触发;
[0122](137)ID和数据触发:ID触发比较器帧号ID比较器将用户设定的11位帧号ID数据与解码得到的ID信息比较产生触发,数据触发比较器可以读取用户可以设定字节偏置值,数据比较器将解码得到的从此数值后面的数据字节与用户设定的数据字比较产生触发,然后将两者触发信号与运算得到触发;
[0123](138)帧尾触发:帧尾比较器检测解码信息中FES信息和有无DTS信息,判断产生触发;
[0124](139)错误触发:错误触发包括包头CRC错误、包尾CRC错误、空帧错误、同步帧错误和启动帧错误,包头CRC比较器将校验码计算模块计算值与解码模块得到的包头CRC帧信息比较,如果不相等产生错误触发,包尾CRC比较器将校验码计算模块计算值与解码模块得到的包尾CRC帧信息比较,如果不相等产生错误触发,空帧(静态帧/动态帧)错误触发信号由指示符位比较器和帧尾比较器得到,同步帧和启动帧由指示符位判断解码得到的指示符位十目息得到;
[0125](14)、采集模块收到触发生成模块发送的触发信号后,继续采集一段时间后结束采集,一个采集周期完成。
[0126]在带有FlexRay总线信号解码与触发的测量仪器中,用户除了能够用传统触发方式触发采集FlexRay总线信号外,还可以采用专门为FlexRay总线定制的解码触发方式来分析FlexRay解码触发显示总线信息。采用定制的FlexRay总线解码触发方式,能在FlexRay总线的帧头、指示符位、标识符、循环数量、数据、CRC和帧尾等帧序列的任意部位触发,还可以以包头字段的任意组合、标识符与数据的组合、不同错误类型作为触发条件触发,使得捕获感兴趣的事件变得简单。总线显示不仅有模拟波形还可以以帧格式和帧序列两种方式显示总线信息,使用户读取直观易懂。
[0127]由于硬件解码速度远快于软件解码,当采用硬件触发软件解码时其实也在做解码工作,这样可以在硬件解码判断触发的方案的基础上把解码信息以标签的方式储存起来,把触发位置信息也储存起来,上层应用软件直接读取存储的标签信息和触发位置信息用来显示,省去了软件解码时间,提高了总线分析速度,同时软件也省去了再做一次解码的人力开销。
[0128]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于数字荧光示波器的FlexRay总线协议分析系统,其特征在于,包括:用户设定模块、PCI e模块、参数寄存器模块、解码触发模块、解码存储模块、采集模块和显示模块; 采集模块首先对FlexRay总线上的模拟信号进行采样,然后将采样值与经过数字量化后的用户设定的触发电平的数字值进行比较得到布尔值,最后将得到的布尔值送到解码模块; 解码模块根据用户设定的位速率生成合适的采样时钟和计数器计数时钟,接收到采集启动信号后启动计数器计数,并根据采样时钟对采集模块送来的布尔值进行采样,解码模块根据采样值得到总线的帧信息,然后生成对应的标签并存储,同时更新标签个数寄存器值和标签存储循环标志,然后解码模块将帧信息送往触发模块; 触发模块接收到帧信息后将其与用户设定的触发条件比较,如满足触发条件则将此时的计数器值存储到特定寄存器中并发送触发信号给采集模块; 采集模块收到触发信号后继续采集一段时间后结束采集并发送采集结束信号给解码丰旲块; 解码模块接收到采集结束信号后停止解码,示波器上层应用程序读取标签信息、标签长度信息、触发位置信息、标签存储循环信息,然后做显示、分析处理。2.如权利要求1所述的一种基于数字荧光示波器的FlexRay总线协议分析系统,其特征在于,所述解码与触发模块包括:抽点模块、解码模块、触发模块、触发产生模块; 抽点模块根据接收用户设定的位速率参数N倍频生成采样时钟,接收用户信号类型判断对几路数据进行抽点;计数器时钟接收位速率信号生成总线序列时间计数器时钟,通过该计数器值可以计算得到在总线各个部分在屏幕上的位置; 解码模块接收用户设定信号类型判断总线电平个数以及进行相位变换,接收用户设定的通道类型参数判定校验的计算方法,接收总线开关信号判定解码与触发的开始与停止,接收采集模块的采集启动和结束信号判定解码活动的等待与继续运行; 触发模块接收触发条件参数判断触发条件,接收采集模块的预触发信号判定触发信号产生的开始; 触发产生模块在接收到预触发信号后产生触发信号传给采集模块。3.如权利要求2所述的一种基于数字荧光示波器的FlexRay总线协议分析系统,其特征在于,所述触发模块接收的用户设定的FlexRay总线触发方式包括:帧开头、指示符位、标识符、净荷长度、循环数、包头CRC、包头字段组合、数据、错误、帧尾。4.如权利要求3所述的一种基于数字荧光示波器的FlexRay总线协议分析系统,其特征在于,所述触发模块针对帧不同字段都有相应的触发比较器,用于产生触发逻辑,解码模块将解码的帧信息和计算的校验数据传输给触发模块,触发模块根据不同的触发类型调用帧头比较器、包头字段比较器、数据比较器、标识符比较器、帧尾比较器、错误比较器、帧尾校验比较器中的几个或者一个比较器判断触发条件传给触发信号产生模块。5.—种基于数字荧光示波器的FlexRay总线协议分析方法,其特征在于,包括以下步骤: 步骤(I)、用户设定FlexRay总线电平阈值参数存储于参数寄存器中,采集模块读取阈值寄存器值,将数字量化后的值与阈值参数比较产生0/1序列信号送给抽点模块,如果总线模拟信号为三电平,则设置高低两个阈值参数,采集模块产生两个0/1序列给抽点模块; 步骤(2)、用户设定FlexRay总线位速率参数存储于参数寄存器中,抽点模块读取寄存器值生成采样时钟,采样时钟为位速率N倍; 步骤(3)、用户设定FlexRay总线信号类型存储于参数寄存器中,抽点模块读取寄存器值判断为BM、BP则需要对虚拟通道中经过两个比较器比较的两路0/1序列进行抽点,如果为Tx/Rx则只需对一路进行抽点。 步骤(4)、用户设定FlexRay总线位速率参数存储于参数寄存器中,计数器时钟模块采用采样时钟相同的倍频数生成计数时钟; 步骤(5)、用户设定FlexRay总线通道类型,校验码计算模块根据不同的通道类型计算fe验码; 步骤(6)、用户设定FlexRay总线信号类型存储于参数寄存器中,相位转换模块读取寄存器值判断是否进行相位变换,如果为BP则需要进行相位反转; 步骤(7)、解码模块中的帧起始/结束检测模块读取信号类型参数,如果为BM或者BP则需要读取两路数据,相同采样时刻值不同的为总线空闲,如果信号类型为Tx/Rx,则只需读取一路数据; 步骤(8)、比特提取模块用每个位的中间采样值代表该位的值,动态帧的DTS序列由于高低电平不是由固定位时间组成,不予处理;采样值判定为高电平时,比特信息为“I”,采样值判定为低电平时,比特信息为“O”,比特提取模块将比特信息和采样时钟的N分频一并发送给编码冗余模块; 步骤(9)、帧起始到帧尾序列之间的帧序列都有一个字节起始序列,解码模块中的编码冗余模块对位个数计数剔除字节起始序列; 步骤(10)、解码模块的校验码计算模块接收比特位信息和编码冗余模块的采样时钟的N分频时钟,然后采用FlexRay总线协议规定的FlexRay总线包头CRC和包尾CRC的检验方法计算校验码并送给触发模块,供校验码错误触发比较使用; 步骤(11)、解码模块中的帧字段提取模块接收比特位信息和编码冗余模块的采样时钟的N分频时钟,对帧起始序列到帧结束之间的信息进行帧信息提取,并在帧结束后发送帧结束信号给帧起始/结束检测序列,所述帧字段提取模块解码出帧结构的不同字段信息; 步骤(12)、计数器模块接收帧起始检测模块的TSS开始信号和TSS结束信号锁定计数器当前计数值作为触发位置值,发送给标签生成模块,标签生成模块收到帧起始检测模块的TSS开始信号和TSS结束信号后分别生成TSS开始标签和TSS结束标签,计数器模块还接收字段提取模块发送的各字段标签检测成功信号锁定相应的计数器值发送给标签生成模块,标签生成模块接收到帧字段提取模块发送的标签类信息类型和标签信息信号后将计数器值、标签信息和标签信息类型整合成标签送存储;另外,计数器模块接收触发信号锁定当前计数器值作为触发位置信息发送给存储模块存储,标签生成模块的标签个数计数器每生成一个标签加I,当检测当前标签个数超过最大存储个数后清零并且循环标识寄存器置I,存储模块读取该寄存器值来决定标签存放位置,实现标签循环存储; 步骤(13)、触发模块根据接收用户设定的触发方式参数,根据触发参数调用不同的比较器组合将解码模块生成的各帧信息与用户设定的触发条件比较,如果符合条件则产生触发产生逻辑给触发信号生成模块产生触发信号; 步骤(14)、采集模块收到触发生成模块发送的触发信号后,继续采集一段时间后结束采集,一个采集周期完成。6.如权利要求5所述的一种基于数字荧光示波器的FlexRay总线协议分析方法,其特征在于,所述步骤(7)中帧起始检测的工作流程如下: (a)对采样值进行判断,当连续出现NX 11个判断为总线空闲的采样值时,判断为总线空闲; (b)然后等待采样值为低电平的值,当出现采样值为低电平值时判断为传输起始序列TSS开始,发送TSS开始信号给计数器模块和标签生成模块,同时开始计数低电平采样值个数; (c)如果大于等于NX3并且小于等于NX15个低电平采样值出现后出现高电平采样值,则判断为TSS结束,发送TSS结束信号给计数器模块和标签生成模块; ⑷如果出现小于NX3则重新回到(a); (e)如果出现大于N X 15,暂时不予处理; 当帧起始/结束检测模块收到帧状态字提取模块发送的帧结束信号后,对采样值进行检测;如果出现低电平采样值,则判定为动态帧,存在DTS序列,继续检测采样值;当出现高电平时为DTS高电平段,计数N个采样值后为DTS结束位置;当判定DTS结束后,该模块重新进行帧起始检测。7.如权利要求5所述的一种基于数字荧光示波器的FlexRay总线协议分析方法,其特征在于,所述步骤(9)具体包括:编码冗余模块在帧起始序列后检测一个“I”值后面一个“O”值,如果为一个“I”值后面一个“O”值则判定为字节起始序列,从而剔除这两个比特信息,不发送给帧字段提取模块和校验计算模块,然后每隔8个比特信息检测一个“I”值和一个“O”值,如果是则剔除;如果首先检测到一个“O”然后是一个“I”,则为FES,不予处理,发送给帧字段提取序列,并且从此后面的采样值不予处理,直接送给下面模块,直到收到比特提取模块的帧起始信号。8.如权利要求5所述的一种基于数字荧光示波器的FlexRay总线协议分析方法,其特征在于,所述帧字段提取模块按以下10个状态有序解码出帧结构的不同字段信息: 状态1:空闲状态,上电复位后,状态机即处于该状态,在该状态下,当收到编码冗余模块传送给的帧起始信号,则进入状态2,否则状态不跳转; 状态2:检测比特信息为“I”值,判定为帧起始,进入状态3,否则状态不跳转; 状态3:指示符位状态,指示符位包括预留位、净荷前置码指示符、空帧指示符、同步帧指示符、启动帧指示符共五位,依次读取输入的5位比特信息后,进入状态4,否则状态不跳转; 状态4:帧号ID检测状态,帧号ID由11组成,依次读取11位输入的帧比特信息,输出帧号ID数据后,则进入状态6,否则状态不跳转; 状态5:净荷长度检测状态,依次读取7位输入的帧比特信息输入移位寄存器进行串/并转换,输出净荷长度数据并存储后,进入状态6,否则状态不跳转; 状态6:包头CRC检测状态,包头CRC由11位组成,依次读取输入的11位帧比特信息组成并输出CRC信息,进入状态7,否则状态不跳转; 状态7:循环数量检测状态,循环数量长度为6位,依次读取输入的6位帧比特信息组成循环数量,进入状态8,否则状态不跳转; 状态8:数据字段检测状态,依次读取帧比特输入移位寄存器进行串/并转换,同时数据字段计数器开始计数,当计数值达到净荷长度存储器中的字节数X 8位数据后,移位寄存器输出相应的数据字节信息,进入状态9,否则状态不跳转; 状态9:包尾CRC检测状态,包尾CRC由三个字节组成,依次读取帧比特输入移位寄存器进行串/并转换,同时包尾CRC计数器开始计数,当计数值达到3 X 8位数据后,移位寄存器输出相应的包尾CRC信息,进入状态10,否则状态不跳转; 状态10:帧结束序列检测状态,依次读取两位帧比特信息,如果前一个比特位为“O”值,后一个比特位为T值,则判定为FES,则跳转到状态I,否则状态不进行跳转。9.如权利要求5所述的一种基于数字荧光示波器的FlexRay总线协议分析方法,其特征在于,所述步骤(13)中,用户设定的触发方式及比较方法如下: (131)帧头触发:帧头比较器检测到帧头字段产生触发; (132)指示符位触发:指示符位比较器将用户设定的4位指示符位数据与解码得到的指示符位信息比较产生触发; (133)帧号ID触发:帧号ID比较器将用户设定的11位帧号ID数据与解码得到的ID信息比较产生触发; (134)循环数触发:循环数比较器将用户设定的循环数与解码得到的循环数比较产生触发; (135)包头字段触发:指示符位比较器、帧号ID比较器、净荷长度比较器、包头CRC比较器和循环数比较器各自将用户设定的参数与解码得到的帧信息比较,产生触发信号与运算后产生触发; (136)数据触发:数据触发比较器读取用户设定字节偏置值,数据比较器将解码得到的从此数值后面的数据字节与用户设定的数据字比较产生触发; (137)ID和数据触发:ID触发比较器帧号ID比较器将用户设定的11位帧号ID数据与解码得到的ID信息比较产生触发,数据触发比较器读取用户设定字节偏置值,数据比较器将解码得到的从此数值后面的数据字节与用户设定的数据字比较产生触发,然后将两者触发信号与运算得到触发; (138)帧尾触发:帧尾比较器检测解码信息中FES信息和有无DTS信息,判断产生触发; (139)错误触发:错误触发包括包头CRC错误、包尾CRC错误、空帧错误、同步帧错误和启动帧错误,包头CRC比较器将校验码计算模块计算值与解码模块得到的包头CRC帧信息比较,如果不相等产生错误触发,包尾CRC比较器将校验码计算模块计算值与解码模块得到的包尾CRC帧信息比较,如果不相等产生错误触发,空帧错误触发信号由指示符位比较器和帧尾比较器得到,同步帧和启动帧由指示符位判断解码得到的指示符位信息得到。
【文档编号】H04L29/08GK105959143SQ201610353483
【公开日】2016年9月21日
【申请日】2016年5月18日
【发明人】贺增昊, 刘纪龙, 向前, 张成森, 刘洪庆
【申请人】中国电子科技集团公司第四十研究所, 中国电子科技集团公司第四十一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1