您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术基于Linux的SOPC开发 正文
基于Linux的SOPC开发

基于Linux的SOPC开发

点击数:7861 次   录入时间:03-04 12:00:14   整理:http://www.55dianzi.com   嵌入式系统-技术
   

        HTTP协议是一个属于应用层的面向对象的协议,由于其采用简捷、快速的方式,适用于分布式超媒体信息系统[4]。嵌入式Web服务器根据不同的需要,实现的功能也不同。相对于完整的Web服务器,它需要实现的功能要简单得多[5]。本文的嵌入式Web服务器仅实现协议中最常用的部分。考虑到嵌入式系统的存储空间和处理能力,对HTTP协议进行了裁减。这不仅可以提高Web服务器的效率,也可以减少占用的空间,具有积极的意义。
   

        当客户机与Web服务器进行会话时,客户机首先通过SOCKET与服务器建立连接,连接之后便向服务器提出请求,请求信息包括希望返回的文件名和客户机信息等。客户机以请求头(包括HTTP方法和头字段[6])的形式将信息发送给服务器。HTTP方法常用的有GET、HEAD、POST,因此本文即采用GET、HEAD、POST三种方法。
   

      HTTP头字段包括general-header、request-header、response-header、entity-header四大类,而每一类中又定义了多个类型[6],其中的大部分都是不常用的,所以应根据需要选定几种类型。本文设计的服务器支持以下几种头类型:Date、Host、Server、ACCept、Connection、Content-Type、Content-Length、Accept-Charset、 Accept-Language。
   

      服务器收到一个请求,就会立刻解释请求中所用到的方法,并开始处理,处理完成之后会发送应答消息。应答消息包含了状态码、一些头字段以及实体信息(即客户请求的服务器上的资源内容),其中HTTP协议的状态码也有四大类[6]。这些状态码详细说明了服务器的状态、出错信息以及对用户的指示。由于嵌入式Web服务器只需向用户提供服务,而无需向用户反馈具体的状态,因此,本文实现中只保留特定的几种错误信息,而省略了大部分的状态信息。

      3.2 支持多进程的嵌入式Web服务器的实现
   

       本系统的设计对HTTP协议进行了裁减,然后利用Linux系统提供的进程调度功能、网络通信功能(包括SOCKET、TCP连接等),使用C语言编写了一个支持多进程的Web服务器。实现的Web服务器接收客户端的请求,根据需要选择发送文件通过串口和外部设备通信,并将外部设备返回的结果发送给客户端。其功能描述如下:在指定的端口监听用户的HTTP请求,对该请求进行分析解释并执行相应的操作;将用户要求的内容或者出错信息以HTTP应答的方式返回给用户。其中,用户的请求分为CGI请求和非CGI请求,如果是CGI请求,则首先检查用户的权限和文件是否存在,然后新创建一个进程,并在该子进程中通过串口和外部设备通信,最后将串口返回的结果或者出错信息传送给Web服务器返回给用户;如果是非CGI请求,则只进行权限和文件检查,如果检查通过则发送该文件,否则给出出错信息。软件的工作流程如图5所示。


       本文给出了基于Linux的SoPC开发的方法,并实现了一个具体的应用设计——嵌入式Web服务器。该设计快速、简单,而且由于基于Linux操作系统,从而保证了系统的稳定性,同时因为利用了系统的进程调度功能,加快了信息的处理速度。SoPC和嵌入式Linux操作系统二者的结合,既满足了嵌入式应用按需定制、量体裁衣的需求,又能开发出稳定而功能强大的嵌入式系统。这在嵌入式应用日益复杂的背景下,具有很大意义和良好的应用前景。



上一页  [1] [2] 


本文关键字:开发  Linux  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术