首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

单片机嵌入式Internet技术的Web应用实现(2)

单片机嵌入式Internet技术的Web应用实现(2)

3.3 单片机上的Web服务器编程
uIP协议栈提供了一个称为宏的UIP_APPCALL的应用程序接口供用户设计应用程序时使用[4]。要在单片机上实现Web Server服务,首先将该宏定义为一个应用程序函数名,然后在此函数中实现HTTP协议。完成后,用户可以从局域网内的任何客户机访问该单片机Web服务器。如果分配一个公网IP地址,则也可以从Internet上访问此Web服务器。实现的程序如下:
#define UIP_APPCALL uip_http /*定义宏UIP_APPCALL为uip_http的应用程序函数*/
void uip_http(void) /*开始实现http协议建立Web服务器*/
{struct uip http_state*s;
s=(struct uip app_state*)uip_conn->appstate;
if(uip_connected())
{… /*打开连接接口函数,开始一个新的应用程序连接*/
}
if(uip_newdat()||uip_rexmit()) /*接收数据接口或重发数据接口函数,应用程序发送数据*/
{if(uip_datalen()>0) /*判定数据的大小接口函数
{if(uip_conn->lport==80) /*收到新连接端口号为80的请求,此即http应用*/
{update_table_data();
s->dataptr=newpage;
s->dataleft=1957;
uip_send(s->dataptrs->dataleft); /*发送上述http应用数据*/
}
}
}
if(uip_acked()) /*返回ACK数据确认接口函数*/
{if(s->dataleft>uip_mss()&&uip_conn->lport==80)
{s->dataptr+=uip_conn->len;
s->dataleft-=uip-conn->len;
uip_send(s->dataptrs->dataleft);
}
return;
}
if(uip_poll())
{… /*轮询接口函数用于轮询各个客户端发起的连接*/
return;
}
if(uip_timedout()|| /*判断连接是否超时*/
uip_closed()|| /*关闭当前的连接*/
uip_aborted()) /*中断连接接口*/
{return;}
}
本文设计的系统成功应用在宁波市某商业广场的地下停车场监测系统中。由于该商业广场停车场业务量较大,常常导致车位饱和而客户不知道的情形下进入停车场寻找车位,而该停车场规定进入停车场超过15 min的车辆即开始收费。导致客户常常寻找超过规定的时间而仍未找到停车位但需付费,从而发生客户和管理方之间的纠纷,影响商业广场的整体形象。使用了该系统后,各个车位上的数据采集系统实时采集停车信息并反馈给系统。系统在停车场入口处显示停车场当前有无可停车位以及哪些区域有空闲车位等信息。如果车位已满,将会显示无可停车位。除此之外,管理人员还可通过客户端进行查询、计时计费等工作。本系统最大的优点是开发费用低廉且操作简单。在本文设计的系统中,客户端使用普通的Web浏览器,通过Internet即可与单片机嵌入式Web应用服务器进行通信。客户端浏览器不需要开发额外的软件,也不需要浏览器支持特别的功能。客户端可通过访问嵌入式Web服务器的网页内容与之进行交互。嵌入式Web与现场控制接口互连,可实现对被控设备的远程监测、控制、诊断、管理及维护等。嵌入式技术和Internet技术的相互融合,加速了电子设备的网络化应用趋势。应用单片机作为嵌入式Internet技术的硬件设备可以降低系统的成本。本文设计的嵌入式Web系统根据不同的应用需求,稍加修改即可应用在智能家电、智能建筑、仪器仪表、通讯产品、工业控制等众多领域。
返回列表