一种支持用户协议的通用I2C总线控制器制造技术

技术编号:20545754 阅读:51 留言:0更新日期:2019-03-09 18:41
本发明专利技术公开一种支持用户协议的通用I2C总线控制器,包括:微控制器接口模块(1)、工作寄存器阵列模块(2)、双端口数据存储器模块(3)、同步时序信号生成器模块(4)和I2C总线接口时序生成器模块(5),本发明专利技术能够将x80系列微控制器和各种具有I2C总线接口的数字集成电路器件无缝连接在一起,构成器件之间的I2C总线通讯链路,在用户系统上电复位正常工作后,通过工作模式配置参数,用户系统可将通用I2C总线控制器配置成主器件,主动发起并控制I2C总线上的数据通讯过程,也可将通用I2C总线控制器配置成从器件,被动接受I2C总线上其它主控制器的控制,从而配合主控制器完成I2C总线上的数据通讯过程。

A General I2C Bus Controller Supporting User Protocol

The invention discloses a general I2C bus controller supporting user protocol, which includes a microcontroller interface module (1), a working register array module (2), a dual-port data memory module (3), a synchronous sequential signal generator module (4) and an I2C bus interface sequential generator module (5). The invention can integrate X80 series microcontrollers and various digital integrated circuits with I2C bus interface. Devices are seamlessly connected to form the I2C bus communication link between devices. After the user system is powered on and reset to work normally, the user system can configure the general I2C bus controller as the main device by configuring the parameters of the working mode. The user system can actively initiate and control the data communication process on the I2C bus, and also can configure the general I2C bus controller as the slave device to passively accept the I2C bus. With the control of other main controllers, the data communication process on I2C bus can be completed with the main controller.

【技术实现步骤摘要】
一种支持用户协议的通用I2C总线控制器
本专利技术涉及一种通用I2C总线控制器,特别是一种支持用户协议的通用I2C总线控制器。
技术介绍
I2C即Inter-IntegratedCircuit,亦称集成电路内连接总线,是一种简单有效的两线式双向串行数据通讯总线,主要用于微处理器与各种外围数字集成电路器件之间的通讯。上世纪八十年代,I2C总线首先由荷兰飞利浦半导体公司即NXP公司开发,并于世纪在九十年代初期发布了I2C总线技术规范1.0版本,由此取得了I2C总线的专利权。上世纪九十年代末,随着数字集成电路及其应用技术的发展,飞利浦公司又发布了I2C总线技术规范2.0版,对I2C总线的功能和性能进行了提升,满足了数字电路使用少量端口引脚即可实现高速数据传输和低功耗的需求。本世纪初,该I2C总线技术规范2.1版又公开发布,使I2C总线的功能和性能得到了进一步完善和扩展。尽管I2C总线技术规范的版本不断升级,但技术上还是全面保持了对以前版本的兼容性。I2C总线提供了较完善的总线协议和最简单的串行连接方式,为各种应用系统设计提供了一种完善的集成电路间的串行总线扩展技术,大大简化了应用系统的硬件设计,为实现应用系统的模块化设计提供了极为有利的条件。I2C总线由两根信号线组成,多个器件可同时挂接在同一个I2C总线上,不同器件之间由不同的地址来区分的,这既节省了集成电路芯片的I/O管脚,也节省了用户系统PCB板的面积。I2C总线电气兼容性好,各器件之间以开漏的I/O管脚相互联接,这样只要选取适当的上拉电阻就能轻易实现3V/5V逻辑电平之间的兼容。I2C总线支持多种通信方式,除了一主多从这种最常见的通信方式,还支持多主机通信、双主机通信、以及广播模式等。I2C总线通信速率也非常高,标准模式下,I2C总线的数据传输速率为100kbps,快速模式下可达到400kbps,同时兼顾低速率数据通信。并且I2C总线协议简单,容易实现,很容易就能将I2C总线接口控制逻辑放入定制集成电路中。因此,I2C总线技术一经公开,即受到各个定制集成电路设计生产厂家的大力欢迎。目前,许多定制集成电路设计生产厂家,包括半导体巨头德州仪器即TI公司、英特尔、意法半导体即ST公司、美国国家半导体即NationalSemiconductor公司、英飞凌科技等,已经取得了I2C总线的使用授权,并将I2C总线应用在了LCD驱动控制器、I/O接口控制器、数据存储器、A/D、D/A转换器,以及温度传感器等多种定制集成电路器件中,实现了这些器件与微处理器之间的高速数据通讯,从而使I2C总线成为了国际上通用的一种总线标准。但是,有些微处理器中没有集成I2C总线接口,对于由这种微处理器构成的用户系统,目前通用的做法是利用微处理器上开漏的I/O管脚,通过微处理器监控程序,模拟实现一种I2C总线接口。另一方面,定制集成电路设计生产厂家在遵守I2C总线技术规范的同时,也根据自家集成电路器件的技术特点,对I2C总线接口进行了本地化设计,通过简化I2C总线通讯协议,提高自家器件与微处理器之间数据通讯的速度和效率,这就使得不同厂家的集成电路器件,尽管也采用了I2C总线接口,但由于器件内部的I2C总线控制器所实现的I2C总线通讯协议不完全一致,因此,这样两种器件就不能连接在一起,也就不能实现两个器件之间通过I2C总线的数据通讯。
技术实现思路
本专利技术目的在于提供一种支持用户协议的通用I2C总线控制器,解决I2C总线接口用户协议不一致时,不同厂家定制集成电路之间I2C接口的硬件连接问题。一种可支持用户协议的通用I2C总线控制器,包括:微控制器接口模块、工作寄存器阵列模块、双端口数据存储模块、同步时序信号生成模块和I2C总线接口时序生成模块。微控制器接口模块经内部连线与工作寄存器阵列模块和双端口数据存储模块相连;工作寄存器阵列模块经内部连线与同步时序信号生成模块和I2C接口时序生成模块相连;双端口数据存储模块经内部连线与I2C总线接口时序生成模块相连;同步时序信号生成模块经内部连线与双端口数据存储模块和I2C总线接口时序生成模块相连。微控制器接口模块的功能为:实现可编程逻辑器件配置器与x86系列微控制器控制总线、地址总线和数据总线的硬件连接,或者接受x86系列微控制器输入的控制命令、参数和数据,或者将可编程逻辑器件配置器的内部工作状态信息或数据传送给x86系列微控制器。工作寄存器阵列模块的功能为:接收并存放微控制器接口模块传送的系统控制命令、参数和数据,实现x86系列微控制器对通用I2C总线控制器工作参数的配置和工作过程的控制,同时,记录通用I2C总线控制器的工作状态信息和数据,并传送给微控制器接口模块。双端口数据存储模块的功能为:接收微控制器接口模块传送的微控制器控制信号和数据,存储用户系统需要交换的信息数据,或是存储外部系统经I2C总线传送进来的信息数据,供微控制器接口模块读取。同步时序信号生成模块的功能为:按照工作寄存器阵列模块传送的工作参数和命令,产生通用I2C总线控制器正常工作所需要的同步时序信号,并传送给通用I2C总线控制器内部各个模块。I2C总线接口时序生成模块的功能为:根据工作寄存器阵列模块中记录的通用I2C总线控制器的工作参数和命令,自动生成I2C总线接口时序信号和配套的双端口数据存储模块端口操作信号。当用户系统将通用I2C总线控制器被配置为I2C总线主器件时,I2C总线接口时序生成模块主动发起并控制I2C总线上的数据通讯过程,并根据用户系统的命令,或者将双端口数据存储模块中的数据从I2C总线上传输出去,或者从I2C总线上接收数据,并存放到双端口数据存储模块中。当用户系统将通用I2C总线控制器配置为I2C总线从器件时,I2C总线接口时序生成模块被动接受I2C总线上其它主控制器的控制,并根据I2C总线上的命令,或者将双端口数据存储模块中的数据从I2C总线上传输出去,或者从I2C总线上接收数据,并存放到双端口数据存储模块中。当I2C总线接口时序生成模块完成一次数据通讯操作后,自动生成“一次数据交换操作完毕”中断请求信号。当通过外部引脚电路,将通用I2C总线控制器设置为I2C总线主控制器时,用户系统上电复位后,通用I2C总线控制器按工作寄存器阵列模块缺省配置的工作参数开始工作,并处于空闲状态,等待用户系统通过微控制器接口模块输入配置参数、通讯数据或控制命令;当接收到用户系统发来的“传送数据命令”时,通用I2C总线控制器按当前工作寄存器阵列模块配置的工作参数,由同步时序信号生成模块产生通用I2C总线控制器正常工作所需要的同步时序信号,并传送给通用I2C总线接口时序生成模块,最后由I2C总线接口时序生成模块自动产生I2C总线时序信号SDA和SCK,从而将双端口数据存储模块中指定地址处开始和指定长度的信息数据,依次按位从I2C总线端口上传送出去,待全部指定数据传输完毕后,通用I2C总线控制器自动生成“一次数据交换操作完毕”中断请求信号,并再次进入空闲状态,等待用户系统发出新的指令;当接收到用户系统发来的“接收数据命令”时,通用I2C总线控制器按当前工作寄存器阵列模块配置的工作参数,由同步时序信号生成模块产生通用I2C总线控制器正常工作所需要的同步时序信号,并传送给通用I2C本文档来自技高网
...

【技术保护点】
1.一种可支持用户协议的通用I2C总线控制器,其特征在于包括:微控制器接口模块(1)、工作寄存器模块(2)、双端口数据存储模块(3)、同步时序信号生成模块(4)和I2C总线接口时序生成模块(5);微控制器接口模块(1)经内部连线与工作寄存器阵列模块(2)和双端口数据存储模块(3)相连;工作寄存器阵列模块(2)经内部连线与同步时序信号生成模块(4)和I2C接口时序生成模块(5)相连;双端口数据存储模块(3)经内部连线与I2C总线接口时序生成模块(5)相连;同步时序信号生成模块(4)经内部连线与双端口数据存储模块(3)和I2C总线接口时序生成模块(5)相连;当用户系统将通用I2C总线控制器被配置为I2C总线主器件时,I2C总线接口时序生成模块(5)主动发起并控制I2C总线上的数据通讯过程,并根据用户系统的命令,或者将双端口数据存储模块(3)中的数据从I2C总线上传输出去,或者从I2C总线上接收数据,并存放到双端口数据存储模块(3)中;当用户系统将通用I2C总线控制器配置为I2C总线从器件时,I2C总线接口时序生成模块(5)被动接受I2C总线上其它主控制器的控制,并根据I2C总线上的命令,或者将双端口数据存储模块(3)中的数据从I2C总线上传输出去,或者从I2C总线上接收数据,并存放到双端口数据存储模块(3)中;当I2C总线接口时序生成模块(5)完成一次数据通讯操作后,自动生成“一次数据交换操作完毕”中断请求信号;当通过外部引脚电路,将通用I2C总线控制器设置为I2C总线主控制器时,用户系统上电复位后,通用I2C总线控制器按工作寄存器模块(2)缺省配置的工作参数开始工作,并处于空闲状态,等待用户系统通过微控制器接口模块(2)输入配置参数、通讯数据或控制命令;当接收到用户系统发来的“传送数据命令”时,通用I2C总线控制器按当前工作寄存器模块(2)配置的工作参数,由同步时序信号生成模块(4)产生通用I2C总线控制器正常工作所需要的同步时序信号,并传送给通用I2C总线接口时序生成模块(5),最后由I2C总线接口时序生成模块(5)自动产生I2C总线时序信号SDA和SCK,从而将双端口数据存储模块(3)中指定地址处开始和指定长度的信息数据,依次按位从I2C总线端口上传送出去,待全部指定数据传输完毕后,通用I2C总线控制器自动生成“一次数据交换操作完毕”中断请求信号,并再次进入空闲状态,等待用户系统发出新的指令;当接收到用户系统发来的“接收数据命令”时,通用I2C总线控制器按当前工作寄存器模块(2)配置的工作参数,由同步时序信号生成模块(4)产生通用I2C总线控制器正常工作所需要的同步时序信号,并传送给通用I2C总线接口时序生成模块(5),然后由I2C总线接口时序生成模块(5)监视I2C总线时序信号SDA和SCK,并按I2C总互协议,按位依次从I2C总线端口接收外部系统传送进来的数据,最后由双端口数据存储模块(4)将接收到的数据依次存放到指定地址处开始的连续存储单元中,待I2C总线上的数据全部接收完毕,或者是接收到指定长度的数据后,通用I2C总线控制器自动生成“一次数据交换操作完毕”中断请求信号,并再次进入空闲状态,等待用户系统发出新的指令;当通过外部引脚电路,将通用I2C总线控制器设置为I2C总线从控制器时,用户系统上电复位后,通用I2C总线控制器按工作寄存器模块(2)缺省配置的工作参数开始工作,并处于空闲状态,等待用户系统通过微控制器接口模块(1)输入配置参数、通讯数据或控制命令,同时监视I2C总线上信号的变化;当接收到外部主控制器发来的“启动一次数据传送操作”时,通用I2C总线控制器按当前工作寄存器模块(2)配置的工作参数,由I2C总线接口时序生成模块(5)自动监视I2C总线上时序信号SDA和SCK,并根据从I2C总线上接收到的总线通讯命令执行相应的数据传送操作;当总线通讯命令为“读存储单元数据命令”时,由同步时序信号生成模块(4)产生通用I2C总线控制器正常工作所需要的同步时序信号,并传送给双端口数据存储模块(3)和I2C总线接口时序生成模块5,当I2C总线接口时序生成模块(5)接收到有效的存储器数据地址后,控制双端口数据存储模块(3)将指定地址中的数据传送给I2C总线接口时序生成模块(5),最后由I2C总线接口时序生成模块(5)将双端口数据存储模块(3)中指定存储单元中的数据,依次按位从I2C总线端口上传送出去,待全部指定数据传输完毕后,通用I2C总线控制器自动生成“一次数据交换操作完毕”中断请求信号,并再次进入空闲状态,等待外部主控制器发出新的指令;当总线通讯命令为“写存储单元数据命令”时,由同步时序信号生成模块(4)产生通用I2C总线控制器正常工作所需要的同步时序信号,并传送给双端口数据存储模块(3)和I2C总线接口时序生成模块(...

【技术特征摘要】
1.一种可支持用户协议的通用I2C总线控制器,其特征在于包括:微控制器接口模块(1)、工作寄存器模块(2)、双端口数据存储模块(3)、同步时序信号生成模块(4)和I2C总线接口时序生成模块(5);微控制器接口模块(1)经内部连线与工作寄存器阵列模块(2)和双端口数据存储模块(3)相连;工作寄存器阵列模块(2)经内部连线与同步时序信号生成模块(4)和I2C接口时序生成模块(5)相连;双端口数据存储模块(3)经内部连线与I2C总线接口时序生成模块(5)相连;同步时序信号生成模块(4)经内部连线与双端口数据存储模块(3)和I2C总线接口时序生成模块(5)相连;当用户系统将通用I2C总线控制器被配置为I2C总线主器件时,I2C总线接口时序生成模块(5)主动发起并控制I2C总线上的数据通讯过程,并根据用户系统的命令,或者将双端口数据存储模块(3)中的数据从I2C总线上传输出去,或者从I2C总线上接收数据,并存放到双端口数据存储模块(3)中;当用户系统将通用I2C总线控制器配置为I2C总线从器件时,I2C总线接口时序生成模块(5)被动接受I2C总线上其它主控制器的控制,并根据I2C总线上的命令,或者将双端口数据存储模块(3)中的数据从I2C总线上传输出去,或者从I2C总线上接收数据,并存放到双端口数据存储模块(3)中;当I2C总线接口时序生成模块(5)完成一次数据通讯操作后,自动生成“一次数据交换操作完毕”中断请求信号;当通过外部引脚电路,将通用I2C总线控制器设置为I2C总线主控制器时,用户系统上电复位后,通用I2C总线控制器按工作寄存器模块(2)缺省配置的工作参数开始工作,并处于空闲状态,等待用户系统通过微控制器接口模块(2)输入配置参数、通讯数据或控制命令;当接收到用户系统发来的“传送数据命令”时,通用I2C总线控制器按当前工作寄存器模块(2)配置的工作参数,由同步时序信号生成模块(4)产生通用I2C总线控制器正常工作所需要的同步时序信号,并传送给通用I2C总线接口时序生成模块(5),最后由I2C总线接口时序生成模块(5)自动产生I2C总线时序信号SDA和SCK,从而将双端口数据存储模块(3)中指定地址处开始和指定长度的信息数据,依次按位从I2C总线端口上传送出去,待全部指定数据传输完毕后,通用I2C总线控制器自动生成“一次数据交换操作完毕”中断请求信号,并再次进入空闲状态,等待用户系统发出新的指令;当接收到用户系统发来的“接收数据命令”时,通用I2C总线控制器按当前工作寄存器模块(2)配置的工作参数,由同步时序信号生成模块(4)产生通用I2C总线控制器正常工作所需要的同步时序信号,并传送给通用I2C总线接口时序生成模块(5),然后由I2C总线接口时序生成模块(5)监视I2C总线时序信号SDA和SCK,并按I2C总互协议,按位依次从I2C总线端口接收外部系统传送进来的数据,最后由双端口数据存储模块(4)将接收到的数据依次存放到指定地址处开始的连续存储单元中,待I2C总线上的数据全部接收完毕,或者是接收到指定长度的数据后,通用I2C总线控制器自动生成“一次数据交换操作完毕”中断请求信号,并再次进入空闲状态,等待用户系统发出新的指令;当通过外部引脚电路,将通用I2C总线控制器设置为I2C总线从控制器时,用户系统上电复位后,通用I2C总线控制器按工作寄存器模块(2)缺省配置的工作参数开始工作,并处于空闲状态,等待用户系统通过微控制器接口模块(1)输入配置参数、通讯数据或控制命令,同时监视...

【专利技术属性】
技术研发人员:罗长洲李荣乐杨伟光李泽超朱予辰
申请(专利权)人:北京控制与电子技术研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1