接口可以完成以太网PHY芯片初始化、以太网接口配置、以太网接口状态查询等操作。SMI(MDC、MDIO)接口还可以提供中断信号MDINT(由以太网PHY芯片产生的中断)。
SMBus是SystemMa
ageme
tBus的缩写,由I
tel于1995年提出,是一种二线制串行总线,信号主要包括SMBus_DATA(数据输入输出)、SMBus_CLK(时钟信号,由主设备产生)。
接口原理框图以及信号方向,如图1所示:
2串行接口互联方案
CPU芯片可以直接支持I2C接口、SPI接口、SMI(MDC、MDIO)接口、SMBus接口其中一种接口或者两种接口,硬件电路实现比较简单。CPU芯片相应使能管脚和串行接口芯片相应管脚直接向连,然后根据相应电气特性匹配上下拉电阻;但也有一些CPU不支持这些接口,在这样情况下,有三种方案可以解决CPU芯片与串行接口芯片互联问题。
21使用CPU的GPIO管脚互联
CPU一般都有一些GPIO管脚,可以使用CPU的GPIO管脚模拟串行接口信号以及接口时序,从而解决CPU芯片与串行接口芯片互联问题,以SPI接口为例说明其互联原理,其框图如图2所示:
CPU作为主端,发起SPI读写操作,外围芯片作为从端,接收CPU读写指令。SPI接口CS(从设备使能信号,由主设备控制)信号,可以由CPU空闲CS管脚或GPIO管脚来模拟实现,当CPU发起SPI读写操作时:
(1)首先CS信号有效,才开始后续读写操作,作为CS信号CPU的GPIO管脚在整个SPI读写操作过程中保持‘0’电平。
f龙源期刊网httpwwwqika
comc
(2)SCLK(时钟信号,由主设备产生),由CPU的GPIO管脚经过一定时间后反转其管脚电平模拟实现SPI接口时钟,输出到SPI从设备。
(3)SDO(主设备数据输出,从设备数据输入)信号由CPU的GPIO管脚作为输出管脚,在同步于SCLK的情况下,输出相应‘0’、‘1’电平实现相应读写命令以及数据输出。
(4)当进行读操作时SDI有效,SDI(主设备数据输入,从设备数据输出)由CPU的GPIO管脚作为输入管脚,同步于SCLK的情况下把其管脚输入按位存储到CPU内存空间实现相应数据的输入。
I2C接口,SMI(MDC、MDIO)接口,SMBus接口等串行接口也可以采用类似的方法来实现。
从上述可以看出,此方案CPU需要全程参与串行接口的读写操作,读写操作过程不能被打断,而且需要复杂的程序模拟串行接口时序,特别是对I2C,SMBus等接口在读写过程中需要ACK或NCK回应的时序,程序设计显得捉襟见肘。此方案缺点:CPU访问串行接口芯片时,CPU会被完全占用,CPU无法处理其他工作,程序设计较复杂;优点:CPU与串行接口芯片之间互联,不占用系统其它资源。
22Fr