首页 理论教育现场总线与工业以太网的功能及应用

现场总线与工业以太网的功能及应用

【摘要】:在此包发送结束之前,index2数据包被移入发送缓冲区,Index1数据包发送结束之后,将index2数据包的字节数写入字节计数寄存器,然后置位发送控制寄存器的位1来发送数据包index2。首部的4个字节依次是01H、状态、长度低字节和长度高字节。

1.主机接口

主机接口是一个通用处理器局部总线,使用片选信号(引脚CS#)来访问DM9000A。CS#引脚默认低电平有效,可在E2PROM中重新定义。

只有INDEX端口、DATA端口两个地址端口经过主机接口。引脚CMD=0时,为IN-DEX端口;引脚CMD=1时,为DATA端口。在访问任何寄存器前,寄存器的地址必须保存在INDEX端口。

2.直接内存访问控制

DM9000提供DMA方式,以简化对内部存储器的访问。对内部存储器起始地址编程后,发出虚拟的读/写命令加载当前数据到内部数据缓冲区,这样内部寄存器指定地址可被读/写命令寄存器访问。根据当前总线模式的字长使存储地址自动加1(存储器地址将会自动增加,增加的大小与当前总线操作模式相同,如8位、16位或32位),下一个地址的数据将会自动加载到内部数据缓冲区。要注意的是,连续突发式第一次访问(虚拟的读/写命令)到的数据应该被忽略,因为那是上一次读/写命令的内容。

内部存储器空间为16KB。前3KB单元用做发送包的缓冲区,其他13KB用做接收包的缓冲区。所以在写存储器操作时,当地址越界(即超出3KB空间),且IMR寄存器的位7被置位时,存储器地址指针将会跳回到0地址处。同样,在读存储器操作时,当地址越界(即超出16KB空间),且IMR寄存器位7被置位时,存储器地址指针将会跳到地址0x0C00处。(www.chuimin.cn)

3.数据包发送

有两个数据包,命名为index1和index2,能同时存储在发送缓冲区。发送控制寄存器(02H)控制冗余校验码和填充的插入,其状态分别记录在发送状态寄存器1(03H)和发送状态寄存器2(04H)中。

发送器的起始地址是0x00H,软件或硬件复位后,默认的数据发送包为index1。首先,通过DMA端口将数据写入发送缓冲区;其次,在发送数据包长度寄存器(FCH/FDH)中,把字节数写入到字节计数寄存器;然后,置位发送控制寄存器的位1来发送index1数据包。在此包发送结束之前,index2数据包被移入发送缓冲区,Index1数据包发送结束之后,将index2数据包的字节数写入字节计数寄存器,然后置位发送控制寄存器的位1来发送数据包index2。以此类推,后面的数据包发送都采用此方式进行。

4.数据包接收

DM9000A中的接收缓存区是一个环形数据结构。由软件/硬件初始化后的起始地址为0C00H,每帧数据都有4个字节长的首部,然后是有效数据和CRC校验序列。首部的4个字节依次是01H、状态、长度低字节和长度高字节。