一种用PCA9548A扩展芯片进行IIC扩展的电路的制作方法

文档序号:18493850发布日期:2019-08-21 01:46阅读:330来源:国知局
一种用PCA9548A扩展芯片进行IIC扩展的电路的制作方法
本实用新型涉及一种光信号汇聚类设备,特别涉及一种用PCA9548A扩展芯片进行IIC扩展的电路,用于实现多路光模块的控制,一个ZYNQ的IIC文件结点能够连接8路PCA9548a芯片,每路PCA9548a芯片可以扩展出8路IIC接口,每路IIC接口连接一个光模块,这样就能够通过一个IIC文件结点控制64个光模块,大大提高了IIC文件结点的利用率。
背景技术
:利用ZYNQ7000现有的IIC去控制光模块,往往达不到项目规定的数目,毕竟现有的光汇聚系列设备已经达到TB/s级,所以如何能够用现有的ZYNQ所提供的IIC接口去控制更多的光模块,是众多硬件工程师探讨和研究的课题。在现有的技术手段中,ZYNQ的I/O和中断资源是有限的,如果利用现有技术去扩展IIC文件结点,为了实现多个光模块的控制,需要ZYNQ扩展多个IIC文件结点,每个文件结点连接一个PCA9548a芯片,如果为了控制8个PCA9548a,那么就需要ZYNQ扩展出8个IIC文件结点,势必会占用ZYNQ大量的I/O资源和中断资源,提高了成本。技术实现要素:为了克服ZYNQ7000提供的IIC接口数目有限的问题,如何利用现有的几个IIC接口去控制多个IIC,本实用新型提供了一种用PCA9548A扩展芯片进行IIC扩展的电路,可以用较低的成本实现多个IIC接口的控制。本实用新型采用的技术方案是:一种用PCA9548A扩展芯片进行IIC扩展的电路,其特征在于:包括PCA9548A芯片U31和PCA9548A芯片U32,电路连接为:电阻R160与PCA9548A芯片U31的24脚和22脚并联,电阻R158与PCA9548A芯片U31的24脚和3脚并联,电阻R156与PCA9548A芯片U31的24脚和1脚并联,PCA9548A芯片U31的24脚接UCC_3U3,PCA9548A芯片U31的1脚2脚、21脚和12脚接地,电阻R157与PCA9548A芯片U32的24脚和3脚并联,电阻R179与PCA9548A芯片U32的24脚和1脚并联,PCA9548A芯片U32的24脚接UCC_3U3,PCA9548A芯片U32的1脚2脚、21脚和12脚接地,PCA9548A芯片U31的22脚和PCA9548A芯片U32的22脚相接并通过时钟线SFP_9548A_SCL与ZYNQ的PL的IIC时钟线连接;PCA9548A芯片U31的23脚和PCA9548A芯片U32的23脚相接并通过数据线SFP_9548A_SDA与ZYNQ的PL的IIC数据线连接;PCA9548A芯片U31的5脚和4脚为一路IIC接口、7脚和6脚为一路IIC接口、9脚和8脚为一路IIC接口、11脚和10脚为一路IIC接口、14脚和13脚为一路IIC接口、16脚和15脚为一路IIC接口、18脚和17脚为一路IIC接口、20脚和19脚为一路IIC接口,共扩展为8路IIC接口,每路IIC接口通过时钟线SCL_SFP<15..0>连接一个光模块的时钟线;PCA9548A芯片U32的5脚和4脚为一路IIC接口、7脚和6脚为一路IIC接口、9脚和8脚为一路IIC接口、11脚和10脚为一路IIC接口、14脚和13脚为一路IIC接口、16脚和15脚为一路IIC接口、18脚和17脚为一路IIC接口、20脚和19脚为一路IIC接口,共扩展为8路IIC接口,每路IIC接口通过时钟线SDA_SFP<15..0>连接一个光模块的时钟线;PCA9548A芯片U31和PCA9548A芯片U32共扩展为16路IIC接口,共连接16个光模块。本实用新型的有益效果是:本申请通过一个IIC文件结点扩展了两片PCA9548A芯片,每片PCA9548a能够连接8路IIC,两片PCA9548a能够扩展出16路IIC,本申请还可以请通过一个IIC文件结点扩展八片PCA9548A芯片,每片PCA958能够连接8路IIC,8片PCA9548就能扩展出64路IIC,那么就能够通过一个IIC文件扩展了64路IIC接口,控制了64个光模块,即,将八片PCA9548A芯片的22脚脚相接并通过时钟线SFP_9548A_SCL与ZYNQ的PL的IIC时钟线连接;将八片PCA9548A芯片的23脚相接并通过数据线SFP_9548A_SDA与ZYNQ的PL的IIC数据线连接;每片PCA9548A芯片的5脚和4脚为一路IIC接口、7脚和6脚为一路IIC接口、9脚和8脚为一路IIC接口、11脚和10脚为一路IIC接口、14脚和13脚为一路IIC接口、16脚和15脚为一路IIC接口、18脚和17脚为一路IIC接口、20脚和19脚为一路IIC接口,共扩展为8路IIC接口,每路IIC接口通过时钟线SCL_SFP<63..0>和数据线SDA_SFP<63..0>连接一个光模块的时钟线和数据线;每片PCA9548a芯片的1脚,2脚,21脚分别置高低电平,即有1脚,2脚,21脚,可以对应8组电平关系,即低低低,低低高,低高低,低高高,高低低,高低高,高高低,高高高,这样每片PCA9548a的从地址不通,就能够通过一个ZYNQ的IIC文件结点去控制了;八片PCA9548A芯片可扩展为64路IIC接口,共连接64个光模块。本实用新型用较低的成本实现多个IIC接口的控制,大大提高了IIC文件结点的利用率,节省了ZYNQ的I/O资源和中断资源。附图说明图1为本实用新型的电路图。具体实施方式如图1所示,一种用PCA9548A扩展芯片进行IIC扩展的电路,利用PCA9548A扩展芯片实现IIC的扩展可以采取两种方案,一种是利用一个结点扩展多个PCA9548A芯片,利用不同的从地址去访问扩展芯片,另一种是利用不同结点直接连接PCA9548A芯片,从省ZYNQ资源的角度来看,第一种方法是较好的,下面将介绍如何通过一个IIC结点去扩展多个IIC结点。PCA9548A扩展芯片包括PCA9548A芯片U31和PCA9548A芯片U32,电路连接为:电阻R160与PCA9548A芯片U31的24脚和22脚并联,电阻R158与PCA9548A芯片U31的24脚和3脚并联,电阻R156与PCA9548A芯片U31的24脚和1脚并联,PCA9548A芯片U31的24脚接UCC_3U3,PCA9548A芯片U31的1脚2脚、21脚和12脚接地,电阻R157与PCA9548A芯片U32的24脚和3脚并联,电阻R179与PCA9548A芯片U32的24脚和1脚并联,PCA9548A芯片U32的24脚接UCC_3U3,PCA9548A芯片U32的1脚2脚、21脚和12脚接地,PCA9548A芯片U31的22脚和PCA9548A芯片U32的22脚相接并通过时钟线SFP_9548A_SCL与ZYNQ的PL的IIC时钟线连接,PCA9548A芯片U31的23脚和PCA9548A芯片U32的23脚相接并通过数据线SFP_9548A_SDA与ZYNQ的PL的IIC数据线连接;PCA9548A芯片U31的5脚和4脚为一路IIC接口、7脚和6脚为一路IIC接口、9脚和8脚为一路IIC接口、11脚和10脚为一路IIC接口、14脚和13脚为一路IIC接口、16脚和15脚为一路IIC接口、18脚和17脚为一路IIC接口、20脚和19脚为一路IIC接口,共扩展为8路IIC接口,每路IIC接口通过时钟线SCL_SFP<15..0>连接一个光模块的时钟线;PCA9548A芯片U32的5脚和4脚为一路IIC接口、7脚和6脚为一路IIC接口、9脚和8脚为一路IIC接口、11脚和10脚为一路IIC接口、14脚和13脚为一路IIC接口、16脚和15脚为一路IIC接口、18脚和17脚为一路IIC接口、20脚和19脚为一路IIC接口,共扩展为8路IIC接口,每路IIC接口通过时钟线SDA_SFP<15..0>连接一个光模块的时钟线;PCA9548A芯片U31和PCA9548A芯片U32共扩展为16路IIC接口,共连接16个光模块。一种用PCA9548A扩展芯片进行IIC扩展的电路实现方法,利用PCA9548A扩展芯片实现IIC的扩展可以采取两种方案,一种是利用一个结点扩展多个PCA9548A芯片,利用不同的从地址去访问扩展芯片,另一种是利用不同结点直接连接PCA9548A芯片,从省ZYNQ资源的角度来看,第一种方法是较好的,下面将介绍如何通过一个IIC结点去扩展多个IIC结点。一个文件结点去挂载多个扩展芯片,首先要先理解PCA9548A扩展芯片的从地址,PCA9548A扩展芯片也是一个IIC器件,其从地址命名规则见表1:表1为从地址命名规则1110A2A1A0其中前4位1.1.1.0是固定值,A2,A1,A0是器件的从地址,与硬件的连接相关,即A2,A1,A0在硬件上可以分别置为高低电平,置低电平对应是0,置高电平对应的是1,例如,PCA9548A芯片U31的A2,A1,A0全部与地线相连,即全部置低电平,则PCA9548A芯片U31芯片最终的从地址是1110000,对应16进制是0x70,PCA9548A芯片U32的A2,A1与地线相连,A0与高电平相连,则PCA9548A芯片U32芯片最终的从地址是1110001,对应的16进制是0x71,从3位可选的从地址可知,一个IIC文件结点最多可以挂载8个PCA9548A扩展芯片,在打开文件结点函数后,需要绑定器件从地址,函数原型如下:fd=open("/dev/i2c-0",O_RDWR);ioctl(fd,I2C_SLAVE_FORCE,Address);open函数是linux硬件设备操作函数,其原型是intopen(constchar*pathname,intflags);在上述例中,constchar*pathname对应的是"/dev/i2c-0",表示I2C文件结点所在的路径,flags对应O_RDWR,表示以可读可写的方式打开文件,函数执行成功就会返回文件描述符即fd;ioctl是设备驱动程序中对设备I/O通道进行管理的函数,它的参数个数如下:intioctl(intfd,intcmd,…);其中fd是用户程序打开设备时使用open函数返回的文件标识符,cmd就是用户程序对设备的控制命令,在上述函数中,cmd对应的是I2C_SLAVE_FORCE,该命令是将设备从地址传递给总线,其中Address是IIC器件前7位地址,绑定不同的从器件地址,就能够访问不同的PCA9548A扩展芯片,访问到不同的扩展芯片后,就能够利用PCA9548A扩展芯片选路机制,选通连接光模块,然后就能够控制光模块,在上述例中,PCA9548A芯片U31的从地址为0x70,即Address为0x70,PCA9548A芯片U32的从地址为0x71,即Address为0x71。实施例如下:打开对应于ZYNQ的IIC结点,实施例中对应的IIC结点为i2c-0:fd=open("/dev/i2c-0",O_RDWR);open函数是linux硬件设备操作函数,其原型是intopen(constchar*pathname,intflags);在上述例中,constchar*pathname对应的是"/dev/i2c-0",表示I2C文件结点所在的路径,flags对应O_RDWR,表示以可读可写的方式打开文件,函数执行成功就会返回文件描述符即fd。该结点文件对应于PCA9548A扩展芯片U31和PCA9548A扩展芯片U32两个扩展芯片,为了区分这两个扩展芯片,从地址要不同,PCA9548A芯片U31的A2,A1,A0全部与地线相连,即全部置低电平,则U31芯片最终的从地址是1110000,对应16进制是0x70,PCA9548A芯片U32的A2,A1与地线相连,A0与高电平相连,则U32芯片最终的从地址是1110001,对应的16进制是0x71,然后是绑定从地址,函数原型如下:ioctl(fd,I2C_SLAVE_FORCE,0X70);ioctl是设备驱动程序中对设备I/O通道进行管理的函数,它的参数个数如下:intioctl(intfd,intcmd,…);其中fd是用户程序打开设备时使用open函数返回的文件标识符,cmd就是用户程序对设备的控制命令,在上述函数中,cmd对应的是I2C_SLAVE_FORCE,该命令是将设备从地址传递给总线,在实施例中,PCA9548A芯片U31的从地址为0x70,所以通过这个函数就可以将U31芯片绑定到IIC总线上,绑定完9548A扩展芯片U31的从地址,就可以对PCA9548A扩展芯片U31进行控制了,PCA9548A扩展芯片U31的控制寄存器通道选择位见表2,表2通道选择位(read/write)其中,B7~B0分别对应channel7~channel0,想接通哪个通道,就将该通道对应的位置置1,然后通过IIC的写命令将值写到寄存器上,就可以完成对通道的选通,选通通道后,就可以控制对应通道的光模块,选通函数示例,选通通道为channel0:write(fd,&0x01,1);write函数功能是写到文件中,其函数原型是intwrite(inthandle,void*buf,intnbyte);handle是文件描述符,对应的是fd,即上文open返回的文件描述符,buf是指定的缓存区,即指针,指向一段内存单元,对应&0x01,nbyte是要写入文档的字节数,实施例中,将0x01写到文件中,就可以实现选通通道channel0。选择通道后,就可以控制光模块,当想要切换其他通道的时候,必须先把先前选通的通道关闭,关闭原理就是将原先对应位的寄存器值置0,例如,关闭channel0;write(fd,&0x00,1);该函数就是将0x00这个数值写到文件中,可以实现关闭通道channel0;关闭完channel0就可以选通其他通路,每个通路对应的值见表3:见表3为通路对应的值Channel0Channel1Channel2Channel3Channel4Channel5Channel6Channel70x010x020x040x080x100x200x400x80写完数据,就可以关闭文件结点,调用的函数原型是:close(fd)。Close函数是关闭文件结点函数,函数原型是intclose(intfd),fd是文件描述符,即上文open函数返回的文件描述符。PCA9548a芯片U31操作结束,PCA9548a芯片U32操作与U31相同,唯一的区别是,绑定从器件地址是0x71,即ioctl(fd,I2C_SLAVE_FORCE,0X71),剩下的操作与上述相同。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1