嵌入式课程设计文档格式.docx
- 文档编号:20822009
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:20
- 大小:652.91KB
嵌入式课程设计文档格式.docx
《嵌入式课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
X电极和Y电极的正负端由导电条分别从两端引出,且X电极和Y电极导电条的位置相互垂直,引出端X-、X+、Y-、Y+共4条线【6】。
图2.1四线电阻式触摸屏结构图
当有物体接触触摸屏表面并施以一定的压力时,上层的ITO导电层发生形变与下层ITO发生接触,形成可等效为图2.2的分压电路。
图2.2电阻触屏分压电路图
控制器通过下述方法即可确定触摸点位置:
(1)在X+电极施加驱动电压,X-电极接地,Y+作为引出端测量得到接触点的电压,触点电压与驱动电压之比等于触点X坐标与屏宽度之比,得到X坐标。
(2)在Y+电极施加驱动电压,Y-电极接地,X+作为引出端测量得到接触点的电压,触点电压与驱动电压之比等于触点Y坐标与屏高度之比,得到Y坐标。
因此,计算触摸点的坐标首先需要对触摸屏的引脚电平进行切换控制,使其处于合适的状态。
然后通过ADC转换采集到的接触点电压值,进行相应的计算。
触摸屏接口工作模式有以下几种:
(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域。
(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)域保持着先前转换所得的值【7】。
3总体设计
3.1设计总体方案
3.1.1软件
(1)EmbestOnlineFlashProgrammerForARM:
EmbestFlash在线编程器,如图3.1所示。
(2)HYPERTERMINAL(超级终端):
传送vivi.nand如图3.2所示。
图3.1EmbestFlash在线编程器
图3.2传送vivi.nand
vivi>
loadflashkernelx<
回车>
烧写更新内核,传送zImage文件;
等待传送内核文件,如图3.3所示。
图3.3等待传送内核文件
传送内核,如图3.4所示。
图3.4传送内核
loadflashrootj<
烧写更新文件系统;
烧写新的文件系统loadflashrootj,如图3.5所示。
图3.5烧写新的文件系统loadflashrootj
(3)EmbestIDEProforARM:
应用于嵌入式软件开发的新一代集成开发环境,是一个高度集成的图形界面操作环境,包含编辑器、编译汇编链接器、调试器、工程管理、Flash编程等工具;
支持的开发语言包括标准C和汇编语言。
(4)cygwin:
一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,把gcc,gdb,gas等开发工具进行了改进,能够生成并解释win32的目标文件【8】。
3.1.2硬件
S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,32位微控制器。
该处理器拥有:
独立的16KB指令Cache和16KB数据Cache,MMU,支持TFT的LCD控制器,NAND闪存控制器,3路UART,4路DMA,4路带PWM的Timer,I/O口,RTC,8路10位ADC,TouchScreen接口,IIC-BUS接口,IIS-BUS接口,2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI。
S3C2410处理器最高可运行在203MHz【9】。
3.2设计所需工具
(1)软件:
EmbestOnlineFlashProgrammerForARM,HYPERTERMINAL(超级终端),EmbestIDEProforARM,cygwin
(2)硬件:
s3c2410开发板,Embest实验箱
3.3平台构建过程
3.3.1硬件平台搭建
硬件流程图如图3.6所示。
图3.6硬件流程图
(1)Vivi烧写过程
1)首先把SW104断开,FlashProgrammer的Program,在File选择Open打开要烧写的配置文件S3C2410&
NandFLash_vivi.cfg,在FlashProgrammer的Program页中选择要烧写的文件vivi.bon&
load.bin。
点击按钮Progarm开始烧写,直到烧写成功。
2)连接串口线到PC机COM1,运行光盘中提供的Windows超级终端HyperTerminal.ht把开发板重新加电,程序运行后,在超级终端上可以看到串口输出Wating,表示正在等待用户从超级终端下载文件。
这时,请点击超级终端菜单"
传送"
选择Xmodem方式下载vivi.nand文件,点击OK后等待下载烧写结束即可。
(2)内核zImage烧写
1)首先SW104设为短接(从NandFlash启动),并确定已经烧写vivi.nand,加电。
2)在vivi启动等待中,敲入空格键进入vivi界面环境,并输入以下命令:
烧写更新内核约1分钟即可烧写完毕。
3)点击超级终端菜单中的“传送”,选“发送文件”zImage”并选择xModem方式传送)烧写结束,重起实验板,观测超级终端窗口提示信息就可以启动linux内核。
(3)新文件系统的烧写
1)首先SW104设为短接(从NandFlash启动),确定已经成功烧写vivi.nand,加电运行可以看到vivi启动信息,输入空格进入命令状态。
2)双击运行Download.pjf(该文件在/tmp/edukit-2410/image/中)工程(将启动EmbestIDE环境),点击连接Remoteconnect,程序应该正在运行(命令按钮STOP为红色);
在串口输入help,看看有没有反应,如果没反应,点击IDE按钮:
Reset->
Start(F5);
再输入help测试,直到有反应为止。
3)如果可以输出一些信息,再点击IDE中的Stop,配置Debug的Download地址为0x30000000,并点击IDE菜单Project选择Settings项,在Download页下拉Category到Download项,在DownloadFile选择root.cramfs文件,点击确定后,点击IDE菜单DEBUG选择Download下载文件系统映象(约1分钟),下载完毕后,点击Start(F5)。
然后在超级终端里输入:
loadflashrootj(烧写更新文件系统,约1分钟即可烧写完毕)。
注意:
只能在“vivi的烧写”操作完成后,才可以按以上方法正确烧写root映象到NandFlash。
重起实验板,观测超级终端窗口提示信息,引导整个系统启动到linux行命令输入状态【10】。
3.3.2根文件系统的制作
(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如图3.7所示。
图3.7生成文件
将ts文件放入root下的xx文件夹中。
(8)新文件系统的制作
把刚才编译输出的ts文件拷贝到文件系统所在的工作目录root目录下,执行以下命令生成新的文件系统映象:
mkcramfsrootroot.new
刚刚编译生成的文件系统映象root.new中已经包含测试程序即生成文件【11】。
解压文件系统,如图3.8所示。
图3.8解压文件系统
解压成功如下,如图3.9所示。
图3.9解压成功
在root目录中新建xx文件夹,用于存放应用程序,如图3.10所示。
图3.10在root目录中新建xx文件夹
\cygwin目录中,如图3.11所示。
图3.11将编写好的ts.c程序放在C:
\cygwin目录中
ts如下图所示3.12所示。
图3.12生成文件
新文件系统的制作,如图3.13所示。
图3.13新文件系统的制作
生成文件,如图3.14所示。
图3.14生成文件
4详细设计
4.1接口电路设计
微处理器采用基于ARM920T内核的RISC处理器S3C2410,主频203MHz,适用于低成本、低功耗和高性能手持设备和一般应用的单片微处理器解决方案。
其适合做触摸屏系统MCU的原因是该处理器内置了LCD控制器,并且集成了一个带有触摸屏接口的8通道10位AD转换器。
该ADC能以500KB/s的采样速率将外部的模拟信号转换为10位分辨率的数字量。
因此,ADC能与触摸屏控制器协同工作。
选用通道7和通道5连接触摸屏的模拟信号输入,其中,通道7(图4.1中A[7])作为触摸屏接口的X坐标输入,通道5(图4.1中A[5])作为触摸屏接口的Y坐标输入。
图4.1触摸屏接口电路原理图
S3C2410提供了nYPON、YMON、nXPON和XMON信号直接作为触摸屏的控制信号,通过其控制外部晶体管的打开与关闭实现触摸屏的引脚状态的切换,根据触摸屏工作原理,触摸屏引脚的状态应满足如下要求,见表4-1。
表4-1触摸屏引脚控制状态
X+
X-
Y+
Y-
X坐标
外部电压
接地
AIN[5]
高阻
Y坐标
AIN[7]
在电路的具体实现中,4个MOS管用2个FDC6321实现。
并增加阻容式低通滤波电路滤除坐标信号噪声(见图4.2)。
这里的滤波很重要,如果传递给S3C2410模拟输入接口的信号中干扰过大,不利于后续的软件处理。
图4.2触摸屏接口电路
4.2系统软件设计
4.2.1程序流程图
程序流程图如图4.3所示。
图4.3程序流程图
4.2.2分析驱动
触摸屏驱动在/kernel/drivers/char/s3c2410-ts.c文件中。
4.2.3触摸屏设备驱动中数据结构
(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;
//*自旋锁
structfasync_struct*aq;
#ifdefCONFIG_PM
structpm_dev*pm_dev;
//友善之臂专有的,我后面的代码删除了这段
}TS_DEV;
(3)触摸屏结构体中包含的TS_RET值的类型定义,包含X、Y坐标和状态(PEN_DOWN、PEN_UP)等信息,这个信息会在用户读取触摸信息时复制到用户空间。
unsignedshortpressure;
//*压力,这里可定义为笔按下,笔抬起,笔拖曳
unsignedshortx;
//*横坐标的采样值
unsignedshorty;
//*纵坐标的采样值
unsignedshortpad;
//*填充位
}TS_RET;
(4)在触摸屏设备驱动中,将实现open()、release()、read()、fasync()和poll()函数,因此,其文件操作结构体定义。
触摸屏驱动文件操作结构体:
staticstructfile_operationss3c2410_fops={}
4.2.4触摸屏驱动模块加载和卸载函数
(1)在触摸屏设备驱动的模块加载函数中,要完成申请设备号、添加cdev、申请中断、设置触摸屏控制引脚(YPON、YMON、XPON、XMON)等多项工作,
触摸屏设备驱动的模块加载函数:
staticint__inits3c2410_ts_init(void)
触摸屏设备驱动模块卸载函数:
staticvoid__exits3c2410_ts_exit(void)
(2)可知触摸屏驱动中会产生两类中断,一类是触点中断(INT-TC),一类是X/Y位置转换中断(INT-ADC)。
在前一类中断发生后,若之前处于PEN_UP状态,则应该启动X/Y位置转换。
另外,将抬起中断也放在INT-TC处理程序中,它会调用tsEvent()完成等待队列和信号的释放。
触摸屏设备驱动的触点/抬起中断处理程序:
staticvoids3c2410_isr_tc(intirq,void*dev_id,structpt_regs*reg)
当X/Y位置转换中断发生后,应读取X、Y的坐标值,填入缓冲区,触摸屏设备驱动X/Y位置转换中断处理程序:
staticvoids3c2410_isr_adc(intirq,void*dev_id,structpt_regs*reg)
触摸屏设备驱动中获得X、Y坐标:
staticinlinevoids3c2410_get_XY(void)
(3)tsEvent最终为tsEvent_raw(),这个函数很关键,当处于PEN_DOWN状态时调用该函数,它会完成缓冲区的填充、等待队列的唤醒以及异步通知信号的释放;
否则(处于PEN_UP状态),将缓冲区头清0,也唤醒等待队列并释放信号,
触摸屏设备驱动的tsEvent_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 课程设计