CN116166469B - 数据传输电路及数据传输方法 - Google Patents
数据传输电路及数据传输方法 Download PDFInfo
- Publication number
- CN116166469B CN116166469B CN202211390414.0A CN202211390414A CN116166469B CN 116166469 B CN116166469 B CN 116166469B CN 202211390414 A CN202211390414 A CN 202211390414A CN 116166469 B CN116166469 B CN 116166469B
- Authority
- CN
- China
- Prior art keywords
- message
- transmission
- receiving
- data
- shift register
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- 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
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
Abstract
本申请涉及数据传输电路及数据传输方法,该电路包括发送控制电路、第一可编程延时链、第一时钟发生电路、发送移位寄存器、发送中断电路、第一CRC校验电路和发送缓冲寄存器的数据传输电路设计,其中第一时钟发生电路为发送控制电路提供双沿时钟,从而支持双时钟沿发送数据,提高数据传输带宽,而采用第一可编程延时链则可以有效平衡、补偿PCB布线、工作环境变化对信号延时和信号质量的影响,进一步提高稳定传输时的工作频率,形成采用多组时钟与数据线的组合设计,消除常规并行总线宽度较大时PCB布线带来的影响,具有灵活、易用且传输速率高的实际应用特点,达到了大幅提高数据传输综合性能的效果。
Description
技术领域
本发明属于数据传输技术领域,涉及一种数据传输电路及数据传输方法。
背景技术
在消费电子、工业控制等领域,大量的外围子系统或接口转换器需要与CPU串行通信,如音频编解码器,模拟接口芯片,A/D和D/A转换器。并行总线有利于提高数据传输带宽,但会占据过多的IO引脚,同时信号质量和工作频率易受PCB布线影响;串行总线虽然可以节约IO引脚,但由于IO引脚上电平转换速度有限,工作频率有限且传输带宽有限。面对日益增长的应用需求和性能要求,急需一种综合性能更高的数据传输技术。
发明内容
针对上述传统技术中存在的问题,本发明提出了一种综合性能更高的数据传输电路以及一种数据传输方法。
为了实现上述目的,本发明实施例采用以下技术方案:
一方面,提供一种数据传输电路,包括:
第一CRC校验电路,用于对待发送报文中的数据字段进行CRC校验处理;
发送缓冲寄存器,连接第一CRC校验电路,用于存储待发送报文信息;
发送中断电路,连接发送缓冲寄存器,用于根据报文发送的进度通知数据总线向发送缓冲寄存器写入数据或执行报文发送后操作;
发送移位寄存器,连接发送缓冲寄存器,用于保存当前正在发送的报文字段;
第一时钟发生电路,用于基于系统时钟产生两个与系统时钟同频率且反相位的内部发送时钟,内部发送时钟为双沿时钟;
发送控制电路,分别连接第一时钟发生电路和发送移位寄存器,用于在内部发送时钟的驱动下将发送移位寄存器中的报文字段按位移至输出信号并同时产生发送时钟;
第一可编程延时链,连接发送控制电路,用于分别对输出信号和发送时钟进行设定延时输出。
另一方面,还提供一种数据传输方法,应用于上述的数据传输电路,方法包括步骤:
初始化数据传输电路;初始化包括设置报文类型、报文中数据字段长度、设置输出信号关联的每个第一可编程延时链控制参数;
通过字发送中断信号通知数据总线将报文信息写入发送缓冲寄存器;报文信息包括报文头字段和报文类型字段;
将发送缓冲寄存器中的报文信息装载到发送移位寄存器;
从第一内部发送时钟的第一个负跳沿开始,在每一次电平转换时将发送移位寄存器中的报文信息从高位到低位按位移至第一输出信号;
报文信息发送完成后,通过字发送中断信号通知数据总线将报文尾字段写入发送缓冲寄存器;报文类型为命令类型或中断类型;
将发送缓冲寄存器中的报文尾字段装载到发送移位寄存器;
在发送完报文信息后从第一内部发送时钟的下一个负跳沿开始,将发送移位寄存器中的报文尾字段从高位到低位按位移至第一输出信号;
在当前发送的一个报文发送结束后向数据总线发出一个报文发送中断信号。
上述技术方案中的一个技术方案具有如下优点和有益效果:
上述数据传输电路及数据传输方法,通过采用发送控制电路搭配第一可编程延时链、第一时钟发生电路、发送移位寄存器、发送中断电路、第一CRC校验电路和发送缓冲寄存器的数据传输电路设计,其中第一时钟发生电路为发送控制电路提供双沿时钟,从而支持双时钟沿发送数据,提高数据传输带宽,而采用第一可编程延时链则可以有效平衡、补偿PCB布线、工作环境变化对信号延时和信号质量的影响,进一步提高稳定传输时的工作频率,形成采用多组时钟与数据线的组合设计,消除常规并行总线宽度较大时PCB布线带来的影响,具有灵活、易用且传输速率高的实际应用特点,达到了大幅提高数据传输综合性能的效果。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中数据传输电路的结构示意图,其中,(a)为数据传输电路的发送电路部分,(b)为数据传输电路的接收电路部分;
图2为一个实施例中报文的数据结构示意图;
图3为另一个实施例中数据传输电路的结构示意图,其中,(a)为数据传输电路的发送电路部分,(b)为数据传输电路的接收电路部分;
图4为一个实施例中延时链的结构示意图;
图5为一个实施例中数据传输方法的流程示意图;
图6为一个实施例中发送端工作流程示意图;
图7为另一个实施例中数据传输方法的流程示意图;
图8为一个实施例中接收端工作流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
需要说明的是,在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。
本领域技术人员可以理解,本文所描述的实施例可以与其它实施例相结合。在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
下面将结合本发明实施例图中的附图,对本发明实施方式进行详细说明。
请参阅图1,在一个实施例中,本申请实施例提供了一种数据传输电路100,包括第一CRC校验电路11、发送缓冲寄存器12、发送中断电路13、发送移位寄存器14、发送控制电路15、第一时钟发生电路16和第一可编程延时链17。第一CRC校验电路11用于对待发送报文中的数据字段进行CRC校验处理。发送缓冲寄存器12连接第一CRC校验电路11,用于存储待发送报文信息。发送中断电路13连接发送缓冲寄存器12,用于根据报文发送的进度通知数据总线向发送缓冲寄存器12写入数据或执行报文发送后操作。发送移位寄存器14连接发送缓冲寄存器12,用于保存当前正在发送的报文字段。第一时钟发生电路16用于基于系统时钟产生两个与系统时钟同频率且反相位的内部发送时钟,内部发送时钟为双沿时钟。发送控制电路15分别连接第一时钟发生电路16和发送移位寄存器14,用于在内部发送时钟的驱动下将发送移位寄存器14中的报文字段按位移至输出信号并同时产生发送时钟。第一可编程延时链17连接发送控制电路15,用于分别对输出信号和发送时钟进行设定延时输出。
可以理解,上述数据传输电路100中第一CRC校验电路11、发送缓冲寄存器12、发送中断电路13、发送移位寄存器14、发送控制电路15、第一时钟发生电路16和第一可编程延时链17,构成了发送电路的主体部分,用以完成数据发送功能。上述数据传输电路100的各电路结构部分之间的连接可以是通信连接,也可以是电连接,还可以是通信和电力混合方式的连接,具体可以根据应用场景的需要确定,只要能够实现各电路结构部分之间的数据传输功能即可。上述数据传输电路100可以采用分立式的元件布局设计,也可以采用在基板上集成设计的布局设计,具体可以根据工艺要求进行选择。其中,(a)为数据传输电路100的发送电路部分,(b)为数据传输电路100的接收电路部分。
数据传输以报文为单位进行,如图2所示,一个报文最多可以包括6个字段。在本申请中,报文可以包括3种类型,分别为命令报文、中断报文和数据报文。命令报文用于发送方与接收方建立一次传输链接,中断报文用于接收方通知发送方一个报文传输完成,而数据报文则用于发送方向接收方发送一定数量的数据。命令报文和中断报文包括3个报文字段,即报文头字段、报文类型字段和报文尾字段;数据报文包括6个报文字段,即报文头字段、报文类型字段、报文长度字段、数据字段、CRC校验字段和报文尾字段。
一个报文的传输过程中,字段的传输顺序依次是报文头字段、报文类型字段、报文长度字段、数据字段、CRC校验字段和报文尾字段,且每个字段的最高位首先传输。报文头固定为8 bit数据,即“11111111”,用于表示一个报文的开始,可以用PHEAD表示。报文尾固定为8 bit数据,即“11111100”,用于表示一个报文的结束,可以用PTAIL表示。报文类型包含4个bit位,可以用PTYPE表示,用于区分不同类型的报文,例如但不限于设置其字段值为0000时表示命令报文,字段值为1111时表示中断报文,字段值为0001时表示数据报文。
报文长度:一个报文的数据字段包含的数据字的个数,可以用PLEN表示,其包含4个bit位,字段值0000~1111分别表示数据字个数为1~16。数据字段可以包含1~16个数据字,数据字是数据传输的基本单位,字长固定为16位。CRC校验为数据字段的循环冗余校验码,包含8个bit位。报文发送后操作是指一个报文发送结束后数据总线执行的中断响应、清零、复位或初始化等操作,具体可以参照本领域传统数据发送端上的同类操作同理理解。
发送缓冲寄存器12(可记为XBUF)可以是能够实现对发送的报文信息的存储功能的寄存器组件,其可以在发送就绪信号(可以记为XRDY)的控制下进行存储数据的更新,如接收数据总线写入的新的待发送数据。发送移位寄存器14(可记为XSHT)可以是能够实现对当前正在发送的报文字段的存储功能的寄存器组件,其操作状态可以由发送就绪状态信号XRDY和字发送完成信号(可以记为XWDONE)控制,其数据来自对发送缓冲寄存器12中的数据拷贝。发送移位寄存器14可以采用两个或者两个以上数量的多寄存器设计,相应的内部发送时钟也可以采用一组或者一组以上的多时钟设计,一组内部发送时钟包括两个时钟,一个时钟对应用于在发送控制电路15中控制一个发送移位寄存器14的数据移位输出。
发送控制电路15可以但不限于采用微控制器、可编程逻辑电路或者其他控制芯片实现,只要能够实现在第一时钟发生电路16提供的两个内部发送时钟驱动下,将发送移位寄存器14中的报文字段按位移位至相应的输出信号上均可。为简洁示意,如图1中未画出电路的复位信号(可以记为RSTn)、系统工作时钟(可以记为SYSCLK),本领域技术人员可以理解,在实际应用中还可为需要前述RSTn和SYSCLK的各部件接入该信号与时钟,以保证其正常工作,该复位信号与时钟的接入方式,可与本领域中现有的复位信号与系统工作时钟添加方式同理理解。
第一CRC校验电路11的作用是对报文中的数据字段进行计算并生成CRC校验字段,具体可以参照本领域中现有的CRC校验电路同理理解。第一可编程延时链17则是由精度不同的延时单元构成的延时链,其作用是对输出信号产生一定的延时,以平衡温度变化和不均匀布线等因素对电路信号延时的影响,减小报文传输过程的误码率。第一可编程延时链17可以采用可编程逻辑器件组成,例如采样现有的延时电路单元进行级联并采用选择器进行不同级延时输出,如此可以根据实际延时需要进行编程设置,从而为选择器提供相应控制参数以使其选择输入信号经过延时单元的路径和数量等以产生所需的设定延时。具体可编程设置方式可以参照实际使用的延时电路单元与选择器的设置方式同理理解。
上述数据传输电路100,通过采用发送控制电路15搭配第一可编程延时链17、第一时钟发生电路16、发送移位寄存器14、发送中断电路13、第一CRC校验电路11和发送缓冲寄存器12的数据传输电路设计,其中第一时钟发生电路16为发送控制电路15提供双沿时钟,从而支持双时钟沿发送数据,提高数据传输带宽,而采用第一可编程延时链17则可以有效平衡、补偿PCB布线、工作环境变化对信号延时和信号质量的影响,进一步提高稳定传输时的工作频率,形成采用多组时钟与数据线的组合设计,消除常规并行总线宽度较大时PCB布线带来的影响,具有灵活、易用且传输速率高的实际应用特点,达到了大幅提高数据传输综合性能的效果。
在一个实施例中,如图1所示,上述数据传输电路100还可以包括接收控制电路25、第二时钟发生电路26、第二可编程延时链27、接收移位寄存器24、接收缓冲寄存器22、接收中断电路23和第二CRC校验电路21。第二可编程延时链27用于分别对输入信号和接收时钟进行设定延时输入。第二时钟发生电路26连接第二可编程延时链27,用于基于接收时钟产生两个与接收时钟同频率且反相位的内部接收时钟,内部接收时钟为双沿时钟。接收控制电路25分别连接第二可编程延时链27和第二时钟发生电路26,用于在内部接收时钟的驱动下将输入信号上的报文字段按位移至接收移位寄存器24中。接收移位寄存器24连接接收控制电路25,用于保存当前正在接收的报文字段。接收缓冲寄存器22连接接收移位寄存器24,用于存储已接收且待数据总线读取的报文信息。接收中断电路23连接接收缓冲寄存器22,用于根据报文接收的进度通知数据总线从接收缓冲寄存器22中读取报文信息或执行报文接收后操作。第二CRC校验电路21分别连接接收中断电路23和接收缓冲寄存器22,用于对已接收报文中的数据字段进行CRC校验处理。
可以理解,本实施例中的数据传输电路100中接收控制电路25、第二时钟发生电路26、第二可编程延时链27、接收移位寄存器24、接收缓冲寄存器22、接收中断电路23和第二CRC校验电路21,构成了接收电路的主体部分,用以完成数据接收功能。本实施例中接收电路的各电路结构部分之间的连接可以是通信连接,也可以是电连接,还可以是通信和电力混合方式的连接,具体可以根据应用场景的需要确定,只要能够实现各电路结构部分之间的数据传输功能即可。上述接收电路可以采用分立式的元件布局设计,也可以采用在基板上集成设计的布局设计,具体可以根据工艺要求进行选择。
接收移位寄存器24(可记为RSHT)可以是能够实现保存当前正在接收的报文字段的存储功能的寄存器组件,其存储的数据是经过第二可编程延时链27延时处理后、来自输入信号DR中的数据。接收控制电路25可以但不限于采用微控制器、可编程逻辑电路或者其他控制芯片实现,只要能够实现所需的数据移位控制功能与字接收状态反馈功能等均可。接收控制电路25可在第二时钟发生电路26提供的两个内部接收时钟驱动下,将输入信号上的信息按位移至接收移位寄存器24中。
接收缓冲寄存器22(可记为RBUF)可以是能够实现存储已接收、待数据总线读取的报文信息的寄存器组件,其可以在接收就绪状态信号(可以记为RRDY)的控制下进行存储数据的更新。接收中断电路23可以是能够提供所需中断信号的电路元件或电路模块,其用于产生中断信号给到数据总线,从而通知数据总线可以从接收缓冲寄存器22中读取报文信息或者进行报文接收后操作,报文接收后操作是指数据总线每读取完一个报文或者读取完但CRC校验错误之后所正常执行的中断响应、清零、复位或初始化等操作,具体可以参照本领域传统数据接收端上的同类操作同理理解。
第二可编程延时链27同样是由精度不同的延时单元构成的延时链,其作用是对输入信号产生一定的延时,以平衡温度变化和不均匀布线等因素对电路信号延时的影响,减小报文传输过程的误码率。第二CRC校验电路21的作用是对已接收报文中的数据字段进行计算并生成CRC校验,与已接收报文中的CRC字段进行比较,若匹配,则表示数据字段成功接收;否则,数据字段接收错误。发生数据字段接收错误时,CRC校验错误CRC_Err信号有效,通知接收中断电路23产生报文接收中断信号,具体过程可以参照本领域中现有的CRC校验电路的工作过程同理理解。
通过采用前述接收端的数据传输电路设计,其中第二时钟发生电路26为接收控制电路25提供双沿时钟,从而支持双时钟沿接收数据,提高数据传输带宽,而采用第二可编程延时链27则可以有效平衡、补偿PCB布线、工作环境变化对信号延时和信号质量的影响,进一步提高稳定传输时的工作频率,形成采用多组时钟与数据线的组合设计,消除常规并行总线宽度较大时PCB布线带来的影响,具有灵活、易用且传输速率高的实际应用特点,也达到了大幅提高数据接收综合性能的效果。
在一个实施例中,进一步的,如图3所示,发送移位寄存器14包括发送移位寄存器XSHTA和发送移位寄存器XSHTB。发送移位寄存器XSHTA分别连接发送缓冲寄存器12和发送控制电路15。发送移位寄存器XSHTB分别连接发送缓冲寄存器12和发送控制电路15。发送移位寄存器XSHTA用于保存当前正在发送的报文字段。发送移位寄存器XSHTB用于保存当前正在发送的数据字段。
可以理解,第一时钟发生电路16基于系统时钟SYSCLK产生两个与系统时钟同频率的内部发送时钟,分别记为XCLKA和XCLKB,其中,XCLKB的相位与XCLKA的相位相差180度。XCLKA和XCLKB在发送控制电路15中,分别用于控制对发送移位寄存器XSHTA和XSHTB的数据进行移位输出。XCLKA和XCLKB是双沿时钟,空闲状态下XCLKA保持为高电平,XCLKB保持为低电平。其中,(a)为数据传输电路100的发送电路部分,(b)为数据传输电路100的接收电路部分。
对于32位的发送缓冲寄存器12,当报文类型为命令报文或中断报文时,发送缓冲寄存器12中存储的报文信息包括报文头、类型和报文尾;当报文类型为数据报文时,发送缓冲寄存器12中存储的报文信息包括报文头、类型、长度、CRC校验、报文尾和数据字。发送缓冲寄存器12中最多可存储2个数据字。
发送就绪信号XRDY控制发送缓冲寄存器12的更新。当XRDY=1(高电平)时,发送缓冲寄存器12可接收新的信息;当数据总线向发送缓冲寄存器12写入报文信息后,XRDY置为0(低电平);当发送缓冲寄存器12中的信息装载到发送移位寄存器XSHTA和/或XSHTB时,XRDY置为1。当XRDY发生0—>1跳变时,发送中断电路13可向数据总线发出一个字发送中断信号WXINT以通知数据总线向发送缓冲寄存器12写入新的报文信息。
具体的,16位的发送移位寄存器XSHTA用于保存当前正在发送的报文字段。当报文类型为命令或中断报文时,发送移位寄存器XSHTA中保存报文头字段、报文类型字段和报文尾字段;当报文类型为数据报文时,发送移位寄存器XSHTA中存储报文头字段、报文类型字段、报文长度字段、数据字段、CRC校验字段和报文尾字段。16位的发送移位寄存器XSHTB只用于保存当前正在发送的数据字段,以简化发送控制电路15中的发送控制过程。
由发送就绪信号XRDY和字发送完成信号XWDONE控制。当XWDONE=1(高电平)时,表示发送控制电路15可进行下一个字的发送,若此时XRDY=0(低电平),即发送缓冲寄存器12中有待发送信息,则将发送缓冲寄存器12中的信息装载到发送移位寄存器XSHTA和发送移位寄存器XSHTB中,同时将XRDY置为1、XWDONE置为0。发送缓冲寄存器12的[31:16](高16位)装载到发送移位寄存器XSHTB,发送缓冲寄存器12的 [15:0](低16位)装载到发送移位寄存器XSHTA。
通过上述发送移位寄存器XSHTA和发送移位寄存器XSHTB可以最简约的电路结构支持双时钟沿的数据发送处理。
在一个实施例中,如图3所示,第一可编程延时链17包括第一级延时链和第二级延时链。第一级延时链包括第一选择器和N个级联的第一延时单元,第二级延时链包括第二选择器和N个级联的第二延时单元;N为正整数。第一选择器的各输入端分别连接各第一延时单元的输出端,第一选择器的输出端连接第二级延时链的输入端。第二选择器的各输入端分别连接各第二延时单元的输出端。第一选择器用于控制信号从选定的第一延时单元输出,第二选择器用于控制信号从选定的第二延时单元输出。
可以理解,发送控制电路15在发送完一个数据字的同时产生输出发送时钟XCLK,输出发送时钟XCLK的频率和相位与内部发送时钟XCLKA相同。因此,发送到数据总线上的输出信号包括输出发送时钟XCLK、输出信号DX1和输出信号DX2。输出发送时钟XCLK、输出信号DX1和输出信号DX2在输出前分别经过第一可编程延时链17。每一种输出信号关联一个第一可编程延时链17。
如图4所示,第一可编程延时链17由两级精度不同的延时链构成。16个延时单元DLLx[1] ~ DLLx[16]构成第一级延时链,每个延时单元延时约为500ps。16个延时单元DLLy[1] ~ DLLy[16]构成第二级延时链,每个延时单元延时约为150ps。整个延时链共可实现约10.4ns的信号偏移调整。第一级延时链和第二级延时链分别由设定参数DSELx和DSELy控制,用于通过选择器MUXx和MUXy选择输入信号In(即输入到该延时链的信号)经过延时单元的路径和数量以产生一定量的延时。前述各延时单元均可以采用本领域现有的各型延时电路/器件,具体可以根据所需延时量进行选择。设定参数DSELx和DSELy可以通过编程设置,具体设置方式可以参照选用的延时单元的数量以及选择器的设置方式。选择器MUXx和MUXy均可以是本领域中现有的各型多入单出的选择器,具体可以根据选用的延时单元的数量确定。Out表示延时后的输出信号。
具体的,发送控制电路15负责在内部发送时钟XCLKA和XCLKB的驱动下,将发送移位寄存器XSHTA和XSHTB中的报文字段按位分别移至输出信号DX1和DX2上。内部发送时钟XCLKA和XCLKB是双沿时钟;空闲状态下,内部发送时钟XCLKA保持为高电平,内部发送时钟XCLKB保持为低电平。发送缓冲寄存器12中的数据装载到发送移位寄存器XSHTA和XSHTB后,内部发送时钟XCLKA发生1->0跳变标志着发送控制过程开始。
当内部发送时钟XCLKA发生1->0跳变时,发送移位寄存器XSHTA中的第一位信息移位至输出信号DX1上;当内部发送时钟XCLKA接着发生0->1跳变时,发送移位寄存器XSHTA中的第二位信息移位至输出信号DX1上;当内部发送时钟XCLKB发生0->1跳变时发送移位寄存器XSHTB中的第一位信息移位至输出信号DX2上;当内部发送时钟XCLKB接着发生1->0跳变时,发送移位寄存器XSHTB中的第二位信息移位至输出信号DX2上。移位时,遵循MSB(MostSignificant Bit,最高位(二进制数))原则,即从高位到低位依次移位,以确保数据准确移位发送。
发送控制电路15中包含5位发送数据字计数器XWCNT、5位发送移位计数器XBCNTA和发送移位计数器XBCNTB。发送移位计数器XBCNTA从0增加到15时表示发送移位寄存器XSHTA中的16位信息发送完成。发送移位计数器XBCNTB从0增加到15时表示发送移位寄存器XSHTB中的16位信息发送完成。发送数据字计数器XWCNT从 0增加到报文长度PLEN时表示一个报文的数据字段发送完成。
发送控制电路15产生字发送完成信号XWDONE。每发送完一个字,字发送完成信号XWDONE有效,表示可以将发送缓冲寄存器12中的信息装载到发送移位寄存器XSHTA和XSHTB中以进行下一个字的发送,发送控制电路15同时产生输出发送时钟XCLK。发送中断电路13则根据报文发送的进度产生字发送中断信号WXINT和报文发送中断信号PXINT。当发送就绪信号XRDY发生0->1跳变时,发送中断电路13可向数据总线发出一个字发送中断信号WXINT以通知数据总线向发送缓冲寄存器12写入数据。当一个报文发送结束后,发送中断电路13可向数据总线发出一个报文发送中断信号PXINT以通知数据总线进行后续操作。
通过上述的第一可编程延时链17设计,可以更灵活高效地现实信号偏移,从而进一步提高数据发送的传输性能。
在一个实施例中,进一步的,第二可编程延时链27的结构与第一可编程延时链17的结构相同。通过该第二可编程延时链27设计,可以更灵活高效地现实信号偏移,从而进一步提高数据接收的传输性能。
在一个实施例中,如图3所示,接收移位寄存器24包括接收移位寄存器RSHTA和接收移位寄存器RSHTB。接收移位寄存器RSHTB分别连接接收缓冲寄存器22和接收控制电路25。接收移位寄存器RSHTA分别连接接收缓冲寄存器22和接收控制电路25。接收移位寄存器RSHTA用于保存当前正在接收的报文字段,接收移位寄存器RSHTB用于保存当前正在接收的数据字段。
可以理解,第二时钟发生电路26基于接收时钟RCLK产生两个与接收时钟RCLK同频率的内部接收时钟RCLKA和RCLKB。其中,内部接收时钟RCLKB的相位与内部接收时钟RCLKA的相位相差180度。内部接收时钟RCLKA和RCLKB在接收控制电路25中,分别用于控制将输入信号DR1和DR2上的信息移位至接收移位寄存器RSHTA和RSHTB中。内部接收时钟RCLKA和RCLKB是双沿时钟,空闲状态下内部接收时钟RCLKA保持为高电平,内部接收时钟RCLKB保持为低电平。
对于16位的接收移位寄存器RSHTA用于保存当前正在接收的报文字段。当报文类型为命令报文或中断报文时,接收移位寄存器RSHTA中保存报文头字段、报文类型字段和报文尾字段;当报文类型为数据报文时,接收移位寄存器RSHTA中存储报文头字段、报文类型字段、报文长度字段、数据字段、CRC校验字段和报文尾字段。16位的接收移位寄存器RSHTB只用于保存当前正在接收的数据字段。
由接收就绪信号RRDY和字接收完成信号RWDONE控制。当字接收完成信号RWDONE=1(高电平)时,表示接收控制电路25已经完成了一个字的接收。若RWDONE=1且RRDY=0,则将接收移位寄存器RSHTA和RSHTB中的信息复制到接收缓冲寄存器22中。接收移位寄存器RSHTA复制到接收缓冲寄存器22的[15:0](低16位)、接收移位寄存器RSHTB复制到接收缓冲寄存器22的[31:16](高16位),同时将接收就绪信号RRDY置为1,字接收完成信号RWDONE置为0。
通过上述接收移位寄存器RSHTA和接收移位寄存器RSHTB可以最简约的电路结构支持双时钟沿的数据接收处理。
具体的,32位的接收缓冲寄存器22存储已接收、待数据总线读取的报文信息。当报文类型为命令报文或中断报文时,接收缓冲寄存器22中存储信息包括报文头、类型和报文尾;当报文类型为数据报文时,接收缓冲寄存器22中存储信息包括报文头、类型、长度、CRC校验、报文尾和数据字。接收缓冲寄存器22中最多可存储2个数据字。
接收就绪信号RRDY控制接收缓冲寄存器22的更新。当接收就绪信号RRDY=0时,接收缓冲寄存器22可以接收来自接收移位寄存器RSHTA和RSHTB中的信息,接收信息的同时接收就绪信号RRDY置为1。当数据总线从接收缓冲寄存器22中读出信息时,接收就绪信号RRDY置为0。
接收控制电路25在内部接收时钟RCLKA和RCLKB的驱动下,将输入信号DR1和DR2上的信息按位移至接收移位寄存器RSHTA和RSHTB中。内部接收时钟RCLKA发生1->0跳变标志着接收控制过程开始。
当内部接收时钟RCLKA发生1->0跳变时,输入信号DR1上的第一位信息移位至接收移位寄存器RSHTA中;当内部接收时钟RCLKA接着发生0->1跳变时,输入信号DR1上的第二位信息移位至接收移位寄存器RSHTA中。当内部接收时钟RCLKB发生0->1跳变时,输入信号DR2上的第一位信息移位至接收移位寄存器RSHTB中;当内部接收时钟RCLKB接着发生1->0跳变时,输入信号DR2上的第二位信息移位至接收移位寄存器RSHTB中。以此类推。移位时,遵循MSB(Most Significant Bit)原则,即从高位到低位依次移位。
接收控制电路25中包含5位接收数据字计数器RWCNT、5位接收移位计数器RBCNTA和接收移位计数器RBCNTB。接收移位计数器RBCNTA从0增加到15时表示接收移位寄存器RSHTA中的16位信息接收完成,接收移位计数器RBCNTB从0增加到15时表示接收移位寄存器RSHTB中的16位信息接收完成。接收数据字计数器RWCNT从 0增加到报文长度PLEN时表示一个报文的数据字段接收完成。
每接收完一个字,字接收完成信号RWDONE有效。若字接收完成信号RWDONE=1(高电平)且RRDY=0,则将接收移位寄存器RSHTA和RSHTB中的信息复制到接收缓冲寄存器22中,同时将RRDY置为1且字接收完成信号RWDONE置为0。当接收就绪信号RRDY有效后,数据总线应及时读取接收缓冲寄存器22中的信息,否则接收移位寄存器RSHTA和RSHTB中后续接收完成的信息无法复制到接收缓冲寄存器22中,可能会被新移入数据覆盖。
接收中断电路23根据报文接收的进度产生字接收中断信号DRINT和报文接收中断信号PXINT。当RRDY发生0->1跳变时,接收中断电路23可向数据总线发出一个字接收中断信号DRINT以通知数据总线从接收缓冲寄存器22中读取信息。当一个报文成功接收或接收完成但CRC校验错误时,接收中断电路23可向数据总线发出一个报文接收中断信号PRINT以通知数据总线进行后续操作。
CRC校验电路对已接收报文中的数据字段进行计算、生成CRC校验并与已接收报文中的CRC字段进行比较。若匹配,则表示数据字段成功接收;否则,表示数据字段接收错误。发生数据字段接收错误时,CRC_Err信号有效,通知接收中断电路23产生报文接收中断信号。
需要说明的是,本申请中设定高电平有效,本领域技术人员也可以根据实际需要选择相反的设置,只要能够实现相应功能即可。
在一个实施例中,请参阅图5,还提供一种数据传输方法,应用于上述的数据传输电路,该方法包括如下数据发送处理步骤:
S11,初始化数据传输电路;初始化包括设置报文类型、报文中数据字段长度、设置输出信号关联的每个第一可编程延时链控制参数;
S12,通过字发送中断信号通知数据总线将报文信息写入发送缓冲寄存器;报文信息包括报文头字段和报文类型字段;
S13,将发送缓冲寄存器中的报文信息装载到发送移位寄存器;
S14,从第一内部发送时钟的第一个负跳沿开始,在每一次电平转换时将发送移位寄存器中的报文信息从高位到低位按位移至第一输出信号;
S15,报文信息发送完成后,通过字发送中断信号通知数据总线将报文尾字段写入发送缓冲寄存器;报文类型为命令类型或中断类型;
S16,将发送缓冲寄存器中的报文尾字段装载到发送移位寄存器;
S17,在发送完报文信息后从第一内部发送时钟的下一个负跳沿开始,将发送移位寄存器中的报文尾字段从高位到低位按位移至第一输出信号(可以记为DX1);
S18,在当前发送的一个报文发送结束后向数据总线发出一个报文发送中断信号。
可以理解,关于本实施例数据传输方法中各相关术语的具体说明限定,可以参照上文中数据传输电路100的相应说明限定同理理解,在此不再赘述,下文同理。
上述数据传输方法,通过第一时钟发生电路为发送控制电路提供双沿时钟,从而支持双时钟沿发送数据,提高数据传输带宽,而采用第一可编程延时链则可以有效平衡、补偿PCB布线、工作环境变化对信号延时和信号质量的影响,进一步提高稳定传输时的工作频率,形成采用多组时钟与数据线的组合设计,消除常规并行总线宽度较大时PCB布线带来的影响,具有灵活、易用且传输速率高的实际应用特点,达到了大幅提高数据传输综合性能的效果。
在一个实施例中,如图6所示,在上述的步骤S15之前,还包括步骤:
报文信息发送完成后,通过字发送中断信号通知数据总线将待发送的数据字写入发送缓冲寄存器;报文类型为数据类型;
将发送缓冲寄存器中的数据字装载到发送移位寄存器;若发送缓冲寄存器中的有效数据字数为2,则发送缓冲寄存器的高16位装载到发送移位寄存器XSHTB,发送缓冲寄存器的低16位装载到发送移位寄存器XSHTA,若发送缓冲寄存器中的有效数据字数为1,则发送缓冲寄存器的低16位装载到发送移位寄存器XSHTA;
在发送完报文信息后从第一内部发送时钟的下一个负跳沿开始,将发送移位寄存器XSHTA中的数据字从高位到低位按位移至第一输出信号;若发送移位寄存器XSHTB中有已装载待发送的数据,则同时在第二内部发送时钟的下一个正跳沿开始,将发送移位寄存器XSHTB中的数据字从高位到低位按位移至第二输出信号(可以记为DX2)上;
在发送移位寄存器中的数据字每发送完成一次时,判断发送数据字计数器是否计数达到报文数据字长度值;
若是,则进入报文信息发送完成后,通过字发送中断信号通知数据总线将报文尾字段写入发送缓冲寄存器的步骤,否则返回报文信息发送完成后,通过字发送中断信号通知数据总线将待发送的数据字写入发送缓冲寄存器的步骤。
具体的,发送端数据传输的工作过程:
步骤1初始化:设置报文类型PTYPE、报文中数据字段长度PLEN;设置输出信号XCLK、DX1和DX2关联的每个延时链的DSELx和DSELy控制参数,以调整信号的偏移。
步骤2写入报文头和类型字段:通过字发送中断信号WXINT通知数据总线将报文头和报文类型字段写入发送缓冲寄存器XBUF。如果报文类型为数据类型,报文长度字段PLEN也同时写入XBUF。
步骤3装载报文头和类型字段:将发送缓冲寄存器XBUF中的报文头、报文类型和报文长度(若有)等字段信息装载到发送移位寄存器XSHTA。
步骤4发送报文头和类型字段:从第一内部发送时钟XCLKA的第一个负跳沿(1->0电平转换)开始,每一次1->0或0->1电平转换时,将发送移位寄存器XSHTA中的报文头等信息从高位到低位按位移至输出信号DX1上。
报文头、报文类型和报文长度(若有)字段发送完成后,如果报文类型是数据类型则接着进行步骤5,否则转移至步骤8。
步骤5写入数据字段:如果报文类型是数据类型,通过字发送中断信号WXINT通知数据总线将待发送的数据字写入发送缓冲寄存器XBUF。发送缓冲寄存器XBUF中最多可同时存储2个16位数据字。
步骤6装载数据字段:将发送缓冲寄存器XBUF中的数据字装载到发送移位寄存器XSHTA和XSHTB中。如果发送缓冲寄存器XBUF有效数据字数为2,则发送缓冲寄存器XBUF的[31:16](高16位)装载到发送移位寄存器XSHTB,发送缓冲寄存器XBUF的[15:0](低16位)装载到发送移位寄存器XSHTA。如果发送缓冲寄存器XBUF有效数据字数为1,则发送缓冲寄存器XBUF的[15:0](低16位)装载到发送移位寄存器XSHTA。
步骤7发送数据字段:如果报文为数据类型,发送完报文头、报文类型和报文长度字段后,紧接着第一内部发送时钟XCLKA下一个负跳沿(1->0电平转换)开始,将发送移位寄存器XSHTA中的数据字从高位到低位按位移至输出信号DX1上。若发送移位寄存器XSHTB中也有已装载待发送的数据,则同时在第二内部发送时钟XCLKB下一个正跳沿(0->1电平转换)开始,将发送移位寄存器XSHTB中的数据字从高位到低位按位移至输出信号DX2上。发送移位寄存器XSHTA和XSHTB中的数据字每发送完成一次即进行一次判断,判断发送数据字计数器XWCNT是否计数达到报文数据字长度值PLEN。若是,则表示数据字段全部发送完成,紧接着进入步骤8;若否,则表示数据字段尚未全部发送完成,则重复步骤5-7。
步骤8写入CRC校验和报文尾字段:通过字发送中断信号WXINT通知数据总线将报文尾字段写入发送缓冲寄存器XBUF。如果报文类型是数据报文,则CRC校验字段也同时写入发送缓冲寄存器XBUF。
步骤9装载CRC校验和报文尾字段:将发送缓冲寄存器XBUF中的CRC校验(若有)和报文尾字段装载到发送移位寄存器XSHTA。
步骤10发送CRC校验和报文尾字段:发送完报文头和类型字段后,或发送完数据字段后,紧接着第一内部发送时钟XCLKA下一个负跳沿(1->0电平转换)开始,将发送移位寄存器XSHTA中的报文尾等信息从高位到低位按位移至输出信号DX1上。
步骤11报文发送中断通知:当一个报文发送结束后,发送中断电路向数据总线发出一个报文发送中断信号PXINT以通知数据总线进行后续操作。
通过上述传输处理步骤,则可以进一步完成数据报文的高效传输。
在一个实施例中,如图7所示,上述的数据传输方法还可以包括如下处理步骤:
S21,初始化数据传输电路;初始化包括设置输入信号关联的每个第二可编程延时链控制参数;
S22,从第三内部接收时钟的第一个负跳沿开始,在每一次电平转换时将第一输入信号(可以记为DR1)上的报文信息移位至接收移位寄存器RSHTA;报文信息包括报文头字段、报文类型字段和报文长度字段(若有);
S23,在报文信息接收完成后,将接收移位寄存器RSHTA中的报文信息复制到接收缓冲寄存器;
S24,通过字接收中断信号通知数据总线从接收缓冲寄存器中读取报文信息;
S25,接收完报文信息后,在第三内部接收时钟的下一个负跳沿开始,将第一输入信号上的报文尾信息按位移位至接收移位寄存器RSHTA中;报文尾信息包括CRC校验字段(若有)和报文尾字段;
S26,将接收移位寄存器RSHTA中的报文尾信息复制到接收缓冲寄存器;
S27,通过字接收中断信号通知数据总线读取接收缓冲寄存器中的报文尾信息;
S28,在当前接收的一个报文接收结束后,向数据总线发出一个报文接收中断信号。
通过第二时钟发生电路为接收控制电路提供双沿时钟,从而支持双时钟沿接收数据,提高数据传输带宽,而采用第二可编程延时链则可以有效平衡、补偿PCB布线、工作环境变化对信号延时和信号质量的影响,进一步提高稳定传输时的工作频率,形成采用多组时钟与数据线的组合设计,消除常规并行总线宽度较大时PCB布线带来的影响,具有灵活、易用且传输速率高的实际应用特点,达到了大幅提高数据接收综合性能的效果。
在一个实施例中,如图8所示,在上述的步骤S25中,还可以包括如下处理步骤:
在第三内部接收时钟的下一个负跳沿开始,将第一输入信号上DR1的数据字段信息按位移位至接收移位寄存器RSHTA中;
在上述的步骤S25之前,还可以包括如下处理步骤:
若报文长度大于1,则同时在第四内部接收时钟的下一个正跳沿开始,将第二输入信号(可以记为DR2)上的报文信息按位移位至接收移位寄存器RSHTB;
将接收移位寄存器RSHTA和接收移位寄存器RSHTB中的数据字段复制到接收缓冲寄存器;
通过字接收中断信号通知数据总线将待读取的数据字从接收缓冲寄存器中读出;
在接收缓冲寄存器中的数据字每读取一次时,判断接收数据字计数器是否计数达到报文数据字长度值;
若是,则进入接收完报文信息后,在第三内部接收时钟的下一个负跳沿开始,将第一输入信号上的报文尾信息按位移位至接收移位寄存器RSHTA中的步骤,否则返回在第三内部接收时钟的下一个负跳沿开始,将第一输入信号上的数据字段信息按位移位至接收移位寄存器RSHTA中的步骤。
具体的,接收端数据传输的工作过程:
步骤1初始化:设置输入信号RCLK、DR1和DR2关联的每个延时链的DSELx和DSELy控制参数,以调整信号的偏移。
步骤2接收报文头和类型字段:从第三内部接收时钟RCLKA的第一个负跳沿(1->0电平转换)开始,每一次1->0或0->1电平转换时,将输入信号DR1上的信息移位至接收移位寄存器RSHTA中,形成报文头和类型字段。如果报文类型为数据类型,报文长度字段PLEN也依次移位至接收移位寄存器RSHTA。
步骤3复制报文头和类型字段:报文头、类型和长度(若有)字段接收完成后,将接收移位寄存器RSHTA中的信息复制到接收缓冲寄存器RBUF。
步骤4读取报文头和类型字段:通过字接收中断信号WRINT通知数据总线从接收缓冲寄存器RBUF中读取报文头、类型和长度(若有)字段信息。
报文头、类型和长度(若有)字段接收完成后,如果报文类型是数据类型则接着进行步骤5,否则转移至步骤8。
步骤5接收数据字段:如果报文是数据类型,则接收完报文头、类型和长度字段后,紧接着第三内部接收时钟RCLKA下一个负跳沿(1->0电平转换)开始,将输入信号DR1上的信息按位移位至接收移位寄存器RSHTA中。若报文长度PLEN>1,则同时在第四内部接收时钟RCLKB下一个正跳沿(0->1电平转换)开始,将输入信号DR2上的信息按位移位至接收移位寄存器RSHTB中。
步骤6复制数据字段:将接收移位寄存器RSHTA和RSHTB中的数据字段复制到接收缓冲寄存器RBUF中。接收缓冲寄存器RBUF中最多可缓存2个16位数据字。接收移位寄存器RSHTB复制到接收缓冲寄存器XBUF的[31:16](高16位),接收移位寄存器RSHTA复制到接收缓冲寄存器XBUF的[15:0](高低位)。
步骤7读取数据字段:通过字接收中断信号WRINT通知数据总线将待读取的数据字从接收缓冲寄存器RBUF中读出。接收缓冲寄存器RBUF中的数据字每读取一次就进行一次判断,判断接收数据字计数器RWCNT是否计数达到报文数据字长度值PLEN。若是,则表示数据字段全部接收完成,紧接着进入步骤8;若否,则表示数据字段尚未全部接收完成,则重复步骤5-7。
步骤8接收CRC校验和报文尾字段:接收完报文头、类型和长度(若有)字段后,或接收完数据字段后,紧接着第三内部接收时钟RCLKA下一个负跳沿开始,将输入信号DR1上的信息按位移位至接收移位寄存器RSHTA中,形成CRC校验和报文尾字段。若报文类型为数据类型,则首先接收CRC校验字段。
步骤9复制CRC校验和报文尾字段:将接收移位寄存器RSHTA中的内容复制到接收缓冲寄存器RBUF中。
步骤10读取CRC校验和报文尾字段:通过字接收中断信号WRINT通知数据总线读取接收缓冲寄存器RBUF中的信息。
步骤11报文接收中断通知:当一个报文接收结束后,若正常结束或发生CRC校验错误,接收中断电路向数据总线发出一个报文接收中断信号PRINT以通知数据总线进行后续操作。
通过上述传输处理步骤,则可以进一步完成数据报文的高效传输。
应该理解的是,虽然图5至图8流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且图5至图8的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可做出若干变形和改进,都属于本申请保护范围。因此本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据传输电路,其特征在于,包括:
第一CRC校验电路,用于对待发送报文中的数据字段进行CRC校验处理;
发送缓冲寄存器,连接所述第一CRC校验电路,用于存储待发送报文信息;
发送中断电路,连接所述发送缓冲寄存器,用于根据报文发送的进度通知数据总线向所述发送缓冲寄存器写入数据或执行报文发送后操作;
发送移位寄存器,连接所述发送缓冲寄存器,用于保存当前正在发送的报文字段;
第一时钟发生电路,用于基于系统时钟产生两个与系统时钟同频率且反相位的内部发送时钟,所述内部发送时钟为双沿时钟;
发送控制电路,分别连接所述第一时钟发生电路和所述发送移位寄存器,用于在所述内部发送时钟的驱动下将所述发送移位寄存器中的报文字段按位移至输出信号并同时产生发送时钟;
第一可编程延时链,连接所述发送控制电路,用于分别对所述输出信号和所述发送时钟进行设定延时输出。
2.根据权利要求1所述的数据传输电路,其特征在于,还包括:
第二可编程延时链,用于分别对输入信号和接收时钟进行设定延时输入;
第二时钟发生电路,连接所述第二可编程延时链,用于基于所述接收时钟产生两个与所述接收时钟同频率且反相位的内部接收时钟,所述内部接收时钟为双沿时钟;
接收控制电路,分别连接所述第二可编程延时链和所述第二时钟发生电路,用于在所述内部接收时钟的驱动下将所述输入信号上的报文字段按位移至接收移位寄存器中;
所述接收移位寄存器,连接所述接收控制电路,用于保存当前正在接收的报文字段;
接收缓冲寄存器,连接所述接收移位寄存器,用于存储已接收且待数据总线读取的报文信息;
接收中断电路,连接所述接收缓冲寄存器,用于根据报文接收的进度通知数据总线从所述接收缓冲寄存器中读取报文信息或执行报文接收后的操作;
第二CRC校验电路,分别连接所述接收中断电路和所述接收缓冲寄存器,用于对已接收报文中的数据字段进行CRC校验处理。
3.根据权利要求1所述的数据传输电路,其特征在于,所述发送移位寄存器包括发送移位寄存器XSHTA和发送移位寄存器XSHTB,所述发送移位寄存器XSHTA分别连接所述发送缓冲寄存器和所述发送控制电路,所述发送移位寄存器XSHTB分别连接所述发送缓冲寄存器和所述发送控制电路;
所述发送移位寄存器XSHTA用于保存当前正在发送的报文字段,所述发送移位寄存器XSHTB用于保存当前正在发送的数据字段。
4.根据权利要求1或3所述的数据传输电路,其特征在于,所述第一可编程延时链包括第一级延时链和第二级延时链,所述第一级延时链包括第一选择器和N个级联的第一延时单元,所述第二级延时链包括第二选择器和N个级联的第二延时单元;
所述第一选择器的各输入端分别连接各所述第一延时单元的输出端,所述第一选择器的输出端连接所述第二级延时链的输入端,所述第二选择器的各输入端分别连接各所述第二延时单元的输出端;
所述第一选择器用于控制信号从选定的所述第一延时单元输出,所述第二选择器用于控制信号从选定的所述第二延时单元输出。
5.根据权利要求2所述的数据传输电路,其特征在于,所述第二可编程延时链的结构与所述第一可编程延时链的结构相同。
6.根据权利要求2所述的数据传输电路,其特征在于,所述接收移位寄存器包括接收移位寄存器RSHTA和接收移位寄存器RSHTB,所述接收移位寄存器RSHTB分别连接所述接收缓冲寄存器和所述接收控制电路,所述接收移位寄存器RSHTA分别连接所述接收缓冲寄存器和所述接收控制电路;
所述接收移位寄存器RSHTA用于保存当前正在接收的报文字段,所述接收移位寄存器RSHTB用于保存当前正在接收的数据字段。
7.一种数据传输方法,其特征在于,应用于上述权利要求1至6任一项所述的数据传输电路,所述方法包括步骤:
初始化数据传输电路;所述初始化包括设置报文类型、报文中数据字段长度、设置输出信号关联的每个第一可编程延时链控制参数;
通过字发送中断信号通知数据总线将报文信息写入发送缓冲寄存器;所述报文信息包括报文头字段和报文类型字段;
将发送缓冲寄存器中的报文信息装载到发送移位寄存器;
从第一内部发送时钟的第一个负跳沿开始,在每一次电平转换时将发送移位寄存器中的报文信息从高位到低位按位移至第一输出信号;
所述报文信息发送完成后,通过字发送中断信号通知数据总线将报文尾字段写入发送缓冲寄存器;报文类型为命令类型或中断类型;
将所述发送缓冲寄存器中的报文尾字段装载到所述发送移位寄存器;
在发送完所述报文信息后从所述第一内部发送时钟的下一个负跳沿开始,将发送移位寄存器中的报文尾字段从高位到低位按位移至第一输出信号;
在当前发送的一个报文发送结束后向数据总线发出一个报文发送中断信号。
8.根据权利要求7所述的数据传输方法,其特征在于,所述报文信息发送完成后,通过字发送中断信号通知数据总线将报文尾字段写入发送缓冲寄存器的步骤之前,还包括步骤:
所述报文信息发送完成后,通过字发送中断信号通知数据总线将待发送的数据字写入发送缓冲寄存器;所述报文类型为数据类型;
将所述发送缓冲寄存器中的数据字装载到发送移位寄存器;若所述发送缓冲寄存器中的有效数据字数为2,则所述发送缓冲寄存器的高16位装载到发送移位寄存器XSHTB,所述发送缓冲寄存器的低16位装载到发送移位寄存器XSHTA,若所述发送缓冲寄存器中的有效数据字数为1,则所述发送缓冲寄存器的低16位装载到发送移位寄存器XSHTA;
在发送完所述报文信息后从所述第一内部发送时钟的下一个负跳沿开始,将发送移位寄存器XSHTA中的数据字从高位到低位按位移至第一输出信号;若所述发送移位寄存器XSHTB中有已装载待发送的数据,则同时在第二内部发送时钟的下一个正跳沿开始,将所述发送移位寄存器XSHTB中的数据字从高位到低位按位移至第二输出信号上;
在所述发送移位寄存器中的数据字每发送完成一次时,判断发送数据字计数器是否计数达到报文数据字长度值;
若是,则进入所述报文信息发送完成后,通过字发送中断信号通知数据总线将报文尾字段写入发送缓冲寄存器的步骤,否则返回所述报文信息发送完成后,通过字发送中断信号通知数据总线将待发送的数据字写入发送缓冲寄存器的步骤。
9.根据权利要求7所述的数据传输方法,其特征在于,还包括步骤:
初始化数据传输电路;所述初始化包括设置输入信号关联的每个第二可编程延时链控制参数;
从第三内部接收时钟的第一个负跳沿开始,在每一次电平转换时将第一输入信号上的报文信息移位至接收移位寄存器RSHTA;所述报文信息包括报文头字段、报文类型字段和报文长度字段;
在所述报文信息接收完成后,将所述接收移位寄存器RSHTA中的报文信息复制到接收缓冲寄存器;
通过字接收中断信号通知数据总线从所述接收缓冲寄存器中读取所述报文信息;
接收完所述报文信息后,在所述第三内部接收时钟的下一个负跳沿开始,将所述第一输入信号上的报文尾信息按位移位至接收移位寄存器RSHTA中;所述报文尾信息包括CRC校验字段和报文尾字段;
将所述接收移位寄存器RSHTA中的报文尾信息复制到所述接收缓冲寄存器;
通过字接收中断信号通知数据总线读取所述接收缓冲寄存器中的所述报文尾信息;
在当前接收的一个报文接收结束后,向数据总线发出一个报文接收中断信号。
10.根据权利要求9所述的数据传输方法,其特征在于,所述接收完所述报文信息后,在所述第三内部接收时钟的下一个负跳沿开始,将所述第一输入信号上的报文尾信息按位移位至接收移位寄存器RSHTA中的步骤,还包括:
在所述第三内部接收时钟的下一个负跳沿开始,将所述第一输入信号上的数据字段信息按位移位至接收移位寄存器RSHTA中;所述接收完所述报文信息后,在所述第三内部接收时钟的下一个负跳沿开始,将所述第一输入信号上的报文尾信息按位移位至接收移位寄存器RSHTA中的步骤之前,还包括步骤:
若报文长度大于1,则同时在第四内部接收时钟的下一个正跳沿开始,将第二输入信号上的报文信息按位移位至接收移位寄存器RSHTB;
将接收移位寄存器RSHTA和接收移位寄存器RSHTB中的数据字段复制到接收缓冲寄存器;
通过字接收中断信号通知数据总线将待读取的数据字从所述接收缓冲寄存器中读出;
在所述接收缓冲寄存器中的数据字每读取一次时,判断接收数据字计数器是否计数达到报文数据字长度值;
若是,则进入所述接收完所述报文信息后,在所述第三内部接收时钟的下一个负跳沿开始,将所述第一输入信号上的报文尾信息按位移位至接收移位寄存器RSHTA中的步骤,否则返回所述在所述第三内部接收时钟的下一个负跳沿开始,将所述第一输入信号上的数据字段信息按位移位至接收移位寄存器RSHTA中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211390414.0A CN116166469B (zh) | 2022-11-08 | 2022-11-08 | 数据传输电路及数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211390414.0A CN116166469B (zh) | 2022-11-08 | 2022-11-08 | 数据传输电路及数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116166469A CN116166469A (zh) | 2023-05-26 |
CN116166469B true CN116166469B (zh) | 2023-06-20 |
Family
ID=86418895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211390414.0A Active CN116166469B (zh) | 2022-11-08 | 2022-11-08 | 数据传输电路及数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116166469B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101374093A (zh) * | 2008-09-27 | 2009-02-25 | 华中科技大学 | 一种现场总线的通信接口及通信数据的实时传输方法 |
CN102262572A (zh) * | 2011-07-19 | 2011-11-30 | 浙江大学 | 一种带crc校验功能的iic总线接口控制器 |
CN105468563A (zh) * | 2015-12-28 | 2016-04-06 | 杭州士兰控股有限公司 | Spi从设备、spi通信系统及spi通信方法 |
CN105515926A (zh) * | 2015-11-25 | 2016-04-20 | 中国电子科技集团公司第二十八研究所 | 一种基于fpga的二进制同步通信协议控制器 |
CN112799992A (zh) * | 2021-02-08 | 2021-05-14 | 燕山大学 | 现场总线芯片架构 |
CN114780464A (zh) * | 2022-06-14 | 2022-07-22 | 湖南毂梁微电子有限公司 | 串行数据传输电路及数据传输方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8667164B2 (en) * | 2010-04-26 | 2014-03-04 | Samsung Electronics Co., Ltd. | Method and apparatus for playing live content |
US11379402B2 (en) * | 2020-10-20 | 2022-07-05 | Micron Technology, Inc. | Secondary device detection using a synchronous interface |
-
2022
- 2022-11-08 CN CN202211390414.0A patent/CN116166469B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101374093A (zh) * | 2008-09-27 | 2009-02-25 | 华中科技大学 | 一种现场总线的通信接口及通信数据的实时传输方法 |
CN102262572A (zh) * | 2011-07-19 | 2011-11-30 | 浙江大学 | 一种带crc校验功能的iic总线接口控制器 |
CN105515926A (zh) * | 2015-11-25 | 2016-04-20 | 中国电子科技集团公司第二十八研究所 | 一种基于fpga的二进制同步通信协议控制器 |
CN105468563A (zh) * | 2015-12-28 | 2016-04-06 | 杭州士兰控股有限公司 | Spi从设备、spi通信系统及spi通信方法 |
CN112799992A (zh) * | 2021-02-08 | 2021-05-14 | 燕山大学 | 现场总线芯片架构 |
CN114780464A (zh) * | 2022-06-14 | 2022-07-22 | 湖南毂梁微电子有限公司 | 串行数据传输电路及数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116166469A (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0047440B1 (en) | Shift circuit | |
JP3338374B2 (ja) | 演算処理方法および装置 | |
JPH0144058B2 (zh) | ||
KR100439211B1 (ko) | 연산처리장치 | |
US7003717B2 (en) | Decoding apparatus, decoding method, data-receiving apparatus and data-receiving method | |
US6754870B2 (en) | CRC operation unit and CRC operation method | |
US6523146B1 (en) | Operation processing apparatus and operation processing method | |
EP1673914A2 (en) | Dual phase pulse modulation encoder circuit | |
CN116166469B (zh) | 数据传输电路及数据传输方法 | |
US20110153995A1 (en) | Arithmetic apparatus including multiplication and accumulation, and dsp structure and filtering method using the same | |
US6442579B1 (en) | Low power linear feedback shift registers | |
WO2006039055A1 (en) | Distributed ring control circuits for viterbi traceback | |
US5878060A (en) | Viterbi decoding apparatus and viterbe decoding method | |
US20090063736A1 (en) | Low power digital interface | |
US6848042B1 (en) | Integrated circuit and method of outputting data from a FIFO | |
JP4090996B2 (ja) | データウィンドウを使用するデータ復号方法 | |
EP1096380A1 (en) | Processor | |
US7613990B1 (en) | Method and system for a multi-channel add-compare-select unit | |
CN113272795B (zh) | 数据通信装置以及数据通信方法 | |
JP3996858B2 (ja) | 演算処理装置 | |
JP3634333B2 (ja) | ディジタル信号処理プロセッサ | |
CN117407345A (zh) | 一种共享触发总线的实现方法和系统 | |
JPH02170725A (ja) | ビタビ復号回路 | |
JPH0361375B2 (zh) | ||
KR20010080916A (ko) | 디지털신호 처리장치 및 그 제어방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |