DM9000EP这款号称的嵌入式网络控制器,由台湾的联杰科技出品(绝对不是广告^_^),网址:
http://www.davicom.com.tw,从这里可以下载到相关的文档和参考设计。这次换个口味,但是还是先上图,有图有真相,从下面的框图可以看出这款网络控制器主要有以下几部分组成:
1.10/100 PHY ceiver
2.MAC 控制器
3.内部4K Dword SRAM(4K x 4 =16KB)
4.EEPROM I/F
4.外部MII I/F (Media Independent Interface)
5.LED指示灯
6.Processer control I/F
7.其他的控制逻辑部件
芯片特性参数:
1.供电电源3.3V、5V兼容
2.支持MII和reverse MII接口
3.支持外部的MII接口的HPNA或者类似接口的控制器(home phoneline networking agreement)
4.支持8/16/32位的控制器接口,来读写取内部SRAM
5.支持802.3x全双工/半双工模式
6.支持网络唤醒,magic package等远程电源管理功能
7.支持从EEPROM自动加载VID,DID
8.支持4个GPIO
9.可选的EEPROM对内部进配置
10.支持多种工作电源状态,
-省电模式,cable detection
-power down模式
-可选的TX传输驱动能力,1:1 /1.25:1
11.3.3V /5V兼容的IO端口
12.封装LQFP-100 CMOS工艺
引脚定义:引脚数量太多就懒得一个个介绍,费口水费劲。大概分成几类包括:MII接口,Processor 接口,EEPROM接口,clock 接口,10/100M PHY接口,电源接口,其他的GPIO,厂商测试接口
软件编程模型:
芯片提供了一个ISA兼容的模式,提供了8个IO地址段,这个有点类似SIO里面的各个逻辑设备的地址段,基地址分别为300H~370H,当然这些地址也是可以通过strap pin或者从EEPROM来改变设定。这里提到的ISA兼容模式有点类似SIO的index/data对,通过对这两个IO端口的读写来访问IC内部的寄存器和SRAM。当CMD pin 为Low 的时候,我们访问的是Index;当CMD
pin为High的时候访问的是Data端口。
芯片同时提供了DMI的访问方式来提高数据访问速率,我们可以通过制定内存的起始地址和使用相关的命令来触发IC内部自动把数据读取出来传输给外面的控制器之后,自动递增地址读下一个地址的数据,这样就大大提高了访问速度。芯片内部把16KB的内存分为两个部分3KB作为发包缓存,13KB作为收包缓存。当缓存满了的时候,它会自动从头开始存储。
提供了2个网络包传输通路,可以在IC发送第一串网络包的时候 ,利用这个空隙使用DMA把数据传送到内存当中,当第一个通路发送完成之后,可以立即接着传送第二条通路里面已经缓存好的数据包。这样会比较好的利用IC处理数据包的间隙来完成大批的数据的传输。
提供了环形的接收缓存内存,能识别网络数据包的数据结构。包括包标示,状态,包长度低字节,包长度高字节,根据处理器接口的数据宽的,选择对齐方式。
支持多种802.3规定的的编解码方式,串并转换,码型转换,扩频,载波侦听,冲突检测等功能。(4B5B,NRZ,NRZI,MLT-3,MLT-3最终的信号驱动,时钟提取,串转并,数据自适应,以及和上面提到的发送和接收数据需要用到的各种通信过程中需要使用的,信原,信道 编解码等各种部件......)
提供多种电源管理模式,可以根据应用场景需要合理的设置相关的寄存器来让IC进入不同的状态。
与处理器端连接的读写时序:
写的时序如下,可以看到下面的主要的信号有几个,其他的操作模式基本跟写操作类似,这里除了需要关注各个信号与处理器端的逻辑连接之外,下面的AC参数也是需要我们考虑在内的,我们需要查询我们的host端的处理器的速度,之前说过samsung的处理器支持多个bank没一个bank可以单独设置 ,所以只要是合理的设置,处理起来应该不是问题,前提是对照手册设置合适的值:
1.AEN -地址允许
2.SA -地址信号
3.SD -数据信号
4.CMD -Index/Data选择信号
5.IO16/IO32 -数据位宽选择信号
6.INT -当使用中断的时候需要这个
7.IOR# -读允许
8.IOW# -写允许
9.IOWAIT -等待忙
10.RST -rest信号
Cstyle的札记,R&D必读手册,第4篇 Embedded Ethernet Controller,古老的榕树,5-wow.com