嵌入式课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
江汉大学嵌入式系统课程设计实验报告 (1)
基于简单web服务器的网页显示A/D转换 (1)
1. 实验目的 (3)
2. 设计要求 (3)
3. web服务器简介 (3)
3.1 web服务器 (3)
3.2 HTTP协议的工作原理 (3)
3.3 web服务器结构 (4)
4. A/D转换器 (4)
4.1 A/D转化器简介 (4)
4.2 驱动程序 (5)
5. HTML语言 (6)
5.1 html基本结构 (6)
6. 具体实现方法 (7)
6.1 思考过程 (7)
6.2 实验代码分析 (7)
6.3 实验结果 (12)
1.实验目的
1.了解在linux环境下对S3C2410芯片的8通道10位A/D的操作与控制。
2.掌握在ARM开发板实现一个简单WEB服务器的过程。
3.学习在ARM开发板上的SOCKET网络编程。
4.学习Linux下的 signal()函数的使用。
2.设计要求
在简单的web服务器的基础上,结合A/D接口实验,在网页上实时显示A/D 采样的值。
3.w eb服务器简介
3.1 web服务器
最基本的WEB服务器采用HTTP协议(超文本传输协议)。可以以文本、超文本、图形、音频、视频形式传输数据。使用HTTP协议可以在客户端和服务器之间以非常简单的方式传输数据,客户端发出请求,服务器返回响应给客户端。
3.2 HTTP协议的工作原理
HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。以下是HTTP请求/响应的步骤:(1)客户端连接到Web服务器
一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,。
(2)发送HTTP请求
通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
(3)服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,
A/D 转换器有以下类型:逐位比较型、积分型、计数型、并行比较型、电压-频率型,
主要应根据使用场合的具体要求,按照转换速度、精度、价格、功能以及接口条件等因素来决定选择何种类型。
4.2驱动程序
static int s3c2410_adc_open(struct inode *inode, struct file *file)
{
init_MUTEX(&adcdev.lock);
init_waitqueue_head(&(adcdev.wait));
adcdev.channel=0;
adcdev.prescale=0xff;
MOD_INC_USE_COUNT;
DPRINTK( "adc opened\n");
return 0;
} //AD 通道和比例因子初始化
static ssize_t s3c2410_adc_write(struct file *file, const char *buffer, size_t count, loff_t * ppos)
{
int data;
if(count!=sizeof(data)){
//error input data size
DPRINTK("the size of input data must be %d\n", sizeof(data));
return 0;
}
copy_from_user(&data, buffer, count);
adcdev.channel=ADC_WRITE_GETCH(data);
adcdev.prescale=ADC_WRITE_GETPRE(data);
DPRINTK("set adc channel=%d, prescale=0x%x\n", adcdev.channel, adcdev.prescale);
return count;
} //告诉内核驱动读哪一个通道的数据和设置比例因子
#define START_ADC_AIN(ch, prescale) \
do{ \
ADCCON = PRESCALE_EN | PRSCVL(prescale) | ADC_INPUT((ch)) ; \
ADCCON |= ADC_START; \
}while(0)
//PRESCALE_EN左移14 使位比例因子有效;PRSCVL 左移6 位设置比例因子;//ADC_INPUT左移3 位选择通道;
//ADCCON |= ADC_START; ADCCON 0 为置1,准备采集数据
s tatic ssize_t s3c2410_adc_read(struct file *filp, char *buffer, size_t count, loff_t *ppos)
{
int ret = 0;
if (down_interruptible(&adcdev.lock))
return -ERESTARTSYS;
START_ADC_AIN(adcdev.channel, adcdev.prescale);
interruptible_sleep_on(&adcdev.wait);
ret = ADCDAT0;
ret &= 0x3ff; //把数据寄存器内容放入变量ret
DPRINTK("AIN[%d] = 0x%04x, %d\n", adcdev.channel, ret, ADCCON & 0x80 ? 1:0);
copy_to_user(buffer, (char *)&ret, sizeof(ret));
//把ret 变量的内容传给用户缓冲区
up(&adcdev.lock);
return sizeof(ret);
} //由内核采集通道数据后把数据放回用户区
5.H TML语言
5.1 html基本结构
:
HTML 标签放置于HTML文件的头尾,它的作用是告诉浏览器这个文件是HTML文件。
:HEAD 标签一般在HTML标签和BODY标签的中间,是用来定义一些头部说明。
TITLE标签是用来定义这个HTML文档的标题,让浏览者访问网页时能够一下子明白网页的相关内容。它将显示在浏览器左上方。
在
标签里,可以定义网页的背景色,文字,链接等的颜色,甚至可以调入一些程序执行。在和中间,是网页的主要内容,是直接呈现给网友的部分。刷新语句