微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于SX单片机实现WebServer和网络协议栈

基于SX单片机实现WebServer和网络协议栈

时间:03-14 来源:互联网 点击:

② 用TCP API建立TCP主动连接
_TCPApp1Init
test switch ;  条件触发
sz
retp ;  没有触发,退出
_bank HTTP_BANK
mov w, #HTTP_CONNECT ;  启动HTTP状态机
mov httpState, w
_bank TCB1_BANK
mov tcb1LocalPortLSB, #80 ;  设置本机TCP连接服务端口
mov tcb1LocalPortMSB, #80
mov tcb1RemotePortLSB, #HTTP_PORT_LSB ;  设置远程主机TCP连接服务端口
mov tcb1RemotePortMSB, #HTTP_PORT_MSB
_bank TCPSOCKET_BANK
mov sock1RemoteIP3,#SMTP_SERVER_IP3 ;  设置远程主机的IP地址
mov sock1RemoteIP2,#SMTP_SERVER_IP2
mov sock1RemoteIP1,#SMTP_SERVER_IP1
mov sock1RemoteIP0,#SMTP_SERVER_IP0
clrb flags2.TCP_SOCK ;  显示TCP主动连接的状态
jmp @TCPAppActiveOpen ;  在指定的端口建立TCP连接
retp

③ 用TCP API发送数据和接收数据

一旦建立了TCP连接,那就只有两种情况:发送数据或接收数据。接收数据时,从IP层来的数据经过状态机去掉TCP包头后再送到应用层;发送数据时,软件状态机会在数据前面加上TCP包头再发送到IP层。

接收数据时,需要用到的TCP API函数为TCPAppRxBytes()、TCPAppRxData()和TCPAppRxDone();发送数据时,有一点值得关注:为了防止接收缓冲区的溢出,相对于发送数据包,协议栈给予接收数据包以更高的优先级。也就是说,协议栈软件会一直处理接收的数据包,直到接收缓冲区中没有任何数据。

发送数据时,需要用到的TCP API函数为TCPAppTxBytes()、TCPAppTxData()和TCPAppTxDone()。必须注意,只有在建立了TCP连接后,才可以发送数据。
 
3. 应用层

HTTP是WWW上的协议。当用户要浏览服务器上的一个网页时,一个HTTP 请求就会从用户的浏览器发到HTTP服务器。服务器响应这个请求,把指定的网页传送回来,用户才看到了网页。

下面是一个典型的客户端向服务器发送请求的例子:

GET Destination_IP/index.html http/1.0

GET代表客户端的请求命令,而服务器也受理这个命令;

Destination_IP代表远程主机的IP地址;index.html是客户端请求的资源;

http/1.0是HTTP协议的版本。

(1)SX协议栈对HTTP层的实现

因为HTTP层的下面是TCP层,也就是说HTTP把TCP作为它的传输协议,所以那两个TCP连接也为WebServer所用。理所当然,TCP API的发送和接收函数也用来实行WebServer的请求和相应命令。

所有的服务器资源都存放在外部的E2PROM中,HTTP使用统一资源定位器来指定返回给客户端的网络资源。统一资源定位器就像一个带有目录的文件路径一样,指定资源的路径和扩展名。SX协议栈并没有像普通的解决方案那样使用一般的文件系统来管理外部存储器中的资源,而是采用了一种称之为智能信息表来解决这个问题。当一个请求到来时,一个8位的无用信息对统一资源定位器进行运算(8位字符加运算),再将得到的数据乘以2,并把这个结果作为一个索引区中的一个值。如果在E2PROM中已经建立了查找表,凭着这个值在E2PROM中去查表,找到相应的资源并返回。用这种方法的好处是可以避免繁琐的字符串的比较和将统一资源定位器直接存放在服务器中。这种文件系统的结构如图6所示。
 
(2)E2PROM的编程

在WebServer启动以前,要先把资源文件下载到E2PROM中。在这个方案中采用RS232端口从电脑上传输资源文件。下载程序自动从电脑中载入磁盘的目录结构并在E2PROM中创建E2PROM文件系统。

参考文献

1 SX52BD100 Data Sheet. UBICOM Corporation,2000
2 SX52BD100 User Manual. UBICOM Corporation,2000
3 Ethernet SX-Stack Internet Connectivity. UBICOM Corporation,2000
4 Web Server Send Email Client Implementation with Ethernet as the Physical Layer. UBICOM Corporation,2000

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top