一种lin总线解码、触发和分析技术的制作方法

文档序号:10654518阅读:603来源:国知局
一种lin总线解码、触发和分析技术的制作方法
【专利摘要】本发明提供了一种LIN总线解码、触发和分析方法,能够将LIN总线传输的数据进行实时解码,并能够根据用户设定的不同触发条件,在准确的位置上进行触发,并能将采集范围内所有帧的信息汇总成事件列表的技术。本发明针对现有技术的缺点采用硬件解码技术,能够实现多路总线实时解码,解码速度快,效率高,只需要一片现场可编程逻辑器件,成本低。对LIN总线的分析与触发方法简单,成本低廉,可实现同时对多路LIN总线的分析与触发,可对任意波特率的LIN总线信号进行分析,通用性强。
【专利说明】
一种LIN总线解码、触发和分析技术
技术领域
[0001]本发明涉及LIN总线领域,具体涉及一种LIN总线解码、触发和分析方法。
【背景技术】
[0002]LIN总线是一种基于增强IS09141标准的低成本单总线实现方法。该总线网络有一个主设备,多个从设备。所有的消息都由主设备发起,但是只有一个从设备响应,故不需要进行碰撞检测和仲裁。该通信基于UART/SCI,数据速率在lkb/s至20kb/s之间,使EMI达到最小。该总线总是处于两种状态之一:活动状态或睡眠状态。
[0003]现有的LIN总线分析与触发技术都是基于软件算法处理的,具体的说就是:用软件对接收到的信号数字量化后成为逻辑O或逻辑I,然后根据LIN的协议内容,逐位分析解码,然后将解码后的信息与用户设定的触发条件进行比较。
[0004]现有的LIN总线分析与触发技术都是采用软件解码,由于软件固有的特点决定这种解码方式的速度慢,尤其是当测量仪器同时对多路不同的总线信号进行解码分析与触发时,速度更慢。其次软件在解码过程中,不能同时采集总线上仍然在传输的数据,否则先前得到的数据会被“冲掉”,这就大大增加了解码的“死区时间”。再次,现有的技术的解码要求LIN总线上传输的数据个数必须是奇数个或偶数个。

【发明内容】

[0005]针对现有LIN总线解码速度慢,实时性差的问题,本发明提供了一种LIN总线解码、触发和分析方法。
[0006]本发明采用以下的技术方案:
[0007]—种LIN总线解码、触发和分析方法,包括解码模块,该方法包括:
[0008]步骤1:将总线空闲时总线信号上的I视为隐性电平,O视为显性电平;
[0009]步骤2:根据用户设定的LIN总线帧特征,对输入的LIN总线信号解码标准进行选择,解码标准包括LIN2.X和LIN1.X,两个标准之间的区别是校验和所计算的包含对象不同;
[0010]步骤3:根据用户设定的LIN总线帧特征,设定被解码信号的波特率和数字比较器选取参考值,并设定采样点位置,参考值包括触发电平或阈值,采样点位置决定了解码器将在某一位的哪一个位置时判别该位的逻辑值,被解码的总线信号经过触发电平后的信号称为DEC_LIN信号;
[0011 ]步骤4:用DEC_LIN信号的波特率的64倍时钟信号作为解码时钟,DEC_LIN信号的波特率不超过20kbps,解码时钟由分频时钟模块生成,分频时钟模块将400MHz的时钟信号按照被解码信号波特率的64倍频率值进行分频;
[0012]步骤5:当检测到总线信号的电平由隐性电平转为显性电平后,解码模块发出一个“类同步间隔段开头”标识,在“类同步间隔段开头”标识发出后,如果连续检测到不满3个连续的显性电平位后,跳转到隐性电平,则说明此处是帧的内部,舍弃,重新查找“类帧开头”,如果连续检测到大于等于3个但是小于13个显性电平位,然后跳转到隐性电平,则判定当前总线上发送的帧是“唤醒帧”,而如果显性电平的持续时间达到13位后,则该帧不是“唤醒帧”而是普通的帧;
[0013]步骤6:在“类同步间隔段开头”后的第一个“上升沿”出现后,解码模块发出“同步间隔段间隔符”标志,“上升沿”指被解码信号由“显性电平”跳转到“隐性电平”;解码状态机会在“同步间隔段间隔符”标志后出现的第一个“下降沿”跳转到下一个状态,“下降沿”指被解码信号由“隐性电平”跳转到“显性电平”;
[0014]步骤7:在“同步间隔段间隔符”标志后,解码模块将检测“同步段起始位”,即一个位时的显性电平,之后解码模块将连续检测8个位时,逐次相应检测出的每个位时所对应的布尔值存入第一8位寄存器的逆序相应位,当第一8位寄存器的8位被依次存满后,对第一8位寄存器的值进行检测,如果该值等于8,H55,则在第8位采样点处,解码模块会发出一个“同步段”标志,如果该寄存器的值不等于8’H55,则在第8位采样点处,解码模块发出一个“同步段错误”标志;
[0015]步骤8:在“同步段错误”标志后,解码模块将检测“同步段结束位”,即一个位时的隐性电平,在“同步段结束位”后,解码模块将检测一个位时的显性电平,即“受保护ID段开始位”,在“受保护ID段开始位”后,解码模块将连续检测8个位时,并将每位解出的逻辑值按照先解出的存入低位的原则,逆序依次存入第二 8位寄存器;
[0016]步骤9:在解出第二8位寄存器的第LSB位后,解码模块将检测一个隐性位,ΒΓ受保护ID段结束位”,同时将判断以下两个逻辑关系是否成立:
[0017]PIF[0] = = (PIF[0]'PIF[1]'PIF[2]'PIF[4])
[0018]PIF[1] = =?(PIF[irPIF[3rPIF[4]~PIF[5])
[0019]如果以上两个逻辑关系均成立,则说明PID的奇偶校验位是正确的,否则说明奇偶校验位错误;
[0020]步骤10:在“受保护ID段结束位”之后,解码器会检测一个隐性位,ΒΓ数据段开始位”,在“数据段开始位”之后,解码器将连续检测8个位时,并按照先解出的逻辑值存入低位的原则,将8个位时所对应的逻辑值逆序存入第三8位的寄存器中;
[0021]步骤11:解码器将检测I个隐性位,ΒΓ数据段停止位”,然后重复步骤10的过程,一直到连续检测到在“数据段结束位”后紧接着检测到I个位时的隐性电平,则认为整个帧结束,解码器会发出一个“帧结束”标志;
[0022]步骤12:在“帧结束”标志后,校验和检测模块根据用户设定的总线标准,来计算校验和,并与解码模块解出的最后一个字节的“数据段”进行对比,如果两者不同,则说明总线上传输的校验和有误,解码模块会发出一个“校验和错误”标志,如果相同,则总线解码部分完成;
[0023]步骤13:用户可选的总线触发类型包括唤醒帧触发、同步间隔段触发、ID触发、数据触发、ID及数据触发、睡眠帧触发、同步间隔段错误触发、奇偶校验错误触发及校验和错误触发,总线触发部分由比较器和触发器组成,用户提前设置好所需要的触发类型,比较器将解码器解出的触发类型与用户设定的触发类型进行实时的对比,如果两者相同,则触发器的状态机会产生一个正向脉冲,表示有触发产生。
[0024]本发明具有的有益效果是:
[0025]本发明采用现场可编程逻辑器件,实现LIN总线的分析与触发技术,实时性强,解码速度快,死区时间小;对LIN总线的分析与触发方法简单,成本低廉;可实现同时对多路LIN总线的分析与触发,可对任意波特率的LIN总线信号进行分析,通用性强;可对LIN总线上传输的各个帧中包含任意个数据字节(byte)进行解码,不拘泥于奇数个或者偶数个。本发明采用现场可编程逻辑器件,实现LIN总线的分析与触发技术。
【附图说明】
[0026]图1为LIN总线普通帧格式示意图。
[0027]图2为LIN总线解码过程的结构示意图。
[0028]图3为LIN总线解码的状态机的工作流程图。
【具体实施方式】
[0029]下面结合附图对本发明进行具体的说明:
[0030]结合图1至图3,一种LIN总线解码、触发和分析方法,包括解码模块,该方法包括:
[0031]步骤1:将总线空闲时总线信号上的I视为隐性电平,O视为显性电平。
[0032]步骤2:根据用户设定的LIN总线帧特征,对输入的LIN总线信号解码标准进行选择,解码标准包括LIN2.X和LIN1.X,两个标准之间的区别是校验和所计算的包含对象不同。
[0033]步骤3:根据用户设定的LIN总线帧特征,设定被解码信号的波特率和数字比较器选取参考值,并设定采样点位置,参考值包括触发电平或阈值,采样点位置决定了解码器将在某一位的哪一个位置时判别该位的逻辑值,被解码的总线信号经过触发电平后的信号称为DEC_LIN信号。
[0034]步骤4:用DEC_LIN信号的波特率的64倍时钟信号作为解码时钟,DEC_LIN信号的波特率不超过20kbps,解码时钟由专门的分频时钟模块生成,分频时钟模块将400MHz的时钟信号按照被解码信号波特率的64倍频率值进行分频。
[0035]步骤5:解码模块首先根据帧条件,检测出“可能的”帧同步头的“开头”,之所以要检测出“可能的”帧同步间隔段的“开头”是因为,解码模块首先采集到的是某一帧的中间位置,或者说非总线空闲的位置。按照LIN总线协议的格式,必须先将“唤醒帧”的可能性排除掉后,然后才能确定该帧是普通的帧。当检测到总线信号的电平由隐性电平转为显性电平后,解码模块发出一个“类同步间隔段开头”标识,表示该位置有可能是帧开头。在“类同步间隔段开头”标识发出后,如果连续检测到不满3个连续的显性电平位后,跳转到隐性电平,则说明此处是帧的内部,舍弃,重新查找“类帧开头”,如果连续检测到大于等于3个但是小于13个显性电平位,然后跳转到隐性电平,则判定当前总线上发送的帧是“唤醒帧”,而如果显性电平的持续时间达到13位后,则该帧不是“唤醒帧”而是普通的帧。
[0036]步骤6:在“类同步间隔段开头”后的第一个“上升沿”出现后,解码模块发出“同步间隔段间隔符”标志,“上升沿”指被解码信号由“显性电平”跳转到“隐性电平”;由于LIN协议本身只规定了“同步间隔段间隔符”的电平极性为隐性电平,但是没有规定该电平持续的时间长度,因此,解码状态机会在“同步间隔段间隔符”标志后出现的第一个“下降沿”跳转到下一个状态,“下降沿”指被解码信号由“隐性电平”跳转到“显性电平”。
[0037]步骤7:在“同步间隔段间隔符”标志后,解码模块将检测“同步段起始位”,即一个位时的显性电平,之后解码模块将连续检测8个位时,逐次相应检测出的每个位时所对应的布尔值存入第一8位寄存器的逆序相应位,当第一8位寄存器的8位被依次存满后,对第一8位寄存器的值进行检测,如果该值等于8,H55,则在第8位采样点处,解码模块会发出一个“同步段”标志,如果该寄存器的值不等于8’H55,则在第8位采样点处,解码模块发出一个“同步段错误”标志。
[0038]步骤8:在“同步段错误”标志后,解码模块将检测“同步段结束位”,即一个位时的隐性电平,在“同步段结束位”后,解码模块将检测一个位时的显性电平,即“受保护ID段开始位”,在“受保护ID段开始位”后,解码模块将连续检测8个位时,并将每位解出的逻辑值按照先解出的存入低位的原则,逆序依次存入第二 8位寄存器;
[0039]步骤9:在解出第二8位寄存器的第LSB位后,解码模块将检测一个隐性位,ΒΓ受保护ID段结束位”,同时将判断以下两个逻辑关系是否成立:
[0040]PIF[0] = = (PIF[0]'PIF[1]'PIF[2]'PIF[4])
[0041]PIF[1] = =?(PIF[irPIF[3rPIF[4]~PIF[5])
[0042]如果以上两个逻辑关系均成立,则说明PID的奇偶校验位是正确的,否则说明奇偶校验位错误。
[0043]步骤10:“受保护ID段结束位”后,解码模块将进入“数据段”(DF)的检测。LIN总线协议并没有规定帧中的哪一部分显示数据长度码的信息,数据的内容和藏毒是由系统设计者根据帧ID事先约定好的,这给解码带来一定的困难。因为解码器是站在“旁观者”的角度来“观察”总线信号,解码器本身是不应该参与总线通信的。因此,解码器本身不能提前知道在某一帧中,总线上会传输几个数据字节。经过分析发现,“数据段”(DF)后面紧邻的“校验和段”(CF)在形式上与“数据段”(DF)是完全一致的。“校验和段”后就是整个帧的结束了,与“校验和”是容易区分出来的。因此,将“校验和段”当作“数据段”来解,在显示屏显示的时候,由软件进行处理(软件接收到解码器发过来的解码信息,整理后再进行显示),不会把“校验和段”显示为“数据段”。
[0044]在“受保护ID段结束位”之后,解码器会检测一个隐性位,ΒΓ数据段开始位”,在“数据段开始位”之后,解码器将连续检测8个位时,并按照先解出的逻辑值存入低位的原贝IJ,将8个位时所对应的逻辑值逆序存入第三8位的寄存器中;
[0045]步骤11:解码器将检测I个隐性位,ΒΓ数据段停止位”,然后重复步骤10的过程,一直到连续检测到在“数据段结束位”后紧接着检测到I个位时的隐性电平,则认为整个帧结束,解码器会发出一个“帧结束”标志。因为如果当前的I个字节数据结束后,后面还继续有数据的话,“数据段结束位”后不可能紧接着I个位时的隐性电平,而应该是I个位时的显性电平,即“数据段开始位”。
[0046]步骤12:在“帧结束”标志后,校验和检测模块会马上根据用户设定的总线标准,SPLIN1.X或LIN2.X,来计算真正的校验和,并与解码模块解出的最后一个字节的“数据段”(其实是校验和段)进行对比,如果两者不同,则说明总线上传输的校验和有误,解码模块会发出一个“校验和错误”标志,如果相同,则总线解码部分完成。
[0047]步骤13:用户可选的总线触发类型包括唤醒帧触发、同步间隔段触发、ID触发、数据触发、ID及数据触发、睡眠帧触发、同步间隔段错误触发、奇偶校验错误触发及校验和错误触发,总线触发部分由比较器和触发器组成,用户提前设置好所需要的触发类型,比较器将解码器解出的触发类型与用户设定的触发类型进行实时的对比,如果两者相同,则触发器的状态机会产生一个正向脉冲,表示有触发产生。
[0048]由于LIN总线信号中不包含“时钟线”,因此,解码模块需要对接收到的总线信号是多少个比特位进行判断。“比特位数据提取模块”的作用就是判断出在一段时间内所接收到的数据是多少个比特位,并且要识别出每一位的逻辑值是多少。
[0049]总线上传输的“比特位数据提取模块”中计数器的工作方式如下:设置计数器:sample_cnt和code_cnt,两者位宽均为6比特位。其中sample_cnt的作用是在从解码模块找到“类同步间隔段开头”开始,在每个解码时钟的上升沿,从O开始自加I计数,一直到记满6位数后,自动跳转到0,继续自加计数。Code_Cnt的作用是从解码模块找到“类同步间隔段开头”开始,在每个解码时钟的上升沿,如果LIN总线信号的电平为显性电平,则Code_Cnt从O开始自加I计数,否则code_cnt的值被置为O。
[0050]“比特位数据提取模块”的工作方式如下:当设定采集位置(CATCH_P0S)时,在sample_cnt = CATCH_P0S 时,判断 code_cnt 的值是否大于 CATCH_P0S/2,如果 code_cnt 的值大于CATCH_P0S/2则说明该位的逻辑值为O,如果code_cnt的值不大于CATCH_P0S/2,则说明该位的逻辑值为I。其中CATCH_P0S的值设定时应介于O到63之间。
[0051]通过软件来循环判断接收到的“类同步间隔段开头”后面是否紧接着有“唤醒帧”或者“同步间隔段间隔符”标志。如果没有,则说明该“类同步间隔段开头”是假的,软件人员应该抛弃该标志,重新搜、判断下一个“类同步间隔段开头”。如果搜索到某一个“类同步间隔段开头”后紧接着是一个“唤醒帧”标志,则说明当前帧是“唤醒帧”,软件人员应该按照“唤醒帧”的格式,在屏幕上响应的位置绘制“唤醒帧”的解码符号。如果搜索到某一个“类同步间隔段开头”后紧跟着一个“同步间隔段间隔符”标志,则说明该帧是普通帧,软件人员应该按照“普通帧”的格式在屏幕上响应的位置绘制该帧的解码符号。
[0052]如果搜索到某一个“数据段开始位”后面紧跟着一个“数据段结束位”,则说明该位置是真正的帧结束,软件人员在绘制解码符号的时候,应该抛弃该“数据段开始位”。这种处理的必要性是由于将LIN总线的“校验和段”当做普通的“数据”进行解码所要求的。
[0053]实施例1
[0054]LIN总线解码的状态机工作方式如下:
[0055]状态O:总线空闲状态,用来复位状态机,并将所有计数器的值清零。如果检测到DEC_LIN的值为1(即当前总线电平处于隐性电平,下同),则状态机将跳转到状态I;如果检测到DEC_LIN的值为0(即当前总线电平处于显性电平,下同),则状态机将一直保持在状态O。
[0056]状态1:“类同步间隔段开头”提取状态,在状态机从状态O跳转到状态I的时候,解码模块会发出“类同步间隔段开头”标志。在当前状态下,解码模块将连续采集13个位,并根据连续采集的结果进行状态跳转:如果连续采集到不超过3个位的O后,紧接着DEC_LIN就变成了 I,则说明当前位置不是帧开头,状态机将返回状态O,进行DEC_LIN的检测;如果连续采集到超过3个位且小于13个位的O后,紧接着DEC_LIN变成I,则说明该位置是“唤醒帧”,状态机跳转到状态4;如果连续采集到超过13个位的O后,DEC_LIN变成I,则说明该位置是普通帧的“同步间隔段间隔符”,状态机跳转到状态2。
[0057]状态2:“同步间隔段间隔符”提取状态,用来提取“同步间隔段间隔符”。由于LIN协议标准只是规定“同步间隔段的间隔符是至少持续I位的隐性电平”,因此,状态3将一直采集,直到采集到DEC_LIN跳转为O,状态机才会跳转到状态3,否则状态机将一直停留在状态2。
[0058]状态3:“同步段开始位”提取状态,状态机将采集I位的0,在sample_cnt = CATCH_POS时,解码模块发出一个“同步段开始位”标志,在sample_cnt = 63时状态机跳转到状态5。
[0059]状态4:“唤醒帧”提取状态,解码模块发出“唤醒帧”标志,在sample_Cnt= 63状态机跳转到状态O。
[0060]状态5: “同步段”提取状态,状态机将逐位采集,连续采集8位,并将第i位的逻辑值存入第一8位寄存器SBF的第i位中,i的取值范围是O至7。如果i不等于7,则状态机将一直保持在状态4,如果i等于7,则状态机跳转到状态6。
[0061]状态6:“同步段停止位”提取状态,状态机将采集I位的隐性电平。对第一8位寄存器SBF的逻辑值进行判断,如果SBF = S’H55,则说明同步段是正确的,解码模块输出“同步段停止位”标志,状态机跳转到状态7;否则,解码模块输出“同步段错误”标志,状态机跳转到状态7。
[0062]状态7:“同步段间隔符”提取状态,由于LIN总线协议并没有明确规定“同步段间隔符”的长度,因此,状态机7将一直检测DEC_LIN变为O,然后状态机跳转到状态8,同时解码器发出一个“同步段间隔符”标志,否则一直停留在状态7中。
[0063]状态8:“受保护ID段开始位”提取状态,在该状态下,解码器将检测I位的0,并发出一个“受保护ID开始位”标志,同时状态机跳转到状态9。
[0064]状态9:“受保护ID段开始位”提取状态,状态机将连续提取8位,并按照提取的先后顺序,依次存入第二8位寄存器PIF的第η位(η从O起计数,计到7为止)。在第7位提取完成后,马上判断以下两个逻辑关系式是否同时成立,如果同时成立,贝1Jid_check_reg=l,否则id_check_reg = 0。第7位提取完成后,状态机跳转到状态10。
[0065]PIF[0] = = (PIF[0]'PIF[1]'PIF[2]'PIF[4])
[0066]PIF[1] = =?(PIF[irPIF[3rPIF[4]~PIF[5])
[0067]状态10:“受保护ID段结束位”判断状态,如果id_check_reg=l,则解码器发出一个“受保护ID段结束位”标志,否则解码器发出一个“受保护ID奇偶校验错误”标志。在samp I e_cnt = CATCH_P0S时,状态机跳转到状态11。
[0068]状态11:“受保护ID段应答间隔”提取状态,由于LIN总线协议没有明确规定“受保护ID段应答间隔”的长度,因此状态机11如果检测不到DEC_LIN变为O,则其将一直停留在状态11,否则状态跳转到状态12。
[0069]状态12: “数据段开始位”判断提取状态,状态机将检测I位,并在sample_cnt =CATCH_P0S时检测到DEC_LIN = 0,说明此处是下一个“数据段开始位”,解码器输出一个“数据段开始位”标志,在sample_cnt = 63时跳转到状态13;如果在sample_cnt = CATCH_POS时检测到DEC_L IN = I,则说明已经是“帧结束”,在samp I e_cnt = 6 3时跳转到状态15。
[0070]状态13:“数据段”提取状态,状态机将连续提取8位,并按照提取的先后顺序,将第m位(m从O开始计数,记到7为止)依次存入第三8位寄存器的第7-m位,每当bit_cnt = 7时,byte_cnt将自加I,用以记录当前帧中传输的数据字节数。其中“校验和段”当作普通的“数据段”进行解码。bit_cnt计数器的宽度为3位。每当bit_cnt = 7且sample_cnt = CATCH_POS时,解码器将输出一个“数据”标志,sample_Cnt = 63时状态跳转到状态14。[0071 ] 状态14: “数据段结束位”提取状态,状态机将在sample_cnt = CATCH_P0S时,检测I个隐性位,在s amp le_cnt = 63时跳转到状态12。
[0072]状态15:“帧结束”提取状态,状态机将在sample_Cnt= 63时输出一个“帧结束”标志,同时状态机跳转到状态I。
[0073]本发明采用硬件解码技术,能够实现多路总线实时解码,解码速度快,效率高,只需要一片现场可编程逻辑器件,成本低。
[0074]当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
【主权项】
1.一种LIN总线解码、触发和分析方法,其特征在于,包括解码模块,该方法包括: 步骤1:将总线空闲时总线信号上的I视为隐性电平,O视为显性电平; 步骤2:根据用户设定的LIN总线帧特征,对输入的LIN总线信号解码标准进行选择,解码标准包括LIN2.X和LINl.X ; 步骤3:根据用户设定的LIN总线帧特征,设定被解码信号的波特率和数字比较器选取参考值,并设定采样点位置,参考值包括触发电平或阈值,采样点位置决定了解码器将在某一位的哪一个位置时判别该位的逻辑值,被解码的总线信号经过触发电平后的信号称为DEC_LIN信号; 步骤4:用DEC_LIN信号的波特率的64倍时钟信号作为解码时钟,DEC_LIN信号的波特率不超过20kbps,解码时钟由分频时钟模块生成,分频时钟模块将400MHz的时钟信号按照被解码信号波特率的64倍频率值进行分频; 步骤5:当检测到总线信号的电平由隐性电平转为显性电平后,解码模块发出一个“类同步间隔段开头”标识,在“类同步间隔段开头”标识发出后,如果连续检测到不满3个连续的显性电平位后,跳转到隐性电平,则说明此处是帧的内部,舍弃,重新查找“类帧开头”,如果连续检测到大于等于3个但是小于13个显性电平位,然后跳转到隐性电平,则判定当前总线上发送的帧是“唤醒帧”,而如果显性电平的持续时间达到13位,则该帧不是“唤醒帧”而是普通的帧; 步骤6:在“类同步间隔段开头”后的第一个“上升沿”出现后,解码模块发出“同步间隔段间隔符”标志,“上升沿”指被解码信号由“显性电平”跳转到“隐性电平”;解码状态机会在“同步间隔段间隔符”标志后出现的第一个“下降沿”跳转到下一个状态,“下降沿”指被解码信号由“隐性电平”跳转到“显性电平”; 步骤7:在“同步间隔段间隔符”标志后,解码模块将检测“同步段起始位”,即一个位时的显性电平,之后解码模块将连续检测8个位时,逐次相应检测出的每个位时所对应的布尔值存入第一8位寄存器的逆序相应位,当第一8位寄存器的8位被依次存满后,对第一8位寄存器的值进行检测,如果该值等于8 ’ H55,则在第8位采样点处,解码模块会发出一个“同步段”标志,如果该寄存器的值不等于8’H55,则在第8位采样点处,解码模块发出一个“同步段错误”标志; 步骤8:在“同步段错误”标志后,解码模块将检测“同步段结束位”,即一个位时的隐性电平,在“同步段结束位”后,解码模块将检测一个位时的显性电平,即“受保护ID段开始位”,在“受保护ID段开始位”后,解码模块将连续检测8个位时,并将每位解出的逻辑值按照先解出的存入低位的原则,逆序依次存入第二 8位寄存器; 步骤9:在解出第二8位寄存器的第LSB位后,解码模块将检测一个隐性位,即“受保护ID段结束位”,同时将判断以下两个逻辑关系是否成立: PIF[0] = = (PIF[0]'PIF[1]'PIF[2]'PIF[4]) PIF[1] = =?(PIF[irPIF[3]~PIF[4rPIF[5]) 如果以上两个逻辑关系均成立,则说明PID的奇偶校验位是正确的,否则说明奇偶校验位错误; 步骤10:在“受保护ID段结束位”之后,解码器会检测一个隐性位,即“数据段开始位”,在“数据段开始位”之后,解码器将连续检测8个位时,并按照先解出的逻辑值存入低位的原贝IJ,将8个位时所对应的逻辑值逆序存入第三8位的寄存器中; 步骤11:解码器将检测I个隐性位,即“数据段停止位”,然后重复步骤10的过程,一直到连续检测到在“数据段结束位”后紧接着检测到I个位时的隐性电平,则认为整个帧结束,解码器会发出一个“帧结束”标志; 步骤12:在“帧结束”标志后,校验和检测模块根据用户设定的总线标准,来计算校验和,并与解码模块解出的最后一个字节的“数据段”进行对比,如果两者不同,则说明总线上传输的校验和有误,解码模块会发出一个“校验和错误”标志,如果相同,则总线解码部分完成; 步骤13:用户可选的总线触发类型包括唤醒帧触发、同步间隔段触发、ID触发、数据触发、ID及数据触发、睡眠帧触发、同步间隔段错误触发、奇偶校验错误触发及校验和错误触发,总线触发部分由比较器和触发器组成,用户提前设置好所需要的触发类型,比较器将解码器解出的触发类型与用户设定的触发类型进行实时的对比,如果两者相同,则触发器的状态机会产生一个正向脉冲,表示有触发产生。
【文档编号】G06F13/42GK106021165SQ201610323399
【公开日】2016年10月12日
【申请日】2016年5月16日
【发明人】刘纪龙, 贺增昊, 刘永, 姜正吉, 张成森, 刘洪庆, 向前, 邵成华
【申请人】中国电子科技集团公司第四十研究所, 中国电子科技集团公司第四十一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1