CN104536929A - 一种物理层初始化方法及客户端 - Google Patents
一种物理层初始化方法及客户端 Download PDFInfo
- Publication number
- CN104536929A CN104536929A CN201510018652.2A CN201510018652A CN104536929A CN 104536929 A CN104536929 A CN 104536929A CN 201510018652 A CN201510018652 A CN 201510018652A CN 104536929 A CN104536929 A CN 104536929A
- Authority
- CN
- China
- Prior art keywords
- client
- data
- state
- serial
- locking
- 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.)
- Pending
Links
Landscapes
- Communication Control (AREA)
Abstract
本发明实施例提供一种物理层初始化方法和客户端,应用于需要进行串行通信的第一客户端和第二客户端之间,所述物理层初始化方法包括:步骤S110,在所述第一客户端和第二客户端处于第一状态时,所述第一客户端和第二客户端进行串行数据位锁定;步骤S120,在所述第一客户端和第二客户端处于第二状态时,所述第一客户端和第二客户端进行通道对齐。本发明中,通过将上述串行数据位锁定过程和通道对齐过程分配到两个不同的状态下进行,并通过述交互互锁机制和超时复位机制,使得需要串行通信的两端能够同时完成相同状态下的操作流程,可保证两端的客户端同时完成物理层初始化,从而提供了一种有效并且可靠的物理层初始化方法。
Description
技术领域
本发明涉及集成电路设计领域,特别涉及一种物理层初始化方法及客户端。
背景技术
在计算机和通信领域,数据的传输速率越来越快,传统并行传输数据的方法已经无法满足高速率的要求,于是采用串行通信的方式传输数据,串行通信中需要对串行通道进行初始化后才可以提供给上层链路使用,因此串行通道之间如何进行有效可靠的链路物理层初始化已成为串行通信是否可靠的重要标准。
在现有技术中,可以通过执行通道对齐过程来实现串行通道的初始化,然而,当串行通道的一端完成初始化之后,并不能确保串行通道的另外一端同样完成通道对齐过程,当串行通道初始化过程中只有一端的物理层完成通道对齐过程之后,上层会将需要发送给物理层,由物理层通过串行通道进行数据的收发,然而,由于串行通道并不能完成数据的收发,因此上层需要发送的数据不能完成发送,会造成上层的数据传输出现错误,并由于上层需要重发数据导致系统资源的浪费,此外,当一端完成初始化并进行数据收发状态之后,将不再继续发送用于通道对齐的数据,从而使得另一端无法继续进行通道对齐过程并完成初始化过程,因此将导致初始化过程失败,此时,上层需要不断重启物理层并重新完成初始化过程,因此,上述初始化方法会降低串行通信的可靠性。
发明内容
本发明提供一种物理层初始化方法及客户端,用于解决现有技术中由于所导致由于串行通道的两端不能同时完成初始化所造成的串行通信可靠性下降的问题。
为了解决上述技术问题,本发明提供了一种物理层初始化方法,应用于需要进行串行通信的第一客户端和第二客户端之间,所述物理层初始化方法包括:
步骤S110,在所述第一客户端和第二客户端处于第一状态时,所述第一客户端和第二客户端进行串行数据位锁定;
步骤S120,在所述第一客户端和第二客户端处于第二状态时,所述第一客户端和第二客户端进行通道对齐。
优选地,所述方法还包括:在所述第一客户端和第二客户端处于第一或第二状态时,如果所述第一客户端和第二客户端在预定的时长完成当前的状态对应的操作,便进入下一状态,否则,执行复位操作;
所述第二状态对应的操作包括:第一或第二客户端在完成所述通道对齐过程之后,向对方发送完成确认信息;以及,第一或第二客户端收对方发送的完成确认信息。
优选地,在步骤S120之后,还包括:步骤S130,在所述第一客户端和第二客户端处于第三状态时,第一客户端和第二客户端进行数据锁定。
优选地,所述步骤S110包括:
第一客户端进入第一状态,对应的计数器开始计数;
第一客户端向第二客户端发送时钟信号和数据信号,第二客户端向第一客户端发送时钟信号和数据信号;
所述第一客户端收到第二客户端发送的时钟信号和数据信号之后,根据所述时钟信号和数据信号执行串行数据位锁定过程,当预定计时器的计数到达预定值时,如果所述第一客户端已经完成所述串行数据位锁定过程,则进入第二状态;如果所述第一客户端没有完成所述串行数据位锁定过程,则重新进入第一状态,且计数器重新开始计数;
第二客户端进入第一状态,对应的计数器开始计数;
所述第二客户端收到第一客户端发送的时钟信号和数据信号之后,根据所述时钟信号和数据信号执行串行数据位锁定过程,当预定计时器的计数到达预定值时,如果所述第二客户端已经完成所述串行数据位锁定过程,则进入第二状态;如果所述第二客户端没有完成所述串行数据位锁定过程,则重新进入第一状态,且计数器重新开始计数;
其中,第一状态所对应的预定的时长为第一时长,所述预定值为第一时长对应的计数值。
优选地,所述步骤S120包括:
第一客户端进入第二状态之后,对应的计数器开始计时;第一客户端向第二客户端发送NACK数据;
当第一客户端接收到第二客户端发送的NACK数据或ACK数据时,第一客户端根据所述NACK数据或ACK数据执行通道对齐过程;并在完成所述通道对齐过程之后,向第二客户端发送ACK数据;
当预定计时器的计数到达预定值时,如果所述第一客户端没有接收到第二客户端发送的NACK数据,则重新进入第一状态;
当预定计时器的计数到达预定值时,如果所述第一客户端收到所述第二客户端发送的ACK数据,则进入第三状态;如果所述第一客户端没有收到所述第二客户端发送的ACK数据,则重新进入第一状态;
第二客户端进入第二状态之后,对应的计数器开始计时;第二客户端向第一客户端发送NACK数据;
当第二客户端接收到第一客户端发送的NACK数据或ACK数据时,第二客户端根据所述NACK数据或ACK数据执行通道对齐过程;并在完成所述通道对齐过程之后,向第一客户端发送ACK数据;
当预定计时器的计数到达预定值时,如果所述第二客户端没有接收到第一客户端发送的NACK数据,则重新进入第一状态;
当预定计时器的计数到达预定值时,如果所述第二客户端收到所述第一客户端发送的ACK数据,则进入第三状态;如果所述第二客户端没有收到所述第一客户端发送的ACK数据,则重新进入第一状态;
其中,第一状态所对应的预定的时长为第一时长,所述预定值为第二时长对应的计数值。
优选地,所述步骤S130包括:
当第一客户端进入第三状态之后,
第一客户端向第二客户端发送链路序列锁定数据,以在发送链路序列锁定数据之后向第二客户端发送有效数据;
当第一客户端接收到第二客户端发送的链路序列锁定数据之后,第一客户端开始接收所述链路序列锁定数据之后的有效数据,以将接收的有效数据发送至上层;
当第二客户端进入第三状态之后,第二客户端向第一客户端发送链路序列锁定数据,以在发送链路序列锁定数据之后向第一客户端发送有效数据;
当第二客户端接收到第一客户端发送的链路序列锁定数据之后,第二客户端开始接收所述链路序列锁定数据之后的有效数据,以将接收的有效数据发送至上层。
为了解决上述技术问题,本发明还提供一种客户端,所述客户端包括:
第一状态执行单元,用于在处于第一状态时,与需要进行串行通信的对端客户端进行串行数据位锁定;
第二状态执行单元,用于在处于第二状态时,与所述对端客户端进行通道对齐。
优选地,所述客户端还包括:
第三状态执行单元,用于在处于第三状态时,与所述对端客户端进行数据锁定。
优选地,所述第一状态执行单元包括:
第一计数模块、用于进入第一状态,对应的计数器开始计数;
第一发送模块、用于发送时钟信号和数据信号;其中,通过第一串行通道发送所述数据信号,通过辅助串行通道发送所述时钟信号;
位锁定模块、用于在收到时钟信号和数据信号之后,根据所述时钟信号和数据信号执行串行数据位锁定过程;
完成模块、用于当预定计时器的计数到达预定值时,判断是否完成所述串行数据位锁定过程,如果已经完成所述串行数据位锁定过程,则进入第二状态;
第一复位模块,用于当预定计时器的计数到达预定值时,在判断是否完成所述串行数据位锁定过程之后,如果没有完成所述串行数据位锁定过程,则重新进入第一状态,且计数器重新开始计数。
优选地,所述第二状态执行单元包括:
第二计数模块、用于进入第二状态之后,对应的计数器开始计时;
第二发送模块、用于通过第一串行通道发送NACK数据;
第二接收模块、用于判断是否通过第一串行通道接收到NACK数据,如果是则接收NACK数据;
通道对齐模块、用于当通过第一串行通道接收到NACK数据或ACK数据时,根据所述NACK数据或ACK数据执行通道对齐过程;
第二复位模块、用于当预定计时器的计数到达预定值时,如果没有通过第一串行通道接收到NACK数据,则重新进入第一状态。
第二发送模块还用于在完成所述通道对齐过程之后,通过第一串行通道发送ACK数据;
第二完成模块、用于当预定计时器的计数到达预定值时,判断是否收到ACK数据,如果通过第一串行通道收到ACK数据,则进入第三状态;如果没有通过第一串行通道收到ACK数据,则重新进入第一状态。
优选地,所述第三状态执行单元包括:
第三发送模块、用于在进入第三状态之后,通过第一串行通道发送链路序列锁定数据,以在发送链路序列锁定数据之后进入工作状态;
第三接收模块、用于通过第一串行通道接收链路序列锁定数据,以在接收链路序列锁定数据之后进入工作状态。
本发明的有益效果包括:
对于本发明提供的物理层初始化方法,在需要通过串行通道进行通信时,需要对串行通道进行初始化,初始化过程中至少包括串行数据位锁定过程和通道对齐过程,通过在通道对齐过程之前执行串行数据位锁定过程,可以提高通道对齐过程的成功率,使得串行通道两端的物理层能够顺利完成通道对齐过程,从而帮助串行通道两端的物理层同时完成初始化,更重要地是,将上述串行数据位锁定过程和通道对齐过程分配到两个不同的状态下进行,并通过述交互互锁机制和超时复位机制,使得需要串行通信的两端能够同时完成相同状态下的操作流程,并同时进入到下一个状态中,不会造成一方完成初始化,而另外一方未完成初始化,而造成数据传输出现错误的情况,因此,通过上述物理层初始化方法,可以保证串行通道两端的客户端同时完成物理层初始化的过程并同时进入收发状态,从而提供了一种有效并且可靠的物理层初始化方法。
附图说明
图1为本发明实施例提供的一种物理层初始化方法的流程示意图;
图2为本发明实施例提供的又一种物理层初始化方法;
图3A为本发明实施例提供的物理层初始化方法中步骤S210的流程示意图;
图3B为本发明实施例提供的物理层初始化方法中步骤S220的流程示意图;
图4为本发明实施例提供的客户端的结构示意图;
图5为本发明实施例提供的客户端进行物理层初始化的示意图。
具体实施方式
为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图对本发明实施例提供的一种物理层初始化方法及客户端进行详细描述。
本发明实施例提供一种物理层初始化方法,用于实现客户端之间的串行通信工作,客户端中包括物理层和上层,上层根据应用需求需要对有效数据进行接收和发送时,需要通过下层的物理层进行有效数据的接收和发送,本发明实施例中,客户端包括第一客户端和第二客户端,第一客户端和第二客户端通过串行通道相连接。以第一客户端和第二客户端之间的物理层初始化方法为例进行说明,在第一客户端和第二客户端完成物理层初始化之后,第一客户端和第二客户端可进入收发状态,即在收发状态中进行有效数据的收发。请参阅图1,为本发明实施例提供的一种物理层初始化方法的流程示意图,如图1所示,本发明实施例提供的物理层初始化方法包括:
步骤S110,在所述第一客户端和第二客户端处于第一状态时,所述第一客户端和第二客户端进行串行数据位锁定;
步骤S120,在所述第一客户端和第二客户端处于第二状态时,所述第一客户端和第二客户端进行通道对齐。
其中,上述物理层初始化方法根据交互互锁机制和超时复位机制完成;
所述超时复位机制为:在客户端处于第一或第二状态时,根据预定的时长,如果在所述预定的时长完成当前的状态对应的操作,便可进入下一状态,否则,执行复位操作。具体地,在步骤S110中,根据预定的第一时长,如果在第一时长内完成第一状态对应的操作,则进入下一状态,否则执行复位操作;步骤S120中,根据预定的第二时长,如果在预定的第二时长内完成第二状态对应的操作,则进入下一状态,否则执行复位操作。本示例中,第一状态的下一状态为第二状态,第二状态的下一状态为工作状态。其中,执行复位操作,即从步骤S110开始,重新开始物理层初始化的流程。本示例中的客户端包括第一客户端和第二客户端。
上述示例中,所述第一状态对应的操作包括完成上述串行数据位锁定,所述第二状态对应的操作包括完成上述通道对齐。
所述交互互锁机制为:在第二状态对应的操作中,包括:客户端在完成所述通道对齐过程之后,需要向对方发送完成确认信息;以及,客户端收到对方发送的完成确认信息。本发明实施例中,以第二状态实现上述交互互锁机制为例进行说明,根据需要,在其他的状态中也可以实现上述交互互锁机制。本示例中的客户端包括第一客户端和第二客户端。
通过第二状态实现上述交互互锁机制,以及上述超时复位机制,可以实现第一客户端和第二客户端同时完成物理层初始化的过程并同时进入收发状态,以进行有效数据的收发。在一般情况下,第一客户端和第二客户端会同时从第一状态进入第二状态,如果只有其中的一个进入第二状态,由于上述超时复位机制和交互互锁机制,先进入第二状态由于不能进行通道对齐流程,先进入的客户端也会返回第一状态,从而保证两个客户端同时完成物理层初始化的过程并同时进入收发状态。
对于本发明实施例提供的物理层初始化方法,在需要通过串行通道进行通信时,需要对串行通道进行初始化,初始化过程中包括串行数据位锁定过程和通道对齐过程,并且,将上述串行数据位锁定过程和通道对齐过程分配到两个不同的状态下进行,使得需要串行通信的两个客户端能够同时完成相同状态的操作流程,并同时进入到下一个状态中,不会造成一方完成初始化,而另外一方未完成初始化,而造成数据传输出现错误的情况,因此,通过上述物理层初始化方法,可以保证两个客户端同时完成物理层初始化的过程并同时进入收发状态,提供了一种有效并且可靠的物理层初始化方法。
优选地,在步骤S120之后,还包括:步骤S130,在第三状态,在所述第一客户端和第二客户端处于第三状态时,第一客户端和第二客户端进行数据锁定。本示例中,第一状态的下一状态为第二状态,第二状态的下一状态为第三状态,第三状态的下一状态为工作状态。
本发明实施例中,可以根据硬件配置和各个状态对应的流程需要占用的时间对预定的时长进行设置,例如,可以将第一时长和第二时长均设置为10ms。
本发明实施例中,所述步骤S110包括:
第一客户端进入第一状态,对应的计数器开始计数;第一客户端向第二客户端发送时钟信号和数据信号。
第二客户端进入第一状态,第二客户端向第一客户端发送时钟信号和数据信号。
本发明实施例中,串行数据位锁定是指从高低电平的信号流中识别出比特位的位置。客户端可以通过接收到的时钟信号和数据信号来完成串行数据位锁定。
在客户端发送时钟信号和数据信号时,通过第一串行通道发送数据信号,通过辅助串行通道发送时钟信号。其中,第一串行通道是第一客户端和第二客户端之间需要进行物理层初始化的串行通道。本发明实施例中,除了时钟信号,第一客户端和第二客户端之间的数据收发均通过第一串行通道完成,对于串行通道来说,其中均包括发送通道和接收通道,可以同时进行数据的接收和发送。
其中,数据信号中包括第一约定数据,第一约定数据为预定的一串数据,当客户端通过串口接收到时钟信号和数据信号时,在数据中识别第一约定数据,如果能识别出第一约定数据,则认为完成串行数据位锁定。例如,第一约定数据为FEFE,即1111 1110 1111 1110,优选的,第一约定数据为8位或64位的数据。
在客户端处于第一状态的整个过程,客户端会持续通过第一串行通道发送时钟信号和数据信号。具体地,为了使得串行数据位锁定的结果更加准确,优选地,采用数据的中间位置为确认位锁定。例如,对于发送方的客户端,在时钟信号的上升沿发送数据信号,对于接收上述数据信号的接收方,在时钟信号的下降沿接收所述数据信号,这样,便是根据数据的中间位置确认位锁定,从而使得串行数据位锁定的结果更加准确。
所述第一客户端收到第二客户端发送的时钟信号和数据信号之后,根据所述时钟信号和数据信号执行串行数据位锁定过程,当预定计时器的计数到达预定值时,如果所述第一客户端已经完成所述串行数据位锁定过程,则进入第二状态;如果所述第一客户端没有完成所述串行数据位锁定过程,则重新进入第一状态,且计数器重新开始计数;本发明实施例中,预定值为预定的第一时长或第二时长对应的预定值。
第二客户端进入第一状态,对应的计数器开始计数;
所述第二客户端收到第一客户端发送的时钟信号和数据信号之后,根据所述时钟信号和数据信号执行串行数据位锁定过程,当预定计时器的计数到达预定值时,判断是否完成所述串行数据位锁定过程,如果所述第二客户端已经完成所述串行数据位锁定过程,则进入第二状态;如果所述第二客户端没有完成所述串行数据位锁定过程,则重新进入第一状态,且计数器重新开始计数。
需要说明的是,第一客户端和第二客户端分别进行串行数据位锁定的过程;如果在第一时长内均成功完成串行数据位锁定,第一客户端和第二客户端将同时进入第二状态。
本发明实施例中,所述步骤S120包括:
第一客户端进入第二状态之后,对应的计数器开始计时;第一客户端向第二客户端发送NACK数据;
其中,通道对齐是指在通过串行通道接收数据时,在接收到的一段比特数据流中,确定从第几位比特开始截取数据的相关信息。
本发明实施例中,NACK数据包括标识位和第二约定数据。标识位可以是1位或多位。第二约定数据为预定的一串数据,例如,NACK数据为0 11111110,其中,第二约定数据为FE,即1111 1110,第二约定数据的前一个bit位是标识位,当客户端通过串口接收到数据时,在数据中识别FE,从而完成通道对齐过程。
其中,在第一状态中第一客户端完成通道对齐过程之前,第一客户端会持续通过第一串行通道发送NACK数据。
当第一客户端接收到第二客户端发送的NACK数据或ACK数据时,第一客户端根据所述NACK数据或ACK数据执行通道对齐过程;并在完成所述通道对齐过程之后,向第二客户端发送ACK数据。
其中,ACK数据包括标识位和第二约定数据,ACK数据中的标识位的数值与NACK数据中的标识位的数值相反,ACK数据中的第二约定数据与NACK数据中的第二约定数据相同。例如,当NACK数据为0 1111 1110,其中,第一位0为标识位,第二约定数据为1111 1110(FE)时,对应的ACK数据为1 1111 1110,其中,第一位1为标识位,第二约定数据为1111 1110(FE)。
需要说明的时,对于第一客户端,在第二客户端完成通道对齐过程之前,将持续发送NACK数据,第一客户端根据所述NACK数据执行通道对齐过程,在第二客户端完成通道对齐过程之后,将持续发送ACK数据,这时候,第一客户端可以根据所述ACK数据中的第二约定数据执行通道对齐过程。
当预定计时器的计数到达预定值时,如果所述第一客户端没有接收到第二客户端发送的NACK数据,则重新进入第一状态;
当预定计时器的计数到达预定值时,如果所述第一客户端收到所述第二客户端发送的ACK数据,则进入第三状态;如果所述第一客户端没有收到所述第二客户端发送的ACK数据,则重新进入第一状态。第二阶段中计数时的预定值为第二时长对应的计数值。
第二客户端进入第二状态之后,对应的计数器开始计时;第二客户端向第一客户端发送NACK数据;
当第二客户端接收到第一客户端发送的NACK数据或ACK数据时,第二客户端根据所述NACK数据或ACK数据执行通道对齐过程;并在完成所述通道对齐过程之后,向第一客户端发送ACK数据;
当预定计时器的计数到达预定值时,如果所述第二客户端没有接收到第一客户端发送的NACK数据,则重新进入第一状态;
当预定计时器的计数到达预定值时,如果所述第二客户端收到所述第一客户端发送的ACK数据,则进入第三状态;如果所述第二客户端没有收到所述第一客户端发送的ACK数据,则重新进入第一状态。
本发明实施例中,所述步骤S130包括:
当第一客户端进入第三状态之后,
第一客户端向第二客户端发送链路序列锁定数据,以在发送链路序列锁定数据之后向第二客户端发送有效数据;
当第一客户端接收到第二客户端发送的链路序列锁定数据之后,第一客户端开始接收所述链路序列锁定数据之后的有效数据,以将接收的有效数据发送至上层。
当第二客户端进入第三状态之后,第二客户端向第一客户端发送链路序列锁定数据,以在发送链路序列锁定数据之后向第一客户端发送有效数据;
当第二客户端接收到第一客户端发送的链路序列锁定数据之后,第二客户端开始接收所述链路序列锁定数据之后的有效数据,以将接收的有效数据发送至上层。
本发明实施例中,链路序列锁定数据为预定的一串数据,例如,DE(11011110),当客户端通过串口接收到数据时,在数据中识别链路序列锁定数据,当识别到链路序列锁定数据,便认为后面接收的数据为有效数据,物理层将向上层转发上述有效数据。同样客户端的物理层需要发送数据时,将先发送链路序列锁定数据,并在链路序列锁定数据之后发送待发送的数据。
请参阅图2,为本发明实施例提供的又一种物理层初始化方法,如图2所示,本发明实施例提供的物理层初始化方法包括:
步骤S210,在第一客户端处于第一状态时,第一客户端与需要进行串行通信的对端客户端进行串行数据位锁定;
步骤S220,在第一客户端处于第二状态时,第一客户端与所述对端客户端进行通道对齐。
优选地,所述物理层初始化方法还包括:步骤S230,在第一客户端处于第三状态时,第一客户端与所述对端客户端进行数据锁定。
其中,客户端通过第一串行通道、以及辅助串行通道与所述需要进行串行通信的对端客户端连接,客户端与所述对端客户端通过所述第一串行通道进行串行通信。
本发明实施例中,如图3A所示,所述步骤S210包括:
步骤S211、第一客户端进入第一状态,对应的计数器开始计数;
步骤S212、第一客户端发送时钟信号和数据信号;其中,第一客户端通过第一串行通道发送数据信号,通过辅助串行通道发送时钟信号。在第一客户端处于第一状态的整个过程,第一客户端会持续向第二客户端发送时钟信号和数据信号。
步骤S213、所述第一客户端收到第二客户端发送的时钟信号和数据信号之后,根据所述时钟信号和数据信号执行串行数据位锁定过程;
步骤S214、当预定计时器的计数到达预定值时,判断是否完成所述串行数据位锁定过程,如果所述第一客户端已经完成所述串行数据位锁定过程,则进入第二状态,即开始执行步骤S220;如果所述第一客户端没有完成所述串行数据位锁定过程,则重新进入第一状态,且计数器重新开始计数,即重新执行步骤S210。
其中,步骤S212的开始时间可以早于步骤S211,也可以晚于步骤S211。
本发明实施例中,如图3B所示,所述步骤S220包括:
步骤S221、第一客户端进入第二状态之后,对应的计数器开始计时;
第一客户通过第一串行通道发送NACK数据;
步骤S222、第一客户端判断是否通过第一串行通道接收到NACK数据,如果是,则接收NACK数据,并执行步骤S223,如果否,执行步骤S224;
其中,NACK数据包括标识位和第二约定数据。
其中,在第一状态中第一客户端完成通道对齐过程之前,第一客户端会持续通过第一串行通道发送NACK数据。
步骤S223、当第一客户端通过第一串行通道接收到NACK数据或ACK数据时,第一客户端根据所述NACK数据或ACK数据执行通道对齐过程;
步骤S224、当预定计时器的计数到达预定值时,如果所述第一客户端一直没有接收到第二客户端发送的NACK数据,则重新进入第一状态,即重新执行步骤S210;
步骤S225、第一客户端在完成所述通道对齐过程之后,通过第一串行通道发送ACK数据;
其中,ACK数据包括标识位和第二约定数据,ACK数据中的标识位的数值与NACK数据中的标识位的数值相反。
在第一状态中第一客户端完成通道对齐过程之后,第一客户端会持续通过第一串行通道发送ACK数据。
步骤S226、当预定计时器的计数到达预定值时,判断是否收到ACK数据,如果所述第一客户端通过第一串行通道收到ACK数据,则进入第三状态,即执行步骤S230;如果第一客户端没有通过第一串行通道收到ACK数据,则重新进入第一状态,即重新执行步骤S210;
本发明实施例中,所述步骤S230包括:
步骤S231、当第一客户端进入第三状态之后,第一客户端通过第一串行通道发送链路序列锁定数据,以在发送链路序列锁定数据之后进入工作状态,即向第二客户端发送有效数据;或,
步骤S232、第一客户端通过第一串行通道接收链路序列锁定数据,以在接收链路序列锁定数据之后进入工作状态,即接收第二客户端发送的有效数据,并将接收的有效数据发送至上层。
基于与上述方法实施例相同或相似的构思,本发明实施例还提供一种客户端,请参阅图4,为本发明实施例提供的客户端的结构示意图,如图4所示,所述客户端包括:
第一状态执行单元10,用于在处于第一状态时,与需要进行串行通信的对端客户端进行串行数据位锁定;
第二状态执行单元20,用于在处于第二状态时,与所述对端客户端进行通道对齐。
优选的,所述客户端还包括:第三状态执行单元30,用于在处于第三状态时,与所述对端客户端进行数据锁定。
其中,客户端通过第一串行通道、以及辅助串行通道与所述需要进行串行通信的对端客户端连接,客户端与所述对端客户端通过所述第一串行通道进行串行通信。
本发明实施例中,如图4所示,所述第一状态执行单元10包括:
第一计数模块11、用于进入第一状态,对应的计数器开始计数;
第一发送模块12、用于发送时钟信号和数据信号;其中,通过第一串行通道发送数据信号,通过辅助串行通道发送时钟信号。在客户端处于第一状态的整个过程,客户端会持续发送时钟信号和数据信号。
位锁定模块13、用于在收到时钟信号和数据信号之后,根据所述时钟信号和数据信号执行串行数据位锁定过程;
完成模块14、用于当预定计时器的计数到达预定值时,判断是否完成所述串行数据位锁定过程,如果已经完成所述串行数据位锁定过程,则进入第二状态;
第一复位模块15,用于当预定计时器的计数到达预定值时,在判断是否完成所述串行数据位锁定过程之后,如果没有完成所述串行数据位锁定过程,则重新进入第一状态,且计数器重新开始计数。
本发明实施例中,所述第二状态执行单元20包括:
第二计数模块21、用于进入第二状态之后,对应的计数器开始计时;
第二发送模块22、用于通过第一串行通道发送NACK数据;
第二接收模块23、用于判断是否通过第一串行通道接收到NACK数据,如果是则接收NACK数据;
其中,NACK数据包括标识位和第二约定数据。
其中,在第二状态中,在客户端完成通道对齐过程之前,第二发送模块会持续通过第一串行通道发送NACK数据。
通道对齐模块24、用于当通过第一串行通道接收到NACK数据或ACK数据时,根据所述NACK数据或ACK数据执行通道对齐过程;
第二复位模块25、用于当预定计时器的计数到达预定值时,如果没有通过第一串行通道接收到NACK数据,则重新进入第一状态。
第二发送模块22还用于在完成所述通道对齐过程之后,通过第一串行通道发送ACK数据;在客户端完成通道对齐过程之后,且跳出第二状态之前,第二发送模块会持续通过第一串行通道发送ACK数据。
其中,ACK数据包括标识位和第二约定数据,ACK数据中的标识位的数值与NACK数据中的标识位的数值相反。
第二完成模块26、用于当预定计时器的计数到达预定值时,判断是否收到ACK数据,如果通过第一串行通道收到ACK数据,则进入第三状态;如果没有通过第一串行通道收到ACK数据,则重新进入第一状态。
本发明实施例中,所述第三状态执行单元30包括:
第三发送模块31、用于在进入第三状态之后,通过第一串行通道发送链路序列锁定数据,以在发送链路序列锁定数据之后进入工作状态,即通过第一串行通道发送有效数据。
第三接收模块32、用于通过第一串行通道接收链路序列锁定数据,以在接收链路序列锁定数据之后进入工作状态,即通过第一串行通道接收有效数据,并将接收的有效数据发送至上层。
下面结合一个具体的应用场景对本发明实施例提供的物理层初始化方法进行说明。
请参阅图5,为本发明实施例提供的客户端进行物理层初始化的示意图,如图5所示,第一客户端50和第二客户端60之间通过多个串行通道进行连接,当客户端中的上层需要收发有效数据时,可以调用物理层的串行通道来进行通信,具体地,可以调用一个串行通道进行有效数据的收发,也可以调用多个串行通道进行有效数据的收发,例如,在图5中,可以通过调用N个串行通道进行有效数据的收发,在收发有效数据之前,可以采用本发明实施例提供的任一种物理层初始化方法对上述N个串行通道同时进行初始化,其中,需要另一个辅助串行通道用于时钟信号的收发。
在对多个串行通道进行初始化之后,可以使用这多个串行通道并行发送有效数据,其中,根据有效数据的位数M,对M个串行通道进行初始化,并使用M个串行通道分别发送一个数据的不同比特位,从而实现以串行通信的方式进行并行通信,例如,当有效数据为16位的数据时,同时在对16个串行通道进行初始化,并使用这16个串行通道并行发送有效数据。
需要说明的是,本发明实施例中,在物理层初始化的过程中,在客户端中,对于需要初始化的多个串行通道,可以使用不同的计时器资源,也可以使用相同的计时器资源。
需要说明的是,上述实施例中给出的流程是为了阐明本发明技术方案所给出的示例性的流程图,在符合本发明的构思的情况下,上述实施例中各个步骤之间的先后关系可能发生变化,另外,计时器的设定相当于一种中断机制,中断机制也会根据初始化中遇到的不同情况的改变初始化的实现过程。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (11)
1.一种物理层初始化方法,应用于需要进行串行通信的第一客户端和第二客户端之间,其特征在于,所述物理层初始化方法包括:
步骤S110,在所述第一客户端和第二客户端处于第一状态时,所述第一客户端和第二客户端进行串行数据位锁定;
步骤S120,在所述第一客户端和第二客户端处于第二状态时,所述第一客户端和第二客户端进行通道对齐。
2.如权利要求1所述的方法,其特征在于,还包括:在所述第一客户端和第二客户端处于第一或第二状态时,如果所述第一客户端和第二客户端在预定的时长完成当前的状态对应的操作,便进入下一状态,否则,执行复位操作;
所述第二状态对应的操作包括:第一或第二客户端在完成所述通道对齐过程之后,向对方发送完成确认信息;以及,第一或第二客户端收对方发送的完成确认信息。
3.如权利要求1所述的方法,其特征在于,在步骤S120之后,还包括:步骤S130,在所述第一客户端和第二客户端处于第三状态时,第一客户端和第二客户端进行数据锁定。
4.如权利要求2所述的方法,其特征在于,所述步骤S110包括:
第一客户端进入第一状态,对应的计数器开始计数;
第一客户端向第二客户端发送时钟信号和数据信号,第二客户端向第一客户端发送时钟信号和数据信号;
所述第一客户端收到第二客户端发送的时钟信号和数据信号之后,根据所述时钟信号和数据信号执行串行数据位锁定过程,当预定计时器的计数到达预定值时,如果所述第一客户端已经完成所述串行数据位锁定过程,则进入第二状态;如果所述第一客户端没有完成所述串行数据位锁定过程,则重新进入第一状态,且计数器重新开始计数;
第二客户端进入第一状态,对应的计数器开始计数;
所述第二客户端收到第一客户端发送的时钟信号和数据信号之后,根据所述时钟信号和数据信号执行串行数据位锁定过程,当预定计时器的计数到达预定值时,如果所述第二客户端已经完成所述串行数据位锁定过程,则进入第二状态;如果所述第二客户端没有完成所述串行数据位锁定过程,则重新进入第一状态,且计数器重新开始计数;
其中,第一状态所对应的预定的时长为第一时长,所述预定值为第一时长对应的计数值。
5.如权利要求2所述的方法,其特征在于,所述步骤S120包括:
第一客户端进入第二状态之后,对应的计数器开始计时;第一客户端向第二客户端发送NACK数据;
当第一客户端接收到第二客户端发送的NACK数据或ACK数据时,第一客户端根据所述NACK数据或ACK数据执行通道对齐过程;并在完成所述通道对齐过程之后,向第二客户端发送ACK数据;
当预定计时器的计数到达预定值时,如果所述第一客户端没有接收到第二客户端发送的NACK数据,则重新进入第一状态;
当预定计时器的计数到达预定值时,如果所述第一客户端收到所述第二客户端发送的ACK数据,则进入第三状态;如果所述第一客户端没有收到所述第二客户端发送的ACK数据,则重新进入第一状态;
第二客户端进入第二状态之后,对应的计数器开始计时;第二客户端向第一客户端发送NACK数据;
当第二客户端接收到第一客户端发送的NACK数据或ACK数据时,第二客户端根据所述NACK数据或ACK数据执行通道对齐过程;并在完成所述通道对齐过程之后,向第一客户端发送ACK数据;
当预定计时器的计数到达预定值时,如果所述第二客户端没有接收到第一客户端发送的NACK数据,则重新进入第一状态;
当预定计时器的计数到达预定值时,如果所述第二客户端收到所述第一客户端发送的ACK数据,则进入第三状态;如果所述第二客户端没有收到所述第一客户端发送的ACK数据,则重新进入第一状态;
其中,第一状态所对应的预定的时长为第一时长,所述预定值为第二时长对应的计数值。
6.如权利要求3所述的方法,其特征在于,所述步骤S130包括:
当第一客户端进入第三状态之后,
第一客户端向第二客户端发送链路序列锁定数据,以在发送链路序列锁定数据之后向第二客户端发送有效数据;
当第一客户端接收到第二客户端发送的链路序列锁定数据之后,第一客户端开始接收所述链路序列锁定数据之后的有效数据,以将接收的有效数据发送至上层;
当第二客户端进入第三状态之后,第二客户端向第一客户端发送链路序列锁定数据,以在发送链路序列锁定数据之后向第一客户端发送有效数据;
当第二客户端接收到第一客户端发送的链路序列锁定数据之后,第二客户端开始接收所述链路序列锁定数据之后的有效数据,以将接收的有效数据发送至上层。
7.一种客户端,其特征在于,所述客户端包括:
第一状态执行单元,用于在处于第一状态时,与需要进行串行通信的对端客户端进行串行数据位锁定;
第二状态执行单元,用于在处于第二状态时,与所述对端客户端进行通道对齐。
8.如权利要求7所述的客户端,其特征在于,所述客户端还包括:
第三状态执行单元,用于在处于第三状态时,与所述对端客户端进行数据锁定。
9.如权利要求7所述的客户端,其特征在于,所述第一状态执行单元包括:
第一计数模块、用于进入第一状态,对应的计数器开始计数;
第一发送模块、用于发送时钟信号和数据信号;其中,通过第一串行通道发送所述数据信号,通过辅助串行通道发送所述时钟信号;
位锁定模块、用于在收到时钟信号和数据信号之后,根据所述时钟信号和数据信号执行串行数据位锁定过程;
完成模块、用于当预定计时器的计数到达预定值时,判断是否完成所述串行数据位锁定过程,如果已经完成所述串行数据位锁定过程,则进入第二状态;
第一复位模块,用于当预定计时器的计数到达预定值时,在判断是否完成所述串行数据位锁定过程之后,如果没有完成所述串行数据位锁定过程,则重新进入第一状态,且计数器重新开始计数。
10.如权利要求7所述的客户端,其特征在于,所述第二状态执行单元包括:
第二计数模块、用于进入第二状态之后,对应的计数器开始计时;
第二发送模块、用于通过第一串行通道发送NACK数据;
第二接收模块、用于判断是否通过第一串行通道接收到NACK数据,如果是则接收NACK数据;
通道对齐模块、用于当通过第一串行通道接收到NACK数据或ACK数据时,根据所述NACK数据或ACK数据执行通道对齐过程;
第二复位模块、用于当预定计时器的计数到达预定值时,如果没有通过第一串行通道接收到NACK数据,则重新进入第一状态。
第二发送模块还用于在完成所述通道对齐过程之后,通过第一串行通道发送ACK数据;
第二完成模块、用于当预定计时器的计数到达预定值时,判断是否收到ACK数据,如果通过第一串行通道收到ACK数据,则进入第三状态;如果没有通过第一串行通道收到ACK数据,则重新进入第一状态。
11.如权利要求8所述的客户端,其特征在于,所述第三状态执行单元包括:
第三发送模块、用于在进入第三状态之后,通过第一串行通道发送链路序列锁定数据,以在发送链路序列锁定数据之后进入工作状态;
第三接收模块、用于通过第一串行通道接收链路序列锁定数据,以在接收链路序列锁定数据之后进入工作状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510018652.2A CN104536929A (zh) | 2015-01-14 | 2015-01-14 | 一种物理层初始化方法及客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510018652.2A CN104536929A (zh) | 2015-01-14 | 2015-01-14 | 一种物理层初始化方法及客户端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104536929A true CN104536929A (zh) | 2015-04-22 |
Family
ID=52852459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510018652.2A Pending CN104536929A (zh) | 2015-01-14 | 2015-01-14 | 一种物理层初始化方法及客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536929A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1602001A (zh) * | 2003-09-18 | 2005-03-30 | 创世纪微芯片公司 | 基于数据包的数据流传输调度装置以及应用该装置的方法 |
CN1700701A (zh) * | 2004-05-21 | 2005-11-23 | 英特尔公司 | 对基于链路的系统互连进行物理层初始化的方法和装置 |
CN102142987A (zh) * | 2010-12-09 | 2011-08-03 | 浪潮(北京)电子信息产业有限公司 | 一种串行总线设备及其传输数据的方法 |
CN102708080A (zh) * | 2012-04-20 | 2012-10-03 | 浪潮(北京)电子信息产业有限公司 | 一种对齐高速串行通信通道的方法和系统 |
CN102946294A (zh) * | 2012-10-19 | 2013-02-27 | 浪潮电子信息产业股份有限公司 | 一种高速串行通信通道之间去偏差的方法 |
WO2014065883A1 (en) * | 2012-10-22 | 2014-05-01 | Venkatraman Iyer | High performance interconnect physical layer |
-
2015
- 2015-01-14 CN CN201510018652.2A patent/CN104536929A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1602001A (zh) * | 2003-09-18 | 2005-03-30 | 创世纪微芯片公司 | 基于数据包的数据流传输调度装置以及应用该装置的方法 |
CN1700701A (zh) * | 2004-05-21 | 2005-11-23 | 英特尔公司 | 对基于链路的系统互连进行物理层初始化的方法和装置 |
CN102142987A (zh) * | 2010-12-09 | 2011-08-03 | 浪潮(北京)电子信息产业有限公司 | 一种串行总线设备及其传输数据的方法 |
CN102708080A (zh) * | 2012-04-20 | 2012-10-03 | 浪潮(北京)电子信息产业有限公司 | 一种对齐高速串行通信通道的方法和系统 |
CN102946294A (zh) * | 2012-10-19 | 2013-02-27 | 浪潮电子信息产业股份有限公司 | 一种高速串行通信通道之间去偏差的方法 |
WO2014065883A1 (en) * | 2012-10-22 | 2014-05-01 | Venkatraman Iyer | High performance interconnect physical layer |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018000841A1 (zh) | 一种harq重传的指示方法及相关设备 | |
CN102047586A (zh) | 数据传输方法以及用于该方法的用户设备 | |
CN103051414B (zh) | 一种串行通信纠错方法和系统 | |
CN87103334A (zh) | 利用发送和等待规程进行双工传输数据的方法 | |
CN101626334A (zh) | 通讯总线控制方法和装置 | |
CN113132063B (zh) | 一种物理层重传控制方法 | |
US8335958B2 (en) | Method of communication, in particular with capability of frame abortion or retransmission indication, between a transmitter and a receiver based on frames and corresponding communication node | |
CN103544128A (zh) | 芯片之间的单信号线通信方法、装置及系统 | |
CN104038316A (zh) | 空间相机高可靠高时效异步串行通讯方法 | |
CN104536924A (zh) | 面向板级高速传输总线的多通道延迟斜偏纠正方法及装置 | |
US6097731A (en) | Data retransmission method used in confirmation information transmissions | |
US7073001B1 (en) | Fault-tolerant digital communications channel having synchronized unidirectional links | |
CN102394734B (zh) | 无极性连接的rs485通讯系统及其控制方法 | |
CN101068372B (zh) | 处理无线链接控制重置流程的变量的方法及其装置 | |
CN104486187B (zh) | 一种动态同步的can通讯设备和方法 | |
JP2003527765A (ja) | フラッディング通信のための方法およびシステム | |
CN104536929A (zh) | 一种物理层初始化方法及客户端 | |
US4353126A (en) | Method for coded data transmission in half-duplex operation between data terminal equipment of two data stations | |
WO2017000737A1 (zh) | 一种传输校验方法、节点、系统与计算机存储介质 | |
CN105634894A (zh) | 一种增强型can总线数据重发方法和装置 | |
CN101594674B (zh) | 用于无线接入网信息管理的信息交互方法 | |
CN116627879A (zh) | 一种应用于多处理器的spi通信系统、方法及车载终端 | |
CN106788916A (zh) | 用于总线的数据传输方法及数据传输装置 | |
CN116566384A (zh) | 一种时钟数据恢复方法及装置 | |
CN112506840B (zh) | 一种多对多spi总线切换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150422 |