CN107707446B - 一种基于fpga的sent总线解码、触发和分析方法 - Google Patents
一种基于fpga的sent总线解码、触发和分析方法 Download PDFInfo
- Publication number
- CN107707446B CN107707446B CN201710783901.6A CN201710783901A CN107707446B CN 107707446 B CN107707446 B CN 107707446B CN 201710783901 A CN201710783901 A CN 201710783901A CN 107707446 B CN107707446 B CN 107707446B
- Authority
- CN
- China
- Prior art keywords
- state
- module
- frame
- trigger
- label
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40078—Bus configuration
-
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40013—Details regarding a bus controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明提供一种基于FPGA的SENT总线解码、触发和分析方法,将SENT总线上一帧的不同字段,包括:同步头、状态段、数据段、校验和段进行分段显示出来,并显示每个字段所包含的具体信息。与只含有一条串行总线波形相比更加直观,并且能够在一帧数据的不同字段上进行触发,更加容易锁定感兴趣的波形。并且能够将所解得的总线数据能够进一步处理。与软件解码相比较,速度更快,所解的总线信息更加实时有效。
Description
技术领域
本发明属于SENT总线解码技术领域,尤其涉及的是一种基于FPGA的 SENT总线解码、触发和分析方法。
背景技术
SENT总线全称为Single Edge Nibble Transmission,是美国机动车工程师学会SAE推出的一种点对点的、单向传输的方案,被用来在汽车中的传感器和电子控制单元(ECU)之间传输高清传感器数据。传感器数据通过两个下降沿周期之间的一系列脉冲序列来传输,图1是SENT的帧结构定义,SENT在信号开始时提供一个参考校准脉冲,在结尾提供一个检验位。报文的长度随着半字节的值而不同,SENT(SAE J2716)为汽车传感器新型接口标准,较模拟输出和PWM输出相比,具有很好的EMC特性,节省线束,节省插针结头的低成本方案,并且能传输故障代码从而使传感器系统具有很强的故障诊断能力。SENT将在局部系统中广泛取代CAN和LIN。为了提高SENT总线的开发效率,更易捕获感兴趣的信息,如何快速且准确的实现对SENT总线传输数据的观测问题亟待解决。
现有的SENT总线分析与触发技术都是基于软件算法处理的,采用软件后期处理技术解码串行数据包/帧以提供串行总线触发和协议解码功能。但是软件解码通常无法保证波形和解码更新速率(更新速度甚至可能低至数秒钟)的问题。使用深存储器时速度更慢,而深存储器是捕获多个数据包串行总线信号的必要器件。如果需要同时分析多个串行总线,软件技术的解码更新速率可能进一步降低。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种基于 FPGA的SENT总线解码、触发和分析方法。
本发明的技术方案如下:
一种基于FPGA的SENT总线解码、触发和分析方法,包括以下步骤:步骤1:用户设定SENT总线电平阈值参数存储于参数寄存器中,采集模块读取阈值寄存器值,将数字量化后的值与阈值参数比较产生0/1序列信号送给抽点模块;
步骤2:用户设定SENT总线位速率参数存储于参数寄存器中,采样模块读取寄存器值,并根据所采用的时钟频率,生成采样时钟;
步骤3:用户设定SENT总线信号类型存储于参数寄存器中;
步骤4:用户设定SENT总线是否含有CRC检验位存储于参数寄存器中;
步骤5:SENT用节拍作为时间单位,一个节拍为3us-90us;在每条报文的尾部插入一个固定长度不超过1ms的暂停脉冲;
步骤6:用户设置SENT总线解码参数;在解码模块中首先判断帧的起始位,在空闲状态下总线保持逻辑1;通过采集模块当两个低电平之间出现56个时钟节拍时,判断为同步脉冲,解码模块产生同步脉冲标签,并存储;
步骤7:同步脉冲之后,紧接着的半个字节为状态/通信半字节;若 STATE_L_SAMPLE状态下为5ticks的低电平,其后面 STATE_H_SAMPLE持续12至27个ticks的高电平,解码模块判断该部分为状态/通信位,并通过高电平位的计数器数值来判断该半字节的数值;产生相对应状态/通信标签,并将数值一起存入相对应的存储器中;
步骤8:同步脉冲之后,紧接着的半个字节为状态/通信半字节;若 STATE_L_SAMPLE状态下为5ticks的低电平,其后面 STATE_H_SAMPLE持续12至27个ticks的高电平,解码模块判断该部分为状态/通信位,并通过高电平位的计数器数值来判断该半字节的数值;产生相对应状态/通信标签,并将数值一起存入相对应的存储器中;
步骤9:在解码模块中,在DATA_L_SAMPLE状态下进行数据字段低电平的采集,若为5个持续的低电平,进入DATA_H_SAMPLE状态,在 DATA_H_SAMPLE状态下,通过高电平计数器来计算高电平所持续的时间;并通过译码模块来解出所对应的数值;
步骤10:在解码模块中,若输入的参数中,sent总线帧中包含CRC校验段,则进入CRC校验段解码状态,在CRC_L_SAMPLE状态下进行CRC校验字段低电平的采集,若为5个持续的低电平,进入CRC_H_SAMPLE 状态,在CRC_H_SAMPLE状态下,通过高电平计数器来计算高电平所持续的时间;并通过译码模块来解出所对应的数值;CRC校验字段会产生相对应的CRC校验标签,然后将CRC校验标签和所对应的数值存入相对应的存储器中;
步骤11:解码模块中的帧字段提取模块接收比特位信息和编码冗余模块的采样时钟的N分频时钟,对帧起始序列到帧结束之间的信息进行帧信息提取,并在帧结束后发送帧结束信号给帧起始/结束检测序列:
状态1:空闲状态,上电复位后,状态机即处于该状态,在该状态下,当收到采集模块传送给的帧起始信号(逻辑0),并持续5个ticks,则进入状态2,否则状态不跳转;
状态2:检测比特信息为“1”值,若在此状态下高电平保持51个ticks,则判定为帧的同步头段,进入状态3,否则状态跳转到状态1;
状态3:状态/通信位状态,该状态包含半个字节的信息,低电平持续5个ticks,高电平持续12至27个ticks ,该字段所包含的信息作为设备的状态、识别;然后进入状态4,否则状态不跳转;
状态4:数据字段状态,每个数据字段包含5个低电平的ticks,高电平持续12至27个ticks ,数据字段的个数有输入的参数Nibb le的个数来决定;当计算Nibb le的计数器的值等于输入参数Nibb le,说明该帧中数据段的采集完成,则进入状态5,否则状态不跳转;
状态5:CRC字段检测状态,该状态包含半个字节的信息,低电平持续5个ticks,高电平持续12至27个ticks ,该字段所包含的信息用来校验该帧是否正确,若通过采集计算的CRC的值与接收到的CRC 的值不一致,则说明该帧在传输的过程中发生改变,在解码模块中产生CRC错误标签,用于软件的显示以及触发模块;然后进入状态6,否则状态不跳转;
状态6:暂停位检测状态,根据输入的参数来决定,若暂停位的参数为逻辑“1”,则说明该帧包含暂停位;解码模块进入暂停位的采集,暂停位包含12至768个ticks 的暂停脉冲;在解码模块中产生暂停位标签,用于软件的显示以及触发模块;若暂停位的参数为逻辑“0”,则说明该帧不包含暂停位;然后进入状态1,否则状态不跳转;
步骤12:计数器模块接收帧起始检测模块的同步头开始信号和同步头结束信号锁定计数器当前计数值作为触发位置值,发送给标签生成模块,标签生成模块收到帧起始检测模块的同步头开始信号和同步头结束信号后分别生成同步头开始标签和同步头结束标签,计数器模块还接收字段提取模块发送的各字段标签检测成功信号锁定相应的计数器值发送给标签生成模块,标签生成模块接收到帧字段提取模块发送的标签类信息类型和标签信息信号后将计数器值、标签信息和标签信息类型整合成标签送存储,另外计数器模块接收触发信号锁定当前计数器值作为触发位置信息发送给存储模块存储,标签生成模块的标签个数计数器没生成一个标签加1,当检测当前标签个数超过最大存储个数后清零并且循环标识寄存器置1,存储模块读取该寄存器值来决定标签存放位置,实现标签循环存储;
步骤13:触发模块根据接收用户设定的触发方式参数,根据触发参数调用不同的比较器组合将解码模块生成的各帧信息与用户设定的触发条件比较,如果符合条件则产生触发产生逻辑给触发信号生成模块产生触发信号,用户设定的触发方式及比较方法如下:
步骤1301:同步头触发:同步头比较器检测到同步头字段产生触发;
步骤1302:状态位触发:状态位比较器将用户设定的4位状态位数据与解码得到的状态位信息比较产生触发,若比较器输出为逻辑“1”,则产生触发信号;
步骤1303:数据位触发:一帧中最多含有6个半字节的数据,在选择数据触发时,选择触发数据的长度和要触发的数据;数据比较器将解码得到的从此数值后面的数据字节与用户设定的数据字比较产生触发;
步骤1304:CRC错误触发:CRC比较器将校验码计算模块计算值与解码模块得到的CRC帧信息比较,如果不相等产生错误触发;
步骤1305:暂停位触发:暂停位比较器检测到暂停位字段产生触发;
步骤1306:采集模块收到触发生成模块发送的触发信号后,产生触发地址,锁定触发的位置;根据时基,继续采集一段时间后结束采集,一个采集周期完成;
步骤14:软件同步显示。
进一步而言,所述步骤1中:总线模拟信号为三电平,则设置高低两个阈值参数,采集模块产生两个0/1序列给抽点模块。
进一步而言,所述步骤2中:时钟频率为200M采样时钟为位速率N倍, N=8。
进一步而言,所述步骤3中,SENT总线一帧数据含有5Nibb le或者8 Nibb le,解码时根据Nibb le的多少来判断一帧中所包含的数据的个数。
采用上述方案,将SENT总线上一帧的不同字段,包括:同步头、状态段、数据段、校验和段进行分段显示出来,并显示每个字段所包含的具体信息。与只含有一条串行总线波形相比更加直观,并且能够在一帧数据的不同字段上进行触发,更加容易锁定感兴趣的波形。并且能够将所解得的总线数据能够进一步处理。与软件解码相比较,速度更快,所解的总线信息更加实时有效。
附图说明
图1为现有技术中SENT帧格式示意图。
图2为本发明的SENT总线硬件解码示意图。
图3为本发明中5个模块数据处理的流程图。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
实施例1
如图2、3所示,图2是本发明提供一种SENT总线协议分析系统,对总线解码的全过程的示意图,图3是5个模块数据处理的流程图。SENT总线的解码、触发和分析方法包括5个模块,5个模块相互联系和作用,配置参数模块为解码模块和触发模块提供相应的解码和触发参数,用户通过软件界面输入。解码模块对输入的总线信号进行处理,产生对应的解码标签,并将标签进行存储和输送到触发模块。触发模块根据解码的标签和输入的触发模式,产生触发信号。解码标签在一帧总线数据的不同位置产生,所以也可以在一帧的不同字段上进行触发。从而丰富了触发的模式,更容易锁定用户想要查找的信号。触发模块将产生的触发信号输送到触发地址控制模块,产生触发地址。软件根据触发地址对存储的标签进行会读显示。用户通过设置解码和触发参数,就可以清晰的看到总线数据不同的字段的具体信息以及触发的具体位置。其具体过程如下:
(1)配置参数模块,包括总线的配置参数和设置触发条件的相关参数,如总线的波特率、半字节个数、CRC校验格式等,通过软件界面把需要的参数写入FPGA的SENT总线解码模块和SENT总线触发模块;
(2)SENT总线解码模块,根据设置的总线波特率,对总线信号采集和判断。根据SENT帧不同的组成部分,产生不同的标签类型,并将这些标签和通过采集得到的数据,按照相对应的地址进行存储;
(3)SENT总线触发模块,通过SENT总线的触发模块,将SENT总线解码模块产生的总线数据与设置的触发方式(帧开头、数据、CRC校验触发等)进行比较判断,若一致则产生相对应的触发信号;
(4)触发地址控制模块,接收到触发信号后锁定触发地址,软件读回,锁定屏幕中对应的触发位置。
(5)软件显示波形控制模块,软件根据触发地址以及地址计数,可以将对应的存储总线标签的类型以及该字段的长度实时显示在屏幕上,使用不同的颜色显示不同的字段,更加清晰,方便查看。
本发明对SENT总线解码与触发的实现方法包括以下步骤:
步骤1:用户设定SENT总线电平阈值参数存储于参数寄存器中,采集模块读取阈值寄存器值,将数字量化后的值与阈值参数比较产生0/1序列信号送给抽点模块,如果总线模拟信号为三电平,则设置高低两个阈值参数,采集模块产生两个0/1序列给抽点模块。
步骤2:用户设定SENT总线位速率参数存储于参数寄存器中,采样模块读取寄存器值,并根据所采用的时钟频率(本发明所用的为200M的时钟)生成采样时钟,采样时钟可以为位速率N倍,(N为整数,本发明N=8)。
步骤3:用户设定SENT总线信号类型存储于参数寄存器中,SENT总线一帧数据可以含有5Nibb le或者8Nibb le,解码时根据Nibb le的多少来判断一帧中所包含的数据的个数。
步骤4:用户设定SENT总线是否含有CRC检验位存储于参数寄存器中,SENT 总线一帧数据可以含有四位的校验位,位于帧尾。也可以没有这部分。解码时根据是否含有CRC检验位来进行正确解码。
步骤5:SENT用节拍(ticks)作为时间单位,一个节拍一般是3us (3us-90us)。SENT报文起始位是一个同步脉冲该脉冲与后续的下降沿之间时间隔等效于56个时钟节拍。同步脉冲之后,状态/通信半字节按照SENT格式传送状态和数据位。数据通过4个数据位为一个单元来传输,或称“半字节”。用半字节时,原始逻辑0时间是一个固定的5个或更多个节拍,跟着是可变周期的逻辑1。总半字节时间计算节拍单位中编码4位的数据。12个节拍=二进制 0000(16进制0),13个节拍=二进制0001(16进制1),14 个节拍个节拍=二进制0010(16进制2)等等。在每条报文的尾部插入一个固定长度不超过1ms的暂停脉冲。
步骤6:用户通过软件界面设置SENT总线解码参数。在解码模块中首先判断帧的起始位,在空闲状态下总线保持逻辑1。通过采集模块当两个低电平之间出现56个时钟节拍时,可判断为同步脉冲,解码模块产生同步脉冲标签,并存于存储其中,以便于软件读取显示和触发比较使用。
步骤7:同步脉冲之后,紧接着的半个字节为状态/通信半字节。若 STATE_L_SAMPLE状态下为5ticks的低电平,其后面STATE_H_SAMPLE 持续12至27个ticks的高电平,解码模块可判断该部分为状态/ 通信位,并可以通过高电平位的计数器数值来判断该半字节的数值。产生相对应状态/通信标签,并将数值一起存入相对应的存储器中,以便于软件读取显示和触发比较使用。
步骤8:同步脉冲之后,紧接着的半个字节为状态/通信半字节。若STATE_L_SAMPLE状态下为5ticks的低电平,其后面STATE_H_SAMPLE 持续12至27个ticks的高电平,解码模块可判断该部分为状态/ 通信位,并可以通过高电平位的计数器数值来判断该半字节的数值。产生相对应状态/通信标签,并将数值一起存入相对应的存储器中,以便于软件读取显示和触发比较使用。
步骤9:在解码模块中,在DATA_L_SAMPLE状态下进行数据字段低电平的采集,若为5个持续的低电平,进入DATA_H_SAMPLE状态,在 DATA_H_SAMPLE状态下,通过高电平计数器来计算高电平所持续的时间。并通过译码模块来解出所对应的数值。数据字段的个数,由输入的Nibb le的个数来决定。每一个数据字段都会产生相对应的数据标签,然后将数据标签和所对应的数值存入相对应的存储器中,以便于软件读取显示和触发比较使用。
步骤10:在解码模块中,若输入的参数中,SENT 总线帧中包含CRC校验段,则进入CRC校验段解码状态,在CRC_L_SAMPLE状态下进行CRC校验字段低电平的采集,若为5个持续的低电平,进入CRC_H_SAMPLE状态,在CRC_H_SAMPLE状态下,通过高电平计数器来计算高电平所持续的时间。并通过译码模块来解出所对应的数值。CRC校验字段会产生相对应的CRC校验标签,然后将CRC校验标签和所对应的数值存入相对应的存储器中,以便于软件读取显示和触发比较使用。
步骤11:解码模块中的帧字段提取模块接收比特位信息和编码冗余模块的采样时钟的N(N=8)分频时钟,对帧起始序列到帧结束之间的信息进行帧信息提取,并在帧结束后发送帧结束信号给帧起始/结束检测序列,如图3帧字段提取模块按以下6个状态有序解码出帧结构的不同字段信息:
状态1:空闲状态,上电复位后,状态机即处于该状态,在该状态下,当收到采集模块传送给的帧起始信号(逻辑0),并持续5个ticks,则进入状态2,否则状态不跳转;
状态2:检测比特信息为“1”值,若在此状态下高电平保持51个ticks,则判定为帧的同步头段,进入状态3,否则状态跳转到状态1;
状态3:状态/通信位状态,该状态包含半个字节的信息,低电平持续5个ticks,高电平持续12至27个ticks ,该字段所包含的信息可作为设备的状态、识别。然后进入状态4,否则状态不跳转;
状态4:数据字段状态,每个数据字段包含5个低电平的ticks,高电平持续12至27个ticks ,数据字段的个数有输入的参数Nibb le的个数来决定。当计算Nibb le的计数器的值等于输入参数Nibb le,说明该帧中数据段的采集完成,则进入状态5,否则状态不跳转;
状态5:CRC字段检测状态,该状态包含半个字节的信息,低电平持续5个ticks,高电平持续12至27个ticks ,该字段所包含的信息用来校验该帧是否正确,若通过采集计算的CRC的值与接收到的CRC 的值不一致,则说明该帧在传输的过程中发生改变,在解码模块中产生CRC错误标签,用于软件的显示以及触发模块。然后进入状态6,否则状态不跳转;
状态6:暂停位检测状态,暂停位可有可无,根据输入的参数来决定,若暂停位的参数为逻辑“1”,则说明该帧包含暂停位。解码模块进入暂停位的采集,暂停位包含12至768个ticks 的暂停脉冲。在解码模块中产生暂停位标签,用于软件的显示以及触发模块。若暂停位的参数为逻辑“0”,则说明该帧不包含暂停位。然后进入状态1,否则状态不跳转。
步骤12计数器模块接收帧起始检测模块的同步头开始信号和同步头结束信号锁定计数器当前计数值作为触发位置值,发送给标签生成模块,标签生成模块收到帧起始检测模块的同步头开始信号和同步头结束信号后分别生成同步头开始标签和同步头结束标签,计数器模块还接收字段提取模块发送的各字段标签检测成功信号锁定相应的计数器值发送给标签生成模块,标签生成模块接收到帧字段提取模块发送的标签类信息类型和标签信息信号后将计数器值、标签信息和标签信息类型整合成标签送存储,另外计数器模块接收触发信号锁定当前计数器值作为触发位置信息发送给存储模块存储,标签生成模块的标签个数计数器没生成一个标签加1,当检测当前标签个数超过最大存储个数后清零并且循环标识寄存器置1,存储模块读取该寄存器值来决定标签存放位置,实现标签循环存储;
步骤13:触发模块根据接收用户设定的触发方式参数,根据触发参数调用不同的比较器组合将解码模块生成的各帧信息与用户设定的触发条件比较,如果符合条件则产生触发产生逻辑给触发信号生成模块产生触发信号,用户可设定的触发方式及比较方法如下:
步骤1301:同步头触发:同步头比较器检测到同步头字段产生触发;
步骤1302:状态位触发:状态位比较器将用户设定的4位状态位数据与解码得到的状态位信息比较产生触发,若比较器输出为逻辑“1”,则产生触发信号;
步骤1303:数据位触发:一帧中最多含有6个半字节的数据,在选择数据触发时,可以选择触发数据的长度和要触发的数据,在比较的逻辑关系中可以是相等、不相等、大于、小于、大于等于、小于等于、范围内以及范围外。数据比较器将解码得到的从此数值后面的数据字节与用户设定的数据字比较产生触发;
步骤1304:CRC错误触发:CRC比较器将校验码计算模块计算值与解码模块得到的CRC帧信息比较,如果不相等产生错误触发。
步骤1305:暂停位触发:暂停位比较器检测到暂停位字段产生触发;
步骤1306:采集模块收到触发生成模块发送的触发信号后,产生触发地址,锁定触发的位置。根据时基,继续采集一段时间后结束采集,一个采集周期完成。
步骤14:软件同步显示。
软件根据触发地址以及地址计数,可以将对应的存储总线具体的标签的类型以及该字段的长度实时显示在屏幕上,使用不同的颜色显示不同的字段,更加清晰,方便查看。
本发明将SENT总线上一帧的不同字段,例如:同步头、状态段、数据段、校验和段进行分段显示出来,并显示每个字段所包含的具体信息。与只含有一条串行总线波形相比更加直观,并且能够在一帧数据的不同字段上进行触发,更加容易锁定感兴趣的波形。并且能够将所解得的总线数据能够进一步处理。与软件解码相比较,速度更快,所解的总线信息更加实时有效。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (4)
1.一种基于FPGA的SENT总线解码、触发和分析方法,其特征在于,包括以下步骤:
步骤1:用户设定SENT总线电平阈值参数存储于参数寄存器中,采集模块读取参数寄存器值,将数字量化后的值与阈值参数比较产生0/1序列信号送给抽点模块;
步骤2:用户设定SENT总线位速率参数存储于参数寄存器中,抽点模块读取参数寄存器值,并根据所采用的时钟频率,生成采样时钟;
步骤3:用户设定SENT总线信号类型存储于参数寄存器中;
步骤4:用户设定SENT总线是否含有CRC检验位存储于参数寄存器中;
步骤5:SENT用节拍作为时间单位,一个节拍为3us-90us;在每条报文的尾部插入一个固定长度不超过1ms的暂停脉冲;
步骤6:用户设置SENT总线解码参数;在解码模块中首先判断帧的起始位,在空闲状态下总线保持逻辑1;通过采集模块当两个低电平之间出现56个时钟节拍时,判断为同步脉冲,解码模块产生同步脉冲标签,并存储;
步骤7:同步脉冲之后,紧接着的半个字节为状态/通信半字节;若STATE_L_SAMPLE状态下为5ticks的低电平,其后面STATE_H_SAMPLE持续12至27个ticks的高电平,解码模块判断若STATE_L_SAMPLE状态下为5ticks的低电平,其后面STATE_H_SAMPLE持续12至27个ticks的高电平为状态/通信位,并通过高电平位的计数器数值来判断该半字节的数值;产生相对应状态/通信标签,并将数值一起存入相对应的存储器中;
步骤8:在解码模块中,在DATA_L_SAMPLE状态下进行数据字段低电平的采集,若为5个持续的低电平,进入DATA_H_SAMPLE状态,在DATA_H_SAMPLE状态下,通过高电平计数器来计算高电平所持续的时间;并通过译码模块来解出所对应的数值;
步骤9:在解码模块中,若输入的参数中,SENT 总线帧中包含CRC校验段,则进入CRC校验段解码状态,在CRC_L_SAMPLE状态下进行CRC校验字段低电平的采集,若为5个持续的低电平,进入CRC_H_SAMPLE状态,在CRC_H_SAMPLE状态下,通过高电平计数器来计算高电平所持续的时间;并通过译码模块来解出所对应的数值;CRC校验字段会产生相对应的CRC校验标签,然后将CRC校验标签和所对应的数值存入相对应的存储器中;
步骤10:解码模块中的帧字段提取模块接收比特位信息和编码冗余模块的采样时钟的N分频时钟,对帧起始序列到帧结束之间的信息进行帧信息提取,并在帧结束后发送帧结束信号给帧起始/结束检测序列:
状态1:空闲状态,上电复位后,状态机即处于该状态,在该状态下,当收到采集模块传送给的帧起始信号(逻辑0),并持续5个ticks,则进入状态2,否则状态不跳转;
状态2:检测比特信息为“1”值,若在此状态下高电平保持51个ticks,则判定为帧的同步头段,进入状态3,否则状态跳转到状态1;
状态3:状态/通信位状态,该状态包含半个字节的信息,低电平持续5个ticks,高电平持续12至27个ticks ,该字段所包含的信息作为设备的状态、识别;然后进入状态4,否则状态不跳转;
状态4:数据字段状态,每个数据字段包含5个低电平的ticks,高电平持续12至27个ticks ,数据字段的个数有输入的参数Nibb le的个数来决定;当计算Nibb le的计数器的值等于输入参数Nibb le,说明该帧中数据段的采集完成,则进入状态5,否则状态不跳转;
状态5:CRC字段检测状态,该状态包含半个字节的信息,低电平持续5个ticks,高电平持续12至27个ticks ,该字段所包含的信息用来校验该帧是否正确,若通过采集计算的CRC的值与接收到的CRC的值不一致,则说明该帧在传输的过程中发生改变,在解码模块中产生CRC错误标签,用于软件的显示以及触发模块;然后进入状态6,否则状态不跳转;
状态6:暂停位检测状态,根据输入的参数来决定,若暂停位的参数为逻辑“1”,则说明该帧包含暂停位;解码模块进入暂停位的采集,暂停位包含12至768个ticks 的暂停脉冲;在解码模块中产生暂停位标签,用于软件的显示以及触发模块;若暂停位的参数为逻辑“0”,则说明该帧不包含暂停位;然后进入状态1,否则状态不跳转;
步骤11:计数器模块接收帧起始检测模块的同步头开始信号和同步头结束信号锁定计数器当前计数值作为触发位置值,发送给标签生成模块,标签生成模块收到帧起始检测模块的同步头开始信号和同步头结束信号后分别生成同步头开始标签和同步头结束标签,计数器模块还接收字段提取模块发送的各字段标签检测成功信号锁定相应的计数器值发送给标签生成模块,标签生成模块接收到帧字段提取模块发送的标签类信息类型和标签信息信号后将计数器值、标签信息和标签信息类型整合成标签送存储,另外计数器模块接收触发信号锁定当前计数器值作为触发位置信息发送给存储模块存储,标签生成模块的标签个数计数器没生成一个标签加1,当检测当前标签个数超过最大存储个数后清零并且循环标识寄存器置1,存储模块读取该寄存器值来决定标签存放位置,实现标签循环存储;
步骤12:触发模块根据接收用户设定的触发方式参数,根据触发参数调用不同的比较器组合将解码模块生成的各帧信息与用户设定的触发条件比较,如果符合条件则产生触发产生逻辑给触发信号生成模块产生触发信号,用户设定的触发方式及比较方法如下:
步骤1201:同步头触发:同步头比较器检测到同步头字段产生触发;
步骤1202:状态位触发:状态位比较器将用户设定的4位状态位数据与解码得到的状态位信息比较产生触发,若比较器输出为逻辑“1”,则产生触发信号;
步骤1203:数据位触发:一帧中最多含有6个半字节的数据,在选择数据触发时,选择触发数据的长度和要触发的数据;数据比较器将解码得到的从此数值后面的数据字节与用户设定的数据字比较产生触发;
步骤1204:CRC错误触发:CRC比较器将校验码计算模块计算值与解码模块得到的CRC帧信息比较,如果不相等产生错误触发;
步骤1205:暂停位触发:暂停位比较器检测到暂停位字段产生触发;
步骤1206:采集模块收到触发生成模块发送的触发信号后,产生触发地址,锁定触发的位置;根据时基,继续采集一段时间后结束采集,一个采集周期完成;
步骤13:软件同步显示。
2.如权利要求1所述的方法,其特征在于,所述步骤1中:总线模拟信号为三电平,则设置高低两个阈值参数,采集模块产生两个0/1序列给抽点模块。
3.如权利要求1所述的方法,其特征在于,所述步骤2中:时钟频率为200M采样时钟为位速率N倍,N=8。
4.如权利要求1所述的方法,其特征在于,所述步骤3中,SENT总线一帧数据含有5Nibble或者8Nibb le,解码时根据Nibb le的多少来判断一帧中所包含的数据的个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710783901.6A CN107707446B (zh) | 2017-09-04 | 2017-09-04 | 一种基于fpga的sent总线解码、触发和分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710783901.6A CN107707446B (zh) | 2017-09-04 | 2017-09-04 | 一种基于fpga的sent总线解码、触发和分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107707446A CN107707446A (zh) | 2018-02-16 |
CN107707446B true CN107707446B (zh) | 2020-06-30 |
Family
ID=61171945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710783901.6A Active CN107707446B (zh) | 2017-09-04 | 2017-09-04 | 一种基于fpga的sent总线解码、触发和分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107707446B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11055423B2 (en) * | 2018-03-30 | 2021-07-06 | Infineon Technologies Ag | Signal pattern checksum |
CN109521238A (zh) * | 2018-11-09 | 2019-03-26 | 中电科仪器仪表有限公司 | 一种示波器平台高速总线的解码、触发和分析系统及方法 |
CN109521240A (zh) * | 2018-11-12 | 2019-03-26 | 中电科仪器仪表有限公司 | 一种基于示波器的usb总线硬件触发与解码方法 |
CN109302430B (zh) * | 2018-12-09 | 2021-03-02 | 中国航空工业集团公司洛阳电光设备研究所 | 一种低延时arinc818总线收发方法 |
US10602119B1 (en) * | 2019-05-20 | 2020-03-24 | A & L Canada Laboratories Inc. | System and method for multiplexing MIPI multispectral imaging devices |
CN111800380A (zh) * | 2020-05-27 | 2020-10-20 | 苏州国方汽车电子有限公司 | 一种基于J2716协议的Sent信号模拟解析平台 |
CN114040035A (zh) * | 2021-11-02 | 2022-02-11 | 深圳驰越科技有限公司 | Sent分析仪 |
CN114143239B (zh) * | 2021-11-16 | 2023-10-03 | 上海赫千电子科技有限公司 | 一种应用于fpga以太网测试设备的防丢包方法 |
CN114323102B (zh) * | 2021-12-17 | 2024-01-19 | 中国重汽集团济南动力有限公司 | 一种sent接口传感器故障诊断方法、装置及系统 |
CN115086454B (zh) * | 2022-07-21 | 2022-12-09 | 北京金橙子科技股份有限公司 | 一种自适应振镜控制信号接口的方法、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995764A (zh) * | 2014-05-21 | 2014-08-20 | 电子科技大学 | 一种具有串行总线协议连续触发功能的逻辑分析仪 |
CN105262645A (zh) * | 2015-11-05 | 2016-01-20 | 株洲南车时代电气股份有限公司 | 一种tcn列车通信网络分析装置及方法 |
CN105608040A (zh) * | 2015-12-21 | 2016-05-25 | 中国电子科技集团公司第四十一研究所 | 一种用fpga实现通用串行总线触发与解码的方法 |
CN105653489A (zh) * | 2015-12-23 | 2016-06-08 | 中国电子科技集团公司第四十研究所 | Mil_std_1553总线分析与触发方法 |
CN105959143A (zh) * | 2016-05-18 | 2016-09-21 | 中国电子科技集团公司第四十研究所 | 一种基于数字荧光示波器的FlexRay总线协议分析系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080080565A1 (en) * | 2006-09-29 | 2008-04-03 | Martin Curran-Gray | IEEE-1588 monitoring on 1000 BASE-T Ethernet technology |
-
2017
- 2017-09-04 CN CN201710783901.6A patent/CN107707446B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995764A (zh) * | 2014-05-21 | 2014-08-20 | 电子科技大学 | 一种具有串行总线协议连续触发功能的逻辑分析仪 |
CN105262645A (zh) * | 2015-11-05 | 2016-01-20 | 株洲南车时代电气股份有限公司 | 一种tcn列车通信网络分析装置及方法 |
CN105608040A (zh) * | 2015-12-21 | 2016-05-25 | 中国电子科技集团公司第四十一研究所 | 一种用fpga实现通用串行总线触发与解码的方法 |
CN105653489A (zh) * | 2015-12-23 | 2016-06-08 | 中国电子科技集团公司第四十研究所 | Mil_std_1553总线分析与触发方法 |
CN105959143A (zh) * | 2016-05-18 | 2016-09-21 | 中国电子科技集团公司第四十研究所 | 一种基于数字荧光示波器的FlexRay总线协议分析系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107707446A (zh) | 2018-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107707446B (zh) | 一种基于fpga的sent总线解码、触发和分析方法 | |
CN105959143B (zh) | 一种基于数字荧光示波器的FlexRay总线协议分析系统及方法 | |
JP4846544B2 (ja) | トリガ事象識別方法及び回路 | |
CN106021165B (zh) | 一种lin总线解码、触发和分析技术 | |
CN109756303B (zh) | 一种单工异步曼彻斯特码接收解码方法 | |
CN102355382A (zh) | 一种控制器局域网总线分析与触发的方法 | |
US20070008904A1 (en) | Controller area network performance parameters measurement | |
CN105703885B (zh) | 基于曼彻斯特码的解析方法及装置 | |
CN104008080B (zh) | 串行数据解析方法和装置 | |
CN105847752B (zh) | 信息编解码方法、设备和视频监控系统 | |
KR20150128658A (ko) | 직렬 데이터 송신용 디더링 회로 | |
US10098328B2 (en) | Method of monitoring the physical condition and/or suitability of animal feed of ruminant animals | |
EP0700181A2 (en) | Synchronisation circuit | |
US6148420A (en) | Method and apparatus for analyzing serial data | |
CN101697577A (zh) | 视频发送/接收装置和方法 | |
US7827377B2 (en) | Method for reading out sensor data | |
CN109521942A (zh) | 一种基于高分辨率示波器的can总线协议分析系统及方法 | |
CN116541239A (zh) | 一种定时任务监控方法、装置、电子设备及存储介质 | |
CN114205054A (zh) | 信号处理方法及装置、电子设备及存储介质 | |
CN102932103B (zh) | 一种基于数字化变电站的数据传输速率自适应接收方法 | |
CN109521239A (zh) | 一种示波器中arinc429总线协议分析与触发系统及方法 | |
US7062003B2 (en) | Self-tuning baud rate generator for UART applications | |
KR101950945B1 (ko) | 모션 캡쳐 시스템의 모션 영상 생성 장치 및 그 방법 | |
EP0557142B1 (fr) | Procédé et dispositif pour la surveillance temporelle du fonctionnement d'un processeur | |
CN111866429B (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 |