亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ip.c.bak

?? 2812 TCP/IP協議的實現
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
/**********************************************************************
修改于07.7.27,在RST8019末尾加入延時,保證發送不丟包
************************************************************************/
#include    "DSP28_Device.h"
extern	Uint16	TxEthnetFrameBuffer[1518/2];
extern	Uint16	RxEthnetFrameBuffer[100/2];
extern	Uint16	IsAns;

const Uint16 MyMAC[] = 
{0xE002,0xA04C,0x7C7E};

const Uint16 MyIP[] =
{0xA8C0,0x0301};

const Uint16 RemoteIP[] =
{0xA8C0,0x0101};

const Uint16 SubnetMask[] =
{0xFFFF,0x00FF};

const Uint16 GatewayIP[] = 
{0xA8C0,0x0101};

Uint16	TxBufFlag;
Uint16	bnry,curr;
Uint16 UDPUserDataLenth; 
//Uint16 RemoteMAC[3]={0x1900,0x22E0,0x7802};                             // 48 bit MAC,賦初值便于調試
Uint16 RemoteMAC[3];
Uint16 RecdFrameMAC[3];
Uint16 RecdFrameIP[2];
Uint16 RecdIpFrameLenth;
Uint16 TxFrameSize;
Uint16 ARPAnswerSuccessFlag;

/**********************************************************************
**函數原型:    void  	delay_ms(uint ms_number)
**入口參數:		ms_number: 延時的毫秒數
**出口參數:		無
**返 回 值:	無      
**說    明:	延時預定的時間,延時時間與特定的處理器有關
************************************************************************/
/*void	Delay_MS(Uint16	 ms_number)
{
	Uint16  i;
	Uint16  j;
	for(j = 0;j < ms_number;j++)
		for(i = 0;i < 10000;i++);
}*/
void	Delay_MS(Uint16	 ms_number)
{
	Uint16  i;
	Uint16  j;
	Uint16	tepDlay;
	for(j = 0;j < ms_number;j++)
	{
		for(i = 0;i < 227;i++)
		{
			tepDlay++;
			if (tepDlay==100)
			{
				tepDlay=0;
			}
		}
	}

}
/**********************************************************************
**函數原型:    void  page(uchar pagenumber)
**入口參數:   	Uint16	pagenumber: 要切換的頁
**出口參數:		無
**返 回 值:	無      
**說    明:	選擇頁,可選擇0,1,2三頁,第四頁ne000兼容芯片保留 
************************************************************************/
/*void	page(Uint16 pagenumber)
{
	Uint16 temp;
	temp=Reg00&0x3b;
	pagenumber=pagenumber<<6;
	Reg00=temp | pagenumber; 
}*/
void	page(Uint16 pagenumber)
{
	Uint16	temp;
	temp = Reg00;				//command register
	temp = temp&0x3B ; 			//注意txp位不能要
	pagenumber=pagenumber <<6;
	temp=temp | pagenumber;
	Reg00=temp;
}
/**********************************************************************
**函數原型:    void  	RST8019(void)
**入口參數:		無
**出口參數:		無
**返 回 值:	無      
**說    明:	復位8019AS
************************************************************************/
void 	RST8019(void)
{
	Uint16	resetTmp;
	Set8019RST;
	Delay_MS(50);
	Clr8019RST;
	Delay_MS(100);
	resetTmp=RegReset;
	RegReset=resetTmp;
	Delay_MS(100);//延遲10ms保證芯片復位成功;
}

/**********************************************************************
**函數原型:     void 	Init8019()
**入口參數:		無
**出口參數:		無
**返 回 值:		無              
**說    明:		對芯片的工作寄存器進行設置,各個寄存器的用法可參考文檔和
**				絡芯片的數據手冊
************************************************************************/
void	Init8019()
{
	Reg00=0x21;   //使芯片處于停止模式,這時進行寄存器設置
	Delay_MS(10); //延時10毫秒,確保芯片進入停止模式
	page(0);
	Reg0a=0x00;   //清rbcr0
	Reg0b=0x00;   //清rbcr1
	Reg0c= 0xee;  //RCR,監視模式,不接收數據包,11101110 
	//Reg0c= 0xec;  //RCR,監視模式,不接收數據包,11101100,小于64字節不接收
	Reg0d= 0xe2;  //TCR,loop back模式,Auto發送禁止,ENC module Loopback,Internal Lookback;11100010,rcr自動生成
	Reg01=0x4c;//Pstart
	Reg02=0x80;//Pstop
	Reg03=0x4c;//BNRY
	Reg04=0x40;  //TPSR,發送起始頁寄存器
	Reg07=0xff;  //清除所有中斷標志位,中斷狀態寄存器,ISR
	Reg0f=0x00;  //中斷屏蔽寄存器清0,禁止中斷IMR
	Reg0e=0xC9;  // 數據配置寄存器,16位dma方式,LS位怎么回事?該位與TCR中的兩個LOOPBACK位是對應的,為何此處設置不一致?
	//Reg0e=0xC1; //相對于上面設定了loopback模式??
	page(1);
	Reg07=0x4d;
	Reg08=0x00;
	Reg09=0x00;
	Reg0a=0x00;
	Reg0b=0x00;
	Reg0c=0x00;
	Reg0d=0x00;
	Reg0e=0x00;
	Reg0f=0x00;
	//Reg00=0x22;  //這時讓芯片開始工作,以上為loopback測試??
	//page(1);
	Reg01=0x02;
	Reg02=0xE0;
	Reg03=0x4C;
	Reg04=0xA0;
	Reg05=0x7E;
	Reg06=0x7C;
	page(0);
	//Reg0e=0xC9;
	Reg0c=0xcc;  //將芯片設置成正常模式,跟外部網絡連接RCR
	//Reg0c=0xde; //不要過濾小于64字節的數據,11011110,且物理地址不需要與自己的MAC相符
	Reg0d=0xe0;//TCR:11100000CRC enable;
	Reg00=0x22;  //啟動芯片開始工作
	Reg07=0xff;		//清除所有中斷標志位
	Reg0f=0x03;//僅限接受中斷
	///test
	IsAns=Reg07;
	page(2);
	IsAns=Reg01;
	IsAns=Reg02;
	IsAns=Reg04;
	IsAns=Reg0c;
	IsAns=Reg0d;
	IsAns=Reg0e;
	IsAns=Reg0f;
	
}
Uint16 CalcCheckSum(Uint16 *Start, Uint16 Count, Uint16 IsTCP, Uint16 IsUDP)
{
    Uint32 Sum;
    Sum = 0;
    if ((IsTCP)||(IsUDP)) 
    {
        Sum += MyIP[0];
        Sum += MyIP[1];
        Sum += RemoteIP[0];
        Sum += RemoteIP[1];
        Sum += SwapWord(Count*2);
        if(IsTCP)
             Sum += SwapWord(PROTOCOL_TCP);
        else
             Sum += SwapWord(PROTOCOL_UDP);
    }
    while (Count > 0) 
    {
        Sum += *Start;
        Start ++;
        Count --;
    }
    Sum = (Sum & 0xFFFF) + ((Sum >> 16)&0xFFFF);
    if(Sum&0xFFFF0000)
        Sum++;
    return((Uint16)((~Sum)&0xFFFF));
}
/**********************************************************************
**函數原型:    void 		SendFrame(Uint16 *TxdNetBuff,Uint16  length)
**入口參數:		Uint16    	*TxdNetBuff	:指向發送緩沖區
**              uint length					:發送數據包的長度
**出口參數:		無
**返 回 值:	無              
**說    明:	發送數據包,以太網底層驅動程序,所有的數據發送都要通過該程序
************************************************************************/
void	SendFrame(Uint16 *TxdNetBuff,Uint16 length)
{
	Uint16	i,ii;
   	if(length<46/2)
		{
  			for(i=length;i<60/2;i++)	TxEthnetFrameBuffer[i]=0;
  			length=60/2;
		}
	
	page(0);						//切換至第0頁
	length = length <<1;
	TxBufFlag=!TxBufFlag;			//設置兩個發緩區,提高發送效率
	if(TxBufFlag)
		{Reg09=0x40 ;}				//設置發送頁地址,RSAR設置遠程DMA起始地址
	else
		{Reg09=0x46 ;}				//設置發送頁地址

	Reg08=0x00; 					//read page address low
	Reg0b = length >>8;				//寫發送長度高位,RBCR
	Reg0a = length & 0x00ff;        //寫發送長度低位  
	Reg00=0x12;						//write dma, page0

	for(i=0;i<length/2;i++)

		{
			Reg10 = TxEthnetFrameBuffer[i];
		}

/***************************************/
//以下為終止DMA操作
			Reg0b=0x00; 
			Reg0a=0x00;
			Reg00=0x22;			//結束或放棄DMA操作
/***************************************/

		for(i=0;i<6;i++)	//最多重發6次
			{
				for(ii=0;ii<1000;ii++)
					{//檢查CR寄存器的txp位是否為低,為1說明正在發送,為0說明發完或出錯放棄
    					if((Reg00&0x04)==0)  
    						{ break; }
    				}
				if((Reg04&0x01)!=0)//表示發送成功,判斷發送狀態寄存器TSR,決定是否出錯
					{break;};
				Reg00=0x3e;
			}

		Reg07=0xff;//清除發送完標志
		if(TxBufFlag)
			{
				Reg04=0x40;   //txd packet start;
			}
		else
			{
 				Reg04=0x46;  //txd packet start;
			}
		Reg06=length>>8;  //high byte counter
		Reg05=length&0xff;//low byte counter
		Reg07=0xff;//清除所有中斷標志位,等待發送完成中斷
		Reg00=0x3e;       //to sendpacket;
}

	/**********************************************************************
**函數原型:    Uint16        Rec_NewPacket()
**入口參數:		無
**出口參數:		無
**返 回 值:	0          沒有新數據包
**              1          接收到新數據包
**說    明:	查詢是否有新數據包并接收進緩沖區
************************************************************************/
Uint16	RecFrame()
{
	Uint16	i,ii;
	Uint16	Temp,length;
	union{
			Uint16	total;	
			struct{
					Uint16	high:8;
					Uint16	low:8;
				  }e;
		 }d;
		 		  		
	page(0);
	bnry = Reg03;				//bnry page have read 讀頁指針
	bnry = bnry & 0x00FF;
	page(1);
	curr = Reg07;				//curr writepoint 8019寫頁指針
	curr = curr & 0x00FF;
	page(0);
	if((curr==0))return(0);	//讀的過程出錯
	bnry++;
	if(bnry>0x7f)	bnry=0x4c;
	if(bnry!=curr)			//此時表示有新的數據包在緩沖區里
		{					
			page(0);//在任何操作都最好返回page0
     //=======================================
			Reg09=bnry;		//讀頁地址的高字節
			Reg08=0x00; 	//讀頁地址的低字節
			Reg0b=0x00;		//讀取字節計數高字節
			Reg0a=18;       //讀取字節計數低字節
			Reg00=0x0a;     //啟動Remote DMA讀操作


			for(i=0;i<9;i++)	//讀取一包的前18個字節:4字節的8019頭部,6字節目的地址,6字節原地址,2字節協議
            	{
               		RxEthnetFrameBuffer[i]=Reg10;
              	}
//====================================中止DMA操作
			Reg0b=0x00;	//
			Reg0a=0x00;	//
			Reg00=0x22;	//結束或放棄DMA操作
//====================================
			
			d.total = RxEthnetFrameBuffer[0];
			length = RxEthnetFrameBuffer[1];
			if(((d.e.high & 0x01)==0)||(d.e.low > 0x7f) || (d.e.low < 0x4c)||( length > 1517))
				{//接收狀態錯誤或下一數據包的起始頁地址錯誤或接收的數據包長度>1500字節
					page(1);
					curr=Reg07; 	//page1
					page(0);		//切換回page0
					bnry = curr -1;
					if(bnry < 0x4c) 	bnry =0x7f;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区在线观看免费视频播放| 99视频一区二区三区| 亚洲欧美在线aaa| www激情久久| 精品国产三级a在线观看| 精品噜噜噜噜久久久久久久久试看| 91精品国产综合久久香蕉麻豆 | 日韩午夜精品电影| 欧美男男青年gay1069videost | 欧美精品一区二区三区很污很色的 | 91精品国产手机| 日韩一区二区在线看片| 精品视频一区三区九区| 欧美久久久久久久久| 欧美一区二区网站| 欧美一区二区三区在线| 精品国产乱码久久久久久免费| 久久久av毛片精品| 欧美韩国日本一区| 国产精品美女久久久久av爽李琼| 日韩精品一区二区三区四区 | 91超碰这里只有精品国产| 91精品啪在线观看国产60岁| 精品乱人伦一区二区三区| 国产精品免费av| 亚洲777理论| 韩国v欧美v日本v亚洲v| 国产a精品视频| 欧美日韩一区三区| 2020国产精品自拍| 亚洲欧美影音先锋| 蜜臀久久久久久久| aaa亚洲精品| 51精品秘密在线观看| 精品久久久久久亚洲综合网 | 亚洲欧洲性图库| 亚洲一区视频在线| 国产精品一区二区果冻传媒| 91色九色蝌蚪| 久久综合色播五月| 夜夜爽夜夜爽精品视频| 国产真实乱对白精彩久久| 日本高清不卡在线观看| 欧美精品一区二区三区蜜桃视频| 亚洲国产欧美日韩另类综合| 国产精品一级二级三级| 777久久久精品| 亚洲免费观看在线观看| 国产美女在线精品| 51精品国自产在线| 亚洲日本护士毛茸茸| 国产精品99久久久久久有的能看 | 日韩精品自拍偷拍| 一区二区三区四区亚洲| 成人影视亚洲图片在线| 精品国产乱码久久久久久久| 午夜视频一区在线观看| 色婷婷av一区二区三区大白胸| 久久久久亚洲蜜桃| 免费观看成人鲁鲁鲁鲁鲁视频| 色狠狠色噜噜噜综合网| 国产精品国产精品国产专区不片| 老司机一区二区| 欧美区视频在线观看| 一区二区高清免费观看影视大全| 丰满少妇在线播放bd日韩电影| 26uuu亚洲综合色| 日产国产高清一区二区三区| 欧美性videosxxxxx| 亚洲另类一区二区| 91精品福利视频| 亚洲人成人一区二区在线观看| 成人免费毛片a| 日本一区二区免费在线观看视频| 国产一区二区毛片| 久久老女人爱爱| 国产剧情一区二区| 国产婷婷色一区二区三区在线| 国产一区二区免费在线| 国产亚洲一区字幕| 国产91高潮流白浆在线麻豆| 国产精品毛片大码女人| 91在线无精精品入口| 亚洲色图欧美在线| 欧美日韩中文字幕一区二区| 亚洲成人自拍一区| 欧美久久久一区| 奇米亚洲午夜久久精品| 日韩一级二级三级精品视频| 国产一区二区三区黄视频 | 中文av一区二区| 色综合网站在线| 午夜精品久久久久| 欧美日韩另类一区| 久久9热精品视频| 精品国产一区二区三区久久影院 | 在线播放91灌醉迷j高跟美女| 午夜在线成人av| 欧美电影免费观看高清完整版在| 国产精品一区免费在线观看| 亚洲欧洲国产日韩| 91久久精品一区二区三区| 视频一区视频二区在线观看| 欧美一区二区在线免费观看| 国产精品18久久久久久vr| 国产精品视频一二三区| 欧美日韩久久久| 国产精品影音先锋| 亚洲视频图片小说| 欧美白人最猛性xxxxx69交| 国产成人自拍在线| 国产精品久久久久久久久搜平片 | 91精品国产麻豆国产自产在线| 国产一区 二区 三区一级| 亚洲最新视频在线播放| 久久夜色精品国产噜噜av| 色婷婷av一区二区| 国产精品一二一区| 三级欧美在线一区| 自拍偷自拍亚洲精品播放| 91麻豆精品国产91久久久久| 成人黄色电影在线| 久久成人精品无人区| 136国产福利精品导航| 日韩精品在线网站| 欧美精品九九99久久| aaa亚洲精品| 国产精品一区二区免费不卡 | 成人一级片网址| 蜜臀av一区二区在线免费观看| 亚洲精品免费在线播放| 欧美激情中文字幕一区二区| 日韩三级免费观看| 欧美日韩一区二区在线观看视频| 丰满岳乱妇一区二区三区| 狠狠色综合色综合网络| 日韩av一区二| 亚洲不卡在线观看| 亚洲精品一二三| **网站欧美大片在线观看| 国产人成亚洲第一网站在线播放| 欧美一区二区三区精品| 欧美系列一区二区| 欧美性猛片aaaaaaa做受| 91丨九色丨黑人外教| 成人a免费在线看| 国产成人亚洲综合色影视| 国产麻豆精品在线| 国产传媒一区在线| 国产成人av影院| 国产91在线看| 国产精品18久久久久| 成人在线视频一区二区| 国产福利一区二区| 成人亚洲一区二区一| av不卡免费电影| 色婷婷亚洲综合| 欧美天堂亚洲电影院在线播放| 在线精品观看国产| 欧美高清激情brazzers| 欧美日韩成人在线一区| 欧美一区二区精品久久911| 欧美一区二区三区公司| xvideos.蜜桃一区二区| 日本一区二区三级电影在线观看| 国产精品视频观看| 亚洲男女一区二区三区| 亚洲1区2区3区4区| 美女国产一区二区| 国产激情偷乱视频一区二区三区| 高潮精品一区videoshd| 99久久精品免费看| 欧美中文字幕一二三区视频| 欧美一区二区三区公司| 久久蜜臀精品av| 一区二区三区欧美激情| 日本欧美一区二区三区乱码| 国产一区欧美日韩| 91一区二区三区在线观看| 欧美精品在欧美一区二区少妇| 日韩手机在线导航| 国产精品久久久久久久久久免费看| 一区二区在线观看视频| 韩国三级电影一区二区| 91在线一区二区三区| 日韩无一区二区| 亚洲欧美日本韩国| 蜜桃91丨九色丨蝌蚪91桃色| 波多野结衣在线一区| 99精品国产热久久91蜜凸| 欧美日本免费一区二区三区| 国产亚洲制服色| 免费在线一区观看| 色悠悠亚洲一区二区| 欧美va亚洲va在线观看蝴蝶网| 亚洲人成在线播放网站岛国 | 成人性视频网站| 日韩一区二区麻豆国产| 日韩美女精品在线| 狠狠色狠狠色综合日日91app|