第11章 触摸屏电路设计及驱动开发

合集下载

触控屏的驱动电路制作,电路图及源代码

触控屏的驱动电路制作,电路图及源代码
集成电路查询网()
电子电路网()
void drawbigpoint(u8 x,u16 y,u16 col) { if(x>220&&y<9) { LCD_DrawBLOCk(0,0,239,319,0x0000);//清屏 LCD_write_english_string(210,0,"CLR",0xFFE0,0x001F);//清屏按键区域 } else { LCD_Set_Point(x,y,col);//中心点 LCD_Set_Point((x+1),y,col); LCD_Set_Point(x,(y+1),col); LCD_Set_Point((x+1),(y+1),col); } } //读取 ADS7846(画线) void Read_Ads7846(void) { u8 t,t1,count=0; u16 databuffer[2][10]={{5,7,9,3,2,6,4,0,3,1},{5,7,9,3,2,6,4,0,3,1}}; //数据组 u16 temp=0; //循环读数10次 do
集成电路查询网()
电子电路网()
if(X>=240)X-=240;eFra bibliotekse X=0;
if(Y>=320)
Y-=320;
else Y=0;
首先,介绍以下触控屏幕的构造,它是由一块触控屏幕和一块液晶显示屏幕粘合在一起 的。液晶显示屏幕按色彩、材料、成像原理等多种方式分类,种类繁多,这里 对液晶屏幕 不做详细介绍,本文图片中所使用的是16Bit 半透明反射式 TFT 液晶点阵显示屏。而触摸屏 幕主要分为两大类,分别是电容式和电阻式。
电容式触控屏利用人体的电流感应进行工作,优点是使用寿命长,触摸时不需用力,面 板坚硬耐磨;缺点是触摸精度低,必须使用特定的介质触控(如人体皮肤),受温度湿度影响很 大,外界有较强磁场电场时,触控屏会失灵,简单来说就是抗干扰性较差。

电容触摸屏原理及其驱动实现.ppt

电容触摸屏原理及其驱动实现.ppt
如下图所示:
(3) 修改TP驱动的makefile编译文件 修改kernel-3.10\drivers\input\touchscreen\mediatek\makefile文件,增加编译选项
obj-$(CONFIG_MSG5846_SP466)
+= msg5846_sp466/
(4) 修改配置文件 修改 /kernel-3.18/arch/arm64/configs/lava6750_sp603_th_debug_defconfig 与 lava6750_sp603_th_defconfig 文
操作时,控制器先后提供电流给驱动线,因而使各节点与导线间形成一特定电场。然后逐 列扫描感应线测量其电极间的电容变化量,从而达成多点定位。当手指或触动媒介接近时,控 制器迅速测知触控节点与导线间的电容值改变,进而确认触控的位置。这种一根轴通过一套AC 信号来驱动,而穿过触摸屏的响应则通过其它轴上的电极感测出来。使用者们把这称为“横穿 式”感应,也可称为投射式感应。传感器上镀有X,Y轴的ITO图案,当手指触摸触控屏幕表面 时,触碰点下方的电容值根据触控点的远近而增加,传感器上连续性的扫描探测到电容值的变 化,控制芯片计算出触控点并回报给处理器。
电气连接框图:
TP端
VDD GND SCL SDA INT RESET VDDIO
主机端
硬件原理图
五、MTK平台驱动实现
1. TP的软件基本操作流程:
◎ 主机端初始化TP的接口方式(I2C端口初始化); ◎ TP IC初始化(主要是为TP上电、复位及下发配置参数,让TP工作起来,不同厂家的IC初 始化方式不同,有些TP不需要主机端下发配置参数); ◎ 设置TP INT引脚(中断方式:低/高电平中断、下降沿/上升沿中断),装载中断向量表; ◎ 等待中断信号,读取手指触摸坐标数据,并上报给系统。

触摸屏控制器驱动程序设计

触摸屏控制器驱动程序设计

触摸屏控制器驱动程序设计在便携式的电子类产品中 ,触摸屏由于其便、灵活、占用空间少等优点 ,已经逐渐取代键盘成为嵌入式计算机系统常选用的人机交互输入设备。

触摸屏输入系统由触摸屏、触摸屏控制器、微控制器及其相应的驱动程序构成。

本文从触摸屏控制器的驱动程序设计着手 ,介绍触摸屏控制器 ADS7843 的内部结构及工作原理和在嵌入式 Linux 操作系统中基于PXA255微处理器的ADS784羽驱动程序设计。

1触摸屏控制器ADS7843的介绍1.1ADS7843的内部结构ADS7843内驻一个多路低导通电阻模拟开关组成的供电-测量电路网络、12bit逐次逼近A/D转换器和异步串行数据输入输出,ADS7843艮据微控制器发来的不同测量命令导通相应的模拟开关 ,以便向触摸屏电极对提供电压 ,并把相应电极上的触点坐标位置所对应的电压模拟量引入A/D转换器,图1为ADS7843内部结构图。

X+、Y+ X-、丫为触摸屏电极模拟电压输入;CS为ADS7843的片选输入信号,低电平有效;DCLK接外部时钟输入 ,为芯片进行 A/D 转换和异步串行数据输入 /输出提供时钟;DIN串行数据输入端,当CS低电平时,输入数据在时钟的上升沿将串行数据锁存;DOUT串行数据输出端,在时钟下降沿数据由此移位输出,当 CS 为高电平时,DOUT呈高阻态。

BUSY为系统忙标志端,当CS为低电平, 且BUSY为高电平时,表示ADS7843正在进行数据转换;VREF参考电压输入端,电压值在+1V到+VCC之间变化;PENIRC为笔触中断,低电平有效;IN3、IN4为辅助ADC转换输入通道;+VCC为电源输入。

图1ADS7843内部结构1.2ADS7843的转换时序ADS7843完成一次数据转换需要与微控制器进行3次通信,第一次微处理器通过异步数据传送向 ADS843 发送控制字 ,其中包括起始位、通道选择、 8/12 位模式、差分 /单端选择和掉电模式选择 ,其后的两次数据传送则是微控制器从 ADS7843 取出 16bitA/D 转换结果数据(最后四位自动补零),每次通信需要 8 个时钟周期 ,完成一次数据转换共需 24 个时钟周期周2为ADS7843转换时序。

linux 触摸屏驱动程序设计

linux 触摸屏驱动程序设计

物理与电子工程学院《嵌入式系统设计》课程小论文课题题目linux 触摸屏驱动程序设计系别物理与电子工程学院年级08级专业电子科学与技术学号050208110学生姓名储旭日期2011-12-21目录第 1 章嵌入式 linux 触摸屏驱动程序设计........................................................................ - 2 -1.1 课题设计的目的.......................................................................................................... - 2 -1.2 课题设计要求.............................................................................................................. - 2 - 第二章课题设计平台构建与流程............................................................................................ - 2 -2.1 嵌入式系统开发平台构建.......................................................................................... - 2 -2.1.1 cygwin 开发环境............................................................................................ - 2 -2.1.2 Linux 开发环境.............................................................................................. - 5 -2.1.3 Embest IDE 开发环境.................................................................................... - 5 -2.2 触摸屏设计流程.......................................................................................................... - 5 -2.3 课题设计硬件结构与工作原理.................................................................................. - 6 -2.3.1 硬件结构概述.................................................................................................. - 6 -2.3.2 触摸屏工作原理.............................................................................................. - 8 - 第三章 Bootloader 移植与下载.............................................................................................. - 9 -3.1 Vivi 源代码的安装.................................................................................................... - 9 -3.2 Vivi 源代码分析...................................................................................................... - 10 -3.3 Vivi 源代码的编译与下载...................................................................................... - 11 - 第四章 Linux 内核移植与下载.............................................................................................. - 12 -4.1 Linux 内核源代码的安装........................................................................................ - 12 -4.2 Linux 内核源代码分析与移植................................................................................ - 14 -4.3 Linux 内核编译与下载............................................................................................ - 14 - 第五章触摸屏功能模块程序设计与交叉编译...................................................................... - 16 -5.1 功能模块驱动程序设计............................................................................................ - 16 -5.2 触摸屏功能模块交叉编译........................................................................................ - 20 - 第六章根文件系统建立与文件系统下载.............................................................................. - 20 -6.1 Cramfs 根文件系统分析.......................................................................................... - 20 -6.2 文件系统映像文件生成............................................................................................ - 21 -6.3 功能模块运行与调试................................................................................................ - 22 - 第七章课题设计总结与体会.................................................................................................. - 26 - 参考文献:................................................................................................................................ - 27 -第 1 章嵌入式 linux 触摸屏驱动程序设计1.1 课题设计的目的在开发基于Linux 的嵌入式系统前需要首先建立嵌入式系统的开发环境,并制定嵌入式系统上的Linux 内核。

WinCE 触摸屏驱动程序的研究与开发

WinCE 触摸屏驱动程序的研究与开发

WinCE 触摸屏驱动程序的研究与开发摘要本文首先阐述了Windows 的体系结构及中断处理、驱动程序模型,在介绍触摸屏工作原理的基础上,以基于S3C2410触摸屏驱动程序为例,系统讲述了如何使用分层的驱动程序模型来实现Windows CE的驱动程序设计。

本文介绍了触摸屏驱动程序开发的软硬件细节,介绍的方法可移植性强,可方便的移植到其它的硬件设备中。

关键词Windows ; 驱动程序; 触摸屏; S3C24100 引言Windows 是一个抢先式多任务并具有强大通信能力的Windows 32位嵌入式操作系统,是微软专门为信息设备、移动应用、消费类电子产品、嵌入式应用等非PC领域而从头设计的战略性操作系统产品。

可以看出 Windows CE并不是Windows桌面操作系统的一部分或缩减版本。

CE系统与其它操作系统一样,也提供了设备驱动程序,以驱动内部或者外围硬件设备。

驱动程序将操作系统和设备链接起来,使得操作系统能够识别设备,并为应用程序提供相应的服务[1]。

要想真正了解驱动程序必须结合一些驱动程序的实际开发,本文以基于ARM9核心硬件平台的触摸屏驱动程序为例,讲解如何在不同的硬件设备上实现Windows CE的驱动开发。

1 Windows CE的体系结构Windows CE是由许多离散模块组成的,每一模块都提供特定的功能。

这些模块中的一部分被划分成组件。

组件使Windows CE变得非常紧凑,只占不到200KB 的RAM,因此只占用了运行设备所需的最小的ROM、RAM以及其它的硬件资源。

图1 Windows CE的体系结构Windows CE包含提供操作系统最关键功能的4个模块:内核模块;对象存储模块;图形、窗口和事件子系统(GWES)模块以及通信模块。

Windows CE还包含一些附加的可选择模块,这些模块可支持的任务有管理流设备驱动程序、支持COM等。

内核是OS的核心,通过Core Dll模块表示。

触摸屏设计方案

触摸屏设计方案

触摸屏设计方案1. 引言触摸屏作为一种用户界面交互方式,已经在电子设备领域中得到广泛应用。

它可以取代物理按键,提供更直观、便捷的操控方式。

本文将介绍一个触摸屏设计方案,包括设计目标、硬件选型、软件开发以及测试计划。

2. 设计目标在设计触摸屏前,首先需要明确设计目标。

以下是本设计方案的目标:•实现高精度触摸控制:触摸屏应该有足够的分辨率和灵敏度,以实现精准的触摸控制。

•支持多点触控:触摸屏应该支持多点触控,以实现更复杂的手势操作。

•高可靠性和稳定性:触摸屏应该具备高可靠性和稳定性,能够在长时间使用中保持正常工作。

•低功耗:触摸屏应该尽可能降低功耗,延长电池续航时间。

•符合人体工程学设计:触摸屏的外形和尺寸应该符合人体工程学的要求,使操作更舒适。

3. 硬件选型选择适合的硬件是设计触摸屏的重要一步。

下面是本设计方案的硬件选型:3.1 触摸屏芯片触摸屏芯片是触摸屏的核心组件,负责将触摸信号转换为数字信号输出。

在选型触摸屏芯片时,需要考虑以下因素:•分辨率:选择具备高分辨率的触摸屏芯片,以获得更准确的触摸控制。

•灵敏度:选择灵敏度高的触摸屏芯片,以提高触摸的响应速度。

•接口类型:触摸屏芯片应支持常用接口类型,比如I2C或SPI,在连接主控芯片时更加方便。

•抗干扰能力:触摸屏芯片应具备较好的抗干扰能力,以减少外部干扰对触摸控制的影响。

3.2 显示屏触摸屏一般与显示屏结合使用,形成一个完整的显示控制系统。

在选型显示屏时,需要考虑以下因素:•分辨率:选择与触摸屏芯片匹配的显示屏,以保证触摸和显示的一致性。

•尺寸和比例:根据应用场景和终端设备的尺寸要求选择合适的显示屏尺寸和比例。

•显示技术:根据应用需求选择合适的显示技术,比如LCD、OLED等。

3.3 控制器控制器是触摸屏与主控芯片之间的桥梁,负责将触摸信号传输给主控芯片,并接收主控芯片发送的指令。

在选型控制器时,需要考虑以下因素:•接口类型:选择与主控芯片兼容的控制器,以确保信号传输的稳定性。

基于STM32F103的触摸屏驱动模块设计

基于STM32F103的触摸屏驱动模块设计

基于STM32F103X的LCD触摸屏驱动的设计姓名:徐进东 _______学号:10030227 ______班级:_10计卓______目录1概述 (3)2LCD 液晶显示屏 (3)2.1LCD液晶显示屏原理 (3)22 LCD液晶显示屏分类 (3)3触摸屏驱动原理概述 (4)3.1电阻触摸屏工作原理 (4)3.2触摸屏控制实现 (4)4设计目标 (4)5系统硬件设计 (5)5.1STM32微处理器FSMC接口 (5)5.2LCD液晶显示屏介绍 (7)5.3触摸屏控制板 (8)6系统软件设计 (10)6.1系统软件结构 (10)6.2头文件设计 (11)6.2硬件初始化程序 (11)6.33寸LCD模块驱动程序 (14)6.4触摸坐标获取程序 (19)6.5LCD控制器控制程序 (22)7总结 (24)1概述LCD液晶显示屏与触摸屏在嵌入式系统中的应用越来越普及。

他们是非常简单、方便、自然的人机交互方式,目前广泛应用于便携式仪器、智能家电、掌上设备等领域。

触摸屏与LCD液晶显示技术的紧密结合,成了主流配置。

LCD液晶显示屏(LCD Module , LCM)是一种将液晶显示器件、连接件、集成电路、PCB线路板、背光源以及结构件装配在仪器的组件。

触摸屏技术在我国的应用时间不是太长,但它已经成长为人们最为接受的输入方式。

利用这种技术人们只需触碰屏幕就可以对主机进行操作,是人机交互更为方便,直截了当。

本文档是对LCD液晶显示屏和触摸屏驱动的设计做深入介绍。

2 LCD液晶显示屏2.1L CD液晶显示屏原理液晶(Liquid Crystal):是一种介于固态和液态之间的具有规则性分子排列,及晶体的光学各向异性的有机化合物,液晶在受热到一定温度的时候会呈现透明状的液体状态,而冷却则会出现结晶颗粒的混浊固体状态,因为物理上具有液体与晶体的特性,故称之为“液晶”。

液晶显示器LCD( Liquid Crystal Display):是新型平板显示器件。

[整理版]触摸屏驱动设计-01-文献综述

[整理版]触摸屏驱动设计-01-文献综述

触摸屏驱动设计文献综述一.触摸屏的介绍1 触摸屏的主要类型从技术原理来区别触摸屏,可分为五个基本种类:矢量压力传感技术触摸屏、电阻技术触摸屏、电容技术触摸屏、红外线技术触摸屏、表面声波技术触摸屏。

其中矢量压力传感技术触摸屏已退出历史舞台;红外线技术触摸屏价格低廉,但其外框易碎,容易产生光干扰,曲面情况下失真;电容技术触摸屏设计构思合理,但其图像失真问题很难得到根本解决;电阻技术触摸屏的定位准确,但其价格颇高,且怕刮易损;表面声波触摸屏解决了以往触摸屏的各种缺陷,清晰不容易被损坏,适于各种场合,缺点是屏幕表面如果有水滴和尘土会使触摸屏变的迟钝,甚至不工作。

按照触摸屏的工作原理和传输信息的介质,我们把触摸屏分为四种,它们分别为电阻式、电容感应式、红外线式以及表面声波式。

每一类触摸屏都有其各自的优缺点,要了解哪种触摸屏适用于哪种场合,关键就在于要懂得每一类触摸屏技术的工作原理和特点。

2 触摸屏的工作原理为了操作上的方便,人们用触摸屏来代替鼠标或键盘。

工作时,我们必须首先用手指或其它物体触摸安装在显示器前端的触摸屏,然后系统根据手指触摸的图标或菜单位置来定位选择信息输入。

触摸屏由触摸检测部件和触摸屏控制器组成;触摸检测部件安装在显示器屏幕前面,用于检测用户触摸位置,接受后送触摸屏控制器;而触摸屏控制器的主要作用是从触摸点检测装置上接收触摸信息,并将它转换成触点坐标,再送给CPU,它同时能接收CPU发来的命令并加以执行。

2.1 电阻式触摸屏1、四线电阻屏四线电阻模拟量技术的两层透明金属层工作时每层均增加5V恒定电压:一个竖直方向,一个水平方向。

总共需四根电缆。

特点:高解析度,高速传输反应。

表面硬度处理,减少擦伤、刮伤及防化学处理。

具有光面及雾面处理。

一次校正,稳定性高,永不漂移。

2、五线电阻屏五线电阻技术触摸屏的基层把两个方向的电压场通过精密电阻网络都加在玻璃的导电工作面上,我们可以简单的理解为两个方向的电压场分时工作加在同一工作面上,而外层镍金导电层只仅仅用来当作纯导体,有触摸后分时检测内层ITO接触点X轴和Y轴电压值的方法测得触摸点的位置。

嵌入式触摸屏驱动开发设计

嵌入式触摸屏驱动开发设计

嵌入式触摸屏驱动开发设计【摘要】嵌入式系统设计中,使用触摸屏是重要的一环,在使用它之前要添加驱动程序才能使用,同时也要根据触摸屏的大小和种类进行修改对应的驱动,才能使触摸屏正确发挥功能。

【关键词】嵌入式触摸屏驱动当前,随着人们对多媒体信息查询的不断增加,人们逐渐越来越多地谈到触摸屏,因为它不仅适用于多媒体信息查询,而且具有坚固耐用、反应速度快、节省空间、易于交流等许多优点。

利用触摸屏技术,用户只要用手指轻轻地碰触显示屏上的图符或文字就能实现对主机操作,从而使人机交互更为直截了当,这种技术大大方便了那些不懂电脑操作的用户。

触摸屏作为一种新的电脑输入设备,它是目前简单、方便、自然的一种人机交互方式。

它的应用范围非常广阔,主要在公共信息的查询方面;如电信局、税务局、银行、电力等部门的业务查询;城市街头的信息查询;此外应用于领导办公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等。

预计将来,触摸屏还要走入家庭。

在嵌入式系统中,经常要使用到触摸屏,然而它不是一连接就能使用的器件,需要添加驱动程序,才能使触摸有效,下面是触摸屏驱动程序添加的过程。

首先找到源文件,然后按照下列步骤进行操作。

s3c2410_ts.hs3c2410_ts.ccp s3c2410_ts.h include/asm-arm/cp s3c2410_ts.c drivers/char/修改drivers/char/目录下的Kconfig,Makefile文件。

添加ts驱动选项:Makefile1043 +obj-$(CONFIG_S3C2410_TS) +=s3c2410ts.oKconfig在config S4C2410_RTC选项下添加:choiceprompt “s3c2410 touchscreen”default S3C2410_TSdepends on ARCH_S3C2410config S3C2410_TStristate “normal touchscreeen “config S3C2410_TS_ADStristate “touchscreen ads”endchoic修改arch/arm/mach-s3c2410下的四个文件:devs.hdevs.cmach-smdk2410.cs3c2410.c1.devs.h添加如下:extern struct platform_device s3c_device_ts;2.devs.c添加如下:#include………./* Touchscreen */static struct s3c2410_ts_mach_info s3c2410ts_info;void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info)memcpy(&s3c2410ts_info,hard_s3c2410ts_info,sizeof(structs3c2410_ts_mach_info));EXPORT_SYMBOL(set_s3c2410ts_info);struct platform_device s3c_device_ts = {.name = “s3c2410-ts”,.id = -1,.dev= {.platform_data = &s3c2410ts_info,}};EXPORT_SYMBOL(s3c_device_ts);/* USB Device (Gadget)*/3.mach-smdk2410.c添加如下:#include…….//ts flastatic struct s3c2410_ts_mach_info gec2410_ts __initdata = {.delay = 10000,.presc = 49,.oversampling_shift = 2,}static struct platform_device *smdk2410_devices[] __initdata = {&s3c_device_usb,&s3c_device_lcd,&s3c_device_wdt,&s3c_device_i2c,&s3c_device_iis,&s3c_device_nand,&s3c_device_ts, //add here};void __init smdk2410_map_io(void){s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc));s3c24xx_init_clocks(0);s3c24xx_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs));s3c24xx_set_board(&smdk2410_board);set_s3c2410fb_info(&smdk2410_lcd_platdata);set_s3c2410ts_info(&gec2410_ts);小结:本设计对嵌入式系统的触摸屏的驱动进行了开发,选取了典型的ARM 处理器S3C2410作为处理对象,驱动添加成功后,触摸屏的效果正常发挥,达到了目的。

触摸屏驱动编写

触摸屏驱动编写

触摸屏驱动编写1. 触摸屏驱动编写触摸屏接⼝:i2c触摸屏芯⽚型号:ft5x06触摸屏连接的i2c总线:i2c1触摸屏在i2c总线上的器件地址:0x38触摸屏设备的外部中断线:GPX1_6 (irq = IRQ_EINT(14))参考⽂档:ft5x06芯⽚⼿册:FT5x06.pdfft5x06芯⽚地址分布:AN_CTPM_Standard_eng5x06——new.pdf查看AN_CTPM_Standard_eng5x06——new.pdf⼿册可得,ft5x06芯⽚内部地址空间分布情况如下:0x02 :低四位存放触摸点个数0x03 :低四位存放第⼀个触摸点x坐标的8 ~ 11位0x04 :所有位存放第⼀个触摸点x坐标的0 ~ 7位0x05 :低四位存放第⼀个触摸点y坐标的8 ~ 11位0x06 :所有位存放第⼀个触摸点y坐标的0 ~ 7位0x07 :所有位存放第⼀个触摸点的压⼒⼤⼩例:获取触摸点个数及第⼀个触摸点x, y轴的坐标值。

int ctp = *0x02 & 0x0f;int x = ((*0x03 & 0x0f) << 8) | *0x04;int y = ((*0x05 & 0x0f) << 8) | *0x06;补充:内核裁剪,裁剪掉内核中的触摸屏驱动操作步骤:1)跳转的内核源码⽬录下命令:cd /work/linux-3.5/2)重新配置内核命令:make cleanmake distcleancp tiny4412_linux_defconfig .configmake menuconfig裁剪两个选项:System Type--> Support TrustZone-enabled Trusted Execution Environment 【裁剪掉】Device Drivers--> Input device support--> Touchscreens 【裁剪掉】保存退出!3)重新编译内核命令:make -j84)编译完成,⽣成新的zImage。

触摸屏学习及触控程序开发(一)

触摸屏学习及触控程序开发(一)

触摸屏学习及触控程序开发(一)2009-05-09 15:22:56 来源:环球触摸屏网作者: 【大中小】浏览:319次评论:0条为标准触摸屏编写驱动程序尽管触摸屏正在迅速普及开来,但大多数开发人员以前从来没有开发过触摸屏产品。

本文详细介绍了触摸屏产品的设计步骤,指导读者了解使触摸屏首次工作需要的软硬件细节。

触摸屏如今随处可见。

工业控制系统、消费电子产品,甚至医疗设备上很多都装备了触摸屏输入装置。

我们平时不经意间都会用到触摸屏。

在ATM机上取款、签署包裹,办理登机手续或查找电话号码时都可能会用到触摸屏。

本文介绍了二种较新的CPU,它们都内建了对触摸屏输入的支持。

本文将介绍如何编写软件驱动程序,从而能够使用这些微处理器配置、校准触摸屏以及对触摸屏输入持续响应。

最终将提供可免费下载和使用的工作代码,作为读者进一步设计的基础。

触摸屏作为输入手段的优点和缺点没有一种输入方式是十全十美的,对某些特定的应用和产品类型来说,触摸屏不是最好的输入手段。

为了让读者清楚的了解触摸屏的特性,下面先概括使用触摸屏作为输入手段的优点和缺点。

首先是优点:触摸屏不可否认的具有酷的感觉,立刻就能使产品的使用变得更有乐趣。

同时触摸屏也非常直观。

当用户想要选择A选项时,他伸出手指碰一下A选项就可以了。

这还不够直观吗?连两岁的婴儿都知道怎样伸手去触摸他(或她)想要的东西。

最后要说的是,触摸屏作为输入装置和系统固定在了一起。

如果用户忘记遥控器或鼠标放的位置,就会无法进行输入。

而如果具有触摸屏的设备放在用户前面,用户马上就可以用触摸屏进行输入。

再说缺点,触摸屏可能会在不合适的场合下被错误的使用。

这里我是指对安全性要求严格的设备,对于这些设备,如果没有适当的预防措施,使用触摸屏会非常危险。

下面我将概括一些最明显的潜在的问题,如果读者想作更进一步的了解,可以参考更多的资料。

第一个问题是视差,即屏幕上看到的对象的位置与其在触摸面板上的实际有效位置之间的差异。

触摸屏驱动程序设计

触摸屏驱动程序设计

触摸屏驱动程序设计一、需求说明1.巩固和强化学生的嵌入式系统的基本概念和开发流程,掌握基本知识和基本技能。

2.掌握硬件开发平台、开发资源和软件开发环境,尤其是裸机嵌入式系统开发方法。

掌握汇编和C语言混合编程技巧,熟悉系统启动引导过程,能够成功移植嵌入式系统引导程序。

培养和训练学生综合利用所学基本知识和基本技能进行小型裸机程序开发的技能。

3.明确思路和任务,查询相关书籍、资料,重点分析S3C2440的触摸屏接口工作原理和相关寄存器。

编写触摸屏初始化函数,确定XY位置转换模式。

编写触摸屏中断初始化函数,中断服务函数。

编写屏幕校准函数。

确定坐标计算公式。

编写触点数据采集函数。

编写主函数,进入调试。

实现触摸屏坐标点x、y的正确读取。

二、功能描述通过对AD转换器的配置——触摸屏自动测试x/y位置模式,选择进入到触摸屏驱动函数。

在进行触摸屏测试时,先进入函数内判断是否启动A/D 转换,如果不是的话就跳出此函数,如果是的话进行下面的判断,看A/D 转换是否结束,如果是,跳出函数,如果不是运行程序,并输出x、y的值。

再回到触摸屏驱动函数,测试结束,清屏。

三、系统设计及实现一.系统设计1. 对触摸屏相关寄存器进行初始化,确定XY位置转换模式;2. 对中断初始化,设计中断服务函数;3. 通过校正函数和坐标计算公式,得出坐标。

二.流程图对ADC相关寄存器,中断进行设置中断服务函数在主函数中直接调用Test_Touchpanel函数最终测试结果,每碰触一下触摸屏,就在终端中显示一对XP,YP值四、实训心得两周时间转瞬即逝,在这两周里,我们潜心研究,以MINI2440开发板为实验硬件平台,采用ADS集成开发环境,是我们在课程内容基础上,加强对嵌入式系统的理解和裸机应用的设计。

在此过程中,需要我们分析嵌入式CPU引导程序的功能和引导过程,学会裸机驱动程序的开发以及简单应用程序的设计。

从而深化我们的专业基本技能,加强我们的动手能力。

触摸屏驱动编写

触摸屏驱动编写

1、i2c_add_driver将驱动注册到总线上。

2、调用probe函数分配touch_dev结构,ts_init_touch初始化触摸屏设备。

初始化在gpio_request分配io口,初始化workINIT_WORK(&touch_dev->work, zinitix_touch_work),初始化input_dev 并注册inputrequest_irq申请中断对于input初始化:input_mt_init_slots(ts->input_dev, ts->max_touch_num);b类触摸事件需要set_bit(EV_SYN, touch_dev->input_dev->evbit);设置事件响应set_bit(EV_KEY, touch_dev->input_dev->evbit);设置按键响应set_bit(BTN_TOUCH, touch_dev->input_dev->keybit);一次触摸结束响应(后面调用input_report_key(touch_dev->input_dev, BTN_TOUCH, 0);每次报点都要调用。

0表示触摸结束)set_bit(EV_ABS, touch_dev->input_dev->evbit);绝对值事件响应触摸屏调试注意事项:1 、io口配置引脚定义。

(引脚序号是否跟主板一样)2、input初始化,事件设置,参数设置3、多点触摸协议有a类,b类之分。

A类在每次报点后加input_mt_sync(touch_dev->input_dev);B类需要在probe中input_mt_init_slots(ts->input_dev,ts->max_touch_num);再在每次报点前input_mt_slot(ts->input_dev, index);触摸屏驱动编写参考:1、打印信息参考:#ifdef DEBUG#define DBG(fmt ...) printk(KERNINFO fmt)#else#define DBT(fmt ...)#endif#ifdef DEBUGERR#define DEBUGERR(fmt ...) printk(KERNERR fmt) #else##define DEBUGERR(fmt ...)#endif2、互换参考:#ifdef SWAP_XY#define swap_xy(x,y) do{typeof(x) z=x; x=y;y=z;}while(0);#endifX, y 置换注意:input_device中也要置换Input_set_abs_params(input_dev, ABS_MT_POSITION_X, 0, X_MAX, 0, 0)Input_set_abs_params(input_dev, ABS_MT_POSITION_Y, 0, Y_MAX, 0, 0)3、io初始化参考:IO初始化不正确将无法产生中断,#define TOUCH_RST_PIN RK29_PIN6_PC3#define TOUCH_INT_PIN RK29_PIN0_PA2Int ft5306_init_io(void){//用io前首先要申请io,其次注意io设置的延时。

触摸屏电路设计与驱动开发ppt课件

触摸屏电路设计与驱动开发ppt课件
电压转换成数字信号,从而准确判断出触点的坐标位
置。ADS7843的供电电压Vcc为2.7~5V,参考电压VREF, 为1V~+Vcc,转换电压的输入范围为0~ VREF。它支 持单端和差分两种测量方式,最高转换速率可达到
125kHz。
《嵌入式系统》课件
6
ADS7843的各引脚定义如P259表11-1所列。
24
做完这些工作之后就可以调用 input_device_register(struet input_dev dev) 向内核注册设备。这个注册函数除了实现通用的 设备注册功能外,还会将内核中特定的设备文件 操作接口函数(如read(),write()等函数)映射 到驱动程序中去。这样就简化了驱动的设计,不 用在驱动程序中编写这些操作接口函数。
触摸屏驱动的初始化的源代码如P266。
25
2. 硬件输入数据的报告
驱动接收到用户输入的数据后,须使用事 件报告函数将数据发送到输入设备子系统。根 据事件类型的不同,使用到的事件报告函数也 略有不同。这些事件共有3种基本类型,下面对 它们及相应的事件报告函数分别给予说明:
26
பைடு நூலகம்
·EV_KEY事件。主要由按键和按钮等设备 利触用等发待队,列通实现过阻i塞n型pIu/to_report_key(struet input
芯片包含一个多路模拟开关组成的供电-测量电路 网络和一个12位的A/D转换器(参见图11-3)。 ADS7843 根据处理器发来的不同命令导通不同的模拟开关,向一 个工作面电极对提供参考电压,并把另一个工作面测量 电极上的代表触点坐标位置的电压模拟量引入A/D转换 器。
ADS7843的电压的测量方式有单端方式和差分方式 两种,这两种测量方式可以通过命令控制字选择。当通 过命令控制字,将Vcc设置为参考电压时,ADS7843工作 在单端方式;当将Y+/Y-或者X+/X-电极对设置为参考电 压时,ADS7843就工作在差分方式。

触摸屏驱动程序的设计和实现

触摸屏驱动程序的设计和实现

触摸屏驱动程序的设计和实现嵌入式设备触摸屏按其技术原理可分为五类:矢量压力传感式、电阻式、电容式、红外线式和表面声波式。

其中电阻式触摸屏在嵌入式系统中用的较多,电阻式触摸屏可分为四线、五线、七线等几种。

一般来说,WinCE 触摸屏驱动的设计和实现有以下几个步骤:(1)配置和初始化触摸屏触摸屏驱动在初始化过程会调用TouchPanelEnable 函数,该函数调用的DDSI 函数为DdsiTouchPanelEnable 和DdsiTouchPanelDisable。

这两个DDSI 接口函数是驱动实现的关键所在,分别用于打开和关闭触摸屏硬件。

但是为了降低功耗,这两个函数其实可以不真正操作硬件,而只是实现软件上的控制。

同时,在初始化时还需要进行这几个配置和初始化:一是创建事件hTouchPanelEvent 和hCalibrationSampleAvailable,前者是在正常状态下当有触摸笔按下或者按下后需要定时采集数据时被触发;而后者是在校准状态下当有校准数据输入时被触发。

二是检查初始化所需的中断gIntrTouch(触摸屏中断)和gIntrTouchChanged(定时器中断),并将这两个中断关联到事件hTouchPanelEvent。

三是创建一个ISR 线程TouchPanelpISR,用于等待和处理触摸屏事件hTouchPanelEvent,它也是整个驱动程序中唯一的事件源。

(2)校准触摸屏基准参数完成前面繁琐的工作后,驱动程序的各种功能就都已经准备就绪了,现在就可以实际操作触摸屏幕了。

但一般来说,电阻式触摸屏需要校准,也就是说在驱动启动过程中MDD 层要调用相应的DDSI 函数来读取注册表中的校正数据校正触摸屏。

理想情况下,校准程序只要在嵌入式设备初次加电测试过程中运行一次就可以了,参考值会被存储在非易失性存储器中,以免让用户在以后。

屏幕驱动板开发流程

屏幕驱动板开发流程

屏幕驱动板开发流程一、需求分析。

这就像是你要去旅行,得先知道自己想去哪儿一样。

在屏幕驱动板开发的时候,咱们得先搞清楚这个驱动板是用在哪种屏幕上的呀。

是那种小小的手机屏幕,还是大大的电脑显示器屏幕呢?这不同的屏幕对驱动板的要求可不一样哦。

比如说手机屏幕可能更注重小巧和低功耗,而电脑显示器屏幕就可能需要更高的分辨率支持。

而且,咱们还得考虑这个屏幕的色彩显示能力、刷新率这些东西。

就好比你挑衣服,你得知道自己喜欢啥风格,是简约风还是华丽风,这样才能找到最适合的。

在这个阶段,开发团队就得和屏幕制造商或者使用这个驱动板的厂商好好沟通,把这些需求都摸得透透的。

二、硬件设计。

好啦,知道需求了,那就开始设计硬件啦。

这就像是盖房子打地基和搭框架一样重要。

咱们得选合适的芯片呢。

芯片就像是驱动板的大脑,得够聪明,能处理各种复杂的信号。

然后就是电路设计啦,这线路怎么走,就像规划城市的道路一样,得合理布局。

比如说,电源线路要怎么设计才能保证稳定供电,信号传输线路又要怎么避免干扰。

这里面可大有学问,一点点差错都可能让整个驱动板出问题。

而且,在硬件设计的时候,还得考虑散热问题。

你想啊,要是驱动板工作的时候热得像个小火炉,那肯定不行呀,就像人发烧了会不舒服一样,驱动板也会因为过热而罢工或者出现故障的。

所以,散热设计也是硬件设计里不可或缺的一部分。

三、软件开发。

硬件搭好了,软件也不能落下呀。

这软件就像是给这个硬件注入灵魂一样。

咱们得写程序来控制这个驱动板怎么工作。

比如说,怎么把输入的信号准确地转化成屏幕能显示的图像呢?这就需要开发人员有很强的编程能力啦。

而且,在软件开发过程中,还得不断地测试。

就像你做了一道菜,得尝尝咸淡一样。

测试的时候,要看看软件在各种情况下是不是都能正常工作。

要是有问题,就得赶紧改。

这就像你发现菜太咸了,得加点水或者别的调料来调整味道。

软件开发是个很细致的活儿,有时候一个小的代码错误就可能导致整个屏幕显示不正常。

触摸驱动设计文档-2012.1.18

触摸驱动设计文档-2012.1.18

触摸驱动设计文档目录触摸驱动在系统中的层次1 (3)触摸驱动工作流程描述2 (3)2.1触摸驱动设计目标 (3)2.2触摸驱动设计规范要求 (3)2.3 input子系统介绍 (4)2.3.1 输入子系统设备驱动层实现原理 (4)2.3.2 Tp driver与input core之间主要的接口 (5)2.3.3 Event设备 (6)触摸模块硬件说明3 (7)3.1电阻触摸的硬件连接 (7)3.2电容触摸硬件连接 (7)3.2.1 Reset,Wakeup信号的配置 (8)3.2.2Sysconfig及其配置 (8)触摸驱动软件操作说明4 (8)模块和系统的工作关系5 (9)5.1触摸驱动的位置 (9)5.2触摸驱动的配置 (10)5.2.2 Linux层配置 (10)5.2.3 Android层配置 (10)5.2.4 sys_config1.fex文件配置 (11)5.2.4.1电阻屏的配置: (11)5.2.4.2 电容屏配置 (11)6 (12)主要数据结构说明6.1触摸驱动主要数据结构 (12)6.2触摸驱动实现事件支持 (14)6.3驱动报告事件 (14)触摸驱动移植扩展说明7 (14)7.1 Demo程序演示 (14)7.2触摸驱动调试步骤 (21)附录一 :aw_platform_ops.h源码 (24)1.触摸驱动在系统中的层次触摸驱动在系统中的层次如图1所示:图1 触摸驱动在系统中的位置图中包含三个部分:tp hardware, tp driver, input core;tp hardware: 是指主控,触控ic和触摸屏构成的人机交互的硬件平台,通过它可获得用户输入的原始数据;tp driver(触摸驱动): 是驻留于操作系统中,为tp hardware服务的一个内核模块;它将tp hardware采集到的原始数据,进行降噪,滤波,获得用户真实的操作意图,并按照操作系统的要求,将这些信息通过input core上报给操作系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微处理PXA255与ADS7843的数字接口通过 Microwire的数据帧进行通信。芯片完成一次 A/D转换要24个时钟周期,前8个时钟周期从DIN 引脚输入8位命令控制字,然后等待一个时钟的 BUSY周期(此时BUSY引脚会变高),最后用15个 时钟周期从高位到低位从DOUT引脚逐位输出A/D 转换结果。具体时序如图11-7所示。
《嵌入式系统》课件
16
17
11.4.2 硬件操控原理
硬件操控层属于驱动程序的最底层,主要的功能是 判断设备的状态、控制设备工作以及实现设备原始数据 的读/写。设备所有的硬件细节基本由这层的程序处理。 编写硬件操控层的程序要考虑器件的物理电气特性和数 字逻辑特性,以准确实现对设备的各种基本操作。在模 块化程序设计中,根据实现功能的独立性一般将对硬件 的基本操作编写为若干函数。例如可以将设备状态的判 断写成一个函数,设备运转的控制写成一个函数,对设 备数据的读/写又写成另外一个函数。这样将所有硬件的 底层特性利用模块化的方法封装起来。 触摸屏驱动程序硬件操控层要处理的关键问题有: 设备的初始化、触笔状态的判断和触点原始坐标数据的 读/写。
26
利用等待队列实现阻塞型I/o
驱动程序报告的数据用结构体封装后放到
一个先人先出队列(FIFO)中,内核对存入这个
22
·如果用到设备的EV_ABS事件,则要设定结构体的 absmin[ABS_X]、absmax[ABS_X]、absmin[ABS_Y]和 absmax[ABS_Y]域。它们用来确定从设备接收数据的允 许取值范围。 ·设备注册之前必须设定好结构体的name、 Id.product、Id.vendor和Id.version等域。这些成员 变量用于存储设备的产品信息。 ·调用_set_bit()函数设置evbit域的对应位,告 诉内核的输入设备子系统该设备会产生哪些类型的事 件;设置absbit域的对应位,告诉内核设备会产生哪 些类型的绝对值;设置keybit域的对应位,告诉内核 设备会产生哪些类型的按键值。 ·编写好驱动程序的open()操作接口函数和close() 操作接口函数,并把它们的函数指针赋给dev.open和 dev.close成员变量。
《嵌入式系统》课件

2
3
触摸屏按其技术原理可分为矢量压力传感式、电阻式、 电容式、红外线式和表面声波式类,其中电阻式触摸屏在 嵌入式系统中使用较多。 如图11-2所示,电阻式 触摸屏由4层透明的复合薄膜 组成。最上面一层是外表面 经过硬化处理、光滑防刮的 塑料层;最下面一层是玻璃 或有机玻璃构成的基层;在 基层之上和塑料层内表面中 间是两层金属导电层,两导 电层之间有许多细小的透明 隔离点把这两层隔开。当手 指触摸屏幕时,两导电层在 触摸点处接触。
9
以测量触摸点的Y坐标为例,首先通过 命令控制字控制ADS7843内部的模拟开关, 将Y+、Y-引脚置为参考电压,X+引脚置为芯 片内部A/D模拟输入。此时测量到的电压和 参考电压的比例反映了Y轴坐标的大小。图 11-4所示的就是测量触摸点的Y坐标的等效 电路。 同理,若要测量触点X轴坐标值,只要 将X+、X-引脚置为与参考电压,Y+引脚置为 芯片内部A/D的模拟输入即可。
5
11.2 ADS7843触摸屏控制器简介
如前所述,触摸屏产生的是模拟信号,将这个模 拟信号转换为计算机能处理的数字信号需要通过触摸 屏控制器完成。 本章所用的触摸屏控制器ADS7843是BB公司生产 一款专用的触摸屏控制芯片,它采用16引脚小型薄型 封装。该芯片有一个12位的A/D转换器,它作为触摸 屏与CPU之间通信的桥梁,能将触摸屏上触点的模拟 电压转换成数字信号,从而准确判断出触点的坐标位 置。ADS7843的供电电压Vcc为2.7~5V,参考电压VREF, 为1V~+Vcc,转换电压的输入范围为0~ VREF。它支 持单端和差分两种测量方式,最高转换速率可达到 125kHz。
《嵌入式系统》课件
10
11.3 处理器与ADS7843的接口设计 11.3.1 电路接口设计
PXA255处理器与ADS7843的接口电路涉及PXA255 的GPIO口以及地址总线和数据总线,它的电路设计如 图11-5所示。
《嵌入式系统》课件
11
ADS7843具体外围电路设计,参见图11-6
12
11.3.2 Microwire数据帧结构
第十一章 触摸屏电路设计与驱动开发
本章要点
● 触摸屏的工作原理
● ADS7843触摸屏控制芯片的工作原理 ● 基于Linux输入设备子系统框架的驱动设计 ● 触摸屏硬件的软件操控原理 ● Linux内核线程的作用
《嵌入式系统》课件
1
11.1 触摸屏的工作原理
触摸屏是一种简单、方便的输入设备,它的应用 随着信息社会的发展越来越普遍。为了操作方便,人 们用触摸屏代替鼠标或键盘,根据触笔点击的位置来 定位选择信息输入。目前在高档PDA上,绝大部分都 使用触摸屏作为输入设备。触摸屏附着在显示器的表 面,检测用户点击的位置。触摸屏在用户输入时产生 一个反映用户点击位置的信号。这个信号通常是模拟 信号,它需要通过触摸屏控制器将模拟信号转换为数 字信号(也就是用户点击的坐标),再送给处理器进行 处理。图11-1所示的是触摸屏、触摸屏控制器与处理 器连接的示意图。本章采用BB公司生产的ADS7843触 摸屏控制器进行硬件电路设计,将触摸屏与处理器连 接起来。
15
11.4 触摸屏软件驱动原理
11.4.1 Linux内核输入设备子系统驱动架构
Linux内核的输入(Input)设备子系统为按键、鼠 标、游戏控制杆、触摸屏等设备提供了设备驱动接口。 采用这个接口可简化设备驱动的设计,它的分层结构 如图11-8所示。其中硬件操控层负责处理设备所有的 底层硬件细节,这也是输入设备驱动须实现的部分; 输入设备接口负责接收硬件操控层获取的原始数据并 对其进行处理后送人输入设备子系统,输入设备 子系统通过Input-Event编程接口向用户程序提供设 备的输入信息。 触摸屏的驱动采用输入设备驱动接口设计,需要 完成的就是硬件操控层的编写。
《嵌入式系统》课件
18
1. 设备初始化
设备初始化程序如下:
触摸屏设备初始化所作的工作很简单,就是对相关硬件寄存 器的设置。这里用到的GPDR0是PXA255 GPIO口的控制寄存器,用 于控制GPIO0~GPIO31口的输入/输出模式。若GPDR0某位为O,则 对应的GPIO口设为输入,反之设为输出。GPIO_bit(ADS7843-BUSY) 用于取得ADS7843的BUSY脚在32位GPDR0寄存器中的对应位 (0x00000002)。ADS7843_Enable_IRQ()函数通过向ADS7843发送命 令控制字0X00使该触屏控制器中断使能(参见表11-1)。
19
2. 状态判断函数
状态判断函数程序如下:
这个函数用于探测触笔的状态。若触笔按下,则函数返回1; 若触笔没按下,则函数返回O。函数中的GPLR0是个宏定义,它读 取GPLR0寄存器的值,它的值反映0~31号GPIO口的电平状态。由 前面的硬件描述可知,当触笔没有按下时,ADS7843的PENIRQ引 脚为高电平,只有当触笔按下时其引脚电平才变低。从图ll-5可 知,PENIRQ与GPIO5相连,因此, GPLR0&GPIO_bit(ADS784_PENIRQ))的值就能反映触笔的状态。
20
3. 触点坐标读取函数
触点坐标读取函数程序如P264:
21
11.4.3 输入设备驱动接口的使用 1.接口的初始化
使用输入设备驱动接口之前要做一些接口的初始 化工作,设定该接口的工作模式并告之对应设备的事 件类型,此外还要设定整个驱动的open()函数和 close()函数。这些工作是通过对struct input_dev类 型的结构体的成员变量的设置实现的。 具体的工作如下:
23
做完这些工作之后就可以调用 input_device_register(struet input_dev dev) 向内核注册设备。这个注册函数除了实现通用的 设备注册功能外,还会将内核中特定的设备文件 操作接口函数(如read(),write()等函数)映射 到驱动程序中去。这样就简化了驱动的设计,不 用在驱动程序中编写这些操作接口函数。
《嵌入式系统》课件
7
8
本书所使用的工 作方式是差分方式。 这主要是因为采用单 端方式时,Vcc的波动 会引起参考电压的波 动,这将引起测量的 误差。而在差分方式 下,即使Vcc发生波动, 测量点电压(X+电压) 和参考电压(Y+、Y-引 脚之间的电压)的比例 也依然保持不变,测 量结果不会发生波动, 这样可以大大提高测 量的精度。
4
触摸屏的两个金属导电层是触摸屏的两个工作面(通 常分别称为X工作面和Y工作面),在每个工作面的两端各 涂有一条银胶,称为该工作面的一对电极。若对一个工 作面的电极对施加电压,则该在工作面上会产生均匀、 连续的平行电压分布。
四线式触摸屏的X工作面和Y工作面共有4根引出线, 分别连到触摸屏的X电极对和Y电极对上。结合图11-1, 当在X方向的电极对施加一个确定的电压,而Y方向电极 对不加电压时,在X平行电压场中,触点处的电压值可以 在Y+(或Y-)电极上反映出来,通过测量Y+电极对地的电 压大小,便可得知触点的X坐标值。同理,当在Y电极对 加电压,而X电极对不加电压时,通过测量X+电极的电压, 便可得知触点的Y坐标。
《嵌入式系统》课件
6
ADS7843的各引脚定义如P259表11-1所列。
芯片包含一个多路模拟开关组成的供电-测量电路 网络和一个12位的A/D转换器(参见图11-3)。 ADS7843 根据处理器发来的不同命令导通不同的模拟开关,向一 个工作面电极对提供参考电压,并把另一个工作面测量 电极上的代表触点坐标位置的电压模拟量引入A/D转换 器。 ADS7843的电压的测量方式有单端方式和差分方式 两种,这两种测量方式可以通过命令控制字选择。当通 过命令控制字,将Vcc设置为参考电压时,ADS7843工作 在单端方式;当将Y+/Y-或者X+/X-电极对设置为参考电 压时,ADS7843就工作在差分方式。
相关文档
最新文档