微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机实现串口协议的网络化

单片机实现串口协议的网络化

时间:08-02 来源:互联网 点击:

口。

  使CR=0x21,停止芯片运行,选择页面0。

  使RBCR1=0;RBCR0=0,将远程DMA操作的传输字节数清零。

  使PSTART=0x46;PSTOP=0x80;BNRY=0x46,设置接收开始页面、结束页面和边界页面。

  使IMR=0x0,清除中断屏蔽寄存器。

  使RCR=0x08+0x04,设置接收配置寄存器,允许接收多址和广播报文。

  使TCR=0,设置发送配置寄存器,使用默认配置。

  使DCR=0x80+0x40+0x00,设置数据配置寄存器,选择字节DMA。

  使ISR=-1,设置中断状态寄存器,清除所有已有中断。

  使用DMA方式,从0000H2000BH中取得本网卡MAC地址。注意,MAC地址每个byte都是重复一遍存放的,所以只要取单数1、3、5等byte就可以了。

  使CR=0x61,选择页面1。

  将刚才取得的MAC地址放入PAR0-5中。网卡检查接收到的包是否和PAR里MAC值匹配,然后决定收下或丢弃。所以,也可以任意设置这个PAR值,来伪造自己的MAC值。

  将MAR02MAR7全部设为0xFF,允许接收所有的多址数据包。

  使CURR=0x47,设置当前接收页面为0x47。

  使CR=0x22,启动网卡芯片,开始接收和发送过程。

  2.4 网卡工作接收和发送过程

  网卡RAM是以256byte为一页,是按页存储的结构,16bit的RAM地址高8bit又叫页码。网卡的16k的RAM地址从0x400020x7fff,从页0x40到页0x7f,一共有64页。64页被接收和发送数据包用。接收和发送都是以页为最小的单位进行的。接收缓冲区需要定义,剩下的就可以作为发送缓冲区。

  接收缓冲区由两个寄存器决定:PSTART(PageStartRegister)和PSTOP(PageStopRegister)。设置了接收缓冲区之后,这个缓冲区就形成了一个循环队列。控制接收缓冲区的有两个寄存器CURR、BNRY。CURR是网卡写缓冲区的指针,指向当前要写的页;BNRY是读指针,指向用户已经读走的页。

  BNRY不可以超过CURR,否则没被用户读取的数据就被覆盖了。用户设置完了CURR以后,就不用管它,网卡接收到新的数据后,会自动修改它。用户读出数据后,要修改BNRY的值,以通知网卡该数据已经读出了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top