一种实现自动读写内部集成电路设备的装置和方法制造方法及图纸

技术编号:2867360 阅读:182 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种实现自动读写I2C设备的装置和方法,装置由硬件实现的指令产生模块和读写操作执行模块组成,指令产生模块通过异步访问总线分别与主动设备及读写操作执行模块相连,读写操作执行模块通过I2C总线与I2C设备相连,读写时,主动设备提供启动信号、读/写信号以及I2C设备的设备地址、寄存器地址和要写入寄存器的数据,指令产生模块自动产生访问I2C设备所需的指令,依序送到读写操作执行模块,读写操作执行模块再遵照I2C总线协议产生访问I2C设备需要的信号时序,执行对I2C设备的读写操作,本发明专利技术装置还向主动设备返回指令执行情况。本发明专利技术可以简化访问I2C设备时的软件操作,节省CPU时间。

【技术实现步骤摘要】

本专利技术涉及一种集成电路设备的读写装置和方法,尤其涉及数据通讯领域中实现对I2C(inter-integrated circuit内部集成电路,一种标准接口电路,是由PHILIPS公司提出专利技术的)设备自动读或写的装置和方法。
技术介绍
在很多的情况下电子设备系统或CPU应用系统具有低速异步访问总线接口,但没有I2C总线(包括SDA和SCL两个信号线,分别表示是I2C总线的数据信号线和时钟信号线,以下的I2C总线均是指这两个信号线)接口,而此时需要对I2C设备进行读、写访问。这就需要进行低速异步访问总线和I2C接口总线的转换。现有的实现低速异步访问总线和I2C接口总线转换的方法一般比较复杂,在WWW.FPGA.COM.CN网站上,XILINX(美国FPGA芯片生产厂商)提供的一个最新的I2C总线控制IP CORE(集成电路逻辑内核),就是采用这种较复杂的方法,若主动设备(比如CPU)要访问一个I2C设备,要CPU一步一步按I2C总线协议执行。例如,CPU要执行读一个I2C设备,要执行的步骤是1)CPU把I2C的设备地址(DEVICE ADDRESS)写到数据寄存器,并设置写标志;2)CPU读状态寄存器,判断I2C总线是否忙,若不忙执行下一步;3)CPU写控制寄存器,发送“开始”(START)和发送I2C设备地址(DEVICE ADDRESS);4)CPU读状态寄存器,判断发送是否完毕并且收到从设备的回应(ACK),若收到回应,则进行下一步操作;5)CPU把要访问I2C设备的寄存器地址(WORD ADDRESS)写到数据寄存器; 6)CPU写控制寄存器,把I2C设备的寄存器地址送出;7)CPU读状态寄存器,判断发送是否完毕并且收到从设备的回应(ACK)。若收到回应,则进行下一步操作;8)CPU写控制寄存器,发送“结束”(STOP);9)CPU延时(因有些I2C设备需要附加延时,比如AT24C04要求上一个“结束”和下一个“开始”之间必须有10毫秒的延时);10)CPU把I2C的设备地址(DEVICE ADDRESS)写到数据寄存器,并设置读标志;11)CPU写控制寄存器,发送“开始”(START)和发送I2C设备地址(DEVICE ADDRESS);12)CPU读状态寄存器,判断发送是否完毕并且收到从设备的回应(ACK),若收到回应,则进行下一步操作;13)CPU设置控制寄存器,使逻辑处于接收状态;14)判断状态寄存器,数据是否接收完成。完成则执行下一步15)CPU读数据寄存器,得到要读的数据。可以看出,每一步都离不开CPU的操作和判断,不但程序复杂,而且CPU大量的时间花在等待慢速设备的响应上。由于I2C设备是较慢速的设备,访问这样的慢速设备较耗CPU的时间;若用软件一步一步操作,包括发送START信号,发送数据,检测SLAVE设备(从设备)的响应信号,再送STOP信号。每一步操作都要求外部处理器参与发送指令或判断等,将会浪费CPU的大量操作周期,对于CPU处理性能要求较高的系统来说,这是非常不划算的,也是不可取的。另外,若用软件实现指导操作访问I2C设备,要求使用者非常了解I2C总线协议,必须按I2C总线的协议一步步完成操作,包括延时多长等都要精确计算。
技术实现思路
本专利技术要解决的技术问题是克服现有技术存在的访问内部集成电路设备时操作繁琐,浪费CPU时间的缺陷,提供一种实现自动读写内部集成电路备的装置及方法。本专利技术的实现自动读写内部集成电路设备的装置,包括用硬件实现的指令产生模块和读写操作执行模块,所述指令产生模块通过异步访问总线分别与主动设备及所述读写操作执行模块相连,所述读写操作执行模块通过内部集成电路总线与内部集成电路设备相连,其中所述指令产生模块,用于接收所述主动设备提供的启动信号、读/写信号以及内部集成电路设备的设备地址、寄存器地址和要写入寄存器的数据,自动产生访问内部集成电路设备所需的指令,依序送到所述读写操作执行模块,并向所述主动设备返回指令执行情况和从内部集成电路设备读出的数据;所述读写操作执行模块,用于根据所述指令产生模块的指令,遵照内部集成电路总线协议产生访问内部集成电路设备需要的信号时序,执行对内部集成电路设备的读写操作,并向所述指令产生模块返回指令执行情况。上述装置可具有以下特点所述指令产生模块在检测到主动设备要写一个内部集成电路设备时,依次发送开始指令、设备地址指令及写指示、寄存器地址指令、数据指令和停止指令。上述装置可具有以下特点所述指令产生模块在检测到主动设备要读一个内部集成电路设备时,依次发送开始指令、设备地址指令及写指示、寄存器地址指令、停止指令、开始指令、设备地址指令及读指示、接收数据指令和停止指令。上述装置可具有以下特点所述指令产生模块进一步包含所述命令控制寄存器,由所述主动设备的启动信号和读/写信号设置相应控制位的值,发动对内部集成电路设备读或写,并在执行失败时设置错误标志;所述设备地址寄存器,用于存储要访问的内部集成电路设备的设备地址;所述寄存器地址寄存器,用于存储要访问内部集成电路设备的寄存器的地址;所述写入数据寄存器,用于存储要写的数据;所述读出数据寄存器,用于存储要读出的数据;所述分频设置寄存器,用于设置送出的SDA/SCL信号的频率与输入的CLK频率之间的倍数关系; 所述主动设备通过异步总线的地址信号对上述寄存器进行选择。上述装置可具有以下特点所述指令产生模块向所述主动设备返回指令执行情况是通过在一次读或写操作完成后设置一个中断信号,或者在命令控制寄存器执行完操作后将相应的比特位自动清零,或者通过以上两个信号的结合来实现的。上述装置可具有以下特点所述读写操作执行模块包含命令寄存器、接收数据寄存器、发送数据寄存器、时钟产生单元、START产生单元、STOP产生单元、数据发送单元和数据接收单元,其中所述命令寄存器,由所述指令产生模块的指令设置相应控制位的值,控制所述START产生单元、STOP产生单元、数据发送单元和数据接收单元的启动,并在操作执行完成后将相应位清零;所述接收数据寄存器,用于缓存数据接收单元接收到的数据;所述发送数据寄存器,用于缓存数据发送单元将要发送的数据;时钟产生单元,用于产生读写操作执行模块中各模块所需的时钟;所述START产生单元,用于产生内部集成电路总线协议中规定的START时序;所述STOP产生单元,用于产生内部集成电路总线协议中规定的STOP时序;所述数据发送单元,用于依照内部集成电路总线协议规定的SDA、SDL的时序,将所述发送数据寄存器中的数据发送到内部集成电路总线上;所述数据接收单元,用于依照内部集成电路总线协议规定的SDA、SDL的时序,接收内部集成电路总线上的数据。上述装置可具有以下特点所述指令产生模块和读写操作执行模块之间的异步总线包括复位信号、时钟信号、写使能信号、发送数据寄存器选择信号、命令寄存器选择信号、数据总线输入和输出信号,以及错误指示信号的线路,所述错误指示信号由所述命令寄存器的控制位产生,用于向所述指令产生模块返回指令执行情况。本专利技术的实现自动写内部集成电路设备的方法,应用于主动设备通过硬件实现的指令产生模块和写操作执行模块与内部集成电路总线相连的系统中,该方法包括以下步骤(a)所述本文档来自技高网
...

【技术保护点】
一种实现自动读写内部集成电路设备的装置,其特征在于,包括用硬件实现的指令产生模块和读写操作执行模块,所述指令产生模块通过异步访问总线分别与主动设备及所述读写操作执行模块相连,所述读写操作执行模块通过内部集成电路总线与内部集成电路设备相连,其中:    所述指令产生模块,用于接收所述主动设备提供的启动信号、读/写信号以及内部集成电路设备的设备地址、寄存器地址和要写入寄存器的数据,自动产生访问内部集成电路设备所需的指令,依序送到所述读写操作执行模块,并向所述主动设备返回指令执行情况和从内部集成电路设备读出的数据;    所述读写操作执行模块,用于根据所述指令产生模块的指令,遵照内部集成电路总线协议产生访问内部集成电路设备需要的信号时序,执行对内部集成电路设备的读写操作,并向所述指令产生模块返回指令执行情况。

【技术特征摘要】

【专利技术属性】
技术研发人员:周广水何宁郑斌儒
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1