嵌入式系统设计

发布 2022-10-21 06:52:28 阅读 8825

小**。

课程名称: 嵌入式系统设计。

**题目: 基于arm9的网络服务器设计。

摘要。本**中,我们以嵌入式系统设计课程中所学知识为基础,对基于arm的简单嵌入式web服务器系统进行了简单设计。本设计利用arm 自带的web服务器技术,来实现对嵌入式web服务器系统的控制设计。

该技术基于web服务器之上,且用嵌入式web服务器来实现对于网络的访问。

本设计说明重点介绍了如下几方面的内容:

1)基于嵌入式web服务器的http协议;

2)linux 下的signal()函数的使用;

3)嵌入式web服务器的工作原理;

4)arm开发板上的socket网络编程。

关键词:arm体系;嵌入式web服务器;http协议 ;socket网络编程。

目录。第一章绪论 3

1.1课题简介 3

1.2设计目的 3

1.3设计内容 3

1.4 设计用途 3

第二章嵌入式web服务器设计原理简介 4

2.1 需求说明 4

2.2 功能需求详细说明 4

2.3 数据流图(dfd) 6

2.4 数据需求 6

第三章嵌入式web服务器设计流程 7

3.1 系统结构图 7

3.2 整体结构图说明 7

3.3 连接处理模块 8

3.4功能分配 8

第四章嵌入式web服务器设计程序分析及实践 10

4.1 程序设计 10

4.2程序分析 11

4.3 实验步骤 15

参考文献 17

随着后pc时代的到来,嵌入式系统技术已经成为了一个万众瞩目的焦点。目前已广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域。巨大的市场潜力,无穷的商机,吸引了各路英豪纷踵沓来。

arm单片机技术由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。在工业生产中,电流、电压、温度、压力和流量也都是常用的被控参数。

arm单片机控制嵌入式web服务器系统,是利用arm作为系统的主控制器,由linux下的vi编程,来实现对于嵌入式web服务器的访问。本设计采用arm技术,其具有集成度高,运算快速快,体积小、运行可靠,价值低廉的特点,适宜于绝大多数的控制过程。鉴于这样的重要性,我们打算设计一种基于arm的嵌入式服务器系统。

运用arm体系结构与编程所学知识及查阅相关资料,完成嵌入式web服务器的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。

熟知嵌入式web服务器的工作原理、socket网络编程。使用redhat linux 9.0 操作系统环境及arm 编译器,编译web服务器的驱动模块和应用程序,实现嵌入式web服务器的设计。

学习使用socket进行通讯编程的过程,了解一个实际的网络通讯应用程序整体设计, 读懂 源**。在此基础上增加一些其他功能。在pc计算机上使用浏览器测试嵌入式web服务器的功能。

图2.1 嵌入式web服务器需求说明。

1)获取服务器当前目录文件列表。

将服务器当前目录下所有文件的信息发送给客户端,信息包括:文件名、大小、日期。

2)获取指定文件。

将客户请求的文件发送给客户。

3)获取html 类型文件。

将客户请求的html 类型文件发送给客户。

4)获取纯文本文件。

将客户请求的纯文本发送给客户。

5)获取jpg 图像文件。

将客户请求的jpg 图像文件发送给客户。

6)解析用户请求。

分析客户的请求,将请求信息解析为几个变量,包括:请求的命令、请求的文件名、请求的文件类型。

图2.2 数据流图(dfd)

回应http协议数据头格式要求,如表2.1 所示:

表2.1 http 协议数据头格式。

图3.1 系统结构图。

主程序:建立tcp 类型socket 在80 端口进行监听连接请求。接收到连接请求,将请求传送给连接处理模块处理。并继续进行监听。

图3.2 连接处理模块。

1)发送当前目录文件列表信息。

将服务器当前目录下所有文件的信息发送给客户端,信息包括:文件名、大小、日期。

2)发送html 类型文件。

将客户请求的html 类型文件发送给客户。

3)发送纯文本文件。

将客户请求的纯文本发送给客户。

4)发送jpg 图像文件。

将客户请求的jpg 图像文件发送给客户。

5)发送gif 图像文件。

将客户请求的gif 图像文件发送给客户。

6)解析客户请求http 协议头。

分析客户的请求,包括:

1. 空格处理。

2. 解析客户请求命令。

3. 解析客户请求的资源名。

4. 解析客户请求的资源类型。

7)客户连接处理。

解析referrer 和content_length 字段值并调用客户请求解析函数。

8)发送http 协议数据头。

根据发送文件类型发送相应的http 协议头信息。

4.1.1、接口设计。

客户连接处理。

函数名:int handleconnect(int fd)

参数:客户连接文件描述字。

4.1.2、解析客户请求。

函数名:int parsereq(file *f, char *r)

参数:参数1:文件流file 结构指针,用于表示客户连接的文件流指针。

参数2:字符串指针,待解析的字符串。

4.1.3、发送http协议数据头。

函数名:int printheader(file *f, int content_type)

参数:参数1:文件流file 结构指针,用于表示客户连接的文件流指针。用于写入http

协议数据头信息。

参数2:信息类型,用于确定发送的http 协议数据头信息。

4.1.4、发送当前目录文件列表信息。

函数名:int dodir(file *f, char *name)

参数:参数1:文件流file 结构指针,用于表示客户连接的文件流指针。用于写入目录文件信息数据。

参数2:目录名,表示客户请求的目录信息。

4.1.5、发送html文件内容。

函数名:int dohtml(file *f, char *name)

参数:参数1:文件流file 结构指针,用于表示客户连接的文件流指针。用于写入文件信息数据。

参数2:客户请求的文件名。

4.1.6、发送纯文本(txt)文件内容。

函数名:int dotext(file *f, char *name)

参数:参数1:文件流file 结构指针,用于表示客户连接的文件流指针。用于写入文件信息数据。

参数2:客户请求的文件名。

4.1.7、发送jpeg图像文件内容。

函数名:int dojpeg(file *f, char *name)

参数:参数1:文件流file 结构指针,用于表示客户连接的文件流指针。用于写入文件信息数据。

参数2:客户请求的文件名。

4.1.8、发送gif图像文件内容。

函数名:int dogif(file *f, char *name)

参数:参数1:文件流file 结构指针,用于表示客户连接的文件流指针。用于写入文件信息数据。

参数2:客户请求的文件名。

4.2.1、主程序设计。

1)功能说明。

系统的总入口,也是系统的主要控制函数。分别完成如下功能:

建立环境设置。

设置信号处理方式。

建立侦听tcp 流方式socket 并绑定80 端口。

建立连接侦听及客户连接处理调用主循环。

2)算法流程图。

算法流程图如图4.1所示:

图4.1 主程序数据流程图。

3)命令行输入处理。

用户在命令行输入参数 -i ,则将客户输入文件描述字设为0,即标准输入。用于在本机进行测试。其他输入全部忽略。

4.2.2、客户连接处理模块设计。

1)功能说明。

用于初步处理客户的连接请求,并将请求信息传递给客户请求解析函数处理。

2)算法。算法流程图如图2.2所示:

图4.2 客户连接处理模块数据流程图。

4.2.3、客户请求解析处理模块设计。

1)功能说明。

用于解析客户的请求,并根据请求信息调用相应的函数进行请求处理。

2)算法。算法流程图如图2.3所示:

图4.3 客户请求解析处理模块数据流程图。

4.2.4、发送http协议数据头模块设计。

1)功能说明。

根据参数的不同,发送不同的http 协议头信息。

2)算法。函数定义为:int printheader(file *f, int content_type)

发送请求成功信息:http/1.0 200 ok。

根据文档类型发送相应的信息:

fprintf(),函数中的第一个参数f 为客户连接文件流句柄。

switch (content_type)

case 't':

fprintf(f,"content-type: text/plain");

break;

case 'g':

fprintf(f,"content-type: image/gif");

嵌入式ARM嵌入式系统设计

摘要 本系统设计了基于arm系统的嵌入式硬件平台,其中主要介绍了系统母版的具体电路实现,其硬件电路已经通过了信号完整性分析。中国 网 关键词 arm 嵌入式系统 中图分类号 tp368.1 文献标识码 a 文章编号 1007 9416 2012 12 0104 01 1 序言 本系统是设计一款基于a...

嵌入式linux与嵌入式系统设计

ustc bbs embedded斑竹d j主讲。感谢hongtao chen以及networking斑竹jun zxjun的大量幕后工作!感谢james zhang以及网络中心提供聚会的场地和大力支持!欢迎访问我的主页。聚会详情如下 名称 嵌入式系统设计以及嵌入式linux展望 时间 本周星期天 ...

嵌入式嵌入式系统原理与设计

第六章 iic总线。一 iic总线介绍 i2c总线 1.结构。2.工作原理 a b 主机 主设备 负责生成scl时钟,同时负责发出其实信号s和终止信号p 从机 从设备 被主机寻址的器件。1 a检测i2c总线是否 空闲 如果空闲 高 a发出起始信号 scl高,sda 2 寻址选择目标器件b,发送7位地...