0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DM9000单芯片快速以太网控制器简介

嵌入式技术 来源:嵌入式技术 作者:嵌入式技术 2022-06-01 09:08 次阅读

1.DM9000简介

 DM9000 是一款完全集成的、性价比高、引脚数少、带有通用处理器接口的单芯片快速以太网控制器。 自 带一个 10/100M PHY 和 4K 双字的 SRAM ,DM9000A 为适应各种处理器提供了 8 位、16 位数据接口访问 内部存储器,DM9000 拥有自动协商功能。DM9000 特性如下:
1.集成自适应 10/100M 收发器
2.内置 16k 字节的 SRAM。
3.支持硬件帧校验。
4.兼容 3.3V 和 5.0V 输入输出电压。
DM9000 有多种型号,有100引脚和48引脚的,开发板选择的是48引脚的DM9000,型号为DM9000CEP。

2.DM9000硬件接口

poYBAGKV_pKAfU4IAAK3QzI0DBg646.png

引脚 说明
PWRST 复位信号
CS 片选信号
WR(IOW) 处理器写命令
RD(IOR) 处理器读命令
CMD 命令/数据标志, 0,读写命令; 1,读写数据
SD0~SD15 16 位双向数据线

3.DM9000数据位宽设置

 DM9000 支持8位和16位两种数据位宽,可以通过 DM9000的21(EEDCS)引脚设置其数据位宽,当EEDCS上拉的时候DM9000选择8位数据位宽,否则的话选择16位数据位宽。开发板上的R65电阻为 EECS 的上拉电阻,但是此电阻并未焊接!DM9000芯片的数据位宽为 16 位。

pYYBAGKV_8eAe8dcAATsG06Y4Zc749.png

4.开发平台

硬件平台:STM32F103ZET6开发板集成DM9000网卡
开发环境:Windows下Keil5
驱动时序:硬件FSMC

若没有DM9000有线网卡设备,可自行购买DM9000网卡模块.
DM9000网卡模块链接:DM9000有线网卡

poYBAGKWADCAKGeMAAgIaHU_cUo667.png

5.DM9000硬件配置

poYBAGKWAQSASeyFAAEaM2lxvN0770.png#pic_center

DM9000 网卡接在 FSMC 的第 2 块上,数据线地址: 0x64000000
  PA7 地址线作为命令与数据线切换引脚。
  外接16位宽度存储器: HADDR[25:1] FSMC_A[24:0]
  外部地址线0对应内部地址线1

0x64000000基地址:01100100000000000000000000000000 
0x64000000写数据:01100100000000000000000000000000 
0x64000100写命令:01100100000000000000000100000000

 DM9000硬件初始化:

/******************DM9000初始化**************
**硬件接口:
**					FSMC_D0~D1  -- PD14~PD15
**					FSMC_D2~D3  -- PD0~PD1
**					FSMC_D4~D12 -- PE7~PE15
**					FSMC_D13~D14-- PD8~PD9
**					FSMC_D15    -- PD10
**					CS(FSMC_NE2) -- PG9(片选)
**					WR(FSMC_NWE) -- PD5(写使能)
**					RD(FSMC_NOE) -- PD4(读使能)
**					DM9000_RST   -- PD7(复位脚)
**					CMD(FSMC_A7) -- PF13(数据命令选择脚)
**					DM9000_INT   --PG6(中断脚)
**
*********************************************/
void DM9000_GPIO_Init(void)
{
		/*开时钟*/
	RCC->APB2ENR|=1<<3;//PB
	RCC->APB2ENR|=1<<5;//PD
	RCC->APB2ENR|=1<<6;//PE
	RCC->APB2ENR|=1<<7;//PF
	RCC->APB2ENR|=1<<8;//PG
	
	GPIOD->CRL&=0x0F00FF00;//PD5写使能,PD4读使能,PD7复位脚
	GPIOD->CRL|=0x30BB00BB;
	GPIOD->CRH&=0x00FFF000;
	GPIOD->CRH|=0xBB000BBB;
	
	GPIOE->CRL&=0x0FFFFFFF;
	GPIOE->CRL|=0xB0000000;	
	GPIOE->CRH&=0x00000000;
	GPIOE->CRH|=0xBBBBBBBB;
	
	GPIOG->CRH&=0xFFFFFF0F;
	GPIOG->CRH|=0x000000B0;//片选NE2
	
	GPIOF->CRH&=0xFF0FFFFF;
	GPIOF->CRH|=0x00B00000;//数据命令选择脚
	
	GPIOG->CRL&=0xF0FFFFFF;
	GPIOG->CRL|=0x08000000;//DM9000中断脚
	GPIOG->ODR|=1<<6;//上拉
  EXTI->IMR|=1<<6;   //开放中断线6的中断请求
  EXTI->FTSR|=1<<6;  //允许中断线6下降沿触发请求
  RCC->APB2ENR|=1<<0;//AFIO时钟使能
	AFIO->EXTICR[1]&=~(0xF<<(2*4));//选择输入源为PG6
  AFIO->EXTICR[1]|=0x6<<(2*4);//选择输入源为PG6
	STM32_NVIC_SetPriority(EXTI9_5_IRQn,1,1);//设置优先级
	
	/*FSMC核心寄存器配置*/
	RCC->AHBENR|=1<<8;//FSMC
	FSMC_Bank1->BTCR[2]=0;//BCR2
	FSMC_Bank1->BTCR[3]=0;//BTR2
	FSMC_Bank1->BTCR[2]&=~(0x1<<19);//异步模式
	FSMC_Bank1->BTCR[2]&=~(0x1<<14);//读写使用相同时序
	FSMC_Bank1->BTCR[2]|=1<<12;//允许写操作
	FSMC_Bank1->BTCR[2]|=0x1<<4;//16位宽度
	FSMC_Bank1->BTCR[3]|=0x1<<8;//2个时钟周期
	FSMC_Bank1->BTCR[3]&=~(0xF<<4);//地址保持时间1个时钟周期
	FSMC_Bank1->BTCR[3]&=~(0xF<<0);//地址保持时间1个时钟周周期
	FSMC_Bank1->BTCR[2]|=1<<0;//启动存储器块
}

6.主函数

#include "dm9000.h"
u8 dm9000_tx_buff[64]={0x11,0x22,0x33,0x44,0x55};
u8 dm9000_rx_buff[1024];
int main()
{
	u8 stat;
	u16 i;
	int len;
	Beep_Init();
	Usartx_Init(USART1,115200,72);
	TIMx_Init(TIM2,72,20*1000);
	printf("初始化完成rn");
	/*DM9000初始化*/
	if(DM9000_Init()==0)printf("DM9000初始化成功rn");
	else printf("DM9000初始化失败rn");
	/*获取DM9000工作模式*/
	stat=DM9000_Get_SpeedAndDuplex();//获取连接状态和工作方式
	if(stat!=0xff)printf("网卡速度:%d Mbps 模式:%srn",(stat&0x02)?10:100,(stat&0x01)?"全双工":"半双工");
	else printf("DM9000网卡状态信息获取失败!rn");
	while(1)
	{
		len=DM9000_ReadPacketLen();//读取数据包长度
		if(len>0)
		{
			printf("读取数据长度:%drn",len);
			DM9000_ReadPacketData(dm9000_rx_buff,len);//读取数据
			for(i=0;i

6.运行效果

  将开发板通过网线连接路由器即可看到相关答应信息

pYYBAGKWAM6AQq84AACvkDJN0DE360.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16350

    浏览量

    177946
  • 以太网
    +关注

    关注

    40

    文章

    5421

    浏览量

    171658
  • 单芯片
    +关注

    关注

    3

    文章

    419

    浏览量

    34574
收藏 人收藏

    评论

    相关推荐

    DM9000以太网控制平台电路设计方案

    基于DM9000以太网电路,单片机端移植精简TCP/IP协议栈unIP,实现简易的TCP服务。对该简易的TCP服务进行改造,把藏文网页存储到TCP服务
    发表于 01-21 13:41 4004次阅读
    <b class='flag-5'>DM9000</b><b class='flag-5'>以太网</b><b class='flag-5'>控制</b>平台电路设计方案

    DM9000系列

    dm9000   1、总体介绍  该DM9000是一款完全集成的和符合成本效益芯片快速以太网M
    发表于 05-17 10:17

    Altera FPGA 用DM9000以太网模块与电脑之间传输图像

    各位大家好,我在用Altera 系列的FPGA ,芯片DM9000,想通过以太网传输数据,PC机与FPGA之间可以互相传输图像数据,请问有什么好的方法吗
    发表于 11-18 20:51

    U-Boot移植DM9000卡分享!

    ; 2.配置u-boot使用DM9000卡; 3.设置IP、serverIP等。三、设置存储控制器 根据Jz2440开发板的原理图可知,DM9000
    发表于 07-29 00:06

    两块STM32板子以太网通信要以太网控制芯片相同吗?

    两块STM32开发板利用以太网通信时,是不是要以太网控制芯片相同啊?现在手里有两块开发板,一块是发烧友战舰V3的板子(STM32F103,以太网
    发表于 08-29 04:35

    FSMC方式访问DM9000以太网芯片时读取的是ID寄存的地址

    求助:采用发烧友的例子,FSMC方式访问DM9000以太网芯片时,读取DM9000的ID号总是读取0x2b2a2928,就是读取的是ID寄存
    发表于 10-21 23:46

    基于S3C2440和DM9000AE的以太网接口的设计

    的工业级以太网控制器DM9000AE,系统通讯快速可靠,具有很高的实时性。在以太网日益普及的今天,此方案能够给那些传统不具备网络通讯能力的嵌
    发表于 11-05 06:30

    dm9000/dm9000a linux驱动程序 (Ethe

    dm9000/dm9000a以太网芯片linux驱动程序 :dm9000/dm9000a Et
    发表于 12-26 00:13 117次下载

    伺服控制系统的DM9000A以太网接口设计

    采用以太网控制器DM9000A,实现DSP+FPGA伺服控制系统的100M以太网接入。介绍了DM9000
    发表于 12-19 16:29 66次下载

    基于DM9000以太网藏文信息控制平台

    基于DM9000以太网电路,单片机端移植精简TCP/IP协议栈unIP,实现简易的TCP服务。对该简易的TCP服务进行改造,把藏文网页存储到TCP服务
    发表于 02-10 16:27 36次下载

    基于ARM和DM9000的网卡接口设计与实现

    针对ARM CPU S3C2410的特点,设计开发了外围网卡接口平台,通过驱动程序对以太网控制芯片DM9000控制,实现了网络数据传输功能
    发表于 10-09 16:16 144次下载

    DM9000以太网藏文信息控制平台

    DM9000以太网藏文信息控制平台 摘要:基于DM9000以太网电路,单片机端移植精简TCP/IP协议栈unIP,实现简易的TCP服务
    发表于 04-13 12:47 5691次阅读
    <b class='flag-5'>DM9000</b>的<b class='flag-5'>以太网</b>藏文信息<b class='flag-5'>控制</b>平台

    驱动之路-DM9000卡驱动程序分析

    DM9000是开发板经采用的网络芯片,是一种高度集成而且功耗很低的高速网络控制器,可以和CPU直连,支持10/100M以太网连接,芯片内部自
    发表于 05-15 17:01 2700次阅读
    驱动之路-<b class='flag-5'>DM9000</b><b class='flag-5'>网</b>卡驱动程序分析

    DM9000物理接口寄存的详细资料说明

    本文档的主要内容详细介绍的是DM9000芯片快速以太网MAC控制器物理接口寄存
    发表于 01-13 08:00 10次下载
    <b class='flag-5'>DM9000</b>物理接口寄存<b class='flag-5'>器</b>的详细资料说明

    DM9000芯片快速以太网MAC控制器英文手册

    电子发烧友网站提供《DM9000芯片快速以太网MAC控制器英文手册.pdf》资料免费下载
    发表于 07-16 17:30 0次下载