位置:51电子网 » 技术资料 » 通信网络

利用微控制器进行网络通信的网卡配置

发布时间:2008/5/29 0:00:00 访问次数:361

利用单片机进行网络通信的关键是驱动和配置网络接口卡,而rtl8019是realtek公司高集成度的专用以太网接口芯片,支持pnp自动探测,并且内嵌16k sram,有全双工的通信接口,可以通过交换机在双绞线上同时发送和接收数据,使带宽从10兆增加到20兆,是用来进行以太网通信的理想芯片。
  rtl8019as是针对isa总线设计的,在pc上用来实现网络的物理层协议,主要包括网卡与网络电缆的物理连接、介质访问控制(如csma/cd)、数据帧的拆装、帧的发送与接收、错误校验、数据信号的编/解码(如曼彻斯特码和nrz码的转换等)、数据的串、并行转换等功能。而要实现这些功能,必须要对网络接口芯片进行正确的配置。
  而大部分微控制器是8位的,所以用8位单片机和rtl8019as接口时必须把接口芯片置成8位模式,现用具体代码来详细说明用单片机对rtl8019as进行配置,从而实现利用微控制器进行网络通信。
  rtl8019共有四页寄存器组,每页寄存器组有16个寄存器。实际上网络通信也就是对这些寄存器进行设置。其中cr寄存器是控制命令寄存器,地址是00h,其各个位的含义如表1所示,这个寄存器用来选择寄存器页,控制远程dma操作。
  ps1,ps0用来指定寄存器的页。在实际配置寄存器时,首先要指定要配置的寄存器属于哪一页(就是进行ps1和ps0的设置),然后对那一页中的寄存器写入配置信息。
要进行网络通信必须对网络控制芯片初始化,初始化比较烦琐,但非常重要,它决定者网络通信的一些重要参数,详细配置过程如下。
表1 cd寄存器各位的含义
no name type bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
00h cd r/w psi ps0 rd2 rd1 rd0 txr sta stp


  1.初始化复位寄存器,地址1fh,代码如下。
  mov nicioaddr,#$1f;给出复位寄存器的地址
  mov w,#0;写入数据0
  call nicwrite;调写子程序,把数据写入
  2.选择rtl8019as为用户配置模式,然后对9346cr寄存器进行写使能,再对rtl8019as的配置寄存器2进行设置,代码如下。
  clr nicioaddr;选cr寄存器
  mov w,#d1h;选第三页,停止传输操作
  call nicwrite;写入数据
  mov nicioaddr,#$01;选9346cr寄存器
  mov w,#d0h;配置寄存器写使能
  call nicwrite;写入数据
  mov nicioaddr,#05h;选配置寄存器2
  mov w,#0h;网络连接自动检测使能(10baset)
  call nicwrite;写入数据
  3.配置当前页寄存器(写时选择第一页07h寄存器,读时选择第二页07h寄存器)。
  inc nicioaddr;($07) curr寄存器指向接收缓冲区的第一页(每页256个字节)
  mov w,#rxbuf_start;把开始地址写入cur寄存器中
  call nicwrite;写入数据
  4.配置接收缓冲区的大小(在第一页寄存器组中).
  clr nicioaddr;选择第一页寄存器
  mov w,#01h;写入数据1
  call nicwrite;写入数据
  inc nicioaddr;“页开始寄存器”($01, pstart)设置接收缓冲区的开始页
  mov w,#rxbuf_start
  call nicwrite;写入数据
  inc nicioaddr;“页终止寄存器”($02, pstop)设置接收缓冲区的终止页
  mov w,#rxbuf_end
  call nicwrite;写入数据
  5.设置边界寄存器
  inc nicioaddr;($03)bnry()用作一个指针,指向数据缓冲区中的最后一页的接收数据
  mov w,#rxbuf_start
  call nicwrite;写入数据
  6.设置中断寄存器(地址在第一页的07h)
  mov nicioaddr,#$07;isr中断寄存器
  mov w,#$ff
  call nicwrite;写入数据
  中断寄存器各个位的含义如表2所示。
  8.设置接收配置寄存器(0c,rcr)
  mov nicioaddr,#$0c;rcr设置为扔掉错误的接收包;不支持多播地址的包;接收少于64字节的数据包;支持广播地址;物理目的地址必须和在paro-5的接点地址相匹配;数据在存储器中缓冲;拒绝接收有错误的包。
  mov w,#%11000110
  call nicwrite;
表2 中断寄存器各个位的含义

符号 描 述
7 rdc nic开始时置"1",开始命令写入c

利用单片机进行网络通信的关键是驱动和配置网络接口卡,而rtl8019是realtek公司高集成度的专用以太网接口芯片,支持pnp自动探测,并且内嵌16k sram,有全双工的通信接口,可以通过交换机在双绞线上同时发送和接收数据,使带宽从10兆增加到20兆,是用来进行以太网通信的理想芯片。
  rtl8019as是针对isa总线设计的,在pc上用来实现网络的物理层协议,主要包括网卡与网络电缆的物理连接、介质访问控制(如csma/cd)、数据帧的拆装、帧的发送与接收、错误校验、数据信号的编/解码(如曼彻斯特码和nrz码的转换等)、数据的串、并行转换等功能。而要实现这些功能,必须要对网络接口芯片进行正确的配置。
  而大部分微控制器是8位的,所以用8位单片机和rtl8019as接口时必须把接口芯片置成8位模式,现用具体代码来详细说明用单片机对rtl8019as进行配置,从而实现利用微控制器进行网络通信。
  rtl8019共有四页寄存器组,每页寄存器组有16个寄存器。实际上网络通信也就是对这些寄存器进行设置。其中cr寄存器是控制命令寄存器,地址是00h,其各个位的含义如表1所示,这个寄存器用来选择寄存器页,控制远程dma操作。
  ps1,ps0用来指定寄存器的页。在实际配置寄存器时,首先要指定要配置的寄存器属于哪一页(就是进行ps1和ps0的设置),然后对那一页中的寄存器写入配置信息。
要进行网络通信必须对网络控制芯片初始化,初始化比较烦琐,但非常重要,它决定者网络通信的一些重要参数,详细配置过程如下。
表1 cd寄存器各位的含义
no name type bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
00h cd r/w psi ps0 rd2 rd1 rd0 txr sta stp


  1.初始化复位寄存器,地址1fh,代码如下。
  mov nicioaddr,#$1f;给出复位寄存器的地址
  mov w,#0;写入数据0
  call nicwrite;调写子程序,把数据写入
  2.选择rtl8019as为用户配置模式,然后对9346cr寄存器进行写使能,再对rtl8019as的配置寄存器2进行设置,代码如下。
  clr nicioaddr;选cr寄存器
  mov w,#d1h;选第三页,停止传输操作
  call nicwrite;写入数据
  mov nicioaddr,#$01;选9346cr寄存器
  mov w,#d0h;配置寄存器写使能
  call nicwrite;写入数据
  mov nicioaddr,#05h;选配置寄存器2
  mov w,#0h;网络连接自动检测使能(10baset)
  call nicwrite;写入数据
  3.配置当前页寄存器(写时选择第一页07h寄存器,读时选择第二页07h寄存器)。
  inc nicioaddr;($07) curr寄存器指向接收缓冲区的第一页(每页256个字节)
  mov w,#rxbuf_start;把开始地址写入cur寄存器中
  call nicwrite;写入数据
  4.配置接收缓冲区的大小(在第一页寄存器组中).
  clr nicioaddr;选择第一页寄存器
  mov w,#01h;写入数据1
  call nicwrite;写入数据
  inc nicioaddr;“页开始寄存器”($01, pstart)设置接收缓冲区的开始页
  mov w,#rxbuf_start
  call nicwrite;写入数据
  inc nicioaddr;“页终止寄存器”($02, pstop)设置接收缓冲区的终止页
  mov w,#rxbuf_end
  call nicwrite;写入数据
  5.设置边界寄存器
  inc nicioaddr;($03)bnry()用作一个指针,指向数据缓冲区中的最后一页的接收数据
  mov w,#rxbuf_start
  call nicwrite;写入数据
  6.设置中断寄存器(地址在第一页的07h)
  mov nicioaddr,#$07;isr中断寄存器
  mov w,#$ff
  call nicwrite;写入数据
  中断寄存器各个位的含义如表2所示。
  8.设置接收配置寄存器(0c,rcr)
  mov nicioaddr,#$0c;rcr设置为扔掉错误的接收包;不支持多播地址的包;接收少于64字节的数据包;支持广播地址;物理目的地址必须和在paro-5的接点地址相匹配;数据在存储器中缓冲;拒绝接收有错误的包。
  mov w,#%11000110
  call nicwrite;
表2 中断寄存器各个位的含义

符号 描 述
7 rdc nic开始时置"1",开始命令写入c
相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!