首页> 中国专利> 一种应用于串行总线分析仪器的CAN总线协议解码IP核

一种应用于串行总线分析仪器的CAN总线协议解码IP核

摘要

一种应用于串行总线分析仪器的CAN总线协议解码IP核,解决现有的协议解码技术对传输的数据进行协议解码的准确性和可靠性低的问题。输入接口控制模块中内嵌一个AXI8位内存映射型从端口模块和一个数据输入缓冲FIFO模块,将写入AXI8位内存映射型从端口模块的CAN总线数据读取出来,并存储到数据输入缓冲FIFO模块中;CAN总线协议解码核心控制模块,将读取的CAN总线数据进行解码后,发送至输出接口控制模块;输出接口控制模块中内嵌一个AXI8位内存映射型从端口模块和一个数据输出缓冲FIFO模块,将写入到数据输出缓冲FIFO模块中的解码结果通过AXI8位内存映射型从端口模块读出。用于对CAN总线数据解码。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-08

    授权

    授权

  • 2016-06-29

    实质审查的生效 IPC(主分类):H04L12/40 申请日:20160330

    实质审查的生效

  • 2016-06-01

    公开

    公开

说明书

技术领域

本发明涉及一种串行总线分析技术,具体涉及基于测试仪器系统的CAN总线协议解码 技术。

背景技术

面对日益复杂的串行总线协议分析问题,现代测试仪器系统对串行总线协议分析的要 求越来越高,总线协议解码技术逐渐应用于串行总线协议分析设计中。

总线协议解码技术可以对多种复杂的串行总线信号进行定性和定量的测试分析。对于 现代测试系统总线分析领域来说,总线协议解码技术有利于提高从总线数据中获取有用信 息的准确性、可靠性和灵活性,因此成为现代测试系统中不可或缺的技术,可以满足现代 高速复杂设备的测试需求。

在现代总线协议分析领域中,面对日益复杂的串行总协议分析,总线协议解码技术往 往只是孤立地使用信号分析功能进行调试,孤立地使用模拟信号分析功能,不能做到对信 号进行数据域的协议分析。而且,CAN总线的数据类型繁杂,数据格式复杂,并且具有较 长的数据长度,从数据域的角度进行协议分析,总线协议解码技术可能无法满足复杂的测 试要求。因此CAN总线协议解码技术,在现代测试系统的串行总线分析领域有着迫切的应 用需求和实际意义。

如何对CAN总线数据进行准确的协议解码,也是现代测试仪器系统开发和研制的重 点。

发明内容

本发明是为了解决现有的协议解码技术对传输的数据进行协议解码的准确性和可靠 性低的问题,本发明提供了一种应用于串行总线分析仪器的CAN总线协议解码IP核系统。

一种应用于串行总线分析仪器的CAN总线协议解码IP核,它包括输入接口控制模块、 CAN总线协议解码核心控制模块和输出接口控制模块;

输入接口控制模块中内嵌一个1号AXI8位内存映射型从端口模块和一个数据输入缓 冲FIFO模块,用于将写入1号AXI8位内存映射型从端口模块的CAN总线数据读取出来, 并存储到数据输入缓冲FIFO模块中;

CAN总线协议解码核心控制模块,用于从数据输入缓冲FIFO模块中读取CAN总线数 据,并将读取的CAN总线数据进行解码后,发送至输出接口控制模块;

输出接口控制模块中内嵌一个2号AXI8位内存映射型从端口模块和一个数据输出缓 冲FIFO模块,用于将写入到数据输出缓冲FIFO模块中的解码结果通过2号AXI8位内存 映射型从端口模块读出。

所述的CAN总线协议解码核心控制模块对读取的CAN总线数据进行解码的具体过程 为:

步骤1、将读取的CAN总线的原始模拟数据进行中值滤波处理,去除毛刺;

步骤2、将中值滤波处理后的CAN总线数据进行差分处理,获得差分后的CAN总线数 据Datai

步骤3、计算差分后的CAN总线数据Datai中每个数据对应的时间标志,具体计算公 式如下:

其中,DataTimei代表第i个模拟数据的时间标志,SampRate代表总线数据采集的采 样率,i为整数,表示在整个采集的总线数据中,第i个模拟数据,DataSize表示总线数 据长度;

步骤4、根据设定的阈值Threshold,将差分后的具有时间标记的CAN总线数据Datai转换成数字数据DigiDatai,具体转换过程如下:

步骤5、在转换后的数字数据DigiDatai中查找帧的个数及每个帧的帧起始位置;

步骤6、解码每一帧,从每一帧的帧起始位置开始计算该帧中每比特数据的电平,直 至帧结束位置,确定每帧CAN总线数据中每比特数据的电平后,根据CAN总线协议规范对 每帧CAN总线数据进行串行协议解码,翻译成与协议格式对应的文本内容,完成对CAN 总线的原始模拟数据的解码;其中,每比特数据的电平为显性电平或隐性电平。

所述的步骤1中将读取的CAN总线的原始模拟数据进行中值滤波处理,去除毛刺的具 体过程为:

Datai=Data_Hi-Data_Li,0<i<DataSize(公式一),

其中,Datai代表做差分后的CAN总线数据,Data_Hi代表CAN总线上的高通道CAN_H 线上的总线数据,Data_Li代表CAN总线上的低通道CAN_L线上的总线数据。

所述的步骤5中找到每个帧的起始位置后,从帧起始位置开始计算该帧中每比特数据 的电平的具体过程为:

首先,通过公式四获得平均值AverLevelk,且

其中,AverLevelk表示第k位数据的1比特数字数据平均值,FrameSize表示一帧数 据中包含的比特数,k为整数,PointPerBit表示每比特数据中包含的数字数据个数;

其次,将得到的平均值AverLevelk与设置的电平阈值Threshold_Bit作比较,判断每 比特数据电平是显性电平还是隐性电平,判断条件如下:

其中,DigiData_Bitk表示1比特数据的电平,DigiData_Bitk=1中的1代表显性电 平,DigiData_Bitk=0中的0代表隐性电平。

所述的电平阈值Threshold_Bit为0.8。

所述的解码帧类型为标准格式数据帧、扩展格式数据帧、标准格式遥控帧、扩展格式 遥控帧、错误帧或过载帧。

所述的错误类型包括CRC错误、DLC错误和ACKLost错误。

所述的与协议格式对应的文本内容包括解码帧类型、帧ID、数据长度、数据内容、 帧CRC以及错误类型。

本发明带来的有益效果是,一种应用于串行总线分析仪器的CAN总线协议解码IP核 将采集到的CAN总线数据根据指定的CAN总线协议,翻译成与协议格式对应的文本内容。 在文本内容中具有时间标记,该时间标记能够和模拟波形对应。并且按照文本内容进行标 识(帧起始、帧结束、帧ID、数据及内容、帧类型、帧CRC),并且能够识别协议中的错 误(CRC错误、DLC错误、ACKLost错误),使得协议解码的准确性提高了5%以上和可靠性 提高了5%以上。

附图说明

图1为本发明所述的一种应用于串行总线分析仪器的CAN总线协议解码IP核的原理 示意图;

图2为本发明所述的一种应用于串行总线分析仪器的CAN总线协议解码IP核与上位 机和串行总线数据源模块连接关系结构图。

具体实施方式

具体实施方式一:参见图1说明本实施方式,本实施方式所述的一种应用于串行总 线分析仪器的CAN总线协议解码IP核,它包括输入接口控制模块1、CAN总线协议解码核 心控制模块2和输出接口控制模块3;

输入接口控制模块1中内嵌一个1号AXI8位内存映射型从端口模块1-1和一个数据 输入缓冲FIFO模块1-2,用于将写入1号AXI8位内存映射型从端口模块1-1的CAN总线 数据读取出来,并存储到数据输入缓冲FIFO模块1-2中;

CAN总线协议解码核心控制模块2,用于从数据输入缓冲FIFO模块1-2中读取CAN 总线数据,并将读取的CAN总线数据进行解码后,发送至输出接口控制模块3;

输出接口控制模块3中内嵌一个2号AXI8位内存映射型从端口模块3-1和一个数据 输出缓冲FIFO模块3-2,用于将写入到数据输出缓冲FIFO模块3-2中的解码结果通过2 号AXI8位内存映射型从端口模块3-1读出。

具体实施方式二:本实施方式与具体实施方式一所述的一种应用于串行总线分析仪 器的CAN总线协议解码IP核的区别在于,所述的CAN总线协议解码核心控制模块2对读 取的CAN总线数据进行解码的具体过程为:

步骤1、将读取的CAN总线的原始模拟数据进行中值滤波处理,去除毛刺;

步骤2、将中值滤波处理后的CAN总线数据进行差分处理,获得差分后的CAN总线数 据Datai

步骤3、计算差分后的CAN总线数据Datai中每个数据对应的时间标志,具体计算公 式如下:

其中,DataTimei代表第i个模拟数据的时间标志,SampRate代表总线数据采集的采 样率,i为整数,表示在整个采集的总线数据中,第i个模拟数据,DataSize表示总线数 据长度;

步骤4、根据设定的阈值Threshold,将差分后的具有时间标记的CAN总线数据Datai转换成数字数据DigiDatai,具体转换过程如下:

步骤5、在转换后的数字数据DigiDatai中查找帧的个数及每个帧的帧起始位置;

步骤6、解码每一帧,从每一帧的帧起始位置开始计算该帧中每比特数据的电平,直 至帧结束位置,确定每帧CAN总线数据中每比特数据的电平后,根据CAN总线协议规范对 每帧CAN总线数据进行串行协议解码,翻译成与协议格式对应的文本内容,完成对CAN 总线的原始模拟数据的解码;其中,每比特数据的电平为显性电平或隐性电平。

本实施方式,通过步骤3可以在文本内容中进行时间标记,该时间标记能够和模拟 波形、转换后的数字数据对应。

可以根据CAN总线的模拟数据大小决定阈值,保证阈值可以合理的将CAN总线数据 分成两个状态(0、1)。

步骤5中,在转换后的数字数据中,从0到DataSize查找帧起始(SOF)位置,CAN 总线空闲状态是隐性电平,每种格式帧的帧起始条件是一位显性电平。为了保证查找帧起 始位置的准确率,需要添加一个判断条件:因为每帧的帧结束(EOF)段是连续7位隐性 电平,先找到连续7位隐性电平,满足这个判断条件就可以保证在总线空闲状态下查找帧 起始,在空闲状态下找到的第一位显性电平就是帧起始,即先确定找到PointPerBit*7个 连续为0的数字数据后,在找到PointPerBit个连续为1的数字数据, PointPerBit=SampRate/BaudRate,BaudRate是CAN总线数据传输的波特率。

具体实施方式三:本实施方式与具体实施方式二所述的一种应用于串行总线分析仪 器的CAN总线协议解码IP核的区别在于,所述的步骤1中将读取的CAN总线的原始模拟 数据进行中值滤波处理,去除毛刺的具体过程为:

Datai=Data_Hi-Data_Li,0<i<DataSize(公式一),

其中,Datai代表做差分后的CAN总线数据,Data_Hi代表CAN总线上的高通道CAN_H 线上的总线数据,Data_Li代表CAN总线上的低通道CAN_L线上的总线数据。

具体实施方式四:本实施方式与具体实施方式二所述的一种应用于串行总线分析仪 器的CAN总线协议解码IP核的区别在于,所述的步骤5中找到每个帧的起始位置后,从 帧起始位置开始计算该帧中每比特数据的电平的具体过程为:

首先,通过公式四获得平均值AverLevelk,且

其中,AverLevelk表示第k位数据的1比特数字数据平均值,FrameSize表示一帧数 据中包含的比特数,k为整数,PointPerBit表示每比特数据中包含的数字数据个数;

其次,将得到的平均值AverLevelk与设置的电平阈值Threshold_Bit作比较,判断每 比特数据电平是显性电平还是隐性电平,判断条件如下:

其中,DigiData_Bitk表示1比特数据的电平,DigiData_Bitk=1中的1代表显性电 平,DigiData_Bitk=0中的0代表隐性电平。

本实施方式,通常设置为0.8,可以根据不同情况确定Threshold_Bit的值。

在计算平均值AverLevelk过程中,如果出现连续7位隐性电平,即帧结束(EOF)位 置,停止计算平均值AverLevelk,并且获得FrameSize,代表一帧数据中包含的比特数。

具体实施方式五:本实施方式与具体实施方式四所述的一种应用于串行总线分析仪 器的CAN总线协议解码IP核的区别在于,所述的电平阈值Threshold_Bit为0.8。

具体实施方式六:本实施方式与具体实施方式二所述的一种应用于串行总线分析仪器 的CAN总线协议解码IP核的区别在于,所述的解码帧类型为标准格式数据帧、扩展格式 数据帧、标准格式遥控帧、扩展格式遥控帧、错误帧或过载帧。

具体实施方式七:本实施方式与具体实施方式二所述的一种应用于串行总线分析仪 器的CAN总线协议解码IP核的区别在于,所述的错误类型包括CRC错误、DLC错误和 ACKLost错误。

具体实施方式八:本实施方式与具体实施方式二所述的一种应用于串行总线分析仪 器的CAN总线协议解码IP核的区别在于,所述的与协议格式对应的文本内容包括解码帧 类型、帧ID、数据长度、数据内容、帧CRC以及错误类型。

图2中是一种应用于串行总线协议分析仪器的CAN总线协议解码IP核在具体应用中的 结构示意图,图中M8为AXI8位内存映射型主端口,S8为AXI8位内存映射型从端口,Cn 为外部信号端,X4代表PCIExpressX4链路,可编程逻辑器件采用带有PCIExpress硬 核的芯片,PCIExpress接口模块将PCIExpress总线与AXI总线数据进行相互转换,X4 链路将上位机软件控制模块与PCIExpress接口模块通过PCIExpressX4链路进行连接。 PCIExpress接口模块受上位机软件模块控制。

数据源模块将采集到的CAN总线数据进行编码成8bit位宽的数据,通过AXI8位内 存映射型主端口写入到CAN总线协议解码IP核模块中。数据源模块受PCIExpress接口 模块控制。

CAN总线协议解码IP核将数据源模块写入到AXI8位内存映射型从端口的数据进行 处理,根据CAN总线协议规范对数据进行协议解码,然后通过AXI8位内存映射型从端口 将解码结果写入到AXI流水线桥中。CAN总线协议解码IP核模块受PCIExpress接口模 块控制。

AXI流水线桥模块连接数据源模块、CAN总线协议解码IP核模块到PCIExpress接 口模块。AXI流水线模块进一步增强了后端存储系统的吞吐率。

上位机软件控制模块,支持PCIe总线接口,上位机软件控制模块通过PCIExpress 接口模块控制数据源模块、一种应用于串行总线协议分析仪器的CAN总线协议解码IP核, 获取数据源模块内的CAN总线数据和一种应用于串行总线协议分析仪器的CAN总线协议解 码IP核输出的解码结果,并将用户在上位机配置的数据写入到一种应用于串行总线协议 分析仪器的CAN总线协议解码IP核。上位机软件控制模块用以显示总线数据波形,对阈 值参数进行配置,并显示解码结果。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号