首页 CS8900A数据手册中文部分翻译(可编辑)

CS8900A数据手册中文部分翻译(可编辑)

举报
开通vip

CS8900A数据手册中文部分翻译(可编辑)CS8900A数据手册中文部分翻译(可编辑) CS8900A数据手册中文部分翻译 目录 CS8900A产品数据手册中文翻译部分 1 30 功能描述 1 31 概述 1 com 配置 1 com 数据包发送 1 com 数据包接收 2 32 ISA总线接口 2 com 内存模式操作 2 com IO模式操作 3 com 中断请求信号 3 com DMA信号 4 33 重置和初始化 4 com 重置 4 com1 外部重置或ISA重置 4 com2 加电重置 5 com3 掉电重置 5 ...

CS8900A数据手册中文部分翻译(可编辑)
CS8900A数据手册中文部分翻译(可编辑) CS8900A数据手册中文部分翻译 目录 CS8900A产品数据手册中文翻译部分 1 30 功能描述 1 31 概述 1 com 配置 1 com 数据包发送 1 com 数据包接收 2 32 ISA总线接口 2 com 内存模式操作 2 com IO模式操作 3 com 中断请求信号 3 com DMA信号 4 33 重置和初始化 4 com 重置 4 com1 外部重置或ISA重置 4 com2 加电重置 5 com3 掉电重置 5 com4 EEPROM重置 5 com5 软件初始重置 5 com6 硬件 HW 待命或暂停 5 com7 软件 SW 暂停 5 com 允许重置时间操作 5 com 总线重置补偿 6 com 初始化 6 49 内存模式操作 9 com 进入内存模式 9 com 把CS8900A配置成内存模式 9 com 基本内存模式发送 10 com 基本内存模式接收 11 com 在内存模式下轮询CS8900A 11 410 IO 空间操作 12 com 接收发送数据端口0和1 12 com TxCMD端口 12 com TxLength端口 13 com 中断状态队列端口 13 com PacketPage 指针端口 13 com PacketPage数据端口 0 和 1 13 com IO模式操作 14 com 基本IO模式发送 14 com 基本IO接收 14 com 采取内部寄存器 15 com IO模式下轮询CS8900A 15 52 基本接收操作 17 com1 概述 17 com 专业术语数据包帧传送 17 com1 数据包 17 com2 帧 17 com3 传送 18 com 接收配置 18 com1 配置物理接口 19 com2 选择接收哪个帧类型 19 com3 选择哪个事件引发中断 20 com4 选择如何传送帧 20 com 接收帧预处理 21 com1 目标地址过滤 21 com2 早期中断产生 21 com3 接受过滤 23 com4 正常中断产生 23 com 被持有的和DMA方式接收帧的比较 23 com 缓冲被持有的接收帧 23 com 转发被持有的接收帧 25 com 接收帧的可见性 25 com 内存模式接收操作的例子 26 com 接收帧字节计数器 27 57 发送操作 27 com 概要 27 com 发送配置 28 com1 配置物理接口 28 com2 选择哪个事件产生中断 29 com 更改配置 29 com 使能CRC 生成和添加填充位 30 com 私有数据包发送 30 com 以轮询模式发送 31 com 以中断模式发送 33 com 完成发送 34 com Rdy4TxNOW和Rdy4Tx的比较 34 com 为发送帧提供缓冲空间 35 com 发送帧的长度 35 CS8900A Product Data Sheet 37 30 FUNCTIONAL DESCRIPTION 37 31 Overview 37 com Configuration 37 com Packet Transmission 37 com Packet Reception 38 32 ISA Bus Interface 39 com Memory Mode Operation 39 com IO Mode Operation 39 com Interrupt Request Signals 40 com DMA Signals 40 33 Reset and Initialization 41 com Reset 41 com1 External Reset or ISA Reset 41 com2 Power-Up Reset 41 com3 Power-Down Reset 42 com4 EEPROM Reset 42 com5 Software Initiated Reset 42 com6 Hardware HW Standby or Suspend 42 com7 Software SW Suspend 42 com Allowing Time for Reset Operation 42 com Bus Reset Considerations 43 com Initialization 43 49 Memory Mode Operation 45 com Accesses in Memory Mode 45 com Configuring the CS8900A for Memory Mode 45 com Basic Memory Mode Transmit 47 com Basic Memory Mode Receive 47 com Polling the CS8900A in Memory Mode 48 410 IO Space Operation 48 com ReceiveTransmit Data Ports 0 and 1 48 com TxCMD Port 49 com TxLength Port 49 com Interrupt Status Queue Port 49 com PacketPage Pointer Port 49 com PacketPage Data Ports 0 and 1 50 com IO Mode Operation 50 com Basic IO Mode Transmit 50 com Basic IO Mode Receive 51 com Accessing Internal Registers 51 com Polling the CS8900A in IO Mode 52 52 Basic Receive Operation 53 com1 Overview 53 com Terminology Packet Frame and Transfer 53 com1 Packet 53 com2 Frame 54 com3 Transfer 54 com Receive Configuration 55 com1 Configuring the Physical Interface 55 com2 Choosing which Frame Types to Accept 55 com3 Selecting which Events Cause Interrupts 56 com4 Choosing How to Transfer Frames 57 com Receive Frame Pre-Processing 57 com1 Destination Address Filtering 58 com2 Early Interrupt Generation 59 com3 Acceptance Filtering 61 com4 Normal Interrupt Generation 61 com Held vs DMAed Receive Frames 61 com Buffering Held Receive Frames 61 com Transferring Held Receive Frames 62 com Receive Frame Visibility 63 com Example of Memory Mode Receive Operation 63 com Receive Frame Byte Counter 64 57 Transmit Operation 65 com Overview 65 com Transmit Configuration 66 com1 Configuring the Physical Interface 66 com2 Selecting which Events Cause Interrupts 67 com Changing the Configuration 67 com Enabling CRC Generation and Padding 68 com Individual Packet Transmission 68 com Transmit in Poll Mode 69 com Transmit in Interrupt Mode 71 com Completing Transmission 73 com Rdy4TxNOW vs Rdy4Tx 73 com Committing Buffer Space to a Transmit Frame 74 com Transmit Frame Length 75 CS8900A产品数据手册中文翻译部分 30 功能描述 31 概述 在正常操作下CS8900A表现出两个基本的功能以太网数据包发送和接收在可以发送或接收前必须配置CS8900A com 配置 在启动或重时必须配置CS8900A来进行数据包发送和接收许多参数必须写进它的配置和控制寄存器例如内存基地址以太网物理地址接收什么类型的帧和使用哪些媒体接口配置数据可以由主机通过ISA总线写到CS8900A或自动从外部EEPROM加载配置完成后就可以进行操作了 请看com配置过程的细节描述46页44节提供配置和控制寄存器的比特位的细节描述 com 数据包发送 数据包发送发送有两个阶段在第一阶段主机移动以太网帧到CS8900A的缓冲内存第一阶段以主机提交发送命令为开始这通知CS8900A一个帧将要被发送和告诉芯片什么时候开始发送例如5 381 1021或所有字节已经传送到网卡时和帧应该怎样被发送例如含不含有CRC含不含有填充比特等主机先提交发送命令然后填写发送长度表明需要多少缓冲空间当缓冲空间可用主机通过内存或IO空间操作写以太网帧到CS8900A内部内存 在发送的第二阶段CS8900A转换帧成为以太网数据包然后发送到网络第二阶段以当有适当数目的字节已经传送到它的发送缓冲区时5 381 1021或整个帧依据配置CS8900A进行发送报文头和帧开始定界符为开始在报文头和帧开始定 界符之后是目的地址源地址长度域和LLC数据全部由主机提供如果帧少于64字节包括CRC在内CS8900A会根据配置来判断是否添加填充比特最后CS8900A添加适当的32位CRC值 98页57节提供关于数据包发送的细节描述 com 数据包接收 像数据包发送一样数据包接收发送有两个阶段在第一阶段CS8900A接收以太网数据包并储存它到片上内存数据包接收的第一阶段以接收帧通过模拟前端和曼彻斯特解码器解码器负责把曼彻斯特数据转换为不归零数据然后报文头和帧开始定界符被剥去并且接收帧传送到地址过滤器如果帧目的地址符合地址过滤器的配置 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 数据包就储存在CS8900A的内部内存CS8900A然后检查CRC并根据配置通知处理器有接收帧 在第二阶段主机通过ISA总线传送接收帧到主机内存接收帧可以通过内存空间操作IO空间操作或使用主机的DMA进行DMA操作来传送同时CS8900A使用自动转换DMA和流发送提供在内存或IO操作和DMA操作之间转换的能力 com对数据包接收的细节描述 32 ISA总线接口 CS8900A提供直接接口和以8到11MHz的时钟频率运行的ISA总线连接它的片上总线驱动有能力发送24mA的驱动电流允许CS8900A直接驱动ISA总线而不用添加额外的胶连逻辑 CS8900A优化16位操作在内存空间IO空间或作为DMA从设备下的数据传送 注意ISA总线操作在8MHz以下时应该使用CS8900A的接收DMA模式来减少帧丢失请看89页54节关于接收DMA操作的描述 com 内存模式操作 当配置为内存模式操作时CS8900A的内部寄存器和帧缓冲映射到连续的4K字节的主机内存块来使主机直接存取CS8900A的内部寄存器和帧缓存主机通过使MEMR引脚接低电平来初始化读操作和使MEMW引脚接低电平来初始化写操作 请看73页49节关于内存模式的 资料 新概念英语资料下载李居明饿命改运学pdf成本会计期末资料社会工作导论资料工程结算所需资料清单 com IO模式操作 当配置为IO模式操作时通过映射到主机16个连续的IO位置的8个16位IO端口来存取CS8900AIO模式是CS8900A一个默认的配置并且始终使能 进行IO读写操作时AEN引脚必须是低电平而且ISA系统地址总线 SA0 - SA15 的16位IO地址必须符合CS8900A的地址空间进行IO读操作时IOR必须是低电平进行IO写操作时IOW必须是低电平 请看75页410节关于内存模式的资料 com 中断请求信号 CS8900A有4个可以直接连接到ISA总线上任意4个中断请求信号的中断请求输出引脚任意时刻只能使用一个中断输出在初始化阶段通过向PacketPage Memory base 0022h地址写入中断号 0 to 3 来选择中断引脚不使用的中断请求引脚置为高阻抗状态当使能了的中断被激活选择的中断请求引脚就变为高电平不断读取中断状态队列 ISQ 寄存器直至其值为0时引脚变为低电平请看78页51节关于ISQ的描述 表格1提供一种使用一般可用中断且减轻开发板布置的可行 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 来把中断请求引脚连接到ISA总线 CS8900A中断请求引脚 ISA总线中断 PacketPage base 0022h INTRQ3 Pin 35 IRQ5 0003h INTRQ0 Pin 32 IRQ10 0000h INTRQ1 Pin 31 IRQ11 0001h INTRQ2 Pin 30 IRQ12 0002h 表格 1 中断分配 com DMA信号 CS8900A直接和主机的DMA控制器连接从而为来自CS8900A内存的接收帧提 供到主机内存的DMA传送CS8900A有3对DMA引脚来直接连接ISA总线的3个 16比特的DMA通道同一时刻只能使用一个DMA通道在初始化期间通过写入要使 用的通道号码 0 1 或2 到PacketPage Memory base 0024h来选择通道不使用 的DMA引脚置为高阻抗状态当CS8900A接收到帧并通过DMA传送到主机内存时选 择了的DMA请求引脚变为高电平如果DMABurst比特位 寄存器 17 BusCTL Bit B 清0DMA操作完成后引脚就变为低电平如果DMABurst比特位置1DMA传送开始后 引脚维持32 微秒的低电平 DMA引脚对排布在CS8900A里来减少开发板的布局连接到总线时Crystal公 司推荐表格2的配置 CS8900A DMA 信号 Pin ISA DMA 信号 PacketPage base 0024h DMARQ0 Pin 15 DRQ5 0000h DMACK0 Pin 16 DACK5 DMARQ1 Pin 13 DRQ6 0001h DMACK1 Pin 14 DACK6 DMARQ2 Pin 11 DRQ7 0002h DMACK2 Pin 12 DACK7 表格 2 DMA 分配 请看89页54节关于DMA模式的描述 33 重置和初始化 com 重置 7种不同的情况引起CS8900A重置内部寄存器和电路 com1 外部重置或ISA重置 当RESET引脚持续至少400ns的高电平时发生一个芯片宽重置在芯片宽重置期间所有CS8900A的电路和寄存器重置 com2 加电重置 当提供电力时CS8900A维持重置直到在供电引脚的电压到达大约25伏特一旦Vcc大于大约25伏特并且水晶振荡器平稳后CS8900A重置结束 com3 掉电重置 如果提供电压跌到大约25伏特以下出现芯片宽重置一旦电力提供回到大于大约25伏特并且水晶振荡器平稳后CS8900A重置结束 com4 EEPROM重置 如果检测到EEPROM校验和错误出现芯片宽重置参考20页34节 com5 软件初始重置 当RESET比特位 寄存器 15 SelfCTL Bit 6 置1出现芯片宽重置 com6 硬件 HW 待命或暂停 当CS8900A进入或退出HW待命模式或HW暂停模式参考25页37节关于HW待命或暂停的更多资料时CS8900A芯片宽重置结束 com7 软件 SW 暂停 当CS8900A进入SW暂停模式时除了ISA IO基地址寄存器位于PacketPage base 0020h和SelfCTL寄存器 寄存器 15 外所有寄存器和电路重置一旦退出出现芯片宽重置参考25页37节关于SW暂停的更多资料 com 允许重置时间操作 重置后CS8900A经过一个自配置过程它包括校准片上模拟逻辑和读取EEPROM来验证和配置重置校准需要的时间一般为10ms这时软件驱动不应该存取CS8900A的内部寄存器当校准完成后Self状态寄存器 寄存器 16 的INITD比特位置1这意味着初始化完成并且同一个寄存器的SIBUSY比特位清0这表明EEPROM不再被读取或编程 com 总线重置补偿 重置后CS8900A从IO base0Ah读取3000h直到软件写入一个非零的值到IO base0Ah当系统扫描CS8900A时3000h这个值可以被看做为CS8900A签名的一部分请看75页410节 重置后ISA总线输出引脚INTRQx和DMARQx是三态门的这样避免ISA总线加电时的任何中断或DMA通道冲突 com 初始化 每种重置后除了EEPROM重置CS8900A检查EEDataIn引脚的电平来看是否有外部EEPROM存在如果EEDI是高电平则EEPROM存在并且CS8900A自动加载储存在EEPROM里的配置数据到它的内部寄存器参考下一节如果EEDI是低电平则EEPROM不存在并且CS8900A重置后的默认配置如表格3 PacketPage 地址 寄存器内容 寄存器描述 0020h 0300h IO 基地址 0022h XXXX XXXX XXXX X100 中段号码 0024h XXXX XXXX XXXX XX11 DMA 通道 0026h 0000h DMA Start of Frame Offset 0028h X000h DMA帧计数 002Ah 0000h DMA字节计数 002Ch XXX0 0000h 内存基地址 0030h XXX0 0000h 启动PROM基地址 0034h XXX0 0000h 启动PROM地址掩码 0102h 0003h 寄存器 3 - RxCFG 0104h 0005h 寄存器5 - RxCTL 0106h 0007h 寄存器7 - TxCFG 0108h 0009h 寄存器9 - TxCMD 010Ah 000Bh 寄存器B - BufCFG 010Ch Undefined 保留 010Eh Undefined 保留 0110h Undefined 保留 0112h 0013h 寄存器13 - LineCTL 0114h 0015h 寄存器15 - SelfCTL 0116h 0017h 寄存器17 - BusCTL 0118h 0019h 寄存器19 - TestCTL IO基地址是不会受软件暂停模式影响的 表格 3 默认配置 一个低廉的串行EEPROM可以用来储存配置消息在每种重置后除了EEPROM重置用来自动加载到CS8900AEEPROM是可选择使用的 CS8900A和表格4中显示的6个标准EEPROM的任意一个一起操作 EEPROM 类型 Size 16比特字 C46 non-sequential 64 CS46 sequential 64 C56 non-sequential 128 CS56 sequential 128 C66 non-sequential 256 CS66 sequential 256 表格4 提供EEPROM类型 49 内存模式操作 要把CS8900A配置成内存模式PacketPage内存必须被映射进一个主机内存的连续的4-kbyte空间内这块空间必须以X000h为开始边界即PacketPage的基地址映射到X000h当CS8900A被重置后它默认的的配置是IO模式一旦Memory模式被选择后CS8900A所有的寄存器可以被直接存取 在内存模式下CS8900A支持标准的或者准备好的且没有引入额外的等待状态的总线周期类型 内存写入可以用MOVD命令双字传送只要CS8900A的内存基地址是在双字界上因为286处理器不支持MOVD指令字和字节传送必须使用286指令集 描述 符号 读写 位于 PocketPage base 接收状态 RxStatus 只读 0400h-0401h 接收长度 RxLength 只读 0402h-0403h 接收帧 RxFrame 只读 起始于0404h 发送帧 TxFrame 只写 起始于0A00h 表 16 接收发送内存位置 com 进入内存模式 CS8900A允许对内部PacketPage内存的读写和可选Boot PROM的写操作参考25页37节对可选Boot PROM的描述当下面所有条件都成立时才可以进行内存存取 ISA系统地址总线SA0 - SA19上的地址在CS8900A 或 Boot PROM的内存空间范围内 CHIPSEL输入引脚是低电平MEMR引脚或MEMW引脚是低电平 com 把CS8900A配置成内存模式 有两种不同的方法将CS8900A配置成内存模式操作一种方法允许CS8900A 的内部内存被映射进主机系统的24位内存空间的任意地方另一种方法限制内存映射到主机内存空间的第一个1M字节空间 一般的内存模式的操作配置CS8900A要使它的内部内存可以映射到主机内存空间的任意地方需要以下操作 一个简单电路必须被添加来解码可锁存的地址总线LA20-LA23和BALE引脚信号主机必须如下把外部逻辑配置成正确地址范围 1查看INITD位寄存器16SelfSTBit 7是否设为1如果是则表明初始化是完整的 2查看ELpresent位寄存器16SelfSTBit B是否设为1这一位表明存在LA总线解码的外部逻辑 3设置EEPROM 命令寄存器的ELSEL位为1来激活ELCS引脚来使用外部解码电路 4连续配置外部逻辑 主机必须把内存基地址写进Memory Base Address寄存器PacketPage base 002Ch 主机必须设置MemoryE位为1寄存器 17BusCTLBit A 并且主机必须设置UseSA位为1寄存器 17BusCTLBit 9 限制内存模式到主机内存空间第一个1 Mbyte里需要以下条件配置CS8900A使内部内存只能映射主机内存空间第一个1 Mbyte里 CHIPSEL引脚必须连接到低电平ISA-bus SMEMR信号必须被连接到MEMR引脚ISA-bus SMEMW信号必须被连接到MEMW引脚主机必须把内存基地址写进Memory Base Address寄存器PacketPage base 002Ch主机必须设置MemoryE 位为1寄存器 17BusCTLBit A并且主机必须把UseSA位清0寄存器 17BusCTLBit 9 com 基本内存模式发送 内存模式发送操作以如下顺序发生使用中断 1主机通过向TxCMD寄存器 memory base 0144h 写入发送命令和向TxLength寄存器 memory base 0146h 写入发送帧的长度来争取帧的保存如果发送长度是错误的命令就会被丢弃并且TxBidErr 位 寄存器18BusSTBit 7 设为1 2主机读取BusST寄存器 寄存器 18memory base 0138h 如果Rdy4TxNOW位 Bit 8 设为1帧就可以被写入如果清零主机必须等待CS8900A缓冲区内存变成可用如果Rdy4TxiE 寄存器 BBufCFG Bit 8 设为1当Rdy4Tx 寄存器C BufEvent Bit 8 设为1时主机就会被中断 3一旦CS8900A准备好接收帧主机执行重复的内存到内存的move指令REP MOVS来向memory base 0A00h这个地址把整个帧从主机内存传进CS8900A内存 想得到更多的关于发送的细节描述请看98页的57节 com 基本内存模式接收 内存模式接收操作以如下顺序发生中断用来通知一个有效的接收帧的存在 1一个帧被CS8900A接收到后触发一个激活了的中断 2主机读取中断状态队列 memory base 0120h 并且被通知收到帧 3主机读取RxStatus寄存器 memory base 0400h 来知道接收到的帧的状态 4主机读取RxLength寄存器 memory base 0402h 来知道接收到的帧的长度 5主机读取帧数据时通过执行重复的内存到内存的move指令 REP MOVS 向memory base 0404h从CS8900A内存到主机内存发送整个帧 想得到更多的关于接收的细节描述请看78页的52节 com 在内存模式下轮询CS8900A 如果中断不被使用主机可以轮询CS8900A来检查是否有接收帧的存在和内存空间是否可用于发送但是这是不在数据手册的范围之内 410 IO 空间操作 再IO模式PacketPage内存通过映射到主机系统的IO空间的16个连续IO位置的16位的IO端口来存取IO模式是CS8900A默认的配置并且总是激活的当通电之后IO基地址的默认值设置为300h请注意300h通常被分配给局域网外围设备IO基地址可以被改为任何的可用的XXX0h地址位置或者是通过从EEPROM下载配置数据或者是系统启动期间表格17展示了CS8900A的IO模式映射 偏移量 类型 描述 0000h 读写 接收发送数据端口0 0002h 读写 接收发送数据端口1 0004h 只写 TxCMD发送命令 0006h 只写 TxLength发送长度 0008h 只读 中断状态队列 000Ah 读写 PacketPage指针 000Ch 读写 PacketPage 数据端口0 000Eh 读写 PacketPage 数据端口1 表17 IO模式映射 com 接收发送数据端口0和1 这两个端口当向CS8900A发送发送数据时被使用端口0用于16位操作并且端口0和1用于32位操作低字位放在端口0 com TxCMD端口 主机在每次发送操作开始都把发送命令 TxCMD 写进这个端口发送命令告诉 CS8900A主机有帧要发送同时帧应该怎样被发送这端口被映射到PacketPage base 0144h请看46页44节寄存器9来获得更多信息 com TxLength端口 发送帧的长度在发送命令写入后马上被写进这里这个端口映射到PacketPage base 0146h com 中断状态队列端口 这端口包含当前中断状态队列的值 ISQ ISQ在PacketPage base 0120h这个位置想得到更多关于ISQ的描述请看78页51节 com PacketPage 指针端口 任何时候主机想存取任何的CS8900A的内部寄存器PacketPage 指针端口就会被写入第一个12位bits 0 到 B提供了在目前操作期间要存取的目标寄存器的内部地址后三位C D 和 E是只读的并且读到的总是011b当写入PacketPage指针端口时任何方便的值可以被写入这些位最后一位Bit F表明PacketPage指针是否应该被自动增加来指向下一个字的位置图18展示PacketPage指针的结构 图18 PacketPage 指针 com PacketPage数据端口 0 和 1 PacketPage数据端口是用来向CS8900A内部寄存器交换数据的端口0用于16-bit操作并且端口0和1用于32-bit操作低字位放在端口0 com IO模式操作 要想IO读或写操作AEN引脚必须是低电平并且在ISA 系统地址总线 SA0 - SA15 上的16位 IO地址必须符合CS8900A的地址空间读数据时IOR引脚必须是低电平和写数据时IOW引脚必须是低电平 注意ISA可锁存地址总线 LA17 -LA23 对于只用IO模式和接收DMA操作的应用是不需要的 com 基本IO模式发送 IO模式发送操作以以下顺序进行使用中断 主机通过向TxCMD端口 IO base 0004h 写入发送命令并且向TxLength端口 IO base 0006h 写入发送帧的长度来请求存储帧 主机读BusST寄存器 Register 18 来看Rdy4TxNOW位 Bit 8 是否置为1要读BusST寄存器主机必须先通过写入0138h到PacketPage指针端口 IO base 000Ah 设置PacketPage指针到正确的位置它就能从PacketPage数据端口 IO base 000Ch 读取BusST寄存器如果Rdy4TxNOW位设置为1这个帧可以被写入如果清为0主机必须等待CS8900A缓冲内存变为可用为止如果Rdy4TxiE 寄存器 B BufCFG Bit 8 设为1当Rdy4Tx 寄存器C BufEvent Bit 8 置为1主机就会被中断如果TxBidErr位 寄存器 18 BusST Bit 7 置为1发送长度就无效 一旦CS8900A准备好接收帧主机向接收发送数据端口 IO base 0000h 执行重复写指令 REP OUT 来从主机内存向CS8900A内存传送整个帧 想得到更多发送的细节描述请看98页57节 com 基本IO接收 IO模式接收操作以以下顺序进行在这个例子里中断被激活来通知一个有效接收帧的存在 一个被CS8900A接收的帧触发并使能中断 主机读中断状态队列端口 IO base 0008h 并被通知有接收帧 主机读取帧数据时通过执行重复的读指令 REP IN 向接收发送数据端口 IO base 0000h 来从CS8900A内存向主机内存来传送数据在帧数据之前是RxStatus 寄存器 PacketPage base 0400h 和 RxLength 寄存器 Pack etPage base 0402h 的内容 想得到更多接收的细节描述请看78页52节 com 采取内部寄存器 要在IO模式下存取CS8900A任意的内部寄存器主机必须先建立PacketPage指针它做到这点是通过写入目标寄存器的PacketPage地址到PacketPage指针端口 IO base 000Ah 目标寄存器的内容然后就映射进PacketPage数据端口 IO base 000Ch 如果主机需要采取连续的寄存器块要存取的第一个字的PacketPage地址的MSB 最高有效位 应该设为1PacketPage指针就会自动移到下一个字的位置消除了在连续存取时建立PacketPage指针需要查看图18 com IO模式下轮询CS8900A 如果不使用中断主机可以轮询CS8900A来检查接收帧是否存在和内存空间是否可用于发送 52 基本接收操作 com1 概述 一旦一个传入的数据包传到模拟前端和曼彻斯特解码器它会经过以下三个发送处理步骤 预处理 临时缓冲 传送到主机 图20展示帧的接收步骤 如图所示不管任何传送方法所有接收帧经过相同预处理和临时缓冲阶段 一旦一个帧被预处理和缓冲它可以在内存或IO空间被主机取出另外CS8900A可以通过主机DMA传送接收帧到主机内存这一节描述接收帧的预处理和内存和IO空间的接收操作comDMA操作 com 专业术语数据包帧传送 词汇数据包帧传送广泛在下面的章节中使用他们的清晰定义在下面 com1 数据包 词汇数据包是指在以太网发送的整个比特序列串包括报文头帧的开始分隔符SFD目的地址DA源地址SA长度域数据域填充位如果有需要还有帧检查序列FCS也叫做CRC图9展示了数据包的 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 com2 帧 词汇帧是指一个数据包从目的地址到帧检查序列的部分这包括目的地址DA源地址SA长度域数据域填充位如果有需要还有帧检查序列FCS也叫做CRC图9展示了数据包的格式词汇帧数据是指从目的地址到帧检查序列之间将要发送或 已经被接收的所有数据 图20 帧接收 com3 传送 词汇传送 是指通过ISA总线向CS8900A或从他那里移动数据在接收操作期间只有帧数据被从CS8900A向主机传送报文头和帧开始分隔符被CS8900A的MAC引擎去除帧检查序列可以也可以不被传送这依赖于怎样配置所有向或来自CS8900A的传送是以字节来计算的但可能被填充为双字对齐 com 接收配置 在每次重后必须为接收操作配置CS8900A可以通过使用连接的EEPROM或写入配置命令到CS8900A的内部寄存器请看20页34节做到这点必需配置的项目包括 使用哪个物理接口 接收哪种类型的帧 哪个接收事件引起中断还有 ? 怎样传送接收帧 com1 配置物理接口 配置物理接口包括决定哪个以太网接口应该被激活和为连续接收激活接收逻辑这可以通过LineCTL寄存器 寄存器13 做到和在表18中有描述 寄存器13LineCTL 位 位名字 操作 6 SerRxON 置1后接收被激活 8 AUIonly 置1后AUI被选中优先于AutoAUI10BT 9 AutoAUI10BT 置1后激活自动接口选择当8和9位清0后选择了10BASE-T E LoRx Squelch 置1后接收器静噪 水平降低约6分贝 表格18 物理接口配置 com2 选择接收哪个帧类型 RxCTL寄存器 寄存器5 用来决定CS8900A接收哪个帧类型当接收帧被缓冲在芯片或者通过DMA在主机内存上这个帧就认为成功接收表19描述了这个寄存器的配置位参考86页53节来获得目的地址过滤的细节描述 寄存器5RxCTL 位 位名字 操作 6 IAHashA 置1后通过哈希过滤器的私有地址帧被接受 7 PromiscuousA 置1后所有帧被接受 8 RxOKA 置1后通过DA过滤器含有效长度和CRC的帧被接受 9 MulticastA 置1后通过哈希过滤器的组播帧被接受 A IndividualA 置1后含有符合PacketPage base 0158h的 IA的DA的帧被接受 B BroadcastA 置1后所有广播帧被接受 C CRCerrorA 置1后通过DA过滤器且含有错误CRC的帧被接受 D RuntA 置1后通过DA过滤器且短过64字节的帧被接受 E ExtradataA 置1后通过DA过滤器且长过1518字节的帧被接受只有第一个1518字节被缓冲 表格 19 帧接收标准 必须符合bits 8CD和E的编程标准 com3 选择哪个事件引发中断 RxCFG寄存器 寄存器3 和BufCFG寄存器 寄存器B 用来决定哪个接收事件引起主机处理器中断表格21描述这些寄存器的中断使能 iE 位 寄存器3RxCFG 位 位名字 操作 8 RxOKiE 置1后接收到有有效长度和CRC的帧后产生中断 C CRCerroriE 置1后接收到含错误CRC的帧后产生中断 D RuntiE 置1后接收到短过64字节的帧后产生中断 E ExtradataiE 置1后接收到长过1518字节的帧后产生中断 产生中断之前必须通过DA过滤器 表格20 寄存器BRufCFG 位 位名字 操作 7 RxDMAiE 置1后如果有一个或多个帧通过DMA传送就产生中断 A RxMissiE 置1后如果帧由于接收缓冲区空间不够而丢弃就产生中断 B Rx128iE 置1后如果接收数据的第一个128字节被缓冲就产生中断 D MissOvfloiE 置1后如果RxMISS遇到溢出就产生中断 F RxDestiE 置1后如果传入的帧的DA被缓冲就产生中断 表格21 寄存器 3 和 B 中断配置 com4 选择如何传送帧 RxCFG寄存器 寄存器3 和BusCTL寄存器 寄存器17 用来决定帧怎样被传送到主机内存正如表格22的描述 寄存器3RxCFG 位 位名字 操作 7 StreamE 置1后使能流发送器 9 RxDMAonly 置1后DMA从操作用于所有接收帧 A AutoRX DMAE 置1后使能自动转换DMA B BufferCRC 置1后缓冲接收到的CRC 寄存器17BusCTL 位 位名字 操作 B DMABurst 置1后DMA操作占用总线约28 μs清0后DMA操作持续 D RxDMAsize 置1后DMA缓冲区大小是64 Kbytes清0后是16 Kbytes 表22 接收帧预处理 com 接收帧预处理 CS8900A有四个步骤预处理所有接收帧 目的地址过滤 早期中断产生 验收滤波和 正常中断产生 图21提供帧的预处理图 com1 目标地址过滤 所有进来的帧都通过目标地址过滤器 DA 过滤器 如果帧的DA通过DA过滤器帧就会传到下一个预处理如果它通不过DA过滤器帧就被丢弃看86页53节来获得更多DA过滤器的细节描述 com2 早期中断产生 CS8900A支持以下两个用来通知主机收到帧的早期中断 RxDest当传入的帧的目的地址 DA 通过DA过滤器RxDest位 寄存器 C BufEventBit F 就置为1如果RxDestiE位 寄存器 B BufCFG bit F 置为1CS8900A产生相应的中断一旦RxDest置为1主机被允许读取传入的帧的DA帧的第一个6字节 Rx128当传入的帧的第一个128字节已经被接受Rx128位 寄存器 C BufEvent Bit B 就置为1如果Rx128iE位 寄存器B BufCFG bit B 置为1CS8900A产生相应的中断一旦Rx128位置为1RxDest位清0并且主机被允许读进来的帧的第一个128字节Rx128位会在主机读BufEvent寄存器 直接地或通过中断状态队列 时或者CS8900A检测到帧结束 EOF 序列时清0 图21 接收帧预处理 像所有的事件比特位RxDest和Rx128 当适当事件发生时由CS8900A置1不像别的事件比特位RxDest和Rx128可能被CS8900A清0而无需主机介入所有别的事件位清0只当主机读适当的事件寄存器直接地或通过中断状态队列 ISQ RxDest和Rx128也可以在主机读BufEvent寄存器时清0直接地或通过中断状态 队列 图22通过一个早期中断处理过程图 com3 接受过滤 预处理第3步是借助比较帧和RxCTL寄存器 寄存器 5 设置标准来决定是否接收帧如果接收帧通过接收过滤器的检查帧被缓冲或者在芯片上或者通过DMA传到主机内存如果帧没能通过接收过滤器它被丢弃接收过滤器的结果被报告到RxEvent寄存器 寄存器 4 com4 正常中断产生 预处理最后一步是产生任何使能了的并且被传入的帧触发的中断中断在整一个帧被缓冲时产生 最多1518个字节 要得到更多中断产生的信息请看78页51节 com 被持有的和DMA方式接收帧的比较 所有接受帧或者在片上持有直到被主机处理或者通过DMA存储到主机内存一个保存在片上RAM的接收帧叫做被持有的接收帧一个通过DMA保存在主机内存的接收帧叫做DMA方式接收帧这一章节描述缓冲和转发被持有的接收帧comDMA方式接收帧 com 缓冲被持有的接收帧 如果空间可用一个进来的帧会被临时放入片上RAM来等待主机的处理虽然接收帧占用片上内存CS8900A不会提供内存空间给它直到以下两个情况之一出现 整个帧已经被接收并且主机已经直接地或通过ISQ读取RxEvent寄存器 寄存器 4 来了解帧或者 帧部分被接收时引起RxDest位 寄存器 C BufEvent Bit F 或者Rx128位 寄 存器 C BufEvent Bit B 置1并且主机已经直接地或通过ISQ读取BufEvent寄存器 寄存器 C 来了解帧 图22 早期中断产生 当CS8900A提供缓冲空间给某个的被持有的接收帧 被称为被保障的接收帧 随后的帧没有数据被写入缓冲空间直到帧不被保障 被保障的接收帧可以是无差错的也可以不是 在以下任一情况下一个帧不再被保障 主机按照接收顺序读整一个帧 写入一个字节 读出一个字节 或者 主机读取或不读帧的某部分时通过设置Skip_1位 寄存器 3 RxCFG bit 6 来写入Skip命令或者 主机直接地或通过ISQ读取帧的某部分和读取RxEvent寄存器 寄存器 5 并了解别的接收帧这情况叫做隐式跳过要保证主机不会隐式跳过 当被保障的接收帧在等待主机来处理时那两个早期中断会失效 com 转发被持有的接收帧 在内存空间或IO空间下主机可以读出被持有的接收帧在内存空间下转发帧主机执行重复的Move指令 REP MOVS 从PacketPage base 0404h下读取在IO空间下转发帧主机执行重复的In指令 REP IN 从IO base 0000h下读取还有帧的状态和长度处理 有三个可能的方法主机可以知道某个帧的状态可以 读中断状态队列 直接读RxEvent寄存器 寄存器 4 或 读RxStatus寄存器 PacketPage base 0400h com 接收帧的可见性 每次只有一个接收帧对主机可见接收帧的状态可以从RxStatus寄存器 PacketPage base 0400h 读出它的长度可以从RxLength寄存器 PacketPage base 0402h 读出要得到更多内存空间操作的信息请看73页49节要得到更多IO空间操作的信息请看75页410节 com 内存模式接收操作的例子 短帧的普通长度是64字节包括4字节CRC假设接收这个帧时CS8900A是这样配置的 BufferCRC位 寄存器 3 RxCFG Bit B 置1时使得4字节CRC和剩下的接收数据一起被缓冲 RxOKA位 寄存器 5 RxCTL Bit 8 置1时使得CS8900A会接收正确的帧 一个正确的帧是有合法长度和有效CRC的 RxOKiE位 寄存器 3 RxCFG Bit 8 置1时使得接收到正确帧时产生中断 然后转发到主机是这样的 CS8900A对主机产生RxOK中断来报告有正确帧抵达 在RxOK置1前提下主机读ISQ PacketPage base 0120h 来获得接收帧的状态和查看RxEvent寄存器 寄存器 4 的内容 主机读RxLength寄存器 PacketPage base 0402h 来得到接收帧长度 主机通过执行32次连续的MOV指令从PacketPage base 0404h这里读帧数据 64字节帧的内存映射关系在表23里 表23 内存映射举例 内存空间字偏移 片上RAM数据存储描述 0400h RxStatus寄存器 由于RxEvent被从ISQ读出主机可以跳过读0400h 0402h RxLength寄存器 在这个例子长度是40h个字节帧从0404h开始到0443h 0404h to 0409h 6字节源地址 040Ah to 040Fh 6字节目的地址 0410h to 0411h 2字节长度或类型域 0412h to 043Fh 46字节数据 0440h CRC字节1和2 0442h CRC字节3和4 com 接收帧字节计数器 接收帧字节计数器描述当前接收帧的字节数计数器随着从以太网接收到字节而实时地增加字节计数器可以被驱动用来决定可以从CS8900A读出多少字节用IO模式或内存模式和把CPU用在读计数器上并且当以太网的帧被CS8900A接收的同时使用计数来从CS8900A读取帧可以达到最大以太网吞吐量 并行帧接收和帧读出任务 字节计数寄存器在PacketPage base 50hRxDest或Rx128中断产生之后这个寄存器包含CPU可读的字节的数目当到达帧尾计数包含帧的最终计数值包括BufferCRC选项导致的额外的值当最终计数被CPU读出计数寄存器设为0因此可以使用字节计数寄存器来读完整的帧寄存器可以被读取并且移动数据直到检测到计数为0然后RxEvent寄存器可以被读取来决定最终的帧状态 顺序如下 1 在开始接收帧时字节计数器和传入字符计数器是一致的在帧接收结束前也相等 2 帧接收结束时最后计数包括CRC部分如果使能BufferCRC选项被保留到字节计数器被读取 3 当读取字节计数器的值为0时前一个计数是最后值这个计数也可能现在 是一个奇怪的值 4 Skip命令后RxEvent寄存器应该被读出以获得帧的最终状态来完成操作 注意所有RxEvent的位应该在使用字节计数器前被处理当RxDest或Rx128中断设置了字节计数器应该在BufEvent有事件后被使用 57 发送操作 com 概要 数据包发送发生在两个阶段在第一个阶段主机移动以太网帧到CS8900A的缓冲内存第一阶段以主机填写发送命令为开始这告诉CS8900A帧将要发送一个帧和何时即5381还是1021字节还是整个帧已经被传送到CS8900A后怎样发送帧即含有还是不含CRC含有还是不含填充位等填写发送命令后主机接着填写发送长度表明需要多少缓冲空间当缓冲空间可用主机使用内存或IO空间把以太网帧写到CS8900A的内部存储器在发送的第二阶段CS8900A转换帧为以太网数据包然后发送它到网络第二阶段以CS8900A发送报文头和帧的开始分隔符当足够多的字节被传送到它的发送缓冲53811021字节或整个帧根据寄存器的配置报文头和帧的开始分隔符之后是主机传送到片上缓冲的数据目的地址源地址长度域和LLC数据如果帧少于64字节包括CRCCS8900A如果有相应配置就会添加填充位最后CS8900A添加相应的32位CRC值 com 发送配置 每次重必须配置CS8900A的发送操作使用相连EEPROM的可以自动做到这点或者写配置命令到CS8900A的内部寄存器请看20页34节必须被配置的项目包括使用哪个物理接口和哪个发送事件引起中断 com1 配置物理接口 配置物理接口包括决定哪个以太网接口应该被激活 10BASE-T还是AUI 并且使能串行发送的发送逻辑配置物理接口由LineCTL寄存器寄存器13完成和表30是它的描述 表30 物理接口配置 寄存器13LineCTL 位 位名字 操作 7 SerTxON 置1后使能发送 8 AUIonly 置1后选择AUI优先于AutoAUI10BT清0后选择10BASE-T 9 AutoAUI10BT 置1后使能自动接口选择 B Mod BackoffE 置1后使用修改的退避算法清0后使用标准退避算法 D 2-part DefDis 置1后两部分延时失效 注意当现在没有接收到链路脉冲时只有测试控制寄存器寄存器19DisableLT位置1CS8900A在10BASE-T模式下才能发送 com2 选择哪个事件产生中断 TxCFG寄存器 寄存器 7 和BufCFG寄存器 寄存器 B 用来决定哪个发送事件会引起主机处理器中断表31和32描述这些寄存器的中断使能 iE 位 com 更改配置 寄存器7TxCFG 位 位名字 操作 6 Loss-of-CRSiE 置1后当发送报文头后CS8900A 检测载波监听失败就产生中断只应用于AUI 7 SQErroriE 置1后出现SQE错误时产生中断 8 TxOKiE 置1后发送帧成功后产生中断 9 Out-of-windowiE 置1后检测到晚冲突就产生中断 A JabberiE 置1后当出现发送时间过长就产生中断 B AnycolliE 置1后任何冲突出现就产生中断 F 16colliE 置1后CS8900A 尝试发送单一的帧16次就产生中断 表 31 发送时的中断配置 当主机配置了这些寄存器后在后续的包发送时就不用改变他们了主机也可以随时修改TxCFG或BufCFG寄存器修改后的效果会马上看到即任何中断使能 iE 位的改变可以影响目前发送的包 寄存器BBufCFG 位 位名字 操作 8 Rdy4TxiE 置1后当缓冲空间可用于发送帧就产生中断和发送请求一起使用 9 TxUnderruniE 置1后当发送开始后CS8900A耗尽数据就产生中断 C TxColOvfloiE 置1后TxCol计数器溢出就产生中断 表 32 发送中断配置 如果主机要在初始化后改变LineCTL寄存器ModBackoffE位和任何接收相关位LoRxSquelchSerRxON可以随时改变但是SerTxON位置1后不应该修改Auto AUI10BT和AUIonly位如果这三位之一将会再改变主机应该把SerTxON位清0 寄存器 13 LineCTLBit 7 然后等到修改完成后把它置1 com 使能CRC 生成和添加填充位 当主机提出发送请求命令它必须申明循环冗余检验 CRC 值应该被添加到发送帧和填充位是否要添加 如果需要 表33描述怎样配置CS8900A的CRC 生成和添加填充位 寄存器9TxCMD InhibitCRC Bit C TxPadDis Bit D 操作 0 0 必要的话在64字节后添加填充位 包含CRC 1 0 发送短帧如果指定的长度短于60字节 0 1 必要的话在60字节后添加填充位 不包含CRC 1 1 发送短帧如果指定的长度短于64字节CS8900A不会发送短于3字节的帧 表 33 CRC 和填充位配置 com 私有数据包发送 当主机有数据包发送它必须向CS8900A提出发送请求包括如下以正确顺序显示的三个操作 主机必须写发送命令到TxCMD寄存器 PacketPage base 0144h TxCMD寄存器的内容可以从TxCMD寄存器 寄存器 9 读出来 主机必须写帧长度到TxLength寄存器 PacketPage base 0146h 主机必须读BusST寄存器 寄存器 18 写入TxCMD的消息告诉CS8900A怎样发送下一个帧这些必须写入TxCMD寄存器的位如表34里描述 寄存器9TxCMD 位 位名字 操作 6 7 Tx Start 0 0 传送5字节到CS8900A 后发送报文头 0 1 传送381字节到CS8900A 后发送报文头 1 0 传送1021字节到CS8900A 后发送报文头 1 1 传送整个帧到CS8900A 后发送报文头 8 Force 置1后CS8900A 丢弃目前在发送缓冲的所有帧数据 9 Onecoll 置1后CS8900A出现冲突后不会尝试再发送任何包 C InhibitCRC 置1后CS8900A不会添加32位CRC值到所有发送包末尾 D TxPadDis 置1后CS8900A不会为短帧添加填充位 表 34 发送命令配置 对于每个私有包的发送主机必须提交完整的包发送请求还有主机必须在每次包发送前写TxCMD寄存器即使TxCMD寄存器的内容不再改变以上描述的发送请求可以在内存空间或IO空间 com 以轮询模式发送 在轮询模式下Rdy4TxiE位 寄存器 B BufCFG Bit 8 必须清0中断失效发送 操作如以下顺序发生和展示在图30里 主机写发送命令到TxCMD寄存器 memory base 0144h在内存模式下和 IO base 0004h在IO模式下 来请求帧存储 主机写发送帧长度到TxLength寄存器 memory base 0146h在内存模式下和 IO base 0006h在IO模式下 如果发送长度有错误命令被丢弃并且TxBidErr位 寄存器 18 BusST Bit 7 置1 主机读BusST寄存器在内存模式下是读寄存器18在memory base 0138h在IO模式下主机必须先写0138h到PacketPage指针端口 IO base 000Ah 来设置PacketPage指针到正确位置主机可以从PacketPage数据端口 IO base 000Ch 读BusST寄存器 读寄存器后要检查Rdy4TxNOW位 Bit 8 如果置1可以写帧数据否者主机必须继续读BusST寄存器 寄存器 18 和检查Rdy4TxNOW位 Bit 8 直到它为1 当CS8900A准备好接受帧主机使用REP指令 内存模式下REP MOVS从memory base 0A00h开始和IO模式下REP OUT到接收发送数据端口 IO base 0000h 从主机内存传送整个帧到CS8900A内存 图30 轮询模式下的发送操作 com 以中断模式发送 图31 中断模式下的发送操作 中断模式下Rdy4TxiE位 寄存器 B BufCFG Bit 8 必须置1来进行发送操作发送操作如以下顺序发生和展示在图31里 主机写发送命令到TxCMD寄存器 memory base 0144h在内存模式下和 IO base 0004h在IO模式下 来请求帧存储 主机写发送帧长度到TxLength寄存器 memory base 0146h在内存模式下和 IO base 0006h在IO模式下 如果发送长度有错误命令被丢弃并且BusST寄存器的TxBidErr位bit 7置1 主机读BusST寄存器在内存模式下是读寄存器18在memory base 0138hIO模式下主机必须先写0138h到PacketPage指针端口 IO base 000Ah 来设置PacketPage指针到正确位置它然后能从PacketPage数据端口 IO base 000Ch 读BusST寄存器然后检查Rdy4TxNOW位如果置1可以写帧数据到CS8900A内存如果Rdy4TxNOW清0主机必须等到CS8900A缓冲内存可用这时主机会中断一旦中断主机进入中断服务程序和读ISQ寄存器 内存模式下Memory base 0120h和IO模式下IO base 0008h 来检查Rdy4Tx位 bit 8 如果Rdy4Tx清0则CS8900A准备好接受帧当CS8900A准备好接受帧主机使用REP指令 内存模式下REP MOVS从memory base 0A00h开始和IO模式下REP OUT到接收发送数据端口 IO base 0000h 从主机内存传送整个帧到CS8900A内存 com 完成发送 当CS8900A成功完成发送一个帧它把TxOK位 寄存器 8 TxEvent Bit 8 置1如果TxOKiE位 寄存器 7 Tx CFG bit 8 置1CS8900A就产生相应的中断 com Rdy4TxNOW和Rdy4Tx的比较 Rdy4TxNOW位 寄存器 18 BusST bit 8 用来告诉主机CS8900A准备好接受发送帧当不使用中断时 即Rdy4TxiE位 寄存器 B BufCFG Bit 8 清0 这一位用来在发送请求过程或之后告诉主机空间可用还有Rdy4Tx位需要Rdy4TxiE位置1才可以和中断一起使用 图 30 提供无冲突的无错发送图 com 为发送帧提供缓冲空间 当主机提交发送请求CS8900A检查发送帧长度看是否有足够片上缓冲空间如果有CS8900A置Rdy4TxNOW位为1如果没有并且Rdy4TxiE位置1CS8900A等到缓冲空间释放然后置Rdy4Tx位为1如果Rdy4TxiE清0当空间可用CS8900A置 Rdy4TxNOW位为1 尽管发送缓冲空间可能可用CS8900A不会为发送帧提供缓冲空间直到以下全成立 主机必须提交发送请求 发送请求必须成功并且 主机读到Rdy4TxNOW位 寄存器 18 BusST Bit 8 是置1的或者主机读到Rdy4Tx位 寄存器 C BufEvent bit 8 是置1的 如果CS8900A提供了缓冲空间给某个发送帧它不会允许后面的帧写入缓冲空间只要那个发送帧还在被处理 缓冲空间被分配后随后帧被发送除非以下之一发生 主机完全写入帧数据但发送在以太网线失败有三个这样的错误并且由TxEvent寄存器 寄存器 8 的三个发送错误位16collJabber或Out-of-Window标明或 主机把Force位 寄存器 9 TxCMD bit 8 置1来停止发送这情况下被处理的发送帧和所有排队在片上内存马上要发送的帧都被清空和不被发送使用Force位时主机应该使TxLength 0或 出现发送欠载并且TxUnderrun位 寄存器 C BufEvent Bit 9 置1 TxOK位 寄存器 8 TxEvent Bit 8 置1表明发送成功 com 发送帧的长度 发送请求期间发送帧的长度由写入TxLength寄存器 PacketPage base 0146h 的值决定发送帧的长度可以由TxPadDis位 寄存器 9 TxCMD Bit D 和InhibitCRC位 寄存器 9 TxCMD Bit C 的配置修改表35定义这些位怎样影响发送帧的长度还有它展示了CS8900A会发送哪些帧 寄存器 9 TxCMD 主机在0146h指定发送长度按字节 TxPadDis Bit D InhibitCRC Bit C 3 TxLength 60 60 TxLength 1514 1514 TxLength 1518 0 0 填充到60和添加CRC 发送帧和添加CRC[一般模式] 不发送 不发送 0 1 填充到60和不含CRC 发送帧和不含CRC 不含CRC 不发送 1 0 不填充和添加CRC 发送帧和添加CRC 不发送 不发送 1 1 不填充和和不含CRC 发送帧和不含CRC 不含CRC 不发送 注意8如果TxPadDis位清0和InhibitCRC置1并且命令CS8900A发送长度少于60字节的帧CS8900A添加填充位 9 TxLength少于3字节时CS8900A不会发送帧 表 35 发送帧长度 Product Data Sheet 30 FUNCTIONAL DESCRIPTION 31 Overview During normal operation the CS8900A performs two basic functions Ethernet packet transmission and reception Before transmission or reception is possible the CS8900A must be configured com Configuration The CS8900A must be configured for packet transmission and reception at power-up or reset Various parameters must be written into its internal Configuration and Control registers such as Memory Base Address Ethernet Physical Address what frame types to receive and which media interface to useConfiguration data can either be written to the CS8900A by the host across the ISA bus or loaded automatically from an external EEPROM Operation can begin after configuration is complete Section 33 on page 18 and Section 34 on page 20 describe the configuration process in detailSection 44 on page 46 provides a detailed description of the bits in the Configuration and Control Registers com Packet Transmission Packet transmission occurs in two phases In the first phase the host moves the Ethernet frame into the CS8900As buffer memory The first phase begins with the host issuing a Transmit CommandThis informs the CS8900A that a frame is to be transmitted and tells the chip when to start transmission ie after 5 381 1021 or all bytes have been transferred and how the frame should be sent ie with or without CRC with or without pad bitsetc The Host follows the Transmit Command with the Transmit Length indicating how much buffer space is required When buffer space is available the host writes the Ethernet frame into the CS8900As internal memory either as a Memory or IO space operation In the second phase of transmission the CS8900Aconverts the frame into an Ethernet packet then transmits it onto the network The second phase begins with the CS8900A transmitting the preamble and Start-of-Frame delimiter as soon as the proper number of bytes has been transferred into its transmit buffer 5 381 1021 bytes or full frame depending on configuration The preamble and Start-of-Frame delimiter are followed by the Destination Address Source Address Length field and LLC data all supplied by the host If the frame is less than 64 bytes including CRC the CS8900A adds pad bits if configured to do so Finally the CS8900A appends the proper 32-bit CRC value The Section 57 on page 98 provides a detailed description of packet transmission com Packet Reception Like packet transmission packet reception occurs in two phases In the first phase the CS8900A receives an Ethernet packet and stores it in on-chip memory The first phase of packet reception begins with the receive frame passing through the analog front end and Manchester decoder where Manchester data is converted to NRZ data Next the preamble and Start-of-Frame delimiter are stripped off and the receive frame is sent through the address filter If the frames Destination Address matches the criteria programmed into the address filter the packet is stored in the CS8900As internal memory The CS8900A then checks the CRC and depending on the configuration informs the processor that a frame has been received In the second phase the host transfers the receive frame across the ISA bus and into host memoryReceive frames can be transferred as Memory space operations IO space operations or as DMA operations using host DMA Also the CS8900A provides the capability to switch between Memory or IO operation and DMA operation by using Auto-Switch DMA and StreamTransfer The Section 52 on page 78 through Section 56 on page 95 provide a detailed description of packet reception 32 ISA Bus Interface The CS8900A provides a direct interface to ISA buses running at clock rates from 8 to 11 MHz Its on-chip bus drivers are capable of delivering 24 mA of drive current allowing the CS8900A to drive the ISA bus directly without added external "glue logic" The CS8900A is optimized for 16-bit data transfers operating in either Memory space IO spaceor as a DMA slave Note that ISA-bus operation below 8 MHz should use the CS8900As Receive DMA mode to minimize missed frames See Section 54 on page 89 for a description of Receive DMA operation com Memory Mode Operation When configured for Memory Mode operation the CS8900As internal registers and frame buffers are mapped into a contiguous 4-Kbyte block of host memory providing the host with direct access to the CS8900As internal registers and frame buffers The host initiates Read operations by driving the MEMR pin low and Write operations by driving the MEMW pin low For additional information about Memory Mode see Section 49 on page 73 com IO Mode Operation When configured for IO Mode operation the CS8900A is accessed through eight 16-bit IO ports that are mapped into sixteen contiguous IO locations in the host systems IO space IO Mode is the default configuration for the CS8900A and is always enabled For an IO Read or Write operation the AEN pin must be low and the 16-bit IO address on the ISA System Address bus SA0 - SA15 must match the address space of the CS8900A For a Read IOR must be low and for a Write IOW must be low For additional information about IO Mode see Section 410 on page 75 com Interrupt Request Signals The CS8900A has four interrupt request output pins that can be connected directly to any four of the ISA bus Interrupt Request signals Only one interrupt output is used at a time It is selected during initialization by writing the interrupt number 0 to 3 into PacketPage Memory base 0022h Unused interrupt request pins are placed in a high-impedance state The selected interrupt request pin goes high when an enabled interrupt is triggered The pin goes low after the Interrupt Status Queue ISQ is read as all 0s see Section 51 on page 78 for a description of the ISQ Table 1 presents one possible way of connecting the interrupt request pins to the ISA bus that utilizes commonly available interrupts and facilitates board layout CS8900A Interrupt Request Pin ISA Bus Interrupt PacketPage base 0022h INTRQ3 Pin 35 IRQ5 0003h INTRQ0 Pin 32 IRQ10 0000h INTRQ1 Pin 31 IRQ11 0001h INTRQ2 Pin 30 IRQ12 0002h Table 1 Interrupt Assignments com DMA Signals The CS8900A interfaces directly to the host DMA controller to provide DMA transfers of receive frames from CS8900A memory to host memory The CS8900A has three pairs of DMA pins that can be connected directly to the three 16-bit DMA channels of the ISA bus Only one DMA channel is used at a time It is selected during initialization by writing the number of the desired channel 0 1 or 2 into PacketPage Memory base 0024h Unused DMA pins are placed in a high-impedance state The selected DMA request pin goes high when the CS8900A has received frames to transfer to the host memory via DMA If the DMABurst bit register 17 BusCTL Bit B is clear the pin goes low after the DMA operation is complete If the DMABurst bit is set the pin goes low 32 μs after the start of a DMA transfer The DMA pin pairs are arranged on the CS8900A to facilitate board layout Crystal recommends the configuration in Table 2 when connecting these pins to the ISA bus CS8900A DMA Signal Pin ISA DMA Signal PacketPage base 0024h DMARQ0 Pin 15 DRQ5 0000h DMACK0 Pin 16 DACK5 DMARQ1 Pin 13 DRQ6 0001h DMACK1 Pin 14 DACK6 DMARQ2 Pin 11 DRQ7 0002h DMACK2 Pin 12 DACK7 Table 2 DMA Assignments For a description of DMA mode see Section 54 on page 89 33 Reset and Initialization com Reset Seven different conditions cause the CS8900A to reset its internal registers and circuits com1 External Reset or ISA Reset There is a chip-wide reset whenever the RESET pin is high for at least 400 ns During a chip-wide reset all circuitry and registers in the CS8900A are reset com2 Power-Up Reset When power is applied the CS8900A maintains reset until the voltage at the supply pins reaches approximately 25 V The CS8900A comes out of reset once Vcc is greater than approximately 25 V and the crystal oscillator has stabilized com3 Power-Down Reset If the supply voltage drops below approximately 25 V there is a chip-wide reset The CS8900A comes out of reset once the power supply returns to a level greater than approximately 25 V and the crystal oscillator has stabilized com4 EEPROM Reset There is a chip-wide reset if an EEPROM checksum error is detected see Section 34 on page 20 com5 Software Initiated Reset There is a chip-wide reset whenever the RESET bit Register 15 SelfCTL Bit 6 is set com6 Hardware HW Standby or Suspend The CS8900A goes though a chip-wide reset whenever it enters or exits either HW Standby mode or HW Suspend mode see Section 37 on page 25 for more information about HW Standby and Suspend com7 Software SW Suspend Whenever the CS8900A enters SW Suspend mode all registers and circuits are reset except for the ISA IO Base Address register located at PacketPage base 0020h and the SelfCTL register Register 15 Upon exit there is a chip-wide reset see Section 37 on page 25 for more information about SW Suspend com Allowing Time for Reset Operation After a reset the CS8900A goes through a self configuration This includes calibrating on-chip analog circuitry and reading EEPROM for validity and configuration Time required for the reset calibration is typically 10 ms Software drivers should not access registers internal to the CS8900A during this time When calibration is done bit INITD in the Self Status Register register 16 is set indicating that initialization is complete and the SIBUSY bit in the same register is cleared indicating the EEPROM is no longer being read or programmed com Bus Reset Considerations The CS8900A reads 3000h from IObase0Ah after the reset until the software writes a non-zero value at IObase0Ah The 3000h value can be used as part of the CS8900A signature when the system scans for the CS8900A See Section 410 on page 75 After a reset the ISA bus outputs INTRx and DMARQx are 3-Stated thus avoiding any interrupt or DMA channel conflicts on the ISA bus at powerup time com Initialization After each reset except EEPROM Reset the CS8900A checks the sense of the EEDataIn pin to see if an external EEPROM is present If EEDI is high an EEPROM is present and the CS8900A automatically loads the configuration data stored in the EEPROM into its internal registers see next section If EEDI is low an EEPROM is not present and the CS8900A comes out of reset with the default configuration shown in Table 3 PacketPage Address Register Contents Register Descriptions 0020h 0300h IO Base Address 0022h XXXX XXXX XXXX X100 Interrupt Number 0024h XXXX XXXX XXXX XX11 DMA Channel 0026h 0000h DMA Start of Frame Offset 0028h X000h DMA Frame Count 002Ah 0000h DMA Byte Count 002Ch XXX0 0000h Memory Base Address 0030h XXX0 0000h Boot PROM Base Address 0034h XXX0 0000h Boot PROM Address Mask 0102h 0003h Register 3 - RxCFG 0104h 0005h Register 5 - RxCTL 0106h 0007h Register 7 - TxCFG 0108h 0009h Register 9 - TxCMD 010Ah 000Bh Register B - BufCFG 010Ch Undefined Reserved 010Eh Undefined Reserved 0110h Undefined Reserved 0112h 0013h Register 13 - LineCTL 0114h 0015h Register 15 - SelfCTL 0116h 0017h Register 17 – BusCTL 0118h 0019h Register 19 – TestCTL IO base address is unaffected by Software Suspend mode Table 3 Default Configuration A low-cost serial EEPROM can be used to store configuration information that is automatically loaded into the CS8900A after each reset except EEPROM reset The use of an EEPROM is optional The CS8900A operates with any of six standard EEPROMs shown in Table 4 EEPROM Type Size 16 bit words C46 non-sequential 64 CS46 sequential 64 C56 non-sequential 128 CS56 sequential 128 C66 non-sequential 256 CS66 seque
本文档为【CS8900A数据手册中文部分翻译(可编辑)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_721103
暂无简介~
格式:doc
大小:97KB
软件:Word
页数:42
分类:生产制造
上传时间:2017-10-11
浏览量:19