串口同步通讯数据对齐的方法及装置的制作方法

文档序号:6362591阅读:532来源:国知局
专利名称:串口同步通讯数据对齐的方法及装置的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种串口同步通讯数据对齐的方法及装置。
背景技术
随着科技的不断进步,电子产品的硬件架构越来越趋向于多处理器之间的连接和通讯,因此多处理器之间的数据通讯方式成为首要解决的问题。串口总线由于需要的通讯接口少、通讯效率高等优点,深受广大用户的青睐。目前,在多处理器之间的数据通讯处理上,广泛应用的是SPI (Serial Peripheral Interface,串行外设接口)。SPI是一种高速的全双工同步串行通讯总线,它能够在同步时钟信号下高速、可靠的传送数据。SPI分为主从两种传输模式。主模式下的发送总线即是从模式的接收总线,与之对应的是从模式下的发送总线即是主模式的接收总线。采用SPI进行通讯时,只能够定义一个主机,可以有一个或多个从机与主机进行通讯。主机和从机可以同时接收和发送数据,且主机和从机的发送和接收操作可以通过中断或者查询的方法来完成。采用SPI进行串口同步通讯时,由于整个通讯过程对同步时钟信号高度依赖,因此当有干扰出现在同步时钟信号线上时,就会造成通讯双方数据位错乱,从而使得到的数据无效。现有技术中,在主机和从机通讯时同步时钟信号受到干扰后,大多采用软件握手或者同步头的方法来恢复错位的数据。现有技术所采用的恢复方法需要的恢复时间太长,从而又造成了人为的延时,严重地影响了产品的稳定性。

发明内容
本发明的主要目的是提供一种串口同步通讯数据对齐的方法,旨在能够短时间内恢复串口同步通讯中出现的数据错位问题,较为快捷地实现数据对齐。本发明提供了一种串口同步通讯数据对齐的方法,包括以下步骤从机发送测试数据给主机;主机接收所述测试数据后发送校验数据给从机,等待从机应答;从机接收所述校验数据,并根据所述校验数据发送应答给主机;当所述应答是所述校验数据按位取反后的数据时,主机响应所述应答,完成数据对齐。优选地,所述主机接收测试数据并根据所述测试数据发送校验数据给从机的步骤具体包括主机将数据输出端口置为高电平,同时将计数器清零;主机读取所述测试数据的数据端口电平;判断在I个时钟周期内所述测试数据的数据端口是否为高电平;若是,则计数器的值自动加I;
判断所述计数器的值是否为8 ;若是,则主机发送校验数据给从机。优选地,所述从机接收所述校验数据并根据所述校验数据发出应答的步骤具体包括从机接收数据并判断所接收的数据格式是否正确;若是,则判断所接收的数据是否为主机发送的校验数据;若是主机发送的校验数据,则将所述校验数据按位取反并将取反后得到的数据发送给主机。优选地,所述从机发送测试数据给主机的测试数据为01H。优选地,所述主机与从机进行数据处理是在同一时钟信号下同步完成的。本发明还提供了一种串口同步通讯数据对齐的装置,包括从数据发送模块,用于发送测试数据给主机;主数据收发模块,用于接收所述测试数据后发送校验数据给从机,等待从机应答;从数据应答模块,用于接收所述校验数据,并根据所述校验数据发送应答给主机;主数据对齐模块,用于当所述应答是所述校验数据按位取反后的数据时,响应所述应答,完成数据对齐。优选地,所述主数据收发模块包括主数据处理单元,用于将数据输出端口置为高电平,同时将计数器清零;主数据读取单元,用于读取所述测试数据的数据端口电平;主数据计数单元,用于在I个时钟周期内所述测试数据的数据端口是高电平时, 计数器的值自动加I ;主数据发送单元,用于在所述计数器的值是8时,主机发送校验数据给从机。优选地,所述从数据应答模块包括从数据接收单元,用于接收数据并在所接收数据的格式正确时,判断所接收的数据是否为主机发送的校验数据;从数据应答单元,用于在所接收的数据是主机发送的校验数据时,将所述校验数据按位取反并将取反后得到的数据发送给主机。优选地,所述从数据发送模块中所述发送的测试数据为01H。优选地,所述主机与从机进行数据处理是在同一时钟信号下同步完成的。本发明通过主机两次读取从机发送的测试数据的数据端口状态为高电平的时钟间隔为7个时钟周期,且当从机发出的应答是主机发送的校验数据按位取反后的数据时, 主机响应从机应答完成数据对齐的方法,实现了主机快捷、准确地恢复错位数据并完成数据对齐的有益效果。


图I是本发明串口同步通讯数据对齐的方法一实施例流程示意图;图2是本发明中主机接收测试数据并根据所述测试数据发送校验数据给从机一实施例流程示意图3是本发明中从机接收所述校验数据并根据所述校验数据发出应答一实施例流程示意图;图4是本发明串口同步通讯数据对齐的装置一实施例结构示意图;图5是本发明串口同步通讯数据对齐的装置中主数据收发模块一实施例结构示意图;图6是本发明串口同步通讯数据对齐的装置中从数据应答模块一实施例结构示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施例方式以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参照图1,图I是本发明串口同步通讯数据对齐的方法一实施例流程示意图。如图 I所示,本发明串口同步通讯数据对齐的方法包括步骤SOI、从机发送测试数据给主机;步骤S02、主机接收所述测试数据后发送校验数据给从机,等待从机应答;步骤S03、从机接收所述校验数据,并根据所述校验数据发送应答给主机;步骤S04、判断所述应答是否为所述校验数据按位取反后的数据;若是,则执行步骤S05 ;若否,则继续执行步骤S02 ;步骤S05、主机响应所述应答,完成数据对齐;当出现通讯异常、数据错位时,从机将测试数据OlH装载到数据缓冲寄存器中,当从机的数据完全被主机读取后,再向数据缓冲寄存器中装载所述测试数据01H。主机接收从机发送的测试数据,并读取从机发送的数据端口电平,同时发送校验数据给从机。具体地, 主机每发送一个时钟脉冲,就读取一次所述数据端口的状态,直到读取两次所述数据端口为高电平状态的时钟间隔是7个时钟周期时,再发送校验数据给从机,等待从机应答。在一优选实施例中,所述主机等待从机应答的时间为10ms。所述主机发送的校验数据可以根据需要任意设置,为了较为准确、快捷的恢复错位数据实现数据对齐,所述校验数据一般选取高低位间隔设置的数据。在一优选的实施例中,所述校验数据为A5H。从机接收所述主机发送的校验数据,并根据所述校验数据发送应答给主机。主机判断从机发送的应答是否为所述校验数据按位取反后的数据,在一优选实施例中,所述校验数据A5H按位取反后得到的所述应答为5AH。若主机接收到的所述应答为5AH,则响应所述应答,完成数据对齐;若主机接收到的所述应答不是5AH,则主机继续接收从机发送的测试数据后,继续发送校验数据给从机,循环执行步骤S02至步骤S04,直至主机接收到的所述从机发送的应答是所述主机发送的校验数据按位取反后的数据,完成数据对齐。本发明通过采用向从机中装载测试数据OlH并当从机发出的应答是主机发送的校验数据按位取反后的数据时,主机响应从机应答完成数据对齐的方法,实现了主机在短时间内快捷地恢复错位数据并完成数据对齐的有益效果。参照图2,图2是本发明中主机接收测试数据并根据所述测试数据发送校验数据给从机一实施例流程示意图。如图2所示,本发明串口同步通讯数据对齐的方法中,主机接
6收测试数据并根据所述测试数据发送校验数据给从机的步骤包括步骤S11、主机将数据输出端口置为高电平,同时将计数器清零;步骤S12、主机读取所述测试数据的数据端口电平;步骤S13、判断在I个时钟周期内所述测试数据的数据端口是否为高电平;若是, 则执行步骤S14 ;若否,则返回继续执行步骤S12 ;步骤S14、判断所述计数器的值是否为8 ;若所述计数器的值是8,则执行步骤S15 ; 若所述计数器的值不是8,则执行步骤S16 ;步骤S15、主机发送校验数据给从机;步骤S16、计数器清零,并返回继续执行步骤S12。主机在接收所述测试数据之前,首先要将数据输出端口置为高电平,同时将计数器清零,即Counter = O。主机发送时钟脉冲,并读取所述测试数据的数据端口的电平;主机每发送一个时钟脉冲,就读取一次所述测试数据的数据端口的电平,同时判断在I个时钟周期内所述测试数据的数据端口是否为高电平。当在I个时钟周期内,所述测试数据的数据端口是高电平时,计数器的值自动加I ;当计数器的值为8时,即主机读取两次所述测试数据的数据端口为高电平状态的时钟间隔是7个时钟周期时,主机发送校验数据给从机。 若在主机发送一个时钟脉冲后,所述测试数据的数据端口不是高电平,则主机继续发送脉冲,并读取所述测试数据的数据端口的电平。若计数器的值不是8,则主机将计数器清零,返回继续执行主机发送时钟脉冲,并读取所述测试数据的数据端口电平。本发明通过主机接收测试数据并在读取两次所述测试数据的数据端口为高电平状态的时钟间隔是7个时钟周期时,发送校验数据给从机的方法,实现了在较短时间快速恢复错位数据、完成数据对齐的有益效果。参照图3,图3是本发明中从机接收所述校验数据并根据所述校验数据发出应答一实施例流程示意图。如图3所示,在本发明串口同步通讯数据对齐的方法中,从机接收所述校验数据并根据所述校验数据发出应答的步骤包括步骤S21、接收数据并判断所接收的数据格式是否正确;若是,则执行步骤S22 ;若否,则继续执行所述步骤接收数据并判断所接收的数据格式是否正确;步骤S22、判断所接收的数据是否为主机发送的校验数据;若是,则执行步骤S23 ; 若否,则执行步骤S24;步骤S23、将所述校验数据按位取反并将取反后得到的数据发送给主机;步骤S24、装载测试数据OlH到数据缓冲寄存器。当通讯异常,出现数据错位时,从机将测试数据OlH装载到数据缓冲寄存器中,判断所接收到的数据格式是否正确,即判断所接收的数据是否为一个字节的数据,具体地,判断所接收的数据是否为8个bit (位)。若所接收的数据是8个bit,则判断所述接收的数据是否为主机发送的校验数据;若所述接收的数据时主机发送的校验数据,则将所述校验数据按位取反并将取反后得到的数据发送给主机。具体地,在一优选的实施例中,所述主机发送的校验数据为A5H,所述主机发送的校验数据A5H为十六进制表达方式,将所述十六进制表达方式转换为二进制表达方式且高低位不变,即所述主机发送的校验数据A5H转换为二进制表达方式为10100101 ;将所述二进制表达方式的校验数据10100101按位取反,即得到按位取反后的二进制数据01011010,再将所述按位取反后的二进制数据01011010转换为十六进制表达方式,即为5AH。从机将所述按位取反后的数据5AH作为应答发送给主机。 若从机所接收的数据不是一个字节的数据,即所接收的数据不是8个Mt,则从机继续接收所述校验数据并判断所接收的数据是否为一个字节的数据。在从机所接收的数据是一个字节的数据但不是所述主机发送的校验数据时,在从机的数据缓冲寄存器中所装载的测试数据OlH全部被主机读取后,继续装载测试数据OlH到数据缓冲寄存器。本发明通过在从机所接收的数据是一个字节的数据后且所述数据是主机发送的校验数据时,将所述数据按位取反后作为应答发送给主机的方法,实现了准确、快捷地恢复数据错位、完成数据对齐的有益效果。参照图4,图4是本发明串口同步通讯数据对齐的装置一实施例结构示意图。如图 4所示,本发明串口同步通讯数据对齐的装置包括从数据发送模块01,用于发送测试数据给主机;主数据收发模块02,用于接收所述测试数据后发送校验数据给从机,等待从机应答;从数据应答模块03,用于接收所述校验数据,并根据所述校验数据发送应答给主机;主数据对齐模块04,用于当所述应答是所述校验数据按位取反后的数据时,响应所述应答,完成数据对齐。当出现通讯异常、数据错位时,从机将测试数据OlH装载到数据缓冲寄存器中,当从机的数据完全被主机读取后,再向数据缓冲寄存器中装载所述测试数据01H。从数据发送模块01将所述测试数据OlH发送给主机,主数据收发模块02接收从数据发送模块01发送的测试数据,并读取从机发送的数据端口电平,同时发送校验数据给从机。具体地,主数据收发模块02每发送一个时钟脉冲,就读取一次所述数据端口的状态,直到读取两次所述数据端口为高电平状态的时钟间隔是7个时钟周期时,再发送校验数据给从机,主数据对齐模块04等待从机应答。在一优选实施例中,所述主数据对齐模块04等待从机应答的时间为10ms。所述主数据收发模块02发送的校验数据可以根据需要任意设置,为了较为准确、 快捷的恢复错位数据实现数据对齐,所述校验数据一般选取高低位间隔设置的数据。在一优选的实施例中,所述主数据收发模块02发送的校验数据为A5H。从数据应答模块03接收所述主数据收发模块02发送的校验数据,并根据所述校验数据发送应答给主机。主数据对齐模块04判断从机发送的应答是否为所述校验数据按位取反后的数据,在一优选实施例中,所述主数据收发模块02发送的校验数据A5H按位取反后得到的所述应答为5AH。若主数据对齐模块04接收到的所述应答为5AH,则响应所述应答,完成数据对齐;若主数据对齐模块04接收到的所述应答不是5AH,则主数据收发模块02接收从机发送的测试数据后,继续发送校验数据给从机,直至主数据对齐模块04接收到的所述从数据应答模块03发送的应答是所述主数据收发模块02发送的校验数据按位取反后的数据,完成数据对齐。本发明串口同步通讯数据对齐的装置,通过采用当从机发出的应答是主机发送的校验数据按位取反后的数据时,主机响应从机应答完成数据对齐的方法,实现了主机在短时间内较为快捷地恢复错位数据并完成数据对齐的有益效果。参照图5,图5是本发明串口同步通讯数据对齐的装置中主数据收发模块一实施例结构示意图。如图5所示,本发明串口同步通讯数据对齐的装置中,主数据收发模块02具体包括主数据处理单元021,用于将数据输出端口置为高电平,同时将计数器清零;主数据读取单元022,用于读取所述测试数据的数据端口电平;主数据计数单元023,用于在I个时钟周期内所述测试数据的数据端口是高电平时,计数器的值自动加I ;主数据发送单元024,用于在所述计数器的值是8时,主机发送校验数据给从机。主数据收发模块02在接收所述测试数据之前,主数据处理单元021首先要将数据输出端口置为高电平,同时将计数器清零,即Counter = O。主数据读取单元022发送时钟脉冲,并读取所述测试数据的数据端口的电平;主数据读取单元022每发送一个时钟脉冲, 就读取一次所述测试数据的数据端口的电平,同时判断在I个时钟周期内所述测试数据的数据端口是否为高电平。当在I个时钟周期内,所述测试数据的数据端口是高电平时,主数据计数单元023中计数器的值自动加I ;当计数器的值为8时,即主数据读取单元022读取两次所述测试数据的数据端口为高电平状态的时钟间隔是7个时钟周期时,主数据发送单元024发送校验数据给从机。若在主数据读取单元022发送一个时钟脉冲后,所述测试数据的数据端口不是高电平,则主数据读取单元022继续发送脉冲,并读取所述测试数据的数据端口的电平。若计数器的值不是8,则主数据计数单元023将计数器清零,返回主数据读取单元022继续执行主数据读取单元022发送时钟脉冲,并读取所述测试数据的数据端口电平。本发明串口同步通讯数据对齐的装置通过主数据收发模块02接收测试数据并在读取两次所述测试数据的数据端口为高电平状态的时钟间隔是7个时钟周期时,发送校验数据给从机的方法,实现了在较短时间快速恢复错位数据、完成数据对齐的有益效果。参照图6,图6是本发明串口同步通讯数据对齐的装置中从数据应答模块一实施例结构示意图。如图6所示,本发明串口同步通讯数据对齐的装置中,从数据应答模块03 具体包括从数据接收单元031,用于接收数据并在所接收数据的格式正确时,判断所接收的数据是否为主机发送的校验数据;从数据应答单元032,用于在所接收的数据是主机发送的校验数据时,将所述校验数据按位取反并将取反后得到的数据发送给主机。当通讯异常,出现数据错位时,从机将测试数据OlH装载到数据缓冲寄存器中,从数据接收单元031接收数据并判断所接收到的数据格式是否正确,即判断所接收的数据是否为一个字节的数据,具体地,判断所接收的数据是否为8个bit (位)。若从数据接收单元031所接收的数据是8个bit,则判断所述接收的数据是否为主机发送的校验数据;若从数据接收单元031接收的所述数据是主机发送的校验数据,则从数据应答单元032将所述校验数据按位取反并将取反后得到的数据发送给主机。具体地,在一优选的实施例中,所述从数据接收单元031接收的主数据发送单元024发送的校验数据为A5H,所述从数据接收单元031接收的校验数据A5H为十六进制表达方式,将所述十六进制表达方式转换为二进制表达方式且高低位不变,即所述从数据接收单元031接收的校验数据A5H转换为二进制表达方式为10100101 ;从数据应答单元032将所述二进制表达方式的校验数据10100101 按位取反,即得到按位取反后的二进制数据01011010,再将所述按位取反后的二进制数据01011010转换为十六进制表达方式,即为5AH。从数据应答单元032将所述按位取反后的数据5AH作为应答发送给主机。若从数据接收单元031所接收的数据不是一个字节的数据, 即所接收的数据不是8个Mt,则从数据接收单元031继续接收所述校验数据并判断所接收的数据是否为一个字节的数据。在从数据接收单元031所接收的数据是一个字节的数据但不是所述主机发送的校验数据时,在从机的数据缓冲寄存器中所装载的测试数据OlH全部被主机读取后,继续装载测试数据OlH到数据缓冲寄存器。本发明串口同步通讯数据对齐的装置通过判断从机接收的数据是一个字节的数据且所述数据是主机发送的校验数据时,将所述数据按位取反后作为应答发送给主机的方法,实现了准确、快捷地恢复数据错位、完成数据对齐的有益效果。以上所述仅为本发明的优选实施例,并非因此限制其专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种串口同步通讯数据对齐的方法,其特征在于,包括以下步骤从机发送测试数据给主机;主机接收所述测试数据后发送校验数据给从机,等待从机应答;从机接收所述校验数据,并根据所述校验数据发送应答给主机;当所述应答是所述校验数据按位取反后的数据时,主机响应所述应答,完成数据对齐。
2.根据权利要求I所述的串口同步通讯数据对齐的方法,其特征在于,所述主机接收测试数据并根据所述测试数据发送校验数据给从机的步骤具体包括主机将数据输出端口置为高电平,同时将计数器清零;主机读取所述测试数据的数据端口电平;判断在I个时钟周期内所述测试数据的数据端口是否为高电平;若是,则计数器的值自动加I ;判断所述计数器的值是否为8 ;若是,则主机发送校验数据给从机。
3.根据权利要求I所述的串口同步通讯数据对齐的方法,其特征在于,所述从机接收所述校验数据并根据所述校验数据发出应答的步骤具体包括从机接收数据并判断所接收的数据格式是否正确;若是,则判断所接收的数据是否为主机发送的校验数据;若是主机发送的校验数据,则将所述校验数据按位取反并将取反后得到的数据发送给主机。
4.根据权利要求I所述的串口同步通讯数据对齐的方法,其特征在于,所述从机发送测试数据给主机的测试数据为01H。
5.根据权利要求I所述的串口同步通讯数据对齐的方法,其特征在于,所述主机与从机进行数据处理是在同一时钟信号下同步完成的。
6.一种串口同步通讯数据对齐的装置,其特征在于,包括从数据发送模块,用于发送测试数据给主机;主数据收发模块,用于接收所述测试数据后发送校验数据给从机,等待从机应答;从数据应答模块,用于接收所述校验数据,并根据所述校验数据发送应答给主机;主数据对齐模块,用于当所述应答是所述校验数据按位取反后的数据时,响应所述应答,完成数据对齐。
7.根据权利要求6所述的串口同步通讯数据对齐的装置,其特征在于,所述主数据收发模块包括主数据处理单元,用于将数据输出端口置为高电平,同时将计数器清零;主数据读取单元,用于读取所述测试数据的数据端口电平;主数据计数单元,用于在I个时钟周期内所述测试数据的数据端口是高电平时,计数器的值自动加I ;主数据发送单元,用于在所述计数器的值是8时,主机发送校验数据给从机。
8.根据权利要求6所述的串口同步通讯数据对齐的装置,其特征在于,所述从数据应答模块包括从数据接收单元,用于接收数据并在所接收数据的格式正确时,判断所接收的数据是否为主机发送的校验数据;从数据应答单元,用于在所接收的数据是主机发送的校验数据时,将所述校验数据按位取反并将取反后得到的数据发送给主机。
9.根据权利要求6所述的串口同步通讯数据对齐的装置,其特征在于,所述从数据发送模块中所述发送的测试数据为01H。
10.根据权利要求6所述的串口同步通讯数据对齐的装置,其特征在于,所述主机与从机进行数据处理是在同一时钟信号下同步完成的。
全文摘要
本发明公开一种同步通讯数据对齐的方法,该方法包括以下步骤从机发送测试数据给主机;主机接收所述测试数据后发送校验数据给从机,等待从机应答;从机接收所述校验数据,并根据所述校验数据发送应答给主机;当所述应答是所述校验数据按位取反后的数据时,主机响应所述应答,完成数据对齐。本发明通过主机两次读取从机发送的测试数据的数据端口状态为高电平的时钟间隔为7个时钟周期,且当从机发出的应答是主机发送的校验数据按位取反后的数据时,主机响应从机应答完成数据对齐的方法,实现了主机快捷、准确地恢复错位数据并完成数据对齐的有益效果。
文档编号G06F13/38GK102591739SQ20121000231
公开日2012年7月18日 申请日期2012年1月6日 优先权日2012年1月6日
发明者宁荣彬, 封毅 申请人:深圳市沛城电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1