首页> 中国专利> 一种具有串行总线协议连续触发功能的逻辑分析仪

一种具有串行总线协议连续触发功能的逻辑分析仪

摘要

本发明公开了一种具有串行总线协议连续触发功能的逻辑分析仪,FPGA中的每个连续触发模块对应一种串行总线协议,连续触发模块中的时钟计数器提供时钟溢出标志和时钟数据,每个连续触发状态机对应一种触发方式,接收通道数据并根据连续触发控制字触发采集连续触发数据,在采集数据完成后的下一周期内令存数使能信号有效,触发数据选择器选择连续触发数据输出至拼数模块,选择存数使能信号输出至数据选择器,拼数模块将时钟数据和连续触发数据组合后输出至数据选择器。FPGA中的数据选择器根据触发类型控制字输出对应连续触发数据和存数使能信号至异步FIFO模块,异步FIFO模块存储连续触发数据并供ARM处理器读取。本发明用硬件实现了串行总线协议的连续触发。

著录项

  • 公开/公告号CN103995764A

    专利类型发明专利

  • 公开/公告日2014-08-20

    原文格式PDF

  • 申请/专利权人 电子科技大学;

    申请/专利号CN201410217679.X

  • 发明设计人 戴志坚;杨万渝;韩熙利;赖建钧;

    申请日2014-05-21

  • 分类号G06F11/25;G06F13/42;

  • 代理机构成都行之专利代理事务所(普通合伙);

  • 代理人温利平

  • 地址 611731 四川省成都市高新区(西区)西源大道2006号

  • 入库时间 2023-12-17 00:50:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-08

    未缴年费专利权终止 IPC(主分类):G06F11/25 授权公告日:20150826 终止日期:20190521 申请日:20140521

    专利权的终止

  • 2015-08-26

    授权

    授权

  • 2014-09-17

    实质审查的生效 IPC(主分类):G06F11/25 申请日:20140521

    实质审查的生效

  • 2014-08-20

    公开

    公开

说明书

技术领域

本发明属于数据域测试技术领域,更为具体地讲,涉及一种具有串行总线协议连续触发功能的逻辑分析仪。

背景技术

随着数字电子技术的高速发展,现代数字电子系统的组成越来越复杂,系统各部件间的通信也越来越依靠于多种多样的数字总线,这也对数据测试领域提出了更高的要求。

逻辑分析仪作为传统的数据域测试仪器,在数字电子系统的硬件逻辑、时序分析、故障诊断及嵌入式软件代码的开发测试中发挥着不可替代的作用,是数字电子系统产品研发和功能维护不可缺少的工具。为了提高对逻辑分析仪对数字总线的测试能力,近年的逻辑分析仪产品都一定程度地集成了总线协议触发功能和协议分析功能。

目前逻辑逻辑分析仪的协议触发设计原理一般是:按照选择好的存储深度、协议触发条件,存储触发前后一个存储深度内所有数据,进行完一次采集后,将采集到的波形进行显示,然后再进行下一次采集。在实际的运用中,就会出现测试的不完全连续的情况,即出现“死区时间”。为了完成一个较长时间的数据采集,那么就需要更深的存储深度来进行数据的存储,但是不管存储深度是多少,最终还是会存满。而存满后数据读取的过程中的总线上传输的数据就不能采集到了,因此就不能实现真正的连续不间断的数据采集,也不利于数据的分析。

同时,在实际的运用中,相同的触发条件在一定时间内不一定只会出现一次,按照传统的单次触发设计原理,虽然能够采集到满足条件的波形,那么在一次采集的过程中,到底有多少满足要求的触发条件,还需要测试人员对采集到的波形进行分析才能够得到。另外,在某些情况下,测试人员不一定需要知道具体的波形,只需要监听一段时间内的某一个或者某几个数据、地址或读写控制等具体的条件的情况下,传统的单次触发就无法提供。

发明内容

本发明的目的在于克服现有技术的不足,提供一种具有串行总线协议连续触发功能的逻辑分析仪,用硬件实现串行总线协议的连续触发,实现长时间的连续监测。

为实现上述发明目的,本发明具有串行总线协议连续触发功能的逻辑分析仪,包括采集通道、FPGA、ARM处理模块,采集通道包括探头、比较器、电平转换和DAC;ARM处理器中安装逻辑分析仪的系统软件;FPGA中设置有ARM接口模块、门限控制模块和时钟模块,ARM接口模块用于完成ARM处理器与FPGA中其他模块的通信,门限控制模块用于控制DAC生成门限阈值,时钟模块向FPGA中的其他模块提供时钟和采样率控制信号;FPGA还包括串行总线协议连续触发模块,包括连续触发模块、数据选择器、异步FIFO模块,其中:

连续触发模块至少配置一个,每个连续触发模块对应一种串行总线协议,连续触发模块接收ARM处理器通过ARM接口模块发送的连续触发控制字,连续触发控制字包括协议类型、通道信息、触发类型、触发条件、开始条件、监测时间,连续触发模块检测到开始条件后,根据通道信息接收通道数据,并根据连续触发控制字进行触发与采集,将采集到的连续触发数据发送给数据选择器;连续触发模块包括时钟计数器、连续触发状态机、触发数据选择器、拼数模块,其中,时钟计数器接收时钟模块的同步时钟,根据监测时间设置计数初值,在开始连续触发时时钟计数器开始计数,时钟计数器计数过程中时钟溢出标志为无效,计满时设置时钟溢出标志有效,时钟计数器将时钟溢出标志发送给连续触发状态机和ARM处理器;每个连续触发模块中连续触发状态机至少配置一个,每个连续触发状态机对应一种触发方式,连续触发状态机检测到开始条件后接收通道数据和时钟计数器发送的时钟溢出标志,当时钟溢出标志无效时根据ARM处理器发送的连续触发控制字中的触发条件进行判断,当触发条件满足时连续触发状态机触发,并采集数据,将连续触发数据输出至触发数据选择器,并在采集数据完成后的下一个周期令存数使能信号内有效,然后进入下一次触发判断,如果一直触发条件都不满足,则不作任何操作;当时钟溢出标志有效或接收到ARM处理器发送的停止指令,停止触发;触发数据选择器根据触发类型控制字选择对应连续触发状态机的连续触发数据输出至拼数模块,同时选择对应的存数使能信号输出至数据选择器;拼数模块将连续触发数据与当前时钟计数器的时钟数据组合,生成最终的连续触发数据输出至数据选择器;

数据选择器接收每个连续触发模块发送的连续触发数据和存数使能信号,根据ARM处理器发送的协议类型控制字,输出对应协议的连续触发数据和存数使能信号至异步FIFO模块;

异步FIFO模块,根据存数使能信号存储连续触发数据,ARM处理器实时读取异步FIFO模块的空标志位,当空标志位无效时,ARM处理器产生计数时钟,并使读数使能信号有效,从异步FIFO模块中读取连续触发数据,当空标志位有效时,则进一步判断时间计数器的溢出标志位,若溢出标志位无效,并且用户没有发出停止指令,则继续监测异步FIFO空标志位;若溢出标志位有效或者用户发出停止指令,则停止读取数据。

本发明具有串行总线协议连续触发功能的逻辑分析仪,在FPGA中设置连续触发模块、数据选择器、异步FIFO模块,每个连续触发模块对应一种串行总线协议,连续触发模块包括时钟计数器、连续触发状态机、触发数据选择器、拼数模块,时钟计数器提供时钟溢出标志和时钟数据,每个连续触发状态机对应一种触发方式,接收通道数据,根据ARM处理器发送的连续触发控制字进行触发并采集连续触发数据,同时在采集数据完成后的下一个周期内令存数使能信号有效,触发数据选择器根据触发类型控制字选择连续触发数据输出至拼数模块,选择存数使能信号输出至数据选择器,拼数模块将时钟数据和连续触发数据组合成新的连续触发数据输出至数据选择器。数据选择器根据触发类型控制字输出对应连续触发数据和存数使能信号至异步FIFO模块,异步FIFO模块存储连续触发数据并供ARM处理器读取。

本发明采用硬件方式实现了串行总线协议的长时间连续监测,在监测时间内可以多次触发采集,并且根据监测人员设置只在触发时存储关注的数据和触发时的时间数据,更具有针对性。

附图说明

图1是本发明中逻辑分析仪示意图;

图2是本发明中FPGA结构示意图;

图3是串行总线协议连续触发模块的结构示意图;

图4是连续触发模块的结构示意图;

图5是Mil-std-1553B协议连续触发模块的结构示意图;

图6是数据字连续触发状态机的状态跳转图;

图7是命令或状态字连续触发状态机的状态跳转图;

图8是数据连续触发状态机的状态跳转图;

图9是远程终端地址连续触发状态机的状态跳转图;

图10是奇校验连续触发状态机的状态跳转图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

实施例

为了更好地对本发明内容进行说明,首先对逻辑分析仪进行一个简单介绍。图1是本发明中逻辑分析仪示意图。如图1所示,与普通逻辑分析一样,本发明的逻辑分析仪的通道部分采用探头+比较器+电平转换+DAC(Digital to AnalogConverter,数模转换器),DAC受FPGA(Field-Programmable Gate Array,现场可编程门阵列)控制输出门限阈值电平送给比较器;比较器完成模数转换,若探头输入电压大于门限阈值,则是逻辑“1”,反之则是逻辑“0”;电平转换芯片把电平逻辑转成LVDS(Low Voltage Differential Signal,低电压差分信号),便于FPGA能准确接收通道数据。ARM处理器中运行逻辑分析仪的系统软件,FPGA中是硬件功能的逻辑模块,两者通过控制字(控制字都存储在FPGA的特定寄存器中,ARM处理器和FPGA在需要的时候查询或者改变相应的控制字值)交换信息,配合实现逻辑分析仪的控制。外部接口用于连接ARM处理器和其他设备实现逻辑分析仪和其他设备进行通信。FPGA是完成逻辑分析仪硬件功能的核心,本发明中的串行总线协议连续触发模块就是在FPGA中实现的。

图2是本发明中FPGA结构示意图。如图2所示,FPGA中设置有以下逻辑模块:串行总线协议连续触发模块、ARM接口模块、门限控制模块和时钟模块。

ARM接口模块,用于ARM处理器与FPGA中其他模块进行通信,一方面ARM把用户通过系统软件设置的信息和流程控制信息存在FPGA相应特定寄存器中,使得FPGA中其他各个模块能从相应寄存器中读取控制字;另一方面FPGA其他各个模块把各自形成的标志信息存入相应特定寄存器中,使得软件能读取标志信息。这样,ARM处理器中的系统软件就能引导FPGA各模块的工作。

门限控制模块用于控制DAC生成门限阈值,本实施例中用一个状态机实现了SPI接口时序,使得FPGA和DAC能够正确通信。

时钟模块用于向FPGA中各个时序模块提供时钟和采样率控制信号。本实施例中,时钟模块以Altera提供的锁相环IP核为基础,形成了若干时钟和采样率控制信号,如图2中的虚线所示。串行总线协议连续触发模块依靠采样率控制信号实现采样率的变换,采样率控制信号决定了采样的速率和采样点的位置。

串行总线协议连续触发模块是本发明的核心模块。图3是串行总线协议连续触发模块的结构示意图。如图3所示,串行总线协议连续触发模块包括连续触发模块、数据选择器,异步FIFO模块。

连续触发模块至少配置一个,每个连续触发模块对应一种串行总线协议,图3中有三个不同串行总结协议的连续触发模块。连续触发模块接收ARM处理器通过ARM接口模块发送的连续触发控制字,连续触发控制字包括协议类型、通道信息、触发类型、触发条件、开始条件、监测时间,连续触发模块检测到开始条件后,根据通道信息接收通道数据,并根据连续触发控制字进行触发与采集,将采集到的连续触发数据发送给数据选择器。图4是连续触发模块的结构示意图。如图4所示,连续触发模块包括时钟计数器、连续触发状态机、触发数据选择器、拼数模块,对各个模块具体描述如下:

时钟计数器接收时钟模块的同步时钟,根据监测时间设置计数初值,在开始连续触发时时钟计数器开始计数,时钟计数器计数过程中(即监测时间内)时钟溢出标志为无效,计满时(超过监测时间)设置时钟溢出标志有效,时钟计数器将时钟溢出标志发送给连续触发状态机和ARM处理器;同时时钟计数器将时钟数据发送给拼数模块。每次连续触发模块开始触发采集后,时钟溢出标志无效,时钟计数器开始计数,达到监测时间则将时钟溢出标志有效。监测时间是监测人员根据需要来设置的,在监测时间内,连续触发模块可以实现多次触发和采集,从而实现长时间的监测。时钟溢出标志是用来标识本次监测采集是否结束,以便逻辑分析仪进行相应的操作。在每次监测采集开始前,ARM处理器会向时钟计数器发送复位的初值控制字,以便时钟计数值根据监测时间设置初值。

在每个连续触发模块中,连续触发状态机至少配置一个,每个连续触发状态机对应一种触发方式。连续触发状态机检测到开始条件后,接收通道数据和时钟计数器发送的时钟溢出标志,当时钟溢出标志无效时根据ARM处理器发送的连续触发控制字中的触发条件进行判断,当触发条件满足时连续触发状态机触发,并采集数据,将连续触发数据输出至触发数据选择器,并在采集数据完成后的下一个周期令存数使能信号内有效,然后进入下一次触发判断,如果一直触发条件都不满足,则不作任何操作;当时钟溢出标志有效或接收到ARM处理器发送的停止指令,停止触发。采集数据的数据位数由设计人员在逻辑分析仪设计时,根据不同的串行总线协议来设置的。

触发数据选择器根据触发类型控制字选择对应连续触发状态机的连续触发数据输出至拼数模块,将存数使能信号输出至数据选择器。

拼数模块将连续触发数据与时钟计数器发送的时钟数据组合,生成最终的连续触发数据输出至数据选择器。

数据选择器,用于接收每个连续触发模块发送的连续触发数据和存数使能信号,根据ARM处理器发送的协议类型控制字,输出对应协议的连续触发数据和存数使能信号至异步FIFO模块。

现有的单次触发单次采集过程中,硬件单次采集过程和软件读数过程是分开的,即软件每次都等待硬件单次采集完成后才开始读取数据。而在连续触发连续采集过程中,ARM处理器的读数过程和硬件连续采集过程是同步进行的,即ARM处理器会在硬件连续采集过程中进行读数。可见软件读数过程和硬件采集过程处于两个时钟域,因此本发明采用异步FIFO模块使得这两个过程可以同时正常工作。异步FIFO模块根据存数使能信号存储连续触发数据,ARM处理器实时读取异步FIFO模块的空标志位,空标志位标识异步FIFO模块是否存在数据,即异步FIFO模块是否为空。当空标志位无效时,即异步FIFO模块中还有数据,ARM处理器产生计数时钟,并使读数使能信号有效,从异步FIFO模块中读取连续触发数据,当空标志位有效时,即异步FIFO模块中没有数据,则进一步判断时间计数器的溢出标志位,若溢出标志位无效,并且用户没有发出停止指令,则继续监测异步FIFO空标志位;若溢出标志位有效或者用户发出停止指令,则停止读取数据。用户发出的停止指令是在监测时间尚未结束的一种强制停止指令。

异步FIFO模块涉及的两个时钟域,输入端的时钟是由时钟模块产生,存数使能信号是由各个连续触发模块产生的,在每一个触发发生后的一个写周期有效,所以异步FIFO模块存数的速率决定于触发发生的频率。不同串行总线协议的帧格式不同,触发不同,所以触发发生的最大频率有区别,但是本发明所面对的串行总线协议,其位速率都低于1M,并且考虑到连续触发是以字(或帧)为单位考虑的,即连续触发在一个字(或帧)内最多发生一次。又由于字(或帧)的长度都大于10个位时,所以连续触发发生的频率小于100Kb/s。

异步FIFO模块的输出端是ARM处理器,决定于ARM处理器中软件读数的速率,而ARM处理器用本地总线读数的频率大于1M(DMA读数速度更快),完全能够满足要求。例如采用总线数据位宽为16位的本地总线,而异步FIFO模块的位宽是64位,所以在软件稳定读数的情况下,异步FIFO模块的读数频率大于250k,大于100k。理论上来说,异步FIFO模块出数的速率大于灌数速率,数据不会丢失,考虑到软件读数可能出现的短暂的不稳定性,数据丢失的可能性虽然极小,但是还是存在。可以在实际设计中把异步FIFO模块的深度设定稍大一些,这样即使软件出现了短时间的读数不稳定,较大的缓冲深度也能够给软件充裕的时间恢复稳定,这样就可以在FPGA的FIFO资源有限的条件下,把出现数据丢失的可能性降到最低。

下面以Mil-std-1553B总线协议的连续触发为例,说明本发明中连续协议触发功能的实现。

Mil-std-1553B总线数据流传递的是消息,而消息由字组成,字是最小数据单位。根据Mil-std-1553B字格式知,一共有三种字,即命令字、状态字、数据字。其中命令字由总线控制器发出,用来发起一次数据传递;状态字由远程终端发出,用来反馈接收状态;数据字则携带被传递的数据。命令字和状态字的同步头相同,单从总线数据流中难以区分,数据字同步头则有所不同。命令字和状态字中的第4到8位都是远程终端地址字段,命令字、状态字、数据字的最后一位都是奇偶校验位。结合以上Mil-std-1553B协议的数据元素,Mil-std-1553B协议的连续触发模块做了6种触发方式。

图5是Mil-std-1553B协议连续触发模块的结构示意图。如图5所示,Mil-std-1553B协议连续触发模块包括六种触发方式的连续触发状态机、数据选择器、时钟计数器和拼数模块。各连续触发状态机产生32位连续触发数据和对应存数使能,32位连续触发数据和32位时钟数据拼成64位Mil-std-1553B连续触发数据,在存数使能信号的控制下,该数据被存入异步FIFO模块。

从异步FIFO模块的读写速率匹配的角度考虑,Mil-std-1553B总线的位速率是1M,每个字是20位,Mil-std-1553B协议连续触发模块是每分析完一个字之后触发一次,写一次数,所以,Mil-std-1553B协议连续触发模块往异步FIFO模块写数的频率最大不超过50k,而ARM处理器读数频率大于250k。也就是说,即使Mil-std-1553B总线满速运行,ARM都有充裕的时间读取Mil-std-1553B协议连续触发数据,不会掉数。本实施例中,将异步FIFO模块的存储深度设置为16k,进一步防止数据丢失。

下面将分别描述Mil-std-1553B的6种连续触发方式的实现。

Mil-std-1553B字类型连续触发(包括命令或状态字连续触发和数据字连续触发),就是用户在连续触发控制字的触发条件中设置想要连续监测的字的类型,开始连续采集后,逻辑分析仪只捕获用户想要的类型的字和字发生的时间。

Mil-std-1553B总线上字的类型有三种,命令字和状态字的同步头相同,先是1.5us的逻辑高(10),接着是1.5us的逻辑低(01),并且命令字和状态字前面都有2us以上的间隔,即逻辑0(00)。单从数据流中,难以区分出命令字和状态字,所以只做命令或状态字触发。而数据字的同步头则先是1.5us的逻辑低(01),接着是1.5us的逻辑高(10),并且数据字前面没有间隔,与别的字不同,所以可以单独实现数据字触发。

当用户想监测总线上所有数据字的时候,就可以用数据字连续触发功能。数据字连续触发功能的实现,主要依靠数据字连续触发状态机。图6是数据字连续触发状态机的状态跳转图。如图6所示,数据字连续触发状态机是一个米里机,共有九个状态,分别是复位态、准备态、前一态、前二态、前三态、后一态、后二态、捕获态、更新态。除了复位态,别的8个状态都只在采样率控制信号有效的时候才跳转和改变输出,在采样率控制信号无效的时候,状态不跳转,输出不改变。

系统复位之后,状态机进入复位态,复位态下,完成数据字计数器清0操作。等待Mil-std-1553B协议数据字连续触发采集的开始条件(由连续触发控制字发送)。检测到开始条件后,状态机跳转到准备态,开始数据字同步头的检测和判断。开始条件可以为时间条件或事件条件,则监测人员根据需要进行设置。

从准备态开始,若连续采样到3次逻辑低,则状态机依次跳转到前一态、前二态、前三态。从前三态开始,若连续检测到3次逻辑高,则状态机依次跳转到后一态、后二态、捕获态。

Mil-std-1553B总线的位速率是1M,本实施例中逻辑分析仪系统用2M的采样率进行检测。同时Mil-std-1553B协议规定:数据字同步头是1.5us的逻辑低(即01)在前,1.5us的逻辑高(10)在后。所以,若状态机成功跳转到捕获态,则说明检测到了完整的数据字同步头。

捕获态时,在数据字计数器的引导下,总线上的16位数据位和1位奇偶校验位将依次被捕获到数据字寄存器的第0-16位中。Mil-std-1553B总线的编码方式是曼彻斯特二型码,每个位时的前半个位时可以代表整个位时的逻辑值。所以,为了检测这17个位,数据字计数器的位宽是33,在计数器值是偶数的时候,捕获总线位。

捕获完成之后,数据字计数器溢出,状态机进入更新态。更新态下。数据字寄存器中的值被更新到连续触发数据流中,并且使存数使能有效。异步FIFO模块的数据输入端的时钟是100M,为了使得存数使能仅仅有效一个写周期,实际中采用的做法是仅仅在采样率控制信号(只持续10ns)有效的时候使存数使能有效,在采样率控制信号无效的周期,一律不让存数使能有效。这样,此时更新的数据将在下一次采样率控制信号有效的时候被灌入异步FIFO模块。

更新态之后,状态机将回到准备态,进行下一次数据字的检测。只要不检测到停止条件,状态机就会不断周而复始地运行,不停地触发存储数据字。由于本发明在连续触发控制字中设置有监测时间,因此停止条件可以是监测时间已满或者是监控人员发出停止命令。当时钟计数器的时钟溢出标志有效或者用户强制停止连续触发的时候,状态机就会检测到停止条件,检测到停止条件后,状态机回到复位态,停止连续触发。

当用户想要监测所有的命令或状态字时,可以使用命令或状态字连续触发功能。命令或状态字连续触发功能主要依靠命令或状态字连续触发状态机实现。图7是命令或状态字连续触发状态机的状态跳转图。如图7所示,命令或状态字连续触发状态机主要包括复位态、准备态、间隔态(间隔一到四)、同步态(同步一到五)、计数器捕获态、更新态、判断态。其中复位态、准备态、计数器捕获态、更新态的表现与数据字连续触发状态机的相应状态相似,所以不再赘述。

根据Mil-std-1553B协议的规定,在状态字的前面和消息开头命令字的前面都有至少2us的间隔(逻辑0)。间隔态,就是用来检测这2us的间隔。命令字或状态字的同步头一样,都是1.5us的逻辑高在前,1.5us的逻辑低在后。同步态,就是用于检测此同步头的状态。

更新态之后,状态机不进入准备态,而进入判断态。判断态下,若检测到逻辑高,则说明可能是下一个命令字(不是消息开头的命令字,没有间隔),所以进入同步态。若检测到逻辑0,则说明可能检测到下一个状态字(状态字前都有间隔),所以进入间隔态。

若用户只想监测包含某些数据的数据字,则可以使用数据连续触发功能。数据连续触发功能主要由数据连续触发状态机实现。图8是数据连续触发状态机的状态跳转图。

由图8和图6的对比可以知道,与数据字连续触发状态机相比,数据连续触发状态机只有一个状态不同。捕获到数据之后,状态机进入比较更新态。比较更新态下,会先做一次比较。若捕获到的数据字的数据内容与用户设置的数据匹配条件相符(匹配条件同样由控制字的形式由ARM处理器下发,是连续触发控制字中触发条件的一部分),则会更新连续触发数据流并拉高存数使能,若捕获到的数据字的数据内容与用户设置的数据匹配条件不相符,则不会更新连续触发数据流,存数使能也不会有效。这样一来,存入异步FIFO模块中的数据字就只是满足用户设置的数据条件的数据字。

同样的,若用户只想监测包含某些远程终端地址的命令或状态字,则可以使用远程终端地址连续触发功能。远程终端地址连续触发功能主要由远程终端地址连续触发状态机实现。图9是远程终端地址连续触发状态机的状态跳转图。

由图9和图7的对比可以知道,与命令或状态字连续触发状态机相比,远程终端地址连续触发状态机只有一个状态不同。捕获到数据之后,状态机进入比较输出态。比较输出态下,会先做一次比较。若捕获到的命令或状态字的数据内容与用户设置的远程终端地址匹配条件相符(同样的,匹配条件同样由控制字的形式由ARM处理器下发,是连续触发控制字中触发条件的一部分),则会更新连续触发数据流并拉高存数使能,若捕获到的命令或状态字的数据内容与用户设置的远程终端地址匹配条件不相符,则不会更新连续触发数据流,存数使能也不会有效。这样一来,存入异步FIFO模块中的数据字就只是满足用户设置的远程终端地址条件的命令或状态字。

若用户想监测所有的校验通过的字,则可以用奇偶校验连续触发功能。用户需要设置实际用的是奇校验还是偶校验,若是奇校验,则依靠奇校验连续触发状态机实现,若是偶校验,则依靠偶校验连续触发状态机实现。下面以奇校验连续触发的实现为例介绍。

图10是奇校验连续触发状态机的状态跳转图。如图10所示,奇校验连续触发状态机主要包括复位态、准备态、间隔态(间隔一到四)、命令或状态字同步态(同步一到五)、数据字同步态(同步一到五)、计数捕获态、奇校验态、判断态。

系统复位后进入复位态,复位态检测到开始条件后进入准备态开始连续触发判断。准备态下检测到逻辑0时,进入间隔态,间隔态用于检测命令或状态字前的间隔。间隔检测完成后进入命令或状态字同步态,命令或状态字同步态用于检测命令或状态字的同步头,检测完成后进入计数捕获态,命令或状态字的剩余内容捕获到命令或状态字寄存器中。捕获完成后,进入奇校验态,奇校验态下,对捕获到的17位内容进行校验,若逻辑高的个数为奇数,则校验成功。若校验成功,说明该字有效,所以更新连续触发数据流并拉高存数使能,若校验不成功,说明该字无效,不更新连续触发数据流并置低存数使能。校验完该字后进入判断态,判断态根据当前检测到的数据决定下一步检测的方向。首先判断是否有停止条件,若有停止条件,则回到复位态,停止连续触发。在没有检测到停止条件的前提下,若检测到逻辑高,则说明可能检测到了命令字的同步头(不是消息开头的命令字),进入命令或状态字同步头态;若检测到低,则说明可能检测到了数据字的同步头,进入数据字同步头态;若检测到无效逻辑,回到准备态重新开始;若检测到逻辑0则说明可能检测到了间隔,进入间隔态。

奇校验连续触发状态机周而复始地运转,实施监测总线的数据,并且捕获满足奇校验的字和该字发生的时间,存入异步FIFO模块,直到检测到停止条件为止。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号