翻译了88W8686 datasheet中的第4节--主控接口。
不当之处请各位行家斧正。Section 4. 主机接口
88W8686主机接口单元(HIU)连接几个主机接口总线单元到器件的内部总线上。 每个主机接口总线单元与其他主机接口总线单元共享到内部总线的连接。
但每次只允许一个主机接口总线单元被激活。
88W8686 HIU支持下列主机接口:
. G-SPI Interface
. SDIOInterface
4.1 G-SPI Interface
88W8686支持通用的,半双工的,DMA-协助式 SPI主机接口,允许主控使用SPI总线协议访问WLAN(无线局域网)设备(此处指88W8686).
G-SPI接口包含了外部SPI总线和内部共享总线之间的接口电路。
88W8686在SPI总线上表现为设备。 主控可以直接访问它的G-SPI寄存器。通过它的BARs(BaseAddrRegisters)和DMA引擎,
主控可以访问它的共享存储器。
SPI单元支持通用的SPI接口协议,操作速率可以达到50MHz。支持下列功能:
. SPI 单元总线设备操作
. SPI 单元寄存器读写
. 对内部CPU的中断发生器
. 对外部SPI主控的中断发生器
. DMA to 内存
. 对电源管理单元的唤醒中断
4.1.1 G-SPI 接口信号描述
88W8686引脚名称 通用SPI总线协议名称 说明
-----------------------------------------------------------------------------------------
SPI_CLK CLK SPI单元时钟输入
SPI_SCSn SCSn SPI单元片选信号(低有效)输入
SPI_SDI SDI SPI单元数据输入
SPI_SDO SDO SPI单元数据输出
SPI_SINTn INTn SPI单元中断(低有效)输出
RESETn RSTn 复位输入
4.1.2 G-SPI接口功能描述
G-SPI支持标准G-SPI物理总线上的多种简单的地址/数据协议。这些协议的区分方法是通过地址的位数和数据的顺序来区分。
每次通讯由主控通过拉低SCSn信号来发起。从机在判断有效的SCSn之后,于每个SCLK的上升沿锁存SDI引脚上输入的数据。
当从机需要输出数据时,于每个SCLK的下降沿扇出数据。 SCLK输入信号在每次通讯的开始前和结束后都应当维持在低电平。
中断输出信号(SINTn)由设备发给主控。
4.1.2.1 通讯时延
第一个数据块的传送是从主控到从机。这个数据块包含一个地址和读/写标志。地址的最高位如果是0则表明该次操作是读,
否则是写。
4.1.2.1.1 写操作时延
写操作时,数据时段是紧跟在地址时段后面的。地址和数据时段之间不需要特别的时钟周期。
4.1.2.1.2 读操作时延
读操作时,地址时段之后和数据时段之前要求有一些延时。这些时延表现为TDRR(time delay read register:读寄存器时延)和
TDRP(time delay read port:读端口时延)。这些时延表示从机需要一些时间来准备主控需要的数据。
有两种不同的方式建立这些时延:
第一种:在主机发送地址之后,接着发送一定数量的无效时钟周期给从机(这个数量定义在DelayReadRegister)。
然后再读。与上面对应,分别是读寄存器和读端口。
第二种:在数据时段内,由主控连续不断的提供时钟脉冲,和数据到SDI或者从SDO读数据。
4.1.2.2 数据传送
主控通过访问G-SPI单元中的配置寄存器来访问从机的内存空间。有一些寄存器被定义为端口寄存器,实际上是主机与从机的
数据通道。即当主机发送地址到从机的地址寄存器从而定位到从机的某个寄存器之后,接着向端口寄存器写数据就将数据写进
了某个寄存器中。
主控和从机间的每一次传送都是突发模式(一个地址后跟多个数据)。在读或写完所要求数量的数据后,主控通过拉高SCSn引脚
来终止该次传送。
4.1.2.2.1 端口寄存器访问
当主控读端口寄存器时,对突发模式的数据长度没有限制(除了内部总线的有效地址范围所限制)。
当主控写端口寄存器时,对突发模式的数据长度唯一要求是:长度是DWORDS的倍数。
端口寄存器(I/O端口,命令端口,数据端口)被用来访问内部32-bit存储器空间且总是32-bit对齐访问。
每一个端口寄存器都有一个相应的BAR用来读写(就像一个指针指向要读写的内存空间的起始地址)。
内存也是只能32-bit对齐访问。这可以通过向相应的BAR写入32-bit对齐数据实现。
在访问期间,低 16 bits数据总是最先出现在总线上。
4.1.2.2.1.1 写数据到端口寄存器
写数据到端口寄存器即依次填满起始位置在BAR的连续的32-bit内存空间。当从数据和命令端口读数据时,
从机的DMA引擎不间断的填充读FIFO直到剩余空间不足8个DWORDs。当写数据到设备时,SCSn信号的拉高会清空写FIFO。
4.1.2.2.1.2 从端口寄存器读数据
当从I/O端口读数据时,可以选择DMA引擎是执行单一的读还是突发模式读。突发模式读与读数据和命令端口一样;
单一模式读会让DMA引擎在内部总线上执行单个DWORD访问。单一模式读通讯必须在返回数据的第一或第二个16-bit
块之后终止。
4.1.2.2.2 配置寄存器访问
当主控访问端口寄存器之外的其他寄存器时,突发模式长度必须限制在一个16-bit的数,
或者如果地址是以DWORD边界对齐则两个16-bit的数。当内部总线的某个单元访问G-SPI接口寄存器,则必须是单个DWORD访问方式或更小。
G-SPI接口寄存器,除开端口寄存器,都能以16-bit边界对齐的方式读或写。当单个16-bit word被读出或写入,通讯可以被终止。
4.1.2.3 G-SPI时钟频率
G-SPI时钟频率不得超过内部总线时钟频率的2.5倍。
LZ翻译的不错~ yugangze 发表于 2012-7-22 15:09 static/image/common/back.gif
LZ翻译的不错~
不知道有没有翻错的地方,还请不吝赐教! 有么有 芯片的引脚图呢?我有个模块 但是没有原理图。 richards 发表于 2012-7-22 22:33 static/image/common/back.gif
有么有 芯片的引脚图呢?我有个模块 但是没有原理图。
看看合适不? 本帖最后由 richards 于 2012-7-22 22:54 编辑
sunliezhi 发表于 2012-7-22 22:52 static/image/common/back.gif
看看合适不?
谢谢 先看看呢 非常有用呢。谢了 sunliezhi 发表于 2012-7-22 17:07 static/image/common/back.gif
不知道有没有翻错的地方,还请不吝赐教!
我是刚刚接触,还要向LZ多多请教 期待后续翻译 期待楼主的翻译啊。 最近在做锂电池充电,迟些等手头闲了再继续{:lol:} 谢谢 先看看呢 ......
页:
[1]