嵌入式课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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标签的中间,是用来定义一些头部说明。

</TITEL>:</p><p>TITLE标签是用来定义这个HTML文档的标题,让浏览者访问网页时能够一下子明白网页的相关内容。它将显示在浏览器左上方。</p><p><BODY></BODY>:</p><p>在<BODY>标签里,可以定义网页的背景色,文字,链接等的颜色,甚至可以调入一些程序执行。在<BODY>和</BODY>中间,是网页的主要内容,是直接呈现给网友的部分。</p><p>刷新语句<meta http-equiv=refresh CONTENT=1></p> </div> </div> </div> </div> </div> <div id="rightcol" class="viewcol"> <div class="coltitle">相关文档</div> <ul class="lista"> </ul> <div class="coltitle">最新文档</div> <ul class="lista"> </ul> </div> </div> <script> var did = "a5685295"; var ext = 'docx'; var docId = '04xzz08aallprn2muzgo'; var totalPage = 12; const pageNum = '12'; </script> <div class="clearfloat"></div> <div id="footer"> <div class="ft_info"> <a href="https://beian.miit.gov.cn">闽ICP备16038512号-3</a> <a href="/tousu.html" target="_blank">侵权投诉</a>  ©2013-2023 360文档中心,www.360docs.net | <a target="_blank" href="/sitemap.html">站点地图</a><br> 本站资源均为网友上传分享,本站仅负责收集和整理,有任何问题请在对应网页下方投诉通道反馈 </div> <script>foot()</script> </div> </body> </html>