CN106021165B - 一种lin总线解码、触发和分析技术 - Google Patents
一种lin总线解码、触发和分析技术 Download PDFInfo
- Publication number
- CN106021165B CN106021165B CN201610323399.6A CN201610323399A CN106021165B CN 106021165 B CN106021165 B CN 106021165B CN 201610323399 A CN201610323399 A CN 201610323399A CN 106021165 B CN106021165 B CN 106021165B
- Authority
- CN
- China
- Prior art keywords
- triggering
- decoder module
- level
- bus
- mark
- 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.)
- Expired - Fee Related
Links
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明提供了一种LIN总线解码、触发和分析方法,能够将LIN总线传输的数据进行实时解码,并能够根据用户设定的不同触发条件,在准确的位置上进行触发,并能将采集范围内所有帧的信息汇总成事件列表的技术。本发明针对现有技术的缺点采用硬件解码技术,能够实现多路总线实时解码,解码速度快,效率高,只需要一片现场可编程逻辑器件,成本低。对LIN总线的分析与触发方法简单,成本低廉,可实现同时对多路LIN总线的分析与触发,可对任意波特率的LIN总线信号进行分析,通用性强。
Description
技术领域
本发明涉及LIN总线领域,具体涉及一种LIN总线解码、触发和分析方法。
背景技术
LIN总线是一种基于增强ISO9141标准的低成本单总线实现方法。该总线网络有一个主设备,多个从设备。所有的消息都由主设备发起,但是只有一个从设备响应,故不需要进行碰撞检测和仲裁。该通信基于UART/SCI,数据速率在1kb/s至20kb/s之间,使EMI达到最小。该总线总是处于两种状态之一:活动状态或睡眠状态。
现有的LIN总线分析与触发技术都是基于软件算法处理的,具体的说就是:用软件对接收到的信号数字量化后成为逻辑0或逻辑1,然后根据LIN的协议内容,逐位分析解码,然后将解码后的信息与用户设定的触发条件进行比较。
现有的LIN总线分析与触发技术都是采用软件解码,由于软件固有的特点决定这种解码方式的速度慢,尤其是当测量仪器同时对多路不同的总线信号进行解码分析与触发时,速度更慢。其次软件在解码过程中,不能同时采集总线上仍然在传输的数据,否则先前得到的数据会被“冲掉”,这就大大增加了解码的“死区时间”。再次,现有的技术的解码要求LIN总线上传输的数据个数必须是奇数个或偶数个。
发明内容
针对现有LIN总线解码速度慢,实时性差的问题,本发明提供了一种LIN总线解码、触发和分析方法。
本发明采用以下的技术方案:
一种LIN总线解码、触发和分析方法,包括解码模块,该方法包括:
步骤1:将总线空闲时总线信号上的1视为隐性电平,0视为显性电平;
步骤2:根据用户设定的LIN总线帧特征,对输入的LIN总线信号解码标准进行选择,解码标准包括LIN2.X和LIN1.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[1]^PIF[3]^PIF[4]^PIF[5])
如果以上两个逻辑关系均成立,则说明PID的奇偶校验位是正确的,否则说明奇偶校验位错误;
步骤10:在“受保护ID段结束位”之后,解码模块会检测一个隐性位,即“数据段开始位”,在“数据段开始位”之后,解码模块将连续检测8个位时,并按照先解出的逻辑值存入低位的原则,将8个位时所对应的逻辑值逆序存入第三8位的寄存器中;
步骤11:解码模块将检测1个隐性位,即“数据段停止位”,然后重复步骤10的过程,一直到连续检测到在“数据段结束位”后紧接着检测到1个位时的隐性电平,则认为整个帧结束,解码模块会发出一个“帧结束”标志;
步骤12:在“帧结束”标志后,校验和检测模块根据用户设定的总线标准,来计算校验和,并与解码模块解出的最后一个字节的“数据段”进行对比,如果两者不同,则说明总线上传输的校验和有误,解码模块会发出一个“校验和错误”标志,如果相同,则总线解码部分完成;
步骤13:用户可选的总线触发类型包括唤醒帧触发、同步间隔段触发、ID触发、数据触发、ID及数据触发、睡眠帧触发、同步间隔段错误触发、奇偶校验错误触发及校验和错误触发,总线触发部分由比较器和触发器组成,用户提前设置好所需要的触发类型,比较器将解码模块解出的触发类型与用户设定的触发类型进行实时的对比,如果两者相同,则触发器的状态机会产生一个正向脉冲,表示有触发产生。
本发明具有的有益效果是:
本发明采用现场可编程逻辑器件,实现LIN总线的分析与触发技术,实时性强,解码速度快,死区时间小;对LIN总线的分析与触发方法简单,成本低廉;可实现同时对多路LIN总线的分析与触发,可对任意波特率的LIN总线信号进行分析,通用性强;可对LIN总线上传输的各个帧中包含任意个数据字节(byte)进行解码,不拘泥于奇数个或者偶数个。本发明采用现场可编程逻辑器件,实现LIN总线的分析与触发技术。
附图说明
图1为LIN总线普通帧格式示意图。
图2为LIN总线解码过程的结构示意图。
图3为LIN总线解码的状态机的工作流程图。
具体实施方式
下面结合附图对本发明进行具体的说明:
结合图1至图3,一种LIN总线解码、触发和分析方法,包括解码模块,该方法包括:
步骤1:将总线空闲时总线信号上的1视为隐性电平,0视为显性电平。
步骤2:根据用户设定的LIN总线帧特征,对输入的LIN总线信号解码标准进行选择,解码标准包括LIN2.X和LIN1.X,两个标准之间的区别是校验和所计算的包含对象不同。
步骤3:根据用户设定的LIN总线帧特征,设定被解码信号的波特率和数字比较器选取参考值,并设定采样点位置,参考值包括触发电平或阈值,采样点位置决定了解码模块将在某一位的哪一个位置时判别该位的逻辑值,被解码的总线信号经过触发电平后的信号称为DEC_LIN信号。
步骤4:用DEC_LIN信号的波特率的64倍时钟信号作为解码时钟,DEC_LIN信号的波特率不超过20kbps,解码时钟由专门的分频时钟模块生成,分频时钟模块将400MHz的时钟信号按照被解码信号波特率的64倍频率值进行分频。
步骤5:解码模块首先根据帧条件,检测出“可能的”帧同步头的“开头”,之所以要检测出“可能的”帧同步间隔段的“开头”是因为,解码模块首先采集到的是某一帧的中间位置,或者说非总线空闲的位置。按照LIN总线协议的格式,必须先将“唤醒帧”的可能性排除掉后,然后才能确定该帧是普通的帧。当检测到总线信号的电平由隐性电平转为显性电平后,解码模块发出一个“类同步间隔段开头”标识,表示该位置有可能是帧开头。在“类同步间隔段开头”标识发出后,如果连续检测到不满3个连续的显性电平位后,跳转到隐性电平,则说明此处是帧的内部,舍弃,重新查找“类帧开头”,如果连续检测到大于等于3个但是小于13个显性电平位,然后跳转到隐性电平,则判定当前总线上发送的帧是“唤醒帧”,而如果显性电平的持续时间达到13位后,则该帧不是“唤醒帧”而是普通的帧。
步骤6:在“类同步间隔段开头”后的第一个“上升沿”出现后,解码模块发出“同步间隔段间隔符”标志,“上升沿”指被解码信号由“显性电平”跳转到“隐性电平”;由于LIN协议本身只规定了“同步间隔段间隔符”的电平极性为隐性电平,但是没有规定该电平持续的时间长度,因此,解码状态机会在“同步间隔段间隔符”标志后出现的第一个“下降沿”跳转到下一个状态,“下降沿”指被解码信号由“隐性电平”跳转到“显性电平”。
步骤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[1]^PIF[3]^PIF[4]^PIF[5])
如果以上两个逻辑关系均成立,则说明PID的奇偶校验位是正确的,否则说明奇偶校验位错误。
步骤10:“受保护ID段结束位”后,解码模块将进入“数据段”(DF)的检测。LIN总线协议并没有规定帧中的哪一部分显示数据长度码的信息,数据的内容和藏毒是由系统设计者根据帧ID事先约定好的,这给解码带来一定的困难。因为解码模块是站在“旁观者”的角度来“观察”总线信号,解码模块本身是不应该参与总线通信的。因此,解码模块本身不能提前知道在某一帧中,总线上会传输几个数据字节。经过分析发现,“数据段”(DF)后面紧邻的“校验和段”(CF)在形式上与“数据段”(DF)是完全一致的。“校验和段”后就是整个帧的结束了,与“校验和”是容易区分出来的。因此,将“校验和段”当作“数据段”来解,在显示屏显示的时候,由软件进行处理(软件接收到解码模块发过来的解码信息,整理后再进行显示),不会把“校验和段”显示为“数据段”。
在“受保护ID段结束位”之后,解码模块会检测一个隐性位,即“数据段开始位”,在“数据段开始位”之后,解码模块将连续检测8个位时,并按照先解出的逻辑值存入低位的原则,将8个位时所对应的逻辑值逆序存入第三8位的寄存器中;
步骤11:解码模块将检测1个隐性位,即“数据段停止位”,然后重复步骤10的过程,一直到连续检测到在“数据段结束位”后紧接着检测到1个位时的隐性电平,则认为整个帧结束,解码模块会发出一个“帧结束”标志。因为如果当前的1个字节数据结束后,后面还继续有数据的话,“数据段结束位”后不可能紧接着1个位时的隐性电平,而应该是1个位时的显性电平,即“数据段开始位”。
步骤12:在“帧结束”标志后,校验和检测模块会马上根据用户设定的总线标准,即LIN1.X或LIN2.X,来计算真正的校验和,并与解码模块解出的最后一个字节的“数据段”(其实是校验和段)进行对比,如果两者不同,则说明总线上传输的校验和有误,解码模块会发出一个“校验和错误”标志,如果相同,则总线解码部分完成。
步骤13:用户可选的总线触发类型包括唤醒帧触发、同步间隔段触发、ID触发、数据触发、ID及数据触发、睡眠帧触发、同步间隔段错误触发、奇偶校验错误触发及校验和错误触发,总线触发部分由比较器和触发器组成,用户提前设置好所需要的触发类型,比较器将解码模块解出的触发类型与用户设定的触发类型进行实时的对比,如果两者相同,则触发器的状态机会产生一个正向脉冲,表示有触发产生。
由于LIN总线信号中不包含“时钟线”,因此,解码模块需要对接收到的总线信号是多少个比特位进行判断。“比特位数据提取模块”的作用就是判断出在一段时间内所接收到的数据是多少个比特位,并且要识别出每一位的逻辑值是多少。
总线上传输的“比特位数据提取模块”中计数器的工作方式如下:设置计数器:sample_cnt和code_cnt,两者位宽均为6比特位。其中sample_cnt的作用是在从解码模块找到“类同步间隔段开头”开始,在每个解码时钟的上升沿,从0开始自加1计数,一直到记满6位数后,自动跳转到0,继续自加计数。code_cnt的作用是从解码模块找到“类同步间隔段开头”开始,在每个解码时钟的上升沿,如果LIN总线信号的电平为显性电平,则code_cnt从0开始自加1计数,否则code_cnt的值被置为0。
“比特位数据提取模块”的工作方式如下:当设定采集位置(CATCH_POS)时,在sample_cnt=CATCH_POS时,判断code_cnt的值是否大于CATCH_POS/2,如果code_cnt的值大于CATCH_POS/2则说明该位的逻辑值为0,如果code_cnt的值不大于CATCH_POS/2,则说明该位的逻辑值为1。其中CATCH_POS的值设定时应介于0到63之间。
通过软件来循环判断接收到的“类同步间隔段开头”后面是否紧接着有“唤醒帧”或者“同步间隔段间隔符”标志。如果没有,则说明该“类同步间隔段开头”是假的,软件人员应该抛弃该标志,重新搜、判断下一个“类同步间隔段开头”。如果搜索到某一个“类同步间隔段开头”后紧接着是一个“唤醒帧”标志,则说明当前帧是“唤醒帧”,软件人员应该按照“唤醒帧”的格式,在屏幕上响应的位置绘制“唤醒帧”的解码符号。如果搜索到某一个“类同步间隔段开头”后紧跟着一个“同步间隔段间隔符”标志,则说明该帧是普通帧,软件人员应该按照“普通帧”的格式在屏幕上响应的位置绘制该帧的解码符号。
如果搜索到某一个“数据段开始位”后面紧跟着一个“数据段结束位”,则说明该位置是真正的帧结束,软件人员在绘制解码符号的时候,应该抛弃该“数据段开始位”。这种处理的必要性是由于将LIN总线的“校验和段”当做普通的“数据”进行解码所要求的。
实施例1
LIN总线解码的状态机工作方式如下:
状态0:总线空闲状态,用来复位状态机,并将所有计数器的值清零。如果检测到DEC_LIN的值为1(即当前总线电平处于隐性电平,下同),则状态机将跳转到状态1;如果检测到DEC_LIN的值为0(即当前总线电平处于显性电平,下同),则状态机将一直保持在状态0。
状态1:“类同步间隔段开头”提取状态,在状态机从状态0跳转到状态1的时候,解码模块会发出“类同步间隔段开头”标志。在当前状态下,解码模块将连续采集13个位,并根据连续采集的结果进行状态跳转:如果连续采集到不超过3个位的0后,紧接着DEC_LIN就变成了1,则说明当前位置不是帧开头,状态机将返回状态0,进行DEC_LIN的检测;如果连续采集到超过3个位且小于13个位的0后,紧接着DEC_LIN变成1,则说明该位置是“唤醒帧”,状态机跳转到状态4;如果连续采集到超过13个位的0后,DEC_LIN变成1,则说明该位置是普通帧的“同步间隔段间隔符”,状态机跳转到状态2。
状态2:“同步间隔段间隔符”提取状态,用来提取“同步间隔段间隔符”。由于LIN协议标准只是规定“同步间隔段的间隔符是至少持续1位的隐性电平”,因此,状态3将一直采集,直到采集到DEC_LIN跳转为0,状态机才会跳转到状态3,否则状态机将一直停留在状态2。
状态3:“同步段开始位”提取状态,状态机将采集1位的0,在sample_cnt=CATCH_POS时,解码模块发出一个“同步段开始位”标志,在sample_cnt=63时状态机跳转到状态5。
状态4:“唤醒帧”提取状态,解码模块发出“唤醒帧”标志,在sample_cnt=63状态机跳转到状态0。
状态5:“同步段”提取状态,状态机将逐位采集,连续采集8位,并将第i位的逻辑值存入第一8位寄存器SBF的第i位中,i的取值范围是0至7。如果i不等于7,则状态机将一直保持在状态4,如果i等于7,则状态机跳转到状态6。
状态6:“同步段停止位”提取状态,状态机将采集1位的隐性电平。对第一8位寄存器SBF的逻辑值进行判断,如果SBF=8’H55,则说明同步段是正确的,解码模块输出“同步段停止位”标志,状态机跳转到状态7;否则,解码模块输出“同步段错误”标志,状态机跳转到状态7。
状态7:“同步段间隔符”提取状态,由于LIN总线协议并没有明确规定“同步段间隔符”的长度,因此,状态机7将一直检测DEC_LIN变为0,然后状态机跳转到状态8,同时解码模块发出一个“同步段间隔符”标志,否则一直停留在状态7中。
状态8:“受保护ID段开始位”提取状态,在该状态下,解码模块将检测1位的0,并发出一个“受保护ID开始位”标志,同时状态机跳转到状态9。
状态9:“受保护ID段开始位”提取状态,状态机将连续提取8位,并按照提取的先后顺序,依次存入第二8位寄存器PIF的第n位(n从0起计数,计到7为止)。在第7位提取完成后,马上判断以下两个逻辑关系式是否同时成立,如果同时成立,则id_check_reg=1,否则id_check_reg=0。第7位提取完成后,状态机跳转到状态10。
PIF[0]==(PIF[0]^PIF[1]^PIF[2]^PIF[4])
PIF[1]==~(PIF[1]^PIF[3]^PIF[4]^PIF[5])
状态10:“受保护ID段结束位”判断状态,如果id_check_reg=1,则解码模块发出一个“受保护ID段结束位”标志,否则解码模块发出一个“受保护ID奇偶校验错误”标志。在sample_cnt=CATCH_POS时,状态机跳转到状态11。
状态11:“受保护ID段应答间隔”提取状态,由于LIN总线协议没有明确规定“受保护ID段应答间隔”的长度,因此状态机11如果检测不到DEC_LIN变为0,则其将一直停留在状态11,否则状态跳转到状态12。
状态12:“数据段开始位”判断提取状态,状态机将检测1位,并在sample_cnt=CATCH_POS时检测到DEC_LIN=0,说明此处是下一个“数据段开始位”,解码模块输出一个“数据段开始位”标志,在sample_cnt=63时跳转到状态13;如果在sample_cnt=CATCH_POS时检测到DEC_LIN=1,则说明已经是“帧结束”,在sample_cnt=63时跳转到状态15。
状态13:“数据段”提取状态,状态机将连续提取8位,并按照提取的先后顺序,将第m位(m从0开始计数,记到7为止)依次存入第三8位寄存器的第7-m位,每当bit_cnt=7时,byte_cnt将自加1,用以记录当前帧中传输的数据字节数。其中“校验和段”当作普通的“数据段”进行解码。bit_cnt计数器的宽度为3位。每当bit_cnt=7且sample_cnt=CATCH_POS时,解码模块将输出一个“数据”标志,sample_cnt=63时状态跳转到状态14。
状态14:“数据段结束位”提取状态,状态机将在sample_cnt=CATCH_POS时,检测1个隐性位,在sample_cnt=63时跳转到状态12。
状态15:“帧结束”提取状态,状态机将在sample_cnt=63时输出一个“帧结束”标志,同时状态机跳转到状态1。
本发明采用硬件解码技术,能够实现多路总线实时解码,解码速度快,效率高,只需要一片现场可编程逻辑器件,成本低。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
Claims (1)
1.一种LIN总线解码、触发和分析方法,其特征在于,包括解码模块,该方法包括:
步骤1:将总线空闲时总线信号上的1视为隐性电平,0视为显性电平;
步骤2:根据用户设定的LIN总线帧特征,对输入的LIN总线信号解码标准进行选择,解码标准包括LIN2.X和LIN1.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[1]^PIF[3]^PIF[4]^PIF[5])
如果以上两个逻辑关系均成立,则说明PID的奇偶校验位是正确的,否则说明奇偶校验位错误;
步骤10:在“受保护ID段结束位”之后,解码模块会检测一个隐性位,即“数据段开始位”,在“数据段开始位”之后,解码模块将连续检测8个位时,并按照先解出的逻辑值存入低位的原则,将8个位时所对应的逻辑值逆序存入第三8位的寄存器中;
步骤11:解码模块将检测1个隐性位,即“数据段停止位”,然后重复步骤10的过程,一直到连续检测到在“数据段结束位”后紧接着检测到1个位时的隐性电平,则认为整个帧结束,解码模块会发出一个“帧结束”标志;
步骤12:在“帧结束”标志后,校验和检测模块根据用户设定的总线标准,来计算校验和,并与解码模块解出的最后一个字节的“数据段”进行对比,如果两者不同,则说明总线上传输的校验和有误,解码模块会发出一个“校验和错误”标志,如果相同,则总线解码部分完成;
步骤13:用户可选的总线触发类型包括唤醒帧触发、同步间隔段触发、ID触发、数据触发、ID及数据触发、睡眠帧触发、同步间隔段错误触发、奇偶校验错误触发及校验和错误触发,总线触发部分由比较器和触发器组成,用户提前设置好所需要的触发类型,比较器将解码模块解出的触发类型与用户设定的触发类型进行实时的对比,如果两者相同,则触发器的状态机会产生一个正向脉冲,表示有触发产生。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610323399.6A CN106021165B (zh) | 2016-05-16 | 2016-05-16 | 一种lin总线解码、触发和分析技术 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610323399.6A CN106021165B (zh) | 2016-05-16 | 2016-05-16 | 一种lin总线解码、触发和分析技术 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106021165A CN106021165A (zh) | 2016-10-12 |
CN106021165B true CN106021165B (zh) | 2019-01-22 |
Family
ID=57097326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610323399.6A Expired - Fee Related CN106021165B (zh) | 2016-05-16 | 2016-05-16 | 一种lin总线解码、触发和分析技术 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106021165B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391401B (zh) * | 2017-07-03 | 2019-06-21 | 北京亚华意诺斯新能源科技有限公司 | 一种数据读取方法及系统 |
CN109842575B (zh) * | 2017-11-27 | 2021-08-03 | 中国航空工业集团公司西安航空计算技术研究所 | 一种429总线接收节点大容差采样电路 |
CN109521239A (zh) * | 2018-11-09 | 2019-03-26 | 中电科仪器仪表有限公司 | 一种示波器中arinc429总线协议分析与触发系统及方法 |
CN109521240A (zh) * | 2018-11-12 | 2019-03-26 | 中电科仪器仪表有限公司 | 一种基于示波器的usb总线硬件触发与解码方法 |
CN114500153A (zh) * | 2022-01-24 | 2022-05-13 | 易展 | 一种lin控制器设计及其运行方法 |
CN115834304B (zh) * | 2023-02-14 | 2023-05-09 | 苏州萨沙迈半导体有限公司 | Lin协议波特率检测装置及芯片设备 |
CN117201366B (zh) * | 2023-09-18 | 2024-08-30 | 苏州纳芯微电子股份有限公司 | 基于lin总线的波特率检测方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1905541A (zh) * | 2005-05-24 | 2007-01-31 | 阿瓦戈科技通用Ip(新加坡)股份有限公司 | 编码和解码分组化数据 |
CN102035564A (zh) * | 2009-10-06 | 2011-04-27 | Nxp股份有限公司 | 收发机 |
CN102355382A (zh) * | 2011-09-28 | 2012-02-15 | 东南大学 | 一种控制器局域网总线分析与触发的方法 |
CN103381793A (zh) * | 2013-07-12 | 2013-11-06 | Tcl集团股份有限公司 | 一种机动车前挡风玻璃的自动清洁系统及其清洁方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2896368B1 (fr) * | 2006-01-18 | 2008-03-14 | Atmel Corp | Appareil pour ameliorer l'efficacite du microprogramme pour une interface serie multitrame |
-
2016
- 2016-05-16 CN CN201610323399.6A patent/CN106021165B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1905541A (zh) * | 2005-05-24 | 2007-01-31 | 阿瓦戈科技通用Ip(新加坡)股份有限公司 | 编码和解码分组化数据 |
CN102035564A (zh) * | 2009-10-06 | 2011-04-27 | Nxp股份有限公司 | 收发机 |
CN102355382A (zh) * | 2011-09-28 | 2012-02-15 | 东南大学 | 一种控制器局域网总线分析与触发的方法 |
CN103381793A (zh) * | 2013-07-12 | 2013-11-06 | Tcl集团股份有限公司 | 一种机动车前挡风玻璃的自动清洁系统及其清洁方法 |
Non-Patent Citations (2)
Title |
---|
LIN总线在车身控制中的应用;刘晶晶 等;《电子设计应用》;20040930;第102-104页 |
基于LIN总线的汽车中央控制器;陈亮;《中国优秀硕士学位论文全文数据库信息科技辑》;20090215;第I140-200页 |
Also Published As
Publication number | Publication date |
---|---|
CN106021165A (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106021165B (zh) | 一种lin总线解码、触发和分析技术 | |
CN103995764B (zh) | 一种具有串行总线协议连续触发功能的逻辑分析仪 | |
CN102355382A (zh) | 一种控制器局域网总线分析与触发的方法 | |
CN107707446A (zh) | 一种基于fpga的sent总线解码、触发和分析方法 | |
CN1980156B (zh) | 限定的异常检测方法和装置 | |
CN104506376B (zh) | 一种具有帧起始敏感同步触发功能的多通道冗余式can总线测试系统 | |
CN105281776B (zh) | 一种可纠错的曼彻斯特解码装置及其方法 | |
CN105680947B (zh) | 一种可滤除毛刺的串行数据接收方法 | |
CN108390752A (zh) | 信号接收方法 | |
CN106301654B (zh) | 一种时间触发以太网的时间信号采样方法 | |
CN105703885A (zh) | 基于曼彻斯特码的解析方法及装置 | |
CN102298565A (zh) | 一种异步串行总线信号的解码与触发方法 | |
CN112787984B (zh) | 一种基于相关分析的车载网络异常检测方法及系统 | |
CN105116318A (zh) | 一种逻辑分析仪中实现毛刺检测的方法 | |
CN104917645A (zh) | 一种在线检测报文传输超时的方法与装置 | |
CN111404542A (zh) | 一种双指数核信号计数方法及装置 | |
CN105490777A (zh) | 卫星遥测数据野值剔除预处理方法 | |
CN103176014B (zh) | 一种波形数据解码装置及示波器 | |
CN109521239A (zh) | 一种示波器中arinc429总线协议分析与触发系统及方法 | |
CN109521942A (zh) | 一种基于高分辨率示波器的can总线协议分析系统及方法 | |
CN106707034A (zh) | 基于Windows系统函数和多线程技术的脉冲信号检测方法 | |
CN101145863B (zh) | 检测系统帧头偏移的装置和方法 | |
CN116827641A (zh) | 一种车载can总线异常流量检测溯源方法及系统 | |
CN104639176A (zh) | Bmc信号的异步解码器及方法 | |
CN109521240A (zh) | 一种基于示波器的usb总线硬件触发与解码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190122 Termination date: 20210516 |