⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mac.h

📁 台湾亚信电子ASIX11015以太网驱动.AX系列单片机带TCP/IP协议栈,和适合网络应用.希望和大家一起探讨
💻 H
字号:
/*
 ******************************************************************************
 *     Copyright (c) 2006	ASIX Electronic Corporation      All rights reserved.
 *
 *     This is unpublished proprietary source code of ASIX Electronic Corporation
 *
 *     The copyright notice above does not evidence any actual or intended
 *     publication of such source code.
 ******************************************************************************
 */
/*=============================================================================
 * Module Name: mac.h
 * Purpose:
 * Author:
 * Date:
 * Notes:
 * $Log: mac.h,v $
 * Revision 1.1.1.1  2006/02/23 00:55:10  borbin
 * no message
 *
 *=============================================================================
 */

#ifndef __MAC_H__
#define __MAC_H__


/* INCLUDE FILE DECLARATIONS */
#include "types.h"
#include "stoe_cfg.h"


/* NAMING CONSTANT DECLARATIONS */
#define MAC_RCV_PROMISCUOUS				1
#define MAC_RCV_ALL_MULTICAST			2
#define MAC_RCV_BROADCAST				4
#define MAC_RCV_MULTICAST				8

#define MAC_PRIMARY_PHY_LINK_WAKEUP		1		 
#define MAC_MAGIC_PACKET_WAKEUP			2
#define MAC_EXTERNAL_PIN_WAKEUP			4
//#define MAC_MS_FRAME_WAKEUP			8


/* MAC register definitions */
#define MAC_SRAM_CMD_REG				0x00
#define MAC_SRAM_DATA_REG				0x02
#define MAC_RX_CTL_REG					0x0A
#define MAC_IPG_CTL_REG					0x0C
#define MAC_ADDR_REG					0x10
#define MAC_MULTICASE_REG				0x16
#define MAC_TEST_REG					0x1E
#define MAC_MEDIUM_STATUS_MODE_REG		0x20
#define MAC_PHY_CTL_REG					0x22
#define MAC_WAKEUP_INT_ENABLE_REG		0x24
#define MAC_LINK_CHANGE_INT_ENABLE_REG	0x26
#define MAC_WAKEUP_LINK_INT_STATUS_REG	0x28
#define MAC_WAKEUP_FRAME_COMMAND		0x30
#define MAC_WAKEUP_FRAME_MASK0			0x32
#define MAC_WAKEUP_FRAME_CRC0			0x36
#define MAC_WAKEUP_FRAME_OFFSET0		0x38
#define MAC_WAKEUP_FRAME_LAST_BYTE0		0x3a
#define MAC_WAKEUP_FRAME_MASK1			0x40
#define MAC_WAKEUP_FRAME_CRC1			0x44
#define MAC_WAKEUP_FRAME_OFFSET1		0x46
#define MAC_WAKEUP_FRAME_LAST_BYTE1		0x48
#define MAC_CMD_ABORT					0xFF

/* Bit definitions: MAC_RX_CTL_REG */
#define PACKET_TYPE_PROMISCOUS			BIT0
#define PACKET_TYPE_ALL_MULTI			BIT1
#define PACKET_TYPE_RCV_CRC_ERROR		BIT2
#define PACKET_TYPE_BROADCAST			BIT3
#define PACKET_TYPE_MULTICAST			BIT4
#define PACKET_TYPE_UNICAST_MATCH		BIT5
#define START_OPERATION					BIT7

/* Bit definitions: MAC_MEDIUM_STATUS_MODE_REG */
#define MEDIUM_SUPER_MAC				BIT0
#define MEDIUM_STOP_BACKPRESSURE		BIT1
#define MEDIUM_ENABLE_RECEIVE			BIT2
#define MEDIUM_CHECK_ONLY_TYPE_PAUSE	BIT3
#define MEDIUM_ENABLE_TX_FLOWCTRL		BIT4
#define MEDIUM_FULL_DUPLEX_MODE			BIT5
#define MEDIUM_MII_100M_MODE			BIT6
#define MEDIUM_ENABLE_RX_FLOWCTRL		BIT7

/* Bit definitions: MAC_PHY_CTL_REG */
#define PHY_SELECT_EMBEDDED				BIT0
#define PHY_AUTO_SELECT					BIT1
#define PHY_INTERNAL_PHY_OPERA_STATE	BIT2

/* Bit definitions: MAC_WAKEUP_INT_ENABLE_REG */
#define WAKEUP_BY_PRIMARY_LINK_UP		BIT0
#define WAKEUP_BY_SECONDARY_LINK_UP		BIT2
#define WAKEUP_BY_MAGIC_PACKET			BIT4
#define WAKEUP_BY_EXTER_PIN_TRIG		BIT5
#define WAKEUP_BY_MICROSOFT_FRAME		BIT6

/* Bit definitions: MAC_LINK_CHANGE_INT_ENABLE_REG */
#define PRIMARY_LINK_CHANGE_ENABLE		BIT0
#define SECOND_LINK_CHANGE_ENABLE		BIT2

/* Bit definitions: MAC_WAKEUP_LINK_INT_STATUS_REG */
#define STATUS_PRIMARY_LINK_CHANGE		BIT0
#define STATUS_PRIMARY_IS_LINK_UP		BIT1
#define STATUS_SECOND_LINK_CHANGE		BIT2
#define STATUS_SECOND_IS_LINK_UP		BIT3
#define STATUS_RCV_MAGIC_PKT			BIT4
#define STATUS_TRIG_EXTER_PIN_TRIG		BIT5
#define STATUS_MICROSOFT_FRAME			BIT6


/* TYPE DECLARATIONS */
/*-------------------------------------------------------------*/
typedef struct _MAC_INFORMATION
{
/* definition for NetworkType member. */
#define	MAC_AUTO_NEGOTIATION			0
#define MAC_LINK_100M_SPEED				100
#define MAC_LINK_10M_SPEED				10
#define MAC_LINK_FULL_DUPLEX			0x80

	U8_T	LinkSpeed;
	U8_T	FullDuplex;
	U8_T	MediumLinkType;	/* map to mac register MAC_MEDIUM_STATUS_MODE_REG */
	U8_T	NetworkType;
	U8_T	InterruptMask;

} MAC_INFO;

/* GLOBAL VARIABLES */


/* EXPORTED SUBPROGRAM SPECIFICATIONS */
/*-------------------------------------------------------------*/
void MAC_Init(U8_T);
void MAC_Start(void);
void MAC_SetRxFilter(U8_T);
#if (MAC_GET_INTSTATUS_MODE == MAC_INTERRUPT_MODE)
  void MAC_SetInterruptFlag(void);
  U8_T MAC_GetInterruptFlag(void);
  void MAC_ProcessInterrupt(void);
#else
  U8_T MAC_LinkSpeedChk(void);
#endif
#if (MAC_REMOTE_WAKEUP == MAC_SUPPORT)
  void MAC_WakeupEnable(U8_T);
#endif
#if (MAC_MULTICAST_FILTER == MAC_SUPPORT)
  void MAC_MultiFilter(U8_T*, U8_T);
#endif


#endif /* __MAC_H__ */


/* End of mac.h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -