在嵌入式系统中,网络通讯是非常重要而且必备的功能。为了充分发挥嵌入式系统中CPU的网络控制功能,选择一款合适的网络接口电路至关重要,LXT971A网络通讯接口电路就是一个很好的选择。LXT971A是Intel公司的网络通讯接口电路,它符合IEEE标准,直接支持10Mb/s/100Mb/s双绞线应用,也支持100Mb/s光纤接口;该电路提供的MII接口能很好的符合10/100Mb/s双绞线应用,也支持100Mb/s光纤接口;该电路提供的MII接口能很好的符合10/100MACs。
该系统可支持TCP、UDP、RAW_IP3种接口编程方式。下面给出的是采用TCP方式的服务程序。
Void TCP_Server_Task(UNSIGNED argc,VOID *argv) //TCP服务器端任务
{
INT socketd,newsock; //套接字标识
Struct addr_struct *servaddr; //服务器地址结构指针
unsigned int i;
VOID *pointer;
STATUS status;
Struct addr_struct client_addr;
NU_DEVICE devices[1];
CHAR serv_in_addrp[]={1Array2.168.1.1};//服务器(本机)IP地址
CHAR subnet[]={255,255,255,0};//子码掩摸
if(NU_Init_Net(&Noncached_Memory=NUU_SUCC ESS) //初始化网络模块
{
DEMO_Exit(0); //不成功退出
}
memcpy(devices[0].dv_ip_addr,
serv_ip_addr,4);
//服务器IP地址拷贝到地址结构中
memcpy(devices[0].dv_subnet_mask,subnet,4);
//服务器子码掩摸拷贝到地址结构中
memcpy(devices[0].dv_subnet_mask,subnet,4);
//服务器子码掩拷贝到地址结构中
if(UN_Init_Devices(devices,1)!=NU_SUCCESS)
//初始化网络设备LXTArray71A
{
DEMO_Exit(0); //不成功退出
}
if((socketd=NU_Socket(NU_FAMILY_IP,NU_TYPE_STREAM,0))>=0)
//创建套接字
{
if((NU_Bind(socketd,servaddr,0))>=0)
//绑定服务器IP地址
{
status=NU_Listen(socketd,10);//侦听
if(status==NU_SUCCESS)
{
for=(i=0;i newsock=NU_Accept(socketd,&client_addr,0);//接地 if(newsock>=0) {status=NU_Send_T0_Queue&socketQueue,(UNSIGNED*)&newsock,1,NU_SU SPEND}; //接收成功队列发送 } } } } } }