一种串行通信方法和装置的制作方法

文档序号:7661335阅读:245来源:国知局

专利名称::一种串行通信方法和装置的制作方法
技术领域
:本发明涉及电子电路
技术领域
,特别涉及一种串行通信方法和装置。技术背景在电子产品中,一个完整的系统的成本往往会受到其内部互连总线结构的影响。通常,互连总线结构分为并行和串行两种类型。并行总线或串行总线一般由数据线、地址线、控制线等组成。并行总线设计实现简单,容易达到较高的通信速率,从而得到了广泛的应用。但是,并行通信方式需要较多的信号线,需要占用芯片较多的管脚资源和电路板设计空间,需要的器件数量一般也比较多。所以在管脚资源紧张、电路板空间有限和成本敏感的系统中一般不采用这种方式。串行总线通信只要很少的互连线和芯片管脚,占用电路板面积较少,并且互连可靠性较好,因此对于管脚资源紧张、电路板空间有限和成本敏感的系统通常采用串行总线的方式。串行总线上的多台设备按照功能划分为主设备和从设备两种,主设备负责发起和终结一次通信过程。目前被大量使用的串行总线通信方式有芯片间通信总线接口(inter-integratedcircuit,IIC)及串行外围接口(Serialperipheralinterface,SPI)。IIC是PHILIPS公司开发的一种双向、二线制、同步串行总线通信接口。接口上分主设备和从设备两类设备,通信过程中只有一个主设备,其基本原理如图1所示。IIC总线只有两条信号线,分别为数据线(SerialData,SDA)和时钟线(SerialClock,SCL),并且都可以是双向传输的。每个连接到总线的器件,都可以由软件通过唯一的地址和一直存在的简单的主从关系来寻址,主设备可以作为发送器或接收器,从设备的地址宽度为7位;IIC总线支持多主设备,有冲突检测和仲裁机制;连接到同一组IIC总线上的器件数量受到总线最大负载电容为400pF的限制。由于IIC协议可以支持多主设备的工作环境,就是说总线上允许出现多个主设备,所以为了避免多个主设备同时发起通信而造成总线冲突,协议中必须提供仲裁和同步机制;并且IIC协议使用一根数据线实现双向传输,以上因素均给软硬件的实现带来一定的难度,也就相应的增加了开发成本。由于连接到同一组IIC总线上的器件数量受到总线最大负载电容为400pF的限制,因此IIC接口不适用于距离较长的板间通信以及电缆连接等场合.在IIC协议中,从设备的地址宽度中又包含了固定地址和可编程地址两部分内容,一组nc总线上可以同时运行的同一类器件的数量由可编程地址的宽度来决定,这样就给系统的扩展带来了一定的限制。SPI总线是MOTOROLA/^司开发的一种双向、同步串行总线通信方式。SPI是一种同步的通信总线,其接口上分主设备和从设备两类设备,并且主设备是唯一的。通信过程中还可以具有传输完成标志和写沖突保护标士如图2所示,在一个SPI通信系统中,SPI接口主要由4个引脚构成SPICLK、MOSI、MISO及/SS。SPICLK是整个SPI总线的公用时钟;MOSI是主设备的输出,从设备的输入;MISO是主设备的输入,从设备的输出;/SS是主设备选择从设备的标志管脚,/SS管脚的电平为低表示目前主设备正在与该从设备通信。SPICLK串行时钟线和MOSI、MISO串行数据线连到总线上的每个设备,主设备可以通过分配给每个从设备的/SS信号以及命令帧中的寄存器地址对从设备寄存器进行寻址,并建立简单的主/从关系,并且每个器件(包括主设备和从设备)都可以作为发送器和接收器。SPI协议中,主设备发送的帧命令中没有从设备的从设备地址信息,主设备选择与某个从设备进行通信时,只能通过/SS信号实现。因此,当系统中存在1个主设备和多个从设备时,主设备需要给每个从设备分配一个专门的/SS信号,才可能与全部从设备建立通信。这样会占用主设备较多的引脚资源,PCB内部互连线也相应增加,增加了产品开发成本,同时也降低了系统的可靠性;并且,还导致系统的扩展性能较差,因为增加一台从设备就需要主设备额外分配一个片选信号,这只有通过修改硬件设计来实现。另外,由于SPI协议中没有提供故障诊断机制,因此当通信的一方出现故障以后,系统无法提供相应的解决措施。综上所述,现有常用的串行通信方法均存在一定的缺陷,不能很好地满足实际应用的需要。
发明内容有鉴于此,本发明实施例提出一种实现简便的串行通信方法和装置。本发明实施例的主设备串行通信方法,应用于一个主设备连接至少一个从设备的环境,主设备通过时钟信号线向从设备提供通信时钟信号,还包括如下步骤主设备根据所述时钟信号,向从设备发送同步信号;主设备根据所述时钟信号,在下行数据信号线向从设备发送读/写模式标志位、从设备地址以及从设备的寄存器地址;若所述读/写模式标志位对应写操作,则主设备根据所述时钟信号在下行数据信号线向从设备发送所要写入的下行数据;若所述读/写模式标志位对应读操作,则主设备根据所述时钟信号在上行数据信号线接收来自从设备的上行数据。本发明实施例剔除相应的从设备的串行通信方法,包括如下步骤判断是否检测到同步信号,若是,则根据所述时钟信号在下行数据信号线接收并锁存读/写模式标志位,并准备接收从设备地址;否则重复本步骤;在下行数据信号线接收从设备地址,将所接收的从设备地址与自身的从设备地址相比较,如果相同则锁存所述从设备地址,准备接收寄存器地址;在下行数据信号线接收寄存器地址,并根据所述时钟信号锁存所接收的寄存器地址;如果所迷读/写模式标志位为读操作,根据所述时钟信号,将所接收的寄存器地址对应的寄存器中的数据通过上行数据信号线发送;如果所迷读/写模式标志位为写操作,则根据所述时钟信号,在下行数据信号线接收下行数据,将所接收的下行数据存储到所述寄存器地址所指定的寄存器。本发明实施例提出一种串行通信的主设备,包括启动指示单元,用于发送同步信号;时钟单元,用于生成通信时钟信号,并将所述时钟信号通过时钟信号线发送;读/写指示单元,用于根据所述时钟单元输出的时钟信号生成读/写模式标志位、所述读/写操作对应的从设备地址以及从设备的寄存器地址,并通过下行数据信号线依次发出;读/写数据单元,用于根据所述时钟单元输出的时钟信号,在下行数据信号线上发送将要写入从设备的下行数据;或者根据所述时钟单元输出的时钟信号,在上行数据信号线接收来自从设备的上行数据。本发明实施例提出一种串行通信的从设备,包括启动检测单元,用于检测同步信号,当检测到所述同步信号时,发出准备指示;时钟计数单元,用于对所收到的时钟信号的周期进行计数;读/写模式单元,用于收到所述启动检测单元的准备指示后,根据所述时钟计数单元的计数和所述时钟信号,在下行数据信号线接收并锁存读/写才莫式标志位;从设备地址单元,用于所述读/写模式单元接收完读/写模式标志位之后,根据所述时钟计数单元的计数,在下行数据信号线接收从设备地址,并将所接收的从设备地址与自身的从设备地址相比较,如果相同则根据所述时钟信号锁存所述从设备地址,并发出用于指示接收寄存器地址的指示信号;寄存器地址接收单元,用于在收到所述从设备地址单元的指示信号后根据所述时钟计数单元的计数以及所述时钟信号,在下行数据信号线接收并锁存寄存器地址;读/写操作单元,用于根据所述读/写模式单元中锁存的读/写模式标志位执行相应的读/写操作,包括如果所述读/写模式标志位为读操作,根据所述时钟计数单元的计数和所述时钟信号,将所述寄存器地址单元锁存的寄存器地址对应的寄存器中的数据通过上行数据信号线发送;如果所述读/写模式标志位为写操作,则根据所述时钟计数单元的计数和所述时钟信号,在下行数据信号线接收下行数据,将所接收的下行数据存储到所述寄存器地址单元锁存的寄存器地址所指定的寄存器。本发明实施例提出一种串行通信方法,一个主设备连接至少一个从设备,主设备通过时钟信号线向从设备提供时钟信号,包括如下步骤主设备根据所述时钟信号,向从设备发送同步信号;从设备收到所述同步信号后,根据所述时钟信号在下行数据信号线接收并锁存读/写模式标志位;主设备根据所述时钟信号,在下行数据信号线向从设备发送读/写模式标志位、从设备地址以及从设备的寄存器地址;从设备在下行数据信号线接收从设备地址,将所接收的从设备地址与自身的从设备地址相比较,如果相同则根据所述时钟信号锁存所述从设备地址,并在下行数据信号线接收寄存器地址,并根据所述时钟信号锁存所接收的寄存器地址;若所述读/写模式标志位对应写操作,则主设备根据所述时钟信号在下行数据信号线向从设备发送所要写入的下行数据;从设备根据所述时钟信号,在下行数据信号线接收下行数据,将所接收的下行数据存储到所述寄存器地址所指定的寄存器;若所述读/写模式标志位对应读操作,则主设备根据所述时钟信号在上行数据信号线接收来自从设备的上行数据;从设备根据信号线发送。从以上技术方案可以看出,本发明方案应用于"单主设备多从设备"的工作环境,不需要处理多主设备竟争总线带来的仲裁、同步等问题,因此实现串行通信接口功能时,比IIC接口更容易实现,可减小编写的逻辑或者软件代码量,维护工作量也相应减少,成本也更低。相比SPI协议,本发明方案只需要在从设备上进行简单的地址译码就可以实现主设备对从设备的访问,不需要单独为每台从设备分配一个独立的片选信号,因而可以有效的利用主设备的引脚资源。这样同时可以减少单板内部的互连线,降低了开发成本。图i为现有技术中的芯片间通信总线接口(nc)的原理示意图;图2为现有技术中的串行外围接口(SPI)的原理示意图;图3为本发明实施例提出的改进型串行接口(ISI)的原理示意图;图4为本发明实施例的数据格式图;图5为本发明第一具体实施例的写操作处理流程图;图6为本发明第二具体实施例的读操作处理流程图;图7为本发明第三具体实施例的主设备的内部逻辑结构框图;图8为本发明第四具体实施例的从设备的内部逻辑结构框图;图9为本发明第五具体实施例的从设备的元件组成结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细阐述。本发明实施例提出一种筒单、高效的串行总线通信方案,为便于叙述,以下将本发明提出的这种串行通信方案称为改进型串行接口(ImprovedSerialinterface,ISI)通信方式,其原理如图3所示。ISI协议在物理上需要4根信号线同步信号(SYN),通信时钟信号(CLK),下行数据信号(CMD),上行数据信号(DAT)。其中,英文缩写只是为了下文叙述方便所采用的一种简化的表述形式,实际应用中可以采用其它的英文缩写或名称,只要信号线所进行的操作以及实现的功能与本发明实施例相同即可。SYN信号为主设备发向从设备的"启动"信号,用以指示一次通信过程的开始;CLK信号为通信时钟信号,由主设备提供,其它信号的接收发送都以CLK为参考;CMD为主设备发出的下行数据(包括读/写命令、地址和写数据);DAT为从设备在CLK驱动下,回送给主设备的上行数据。其中,上行数据(从设备到主设备方向)和下行数据(主设备到从设备方向)通过两根数据线分开传送,这样可以大大降低通信过程控制的复杂程度。另外,在CMD中不仅包含所要访问的从设备的寄存器的地址,也包含了从设备的从设备地址;从设备通过判断当前接收到的从设备地址是否为本从设备地址,来决定是否响应主设备当前的命令,这样就不需要对每个从设备单独分配一个片选信号就可以做到对所有从设备的访问,主设备就可以实现访问多个从设备的目的,从而大大提高了主设备管脚资源利用率。本发明实施例中,从设备地址的比特数为5位,允许有32个从设备,但其中包括一个广播地址和一个保留地址,因此从设备数目n的最大允许值为30。同时,系统中增加从设备时也不需要对主设备的硬件设计进行更改,因此大大提高了系统扩展的灵活性。所述ISI协议信号的数据格式如图4所示,其中上部为读过程的数据格式,下部为写过程的数据格式。用于传送下行数据的CMD包含3个部分的内容(i)读/写模式标志位共3比特,用于控制本次通信的读/写模式。表1中给出了本发明实施例中的读/写模式标志位定义表。其中,BitO为读/写标志位,Bitl和Bit2共同决定进行读/写的数据字段长度。<table>tableseeoriginaldocumentpage15</column></row><table>表l当然,也可以BitO和Bitl为数据字段长度,而Bit3为读/写标志位。(2)从设备地址(DeviceAddr):共5比特,用于传送当前需要访问的从设备的地址信息。从设备接收到CMD信号后,将其中的从设备地址与自己的地址作比较,如果两者匹配,则根据当前的读/写模式作相应的操作;如果不匹配,则忽略该次通信的内容,不估文任何响应。(3)寄存器地址(RegAddr):共8比特,用于传送当前需要访问的从设备的内部寄存器的地址。(4)下行数据在写操作模式下,该部分用于传送主设备需要写入到从设备寄存器中的内容。长度由前面的读/写模式标志决定,可以从1个字节到8个字节不等。在读操作模式下,该部分不使用。用于传送上行数据的DAT信号的数据结构对于读过程和写过程有所不同在读操作模式下,从设备会将接收到CMD信号中的从设备地址同自己的地址做比较,如果两者一致,则通过DAT传送相应的数据给主设备,数据长度由从设备收到的CMD中的读/写模式标志决定,可以从1个字节到8个字节不等;如果不一致,则该从设备会将本设备上的DAT信号置为高阻抗状态。在写操作模式下,DAT信号还可以用作从设备"忙"指示信号。该信号为'0,时,表示从设备可以正常接收主设备的数据;当该信号为'1,时,表示从设备正处于繁忙状态,无法正常接收主设备的数据。当主设备发现DAT信号为'1,时,应该取消当前的读/写操作,采用计数器记录连续写失败次数,并且重新发起一次内容相同的通信,如果通信成功,则清零所述计数器。如果连续写失败的次数达到预先设定的阈值,例如连续失败达到20次,主设备则停止继续向该从设备发送数据,上报告警并清零所述计数器。其中,从设备地址的格式如表2所示,从设备地址长度共5比特,除了全0和全1之外,其他的都分配给从设备,用于唯一标识系统中的从设备。全1作为写操作模式的广播地址,在此情况下,所有从设备都接收来自主设备的数据,并根据接收到的紧跟在从设备地址之后的寄存器地址将其写入相应的寄存器。<table>tableseeoriginaldocumentpage16</column></row><table>表2寄存器地址共8比特,用于指定当前需要访问的从设备的内部寄存器地址。在多字节操作模式下,该寄存器地址用于标识起始寄存器的地址。后续数据的对应的寄存器地址通过在起始寄存器地址的基础上依次递增1得到。以下以1字节读/写操作模式为例,对本发明的读/写操作过程进行详细阐述。本发明第一实施例的写操作过程如图5所示,主设备在CLK的下沿发送读/写命令、地址及数据;从设备使用CLK下沿进行周期计数,使用CLK上沿进行读/写命令、地址及数据锁存。包括如下步骤步骤501:主设备发送出开始通信指示,即将SYN信号置为有效;以SYN信号有效的CLK周期为起始点,在第1-3个CLK周期通过CMD信号发出写操作指示。其中,SYN信号的宽度为一个CLK周期,写操作指示的首位为O,后两位表示写入数据字段的长度。步骤502:从设备检测到开始通信指示,使用CLK信号的上升沿采样锁存所述写操作指示,同时准备接收地址和数据信息。如果从设备没有检测到有效的SYN信号,则重复本步骤。步骤503:在第4-8个CLK周期,主设备在CLK下降沿发出从设备地址,从高位到低位依次送出,共5比特。步骤504:从设备接收从设备地址,接收完后将所接收的从设备地址与自己的从设备地址比较,如相同则从设备使用CLK的上升沿采样锁存从设备地址,准备接收寄存器地址和数据,如不同则从设备不进行后续处理,结束本流程。步骤505:在第9-16个CLK周期,主设备在CLK下降沿发出要写入的从设备寄存器地址,从高位到低位依次送出,共8比特。步骤506:从设备接收设备寄存器地址,并使用CLK的上升沿采样锁存所接收的从设备寄存器地址。步骤507:在第17-24个CLK周期,主设备在CLK下降沿发出要写的数据,从高位到低位依次送出,数据长度与所述写操作指示的数据长度保持一致,长度为8比特。如果实际写入的数据长度不足8比特,则后面用空位补足。步骤508:从设备接收写数据,使用CLK的上升沿采样写操作的数据,数据的长度由读/写模式标志来决定,将所接收的数据放入緩存。步骤509:主设备在传送完毕所有数据内容后,等待一个时钟周期,本结束本次通信;步骤510:从设备将緩存数据转移到所述寄存器地址所指定的寄存器。在执行完步骤510之后,经过一个读/写操作间隔,然后进行下一次读/写操作。本发明第二实施例的读操作过程如图6所示,主设备在CLK的下沿发送读/写命令、地址及数据;从设备使用CLK下沿进行周期计数并发送上行数据,使用CLK上沿进行读/写命令以及地址锁存。包括如下步骤步骤601:主设备发送出开始通信指示,即将SYN信号置为有效;以SYN信号有效的CLK周期为起始点,在第1-3个CLK周期通过CMD信号发出读操作指示。其中,SYN信号的宽度为一个CLK周期,读操作指示的首位为1,后两位表示所要读取的数据字段的长度。步骤602:从设备检测到开始通信指示,使用CLK信号的上升沿采样锁存所述读操作指示,同时准备接收地址和数据信息。如果从设备没有检测到有效的SYN信号,则重复本步骤。步骤603:在第4-8个CLK周期,主设备在CLK下降沿发出从设备地址,从高位到低位依次送出,共5比特。步骤604:从设备接收从设备地址,接收完后将所接收的从设备地址与自己的从设备地址比较,如相同则从设备使用CLK的上升沿采样锁存从设备地址,准备接收寄存器地址,如不同则从设备不进行后续处理,结束本流程。步骤605:在第9-16个CLK周期,主设备在CLK下降沿发出所要读取的从设备寄存器地址,从高位到低位依次送出,共8比特。步骤606:从设备接收设备寄存器地址,并使用CLK的上升沿采样锁存所接收的从设备寄存器地址。步骤607:在第17-24个CLK周期,从设备使DAT信号线为输出状态,把接收到的寄存器地址所对应的寄存器中的数据使用CLK下降沿发送出,从高位到低位依次送出,共8比特。如果实际读取的数据长度不足8比特,则后面用空位补足。步骤608:主设备在CLK下降沿接收所述从设备寄存器地址所对应的寄存器的数据,从高位到低位依次接收,长度为8比特。步骤609:主设备在传送完毕所有数据内容后,等待一个时钟周期,并结束本次通信;步骤610:从设备关闭DAT信号线,使其为高阻抗状态。在执行完步骤610,会经过一个读/写操作间隔,然后进行下一次读/写操作。此外,本发明实施例还提供故障检测机制,该机制由主设备和从设备分别实现。主设备的故障检测机制根据前面的描述,上行数据信号线DAT可用来作为从设备的忙指示信号。从设备接收到读/写模式标志位表示将要进行写操作,则根据自身的状态设置DAT信号DAT信号为'0,时,表示从设备可以正常从主设备接收数据;当DAT信号为'1,时,表示从设备正处于繁忙状态,无法继续从主设备正常接收数据,则本次读/写失败,主设备应该取消这次操作,并且重新启动SYN信号发起一次内容相同的通信,并用计数器对连续重启SYN信号的次数进行计数,在计数过程中如果读/写成功则清零所述计数器。如果所述计数器的计数次数达到预定阈值,例如达到20次,主设备则停止继续向该从设备发送数据并清零所述计数器,并且在预先定义的一段时间内停止再向所述繁忙的从设备发起读/写操作,并上报告警;所述预先定义的一段时间之后,每隔预先定义的时间间隔判断该繁忙的从设备是否恢复正常,若是,则主设备上报告警解除。从设备的故障检测机制分为两种实现方式方式一将时钟信号CLK作为基准,检测是否有同步信号SYN丟失,当使用周期性的同步信号SYN时,还可以进一步检测同步信号SYN的周期是否正常,如果发现同步信号SYN丢失或者周期异常,说明SYN接口异常,转异常处理;方式二将同步信号SYN作为基准,检测是否有时钟信号CLK丢失,具体地说,当SYN为周期性信号时,可以利用其固定周期的时间内进行CLK脉沖计数,并判断CLK脉沖是否等于固定预设值,若否则为异常。如果SYN为非周期性信号,直接利用上述方法就可能出现误检测,因此只需确保同步信号SYN间隔最长的周期中,不会误检测到时钟信号CLK丢失,同样,当使用周期性的同步信号SYN时,也可以检测时钟信号CLK的周期是否正常,如果发现时钟信号CLK丟失或者周期异常,即接口异常,转异常处理。从设备的异常处理过程当采用上述方式一检测到SYN接口异常,或者采用方式二检测到CLK接口异常,可以采用如下处理如果从设备通信部分的DAT接口输出从设备控制信号,当检测到接口异常时,将输出设定成"无效时"的控制状态,即将从设备的DAT接口输出关闭,从设备DAT接口表现为高阻即为无效控制状态,主设备的DAT接口靠外部上拉表现为1电平。主设备检测期间才企测到DAT=1则表明从设备异常。如果从设备接口的DAT接口输出状态信号,当检测到接口异常时,将输出设定成检测到异常前的状态,以避免瞬时通信中断影响状态输出。本发明第三实施例的主设备内部逻辑处理结构如图7所示,包括启动指示单元701,用于发送SYN信号;时钟单元702,用于生成CLK信号,并通过时钟信号线发送CLK信号;读/写指示单元703,用于根据所述时钟单元702输出的CLK信号生成读/写模式标志位、读/写操作对应的从设备地址以及从设备的寄存器地址,并通过下行数据信号线依次发出;读/写数据单元704,用于根据所述时钟单元702输出的CLK信号,将所要写入从设备的下行数据转换为串行数据,在下行数据信号线CMD上发送;或者根据所述时钟单元702输出的CLK信号,在上行数据信号线接收来自从设备的上行数据,将所述上行数据转换为并行数据。主设备还包括忙检测单元705,用于检测上行数据信号线DAT的忙指示信号,若所述忙指示信号表示从设备为繁忙,并且读/写指示单元703和读/写数据单元704当前正在执行写入操作,则向所述读/写数据单元704发送停止发送下行数据的指示,并向所述启动指示单元701发送指示信号;所述启动指示单元701根据来自所述忙检测单元705的指示信号,重新启动SYN信号;读/写指示单元703和读/写数据单元704再次执行与上次相同的写入操作。告警单元706,用于对所述启动指示单元701重新启动SYN信号次数进行计数,若计数超过预先设置的阈值,则通知所述读/写数据单元704停止向所述忙指示信号为繁忙的从设备写入数据,并上报告警。所述忙检测单元705在预先定义的告警单元706上报告警的一段时间后,每隔预定的时间检测上行数据信号线的忙指示信号是否恢复为正常,若是,则指示所述告警单元706解除告警。本发明第四实施例的从设备内部逻辑处理结构如图8所示,包括启动检测单元801,用于检测SYN信号,当检测到SYN信号时,发出准备指示;时钟计数单元802,用于收到所述启动4企测单元801的准备指示后,对所收到的CLK信号的周期进行计数;读/写模式单元803,用于收到所述启动检测单元801的准备指示后,根据所述时钟计数单元802的计数和CLK信号,在下行数据信号线CMD接收并锁存读/写模式标志位;从设备地址单元804,用于所述读/写模式单元803接收完读/写模式标志位之后,根据所述时钟计数单元802的计数,在下行数据信号线CMD接收从设备地址,并将所接收的从设备地址与自身的从设备地址相比较,如果相同则根据CLK信号锁存所述从设备地址,并发出用于指示接收寄存器地址的指示信号;寄存器地址单元805,用于在收到所述从设备地址单元的指示信号后,根据所述时钟计数单元802的计数以及CLK信号,在下行数据信号线接收并锁存寄存器地址;读/写操作单元806,用于根据所述读/写模式单元中锁存的读/写模式标志位执行相应的读/写操作,包括如果所述读/写模式标志位为读操作,根据所述时钟计数单元802的计数和CLK信号将所述寄存器地址单元805锁存的寄存器地址对应的寄存器中的数据通过上行数据信号线DAT发送;如果所述读/写模式标志位为写操作,则根据所述时钟计数单元802的计数和CLK信号在下行数据信号线CMD接收下行数据,将所接收的下行数据存储到所述寄存器地址单元805锁存的寄存器地址所指定的寄存器。忙指示单元807,用于当从设备地址单元804判断出所接收的从设备地址与自身的从设备地址相同之后,判断本设备是否处于繁忙状态,根据判断结果设置上行数据信号线的状态,例如设置为l表示"繁忙",设置为O表示正常。异常检测单元808,用于将接收的SYN信号和CLK信号进行相互验证,判断是否出现异常,若是发出异常指示信号;异常处理单元809,用于根据所述异常指示信号进行异常处理。作为一个具体的实现方式,本发明第五实施例给出了上述从设备的一种元件组成结构,如图9所示。其中,检测单元卯l和计数器卯2分别相当于图8中的启动才lr测单元801和时钟计数单元802,4企测单元9014企测到SYN信号后,向计数器卯2发送开始计数信号(cn—start)。1/24串并转换单元卯4用于根据CLK信号的周期将CMD信号转换为并行信号,并根据计数器卯2的计数,将并行信号分别发送至模式状态机卯3、8位地址锁存、8位数据锁存或比较器905。其中,D为读/写命令,D[3:7]为从设备地址,D[8:15]为寄存器地址,D[16:24]为写数据。DAT为三态数据信号线,有0、l两种信号状态,以及高阻抗状态。模式状态机用于锁存读/写模式指示位,1/24串并转换单元904和模式状态机903的功能总体上相当于图8中的读/写模式单元803。比较器905将来自1/24串并转换单元904的从设备地址与自身的从设备地址进行比较,相同则向复用器907发送指示,否则向1/24串并转换单元904发送停止本次读/写操作的处理的指示,1/24串并转换单元904和比较器905的功能总体上相当于图8中的从设备地址单元805。1/24串并转换单元904和8位的地址锁存的功能总体上相当于图8中的寄存器地址单元804;1/24串并转换单元904、内存单元906和8/1并串转换单元卯8总体上相当于图8中的读/写操作单元806。而复用器907用于实现从设备地址、读/写数据以及寄存器地址的复用。图8中的忙指示单元807、异常4企测单元808和异常处理单元809的对应结构则没在图9中画出。本发明方案应用于"单主设备多从设备"的工作环境,不需要处理多主设备竟争总线带来的仲裁、同步等问题,因此实现串行通信接口功能时,比IIC接口更容易实现,可减小编写的逻辑或者软件代码量,维护工作量也相应减少,成本也更低。相比SPI协议,本发明方案只需要在从设备上进行筒单的地址译码就可以实现主设备对从设备的访问,不需要单独为每台从设备分配一个独立的片选信号,因而可以有效的利用主设备的引脚资源。这样同时可以减少单板内部的互连线,降低了开发成本。本发明方案还使用较低的成本实现了故障检测功能,主设备可以在故障发生后产生相应的措施,有效地保证了通信的可靠性;上行数据和下行数据分开传送,所有信号都是单向的,能够适应设备间通信;寻址空间较大,并且能够承载的从设备数量不受设备类型限制;另外,增加从设备不需要改变主设备的硬件结构。使系统具备良好的扩展性。本发明方案实现简单,成本低廉,可以在代价很小的情况下,增强设备的运行维护能力,降低用户的使用成本。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。权利要求1、一种主设备的串行通信方法,一个主设备连接至少一个从设备,主设备通过时钟信号线向从设备提供通信时钟信号,其特征在于,包括如下步骤主设备根据所述时钟信号,向从设备发送同步信号;主设备根据所述时钟信号,向从设备发送下行数据信号,所述下行数据信号包括读/写模式标志位、从设备地址以及从设备的寄存器地址;若所述读/写模式标志位对应写操作,则主设备根据所述时钟信号在下行数据信号线向从设备发送所要写入的下行数据;若所述读/写模式标志位对应读操作,则主设备根据所述时钟信号在上行数据信号线接收来自从设备的上行数据。2、根据权利要求1所述的方法,其特征在于,所述主设备发送下行数据或接收上行数据之后,进一步包括主设备送出用于指示从设备结束本次通信的时钟信号,之后再次依次执行上述步骤。3、根据权利要求1所述的方法,其特征在于,所述同步信号的长度为一个时钟周期,主设备发送给从设备的"启动,,信号,用以指示一次通信过程的开始。4、根据权利要求1所述的方法,其特征在于,所述读/写模式标志位长度为3比特,其中第1或第3比特为读/写指示,另外2比特用于指示所要读取或写入的数据长度。5、根据权利要求1所述的方法,其特征在于,所述主设备根据所述时钟信号发送从设备地址为主设备根据所述时钟信号,从高位到低位或从低位到高位依次串行发送出从设备地址,所述/人设备地址为5比特。6、根据权利要求1至5任一项所述的方法,其特征在于,所述主设备向从设备发送同步信号的步骤之后,进一步包括主设备检测上行数据信号线的从设备忙指示信号,如果所述忙指示信号表示从设备为正常,则执行所述后续步骤;如果所述忙指示信号表示从设备为繁忙,则转至所述主设备根据所述时钟信号向从设备发送同步信号的步骤,重新发起内容相同的读/写操作。7、根据权利要求6所述的方法,其特征在于,所述忙指示信号表示从设备为繁忙时,进一步包括主设备判断重新启动同步信号的次数达到预先设置的阈值,则在预先定义的一段时间内停止再向所述繁忙的从设备发起读/写操作,并上报告警;所述预先定义的一段时间之后,每隔预先定义的时间间隔判断该繁忙的从设备是否恢复正常,若是,则主设备上报告警解除。8、一种从设备的串行通信方法,一个主设备连接至少一个从设备,主设备通过时钟信号线向从设备提供通信时钟信号,其特征在于,包括如下步骤判断是否检测到同步信号,若是,则根据所述时钟信号在下行数据信号线接收并锁存读/写模式标志位,并准备接收从设备地址;否则重复本步骤;在下行数据信号线接收从设备地址,将所接收的从设备地址与自身的从设备地址相比较,如果相同则锁存所述从设备地址,准备接收寄存器地址;在下行数据信号线接收寄存器地址,并根据所述时钟信号锁存所接收的寄存器地址;如果所述读/写模式标志位为读操作,根据所述时钟信号,将所接收的寄存器地址对应的寄存器中的数据通过上行数据信号线发送;如果所述读/写模式标志位为写操作,则根据所述时钟信号,在下行数据信号线接收下行数据,将所接收的下行数据存储到所述寄存器地址所指定的寄存器。9、根据权利要求8所述的方法,其特征在于,所述将所接收的寄存器地址对应的寄存器中的数据通过上行数据信号线发送之后,进一步包括接收用于指示从设备结束本次通信的时钟信号,则本次访问的从设备关闭上行数据信号线,使其为高阻抗状态。10、根据权利要求8所述的方法,其特征在于,所述将所接收的从设备地址与自身的从设备地址相比较的结果为相同之后,进一步包括根据自身状态设置上行数据信号线的信号,用来指示是否处于繁忙状态。11、根据权利要求8所述的方法,其特征在于,所述将所接收的下行数据存储到所述寄存器地址所指定的寄存器包括所接收的下行数据被存储到緩存;等待用于指示结束本次通信的时钟信号,将緩存数据转移到所述寄存器地址所指定的寄存器。12、根据权利要求8至11任一项所述的方法,其特征在于,该方法进一步包括将同步信号和时钟信号相互验证,判断是否出现异常,若出现异常则进行异常处理。13、根据权利要求12所述的方法,其特征在于,所述将同步信号和时钟信号相互验证为将时钟信号作为基准,检测是否有同步信号丢失或判断同步信号的周期是否正常,如果发现同步信号丢失或者周期异常,则为出现异常;或者,将同步信号作为基准,检测是否有时钟信号丢失或判断时钟信号的周期是否正常,如果发现时钟信号丢失或者周期异常,则为出现异常。14、根据权利要求12所述的方法,其特征在于,所述异常处理至少包括如下4壬一种所述从设备将上行数据信号线接口设置为高阻抗状态;所述从设备将上行数据信号线接口保持为检测到异常前的状态。15、一种串行通信的主设备,其特征在于,包括启动指示单元,用于发送同步信号;时钟单元,用于生成通信时钟信号,并将所述时钟信号通过时钟信号线发送;读/写指示单元,用于根据所述时钟单元输出的时钟信号生成读/写模式标志位、所述读/写操作对应的从设备地址以及从设备的寄存器地址,并通过下行数据信号线依次发出;读/写数据单元,用于根据所述时钟单元输出的时钟信号,在下行数据信号线上发送将要写入从设备的下行数据;或者根据所述时钟单元输出的时钟信号,在上行数据信号线接收来自从设备的上行数据。16、根据权利要求15所述的主设备,其特征在于,所述主设备进一步包括忙检测单元,用于检测上行数据信号线的忙指示信号,若所述忙指示信号表示从设备为繁忙,则向所述读/写数据单元发送停止本次读/写操作的指示,并向所述启动指示单元发送指示信号;所述启动指示单元根据来自所述忙检测单元的指示信号,重新启动同步信号;所述读/写指示单元和所述读/写数据单元再次执行与上次相同的读/写操作。17、根据权利要求16所述的主设备,其特征在于,所述主设备进一步包括告警单元,用于对所述启动指示单元重新启动同步信号的次数进行计数,若计数超过预先设置的阈值,则通知所述读/写数据单元停止向所述忙指示信号为繁忙的从设备发起读/写操作,并上报告警;所述忙检测单元在预先定义的告警单元上报告警的一段时间后,每隔预定的时间检测上行数据信号线的忙指示信号是否恢复为正常,若是,则指示所述告警单元解除告警。18、一种串行通信的从设备,其特征在于,包括启动检测单元,用于检测同步信号,当检测到所述同步信号时,发出准备指示;时钟计数单元,用于对所收到的时钟信号的周期进行计数;读/写模式单元,用于收到所述启动检测单元的准备指示后,根据所述时钟计数单元的计数和所述时钟信号,在下行数据信号线接收并锁存读/写模式标志位;从设备地址单元,用于所述读/写模式单元接收完读/写模式标志位之后,根据所述时钟计数单元的计数,在下行数据信号线接收从设备地址,并将所接收的从设备地址与自身的从设备地址相比较,如果相同则根据所述时钟信号锁存所述从设备地址,并发出用于指示接收寄存器地址的指示信号;寄存器地址接收单元,用于在收到所述从设备地址单元的指示信号后根据所述时钟计数单元的计数以及所述时钟信号,在下行数据信号线接收并锁存寄存器地址;读/写操作单元,用于根据所述读/写模式单元中锁存的读/写模式标志位执行相应的读/写操作,包括如果所述读/写模式标志位为读操作,根据所述时钟计数单元的计数和所述时钟信号,将所述寄存器地址单元锁存的寄存器地址对应的寄存器中的数据通过上行数据信号线发送;如果所述读/写模式标志位为写搡作,则根据所述时钟计数单元的计数和所述时钟信号,在下行数据信号线接收下行数据,将所接收的下行数据存储到所述寄存器地址单元锁存的寄存器地址所指定的寄存器。19、根据权利要求18所述的从设备,其特征在于,所述从设备进一步包括忙指示单元,当所述读/写模式单元锁存的读/写模式标志位为写操作,判断本设备是否处于繁忙状态,根据判断结果设置上行数据信号线的状态。20、根据权利要求18或19所述的方法,其特征在于,所述从设备进一步包括异常检测单元,用于将接收的所述同步信号和所述时钟信号进行相互验证,判断是否出现异常,若出现异常,则发出异常指示信号;异常处理单元,用于根据所述异常指示信号进行异常处理。21、一种串行通信方法,一个主设备连接至少一个从设备,主设备通过时钟信号线向从设备提供时钟信号,其特征在于,包括如下步骤主设备根据所述时钟信号,向从设备发送同步信号;从设备收到所述同步信号后,根据所述时钟信号在下行数据信号线接收并锁存读/写模式标志位;主设备根据所述时钟信号,在下行数据信号线向从设备发送读/写模式标志位、从设备地址以及从设备的寄存器地址;从设备在下行数据信号线接收从设备地址,将所接收的从设备地址与自身的从设备地址相比较,如果相同则根据所述时钟信号锁存所述从设备地址,并在下行数据信号线接收寄存器地址,并根据所述时钟信号锁存所接收的寄存器地址;若所述读/写模式标志位对应写操作,则主设备根据所述时钟信号在下行数据信号线向从设备发送所要写入的下行数据;从设备根据所述时钟信号,在下行数据信号线接收下行数据,将所接收的下行数据存储到所述寄存器地址所指定的寄存器;若所述读/写模式标志位对应读操作,则主设备根据所述时钟信号在上行数据信号线接收来自从设备的上行数据;从设备根据所述时钟信号,将所接收的寄存器地址对应的寄存器中的数据通过上行数据信号线发送。全文摘要本发明公开了一种串行通信方法,一个主设备连接至少一个从设备,主设备通过时钟信号线向从设备提供通信时钟信号(CLK),通过同步信号(SYN)通知从设备开始进行读/写操作,通过下行数据信号(CMD)线向从设备发送从设备地址和寄存器地址,主设备通过下行数据信号(CMD)线向从设备发送下行数据,或从设备通过上行数据信号(DAT)线向主设备发送上行数据。该串行通信方法包括主设备的串行通信方法,从设备的串行通信方法,以及主设备和从设备交互的串行通信方法。本发明还公开了一种主设备和从设备。本发明方案易于实现,并可节约管脚资源,降低成本。文档编号H04L7/00GK101399654SQ200710151868公开日2009年4月1日申请日期2007年9月25日优先权日2007年9月25日发明者恺康,昆李,强杨,董恩昌,袁小平申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1