触摸屏驱动毕业论文.docx
《触摸屏驱动毕业论文.docx》由会员分享,可在线阅读,更多相关《触摸屏驱动毕业论文.docx(28页珍藏版)》请在冰点文库上搜索。
![触摸屏驱动毕业论文.docx](https://file1.bingdoc.com/fileroot1/2023-8/15/3b938e5c-88ce-4745-8127-00ff19b340dc/3b938e5c-88ce-4745-8127-00ff19b340dc1.gif)
触摸屏驱动毕业论文
盐城师学院
毕业设计
2012-2013学年度
基于S3C44B0X的触摸屏驱动程序的设计
学生云峰
学院物理科学与电子技术学院
专业电子信息工程
班级09(4)班
学号09223346
指导教师施文娟
2013年5月27日
基于S3C44B0X的触摸屏驱动程序的设计
摘要
随着电子设备的不断智能化,传统的键盘、鼠标等人机交互方式已经无法满足人们的需求,人们想要更加方便准确的人机交互工具。
而触摸屏通过手指触摸就能实现操作定位,大大简化了电子设备的输入方式,真正实现零距离操作,因此触摸屏得到了越来越广泛的应用。
本文介绍了基于ARM7TDMI核的高性能微处理器S3C44B0X的基本功能,阐述了触摸屏的组成与基本工作原理,并在分析触摸屏嵌入式系统的基础上,针对触摸屏驱动控制程序的难点,提出了具体的解决方案,最终完成了基于微处理器S3C44B0X的触摸屏驱动控制程序的设计。
[关键词]人机交互,S3C44B0X,触摸屏,嵌入式系统
DrivendesignoftouchscreenbasedonS3C44B0X
Abstract
Withtheintelligentelectronicdevices,Traditionalkeyboard,mouseandotherhuman-computerinteractionhasbeenunabletomeetpeople'sneeds,Peoplewanttohavemoreconvenientandaccuratehuman-computerinteractiontool.Andtouchscreencanberealizedpositioningoperationbyfingerstouch,Thisgreatlysimplifyingtheinputmodeoftheelectronicequipmentandrealizingzerodistanceoperation,sothetouchscreenhasbeenmoreandmorewidelyused.
Thisarticledescribesthebasicfunctionsofhigh-performancemicroprocessorS3C44B0XbasedontheARM7TDMIcore,Describesthecompositionandthebasicworkingprincipleofthetouchscreen.Forthethedrivecontrolprogram’sdifficultiesoftouchscreen,Iproposedthespecificsolutionsbasedontheanalysisofthetouch-screenembeddedsystem.Finally,Icompletedthetouchscreen’sdrivercontrolprogramdesignbasedonS3C44B0X.
[Keywords]Human-ComputerInteraction,S3C44B0X,Touchscreen,Embeddedsystem
引言
随着电子信息技术发展以与数字化设备的普与,基于嵌入式系统的各种产品得到越来越广泛地应用,功能也越来越强大。
在巨大市场需求的驱使下,人们对各类电子产品的人机交互界面也有了越来越高的要求。
触摸屏正在逐渐取代键盘和鼠标,成为人们所使用的主要的输入设备。
触摸屏作为一种最新的输入设备,它是目前最简单、方便、自然的一种人机交互方式,它赋予了多媒体以崭新的面貌,是极富吸引力的全新多媒体交互设备[1]。
触摸屏在我国的应用围非常广阔,主要是公共信息的查询,如电信局、税务局、银行、电力等部门的业务查询,城市街头的信息查询,此外应用于领导办公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等[2]。
最近几年随着智能手机和平板的飞速发展,触摸屏最为其最重要的人机交互介质,正在以更快的速度走进我们的生活。
S3C44B0X微处理器是三星公司研发的基于ARM7TDMI核的高性能嵌入式处理器,由于其在拥有高性价比的同时嵌了多种接口,因此在消费类电子和手持电子设备中了的应用越来越广泛。
本文介绍了基于ARM7TDMI核的高性能微处理器S3C44B0X的基本功能,阐述了触摸屏基本工作原理,并在分析触摸屏嵌入式系统的基础上,针对触摸屏驱动控制程序的难点,提出了具体的解决方案,最终完成了基于微处理器S3C44B0X的触摸屏驱动控制程序的设计。
1S3C44B0X芯片介绍
1.1S3C44B0X简介
Samsung公司的S3C44B0X是国应用广泛的基于ARM7TMDI核的SoC。
该芯片功能强大,片上资源丰富,是Samsung公司为手持设备等应用提供的高性价比解决方案[3]。
S3C44B0X采用0.25μmCMOS的制作工艺,最大工作主频可达66MHz。
三级流水线结构高达0.9MIPSMHz。
CPU的核心电压为2.5V,IO口的电压为3.3~3.6V,核带有8KB的缓存。
由于采用了低电压技术,芯片运算速度很快,但功耗却很低。
S3C44B0X还采用了一种新的总线结构,那就是SAMBAⅡ(三星ARMCPU嵌入式总线结构)。
同时,此芯片还置了LCD控制器,其带有LCD专用的DMA控制器,支持最大到256色的双层超扭曲向列(DSTN)液晶屏。
这是现在应用较多的一种点阵式液晶显示器件,“超扭曲”顾名思义,即液晶屏中液晶分子的排列扭曲角很大,超过了90°。
S3C44B0X提供通用与全面的片上外设,大大减少了系统电路中除处理器以外的其他元器件配置,从而最小化了系统的成本[4]。
片上集成的主要功能如下:
*2.5VARM7TDMI核,带有8K缓存(SAMBAII总线体系结构,主频高达66MHZ);
*外部存储器控制器(FP/EDO/SDRAM控制器,片选逻辑);
*LCD控制器(最大支持256色DSTN),并带有1通道LCD专用DMA;
*双通道通用DMA,2通道外设DMA并具有外部请求引脚;
*双通道UART带有握手协议(支持IRDA1.0,具有16-byteFIFO)/1通道SIO;
*单通道多主IIC-BUS控制器;
*单通道IIS-BUS控制器;
*5个PWM定时器和1个部定时器;
*看门狗定时器;
*71个通用I/O口/8通道外部中断源;
*功耗控制:
具有正常,低速,空闲和停止模式;
*8通道10位ADC;
*具有日历功能的RTC;
*带PLL的片上时钟发生器。
1.2S3C44B0X的特性
1)体系结构
1 集成了通用嵌入式系统应用和手持电子设备的相关解决方案。
2 拥有16/32位RISC体系结构和ARM7TDMI处理器核强大的指令体系。
3 集成了Thumb代码压缩机:
在最大化代码密度的同时保持了32位指令的性能。
4 基于JTAG的片上集成ICE调试支持解决方案。
5 集成了32×8位硬件乘法器。
6 SAMBAII是一种新型低功耗的总线结构。
2)系统(存储)管理器
1 支持大端或小端模式。
2 寻址空间:
每个地址空间为32M字节(共有256M字节)。
3 所有地址空间可以使用编程将其设置为8位、16位或32位宽的数据对齐访问。
4 拥有7个固定的起始地址与大小可编程的地址空间。
5 拥有8个地址空间。
6 所有的存储器空间的操作周期都可以编程。
7 支持外部等待信号延长总线周期。
8 掉电时DRAM/SDRAM能启动自刷新模式。
9 支持地址对称或抵制非对称的DRAM。
3)Cache存储器和片SRAM
1 一体化的8K字节缓存。
2 未用的缓存空间用来作为0/4/8K字节的SRAM存储空间。
3 支持LRU替换算法。
4 采用“写穿式”策略来保持主存储器与缓存的容一致性。
5 写存储器具有4级深度。
6 当缓存未命中时,采用“请求数据优先填充”的技术。
4)时钟和电源管理
1 片上PLL使MCU工作时最大达到75MHz。
2 可以通过软件来设置各个功能模块的输入时钟。
3 电源模式:
正常、慢速、空闲和停止模式。
4 正常模式:
正常工作模式。
5 慢速模式:
不加PLL的低时钟频率模式。
6 空闲模式:
只停止CPU的时钟。
7 停止模式:
停止所有的时钟。
8 通过EINT[7:
0]或RTC报警中断从停止模式唤醒。
5)中断控制器
1 30个中断源(看门狗定时器、6个定时器、6个UART、8个外部中断、4个DMA、2个RTC、1个ADC、1个IIC、1个SIO)。
2 采用向量化的IRQ中断模式来减少中断的延迟。
3 外部中断通过可选的电平/边沿模式来触发。
4 电平/边沿模式优先可编程。
5 紧急的中断请求通过FIQ为进行服务。
6)定时器和PWM(脉宽调制)
1 PWM功能的定时器为5通道16位,部定时器为1通道16位(可进行基于DMA或中断的操作)。
2 可编程的占空比周期、频率和优先级。
3 支持外部中断源。
4 能产生死区。
7)RTC(实时时钟)
1 充分的时钟特性:
毫秒、秒、分钟、小时、日、星期、月、年。
2 32.768kHz时钟。
3 定时警报,可用于唤醒CPU。
4 可产生时钟节拍中断。
8)通用I/O口
1 8个外部中断口。
2 71个多功能输入/输出口。
9)UART(异步串行通信)
1 双通道通用UART,可进行基于DMA或中断的操作。
2 支持5位、6位、7位或8位串行数据的传输或接收。
3 可编程的波特率。
4 支持IrDA1.0(115.2Kbps)。
5 测试时采用回馈模式。
6 每个通道都通过两个部为32字节的FIFO来用于输入和输出。
10)DMA(直接存储器操作)控制器
1 双通道通用的DMA控制器。
2 双通道的桥式DMA(外设DMA)控制器。
3 支持I/O到存储器,存储器到I/O,I/O到I/O的DMA请求。
4 同时发生的多个DMA的优先级顺序可编程。
5 采用猝发式的传输模式以提高FPDRAM、EDODRAM和SDRAM的数据传输速率。
11)A/D转换器
1 8通道的ADC。
2 10-bit的带宽。
12)LCD控制器
1 支持彩色/黑白/灰度LCD屏。
2 支持单路和双路扫描显示。
3 支持虚拟显示屏功能。
4 系统存储器被用来作为显示的缓存。
5 用专门的DMA从系统存储器中获得图像数据。
6 灰度等级:
16级。
7 彩色模式:
256色。
13)看门狗定时器
1 16位的看门狗定时器。
2 在定时器溢出时会发出中断请求或系统复位。
14)I2C总线接口
1 1个多主的基于中断操作的I2C总线。
2 8位双向串行数据传送器,标准模式速度达到100Kb/S,快速模式达到400Kb/S。
15)I2S总线接口
1 1路基于DMA操作的音频I2S总线接口。
2 每通道8/16位串行数据传输。
16)SIO(同步串行I/O)
1 1路基于DMA或基于中断的SIO。
2 可编程的波特率。
3 支持8位串行数据的传输和接收操作。
17)操作电压的围
1 核为2.5V,I/O口为3.0V~3.6V。
18)运行频率与封装
1 最高达66MHz。
2 160LQFP/160FBGA。
1.3S3C44B0X引脚图与嵌入式结构图
如图1-1所示,S3C44BOX拥有71个多功能IO口,其分为7组;每组端口都可以满足不同的系统和设计需要,但在运行程序前必须先对每一个用到的引脚功能进行设置,如果有些引脚的复用功能没有被使用到,就可以将该引脚设置成IO口[5]。
图1-1S3C44B0X微处理器引脚图
S3C44B0X微处理器的嵌入式结构图如图1-2所示。
图1-2基于S3C44B0X嵌入式结构
2触摸屏原理
2.1触摸屏简介
触摸屏是一种附加在显示器表面的透明介质,通过使用者的手指触摸该介质来实现对计算机的操作定位,最终实现对计算机的查询和输入,从而大大简化了计算机的输入方式,真正实现零距离操作[6]。
触摸屏由触摸检测部件和触摸屏控制器组成,触摸检测部件主要完成检测用户触摸位置并传送给触摸屏控制器的功能,而触摸屏控制器则完成触摸信息的转换以与接收处理器的控制命令并执行的功能[7]。
当用户触摸显示器上的容时,实际上却是触摸到了触摸屏控制器。
它能将触摸点转换成触摸点坐标,再将触摸点坐标传送给微处理器。
微处理器在接收到触摸信息后就能作出相应的画面更新动作。
显示器则用于显示用户数据和画面等。
触摸屏检测部件简称为触摸屏,按其工作原理我们可以把它们分为:
电容感应式、表面声波式、电阻式和红外线式等几种。
它们的特性比较表见表2-1所示。
表2-1触摸屏特性比较表
类别特性
红外线式
触摸屏
电阻式
触摸屏
表面声波
触摸屏
电容式
触摸屏
清晰度
一般
较好
很好
较差
透光率
100%
75%
92%
85%
分辨率
40*32
4096*4096
4096*4096
1024*1024
响应速度
50—300ms
10ms
10ms
15—24ms
防刮擦
好
一般
非常好
一般
漂移
无
无
无
有
防尘
不能挡住
透光部
不怕
不怕
不怕
寿命
红外管寿命
大于3500万次
大于5000万次
大于2000万次
价格
低
中
高
中
由此可以看出电阻式触摸屏比较便宜的价格,良好的的定位精度和稳定性已经能够满足普通的使用要求,所以本设计使用的触摸屏为电阻式。
2.1.1电阻式触摸屏结构
如图2-1所示,电阻式触摸屏的屏体是一块与显示器表面非常贴合的多层复合薄膜,它的基层是一层玻璃或有机玻璃,表面与表面都涂了一层透明的导电层,上面再盖一层经过了硬化处理和光滑防刮的塑料层,为了绝缘,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开[8]。
图2-1电阻式触摸屏结构图
如图2-1所示,当你的手指或笔触摸屏幕时,平常相互绝缘的两层导电层就会在触摸点的位置有一个接触,因为其中有一面导电层(顶层)接通了X轴方向的5V均匀电压场,使得检测层(底层)的电压从零变为非零,当控制器侦测到这个接通后,就会进行A/D转换,并将得到的电压值与5V作对比即可得触摸点的X轴从坐标(原点在在靠近接地点的那端)[9]:
Xi=Lx*Vi/V(即分压原理)
同理得出Y轴的从坐标,这就是所有电阻技术触摸屏共同的最基本原理。
2.1.2电阻式触摸屏相关技术
电阻式触摸屏的主要部分是一块与显示器表面非常贴合的多层的复合薄膜,它的基层是一层玻璃或有机玻璃,表面上涂有一层透明导电层,上面再盖一层塑料层,并将其进行硬化与光滑防刮处理,同时它的表面也涂有一层导电层(ITO或镍金)。
电阻式触摸屏两层的导电层必须要保持它的完整性,在每个工作面的两条边线上都要涂一条银胶,一端加上5V电压,一端加上0V电压,这样就能形成均匀连续的平行电压分布在工作面的一个方向上。
在侦测到有触摸时,立刻对接触点的模拟量电压值进行A/D转换测量,根据5V电压下的等比公式就可以计算出触摸点在这个方向上的位置。
透明的导电涂层材料有两种:
1)ITO,氧化铟,是一种弱导电体,特性是当厚度降到1800个埃(埃=10米)以下时就会突然变得透明,透光率达到80%,但再薄下去后它的透光率反而会变低,当到300埃厚度时又会上升到80%。
但遗憾的是ITO在这个厚度下韧性非常差,很容易产生断裂。
ITO是一种所有电阻式触摸屏与电容式触摸屏都会用到的主要透明导电材料,实际上电阻式触摸屏与电容式触摸屏的工作面就是ITO涂层。
2)镍金涂层,拥有极好的延展性,因此镍金涂层材料被作为五线电阻式触摸屏的外导电层,外导电层由于会被频繁触摸,镍金材料良好的延展性的能够有效地延长其使用寿命,但是它的成本比较贵,因此只适合作为触摸屏的透明导体,不适合作为触摸屏的工作面。
因为镍金涂层的导电性太好了,所以不能对电阻进行精密的测量,而且金属的厚度很难做到非常均匀。
四线电阻式触摸屏的基层大多使用的是有机玻璃,它不仅透光率低、易风化和老化,因为有机玻璃的刚性差,所以在安装时存在一定的风险,而且安装时还不能捏边上的银胶,以免薄薄的ITO和相对厚实的银胶之间会产生脱落破裂,拉或压触摸屏时不可以用力,以免会拉断ITO层。
这就是有些四线电阻触摸屏安装后显得不太平整的原因。
ITO是一种无机物,有机玻璃是有机物,有机物和无机物无法良好地结合,只要时间一长就容易剥落。
如果能够生产出曲面的玻璃板,玻璃是一种无机物,就能和ITO结合的非常好成为导电玻璃,这样电阻触摸屏的寿命就能够得到大大的延长。
不管是四线还是五线电阻触摸屏,它们的工作环境都与外界完全隔离,不管是灰尘、水汽还是油污都不怕,你能够使用任何物体触摸它,它能够用来写字画画,比较适合办公室与工业控制领域的人的使用。
但电阻触摸屏有一个共同的缺点,那就是不知道的人如果太用力或使用锐器触摸可能会划伤整个触摸屏从而导致报废。
不过,在限度之,划伤只会伤到外导电层,外导电层的划伤对于五线电阻式触摸屏来说并不会产生影响,但对四线电阻触摸屏来说却是致命的。
2.2触摸屏工作原理
2.2.1触摸屏系统组成
触摸屏系统的组成如图2-2所示,他由S3C44B0X微处理器作为整个系统的控制、数据处理中心。
利用ADS7843进行触摸屏信号转换和液晶屏背光对比度控制电路连接处理器,A/D部分负责将模拟量转换为数字量供给处理器单元,由其进行判断、处理和显示,DI/DO部分负责将各种信号报警量采集进来,提供给处理器单元进行判断处理,并且输出控制信号去控制相应的设备动作,扩展串口部分提供了两个扩展的RS-232/RS-485串行接口,可以使用此接口与现场的其他设备交换数据,也可利用现场总线接口进行通信,例如采用Modbus、Devicenet协议通信,显示部分为一个触摸液晶显示屏,除了提供显示功能以外,他还作为输入设备,可替代常规键盘[10]。
图2-2触摸屏系统的组成
2.2.2触摸屏控制器工作原理
现今被使用的触摸屏控制器有多种,其主要功能均是在微处理器的控制下对触摸屏的两个方向分时施加电压,并将相应的电压信号传送给自身的A/D转换器,在微处理SPI口提供的同步时钟作用下将数字信号读入微处理器。
本系统中选用BB(Burr-Brown)公司生产的触摸屏接口专用芯片ADS7843。
ADS7843是一种串行接口芯片,其中置了l2位A/D转换和低导通电阻模拟开关的。
供电电压为2.7—5.0V,参考电压为1V—+Vcc,转换电压的输入围为0—Vref,最高转换速率为125kHz。
在125kHz吞吐速率和2.7V电压下的功耗为750μW,而在关闭模式下的功耗仅为0.5μW。
由于具有低功耗和高速等特性,所以被广泛应用,ADS7843之所以能实现对触摸屏的控制,是因为其部结构实现了电极电压的切换,并能进行快速A/D转换[11]。
S
A2
A1
A0
Mode
ser/der
PD1
PD0
图2-3ADS7843控制字
ADS7843的控制字如图2-3所示,其中s为数据传输起始标志位,该位必须为1。
A2—A0为通道选择位。
MODE用来选择A/D转换的精度:
“1”选择8位,“0”选择l2位。
SER/DFR用于选择参考电压的输入模式。
PD1和PD0选择省电模式:
“00”为省电模式允许,在两次A/D转换之间掉电,且中断允许;“01”与“00”一样,只是不允许中断;“10”为保留;“11”禁止省电模式。
为了完成一次电极电压切换和A/D转换,需要先经过串口往ADS7843发送控制字,转换完成后再通过串口读出电压转换值。
标准的一次换需要24个时钟周期,由于串口支持双向同时进行传送,并且在一次读数与下一次发送控制字之间可以重叠,所以转换速率可以提高到每次16个时钟周期[12]。
ADS7843的控制流程如图2-4所示。
图2-4ADS7843控制流程图
3软件设计
3.1驱动程序实现流程
本设计是通过THUS-1型嵌入式(ARM)实验/开发系统来完成的。
驱动控制电路软件设计中最为关键的就是根据ADS7843芯片部原理与时序关系控制其实现对XY坐标的采集,同时将信息通过RS232串行通信发送到计算机上[13]。
触摸屏驱动程序实现流程如图3-1所示。
图3-1触摸屏驱动程序实现流程
3.2中断处理程序
触摸屏的驱动核心是中断处理程序,响应中断并提供相应服务的程序称为中断处理程序。
在触摸屏驱动中,中断服务程序的主要功能就是加载定时器处理程序和指定执行程序的时间点[14]。
定时器处理程序的主要任务为通过ADS7843的X+,X-,Y+,Y-端子分别读取触摸屏X轴和Y轴的A/D转换坐标值,并对其进行判断,获得真实结构,达到对触点定位的目的。
定时器处理程序流程如图3-2所示。
图3-2定时器处理程序流程
3.3触摸屏按键的坐标算法
ADS7843的转换精度有8位和12位两种,可以精确到X或Y方向上的1/256和1/4096。
触摸屏的坐标如图3-3所示。
其中,(X,Y)是按键的中心坐标,(X’,Y’)是按键右下角坐标,(X”,Y”)是其左上角的坐标。
在触与屏幕时,触点只要在(X’,Y’)和(X”,Y”)矩形区域均认为是触摸该按键有效[15]。
图3-3触摸屏的坐标
实际采用固定参考电压模式,SER/DFR=1。
程序首先检测PENIRQ是否为低电平,只有当触摸屏有接触时此位才会为低电平。
利用软件模拟DIN,DOUT和DCLK上的三线串行传输时序,将读取X或Y坐标值的控制字串行送入ADS7843,然后再串行读出坐标值。
其中,Test-Touch()函数发送控制字并读取结果,程序流程图如图3-4所示。
图3-4读取坐标流程图
4触摸屏驱动程序的测试
4.1测试准备
1)用并口线正确连接电脑并口和配套仿真器,用14针(或20针)的排线连接仿真器和实验箱的JTAG口;用串口线连接实验箱上的串口1单元与计算机的COM1(或COM2)。
2)在PC机上运行windows自带的串口通信程序“超级终端”(波特率为57600、8位数据位、无奇偶校验位、1位停止位、无数据流控制)。
3)打开系统电源,运行仿真器驱动程序,使用ARMSTD2.51集成开发环境打开程序,下载并运行。
4)在PC上观察“超级终端”主窗口显示。
4.2运行结果
1)程序运行时,如图4-1所示。
图4-1触摸屏运行图
2)当触摸某一个数字时,超级终端接收到坐标,得到反馈结果,如图4-2所示。
图4-3反馈结果
结束语
在嵌入式智能设备中,触摸屏正在逐渐取代传统的鼠标、键盘等设备,成为最主要的人机交互输入设备,本文完成了基于S3C44B0X的触摸屏的驱动控制。
并实验证明的程序的稳定可靠,达到了预期的效果。
本文为人机交互中的触摸屏驱动控制提供了一种实用解决方案