为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于ARM929T内核的三星 S3C2410芯片的电子黑板的软件和硬件设计毕业论文

2018-01-07 29页 doc 201KB 15阅读

用户头像

is_589748

暂无简介

举报
基于ARM929T内核的三星 S3C2410芯片的电子黑板的软件和硬件设计毕业论文基于ARM929T内核的三星 S3C2410芯片的电子黑板的软件和硬件设计毕业论文 目录 第一章 绪论............................................1 1.1 嵌入式系统 .....................................1 1.2 ARM 微处理器简介 ...............................2 第二章 系统开发环境....................................4 2.1 ADS1.2软件..........
基于ARM929T内核的三星 S3C2410芯片的电子黑板的软件和硬件设计毕业论文
基于ARM929T内核的三星 S3C2410芯片的电子黑板的软件和硬件设计毕业 目录 第一章 绪论............................................1 1.1 嵌入式系统 .....................................1 1.2 ARM 微处理器简介 ...............................2 第二章 系统开发环境....................................4 2.1 ADS1.2软件.....................................4 第三章 系统设计选型....................................9 3.1 ARM处理器选型..................................9 第四章 系统硬件电路设计...............................12 4.1电源电路设计...................................13 4.3字模函数.......................................14 4.4触摸屏驱动程序.................................14 4.5 坐标点校准....................................16 4.6画线函数算法 ..................................17 4.7系统软件设计...................................18 第五章 系统测试结果与............................19 5.1系统概述.......................................19 5.2软件运行截图...................................19 第七章 设计总结与展望 .............................21 参考文献 ..........................................22 附录二................................................28 第一章 绪论 1.1 嵌入式系统 1、什么是嵌入式系统 嵌入式系统一般指非 PC 系统,有计算机功能但又不能称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于 PC 中 BIOS 的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成, 嵌入式系统几乎包括了生活中的所有电器设备,如掌上 PDA 、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。嵌入式系统的硬件部分,包括处理器/微处理器、存储器及外设器件和 I/O端口、图形控制器等。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用EPROM、EEPROM 或闪存(Flash Memory)作为存储介质。软件部分包括操作系统软件(要求实时和多任务操作)和应用程序编程。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。 1 2、什么是嵌入式处理器 嵌入式系统的核心是嵌入式微处理器。嵌入式处理器一般就具备以下4 个特点: (1)对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时操作系统的执行时间减少到最低限度。 (2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。 (3)可扩展的处理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式微处理器。 1.2 ARM 微处理器简介 ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991 年ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM 技术知识产权(IP)核的微处理器,即我们通常所说的ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市 场,基于ARM 技术的微处理器应用约占据了32 位RISC 微处理器75,以上的市场份额, ARM 公司是专门从事基于RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从 2 ARM 公司购买其设计的ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM 微处理器芯片进入市场。全世界有几十家大的半导体公司都使用ARM 公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。 1.3电子黑板的概念及功能 概念: 电子黑板是教师进行课堂辅助教学的场所,是对传统黑板的一个延伸和补充。传统的黑板是以黑板为场所,通过使用板书、挂图、标记等教学元素引导学生的学习。电子黑板提可以对标准的针对课程而设计的教学素材进行快速地组织,摆放到电子黑板上,达到课件知识的呈现,并可以对这些素材根据教学的需要进行进一步的调整、标记等,增强与学生交互学习的效果,借助背景、音乐、时钟营造良好的教学场景和氛围。 功能: 1、电子笔代替普通笔,直接在电子黑板上进行电子板书; 2、不需要粉笔,直接在屏幕上写字、涂抹, 3、文件所占空间很小,便于下载、保存、使用、交流; 4、使用简单、反应快速、维护方便,性能可靠; 5、针对教师的课堂教学提供电子黑板功能,展示教学内容; 6、教师可以利用软件所提供的丰富素材,制作个人的电子讲义,并可保存、交流课件。 3 第二章 系统开发环境 2.1 ADS1.2软件 ARM ADS 全称为ARM Developer Suite,是ARM公司推出的新一代ARM集成开发工具。现在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0。它除了可以安装在WindowsNT4, Windows98和Windows95操作系统下,还支持Windows XP和Windows Me操作系统。 ADS由命令行开发工具,ARM时实库,GUI开发环境(Code Warrior 和AXD),实用程序和支持软件组成。现在重点介绍GUI开发环境(Code Warrior 和AXD)。 CodeWarrior for ARM是一套完整的集成开发工具,充分发挥了ARM RISC 的优势,使产品开发人员能够很好的应用尖端的片上系统技术。该工具是专为基于ARM RISC的处理器而设计的,这可加速并简化嵌入式开发过程中的每一个环节,便得开发人员只需要通过一个集成软件开发环境就能研制出ARM产品,在整个开发周期中,开发人员无霜离开Code Warrior开发环境,因此节省了在操做工具上花的时间,使得开发人员有更多的精力投入到代码编写上来。 1、Code Warrior集成开发环境 Code Warrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面。用户可以使用ADS的Code Warrior IDE为ARM 和Thumb处理器开发用C,C++,或ARM汇编语言的程序代码。通过提供下面的功能 4 Code Warrior IDE缩短了用户开发项目代码的周期。Code Warrior主要负责程序的编写和编译。软件的主界面如图2-1所示, 图2-1 Code Warrior主界面 在Code Warrior中,程序是通过管理的,每一个单独的工程中可以包含若干个程序文件首先得建一个工程文件,用来管理我们所要编写的程序文件,在主界面中,点击File->Open,弹出如 -2所示界面。 图2 图2-2 新建工程界面 5 有时根据需要,我们还要对工程进行一定的设置,这时就需要点Edit->Debug Settings,将会弹出如图2-3的界面,我们通过此进行必要的设置。 图2-3 Debug 设置界面 2、AXD Debugger AXD(ARM eXtended Debugger)是ADS软件中独立于CodeWarrior的IDE的图形软件,用来仿真调试ARM组件,即作为一种常用的调试工具。可以直接点击AXD Debugger图标,打开AXD软件,默认是打开的目标是ARMulatoar;也可以选择CodeWarrior中的Project->Debug,并可以直接调用AXD Debugger并将当前编译的镜像文件加载到AXD Debugger中。通常先要对AXD进行一定的设置,Options-〉Configure Interface,会弹出图2-4所示的对话框。然后选择Session File选项,进行ARM2410文件配置,如图2-4所示, 6 图2-4 Configure Interface界面 然后再对目标调试器进行配置,即点击Options-〉Configure Target,会弹出如图2-6所示的对话框,选择H-JTAG,点击OK即可。 图2-5 Configure Target配置界面 7 3、JIAG仿真调试器 JTAG,英文名为Joint Test Action Group,即为联合测试行动组,它是一种边界扫描标准,由于集成电路的集成度不断提高,芯片的引脚不断增加,常规的在线仿真方式已经不能满足需要,而JTAG只需要5根引脚就可以实现在线仿真的功能,该标准被批准为IEEE-1149.1标准,它不但能测试各种集成电路芯片,也能测试芯片内各类宏单元,还能测试相应的印刷电路板。 而且JTAG 仿真器比较便宜,连接比较方便,通过现有的 JTAG 边界扫描口与 ARM CPU 核通信,属于完全非插入式 ( 即不使用片上资源 ) 调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。 我们采用的JTAG电路如图2-7所示。在图中,JTAG接口U8上的信号nTRST连接到S3C2410A芯片的TRST引脚,达到控制S3C2410A内部JTAG接口电路复位的目的。根据S3C2410A数据手 ,册中说明,Ntrst、TDI、TMS和TCK引脚上需要连接一个10K的上拉电阻如图2-6所示。 J1-PortVDD33U8RP3VDD3312VDD33116nTRST34215TDI56314nTRSTTMS78413TDITCK910512TMSRTCK1112611TCKTDO1314R16710VDD3315168910K1718192010KnTRSTJTAG R224.7K 图2-7 JTAG电路图 8 第三章 系统设计选型 3.1 ARM处理器选型 1、处理器的分类 如前文所述ARM 微处理器目前包括下面ARM7, ARM9,ARM9E, ARM10E,SecurCore, Xscale, StrongARM 等几个系列. 鉴于当前电子市场上的情况,在此我主要讨论一下ARM7 与ARM9 这两种主流处理器的特点及应用领域。 ARM7 系列微处理器为低功耗的32 位RISC 处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7 微处理器系列具有如下特点: (1)具有嵌入式ICE,RT 逻辑,调试开发方便。 (2)极低的功耗,适合对功耗要求较高的应用,如便携式产品。 (3)能够提供0.9MIPS/MHz 的三级流水线结构。 (4)代码密度高并兼容16 位的Thumb 指令集。对操作系统的支持广泛,包括Windows CE、Linux、Palm OS 等。 (5)指令系统与ARM9 系列、ARM9E 系列和ARM10E 系列兼容,便于用户的产品升级换代。 (6)主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。 2、ARM9 微处理器系列 ARM9 系列微处理器在高性能和低功耗特性方面提供最佳的 9 性能。具有以下特点: (1)级整数流水线,指令执行效率更高。 (2)提供1.1MIPS/MHz 的哈佛结构。 (3)支持32 位ARM 指令集和16 位Thumb 指令集。 (4)支持32 位的高速AMBA 总线接口。 (5)全性能的MMU,支持Windows CE、Linux、Palm OS 等多种主流嵌入式操作系统。 (6)MPU 支持实时操作系统。支持数据Cache 和指令Cache,具有更高的指令和数据处理能力。 3、S3C2410的概述 S3C2410是SAMSUNG 公司推出的16/32 位RISC 处理器(ARM920内核),适用于手持设备、POS机、数字多媒体播放设备等等,具有低价格、低功耗、高性能小等特点。为了降低整个系统的成本, S3C2410 提供了一下丰富的内部设备:分开的16KB 的指令Cache和16KB 数据Cache, MMU 虚拟存储器管理, LCD 控 系统管理(片选逻辑和SDRAM 制器,支持NAND Flash 系统引导, 控制器),3 通道UART,4 通道DMA,4 通道PWM 定时器,I/O 端口,RTC,8 通道10 位ADC 和触摸屏接口,IIC-BUS 接口,USB 主机,USB 设备,SD 主卡和MMC 卡接口, S3C2410采用了ARM920T 内核, 0.18um 工艺的CMOS 标准宏单元和存储单元。它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。同样它还采用了一种叫做Advanced Microcontroller Bus Architecture(AMBA)新型总线结构。 10 S3C2410 的显著特性是它的CPU 核心, 是一个由Advanced RISCMachines(ARM) 有限公司设计的16/32 位ARM920T RISC 处理器。ARM920T 核由ARM9TDMI、存储管理单元(MMU)和高速缓存三部分组成。其中,MMU 可以管理虚拟内存。ARM920T 实现了MMU,AMBA BUS 和Harvard 高速缓冲体系结构。这一结构具有独立的16KB 指令Cache 和16KB 数据Cache,每个都是由8 字长的行构成。ARM920T 有两个内部协处理器:CP14 和CP15。CP14 用于调试控制,CP15 用于存储系统控制以及测试控制。 在时钟方面S3C2410 也有突出的特点,该芯片集成了一个具有日历功能的RTC 和具有PLL(MPLL 和UPLL)的芯片时钟发生器。MPLL 产生主时钟,能够使处理器工作频率高达203MHz。这个频率能够使处理器轻松运行Windows CE、Linux等操作系统以及进行较为复杂的处理信息。UPLL 产生实现主从USB 功能时钟。S3C2410 的内部结构图如图3-1 所示, 图 3-1 S3C2410 内部结构图 11 第四章 系统硬件电路设计 S3C2410最小系统电路设计S3C2410最小系统是主要由电源电路、复位电路、系统时钟电路组成。 由于ARM芯片的高速、低功耗、低工作电压导致其噪声容限低,对电源的纹波、瞬态响应性能、时钟源是稳定性、电源监控可靠性等诸多方面也提出了更高要求,DeviceARM2410核心板有复位 2EPROM电路使用了存储器的电源监控复位芯片CAT1025H-30, 提高了系统的可靠性,具体电路原理图如图4-1所示: VDD33 R13R14R151K1K1K S2U10 18MRVCC32nRESETSW-PBRESETRESET76WPSCL45VSSSDA R18CAT1025JI-301K 图4-1 复位电路图 MR在图中,S2为复位按键,用于手动复位,但需要在上接一电阻,使其为高电平,nRESET信号为CAT1025JI-30输出的复位信号,此信号连接到S3C2410芯片的复位输入引脚,实现系统的复位控制。 可以选择NAND Flash启动方式或者NOR Flash启动方式,这是通过配置OM0引脚来实现的,电路如图4-2所示,当JP20跳线短接时,OM0为0电平,选择NAND Flash启动方式;当JP20跳线断开时,OM0由R26上拉为1电平,选择NOR Flash启动方式。 12 R26OM0VDD33J1-Port1K JP20NAND Flash 图4-2 复位启动选择电路图 4.1电源电路设计 系统电源电路如图4-3所示,电源供电由JP11连接输入实验箱主板,5V电源经过C39,C49,C50滤波后,由两片LDO芯片U9、U11稳压输出两组3.3V电源,其中一组用来经主板供电,另一组用来给核心板供电。 图4-3 电源电路图 而S3C2410A所需要的内核电源是1.8V电源,所以得通过LDO芯片进行再次转换。具体电路如图4-4所示 13 U12SPX11173-1.8VCCVDD18VDD3332VINVOUT C39C40C411GND100pF100pF10uF/16V 图4-4 S3C2410A电源电路图 LDO是一种低电压差电源芯片,而SPX1117系列LD0芯片输出电流可达800mA,输出电压的精度为,还具有电流限制和热保护 ,F功能,其输出端的10的钽电容用来改善瞬态响应和稳定性。 4.3字模函数 LCD液晶显示的有很多种,通常可分为段式、字符式、点阵式,在本系统的设计过程中,为了对使用者作出必要的提示,需要在LCD上显示汉字,所以有必要对其作一研究。 汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码,一般用字模提取软件来获得。我们将显示汉字函数定义为void GUI_Disp ( uint16 x, uint16 y, uint16 w, uint16 h,uint16 *buffer),其中x,y是汉字显字的起始点,w,h分别是汉字显示的长度和宽度,buffer是要显示的汉字的点阵码。在该函数当中,首先对显示区域参数过滤,如果在该区域,则对要显示的汉字的点阵码送到LCD缓冲区,进行显示。其关键点在于点阵码的提取和分块显示。 4.4触摸屏驱动程序 触摸屏驱动程序是通过设置ADC寄存器来实现的,一般在 14 S3C2410中,将其设置成中断模式,具体程序框图如图5-1所示: 图4-5程序框图 在该框图中,我们可以得到,当触笔接触到触摸屏时,S3C2410将响应中断,即进入中断函数,然后首先将关闭中断,然后通过ADCDATA0寄存器的最高位来判断触笔是提起状态还是按下状态,如果是按下状态,那么将首先对X轴进行采样、转换,最后将X轴对应的坐标值寄存在ADCDAT0寄存器的低8位,同理,接着对Y轴对应的坐标值进行采样、转换,最后将Y轴对应的坐标值寄存在ADCDATA1寄存器的低8位。这样就得到一个采样点的坐标值,最后将这一个坐标点送给LCD画点驱动程序,将其在LCD显示屏 15 上显示出来。 当然了,这只是问题研究的第一步,因为我们的最终目的是要通过获取对应坐标点,在触摸屏上画出各种不同的图形符号和进行必要的坐标范围判定。这样我们又提出一个问题,即是否每次都能准确获得相应触点的坐标。 4.5 坐标点校准 当用触笔在触摸屏发生点击动作时,将能返回触摸屏的坐标数据.问题是如何将触摸屏的坐标数据转换成液晶屏的坐标数据呢? 这里有多种解决: 1、 触摸屏芯片的资料中应该有解决方案,或者找其相近的触摸屏,查看他人是怎么处理类似情况的; 2、如果液晶的显示没有问题,就是得到触摸屏的坐标后如何处理,现在我假定已经了解触摸屏的物理原理了,点击触摸屏上下顶点,获得两个坐标,(x1,y1)和(x2,y2),x1 = x2,记录下来,然后随便点击一个位置,获得的y值肯定在y1和y2之间,根据比例算出位置,然后映射到液晶上,根据比例显示出来就可以,大致的过程就是这样,x的值也可以这样计算出来,期间需要注意的是消除抖动; 3、用公式进行计算,在触摸屏数据与其位置偏移关系且屏幕像素与其位置偏移关系同为线性关系假设情况下,触摸屏返回的位置信息与像素位置信息之间成2D坐标变换关系。则对于触摸屏按下点的触摸屏坐标(Tx,Ty)与其在显示设备位置关系上匹配的点的屏幕坐标(Sx,Sy)之间的转换关系,可以通过下述坐标变换表示: 16 Sx、Sy是预先知道的,Tx、Ty 是通过测量得到的,即通过三个点就可以确定A1,B1,C1和A2, B2, C2。 本人用的是第二种方法,由实验得到的数据可知,LCD上的原点坐标是(0,0),最大坐标是(640,480);而触摸屏上的原点坐标是(0,0),最大坐标是(1000,1000)。所以由测量得到的值(adcx,adcy),需要进行如下转换: Adcx,adcx%1000%640 (1-3) Adcy,adcy%1000%480 (1-4) 但在转换过程中,并没有出现对应的转换关系,而是横轴转换成(0-640)+(0-320),纵轴转换成(0-480)+(0-480),什么原因,有两种可能,一种是数据类型设置的小,在乘法计算过程中数据溢出而丢失;另一种就是在除法运算过程中,数据省略而丢失。但这两种可能都不是。 4.6画线函数算法 在上一节中,我们对LCD画点的问题以及触摸屏获取点的问题进行了一定的研究,但问题的关键是我们要画出不同的图形,需要对一系列的点进行操作,这样就涉及到了对大量点的收集问题,也就是点收集的实时性。 一般有两种情况,一种是逐点收集,即触摸屏响应一次中断,收集一次点,然后延时一定的时间,如果在延时时间内,没有中断,则将收集到的所有点一并显示出来,另一种情况就是在中断 17 程序里面做文章,因为如果把触摸屏设置成中断模式,我们可以通过DATAn的最高位来判断触笔是否提起,如果触笔一直处于按下状态,那么我们就在一直进行采样,并将采样到的各个点显示出来,这样就可以达到实时性的要求。所以我采用第二方法,即边采样边显示的方法。 4.7系统软件设计 本设计是基于S3C24210A处理器,该芯片具有丰富的软硬件资源,我们通过在软件中定义其各自的寄存器,来完成设计要求,在设计过程中,我们主要用到了LCD模块和触摸屏模块,所以在软件的主函数当中,首先要对其进行初始化,然后进入一开始界面,并且将LCD停留在该界面,等待触摸屏的中断。当触笔被按下时,就会转入中断子程序,开始触点坐标值的采样,直到触笔抬起为止。 18 第五章 系统测试结果与分析 5.1系统概述 该软件系统是在基于ARM920内核的三星公司S3C2410为处理器,通过外置触摸屏和LCD显示屏,可以把在触摸屏上画出的点线即各种图形符号,显示在LCD显示屏上,其主要可以实现以下几个功能: 1、画图 即可以在屏幕上画出各种图形的功能; 2、清屏 即当在屏幕上画的各种符号较多或需要重新画图时,将屏幕清除的功能; 3、取色 即可以根据个人的需要,预先设定图形符号的颜色的功能。 5.2软件运行截图 系统软件运行具体流程图如图6-1所示,刚开始时,系统处在主菜单中,然后往复循环,判断是否启动画图面板,如果启动,则进入画图面板,在这个界面,我们有两种选择:画图选择和取色选择。如果选择取色功能,则将进入取色界面,在这里,我们提供了多种颜色,而且在这个界面,只能选择颜色,不可以进行画图,用户可以多次选择颜色,但以最后一次为准,当取完合适的颜色后,点击返回选项,系统将会自动返回画图界面,进行再次操作;否则一直将会停留在取色界面。如果选择画图功能,则打开画图面板,可以进行画图。在进行画图的过程中,用户可以使用清屏选项,再次更换相应的颜色如图5-1所示。 19 图5-1 系统软件流程图 电子黑板成功图如图5-2和5-3 图5-2软件清屏效果界面图 图5-3 调试成功图 20 第七章 设计总结与展望 通过本学期对《嵌入式系统》这门课程的学习,对基于ARM929T内核的三星 S3C2410芯片的电子黑板的软件和硬件方面的设计进行了研究,并对可以实现的各种功能进行了验证。 课堂学习主要注重于理论知识,而我们要将所学每一次课程设计都会学到不少东西,这次当然也不例外。不但对自动控制原理的知识巩固了,这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在自己和同学相互协助下,终于迎刃而解了。 课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程(”千里之行始 21 于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义(我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础( 同样十分感谢老师在此次实验中给我提出的建议与不足,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次模具设计的每个实验细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。 参考文献 [1]北京博创兴业科技有限公司.NET-ARMt3000说明书.北京博创兴业科技有限公司.2004 [2]邓超.带有CAN总线的嵌入式工控触摸屏系统[D]. 吉林大学信号与信息处理专业硕士论文 [3]李健无线点菜系统的研究[D] 天津大学硕士学位申请论文 [4]罗雪莲,宋树祥.基于ARM的嵌入式系统触摸屏设计[J].电器时代.2004.12:72-73 [5]倪天龙,邓洪波,金连文. 通过ADS7846在PDA上实现个性化书法输入[J].电子技术应用.2004年9月21日 [6]钱丽. 基于ARM的嵌入式无线点菜[D] . 武汉科技大学计算机 22 应用技术硕士论文 [7]沈连丰,宋铁成,叶芝慧等. 嵌入式系统及其开发应用[M].北京:电子工业出版社 2005.7.154-162 [8]谭爱国,据长江. 基于ARM单片机的触摸屏嵌入式系统设计[J] .电脑开发与应用.2005年 第10期 [9]唐继英.基于ARM的网络显示器硬件系统的设计[D] .河北工业大学控制理论与控制工程专业硕士论文 [10] 王敏,金新民,童亦斌. 基于ARM微处理器LPC2292的触摸屏显示系统设计[D]. 电子元器件应用.2005.10 附录一 #include "config.h" #define USE_IRQ_TOUCH 1 #define ADC_FREQ (2*1000000) char disp_buf[50]; void DelayNS(uint32 dly) { uint32 i; for(; dly>0; dly--) for(i=0; i<50000; i++); } #if USE_IRQ_TOUCH!=0 void IRQ_AdcTouch(void) { 23 uint32 point_adcx; uint32 point_adcy; int i; rINTSUBMSK |= (BIT_SUB_ADC|BIT_SUB_TC); if(rADCTSC & 0x100) { UART_SendStr("\n ##### Stylus Up! \n"); rADCTSC &= 0x0ff; } else { UART_SendStr("\n ##### Stylus Down! \n") do{ rADCTSC = (0<<8)|(0<<7)|(1<<6)|(1<<5)|(0<<4)|(1<<3)|(0<<2)|(1<<0); for(i=0; i<10; i++); point_adcx = 0; for(i=0;i<4;i++) rADCCON = rADCCON | (1<<0); while(rADCCON & 0x01); while(!(rADCCON & 0x8000)); point_adcx = point_adcx + (rADCDAT1 & 0x3FF); } point_adcx = point_adcx>>2; sprintf(disp_buf, "X-Posion[AIN5] is %04d \n", point_adcx); UART_SendStr(disp_buf); rADCTSC= (0<<8)|(1<<7)|(0<<6)|(0<<5)|(1<<4)|(1<<3)|(0<<2)|(2<<0); for(i=0; i<10; i++); point_adcy = 0; for(i=0;i<4;i++) { rADCCON = rADCCON | (1<<0); while(rADCCON & 0x1); while(!(rADCCON & 0x8000)); point_adcy = point_adcy + (rADCDAT0 & 0x3FF); } point_adcy = point_adcy>>2; sprintf(disp_buf, "Y-Posion[AIN7] is %04d \n", point_adcy); 24 UART_SendStr(disp_buf); GUI_Point(point_adcx,point_adcy,RED); CRectangleDemo(point_adcx,point_adcy,RED); }while(!((rADCDAT0&0x8000)|(rADCDAT0&0x8000))); rADCTSC= (1<<8)|(1<<7)|(1<<6)|(0<<5)|(1<<4)|(0<<3)|(0<<2)|(3<<0); } rSUBSRCPND = rSUBSRCPND | BIT_SUB_TC; rINTSUBMSK =~ (BIT_SUB_TC); ClearPending(BIT_ADC); } #else void WaitStylusDown(void) { rADCTSC = (0<<8)|(1<<7)|(1<<6)|(0<<5)|(1<<4)|(0<<3)|(0<<2)|(3<<0); while(!(rSUBSRCPND&BIT_SUB_TC)); } void WaitStylusUP(void) { rADCTSC = (1<<8)|(1<<7)|(1<<6)|(0<<5)|(1<<4)|(0<<3)|(0<<2)|(3<<0); while(!(rSUBSRCPND&BIT_SUB_TC)); rSUBSRCPND = rSUBSRCPND | BIT_SUB_TC; } void AdcTouch(void) { uint32 point_adcx; uint32 point_adcy; int i; rADCTSC = (0<<8)|(0<<7)|(1<<6)|(1<<5)|(0<<4)|(1<<3)|(0<<2)|(1<<0); for(i=0; i<100; i++); point_adcx = 0; for(i=0;i<4;i++) { rADCCON = rADCCON | (1<<0); while(rADCCON & 0x01); while(!(rADCCON & 0x8000)); point_adcx = point_adcx + (rADCDAT1 & 0x3FF);} 25 point_adcx = point_adcx>>2; sprintf(disp_buf, "X-Posion[AIN5] is %04d \n", point_adcx); UART_SendStr(disp_buf); rADCTSC = (0<<8)|(1<<7)|(0<<6)|(0<<5)|(1<<4)|(1<<3)|(0<<2)|(2<<0); for(i=0; i<100; i++); point_adcy = 0; for(i=0;i<4;i++) { rADCCON = rADCCON | (1<<0); while(rADCCON & 0x01); while(!(rADCCON & 0x8000)); point_adcy= point_adcy + (rADCDAT0 & 0x3FF);} point_adcy = point_adcy>>2; sprintf(disp_buf, "Y-Posion[AIN7] is %04d \n\n\n", point_adcy); UART_SendStr(disp_buf); //GUI_Point(point_adcx,point_adcy,RED); //CRectangleDemo(point_adcx,point_adcy); rSUBSRCPND = rSUBSRCPND | BIT_SUB_TC;} #endif void TouchInit(void) { rGPGUP = rGPGUP | 0xF000; rGPGCON = rGPGCON | 0xFF000000; rADCDLY = 20000; rADCCON=(1<<14)|((PCLK/ADC_FREQ - 1)<<6)|(0<<3)|(0<<2)|(0<<1)|(0<<0); rADCTSC = (0<<8)|(1<<7)|(1<<6)|(0<<5)|(1<<4)|(0<<3)|(0<<2)|(3<<0); #if USE_IRQ_TOUCH!=0 VICVectAddr[31] = (uint32) IRQ_AdcTouch; rINTMSK = ~BIT_ADC; rINTSUBMSK = ~BIT_SUB_TC; #endif } int main(void) { DispDesktop(); UART_Select(0); UART_Init(); 26 UART_SendStr("Touch Screen Test. \n"); UART_SendStr("Separate X/Y position conversion mode test. \n"); TouchInit(); GUI_Initialize(); #if USE_IRQ_TOUCH!=0 IRQEnable();// 使能IRQ中断(CPSR) GUI_FillSCR(GREEN); CRectangleDemo(250,250,BLACK); CRectangleDemo(300,300,BLACK) ; while(1); #else while(1) { WaitStylusDown(); AdcTouch(); WaitStylusUP(); DelayNS(1);} #endif return(0); 27 VDD33 L210mH C32100pF C40附录二 100pFDS1C39POWER100pF R191K VDD33Vref R13R14R151K1K1KS2U1018MRVCC32SW-PBRESETRESETOM076R26WPSCLR284521KVSSSDA1KR29VOUTVDD331KR30R18CAT1025JI-301KR311KC51C60C501K100pF10uF/16V100pFJP20NAND Flash5VU13nTRSTTCKTDITMSVDD33SPX1117-3.33C52C54VINXTIpllXTIrtcnRSTINGND115pF22pFX2R27211M32768HzC55C53XTOpllXTOrtc15pF22pF VDD33VDDRTC U8X1VDD3312VDD3312MHz21345678910VD2RTCK1112VD3U1TDO1314VD4SPX1117-3.3nRSTVDD331516VD5R161K1718VD63VIN1920R17VD72nTRSTVOUTGNDJTAG11KVD10R22VD111KAIN7VD12AIN5VD13nXPONVD14nYPONYMONXMON XTOrtcXTIrtc53VrefXTIpllAIN752XTOpllAIN550nYPON49OM0nXPON148VDD3364nRSTINYMONVref247VDD33nRSTOUTXMONVCLK61340VDDRTCVDD33GNDOM0nTRSTLEND624VLCLK39VDDRTCnRSTINTMSLCDVF26356046TC KXTOrtcLCDVF1659nTRST45TDIXTIrtcLCDVF0TMS75844TDOXTOpllVFRAMETCK85743GNDXTIpllVLINETDI95642VFRAMEOM3VMTDO5541VLINEOM254TXD0EXTCLKVD22VD23VD2210VD233865RXD0VD21RXD0VD211337S3C2410ATXD1TXD0VD2011VD2036RXD1TXD1VD1914VD1935TXD2RXD1VD1812VD1834RXD2VD171533VD1632VD15VD153116VD017U18VD118VD219VD320VD421VD522VD623VD724VD825VD926VD1027VD1128VD122U129VD1313230GNDVD14JP431U/D30R/LVLIGHT29VCC+5V28VCCJP6U427ENAB1326GND1VCCOUT1GNDEXT5V4JP725VD72OUT2B5EXT_GND24VD631B4C2C32523VD54GNDOGND2B3100pF100pF22VD4B2CXA_L10A21VD3B120VD2B019GNDGND18VD15 G517VD14G416VD13G315VD12G214VD11G113VD10G0 12GNDGND11VD23R510VD22R49VD21R38VD20R2 7VD19R16VD18R05GNDGND4VFRAMEVsync3VLINEHsync2VCLKCK1GNDGNDLQ080V3DG01 28 JP1JP2J1TSYM111TSXP622TSYP2U1433TSXM7nCTS0nRTS044123RXD0TXD034U3TouchTouch8U15RXD1TXD156YMON16TSYM4161RXD2TXD2G1_ND1_NVDD33VccC1+789C56VDD33910255230.1uFVDD33S2_PS1_NV+C1-64UART-TTLV-C2+nXPON34UART1C57G2_PD2_N0.1uFC58155C59GNDC2-FDC63210.1uF0.1uF1411TXD0T1OUTT1INR1AIN7TSXPJP51312JP21R1 INR1OUTRXD01X+C1J27101K2Y-T2OUTT2IN100pF189RXD1RXD0TXD13X-R2 INR2OUT64Y+U52SP3232EJP22XMON16TSXMTouch7G1_ND1_N332258RXD-845VDD33S2_PS1_N14nYPON349G2_PD2_N5FDC6321UART2R6AIN5TSYPC81K100pF 内部资料 仅供参考 内部资料 仅供参考 D1D2D3D4D5D6D7D8LEDLEDLEDLEDLEDLEDLEDLEDP11VCCR11R12R13R14R15R16R17R182GND1K1K1K1K1K1K1K1KVCCU1AU1BU1CU1DU2AU2BU2CU2D1781178144LM324LM324LM324LM324LM324LM324LM324VCCLM32441111411411411411411411411J2J1GNDR192365923659R10111111J40320321KR1R2R3R4R5R6R7R8R9111KJ31K1K1K1K1K1K1K100K GND 29 U3LM7805VCCD4D313Vin+5VP11D40074007C4C6NC5C7GD6D51041042470U100u240074007DS1DS2DS3DS4a7a7a7a7aaaab6b6b6b6GNDbbbbaaaac4c4c4c4ccccDSCOM1d2d2d2d2fbfbfbfbddddgggge1e1e1e1eeeeQ1f9f9f9f9ececececffffdddd9012g10g10g10g10ggggdpdpdpdp5555dpdpdpdpDSCOM2GNDGNDGNDGNDQ2VCCDSCOM1DSCOM2DSCOM3DSCOM4383838389012DSCOM3BT1BL23VR2Q309012VCC15D2BLYVCC4007DSCOM4D1C1414810UQ4R3R4BL1abcdefg21439012100100R6R7R8R9R10R11R12R136036036036036036036010KCOM1COM2COMU1GNDLSBL2120RESVCC219RXDP1.7318GNDTXDP1.6321054C24171111911X2P1.5BL130P516U2X1P1.4XTAL16154511COM2COMCOM1FBCEADGINT0P1.3Q512MK1C3714123INT1P1.2901230P813T0P1.1912T1P1.0TIE1011ABCDLBLGNDP3.7P3K289C2051GND7126345R1310KVCCGNDR5510GNDVCCLED2LED1 30
/
本文档为【基于ARM929T内核的三星 S3C2410芯片的电子黑板的软件和硬件设计毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索