- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于c8051f020的远程电源监控系统设计
由于网络控制器具有 ethernet(ieee802.3)协议处理功能,系统便可直接rj45连接到以太网(再通过以太网接入 internet)。本文所设计的系统中选用的rj45连接器为lf1s022,它已经具有电平转换功能,简化了 pcb设计。值得注意的是,设计pcb时,rj45连接器不能与cpu和网络芯片相距太远,以免对数据传输造成影响。
rtl8019as的tpin+(59脚), tpin-(58脚)脚是tp 的一对输入脚,能以10mbits/s 的速率从双绞线接收差分曼彻斯特编码的数据。tpout+(45脚)、tpout-(46脚)是一对曼彻斯特编码的差分tp输出信号。为了防止双绞线超载,该输出信号会被提前中断,这样可以减少拥塞。连接时,这四个管脚分别接到 lf1s022的7、6、5、4脚。连接器的其他管脚都通过一个电容与地连接。最后,还必须在50、51脚之间接入一个20mhz的晶体振荡器。
图3中扩展的rj45口接入互联网,rtl8019as通过本地dma方式将接收到的数据送到片内sram,或者从片内sram读取数据从rj45口发送出去。
网卡的复位信号rstdrv由单片机的p5.2产生,rstdrv为高电平有效,至少需要800ns的宽度。由p5.2引脚产生一个1μs以上的高电平就可以使rtl- 8019as芯片复位。
rstdrv从高电平到低电平之后要等多久,单片机才可以对网卡进行操作?复位的过程将执行一些操作,比如将内部寄存器初始化等。这些至少需要2ms的时间。为确保完全复位,应该等待更久的时间之后才对网卡操作,比如100ms之后才对它操作。
对rstdrv可以接单片机的一个i/o口线进行网卡的复位,也可以直接将rstdrv跟单片机的reset引脚并联,单片机复位的时候,网卡也复位,以减少一个单片机的引脚使用。
3.2 网卡的初始化
网卡在能够正常工作以前,必须先对其进行初始化,一般带有操作系统的计算机上,网卡的初始化由其驱动程序完成。此例中由于c8051f020单片机是全裸机(不含驱动程序),不仅需要用户自己完成网卡的初始化,还需要用户自己设置网卡的mac(介质访问控制)地址以及对网卡进行读写访问。
初始化需要设置页0与页1的相关寄存器,页2的寄存器是只读的,不可以设置,页3的寄存器不是ne2000兼容的,不用设置。需初始化的寄存器包括cr、dcr、pbcr、pstart、pstop、isr、imr、par0~par5、mar0~mar7、curr、tcr、rcr等寄存器。初始化函数主要要完成以下诸项工作。
(1) 调用复位子程序队rtl8019as进行复位。有两种复位方式:一是硬件复位,通过拉高拉低reset引脚达到复位rtl8019as的目的;二是软件复位,向if端口读写数据从而使rtl8019as复位。
(2) 向命令寄存器cr写入0x21h使rtl8019as处于停止模式,设置寄存器。
(3) 设置数据配置寄存器dcr为使用fifo缓存、普通模式、8位数据传输模式,字节顺序为高位字节在前,低位字节在后。设置rbcr0、rbcr1寄存器为0,即读取ram字节数。
(4) 设置接收和发送缓冲区起止地址。pstart接收缓冲区的起始页地址0x46;pstop接收缓冲区的结束页地址0x80;bnry指向最后一个已经读取页的指针0x46;tpsr发送页的起始地址0x40;curr芯片写内存指针,它指向当前正在写的页的下一个页,即初始化时指向0x47。
(5) 设置rcr接收配置寄存器为0xcc,使用接收缓冲区,仅接收自己的地址的数据包(以及广播地址数据包)和多点播送地址包,小于64字节的包丢弃,校验错的数据包不接收。设置tcr发送配置寄存器为0xe0,启用crc自动生成和自动校验,工作在正常模式。
(6) 设置mar0~mar8为0,清除多播地址寄存器;设置isr为0xff,清除中断状态寄存器;设置中断屏蔽寄存器imr为0,屏蔽所有中断请求。
(7) 将物理地址写入par0~5物理地址寄存器。
(8) 最后设置tcr发送配置寄存器为0xe0;设置命令寄存器cr为0x22,芯片进入正常工作状态,rtl8019as初始化完成。
初始化时,必需指明嵌入式设备的48位硬件地址和广播地址,并正确设置它的ip地址、子网掩码和默认网关。工业控制一般都在一个同级局域网内部进行,因此可以直接令网关的ip地址为0。其主控制流程如图4所示。
4 结束语
本文分析了嵌入式设备与以太网接口的组成,简要介绍了rtl8019as和c8019f芯片,并给出了嵌入式mcu与以太网控制芯片的硬件连接及其软件设计。该设计以数据采集为例的,在工业生产中有很大的现实意义。
上一篇:光网络技术的发展与干线工程应用
下一篇:IP座席接入系统方案