一种带crc校验功能的iic总线接口控制器的制作方法

文档序号:6428786阅读:410来源:国知局
专利名称:一种带crc校验功能的iic总线接口控制器的制作方法
技术领域
本发明涉及IIC总线接口控制器,尤其是一种带CRC校验功能的IIC总线接口控制器。
背景技术
IIC总线是PHILIPS公司开发的一种简单、双向、二进制、同步串行总线,其可以解决各个串行设备间的通行。物理上IIC总线共有两条信号线,这两条信号线分别为数据线 SDA (Serial Data)和时钟线SCL (Serial Clock),并且都是双向传输的。硬件上,IIC通过使用集电极开路们将连接在总线上的设备以“线与”方式与总线连接,而不是通常的三态门。因此,IIC总线是一个廉价、优质的总线,其适用于消费电子、通讯电子、工业电子等领域的低速器件。IIC总线接口的主要功能是实现高速设备与低速设备之间的数据传输,其典型应用环境如图1所示,其作用是高速设备/主机与低速设备之间的桥梁。而集成在芯片内部的IIC总线接口,其上位连接的高速设备就是通过高速总线(如APB、Wishbone等)连接的微处理器,而下位的低速设备就是一些带有IIC接口的外部低速设备。IIC总线虽然应用广泛,成本低廉,其在进行一次数据传输时也没有数据量的限制,但是对于数据本身在传输过程中没有校验的过程,如果出现数据传输错误的情况是无法察觉的,因此,IIC总线的传输在数据的安全性和准确性上是无法得到保证的。

发明内容
为了克服目前IIC总线在传输数据上不能保证安全性和准确性的缺点,本发明设计了一种IIC总线接口控制器,对在IIC总线上数据的传输过程融入了校验过程,其在保证了 Iic原有的优点之外,也可以有效的保证数据传输过程中对数据安全性与准确性的需求。一种带CRC校验功能的IIC总线接口控制器,IIC总线接口控制器是IIC总线接口中的一个重要组成部分;一个完整的Iic总线接口包括三大部分时钟控制,外设总线接口以及Iic总线接口控制器。本发明所采取的技术方案是
1)一种带CRC校验功能的IIC总线接口控制器,包括传输控制器模块,负责IIC总线传输过程中的状态机控制,控制传输的开始/结束,控制信号的传输,响应位的发送与接收, 以及数据的串并和并串转换;数据接收及校验模块,负责接收Iic总线上传来的数据并对接收到的数据进行CRC校验;数据发送及校验模块,负责向IIC总线上发送数据并对所要发送的数据进行CRC校验;输入同步模块,负责IIC总线上所传来的时钟与本地的时钟进行同步同时也负责IIC总线上传来的数据比特流与本地时钟的同步;地址匹配模块,负责地址信息的保存与传送,当作为IIC主机时,其负责保存并发送从机的地址信息,当作为IIC从机时,其负责接收并保存主机发送过来的从机地址信息,并与自己本身的从机地址进行匹配验证。2)如1)中所述的传输控制器模块包括传输控制状态机,用于控制IIC传输过程中的状态转换;控制开始/结束模块,用于控制IIC传输过程中的开始/结束信号,当作为 Iic主机在总线上进行数据传输时,本模块用于产生并发送开始/结束信号,当作为IIC从机在总线上进行数据传输时,本模块用于检测并接收其他主机发送的开始/结束信号;控制信号传输模块,用于传输控制状态机在状态转换时发送和接收相应的控制信号;发送并转串模块,用于向Iic总线上发送数据时,将原来的并行8位字节数据转换为串行的比特流数据;接收串转并模块,用于从IIC总线上接收数据时,将串行的比特流数据转换为8位并行的字节数据;响应位发送与接收模块,用于发送和接收数据传输过程中的响应位。3)如1)中所述的数据接收及校验模块包括二级8比特数据接收缓冲器,用于二级缓存接收来的字节数据;CRC16数据校验模块,用于对第一级缓存器传来的数据进行 CRC16数据校验,并对CRC16校验结果进行三级缓存,当接收到数据传输完毕信号时,第三级缓存中的CRC16结果为最终的CRC结果;CRC16码提取模块,用于在接收到数据传输完毕信号时,把接收数据的末两字节提取过来,作为整串数据的CRC16校验码,并传送到比较器中与第三级缓存中的CRC结果进行比较;比较器,将CRC16码提取模块传送来的数据与16 比特三级缓存中第三级缓存中的CRC结果进行比较,并将比较的结果传送给传输控制器。 其比较结果如果是不相同的,说明CRC校验错误,就要发起中断。4)如1)中所述的数据发送及校验模块包括8比特数据发送缓冲器,用于存储当前要发送的数据字节;CRC16数据校验模块,用于对数据进行CRC16的数据校验,并保存校验结果于16比特寄存器;计数器与比较器,其中计数器用于对所发送的数据字节进行计数,比较器用于比对计数器中的计数与预先设定好的发送数据字节总数,当计数器的计数达到发送数据字节总数时,其就向16比特寄存器发送使能信号,此时16比特寄存器将其存储的CRC16校验码分两个字节传送到8比特发送数据缓冲器中,作为数据的末两字节发送出去。5)如2)中所述的传输控制状态机的初始状态为总线空闲状态,在总线空闲状态中,当检测到IIC总线上有开始信号时,进入从机传输子状态;当外设总线要在IIC总线上发起传输时,进入主机传输子状态。6)如5)中所述的从机传输子状态,进入从机传输子状态后,首先进入接收开始信号状态,若在总线上接收到开始信号,则进入接收从机地址与传输方向状态。在接收从机地址与传输状态中,首先通过响应位发送与接收模块向主机回复响应位,然后控制地址匹配模块接收相应的字节数据,并进行比对,若接收的从机地址与本身的地址不相同,则返回空闲状态。若接收的从机地址与本身的地址相同,则检测方向位,若方向位为0,说明方向为主机向从机写数据,即从机向主机接收数据,则进入从机接收数据与校验状态;若方向位为1,说明方向为主机向从机读数据,即从机向主机发送数据,则进入从机发送数据与校验状态。在从机接收数据与校验状态中,开启数据接收及校验模块,按字节接收传送来的数据,并每接收一个字节的数据就通过响应位发送与接收模块,发送响应位给主机。当数据传输完毕时,数据的最后两个字节为数据的CRC16校验码,与CRC16校验模块中的第三级缓存所计算的CRC16校验码进行比对,若校验正确,则数据接收完毕,进入等待结束状态。若发现校验码错误,则进入发起中断状态。在从机发送数据与校验状态中,开启数据发送及校验模块,开启相应的计数器,在每字节数据发送前进行CRC16校验,并将结果保存,计数器加1,当计数器的数据等于发送数据字节总数的时候,即数据发送结束时,将CRC16校验结果分两个字节通过8比特数据发送缓冲器发送出去,即将CRC16的结果作为最后两个字节的数据发送,然后进入等待结束状态。在进入等待结束状态中,若接收到主机发送过来的结束信号,则进入总线空闲状态。在进入发起中断状态中,控制信号传输模块会向外设总线发送中断信号,以发起中断,申请软件的支持。7)如5)中所述的主机传输子状态,进入主机传输子状态后,首先进入发送开始信号状态,此时控制开始/结束模块向总线上发送开始信号,接着进入发送从机地址与传输方向0状态。在发送从机地址与传输方向0状态中,地址匹配模块发送从机地址以及方向位, 方向位为0,即主机向从机写数据,接着等待从机的响应信号。接到响应位后,若主机要向从机写数据,则进入主机发送数据与校验状态。若主机要向从机读数据,则进入重复开始信号状态。在主机发送数据与校验状态中,开启数据发送及校验模块,开启相应的计数器,在每字节数据发送前进行CRC16校验,并将结果保存,计数器加1,当计数器的数据等于发送数据字节总数的时候,即数据发送结束时,将CRC16校验结果分两个字节通过8比特数据发送缓冲器发送出去,即将CRC16的结果作为最后两个字节的数据发送,然后进入发送结束状态。在重复开始信号状态中,控制开始/结束模块向总线上再次发送开始信号,然后进入发送从机地址与传输方向1状态。在发送从机地址与传输方向1状态中,地址匹配模块发送从机地址以及方向位, 方向位为1,即主机向从机读数据,然后进入主机接收数据与校验状态。在主机接收数据与校验状态中,开启数据接收及校验模块,按字节接收传送来的数据,并每接收一个字节的数据就通过响应位发送与接收模块,发送响应位给从机。当数据传输完毕时,数据的最后两个字节为数据的CRC16校验码,与CRC16校验模块中的第三级缓存所计算的CRC16校验码进行比对,若校验正确,则数据接收完毕,进入发送结束状态。若发现校验码错误,则进入发起中断状态。在发送结束信号状态中,控制开始/结束信号模块向从机发送结束信号后进入总线空闲状态。在进入发起中断状态中,控制信号传输模块会向外设总线发送中断信号,以发起中断,申请软件的支持。本发明的有益效果主要表现在1、传统的IIC总线上,数据传输时没有校验过程, 本发明的IIC总线接口控制器在发送和接收数据时,可以对数据进行CRC16校验,从而保证了数据传输过程中的安全性和准确性。2、本发明中所融入的数据CRC校验过程,并未破坏 IIC协议,只是将CRC16校验码作为数据传输的最后两个字节来进行传输,实现起来简洁方便而且非常有效。3、本发明在IIC总线接口的应用上有很大的灵活性,因为其既能完成IIC 主机的功能,也能挂接在IIC总线上完成IIC从机的操作。


图1是IIC总线接口的典型应用环境的描述图; 图2是IIC总线接口总体结构图3是本发明带CRC校验功能的IIC总线接口控制器结构图; 图4是本发明带CRC校验功能的IIC总线接口控制器中传输控制器模块详细结构图; 图5是本发明带CRC校验功能的IIC总线接口控制器中数据接收及校验模块详细结构
图6是本发明带CRC校验功能的IIC总线接口控制器中数据发送及校验模块详细结构
图7是本发明带CRC校验功能的IIC总线接口控制器的状态转换图。
具体实施例方式为了是本发明的技术方案及优点更加的清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。图1是IIC总线接口典型的应用环境,IIC总线接口的主要功能是实现高速设备与低速设备之间的数据传输。图2是IIC总线接口的总体结构图,其主要包括三大部分时钟控制、外设总线接口以及Iic总线接口控制器。其中本发明就是设计一种带CRC校验功能的IIC总线接口控制器。图3是本发明带CRC校验功能的IIC总线接口控制器结构图。作为IIC总线接口的主要模块,IIC总线接口控制器与外设总线接口中的各个功能寄存器有着密切的联系,其通过外设总线接口中的寄存器获得相应的控制配置信息以及数据信息,也会通过相应的寄存器来传输自己当前的状态信息和数据信息。而时钟控制模块为Iic接口控制器提供了的全局时钟信号。本发明带CRC校验功能的IIC总线接口控制器主要包括以下几大模块
传输控制器模块,负责IIC总线传输过程中的状态机控制,控制传输的开始/结束,控制信号的传输,响应位的发送与接收,以及数据的串并和并串转换;数据接收及校验模块, 负责接收Iic总线上传来的数据并对接收到的数据进行CRC校验;数据发送及校验模块,负责向Iic总线上发送数据并对所要发送的数据进行CRC校验;输入同步模块,负责IIC总线上所传来的时钟与本地的时钟进行同步同时也负责IIC总线上传来的数据比特流与本地时钟的同步;地址匹配模块,负责地址信息的保存与传送,当作为IIC主机时,其负责保存并发送从机的地址信息,当作为Iic从机时,其负责接收并保存主机发送过来的从机地址信息,并与自己本身的从机地址进行匹配验证。图4是本发明带CRC校验功能的IIC总线接口控制器中传输控制器模块详细结构图,传输控制器作为IIC总线接口控制器中的核心模块,主要包括传输控制状态机,用于控制IIC传输过程中的状态转换;控制开始/结束模块,用于控制IIC传输过程中的开始/结束信号,当作为IIC主机在总线上进行数据传输时,本模块用于产生并发送开始/结束信号,当作为IIC从机在总线上进行数据传输时,本模块用于检测并接收其他主机发送的开始/结束信号;控制信号传输模块,用于传输控制状态机在状态转换时发送和接收相应的控制信号;发送并转串模块,用于向Iic总线上发送数据时,将原来的并行8位字节数据转换为串行的比特流数据;接收串转并模块,用于从IIC总线上接收数据时,将串行的比特流数据转换为8位并行的字节数据;响应位发送与接收模块,用于发送和接收数据传输过程中的响应位。图5是本发明带CRC校验功能的IIC总线接口控制器中数据接收及校验模块详细结构图,数据接收及校验模块包括二级8比特数据接收缓冲器,用于二级缓存接收来的字节数据;CRC16数据校验模块,用于对第一级缓存器传来的数据进行CRC16数据校验,并对CRC16校验结果进行三级缓存,当接收到数据传输完毕信号时,第三级缓存中的CRC16结果为最终的CRC结果;CRC16码提取模块,用于在接收到数据传输完毕信号时,把接收数据的末两字节提取过来,作为整串数据的CRC16校验码,并传送到比较器中与第三级缓存中的CRC结果进行比较;比较器,将CRC16码提取模块传送来的数据与16比特三级缓存中第三级缓存中的CRC结果进行比较,并将比较的结果传送给传输控制器。其比较结果如果是不相同的,说明CRC校验错误,就要发起中断。对应用此结构的原因说明首先,为了增加数据传输的安全性与准确性,本发明为数据融入了 CRC16的数据校验,为了不破坏IIC本身的协议,因此,数据校验CRC16码是放在传输数据的最后两个字节的,其传输过程同样符合IIC协议。所以在接收数据时,接收到数据的最后两个字节就是之前所接收到数据的CRC16校验码。而从IIC总线上接收数据时,无法估计数据长度,因此这里采用了一个二级8比特接收数据缓冲器,其目的在于能够时刻保存接收到数据中的两个字节,这样接收数据的最后,缓冲器里保存的就是数据的最后两个字节,也就是前面这段数据的CRC16校验码。同时,由于从第一级缓冲器出来的数据都在进行CRC16的校验,所以在数据传输完毕时,CRC16的校验结果包括了校验所接收到数据的CRC16校验码,因此,在CRC16校验模块后用了一个16比特的三级缓存,其目的是保存之前准确的CRC16校验数据,所以这个16比特三级缓存的第三级缓存中在最后保留的数据就是本地校验的CRC16校验码。上述的校验模块的CRC16计算公式为g(x) = Xlfi+X12+X5+1,其中χ为8位数据单元。图6是本发明带CRC校验功能的IIC总线接口控制器中数据发送及校验模块详细结构图,数据发送及校验模块包括8比特数据发送缓冲器,用于存储当前要发送的数据字节;CRC16数据校验模块,用于对数据进行CRC16的数据校验,并保存校验结果于16比特寄存器;计数器与比较器,其中计数器用于对所发送的数据字节进行计数,比较器用于比对计数器中的计数与预先设定好的发送数据字节总数,当计数器的计数达到发送数据字节总数时,其就向16比特寄存器发送使能信号,此时16比特寄存器将其存储的CRC16校验码分两个字节传送到8比特发送数据缓冲器中,作为数据的末两字节发送出去。对应用此结构的原因说明通过前面所述,在IIC中融入CRC16的数据校验过程, 是将CRC16校验码作为数据的最后两个字节传送出去。而向IIC总线上发送数据时,是可以对所发送的数据的字节数进行统计的,因此为了知道数据传输的结尾,本发明采用了一个计数器与比较器的办法,将传输的字节进行计数,当计数达到发送数据字节总数时即为数据传输的结尾,此时,将CRC16的校验结果分两个字节通过8比特发送数据缓冲器传送出去,这样就做到了对数据本身的校验。上述的校验模块的CRC16计算公式为g(x) = Xlfi+X12+X5+1,其中χ为8位数据单兀。图7是本发明带CRC校验功能的IIC总线接口控制器的状态转换图,初始状态为总线空闲状态,当检测到IIC总线上有开始信号时,进入从机传输子状态;当外设总线要在 Iic总线上发起传输时,进入主机传输子状态。从机传输子状态过程
进入从机传输子状态后,首先进入接收开始信号状态,若在总线上接收到开始信号,则进入接收从机地址与传输方向状态。在接收从机地址与传输状态中,首先通过响应位发送与接收模块向主机回复响应位,然后控制地址匹配模块接收相应的字节数据,并进行比对,若接收的从机地址与本身的地址不相同,则返回空闲状态。若接收的从机地址与本身的地址相同,则检测方向位,若方向位为0,说明方向为主机向从机写数据,即从机向主机接收数据,则进入从机接收数据与校验状态;若方向位为1,说明方向为主机向从机读数据,即从机向主机发送数据,则进入从机发送数据与校验状态。在从机接收数据与校验状态中,开启数据接收及校验模块,按字节接收传送来的数据,并每接收一个字节的数据就通过响应位发送与接收模块,发送响应位给主机。当数据传输完毕时,数据的最后两个字节为数据的CRC16校验码,与CRC16校验模块中的第三级缓存所计算的CRC16校验码进行比对,若校验正确,则数据接收完毕,进入等待结束状态。若发现校验码错误,则进入发起中断状态。在从机发送数据与校验状态中,开启数据发送及校验模块,开启相应的计数器,在每字节数据发送前进行CRC16校验,并将结果保存,计数器加1,当计数器的数据等于发送数据字节总数的时候,即数据发送结束时,将CRC16校验结果分两个字节通过8比特数据发送缓冲器发送出去,即将CRC16的结果作为最后两个字节的数据发送,然后进入等待结束状态。在进入等待结束状态中,若接收到主机发送过来的结束信号,则进入总线空闲状态。在进入发起中断状态中,控制信号传输模块会向外设总线发送中断信号,以发起中断,申请软件的支持。主机传输子状态过程
进入主机传输子状态后,首先进入发送开始信号状态,此时控制开始/结束模块向总线上发送开始信号,接着进入发送从机地址与传输方向0状态。在发送从机地址与传输方向0状态中,地址匹配模块发送从机地址以及方向位, 方向位为0,即主机向从机写数据,接着等待从机的响应信号。接到响应位后,若主机要向从机写数据,则进入主机发送数据与校验状态。若主机要向从机读数据,则进入重复开始信号状态。在主机发送数据与校验状态中,开启数据发送及校验模块,开启相应的计数器,在每字节数据发送前进行CRC16校验,并将结果保存,计数器加1,当计数器的数据等于发送数据字节总数的时候,即数据发送结束时,将CRC16校验结果分两个字节通过8比特数据发送缓冲器发送出去,即将CRC16的结果作为最后两个字节的数据发送,然后进入发送结束状态。在重复开始信号状态中,控制开始/结束模块向总线上再次发送开始信号,然后进入发送从机地址与传输方向1状态。在发送从机地址与传输方向1状态中,地址匹配模块发送从机地址以及方向位, 方向位为1,即主机向从机读数据,然后进入主机接收数据与校验状态。在主机接收数据与校验状态中,开启数据接收及校验模块,按字节接收传送来的数据,并每接收一个字节的数据就通过响应位发送与接收模块,发送响应位给从机。当数据传输完毕时,数据的最后两个字节为数据的CRC16校验码,与CRC16校验模块中的第三级缓存所计算的CRC16校验码进行比对,若校验正确,则数据接收完毕,进入发送结束状态。若发现校验码错误,则进入发起中断状态。在发送结束信号状态中,控制开始/结束信号模块向从机发送结束信号后进入总线空闲状态。在进入发起中断状态中,控制信号传输模块会向外设总线发送中断信号,以发起中断,申请软件的支持。以上就是本发明带CRC校验功能的IIC总线接口控制器的状态转换过程,其中也包含了各个模块在状态转换过程中协同工作的过程。以上实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改、等同替换和改变,都落入本发明的保护范围。
权利要求
1.一种带CRC校验功能的IIC总线接口控制器,其特征在于包括传输控制器模块,负责IIC总线传输过程中的状态机控制,控制传输的开始/结束,控制信号的传输,响应位的发送与接收,以及数据的串并和并串转换;数据接收及校验模块,负责接收IIC总线上传来的数据并对接收到的数据进行CRC校验;数据发送及校验模块,负责向IIC总线上发送数据并对所要发送的数据进行CRC校验;输入同步模块,负责IIC总线上所传来的时钟与本地的时钟进行同步同时也负责IIC总线上传来的数据比特流与本地时钟的同步;地址匹配模块,负责地址信息的保存与传送,当作为IIC主机时,其负责保存并发送从机的地址信息, 当作为IIC从机时,其负责接收并保存主机发送过来的从机地址信息,并与自己本身的从机地址进行匹配验证。
2.根据权利要求1所述的IIC总线接口控制器,其特征在于所述的传输控制器模块包括传输控制状态机,用于控制IIC传输过程中的状态转换;控制开始/结束模块,用于控制IIC传输过程中的开始/结束信号,当作为IIC主机在总线上进行数据传输时,本模块用于产生并发送开始/结束信号,当作为IIC从机在总线上进行数据传输时,本模块用于检测并接收其他主机发送的开始/结束信号;控制信号传输模块,用于传输控制状态机在状态转换时发送和接收相应的控制信号;发送并转串模块,用于向Iic总线上发送数据时,将原来的并行8位字节数据转换为串行的比特流数据;接收串转并模块,用于从IIC总线上接收数据时,将串行的比特流数据转换为8位并行的字节数据;响应位发送与接收模块,用于发送和接收数据传输过程中的响应位。
3.根据权利要求1所述的IIC总线接口控制器,其特征在于所述的数据接收及校验模块包括二级8比特数据接收缓冲器,用于二级缓存接收来的字节数据;CRC16数据校验模块,用于对第一级缓存器传来的数据进行CRC16数据校验,并对CRC16校验结果进行三级缓存,当接收到数据传输完毕信号时,第三级缓存中的CRC16结果为最终的CRC结果;CRC16 码提取模块,用于在接收到数据传输完毕信号时,把接收数据的末两字节提取过来,作为整串数据的CRC16校验码,并传送到比较器中与第三级缓存中的CRC结果进行比较;比较器, 将CRC16码提取模块传送来的数据与16比特三级缓存中第三级缓存中的CRC结果进行比较,并将比较的结果传送给传输控制器;其比较结果如果是不相同的,说明CRC校验错误, 就要发起中断。
4.根据权利要求1所述的IIC总线接口控制器,其特征在于所述的数据发送及校验模块包括8比特数据发送缓冲器,用于存储当前要发送的数据字节;CRC16数据校验模块,用于对数据进行CRC16的数据校验,并保存校验结果于16比特寄存器;计数器与比较器,其中计数器用于对所发送的数据字节进行计数,比较器用于比对计数器中的计数与预先设定好的发送数据字节总数,当计数器的计数达到发送数据字节总数时,其就向16比特寄存器发送使能信号,此时16比特寄存器将其存储的CRC16校验码分两个字节传送到8比特发送数据缓冲器中,作为数据的末两字节发送出去。
5.根据权利要求2所述的IIC总线接口控制器,其特征在于所述的传输控制状态机的初始状态为总线空闲状态,在总线空闲状态中,当检测到IIC总线上有开始信号时,进入从机传输子状态;当外设总线要在IIC总线上发起传输时,进入主机传输子状态。
6.根据权利要求5所述的IIC总线接口控制器,其特征在于所述的从机传输子状态的具体过程是进入从机传输子状态后,首先进入接收开始信号状态,若在总线上接收到开始信号,则进入接收从机地址与传输方向状态;在接收从机地址与传输状态中,首先通过响应位发送与接收模块向主机回复响应位, 然后控制地址匹配模块接收相应的字节数据,并进行比对,若接收的从机地址与本身的地址不相同,则返回空闲状态;若接收的从机地址与本身的地址相同,则检测方向位,若方向位为0,说明方向为主机向从机写数据,即从机向主机接收数据,则进入从机接收数据与校验状态;若方向位为1,说明方向为主机向从机读数据,即从机向主机发送数据,则进入从机发送数据与校验状态;在从机接收数据与校验状态中,开启数据接收及校验模块,按字节接收传送来的数据, 并每接收一个字节的数据就通过响应位发送与接收模块,发送响应位给主机;当数据传输完毕时,数据的最后两个字节为数据的CRC16校验码,与CRC16校验模块中的第三级缓存所计算的CRC16校验码进行比对,若校验正确,则数据接收完毕,进入等待结束状态;若发现校验码错误,则进入发起中断状态;在从机发送数据与校验状态中,开启数据发送及校验模块,开启相应的计数器,在每字节数据发送前进行CRC16校验,并将结果保存,计数器加1,当计数器的数据等于发送数据字节总数的时候,即数据发送结束时,将CRC16校验结果分两个字节通过8比特数据发送缓冲器发送出去,即将CRC16的结果作为最后两个字节的数据发送,然后进入等待结束状态; 在进入等待结束状态中,若接收到主机发送过来的结束信号,则进入总线空闲状态; 在进入发起中断状态中,控制信号传输模块会向外设总线发送中断信号,以发起中断, 申请软件的支持。
7.根据权利要求5所述的IIC总线接口控制器,其特征在于所述的主机传输子状态的具体过程是进入主机传输子状态后,首先进入发送开始信号状态,此时控制开始/结束模块向总线上发送开始信号,接着进入发送从机地址与传输方向0状态;在发送从机地址与传输方向0状态中,地址匹配模块发送从机地址以及方向位,方向位为0,即主机向从机写数据,接着等待从机的响应信号;接到响应位后,若主机要向从机写数据,则进入主机发送数据与校验状态;若主机要向从机读数据,则进入重复开始信号状态;在主机发送数据与校验状态中,开启数据发送及校验模块,开启相应的计数器,在每字节数据发送前进行CRC16校验,并将结果保存,计数器加1,当计数器的数据等于发送数据字节总数的时候,即数据发送结束时,将CRC16校验结果分两个字节通过8比特数据发送缓冲器发送出去,即将CRC16的结果作为最后两个字节的数据发送,然后进入发送结束状态; 在重复开始信号状态中,控制开始/结束模块向总线上再次发送开始信号,然后进入发送从机地址与传输方向1状态;在发送从机地址与传输方向1状态中,地址匹配模块发送从机地址以及方向位,方向位为1,即主机向从机读数据,然后进入主机接收数据与校验状态;在主机接收数据与校验状态中,开启数据接收及校验模块,按字节接收传送来的数据, 并每接收一个字节的数据就通过响应位发送与接收模块,发送响应位给从机;当数据传输完毕时,数据的最后两个字节为数据的CRC16校验码,与CRC16校验模块中的第三级缓存所计算的CRC16校验码进行比对,若校验正确,则数据接收完毕,进入发送结束状态;若发现校验码错误,则进入发起中断状态;在发送结束信号状态中,控制开始/结束信号模块向从机发送结束信号后进入总线空闲状态;在进入发起中断状态中,控制信号传输模块会向外设总线发送中断信号,以发起中断, 申请软件的支持。
全文摘要
本发明公开了一种带CRC校验功能的IIC总线接口控制器。现有的IIC总线的传输在数据的安全性和准确性上无法得到保证。本发明中的传输控制器模块,负责IIC总线传输过程中的状态机控制;数据接收及校验模块,负责接收IIC总线上传来的数据;数据发送及校验模块,负责向IIC总线上发送数据;输入同步模块,负责IIC总线上所传来的时钟与本地的时钟进行同步;地址匹配模块,负责地址信息的保存与传送,当作为IIC主机时,其负责保存并发送从机的地址信息,当作为IIC从机时,其负责接收并保存主机发送过来的从机地址信息,并与自己本身的从机地址进行匹配验证。本发明保证了数据传输过程中的安全性和准确性。
文档编号G06F11/08GK102262572SQ20111020158
公开日2011年11月30日 申请日期2011年7月19日 优先权日2011年7月19日
发明者冯文杰, 沈海斌, 赖英超 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1