新闻中心

EEPW首页>嵌入式系统>设计应用> 基于DM9000A的网络接口设计

基于DM9000A的网络接口设计

作者: 时间:2012-07-17 来源:网络 收藏

单片机数据发送的具体程序如下所示:
g.JPG
h.JPG
3.3 数据接收
可以采用中断的方式来完成对数据的接收。当接收到数据并通过CRC校验后,将产生一个接收中断信号,单片机在中断发生时可以将整个数据包读出,并按照使用的协议来处理数据。内存的0C00h~3FFFh是数据接收缓冲区。芯片在接收到数据包后,会在数据包的前面自动加上4个字节的数据,接收数据包时首先要读取这4个字节来确定数据包的状态,第一个字节“01H”表示接下来的是有效数据包,且数据保存在接收缓冲区中;若为“00H”则表示没有数据包,中断程序可以直接返回;若为其他值则表示出现异常,需要重新初始化芯片。第2个字节则为这个数据包的相关信息,其格式与RSR寄存器的含义一致,可以用来判断本数据包是否出现异常和出现了什么异常。第3和4个字节是存放这个封包的长度大小(不包括前4个字节),在读取数据包时需要用这个长度来进行接收控制。
同数据发送类似,单片机从中读取数据也只需要读取MRCMD寄存器中的值即可,读取一个字节数据后,芯片自动将下一个字节数据移到这个寄存器中。数据包的接收过程分2步:先读取MRCMDX寄存器,判断是否存在正确的数据包;如有数据包,根据数据包的长度信息依次读取读MRCMD寄存器,将整个数据包读取出来。其中第1步需要读取两次MRCMDX寄存器,因为第1次读到的值总为0。单片机数据接收程序如下:
i.JPG
j.JPG


评论


相关推荐

技术专区

关闭