4598|3

6892

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

LM3S8962开发板以太网开发笔记 [复制链接]

使用LM3S8962 开发板 学习以太网的相关开发

8962集成了mac 和 phy 貌似没有协议栈, 现在还没看懂例程的lwip 所以索性先随便发数据吧.


unsigned char nMACAddr[] = {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB};

先初始化以太网控制


SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);

//使能以太网时钟
 SysCtlPeripheralEnable(SYSCTL_PERIPH_ETH);
 SysCtlPeripheralReset(SYSCTL_PERIPH_ETH);


// Enable Port F for Ethernet LEDs.

 //  LED0        Bit 3   Output
 //  LED1        Bit 2   Output
 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
 GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3, GPIO_DIR_MODE_HW);
 GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD);


// Initialize the Ethernet controller for operation   初始化以太网控制器

 nEthClk = SysCtlClockGet();
 EthernetInitExpClk(ETH_BASE, nEthClk);


// Configure the Ethernet controller for normal operation

 // Enable TX Duplex Mode
 // Enable TX Padding
 EthernetConfigSet(ETH_BASE, (ETH_CFG_TX_DPLXEN | ETH_CFG_TX_PADEN | ETH_CFG_TX_CRCEN));


HWREG(ETH_BASE + MAC_O_THR) = 0x0;

 //MAC地址设置
 EthernetMACAddrSet(ETH_BASE,nMACAddr);


 //使能以太网

 EthernetEnable(ETH_BASE);


 while(1)  //循环发送

    {
       while(HWREG(ETH_BASE + MAC_O_TR) & MAC_TR_NEWTX)
       {
       }

 

      // Copy data to FIFO
       pS = (unsigned long*)nSendData;
       for ( i = 0; i < sizeof(nSendData) / 4; i++ )
           HWREG(ETH_BASE + MAC_O_DATA) = *pS++;
       RIT128x96x4DataDisplay(++count,66,36, 15,5) ;   //计数
    }

程序不是大问题,  问题在于到底要发什么,怎么发,以什么协议发。

我准备先发以太网帧, 以太网帧结构就不重复了, IEEE 802.3  我的网卡的mac被我改成 12 34 56 78 90 00   lm3s8962 的mac被我设为12 34 56 78 90 ab

 发送的数据如下


                //0x1c 0x04 

/*0000*/   0x12,0x34,0X56,0X78,0X90,0X00, 0X12,0X34,0X56,0X78,0X90,0XAB, 0X00,0X32,0X00,0X00,

/*0010*/   0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
/*0020*/   0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
/*0030*/   0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00

结果在sniffer上接收不到

又从网上寻找例程 ,发现 有一个例程在 发送的数据前加了2个字节 0x1c 0x04 

我同样加入 0x1c 0x04  后, 能接收到

 0x1c 0x04  原来是代表后面数据的长度的 ,这样就成为了 LLC帧结构
 继续坚持我的 以太网帧结构
将 sa 后面的 0x00 0x32 改为 0x08 0x00 (ip 帧头)    发送成功

最新回复

不错的笔记。能系统一点么?  详情 回复 发表于 2010-11-11 14:00
 
点赞 关注
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!

回复
举报

40

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

如何学习以太网

谢谢斑竹的分享。
想学以太网,但不知道从哪儿下手,希望前辈们指条道
 
 

回复

4996

帖子

19

TA的资源

裸片初长成(初级)

板凳
 
不错,学习了。。。。。。
 
个人签名我的博客
 
 

回复

13

帖子

2

TA的资源

一粒金砂(初级)

4
 
不错的笔记。能系统一点么?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表