现在,以太网(Ethernet)协议现已十分广泛地应用于各种计算机网络,如作业局域网、工业操控网络、因特网等场合,而且还不断地开展。根据以太网的新技术和联网设备不断出现,以太网现已成为事实上最常用的网络规范之一。
可是,根据以太网的嵌入式体系现在并是许多。其原因除了嵌入式体系自身运转速度较慢、资源较少且不足以完结以太网的各种协议外,更重要是规划以太网的接口及协议相对比较复杂,使人望而生畏。
本文将介绍以8051系列单片机体系为例的嵌入式体系与10Mbps以太网操控器芯片DM9008的接口电路完结及编程办法。
1 以太网操控器DM9008简介
DM9008是台湾DAVICOM公司出产的根据ISA总线的10M超级以太网操控器芯片。这集成了介质拜访操控子层(MAC)和物理层的功用,能够便利地规划根据ISA总线的体系,也能够比较简单地与通用单片机进行接口。
首要特点如下:
·完结IEEE 802.3协议、10BASE-T、10BASE2和10BASE5的单片贡解决方案;
·集成ISA总线接口、8K×16 SRAM、介质拜访操控(MAC)、编解码器(ENDEC)和10BASE-T收发器;
·与NOVELL NE2000软件兼容;
·可选8根中止请求线;
·主动极性检测和纠正;
·可选8、16位形式;
·外部可编程EEPROM;
·单5V电源低功耗CMOS规划;
·100脚PQFP封装。
因为该芯片功用较强,装备有较多的引脚,但在与一般单片机接口时只需求用到其间的一部分即可完结常用的功用。
2 与8051单片机体系的接口电路
下面介绍国内最常用的8051系列单片机与DM9008的接口电路,完结的网络接口选用无屏蔽双绞线(UTP)RJ-45接口。
图1给出了8051单片机体系与DM9008网络操控器的接口电路框图。 8051单片机体系所供给的接口信号线为:P0的8位数据总线D0~D7、5根经过锁存的地址线A0~A4、读信号线RD、写信号线WR、经过译码发生的片选线CS1和经过反相后高电平有用地中止请求线INT。这些信号线别离与DM9008的数据线低8位SD0~SD7、地址线低5位SA0~SA4、 I/O读信号线IOR、I/O写信号线IOW、地址使能线AEN和8根中止请求线中的一根IRQ12相连。
DM9008的复位线RST与8051单片机的复位线同为高是电平有用,故在体系上电时一起复位。时钟电路只需外接1个20MHz的晶振及2个电容即可。
DM9008有16根数据线,与8051单片机接口,只需用到低8位数据线,其它高8位数据线不骼,IO16接高电平或浮空,MD6/SLOT接地。地址线有SA0~SA19共20根,只用到低5位SA0~SA4与单片机相连,SA5~SA7接地、SA8~SA9 接高电平,其它高地址位悉数接地。这样关于DM9008内部来说,I/O的基地址为300H。别的BALE、SYSCLK接地,SMEMR、MEMW、 MEMR浮空。DM9008有8根中止请求线,能够先1根与8051体系的中止线相连,其它7根线均浮空,所选线在EEPROM93C46中指定。
EEPROM 93C46是一个选用4线SPI串行接口的电可擦除存储器,容量为64×16位(即128个字节),首要保存DM9008的装备信息,如网络硬件地址、 I/O基地址、中止线挑选等装备寄存器内容,在DM9008复位后读取93C46的内容并设备内部装备寄存器的值。假如93C46中内容不正确,DM9008就无法正常作业。所以一般先经过编程器把装备数据写入93C46,再把它焊在电路板上。DM9008经过EECS、EEDI、EEDO、 EECK与93C46相连。
因为本规划只运用10BASE-T,即选用无屏蔽双绞线的RJ45接口,而 DM9008已内置了10BASE-T的收发器,故接口部分电路比较简单,只需求外接1个阻隔滤波器LAN7236即可。TPTX+、TPTX-为发送线,TPRX+、TPRX-为接纳线,经阻隔后的4根线与RJ45接口相连。关于其它类型的单片机,如16位单片机80C196KC等,其接口电路只需稍作修正即可改为16位数据总线方法。
3 软件规划
DM9008的编程包含初始化、发送、接纳三部分功用。在接纳和发送数据曾经要进行必需的检测和初始化。DM9008的初始化首要是设置所需的寄存器状况,树立网络接口收发的条件。
网络接口经过2个DMA操作来完结数据的接纳和发送。本地DMA完结DMA9008与其内部FIFO行列之间的数据传送,长途DMA完结DM9008与CPU之间的数据传送。
DM9008可寻址的空间有32个,别离为00H~1FH。其间00H~0FH是寄存器区,00H~1FH。其间00H~0FH是寄存器区,00H作为指令寄存器,经过设置可挑选3个页面,10H~17H为数据端口,18H~1FH为复位端口。
3.1 DM9008的初始化
DM9008的详细初始化进程如下(CPU对DM9008的寻址需求加上基地址,为了描绘便利,省掉掉基地址直接用DM9008的内部地址描绘寄存器地址):
(1)读入1FH端口数据,再写回该地址以发动DM9008作业。
(2)向指令寄存器CR(00H)写入21H,挑选寄存器页面0,并进行软件复位。
(3)设置数据结构寄存器DCR(0EH)为48H。
(4)设置方法状况寄存器TCR(0DH)为02H。
(5)读出网络的物理地址:
a.设置长途DMA计数器RBCR1(0BH)、RBCR0(0AH)的值为000CH;
b.设置长途DMA地址RSAR1(09H)、RSAR0(08H)的值为0000H;
c.设置指令寄存器CR(00H)为长途DMA读,即0AH;
d.重复从数据端口(10H)读6个字节,这6个字节即网络物理地址;
e.中止长途DMA,设置CR为21H,RBCR1、RBCR0为0000H。
(6)设置接纳状况寄存器RCR(0CH)为04H。