新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于DM9000A的DSP以太网接口设计与实现

基于DM9000A的DSP以太网接口设计与实现

作者:时间:2014-03-12来源:网络收藏
nt-family: 宋体, Georgia, verdana, serif; background-color: rgb(255, 255, 255); ">初始化流程如图4所示。

本文引用地址:http://www.eepw.com.cn/article/241677.htm

完成上述初始化步骤后,就处于正常工作状态,可以收发数据包。若有异常发生,就需要重复上述步骤,重启以使芯片恢复到正常状态。

3.1.2 数据帧发送

内部有16 KB的SRAM作为接收/发送数据的缓存区,其中前3 KB的空间,地址从0x0000H~0x0BFFH,用来缓存需要发送的数据。

数据发送的具体步骤如下:

(1)利用写操作寄存器MWCMD(F8H),将需要发送的数据帧写入DM9000A的发送缓存区。

(2)将数据帧长度写入长度寄存器TXPLL(FCH)和TXPLH(FDH)。

(3)设置发送控制寄存器TCR(02H),TXREQ=1,数据帧开始发送。

(4)检查网络状态寄存器NSR(01H)的TX2END和TX1END位,判断此帧数据是否发送完。

数据帧发送流程图如图5所示。

3.1.3 数据帧接收

当DM9000A数据接收使能后,DM9000A就会自动接收数据。DM9000A接收到的数据先保存在地址从0x0C00~0x3FFF的13 KB内部SRAM缓存空间中,它是一个环形结构。

利用寄存器MRCMDX(FOH)和寄存器MRCMD(F2H)可获取缓存中的数据帧信息。接收到的数据帧格式如图6所示。

其中第1个字节是接收数据标志字节,表征接收到数据帧是否有效。第2个字节是接收数据帧的状态字节,其中的内容与接收状态寄存器RSR中的内容相同,可以用来判断所接收的数据帧是否正常。第3,4个字节是接收到数据的长度字节,其中低位在前,高位在后。从第5个字节开始的数据才是真正数据帧内容。

数据接收过程如下:

(1)检查中断状态寄存器:ISR(FEH),若PRS位为1,说明有新的数据帧接收,写1清除PRS位;若为0,说明无数据,直接返回。

(2)读取第1个字节,即接收数据标志字节。如果该字节为01,则表示接收下来的是有效数据帧;如果该位为00则表示没有数据到达,或数据已经接收完成;如果既不是01又不是00,则认为有异常发生,这时就要将DM9000A芯片重启以使芯片恢复到正常状态。

(3)读取第2个字节,即接收状态字节。根据接收状态字节判断所接收的数据帧是否正常。

(4)读取第3,4字节,即数据帧长度字节。

(5)读取真正的数据帧内容。

(6)根据获取的长度信息,判断是否读完一帧。如果读完,接着读下一帧,直到遇到首字节是00H的帧,说明接收数据已读完。

数据帧接收流程如图7所示。

3.2 上层通信协议程序设计

TCP/IP协议模型可以分为四个层次,从下到上依次为:链路层、网络层、传输层和应用层。每一层都有不同的功能,低一层为高一层提供服务。

标准的TCP/IP协议栈对处理器的计算、存储要求比较高,然而,系统的计算资源和存储资源通常是非常有限,在中实现标准的TCP/IP协议栈将占用大量系统资源,不利于其他方面的应用,因此必须对它进行简化并优化,尽可能做到代码精简,降低存储开销。本系统设计和实现了TCP/IP通信协议的必要部分,包括:ARP,IP,ICMP,TCP,UDP等协议。

ARP(地址解析协议)为IP地址到对应的硬件地址之间提供动态映射。IP协议是TCP/IP协议的核

双绞线传输器相关文章:双绞线传输器原理


评论


相关推荐

技术专区

关闭