一种通讯传输控制装置及实现通讯协议控制的方法

文档序号:7601248阅读:123来源:国知局
专利名称:一种通讯传输控制装置及实现通讯协议控制的方法
技术领域
本发明涉及通讯协议控制技术,尤指一种能同时兼容I2C和SPI的通讯传输控制装置及实现通讯协议控制的方法。
背景技术
I2C(Inter-IC)和SPI(Serial Peripheral Interface)是常见的两种不同机制的串口通讯协议,其中,I2C具有多主控功能,是一种具有多端控制能力的双线双向串行数据总线系统,能用于替代标准的并行总线,能连接的各种集成电路和功能模块,通常根据地址码的位数确定能支持的设备数。SPI是一个同步串行外设接口,用于CPU与各种外围器件进行全双工、同步串行通讯,SPI可以同时发出和接收串行数据,只需四条线就能完成与各种外围器件的通讯。一般而言,I2C器件主要用于低速小数据量传输的串口通讯;而SPI器件用于高速大数据量传输的串口通讯。
在实际应用中,I2C或SPI都是由控制器来控制完成数据通讯的,所述控制器一般由中央处理单元(CPU)和寄存器组成。
对于I2C器件,通常采用的通讯方式是这样当有数据要传输时,控制器先发送一个表示通讯开始的标志;接着发送本次通讯的控制位,包括器件地址和方向,其中器件地址是指目标器件的地址,方向可通过读或写表示;之后再发送器件内部地址,即数据要存储至的位置或要读取数据所在的位置;然后,就进行数据通讯传输数据;数据传输结束后,发送一个表示通讯结束的标志,结束本次通讯。
对于SPI器件,通常采用的通讯方式是这样当有数据要传输时,控制器先发出命令字,比如读或写指令;接着发送器件内部地址,即数据要存储至的位置或要读取数据所在的位置;之后,就进行数据通讯传输数据。在利用SPI进行串口通讯时,需要在通讯开始前开启SPI通道,通讯结束后关闭SPI通道。
目前的具体应用中,已有控制器件只能支持I2C和SPI两种通讯协议中的一种,不能相互兼容。如此,用户不能根据实际通讯的需要任意选择或切换不同的通讯方式,在使用上给用户带来很多不便。

发明内容
有鉴于此,本发明的主要目的在于提供一种通讯传输控制装置,使其能同时支持I2C和SPI两种协议的通讯,为用户提供方便。
本发明的另一目的在于提供一种实现通讯协议控制的方法,使用户能方便地根据不同需求在I2C和SPI两种协议之间任意选择和快速切换。
为达到上述目的,本发明的技术方案是这样实现的一种通讯传输控制装置,该装置包括I2C通讯模块,用于根据控制器的控制信号,采用I2C协议完成数据传输;SPI通讯模块,用于根据控制器的控制信号,采用SPI协议完成数据传输;控制器,用于接收数据传输命令,确定当前采用的通讯协议,并向所确定通讯协议对应的通讯模块发送控制信号;所述I2C通讯模块和SPI通讯模块通过同一通讯端口与外部器件进行交互。
其中,所述控制器与自身所在的通讯设备的核心处理器相连,接收核心处理器发来的数据传输命令,并向核心处理器产生中断。所述控制器由中央处理单元和至少一个寄存器组成,所述寄存器至少包括存储当前所用通讯协议的通讯协议寄存器,以及表明是否有数据要发送的数据传输字节数寄存器。所述通讯协议寄存器中的配置由外部的选择跳线、或选择开关设置。所述控制器与自身所在的通讯设备的核心处理器相连,且所述控制器中包括存储当前所用通讯协议的通讯协议寄存器,该通讯协议寄存器中的配置由核心处理器设置。
所述控制器中进一步包括控制器状态机,用于实现数据传输控制,该状态机包括等待状态、启动状态、控制位传输状态、地址传输状态、数据传输状态以及结束状态。
本发明还提供一种实现通讯协议控制的方法,该方法包括以下步骤a.控制器收到数据传送命令后,根据自身通讯协议寄存器中的配置确定当前所用的通讯协议,并根据所确定的通讯协议产生对应的开启控制信号;b.以所确定的通讯协议向外部器件传送控制位,然后判断是否有数据要传送,如果没有数据要传送,则根据所确定的通讯协议产生对应的通讯结束信号,结束当前处理流程;如果有数据要传送,再判断是否传送地址信息,如果传送,则以所确定的通讯协议向外部器件传送地址信息,然后执行步骤c,否则,直接执行步骤c;c.以所确定的通讯协议向外部器件传送数据,并在数据传送完毕后,根据所确定通讯协议产生对应的通讯结束信号。
其中,所确定通讯协议为I2C协议或为SPI协议。
该方法进一步包括由控制器自身所在通讯设备的核心处理器设置通讯协议寄存器中的配置参数;或是通过外部的选择跳线、或选择开关设置通讯协议寄存器中的配置参数。
该方法进一步包括控制器在产生通讯结束信号的同时,通过中断方式通知自身所在通讯设备的核心通讯结束。
本发明所提供的通讯传输控制装置以及实现通讯协议控制的方法,在进行通讯时,底层仍通过I2C或SPI协议进行数据的传输,而控制器采用统一的方式进行通讯传输控制,如此,使一个控制器能同时支持I2C和SPI两种协议,可实现I2C或SPI两种协议的兼容,使得用户能方便地根据不同需求在两种通讯协议之间任意选择或快速切换。


图1为本发明装置的组成结构示意图;图2为本发明控制器中的状态机示意图。
具体实施例方式
本发明的核心思想是在底层传输时仍分别使用I2C和SPI协议,但在协议控制时使用同一个控制器进行统一的处理。也就是说,本发明针对I2C和SPI两种协议,获取两种协议通讯信号的共同特征,然后在控制器中采用状态机的方式实现通讯控制,复用通讯端口。
虽然在硬件上I2C和SPI通讯过程中的时序和应答方式不一样,但从控制器的角度来看,二者的通讯方式是可以统一的,两种协议所发送的信号之间存在共同特征。具体体现为在控制器中,本发明的通讯方式可统一为表一所示的顺序

表 一其中,对于I2C的器件,开始对应于通讯开始标志,通过物理层数据线和时钟线的变化来实现;控制位对应于本次通讯的控制位,即器件地址和读/写;地址对应于器件内地址,即数据要存储或读取的位置;数据对应于数据通讯阶段;结束对应于通讯结束标志,通过物理层的数据线和时钟线的变化来实现。对于SPI的器件,开始相当于开启SPI的通道,通过片选和时钟信号来实现;控制位相当于命令字;地址对应于器件内部地址,即数据要存储或读取的位置;数据对应于数据通讯阶段;结束相当于关闭SPI通道,也通过片选和时钟信号来实现。这样,不同的通讯协议就可以统一进行。同时,地址的长度和数据传输的长度可由控制器内部的寄存器进行控制,从而支持各种不同容量的I2C器件或SPI器件和不同数据量的传输。
基于上述原理,本发明提供了一种通讯传输控制装置,如图1所示,包括控制器10、I2C通讯模块11和SPI通讯模块12。其中,I2C通讯模块11和SPI通讯模块12分别负责采用I2C协议或SPI协议进行数据传输,可直接采用现有技术中的I2C协议通讯模块和SPI协议通讯模块。控制器10用于接收微处理器(图中未示)发来的传输数据命令,比如发送数据命令或接收数据命令,根据自身寄存器中的配置确定控制I2C通讯模块完成数据传输还是控制SPI通讯模块完成数据传输,并按统一的通讯方式控制所确定的通讯模块进行数据传输,且在数据传输结束后以中断方式通知微处理器本次通讯结束。这里,所述的微处理器是本发明通讯传输控制装置所在的通讯设备的核心处理器。
所述控制器10由CPU和若干个对应不同功能的寄存器组成,其中,CPU用于完成所有的处理操作,包括接收命令、生成控制信号、产生中断等等;所述对应不同功能的寄存器包括但不限于地址寄存器、地址传输字节数寄存器、数据寄存器、数据传输字节数寄存器、控制位寄存器等,不同的寄存器中存储有对应不同功能实现所需的配置参数,地址传输字节数寄存器和数据传输字节数寄存器为零时,分别表示没有地址传输、没有数据传输。除此以外,本发明中还专门使用一寄存器存储当前选择的通讯协议对应的配置参数值,可称该寄存器为通讯协议寄存器,该通讯协议寄存器中的参数值可以通过微处理器根据需要设置,也可以通过通讯传输控制装置外部的选择跳线或选择开关等硬件直接设置。
该通讯传输控制装置无论以I2C协议传输数据还是以SPI协议传输数据,均采用同一的通讯端口13与外部器件进行交互,即两种协议的通讯模块复用同一通讯端口。
根据图1所示的结构,本发明通讯传输控制装置的工作原理是a)控制器10接收微处理器发来的传输数据命令后,以发送数据命令为例,控制器10读取自身通讯协议寄存器中的配置参数值,确定本次数据发送所使用的通讯协议,然后生成对应的开启控制信号启动相应的通讯模块,比如如果通讯协议寄存器中的配置参数表示采用I2C协议发送数据,则控制器10就控制数据线和时钟线变化,如将数据线和时钟线上的信号置为高;如果通讯协议寄存器中的配置参数表示采用SPI协议发送数据,则控制器10就控制片选信号和时钟信号变化,如将片选信号和时钟信号置为高等等。
b)启动相应通讯模块后,控制器10就发送控制位,对于I2C就是发送器件地址和读/写,对于SPI就是发送命令字;之后,控制器10判断是否有数据要发送,如果没有,就直接产生相应的结束控制信号发给对应的通讯模块,如果有数据要发送,再判断是否传送地址信息,如果传送地址,就继续通过相应的通讯模块发送器件内部地址给外部器件,接着传输数据,在数据传输完毕后,再产生相应的结束控制信号发给对应的通讯模块,否则,直接传输数据,并在数据传输完毕后,产生相应的结束控制信号发给对应的通讯模块。
这里,结束控制信号同样是通过控制数据线和时钟线变化,或片选信号和时钟信号的变化来实现。所述判断是否有数据要发送也是控制器10通过读取自身相应寄存器中的配置参数确定的,该寄存器就是数据传输字节数寄存器,其中的配置参数表示是否有数据要传送,该数据传输字节数寄存器中的配置参数可由微处理器设置。
对于本发明中所述的控制器,采用状态机的方式实现控制,控制器状态机包括等待状态、启动状态、控制位传输状态、地址传输状态、数据传输状态和结束状态,具体参照图2所示控制器状态机在没有通讯的情况下处于等待状态,该状态下,可以修改控制器内部的各个寄存器;并且,可通过设定数据传输和地址传输的字节数来决定一次通讯的通讯方式,如果字节设置为零,则没有相应的状态。此种状态下,如果收到数据传送命令,则进入启动状态。具体实现可设置一开始标志位,如果开始标志位置位,比如将开始标志位置为高则启动通讯,然后状态机进入到启动状态,如果开始标志位处于复位,仍停留在等待状态。
在启动状态下,控制器产生开启控制信号启动I2C或SPI通讯模块的通讯,这里,控制器根据自身通讯协议寄存器中的配置参数确定启动I2C通讯模块还是SPI通讯模块,如果启动I2C通讯模块,则通过控制物理层的数据线和时钟线变化作为开启控制信号,如果启动SPI通讯模块,则通过控制片选信号和时钟信号变化作为开启控制信号;然后,控制器状态机根据I2C通讯模块或SPI通讯模块产生的启动状态结束信号,进入控制位传输状态。
在控制位传输状态下,I2C通讯模块或SPI通讯模块获取控制器中的通讯控制位并传送给外部器件,在传送完控制位之后,I2C通讯模块或SPI通讯模块产生控制位发送结束信号。此时,控制器根据自身数据传输字节数寄存器中的配置参数,判断是否有数据需要传送,如果发现本次通讯不需要传送数据,则控制器状态机直接跳向结束状态;如果有数据要传送,则判断是否需要传送地址信息,如果需要,则进入地址传输状态,否则直接跳入数据传输状态。这里,是否有地址信息需要传送,可以根据地址传输字节数寄存器是否为零来确定;同样,是否有数据要传送,也可以根据数据传输字节数寄存器是否为零来确定。
在地址传输状态下,控制器控制I2C通讯模块或SPI通讯模块传输器件内部地址给外部器件,传输完毕后进入到数据传输状态。其中,传输地址的字节数可通过修改控制器的地址寄存器来实现。
在数据传输状态下,控制器控制I2C通讯模块或SPI通讯模块传输数据,数据传输完毕后,进入结束状态。在该状态中,控制器根据预先设定的传输字节传输相应的字节,数据可以是向外部器件写或是从外部器件读入。这里,也可以设置一传输结束标志位,如果传输结束标志位置位,说明数据传输完毕,则进入结束状态;如果传输结束标志位处于复位,说明数据未传输完,则仍停留在数据传输状态。
在结束状态下,控制器对开始标志位复位,并产生相应的通讯结束标志,即置结束标志位,对I2C则通过控制物理层的数据线和时钟线变化作为开启控制信号;对SPI则通过控制片选信号和时钟信号变化作为开启控制信号,然后跳入等待状态。
控制器在产生通讯结束标志的同时,可通过中断方式通知微处理器通讯结束,微处理器收到中断之后对通讯结束标志位复位。
本发明在底层仍通过I2C或SPI协议完成数据的传输,而在控制器中通过状态机以统一的方式对通讯传输进行处理,进而能实现I2C和SPI协议的兼容。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种通讯传输控制装置,其特征在于,该装置包括I2C通讯模块,用于根据控制器的控制信号,采用I2C协议完成数据传输;SPI通讯模块,用于根据控制器的控制信号,采用SPI协议完成数据传输;控制器,用于接收数据传输命令,确定当前采用的通讯协议,并向所确定通讯协议对应的通讯模块发送控制信号;所述I2C通讯模块和SPI通讯模块通过同一通讯端口与外部器件进行交互。
2.根据权利要求1所述的通讯传输控制装置,其特征在于,所述控制器与自身所在的通讯设备的核心处理器相连,接收核心处理器发来的数据传输命令,并向核心处理器产生中断。
3.根据权利要求1或2所述的通讯传输控制装置,其特征在于,所述控制器由中央处理单元和至少一个寄存器组成,所述寄存器至少包括存储当前所用通讯协议的通讯协议寄存器,以及表明是否有数据要发送的数据传输字节数寄存器。
4.根据权利要求3所述的通讯传输控制装置,其特征在于,所述通讯协议寄存器中的配置由外部的选择跳线、或选择开关设置。
5.根据权利要求1所述的通讯传输控制装置,其特征在于,所述控制器与自身所在的通讯设备的核心处理器相连,且所述控制器中包括存储当前所用通讯协议的通讯协议寄存器,该通讯协议寄存器中的配置由核心处理器设置。
6.根据权利要求1或2所述的通讯传输控制装置,其特征在于,所述控制器中进一步包括控制器状态机,用于实现数据传输控制,该状态机包括等待状态、启动状态、控制位传输状态、地址传输状态、数据传输状态以及结束状态。
7.一种实现通讯协议控制的方法,其特征在于,该方法包括以下步骤a.控制器收到数据传送命令后,根据自身通讯协议寄存器中的配置确定当前所用的通讯协议,并根据所确定的通讯协议产生对应的开启控制信号;b.以所确定的通讯协议向外部器件传送控制位,然后判断是否有数据要传送,如果没有数据要传送,则根据所确定的通讯协议产生对应的通讯结束信号,结束当前处理流程;如果有数据要传送,再判断是否传送地址信息,如果传送,则以所确定的通讯协议向外部器件传送地址信息,然后执行步骤c,否则,直接执行步骤c;c.以所确定的通讯协议向外部器件传送数据,并在数据传送完毕后,根据所确定通讯协议产生对应的通讯结束信号。
8.根据权利要求7所述的方法,其特征在于,所确定通讯协议为I2C协议或为SPI协议。
9.根据权利要求7或8所述的方法,其特征在于,该方法进一步包括由控制器自身所在通讯设备的核心处理器设置通讯协议寄存器中的配置参数;或是通过外部的选择跳线、或选择开关设置通讯协议寄存器中的配置参数。
10.根据权利要求7或8所述的方法,其特征在于,该方法进一步包括控制器在产生通讯结束信号的同时,通过中断方式通知自身所在通讯设备的核心处理器通讯结束。
全文摘要
本发明公开了一种通讯传输控制装置,该装置包括I2C通讯模块,用于根据控制器的控制信号,采用I2C协议完成数据传输;SPI通讯模块,用于根据控制器的控制信号,采用SPI协议完成数据传输;控制器,用于接收数据传输命令,确定当前采用的通讯协议,并向所确定通讯协议对应的通讯模块发送控制信号;所述I2C通讯模块和SPI通讯模块通过同一通讯端口与外部器件进行交互。本发明还同时公开了一种实现通讯协议控制的方法,采用本发明的装置和方法能同时支持I2C和SPI两种协议的通讯,使用户能方便地根据不同需求在I2C和SPI两种协议之间任意选择和快速切换。
文档编号H04L29/06GK1633128SQ200410103118
公开日2005年6月29日 申请日期2004年12月31日 优先权日2004年12月31日
发明者吴大斌, 陈志华 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1