?? exp13.h
字號:
#define UINT unsigned char
#define UCHAR unsigned int
//#define ENABLE na_NET_INT->np_piointerruptmask=1
//#define DISABLE na_NET_INT->np_piointerruptmask=0
#include "alt_types.h"
#define SET_PAGE0 NET_Write_Data(0x0000,0x22)
#define SET_PAGE1 NET_Write_Data(0x0000,0x62)
#define PACK_ARP 0x0806
#define PACK_IP 0x0800
#define ARP_PACK_Len 60
#define Start_offset 4 //以太網偏移
#define Start_Ethernet 0
#define Start_ARP 14
#define Start_IP 14
#define Start_ICMP 34
#define Start_TCP 34
#define Start_HTTP 54
#define TCP_Symbol_FIN 0x01
#define TCP_Symbol_SYN 0x02
#define TCP_Symbol_RST 0x04
#define TCP_Symbol_PSH 0x08
#define TCP_Symbol_ACK 0x10
#define TCP_Symbol_URG 0x20
//------------------------------------------------------------------------------ y13.c
void Delay(UINT m_Delay); //延時子程序
void NET_Write_Data(UINT m_Addr,UCHAR m_Data); //8019寫一個數據的時序
UCHAR NET_Read_Data(UINT m_Addr); //8019讀一個數據的時序
void NET_Page_Set(UINT m_Page); //設定當前頁面
UINT NET_ID(UCHAR m_Num); //獲得8019的ID
void Set_MAC_Addr(void); //設置8019網卡MAC地址
void Read_Phy_ID(void); //獲得網卡物理地址 該程序可能有點問題
void NET_Hard_Reset(void); //8019硬復位
void NET_Soft_Reset(void); //8019軟復位
//void NET_INT_ISR(void * context,UINT id); //中斷服務子程序
void Init_system(void); //系統初始化
void Init_NET(void); //8019初始化
void DMA_Write_Data(UCHAR *m_Buffer,UINT m_StartAddr,UINT m_Len); //DMA寫數據,指定數據,指定8019存儲地址,指定長度
void NET_CLEAR_Data(void); //清除8019的原始數據
void DMA_Read_Data(UCHAR *m_Buffer,UINT m_StartAddr,UINT m_Len); //DMA讀數據,指定8019地址,指定數據存放地址,指定長度
void NET_Send_Packet(UCHAR *m_Buffer,UINT m_Len); //發送數據包,起始頁面和地址
void NET_Wait_PACK(void); //等待收到新的數據,并將一個完整的數據包寫入Receive_Buffer中,并檢出包類型
UINT m_Data_Compare(UCHAR *Addr1,UINT Start_Addr1,UCHAR *Addr2,UINT Start_Addr2,UINT Len); //多個數據判斷
UINT CHECK_SUM(UCHAR *Addr,UINT Start_Len,UINT Len); //計算校驗和
//------------------------------------------------------------------------------ net_arp.c
void IP_ARP(void); //ARP數據處理
//------------------------------------------------------------------------------ net_ping.c
void Revert_Ping(void); //回復Ping數據包
//------------------------------------------------------------------------------ net_head.c
void HEAD_Ethernet (void); //以太網頭,14個字節
void HEAD_IP(void); //IP頭,20字節
void HEAD_TCP(void); //TCP頭,20字節
//------------------------------------------------------------------------------ net_tcp.c
void IP_TCP(void); //tcp協議處理程序
void Send_TCP_PACK(void); //發送TCP連接用的標志數據包
void Change_UINT_UCHAR(UCHAR *Buffer,UINT Start,UINT Data); //將一個32位的數據轉換成4個8位的數組
UINT Change_UCHAR_UINT(UCHAR *Buffer,UINT Start); //數據轉換,將4個8位數組轉換成一個32位無符號整數
//------------------------------------------------------------------------------ net_http.c
void APP_HTTP(void); //http應用處理程序
void Send_HTTP_Response(void); //發送HTTP的請求響應包
void Send_HTTP_Content(void); //發送HTTP的內容數據包
UINT Change_Dec_ASC(UINT Data,UCHAR *ASC); //將數字轉換成ASC碼
//------------------------------------------------------------------------------
UINT PACK_Type; //數據包類型,區別于ARP,IP,RARP
UINT PACK_Len; //數據包總長度
UINT IP_PACK_Len; //IP數據包長度
UINT HEAD_Len_Ethernet; //以太網首部長度
UINT HEAD_Len_IP = 20; //IP首部長度
UINT HEAD_Len_TCP = 20; //TCP首部長度
UINT DATA_Len_HTTP; //HTTP數據長度
UINT DATA_Len_TCP; //TCP數據長度
UCHAR TCP_Symbol_Receive;
UCHAR TCP_Symbol_Send;
UCHAR BURY_Data;
UINT BURY_Addr=0x0003;
UCHAR CURR_Data;
UINT CURR_Addr=0x0007;
UCHAR MAC_Addr[]={0x00,0x0f,0x02,0x97,0xa8,0xfb}; //本地MAC地址
UCHAR MAC_O_Addr[6]; //外部MAC地址
UCHAR MAC_R_Addr[]={0xff,0xff,0xff,0xff,0xff,0xff}; //廣播MAC地址
UCHAR IP_Addr[]={192,168,0,2}; //本地IP地址
UCHAR IP_O_Addr[4]; //外部IP地址
UCHAR Send_Buffer[1536]; //發送緩沖區
UCHAR Receive_Buffer[1536]; //接收緩沖區
UCHAR TCP_State=0;
/*TCP的狀態,
0 初始狀態,等待被動連接
1 等待被動連接的第3次握手
2 正常傳輸狀態,或等待被動斷開
3 在被動斷開情況下,等待第4次握手
4 在主動斷開情況下,等待第2次握手
5 在主動斷開情況下,等待第3次握手
6 等待HTTP響應的ACK
7 等待HTTP內容的ACK
*/
UINT TCP_Port=0; //本地端口號
UINT TCP_Port_O=0; //外部端口號
UINT TCP_ISN=0x80000000; //本地序號
UINT TCP_ISN_O; //外部序號
UINT TCP_ISN_A; //本地確認序號
UINT TCP_ISN_OA; //外部確認序號
UINT Receive_PACK_HTTP_Len; //收到的HTTP包中,http數據長度
alt_u8 html_header1[]={"HTTP/1.1 200 OK\r\n" //17
"Cache-control: no-cache\r\n" //25
//"Connection: Keep-Alive\r\n" //24
"Content-Length: "};
alt_u8 html_header2[]={"\r\n"
"Connection: close\r\n"
"Content-Type: text/html\r\n\r\n" };
alt_u8 html_header[]={"HTTP/1.1 200 OK\r\n"
"Cache-control: no-cache\r\n"
"Connection: Keep-Alive\r\n"
"Content-Length: 1\r\n"
"Content-Type: text/html\r\n\r\n" };
alt_u8 web_page1[] = {"<html>\n"
"<head>\n"
"<title>SOPC實驗箱主頁</title>\n"
"</head>\n"
"<body>\n"
"<h1>本網頁被瀏覽"};
alt_u8 web_page2[] = {"次</h1>\n"
"<marquee height=40 width=100% bgcolor=aaeeaa>\n"
"<h2>北京百科融創科技有限公司歡迎您選用本公司產品!</h2>\n"
"</marquee>\n"
"</body>\n"
"</html>\n"};
UINT Content_Len; //HTTP實體長度
UINT Content_Len_ASC_Byte; //HTTP實體長度用ASC碼表示時,占用的字節數
UCHAR Content_Len_ASC[10]; //HTTP實體長度,用ASC碼表示,低位在前
UINT Open_Count=0; //網頁打開次數
UINT Open_Count_ASC_Byte; //網頁打開次數用ASC碼表示時占用的字節數
UCHAR Open_Count_ASC[10]; //網頁打開次數,用ASC碼表示,低位在前
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -