因为单位封了博客....所以只能在论坛记录每天的工作内容了...初学水平大家见谅...主要目的是为了督促自己
8962集成了mac 和 phy 貌似没有协议栈, 现在还没看懂例程的lwip 所以索性先随便发数据吧.
先初始化以太网控制器
//使能以太网时钟
SysCtlPeripheralEnable(SYSCTL_PERIPH_ETH);
SysCtlPeripheralReset(SYSCTL_PERIPH_ETH);
// 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);
nEthClk = SysCtlClockGet();
EthernetInitExpClk(ETH_BASE, nEthClk);
// Enable TX Duplex Mode
// Enable TX Padding
EthernetConfigSet(ETH_BASE, (ETH_CFG_TX_DPLXEN | ETH_CFG_TX_PADEN | ETH_CFG_TX_CRCEN));
//MAC地址设置
EthernetMACAddrSet(ETH_BASE,nMACAddr);
EthernetEnable(ETH_BASE);
{
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
又从网上寻找例程 ,发现 有一个例程在 发送的数据前加了2个字节 0x1c 0x04
我同样加入 0x1c 0x04 后, 能接收到 0x1c 0x04 原来是代表后面数据的长度的 ,这样就成为了 LLC帧结构
继续坚持我的 以太网帧结构
将 sa 后面的 0x00 0x32 改为 0x08 0x00 (ip 帧头) 发送成功
今天到这里 ,明个继续