CN102262572A - 一种带crc校验功能的iic总线接口控制器 - Google Patents
一种带crc校验功能的iic总线接口控制器 Download PDFInfo
- Publication number
- CN102262572A CN102262572A CN2011102015845A CN201110201584A CN102262572A CN 102262572 A CN102262572 A CN 102262572A CN 2011102015845 A CN2011102015845 A CN 2011102015845A CN 201110201584 A CN201110201584 A CN 201110201584A CN 102262572 A CN102262572 A CN 102262572A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- state
- transmission
- slave
- 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.)
- Granted
Links
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明公开了一种带CRC校验功能的IIC总线接口控制器。现有的IIC总线的传输在数据的安全性和准确性上无法得到保证。本发明中的传输控制器模块,负责IIC总线传输过程中的状态机控制;数据接收及校验模块,负责接收IIC总线上传来的数据;数据发送及校验模块,负责向IIC总线上发送数据;输入同步模块,负责IIC总线上所传来的时钟与本地的时钟进行同步;地址匹配模块,负责地址信息的保存与传送,当作为IIC主机时,其负责保存并发送从机的地址信息,当作为IIC从机时,其负责接收并保存主机发送过来的从机地址信息,并与自己本身的从机地址进行匹配验证。本发明保证了数据传输过程中的安全性和准确性。
Description
技术领域
本发明涉及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) = x16+x12+x5+1,其中x为8位数据单元。
图6是本发明带CRC校验功能的IIC总线接口控制器中数据发送及校验模块详细结构图,数据发送及校验模块包括:8比特数据发送缓冲器,用于存储当前要发送的数据字节;CRC16数据校验模块,用于对数据进行CRC16的数据校验,并保存校验结果于16比特寄存器;计数器与比较器,其中计数器用于对所发送的数据字节进行计数,比较器用于比对计数器中的计数与预先设定好的发送数据字节总数,当计数器的计数达到发送数据字节总数时,其就向16比特寄存器发送使能信号,此时16比特寄存器将其存储的CRC16校验码分两个字节传送到8比特发送数据缓冲器中,作为数据的末两字节发送出去。
对应用此结构的原因说明:通过前面所述,在IIC中融入CRC16的数据校验过程,是将CRC16校验码作为数据的最后两个字节传送出去。而向IIC总线上发送数据时,是可以对所发送的数据的字节数进行统计的,因此为了知道数据传输的结尾,本发明采用了一个计数器与比较器的办法,将传输的字节进行计数,当计数达到发送数据字节总数时即为数据传输的结尾,此时,将CRC16的校验结果分两个字节通过8比特发送数据缓冲器传送出去,这样就做到了对数据本身的校验。
上述的校验模块的CRC16计算公式为:g(x) = x16+x12+x5+1,其中x为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总线接口控制器的状态转换过程,其中也包含了各个模块在状态转换过程中协同工作的过程。
以上实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改、等同替换和改变,都落入本发明的保护范围。
Claims (7)
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校验码进行比对,若校验正确,则数据接收完毕,进入发送结束状态;若发现校验码错误,则进入发起中断状态;
在发送结束信号状态中,控制开始/结束信号模块向从机发送结束信号后进入总线空闲状态;
在进入发起中断状态中,控制信号传输模块会向外设总线发送中断信号,以发起中断,申请软件的支持。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110201584 CN102262572B (zh) | 2011-07-19 | 2011-07-19 | 一种带crc校验功能的iic总线接口控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110201584 CN102262572B (zh) | 2011-07-19 | 2011-07-19 | 一种带crc校验功能的iic总线接口控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102262572A true CN102262572A (zh) | 2011-11-30 |
CN102262572B CN102262572B (zh) | 2013-05-08 |
Family
ID=45009209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110201584 Expired - Fee Related CN102262572B (zh) | 2011-07-19 | 2011-07-19 | 一种带crc校验功能的iic总线接口控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102262572B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567133A (zh) * | 2011-12-31 | 2012-07-11 | 广州视声电子科技有限公司 | 一种通过中断实现通信方法、i2c器件及i2c系统 |
CN105786639A (zh) * | 2016-03-01 | 2016-07-20 | 上海斐讯数据通信技术有限公司 | 一种i2c总线数据的传输方法及系统 |
CN105786753A (zh) * | 2016-02-22 | 2016-07-20 | 上海斐讯数据通信技术有限公司 | 一种i2c总线上的主从设备间的传输数据的方法及设备 |
CN105843549A (zh) * | 2014-11-13 | 2016-08-10 | 旺宏电子股份有限公司 | 用于执行错误侦测协议的存储器装置及方法 |
CN105975425A (zh) * | 2016-04-28 | 2016-09-28 | 英业达科技有限公司 | I2c设备通信方法及系统 |
CN107229858A (zh) * | 2017-05-19 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种支持crc8校验的PECI总线主从机验证系统及验证方法 |
CN108259286A (zh) * | 2016-12-29 | 2018-07-06 | 广州周立功单片机科技有限公司 | 主机与射频读卡器的i2c通信方法和系统 |
CN109471818A (zh) * | 2018-11-22 | 2019-03-15 | 武汉虹识技术有限公司 | 总线结构实现方法及装置 |
CN110058706A (zh) * | 2019-04-19 | 2019-07-26 | 西安微电子技术研究所 | 一种适应于长距离传输的ps2控制器及实现方法 |
CN110209622A (zh) * | 2019-05-14 | 2019-09-06 | 大连理工大学 | 一种通过串口传输多组信息的通讯方法与系统 |
CN112104537A (zh) * | 2020-03-28 | 2020-12-18 | 上海芯郡电子科技有限公司 | 一种通信控制器 |
CN113312286A (zh) * | 2020-02-26 | 2021-08-27 | 北京君正集成电路股份有限公司 | 一种通过GPIO模拟i2c协议实现打印头温度检测的方法 |
CN113993084A (zh) * | 2021-09-29 | 2022-01-28 | 浙江大学 | 一种室内外一体化电磁仿真指纹库的构建方法 |
CN114237973A (zh) * | 2022-02-24 | 2022-03-25 | 苏州云途半导体有限公司 | 一种串行通信总线数据校验方法和系统 |
CN116166469A (zh) * | 2022-11-08 | 2023-05-26 | 湖南毂梁微电子有限公司 | 数据传输电路及数据传输方法 |
CN116578521A (zh) * | 2023-07-14 | 2023-08-11 | 深圳中安辰鸿技术有限公司 | 一种单总线通信方法、装置、系统及设备 |
CN117492405A (zh) * | 2024-01-02 | 2024-02-02 | 东方电气风电股份有限公司 | 一种基于现场总线的风电机组控制系统校验方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1264081A (zh) * | 1999-02-18 | 2000-08-23 | 国际商业机器公司 | 将生产测试接口接至全局串行总线的方法和装置 |
US6728908B1 (en) * | 1999-11-18 | 2004-04-27 | California Institute Of Technology | I2C bus protocol controller with fault tolerance |
CN1821913A (zh) * | 2006-01-26 | 2006-08-23 | 中控科技集团有限公司 | 基于i2c的通信系统及通信方法 |
CN201111065Y (zh) * | 2007-08-03 | 2008-09-03 | 深圳艾科创新微电子有限公司 | 一种基于51单片机的ic卡读写控制器 |
CN101482857A (zh) * | 2008-01-09 | 2009-07-15 | 环隆电气股份有限公司 | 信息传递系统及信息传递方法 |
-
2011
- 2011-07-19 CN CN 201110201584 patent/CN102262572B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1264081A (zh) * | 1999-02-18 | 2000-08-23 | 国际商业机器公司 | 将生产测试接口接至全局串行总线的方法和装置 |
US6728908B1 (en) * | 1999-11-18 | 2004-04-27 | California Institute Of Technology | I2C bus protocol controller with fault tolerance |
CN1821913A (zh) * | 2006-01-26 | 2006-08-23 | 中控科技集团有限公司 | 基于i2c的通信系统及通信方法 |
CN201111065Y (zh) * | 2007-08-03 | 2008-09-03 | 深圳艾科创新微电子有限公司 | 一种基于51单片机的ic卡读写控制器 |
CN101482857A (zh) * | 2008-01-09 | 2009-07-15 | 环隆电气股份有限公司 | 信息传递系统及信息传递方法 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567133B (zh) * | 2011-12-31 | 2015-03-04 | 广州视声电子科技有限公司 | 一种通过中断实现通信方法、i2c器件及i2c系统 |
CN102567133A (zh) * | 2011-12-31 | 2012-07-11 | 广州视声电子科技有限公司 | 一种通过中断实现通信方法、i2c器件及i2c系统 |
CN105843549A (zh) * | 2014-11-13 | 2016-08-10 | 旺宏电子股份有限公司 | 用于执行错误侦测协议的存储器装置及方法 |
CN105786753A (zh) * | 2016-02-22 | 2016-07-20 | 上海斐讯数据通信技术有限公司 | 一种i2c总线上的主从设备间的传输数据的方法及设备 |
CN105786639A (zh) * | 2016-03-01 | 2016-07-20 | 上海斐讯数据通信技术有限公司 | 一种i2c总线数据的传输方法及系统 |
CN105975425A (zh) * | 2016-04-28 | 2016-09-28 | 英业达科技有限公司 | I2c设备通信方法及系统 |
CN108259286B (zh) * | 2016-12-29 | 2020-11-17 | 广州周立功单片机科技有限公司 | 主机与射频读卡器的i2c通信方法和系统 |
CN108259286A (zh) * | 2016-12-29 | 2018-07-06 | 广州周立功单片机科技有限公司 | 主机与射频读卡器的i2c通信方法和系统 |
CN107229858A (zh) * | 2017-05-19 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种支持crc8校验的PECI总线主从机验证系统及验证方法 |
CN107229858B (zh) * | 2017-05-19 | 2020-04-03 | 郑州云海信息技术有限公司 | 一种支持crc8校验的PECI总线主从机验证系统及验证方法 |
CN109471818A (zh) * | 2018-11-22 | 2019-03-15 | 武汉虹识技术有限公司 | 总线结构实现方法及装置 |
CN110058706A (zh) * | 2019-04-19 | 2019-07-26 | 西安微电子技术研究所 | 一种适应于长距离传输的ps2控制器及实现方法 |
CN110058706B (zh) * | 2019-04-19 | 2022-08-02 | 西安微电子技术研究所 | 一种适应于长距离传输的ps2控制器及实现方法 |
CN110209622A (zh) * | 2019-05-14 | 2019-09-06 | 大连理工大学 | 一种通过串口传输多组信息的通讯方法与系统 |
CN110209622B (zh) * | 2019-05-14 | 2022-09-06 | 大连理工大学 | 一种通过串口传输多组信息的通讯方法与系统 |
CN113312286A (zh) * | 2020-02-26 | 2021-08-27 | 北京君正集成电路股份有限公司 | 一种通过GPIO模拟i2c协议实现打印头温度检测的方法 |
CN112104537B (zh) * | 2020-03-28 | 2022-04-19 | 上海芯郡电子科技有限公司 | 一种通信控制器 |
CN112104537A (zh) * | 2020-03-28 | 2020-12-18 | 上海芯郡电子科技有限公司 | 一种通信控制器 |
CN113993084A (zh) * | 2021-09-29 | 2022-01-28 | 浙江大学 | 一种室内外一体化电磁仿真指纹库的构建方法 |
CN113993084B (zh) * | 2021-09-29 | 2023-03-24 | 浙江大学 | 一种室内外一体化电磁仿真指纹库的构建方法 |
CN114237973A (zh) * | 2022-02-24 | 2022-03-25 | 苏州云途半导体有限公司 | 一种串行通信总线数据校验方法和系统 |
CN114237973B (zh) * | 2022-02-24 | 2022-05-06 | 苏州云途半导体有限公司 | 一种串行通信总线数据校验方法和系统 |
CN116166469A (zh) * | 2022-11-08 | 2023-05-26 | 湖南毂梁微电子有限公司 | 数据传输电路及数据传输方法 |
CN116166469B (zh) * | 2022-11-08 | 2023-06-20 | 湖南毂梁微电子有限公司 | 数据传输电路及数据传输方法 |
CN116578521A (zh) * | 2023-07-14 | 2023-08-11 | 深圳中安辰鸿技术有限公司 | 一种单总线通信方法、装置、系统及设备 |
CN117492405A (zh) * | 2024-01-02 | 2024-02-02 | 东方电气风电股份有限公司 | 一种基于现场总线的风电机组控制系统校验方法 |
CN117492405B (zh) * | 2024-01-02 | 2024-03-08 | 东方电气风电股份有限公司 | 一种基于现场总线的风电机组控制系统校验方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102262572B (zh) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102262572B (zh) | 一种带crc校验功能的iic总线接口控制器 | |
CN103473196B (zh) | 一种1553b总线与星内设备总线间的遥测遥控数据传输装置 | |
CN102647320B (zh) | 适用于高速1553总线协议控制的集成电路 | |
CN102984059B (zh) | 千兆以太网冗余网卡及其链路切换条件判定结果控制方法 | |
CN103916252A (zh) | 一种基于fpga的高带宽以太网ip核 | |
CN105119907A (zh) | 一种基于FPGA的BiSS-C通信协议方法 | |
CN102231143A (zh) | 一种安全可复用spi外围接口电路 | |
CN105187227A (zh) | 一种应用rmap协议实现can总线设备即插即用的装置 | |
CN101087235A (zh) | 一种基于fpga的多功能通信接口转换设备和方法 | |
CN102193581A (zh) | 电路系统和用于连接电路系统的同步时钟域的方法 | |
CN104901859A (zh) | 一种axi/pcie总线转换装置 | |
CN105786639A (zh) | 一种i2c总线数据的传输方法及系统 | |
CN205038640U (zh) | 一种解决spi总线通信延时的spi设备 | |
CN103577378A (zh) | 一种全双工异步串行通信方法 | |
CN104714907A (zh) | 一种pci总线转换为isa和apb总线设计方法 | |
CN103107862B (zh) | 逻辑器件及其mdio数据发送方法 | |
CN104216317B (zh) | 一种用于提高rs485总线数据传输可靠性的使能信号控制电路 | |
CN101655825B (zh) | 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法 | |
CN103219986B (zh) | 一种无极性收发单元及rs-485通讯电路 | |
CN101415027A (zh) | 基于hdlc协议的通讯模块及数据实时转发存储控制方法 | |
CN101534259B (zh) | 异步通信控制器及其控制方法 | |
CN103226531A (zh) | 一种双端口外设配置接口电路 | |
CN201054609Y (zh) | 基于光纤的高速串行工业实时通信总线系统 | |
CN204390224U (zh) | 一种基于fpga的容错主从同步串行通讯系统 | |
CN202077059U (zh) | 一种profibus协议转modbus协议的总线桥 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130508 Termination date: 20150719 |
|
EXPY | Termination of patent right or utility model |