首页> 中国专利> 一种传输协议解码方法、装置及传输协议解码芯片

一种传输协议解码方法、装置及传输协议解码芯片

摘要

本发明适用于通信领域,提供了一种传输协议解码方法、装置及传输协议解码芯片,所述方法包括下述步骤:生成振荡信号;检测帧起始信号,并在检测到帧起始信号时,输出采样控制信号;接收到采样控制信号后,在帧起始字节低电平位数的时间周期内对振荡信号的振荡周期进行计数,并对计数值进行除法运算,输出商和余数;根据商和余数确定采样周期,以生成采样脉冲,并根据采样脉冲对数据字节进行解码。本发明在帧起始字节低电平位数的时间周期内对振荡信号的振荡周期进行计数,并对计数值进行除法运算,得到商和余数,根据商和余数进行解码,没有积累误差产生,大大提高了解码的准确率,并且实现简单,成本低,稳定性好。

著录项

  • 公开/公告号CN103561008A

    专利类型发明专利

  • 公开/公告日2014-02-05

    原文格式PDF

  • 申请/专利权人 深圳市明微电子股份有限公司;

    申请/专利号CN201310513788.1

  • 申请日2013-10-25

  • 分类号H04L29/06;H05B37/02;

  • 代理机构深圳中一专利商标事务所;

  • 代理人张全文

  • 地址 518000 广东省深圳市南山区高新技术产业园南区高新南一道015号国微研发大厦三层

  • 入库时间 2024-02-19 22:31:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-11-02

    授权

    授权

  • 2014-03-12

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20131025

    实质审查的生效

  • 2014-02-05

    公开

    公开

说明书

技术领域

本发明属于通信领域,尤其涉及一种传输协议解码方法、装置及传输协议 解码芯片。

背景技术

随着数字技术及计算机技术的应用和普及,出现了电脑调光台,并先后出 现了D54、AVAB、CMX、PMX、EMX等模拟及数字通信协议。由于以上协 议标准是各生产厂家各自的协议标准,因而它们之间的兼容性不好,设备之间 的相互通用存在问题。后来,为了解决各个厂家设备通用性的问题,美国剧场 技术协会(United State Institute for Theatre Technology,USITT)于20世纪80 年代初制定了DMX512协议。DMX512协议是一种数字多路复用(Digital  Multiplex,DMX)协议。协议制定后,经过修改,USITT于1990年将DMX512 协议更规范,形成了DMX512-1990。目前几乎所有的灯光及舞台设备生产厂商 都支持此控制协议,作为广泛采用的数字灯光数据协议,DMX512-1990也成为 灯光控制的国际标准。

DMX512协议的统一使得各厂家的设备可相互连接,兼容性大大提高。同 时,由于DMX512协议采用串行方式传送数字信号,控台与设备之间只要一根 信号线即可,大大简化了控制台与设备之间的连接线。

DMX512协议可通过在总线上发送数据包来实现对灯光设备的亮度调节。 协议对数据包的每一部分的时序都做了极为严格的规定。每字节有11位数据, 1位低电平起始位,8位数据位和2位高电平停止位。一帧数据包含1个地址的 亮度数据,第1帧是第1个地址的数据,第2帧是第2个地址的数据,以此类 推,512帧可以传送512个地址的数据。DMX512时序图如图1所示。

说明如下表:

编号 说明 时隙要求 1 帧起始或结束 88us 2 帧起始标志位 8us 3 1个完整字节 11bits数据 4 字节起始标志位,必需为“0” 1bits数据 5 字节的LSB 1bits数据 6 字节的MSB 1bits数据 7 字节结束标志位,必需为“1” 1bits数据 8 字节结束标志位,必需为“1” 1bits数据 9 相邻字节间时间宽度,必需为“1” <1s 10 相邻帧时间宽度,必需为“1” <1s 11 每帧数据的起始字节数据,必需为全“0” 8bits数据 12 1个字节数据,主机发送,从机接收 8bits数据 13 完整1帧 -

标准的DMX512协议中,每个bits的数据宽度是固定的,为4us,也就是 数据传输速率为250Kbps(每秒钟传输250Kbits数据)。

现有的协议解码方式为:

通过监测每帧数据的起始字节时间宽度,来确定后续每个字节的时间宽度。 以标准的DMX512协议为例,起始字节的组成为:1个起始标志位(“0”)+8 个字节数据位(8个“0”)+2个结束标志位(2个“1”)。按照标准DMX512协 议,该起始字节的宽度为44us。由于在起始字节中的9个bits“0”是介于帧起始 标志位(“1”)和2个字节结束标志位(2个“1”)之间的,那么这9个bits“0” 的时间宽度比较好监测。

现有做法其一是根据采样数据,来选择采样周期的方式,例如,通过内部 振荡器,产生几种采样周期T1,T2,T3,通过对起始字节的采样,来选取最 适合的一种采样周期。该方法简单,但是针对多种采样数据下选择相同的预设 采样周期,使得解码误差很大,特别是不能够做到对频率提升后的采样全覆盖。 也就是说,在某些频段内可采样,某些频段内不能采样,例如在200~300Kbps, 400~500Kbps内能采样,但是在300~400Kbps内不能采样。

另外一种做法是从机内包含一个内置振荡器(周期为T),通过对起始字 节的9个bits“0”时间计数,例如,时间为T9bits,除以9,得到每个bit的时间宽度 Tbit。当然,也可以在采样过程中进行除法运算。而由于采样通常采用数字处理 方式,该时间宽度Tbit应为振荡器周期的整数倍N*T以避免误差产生,而实际情 况中N一般为T9bits/9得到,难以控制为整除数,假设T9bits/9=8.6。

目前通常采用保留整数位的做法,那么上述数据,选取N=8,在进行每个 字节数据解码时,会有积累误差。如图1所示,一般会在数据字节的中心位置 采样,采样点位置为N(1/2+1)T,这样,在解码每个字节的起始位时,会有 [(8.6-8)/2]T=0.3T的误差;在解码每个字节的第1个数据位时,会有 [(8.6-8)×1.5]T=0.9T的误差;以此类推,在解码每个字节的第8个数据位时, 积累误差为:[(8.6-8)×8.5]T=4.1T的误差;特别的,在极端情况下当 T9bits/9=8.99,在解码每个字节的第8个数据位时,积累误差约为8.5T,这样会 产生解码错误。因此一般选取采样位置为(N/2)T>8.5T。以保证在解码每个字 节的第8个数据位时,不会采样到第7个数据位上。

然而,为了更精确地对起始字节时间宽度采样,不断提高从机振荡器的频 率越高越好。因为频率越高,采用保留整数法所得到的最大积累误差,相对于 采样周期而言会越小。在上述例子中,在标准DMX512协议中,每个bit的时 间宽度为4us,如果N=16,那么内部振荡器的周期为4us/16=0.25us,频率为 4MHz。

在实际应用中,在保证刷新率情况下,需要连接更多的从机。也就是说, 需要将数据传输速率提升。如果在上述内部振荡频率基础上解更高频率的码, 譬如解码率达到500Kbps,那么最大的积累误差仍然为8.5T,而如果N=8,就 会解码错误。那么只有通过提升芯片内部振荡器频率的做法。振荡器频率从 4MHz提升到8MHz,这样N=16。以此类推,如果需要解码率达到1Mbps,那 么需要内部振荡器的频率至少是16MHz。但是在现有集成电路基础上,达到上 兆赫兹的频率,频率越大,芯片在不同时期生产的稳定性越难保证。

因此,现有传输协议解码方法由于采样周期的积累误差导致难以保证解码 的准确率,并且通过提升芯片内部振荡器频率的做法来提升数据传输率以降低 解码误差成本高,实现复杂,稳定性差。

发明内容

本发明实施例的目的在于提供一种传输协议解码方法,旨在解决目前解码 方法存在采样周期积累误差导致解码不精确,实现复杂、成本高、稳定性差的 问题。

本发明实施例是这样实现的,一种传输协议解码方法,所述方法包括下述 步骤:

生成振荡信号;

检测帧起始信号,并在检测到所述帧起始信号时,输出采样控制信号;

接收到所述采样控制信号后,在帧起始字节低电平位数的时间周期内对所 述振荡信号的振荡周期进行计数,并对所述计数值进行除法运算,输出商和余 数;

根据商和余数确定采样周期,以生成采样脉冲,并根据所述采样脉冲对传 输数据中的数据字节进行解码。

本发明实施例的另一目的在于提供一种传输协议解码装置,所述装置与驱 动单元连接,包括:

振荡器,用于生成振荡信号;

控制器,用于检测帧起始信号,并在检测到所述帧起始信号时,输出采样 控制信号,所述控制器的输入端接收传输数据;

除法运算单元,用于在接收到所述采样控制信号后,在帧起始字节低电平 位数的时间周期内对所述振荡信号的振荡周期进行计数,并对所述计数值进行 除法运算,输出商和余数,所述除法运算单元的控制端与所述控制器的输出端 连接,所述除法运算单元的输入端与所述振荡器的输出端连接;

解码单元,用于根据所述商和余数确定采样周期,以生成采样脉冲,并根 据所述采样脉冲对传输数据中的数据字节进行解码,所述解码单元的第一输入 端与所述除法运算单元的第一输出端连接,所述解码单元的第二输入端与所述 除法运算单元的第二输出端连接,所述解码单元的第三输入端与所述控制器的 输入端连接以接收传输数据,所述解码单元的时钟端与所述振荡器的输出端连 接,所述解码单元的输出端与所述驱动单元连接。

本发明实施例的另一目的在于提供一种采用上述传输协议解码装置的传输 协议解码芯片。

本发明实施例通过在帧起始字节低电平位数的时间周期内对振荡信号的振 荡周期进行计数,并对计数值进行除法运算,得到商和余数,根据商和余数进 行解码,没有积累误差产生,无需通过提升数据传输率降低解码误差,大大提 高了解码的准确率,并且实现简单,成本低,稳定性好。

附图说明

图1为DMX512协议时序解码示意图;

图2为本发明一实施例提供的传输协议解码方法的流程图;

图3为本发明另一实施例提供的传输协议解码方法的流程图;

图4为本发明实施例提供的传输协议解码装置的结构图;

图5为本发明实施例提供的传输协议解码装置中除法运算单元的一实现示 例电路图;

图6示出了本发明实施例提供的传输协议解码装置中解码单元的一实现示 例结构图;

图7为本发明实施例提供的由状态机实现传输协议解码方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。

本发明实施例在帧起始字节低电平位数的时间周期内对振荡信号的振荡周 期进行计数,并对计数值进行除法运算,根据商和余数进行解码,没有积累误 差产生,大大提高了解码的准确率。

图2示出了本发明一实施例提供的传输协议解码方法的流程,为了便于说 明,仅示出了与本发明相关的部分。

在步骤S101中,振荡器生成振荡信号OSC;

在步骤S102中,控制器检测帧起始信号,并在检测到帧起始信号时,输出 采样控制信号;

在本发明实施例中,该帧起始信号为传输数据中每一帧的第一个低电平, 参见图1中的编号1,控制器检测传输数据的每一帧中的帧起始信号的低电平 时间宽度,当低电平时间大于预设时间宽度时,控制器确认检测到帧起始信号, 并输出采样控制信号,例如,在标准DMX512协议中,该帧起始信号低电平时 间宽度大于88us,而对于类DMX512协议,控制器也可以根据该协议的帧起始 信号低电平时间宽度设定检测预设时间宽度。

在步骤S103中,除法运算单元接收到采样控制信号后,在帧起始字节低电 平位数的时间周期内对振荡信号OSC的振荡周期T进行计数,并对计数值NKbits进行除法运算,输出商和余数;

在本发明实施例中,帧起始字节为传输数据每一帧的帧起始信号后第一个 字节(包括1位低电平起始位、8位数据位和2位高电平停止位),参见图1 中第一个编号3所标示的部分,除法运算单元当接收到采样控制信号后,以振 荡周期为单位,以帧起始字节的下降沿作为计数开始,以帧起始字节的上升沿 作为计数结束,在帧起始字节低电平位数的采样时间周期内对振荡周期T进行 计数,得到与帧起始字节低电平位数的采样时间周期相对应的时钟个数(计数 值NKbits),那么起始字节的时间宽度为Nkbits·T,其中T是振荡器周期。

进而,除法运算单元对该计数值NKbits做除法运算,得到商N和余数M,即 N·K+M=Nkbits。其中,K为帧起始字节低电平的对应的位数。

以标准DMX512协议为例,由于该协议帧起始字节低电平位为9位(参考 图1和表1),除法运算单元在接收到采样控制信号和振荡周期T后,以帧起始 字节的下降沿作为计数开始,以振荡器输出的振荡周期T为单位,以起始字节 的上升沿作为计数结束,检测到帧起始字节的时间宽度N9bits·T,对N9bits做除9 运算,得到商N和余数M,其中9·N+M=N9bits

当然,类DMX512协议中,可以任意设定帧起始字节低电平的时间宽度 Nkbits·T及低电平对应的位数K,也可以任意设定传输数据字节位数j。相应的, 除法运算为Nkbits÷K,它由两部分组成,其中N为商,M为余数,并且 N·K+M=Nkbits,其中M为0至(k-1)内的任意整数。由于通常在数据字节 的中心位置采样,因此后续起始位的采样周期为(N/2)T,数据字节(有j个 位)中的采样周期为Tsamp=T·N或Tsamp=T·(N+1),其中有(j-X)个Tsamp=T·N 和X个Tsamp=T·(N+1),其中,X=M·(j÷K)。

在步骤S104中,解码单元根据商和余数确定采样周期,以生成采样脉冲, 并根据该采样脉冲对传输数据中的数据字节进行解码。

在本发明实施例中,解码单元根据商N和余数M,确定采样周期,该采样 周期包括两种采样脉冲间隔,进而根据这两种采样脉冲间隔对每一帧中的数据 字节采样,进行解码,上述数据字节是指在每一帧首字节后面的多个字节,以 标准DMX512协议为例,帧起始字节的位数为9,每个数据字节的位数也为9 (其中第1位为1’b0)。每个数据字节对应9个采样脉冲,每个脉冲间的时间 宽度,通过N和M控制。其中,为了采样准确,一般在每个bit的中心位置采 样,即起始位的采样点距离该数据字节起始位下降沿宽度为(N/2)T,后续的 8个数据位采样脉冲间隔为(N+1)T或者NT,其中N+1的个数为M,N的个 数为(9-M),并且可以通过插值法设置采样脉冲间隔为(N+1)T或者NT。

作为本发明一实施例,解码单元可以采用多个解码器、递减器、状态机以 及控制模块实现,例如,采用第一递减器递减数据字节位数j,第二递减器递 减余数M,第三递减器递减采样周期。

该状态机的状态转换图可以为:

0000→0001→0010→0011→0100→0101→0110→0111→1000→0000……。

例如,采样到起始字节的时间宽度为176T,那么经过除9处理后,得到N=19, M=5,用二进制表示为N=5’b10011,M=4’b0101。

采样起始位时,将采样点设定为5’b01001。其后的数据位采样周期分别为5 次5’b10100,3次5’b10011。并且,在分布时,尽量采用插入分布的方式,譬 如从起始位到第8数据位的采样周期如图7所示。

具体采样过程为:以每个数据字节的下降沿作为采样数据开始,起始位的 采样点为(N/2)T,若M=3,通过状态机设置插值,例如,设置第2个采样脉 冲与第1个采样脉冲的间隔为(N+1)T,第3个采样脉冲与第2个采样脉冲的 间隔为(N+1)T,第4个采样脉冲与第3个采样脉冲的间隔为(N+1)T,第5 个采样脉冲与第4个采样脉冲的间隔为NT,第6个采样脉冲与第5个采样脉 冲的间隔为NT,第7个采样脉冲与第6个采样脉冲的间隔为NT,第8个采样 脉冲与第7个采样脉冲的间隔为NT,第9个采样脉冲与第8个采样脉冲的间 隔为NT。可以理解地,上述每个采样脉冲间隔的选择可以通过改变状态机的 状态转换值的设置而变化设置,例如将第3个采样脉冲与第2个采样脉冲的间 隔设置为NT,第8个采样脉冲与第7个采样脉冲的间隔设置为(N+1)T,而 每发出一次采样脉冲,第一递减器、第二递减器和第三递减器应相应地递减数 据字节位数j、余数M以及采样周期。

本发明实施例通过在帧起始字节低电平位数的时间周期内对振荡信号的振 荡周期进行计数,并对计数值进行除法运算,得到商和余数,根据商和余数确 定确定采样周期(采样脉冲间隔),进而根据该采样周期对每一帧中的数据字 节采样,进行解码,没有积累误差产生,无需通过提升数据传输率降低解码误 差,大大提高了解码的准确率,并且实现简单,成本低,稳定性好。

图3示出了本发明另一实施例提供的传输协议解码方法的流程,为了便于 说明,仅示出了与本发明相关的部分。

在步骤S201中,振荡器生成振荡信号OSC;

在步骤S202中,控制器检测帧起始信号,并在检测到帧起始信号时,输出 采样控制信号;

在步骤S203中,除法运算单元接收到采样控制信号后,在帧起始字节低电 平位数的时间周期内对振荡信号OSC的振荡周期T进行计数,并对计数值NKbits进行除法运算,输出商和余数;

在步骤S204中,根据商N生成第一采样周期和第二采样周期;

在步骤S205中,将数据字节位数j写入第一递减器,将余数M写入第二 递减器;

在步骤S206中,根据第一递减器和第二递减器的递减结果,将第一采样周 期或第二采样周期写入第三递减器;

在步骤S207中,根据第三递减器的递减结果生成采样脉冲;

在步骤S208中,根据采样脉冲对传输数据中的每一帧中的数据字节采样, 进行解码。

在本发明实施例中,根据商N和振荡信号OSC的周期生成初始采样周期 (N/2)T,将数据字节位数j(此例中为9)写入第一递减器,并将该初始采样 周期(N/2)T写入第三递减器,第一递减器根据振荡信号OSC的周期开始减1 操作,此时第三递减器也在振荡信号OSC的周期控制下进入递减程序,并在递 减为0时输出第一个采样脉冲,同时,根据商N生成第一采样周期(N+1)T 和第二采样周期NT,并将余数M写入第二递减器,在状态机的控制下将第一 采样周期(N+1)T或第二采样周期NT写入第三递减器,当状态机控制第一采 样周期(N+1)T写入第三递减器时,第二递减器均递减1,而第三递减器在被 写入第一采样周期(N+1)T或第二采样周期NT后进行递减,直到递减为0 时输出第二个采样脉冲,同时再次将第一采样周期(N+1)T或第二采样周期 NT写入第三递减器中,直到第一递减器递减为零,而每一次在第一采样周期 (N+1)T被写入第三递减器中时,第二递减器均减1,直到第二递减器递减为 零,如此循环将依次输出j个采样脉冲,完成整个数据字节的采样操作。

若不采用状态机,也可以先对第三状态机写入第一采样周期(N+1)T,并 判断第二递减器是否为零,若第二递减器不为零,则继续向第三递减器写入第 一采样周期(N+1)T,直到第二递减器递减为零,再将第二采样周期NT写入 第三递减器,直到第一递减器递减为零。当第一递减器递减为零时,则表示该 数据字节采样完成。

本发明实施例通过在帧起始字节低电平位数的时间周期内对振荡信号的振 荡周期进行计数,并对计数值进行除法运算,得到商和余数,根据商和余数确 定确定采样周期(采样脉冲间隔),进而根据该采样周期对每一帧中的数据字 节采样,进行解码,没有积累误差产生,无需通过提升数据传输率降低解码误 差,大大提高了解码的准确率,并且实现简单,成本低,稳定性好。

图4示出了本发明实施例提供的传输协议解码装置的结构,为了便于说明, 仅示出了与本发明相关的部分。

作为本发明一实施例,该传输协议解码装置与驱动单元202连接,包括:

振荡器102,用于生成振荡信号OSC;

在本发明实施例中,可以在芯片内集成内置振荡器102,用来提供预设振 荡周期T的振荡信号OSC,也可以从外部接收具有预设振荡周期T的振荡信号。

控制器101,用于检测帧起始信号,并在检测到帧起始信号时,输出采样 控制信号,控制器101的输入端接收传输数据;

在本发明实施例中,该帧起始信号为传输数据中每一帧的第一个低电平, 参见图1中的编号1,控制器检测传输数据的每一帧中的帧起始信号的低电平 时间宽度,当低电平时间大于预设时间宽度时,控制器101确认检测到帧起始 信号,并输出采样控制信号。

作为本发明一实施例,控制器101可以采用状态机或时间检测装置实现。

除法运算单元103,用于在接收到采样控制信号后,在帧起始字节低电平 位数的时间周期内对振荡信号OSC的振荡周期T(脉冲)进行计数,并对计数 值NKbits进行除法运算,输出商和余数,除法运算单元103的控制端与控制器101 的输出端连接,除法运算单元103的输入端与振荡器102的输出端连接;

在本发明实施例中,帧起始字节为传输数据每一帧的帧起始信号后第一个 字节,除法运算单元103当接收到采样控制信号后,以振荡周期为单位,以帧 起始字节的下降沿作为计数开始,以帧起始字节的上升沿作为计数结束,在帧 起始字节低电平位数的采样时间周期内对振荡周期T进行计数,得到与帧起始 字节低电平位数的采样时间周期相对应的时钟个数(计数值NKbits),并对该计 数值NKbits做除法运算,得到商N和余数M,即N·K+M=Nkbits。其中,K为帧 起始字节低电平的对应的位数。那么起始字节的时间宽度为Nkbits·T,其中T是 振荡器102周期。

作为本发明一实施例,除法运算单元103可以通过除法器和计数器实现。

解码单元104,用于根据商和余数确定采样周期,以生成采样脉冲,并根 据该采样脉冲对传输数据中的数据字节进行解码,解码单元104的控制端与控 制器101的输出端连接,解码单元104的第一输入端与除法运算单元103的第 一输出端连接,解码单元104的第二输入端与除法运算单元103的第二输出端 连接,解码单元104的第三输入端与控制器101的输入端连接以接收传输数据, 解码单元104的时钟端与振荡器102的输出端连接,解码单元104的输出端与 驱动单元202连接。

在本发明实施例中,解码单元104根据商N和余数M,确定采样周期,该 采样周期包括两种采样脉冲间隔,进而根据这两种采样脉冲间隔对每一帧中的 数据字节采样,进行解码,上述数据字节是指在每一帧首字节后面的多个字节, 以标准DMX512协议为例,帧起始字节的位数为9,每个数据字节的位数也为 9(其中第1位为1’b0)。每个数据字节对应9个采样脉冲,每个脉冲间的时 间宽度,通过N和M控制。其中,为了采样准确,一般在每个bit的中心位置 采样,即起始位的采样点距离该数据字节起始位下降沿宽度为(N/2)T,后续 的8个数据位采样脉冲间隔为(N+1)T或者NT,其中N+1的个数为M,N 的个数为(9-M),并且可以通过插值法设置采样脉冲间隔为(N+1)T或者 NT。

本发明实施例通过在帧起始字节低电平位数的时间周期内对振荡信号的振 荡周期进行计数,并对计数值进行除法运算,得到商和余数,根据商和余数进 行解码,没有积累误差产生,无需通过提升数据传输率降低解码误差,大大提 高了解码的准确率,并且实现简单,成本低,稳定性好。

图5示出了本发明实施例提供的传输协议解码中除法运算单元的一实现示 例电路,为了便于说明,仅示出了与本发明相关的部分。

作为本发明一实施例,该除法运算单元103采用除法器和计数器实现,可 以通过触发器实现除法电路,也可以采用其他逻辑器件实现,以标准DMX512 协议为例,可以采用四个D触发器实现的除九电路,其中D触发器DFF1和D 触发器DFF2组成了除3电路,该电路的状态转换为:00→01→10→00……

D触发器DFF3和D触发器DFF4也组成除3电路,进而组成了除9电路。

该除法运算单元103包括:

第一D触发器DFF1、第二D触发器DFF2、第三D触发器DFF3、第四D 触发器DFF4、第一或非门OR1、第二或非门OR2、二进制计数器131以及逻 辑运算模块132;

第一D触发器DFF1的复位端RD1、第二D触发器DFF2的复位端RD2、 第三D触发器DFF3的复位端RD3、第四D触发器DFF4的复位端RD4同时 为除法运算单元13的控制端,第一D触发器DFF1的时钟输入端CK1、第二D 触发器DFF2的时钟输入端CK2为除法运算单元13的输入端,第二D触发器 DFF2的触发端D2与第一D触发器DFF1的正向输出端Q0连接,第一或非门 OR1的第一输入端与第一D触发器DFF1的正向输出端Q0连接,第一或非门 OR1的第二输入端与第二D触发器DFF2的正向输出端Q1连接,第一或非门 OR1的输出端同时与第一D触发器DFF1的触发端D1、第三D触发器DFF3 的时钟输入端CK3、第四D触发器DFF4的时钟输入端CK4连接,第四D触 发器DFF4的触发端D4与第三D触发器DFF3的正向输出端Q2连接,第二或 非门OR2的第一输入端与第三D触发器DFF3的正向输出端Q2连接,第二或 非门OR2的第二输入端与第四D触发器DFF4的正向输出端Q3连接,第二或 非门OR2的输出端同时与第三D触发器DFF3的触发端D3和二进制计数器131 的时钟输入端CK连接,二进制计数器131的输出端为除法运算单元13的第一 输出端,第一D触发器DFF1的正向输出端Q0、第二D触发器DFF2的正向 输出端Q1、第三D触发器DFF3的正向输出端Q2、第四D触发器DFF4的正 向输出端Q3依次于逻辑运算模块132的第一输入端、第二输入端、第三输入 端、第四输入端连接,逻辑运算模块132的输出端为除法运算单元13的第二输 出端。

在本发明实施例中,振荡器102输出的振荡信号OSC通过四个D触发器 DFF1-DFF4进行计数并除九运算后,通过二进制计数器131得到商N,而余数 M需要经过逻辑运算模块132的逻辑转换后得到,M用二进制数表示为 M3M2M1M0,其逻辑转换式为:

M0=Q2·Q1·Q0+Q3·Q2·Q0

M1=Q3·Q2·Q1+Q3·Q0·(Q2·Q1+Q2·Q1)

M2=Q3·Q2·(Q1·Q0+Q1·Q0)+Q3·Q2·Q1

M3=Q3·Q2·Q1·Q0

其中,Q0-Q3分别为D触发器DFF1-DFF4正向输出端输出的逻辑状态,并 由该逻辑转换式得到如下对应表格:

在本发明实施例中,逻辑运算模块132可由多个逻辑门根据余数M的逻辑 表达式连接而成,此处不再赘述。

图6示出了本发明实施例提供的传输协议解码中解码单元的一实现示例结 构,为了便于说明,仅示出了与本发明相关的部分。

作为本发明一实施例,解码单元104包括:

第一递减器141、第二递减器142、第三递减器143、控制模块144、状态 机145以及解码器146;

控制模块144的第一输入端为解码单元104的第一输入端,控制模块144 的第二输入端为解码单元104的第二输入端,控制模块144的第一输出端与第 一递减器141的输入端连接,控制模块144的第二输出端与第二递减器142的 输入端连接,控制模块144的第三输出端与第三递减器143的输入端连接,状 态机145的输出端与控制模块144的第三输入端连接,控制模块144的时钟端 为译码单元的时钟端,控制模块144的输出端与解码器146的第一输入端连接, 解码器146的第二输入端为解码单元104的第三输入端,解码器146的输出端 为解码单元104的输出端。

在本发明实施例中,控制模块144根据商N生成第一采样周期和第二采样 周期,并将数据字节位数j写入第一递减器141,将接收的余数M写入第二递 减器142,控制模块144根据第一递减器141和第二递减器142的递减结果, 将第一采样周期(N+1)T或第二采样周期NT写入第三递减器143,并根据第 三递减器143的递减结果生成采样脉冲,根据该采样脉冲解码器146对传输数 据中的每一帧中的数据字节采样,进行解码。

作为本发明一实施例,可以通过状态机145设置第一采样周期(N+1)T或 第二采样周期NT的插值,该状态机145的状态转换图可以为:

0000→0001→0010→0011→0100→0101→0110→0111→1000→0000……。

例如,采样到起始字节的时间宽度为176T,那么经过除9处理后,得到N=19, M=5,用二进制表示为N=5’b10011,M=4’b0101。

采样起始位时,将采样点设定为5’b01001。其后的数据位采样周期分别为5 次5’b10100,3次5’b10011。并且,在分布时,尽量采用插入分布的方式,譬 如从起始位到第8数据位的采样周期如图7所示。

具体采样过程为:以每个数据字节的下降沿作为采样数据开始,起始位的 采样点为(N/2)T,若M=3,通过状态机设置插值,例如,设置第2个采样脉 冲与第1个采样脉冲的间隔为(N+1)T,第3个采样脉冲与第2个采样脉冲的 间隔为(N+1)T,第4个采样脉冲与第3个采样脉冲的间隔为(N+1)T,第5 个采样脉冲与第4个采样脉冲的间隔为NT,第6个采样脉冲与第5个采样脉 冲的间隔为NT,第7个采样脉冲与第6个采样脉冲的间隔为NT,第8个采样 脉冲与第7个采样脉冲的间隔为NT,第9个采样脉冲与第8个采样脉冲的间 隔为NT。可以理解地,上述每个采样脉冲间隔的选择可以通过改变状态机的 状态转换值的设置而变化设置,例如将第3个采样脉冲与第2个采样脉冲的间 隔设置为NT,第8个采样脉冲与第7个采样脉冲的间隔设置为(N+1)T,而 每发出一次采样脉冲,第一递减器、第二递减器和第三递减器应相应地递减数 据字节位数j、余数M以及采样周期。

具体递减过程为:

控制模块根据商N和振荡信号OSC的周期生成初始采样周期(N/2)T,将 数据字节位数j(此例中为9)写入第一递减器141,并将该初始采样周期(N/2) T写入第三递减器143,第一递减器141根据振荡信号OSC的周期开始减1操 作,此时第三递减器143也在振荡信号OSC的周期控制下进入递减程序,并在 递减为0时输出第一个采样脉冲,同时,控制模块144根据商N生成第一采样 周期(N+1)T和第二采样周期NT,并将余数M写入第二递减器142,在状态 机145的控制下控制模块144将第一采样周期(N+1)T或第二采样周期NT写 入第三递减器143,当状态机145控制第一采样周期(N+1)T写入第三递减器 143时,第二递减器142均递减1,而第三递减器143在被写入第一采样周期 (N+1)T或第二采样周期NT后进行递减,直到递减为0时输出第二个采样脉 冲,同时再次由控制模块144将第一采样周期(N+1)T或第二采样周期NT写 入第三递减器143中,直到第一递减器141递减为零,而每一次在第一采样周 期(N+1)T被写入第三递减器143中时,第二递减器142均减1,直到第二递 减器142递减为零,如此循环将依次输出j个采样脉冲,完成整个数据字节的 采样操作。

若不采用状态机145,也可以先对第三状态机143写入第一采样周期(N+1) T,并判断第二递减器142是否为零,若第二递减器142不为零,则继续向第 三递减器143写入第一采样周期(N+1)T,直到第二递减器142递减为零,再 将第二采样周期NT写入第三递减器143,直到第一递减器141递减为零。

当第一递减器141递减为零时,则表示该数据字节采样完成。

需要说明的是,如果N的二进制最后1位为1,而M≠0,那么可以将M减 1,而起始位的采样点为[N/2]+1。其中[N/2]是指其整数部分。

本发明实施例通过在帧起始字节低电平位数的时间周期内对振荡信号的振 荡周期进行计数,并对计数值进行除法运算,得到商和余数,根据商和余数进 行解码,没有积累误差产生,无需通过提升数据传输率降低解码误差,大大提 高了解码的准确率,并且实现简单,成本低,稳定性好。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的 精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保 护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号