触摸屏课程设计.docx

上传人:b****8 文档编号:11210699 上传时间:2023-02-25 格式:DOCX 页数:26 大小:867.09KB
下载 相关 举报
触摸屏课程设计.docx_第1页
第1页 / 共26页
触摸屏课程设计.docx_第2页
第2页 / 共26页
触摸屏课程设计.docx_第3页
第3页 / 共26页
触摸屏课程设计.docx_第4页
第4页 / 共26页
触摸屏课程设计.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

触摸屏课程设计.docx

《触摸屏课程设计.docx》由会员分享,可在线阅读,更多相关《触摸屏课程设计.docx(26页珍藏版)》请在冰豆网上搜索。

触摸屏课程设计.docx

触摸屏课程设计

沈阳工程学院

课程设计

 

课程设计题目:

基于Linux触摸屏设计

 

系别信息学院班级系统本111

学生姓名贾悦学号2011415110

指导教师宋敏、踪念品职称讲师、工程师

起止日期:

2014年12月8日起—至2015年12月16日止

沈阳工程学院

课程设计任务书

 

课程设计题目:

基于Linux触摸屏设计

 

系别信息学院班级系统本111

学生姓名贾悦学号2011415110

指导教师宋敏、踪念品职称讲师、工程师

课程设计进行地点:

嵌入式系统实验室(F104)

任务下达时间:

2014年12月1日

起止日期:

2014年12月8日起—至2015年12月16日止

教研室主任杨弘平2014年11月20日

一、设计目的

嵌入式系统综合开发课程设计是配合其理论课程而设立的设计性实践课程。

其教学目的和任务是:

使学生在学习专业技术基础和主要专业课程的基础上,学习和掌握嵌入式系统技术的基本知识和方法,培养学生综合运用所学的专业基础理论、基本技能和专业知识分析问题和解决工程设计问题的能力,培养学生调查研究,查阅技术文献、资料、手册,进行程序设计、电路图纸绘制及编写技术文件的基本能力。

通过本课程设计使学生加深理解、巩固课堂教学和平时实验内容,使学生初步具备嵌入式系统应用开发的系统分析、系统设计、系统实现与测试的实际能力,强化学生的知识实践意识、提高动手能力,发挥学生的想象力和创新能力,从而培养工程应用型人才。

二、设计的原始资料及依据

课程设计题目以选用学生相对比较熟悉的业务模型为宜,通过本实践性教学环节,要求学生能较好地应用嵌入式系统的基本知识、嵌入式操作系统、高级语言程序设计方法等主要相关知识,针对实际问题完成需求分析、系统分析与设计,并使用C语言编写程序代码。

查阅与其相关的教材、参考资料等,进一步深入了解与题目相关的嵌入式系统的基本原理,掌握开发环境和硬件芯片的基本特性,研究开发实例,实现课题要求的内容。

三、设计的主要内容及要求

内容:

在Linux环境下完成触摸屏程序设计

要求:

1)熟悉开发板开发环境及VC++的开发语言;

2)Linux下内核的烧写;

3)根文件系统(烧写前需编译)的烧写;

4)调用驱动程序的某些函数,编译与调试应用程序。

 

四、对设计说明书撰写内容、格式、字数的要求

1.课程设计说明书(论文)是体现和总结课程设计成果的载体,主要内容包括:

设计题目、设计目标、设备器材、设计原理及内容、设计步骤或程序实现方法、遇到的问题及解决方法、设计总结、参考文献等,一般不应少于3000字(不包括程序清单)。

2.在适当的位置配合相应的功能模块图、程序流程图、程序界面效果图等图表进行说明,应做到文理通顺,内容正确完整,书写工整,装订整齐。

3.设计内容不允许抄袭和复印,否则取消设计成绩。

4.课程设计说明书打印采用A4纸,页边距为20mm。

正文采用宋体小四字,行间距18磅。

中文大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,标题与图题采用宋体五号字。

5.课程设计说明书装订顺序为:

封面、任务书、成绩评定表、摘要及关键词、目录、正文、参考文献。

五、设计完成后应提交成果的种类、数量、质量等方面的要求;

1.提交课程设计说明书一份。

2.提交设计原理、设计图纸或图表(如接口电路原理图等)。

3.作品的使用或操作说明

六、时间进度安排;

顺序

阶段日期

计划完成内容

备注

1

2天

查阅资料及概要设计

系统分析,系统分析

2

3天

课题总体设计

4

2天

课题论证

5

3天

搭建软件及硬件环境

6

7天

软件开发,程序设计

硬件设计

7

7天

上机调试程序

9

3天

完善系统及功能

10

2天

撰写报告

11

1天

课程设计答辩总结

30天

七、主要参考资料(文献)。

[1]科尔特.LINUX设备驱动程序[M].北京:

中国电力出版社,2005.

[2]亚默.构建嵌入式LINUX系统[M].北京:

中国电力出版社,2004.

[3]JasminBlanchette,MarkSummerfield.C++GUIProgrammingwithQt3[M].PrenticeHallinassociationwithTrolltechPress,2004.

[4]陈帮鹏,王焕文.Linux操作系统之浅见[J].民营科技,2007,13

(2):

38-51.

[5]马宁,于洪志.Linux的民文化艺术[J].西北民族大学学报,2005,43(3):

1-6.

[6]李昕.Linux创造一个神话[J].中国青年科技,1998,39(4):

13-21.

[7]MicrosoftCorporation.TechnologyforSecureCommunication,AccessControl,andCommerce[J].MSDNLibrary,1998,56

(2):

23-28.

[8]John.ADVANCEDATASHEETBCM5464[M].PrenticeHallinassociationwithTrolltechPress,2003.

[9]史蒂文斯.UNIX环境高级编程[M].北京:

中国电力出版社,2004.

沈阳工程学院

嵌入式系统综合开发课程设计成绩评定表

系(部):

信息学院班级:

系统本111学生姓名:

贾悦

指导教师评审意见

评价

内容

具体要求

权重

评分

加权分

调研

论证

能独立查阅文献,收集资料;能制定课程设计方案和日程安排。

0.1

5

4

3

2

工作能力

态度

工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,

0.2

5

4

3

2

工作量

按期圆满完成规定的设计任务,工作量饱满,难度适宜。

0.2

5

4

3

2

说明书的质量

说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。

0.5

5

4

3

2

指导教师评审成绩

(加权分合计乘以12)

加权分合计

指导教师签名:

年月日

评阅教师评审意见

评价

内容

具体要求

权重

评分

加权分

查阅

文献

查阅文献有一定广泛性;有综合归纳资料的能力

0.2

5

4

3

2

工作量

工作量饱满,难度适中。

0.5

5

4

3

2

说明书的质量

说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。

0.3

5

4

3

2

评阅教师评审成绩

(加权分合计乘以8)

加权分合计

评阅教师签名:

年月日

课程设计总评成绩

摘要

随着多媒体信息的与日俱增,传统的人机交互的速度已经不能满足需求,传统的人机交流是通过键盘或鼠标来实现的。

信息交换的速度比较慢,而且要求操作者具有一定的专业知识。

这将使信息交流的目的大打折扣。

触摸屏因方便灵活、节省空间、直观等特点,作为嵌入式系统的输入设备,已取代键盘,越来越受到各种终端产品商的重视。

基于Linux的嵌入式系统目前获得到了广泛应用,在嵌入式Linux核心层的开发中,设备驱动分为字符设备、块设备和网络接口设备,触摸屏驱动属于字符设备,但它也可以被纳入input输入子系统的框架下。

通过毕业设计的驱动程序开发,也希望能对国家在这方面的发展做出自己的一点贡献。

本论文介绍了触摸屏的分类和原理,接着概要介绍嵌入式系统的相关原理理论,然后详细介绍了整个系统的开发环境,最后对整个触摸屏驱动系统进行了分析,讨论了系统具体实现。

关键词Linux操作系统、触摸屏、程序开发。

目录

摘要1

目录2

第一章绪论3

1.1设计题目3

1.2设计目的3

1.3设计内容3

第二章工作原理4

2.1触摸屏工作原理4

2.2嵌入式操作系统的概述5

2.2.1嵌入式操作系统的特性5

2.2.2嵌入式操作系统的分类5

2.2.3嵌入式操作系统的特点5

第三章总体设计7

3.1Linux内核7

3.2内核目录结构7

3.3编译内核7

3.4根文件系统10

第四章程序设计14

4.1程序流程图14

4.2分析驱动14

4.2.1触摸屏设备驱动中数据结构14

4.2.2触摸屏驱动模块加载和卸载函数15

4.2.3触摸屏设备驱动的读函数16

4.2.4触摸屏设备驱动的轮询与异步通知16

4.3应用程序的调试17

第五章结果显示18

5.1打开应用程序18

5.2结果显示18

结论19

致谢20

 

第一章绪论

1.1设计题目

基于Linux下的触摸屏设计。

1.2设计目的

1、基于Linux操作系统,利用触摸屏返回触点坐标值及动作信息;

2、坐标及动作的具体显示:

触摸笔动作,触点X坐标值,触点Y坐标值;

3、了解并掌握掌握相关专业课程知识和设计能力;

4、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技术;

5、提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

6、加深对专业课的理解,强化学生的逻辑思维能力和动手能力,巩固良好的编程习惯,为将来工作的学习打下坚实基础。

1.3设计内容

1.Linux系统的正确移植和使用

2.根文件系统的正确移植和使用

3.驱动程序的编译与装载

4.嵌入式系统下应用程序的交叉编译及下载与调试

第二章工作原理

2.1触摸屏工作原理

(1)普通转换模式

普通转换模式(AUTO_PST=0,XY_PST=0)是用作一般目的下的ADC转换。

这个模式可以通过设置ADCCON和ADCTSC来进行对AD转换的初始化;而后读取ADCDAT0(ADC数据寄存器0)的XPDATA域(普通ADC转换)的值来完成转换。

(2)分离的X/Y轴坐标转换模式:

X轴坐标转换和Y轴坐标转换。

X轴坐标转换(AUTO_PST=0且XY_PST=1)将X轴坐标转换数值写入到ADCDAT0寄存器的XPDATA域。

转换后,触摸屏接口将产生中断源(INT_ADC)到中断控制器。

Y轴坐标转换(AUTO_PST=0且XY_PST=2)将X轴坐标转换数值写入到ADCDAT1寄存器的YPDATA域。

转换后,触摸屏接口将产生中断源(INT_ADC)到中断控制器。

(3)自动(连续)X/Y轴坐标转换模式。

自动(连续)X/Y轴坐标转换模式(AUTO_PST=1且XY_PST=0)以下面的步骤工作:

触摸屏控制器将自动地切换X轴坐标和Y轴坐标并读取两个坐标轴方向上的坐标。

触摸屏控制器自动将测量得到的X轴数据写入到ADCDAT0寄存器的XPDATA域,然后将测量到的Y轴数据到ADCDAT1的YPDATA域。

自动(连续)转换之后,触摸屏控制器产生中断源(INT_ADC)到中断控制器。

(4)等待中断模式

当触摸屏控制器处于等待中断模式下时,它实际上是在等待触摸笔的点击。

在触摸笔点击到触摸屏上时,控制器产生中断信号(INC_TC)。

中断产生后,就可以通过设置适当的转换模式(分离的X/Y轴坐标转换模式或自动X/Y轴坐标转换模式)来读取X和Y的位置。

(5)静态(Standby)模式

当ADCCON寄存器的STDBM位被设为1时,Standby模式被激活。

在该模式下,A/D转换操作停止,ADCDAT0寄存器的XPDATA域和ADCDAT1寄存器的YPDATA(正常ADC)域保持着先前转换所得的值。

2.2嵌入式操作系统的概述

嵌入式系统是集成电路发展过程中的一个标志性成果,它把计算机直接嵌入到应用系统中,融合了计算机软/硬件技术、通信技术和微电子技术,是一种微电子产业和信息技术产业的最终产品。

微电子产业是许多国家优先发展的产业。

以超深亚微米工艺和IP核复用技术为支撑的系统芯片技术是国际超大规模集成电路发展的趋势和21世纪集成技术的主流。

2.2.1嵌入式操作系统的特性

随着计算机技术和产品向其它行业的广泛渗透,由于嵌入式系统具有小巧、高度自动化、响应速度快的特点,因而非常适应信息家电和现代控制设备的需要,嵌入式技术成为了一个研究热点。

嵌入式系统,是将计算机直接嵌入至系统中,是信息IT的最终产品。

它根据应用的要求,将操作系统和功能软件集成于计算机硬件系统中,实现软件与硬件一体化。

2.2.2嵌入式操作系统的分类

嵌入式操作系统是随着嵌入式系统的发展出现的。

从应用范围角度大致可以分为可分为专用型(如Ucos、WindowsCE、VxWorks、嵌入式Linux等)和通用型(如PalmOS、Symbian)的嵌入式操作系统等。

从实时性的角度大致可以分为实时嵌入式操作系统和一般嵌入式操作系统。

2.2.3嵌入式操作系统的特点

嵌入式操作系统是对通用操作系统的继承和发展,具有操作系统的基本功能,包括指令执行、任务调度、存储器管理、设备管理和中断处理等。

但是,由于嵌入式系统的硬件环境和程序运行需求有很大限制,所以嵌入式操作系统又有如下并不同于一般操作系统的特点。

(1)资源限制。

嵌入式操作系统一般只有64MB内存,而且非易失性FLASH通常也就32MB,因此,操作系统运行时,就不能像在PC上那样使用资源了。

(2)安全性限制。

在嵌入式领域,系统在运行之后一般都不能在短时期内停机或者重启,因此死机、蓝屏是绝对不允许的。

(3)可移植性。

在设计过程中常采用通用的程序设计语言和运行支撑环境,尽量不用与系统的底层相关性强的语言。

 

第三章总体设计

3.1Linux内核

在IT术语中,内核既是操作系统的心脏,也是它的大脑,因为内核控制着基本的硬件。

内核是操作系统的核心,具有很多最基本功能,如虚拟内存、多任务、共享库、需求加载、共享的写时拷贝(copy-on-write)可执行程序和TCP/IP网络功能。

3.2内核目录结构

Arch:

与体系结构相关的代码全部放在这里。

Documentation:

这里存放着内核的所有开发文档。

Drivers:

此目录包括所有的驱动程序。

fs:

此目录下包括了大量的文件系统的源代码。

Include:

这里是内核的所有头文件存放的地方。

Init:

Linux的main.c程序。

Ipc:

systemV的进程间通信的原语实现。

Kernel:

这个目录下存放的是除网络、文件系统、内存管理之外的所有其他基础设施。

Lib:

包括一些通用支持函数,类似于标准C的库函数。

mm:

这个目录包含实现内存管理的代码,包括所有与内存管理相关的数据结构。

Net:

这个目录包含了套接字抽象和网络协议的实现。

Script:

这个目录存放许多脚本,主要用于配置内核。

3.3编译内核

1.将linux-2.6.24.4.tar.bz2放入虚拟机内,使用指令tarxjvflinux-2.6.24.4.tar.bz2对其进行解压,如图3.1。

图3.1

2.配置内核文件

输入makemenuconfig命令,对内核选项进行配置,如图3.2.

图3.2

3.驱动程序

(1)网卡驱动;

图3.3

 

(2)触摸屏驱动;

图3.4

(3)字符设备驱动;

图3.5

保存退出后,接下来就可以对内核进行编译了。

编译成功后,会会在内核源码目录的arch/arm/boot/目录下生成内核压缩文件zImage。

(4)使用命令将新生成的内核镜像文件zImage做成uImage。

 

图3.6

内核烧写成功后启动UP-CUP2440型系统,可以在串口终端中查看到Linux内核在启动过程中打印出来的信息。

3.4根文件系统

(1)根文件系统

根文件系统是Linux系统的核心部分,包含系统使用的软件和库,以及所有用来为用户提供支持架构和用户使用的应用软件,并作为储存数据读写结果的区域。

在Linux系统启动时,首先完成内核安装及环境初始化,最后会寻找一个文件系统作为根文件系统被加载。

Linux系统中使用“/”来唯一表示根文件系统的安装路径。

嵌入式系统中通常可以悬着的根文件系统有:

Romfs、CRAMFS、RAMFS、JFFS2、EXT2等,甚至还可以使用NFS作为根文件系统。

(2)cramfs文件系统

Cramfs是Linux创始人Linuxtorvalds开发的一个适用于嵌入式系统的小文件系统。

Cramfs是一个只读文件系统,采用zlib压缩,压缩比一般可以达到1:

2,但仍可以做到高效的随机读取。

Linux系统中,通常把需要修改的目录压缩存放,并在系统引导的时候再将压缩文件解开。

因为cramfs不会影响系统读取文件的速度,而且是一个高度压缩的文件系统,因此非常广泛应用于嵌入式系统中。

(3)cygwin简介

Cygwin是一个在windows平台上运行的unix/Linux模拟环境,是cygnussolutions公司开发的自由软件。

Cygwin中,“/”表示根目录,即cygwin的安装目录。

我们常用的set_env_linux.sh中定义的目录有:

SOURCEDIR:

/tmp/edukit-2410存储了vivi、linux、fs等源代码和例程

WORKDIR:

/usr/local/src/edukit-2410工作区。

一般情况下都要把已经规划好的目录结构转换成一个映象文件,即使用命令工具mkcramfs(cygwin下为mkcramfs.exe),把相应的cramfs目录树压缩为单一的映象文件。

其命令格式为:

mkcramfs[-h][-eedition][-ifile][-nname]dirnameoutfile

可以使用我们提供的mkcramfs.exe在cygwin下编译生成文件系统映象文件root.cramfs,再固化到开发系统FLASH上运行。

(4)常用的Linux行命令

1)、cd改变当前目录(文件夹)。

例如下,

cd/返回到根目录

cd..退回到上级目录

cd/tmp/edukit-2410/进入/tmp/edukit-2410/文件夹

2)、ls列出当前目录中的内容。

Ls简单格式列表

ls–l使用详细格式列表。

3)、pwd显示当前所在的目录。

(5)tar工具命令

tar程序用于储存或展开tar存档文件。

命令格式:

tar[-参数][文件名][路径]

-x:

extract|--get从存档展开文件

-v:

--verbose详细显示处理的文件

-j:

--有bz2属性的必须包含

-f:

--file[HOSTNAME:

]F指定存档或设备(缺省为/dev/rmt0)

(6)解压原文件系统(命令+解压目录的存放)

1)先将root.cramfs.tar.bz2文件放在C:

\cygwin目录中

2)解压文件系统

运行cygwin,执行以下命令解压安装:

$>source/tmp/edukit-2410/set_env_linux.shLinux编译环境变量设置

$>cd/

$>tar-xvjfroot.cramfs.tar.bz2

$>ls

…root…

root文件夹中就是我们想要的cramfs文件系统

3)如果在根目录中产生root文件夹,解压成功

4)在root目录中新建xx文件夹,用于存放应用程序

进入该目录后执行以下命令编译链接测试程序:

$>cdroot

$>mkdirxx

(7)编译应用程序ts.c(命令+生成文件格式+存放位置):

将编写好的ts.c程序放在C:

\cygwin目录中

进入该目录后执行以下命令编译链接测试程序:

$>cd/

$>arm-linux-gcc-otsts.c(也可以编写Makefile来编译)

生成文件:

ts如下图所示

将ts文件放入root下的xx文件夹中

(8)新文件系统的制作:

把刚才编译输出的ts文件拷贝到文件系统所在的工作目录root目录下,执行以下命令生成新的文件系统映象:

$>cd/

$>mkcramfsrootroot.new

刚刚编译生成的文件系统映象root.new中已经包含测试程序即生成文件。

 

第四章程序设计

4.1程序流程图

图4.1

4.2分析驱动

4.2.1触摸屏设备驱动中数据结构

(1)触摸屏的file_operations

staticstructfile_operationss3c2410_fops={

owner:

THIS_MODULE,

open:

s3c2410_ts_open,

read:

s3c2410_ts_read,

release:

s3c2410_ts_release,

#ifdefUSE_ASYNC

fasync:

s3c2410_ts_fasync,//异步通知

#endif

poll:

s3c2410_ts_poll,//轮询

};

(2)触摸屏设备结构体的成员与按键设备结构体的成员类似,也包含一个缓冲区,同时包括自旋锁、等待队列和fasync_struct指针

typedefstruct{

unsignedintpenStatus;/*PEN_UP,PEN_DOWN,PEN_SAMPLE*/

TS_RETbuf[MAX_TS_BUF];/*protectagainstoverrun(环形缓冲区)*/

unsignedinthead,tail;/*headandtailforqueuedevents(环形缓冲区的头尾)*/

wait_queue_head_twq;//*等待队列数据结构

spinlock_tlock;//*自旋锁

#ifdefUSE_ASYNC

structfasync_struct*aq;

#endif

#ifdefCONFIG_PM

structpm_dev*pm_dev;//友善之臂专有的,我后面的代码删除了这段

#endif

}TS_DEV;

(3)触摸屏结构体中包含的TS_RET值的类型定义,包含X、Y坐标和状态(PEN_DOWN、PEN_UP)等信息,这个信息会在用户读取触摸信息时复制到用户空间

typedefstruct{

unsignedshortpressure;//*压力,这里可定义为笔按下,笔抬起,笔拖曳

unsignedshortx;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1