新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Linux的WEB服务器的设计与实现

基于Linux的WEB服务器的设计与实现

作者:时间:2009-12-18来源:网络收藏

1.2 Modem接口

本系统利用主控制器的 UART2进行模拟 Modem通信的基本过程:DS80C400先把准备写入串行设备的数据发送到 UART的寄存器中,再通过 FIFO传送到串行设备。 Modem接口电路我们采用芯片 MAX213EAI。MAXZ13EAI是 5V工作电源的 RS-232电平转换芯片。它集成了 4个输入和 5个输出的 RS-232电平转换口,可以很好的满足 Modem接口标准传输的需要。接口电路如图 3所示。

2 嵌入式 软件角度,则可将嵌入式软件分为 4个模块:网络通讯模块、接口管理模块、人机交互模块和远程加载模块。

2.1 网络通讯模块设计

2.1.1 以太网接入 Internet的

嵌入式 是沟通客户和控制现场的重要桥梁,客户通过认 Web浏览器来远程监控的功能。本 服务是以 TCP/IP协议来传输数据,以 HTTP协议来进行客户端与之间的请求和响应,其体系结构如图 4所示。

当客户在界

当客户在界面上进行操作时,如点击复选框或在文本框中输入数据。 Applet根据用户的操作进行响应,从而构造出新的命令字,向嵌入式 WEB服务器发出请求,服务器根据新的命令字驱动控制系统中相应的执行机构,并将新的状态信息和数据信息返回到客户端,客户端解析返回的数据,并进行实时显示。

2.1.2公用电话网接入 Internet的

为保证能在无以太网环境的情况下进行通信,系统还采用了串口外接调制解调器通过电话网来实现与远程客户机的通信。网络建立的实现就要用到 PPP协议(Point to Point Protocol点对点协议)。在程序运行的时候先要读取 PPP通信的控制信息,判断是否使用 PPP进行通信,否则默认使用 Ethernet来进行数据的传输。而不是同时开启这两种模式。

由于 PPP通信并不区分客户端和服务器,把负责认证和 IP分配的端认为是服务器,而不需要认证和使用服务器提供 IP的端认为是客户端。设计了 LinkManger类、PPPDaemon类、PPPModemLink类、ModemCommand类、PPPException类,用来实现 PPP通信。其中 LinkManger类:用于管理 PPP连接,启动经由网络接到远端服务器的出站连接,生成一个 PPPDaemon实例用来设置 IP,验证用户名和密码。并实现接收 PPP事务。

PPPModemLink类首先打开一个串口并进行初始化,初始化完成后,把一个串口的对象传递给 PPP,然后创建 ModemCommand对象来控制与调制解调器的串行通信,并通过 SerialPortEvenlistener接口监视 CD以检测调制解调器是否挂起。其定义了 Modem的初始化和复位方法:initializeLink()和 resetModem()。

ModemCommand类负责和 modem具体的串行通信,其分别定义了 sendcommand()、 waitFoResponse()和 receiveCommand()方法。分别用来发送、等待和接收命令。当操作超时,则抛出 DataLinkException;waitforMatc()主要用来供 sendCommand()和 receiveCommand()进行调用,用来判断接收到的字符串是否和匹配字符串一致。当相应操作超时,则抛出 DataLinkException。

2.2 电子邮件功能的实现

在系统设计时,考虑到系统的存储容量,不可能将采集的数据全部存储在本地的系统中,为了保存系统的日志,可以采取定时向指定邮箱发送数据。本系统用 Java语言开发了后台自动发送邮件的功能。邮件采用 BASE64编码,并且支持 SMTP认证。

在本系统中,只需要完成 SMTP的发送方式,而不要求其完成 SMTP的接收方式,这样就简化了编程的难度。SMTP开服务器和 SMTP客户之间的对话过程:首先建立 TCP连接,然后客户端发送 HELO命令以标识发件人的身份,客户端发送 MAIL命令,服务器端以 OK作为响应,表明准备接收。接下来客户端发送 RCPT命令,以标识该电子邮件的计划接收人,服务器端如表示愿意为收件人接收邮件。则在协商结束后发送邮件,用命令 DATA发送,将输入内容一起发送出去。最后结束此次发送,用 QUIT命令退出。所有的命令都是以换行符作为结束。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭