毕业设计基于μCOSII的键盘驱动的实现.doc
《毕业设计基于μCOSII的键盘驱动的实现.doc》由会员分享,可在线阅读,更多相关《毕业设计基于μCOSII的键盘驱动的实现.doc(33页珍藏版)》请在三一办公上搜索。
1、基于C/OS- II的键盘驱动的实现第一章 绪论一嵌入式系统简介 嵌入式系统着眼于应用,己被人们定义为“以应用为中心、以计算机技术为基础、软件硬件可裁减、适应于应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”。 嵌入式系统是将先进的计算机技术、半导体技术、电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式系统具有一般计算机组成的共性,都是由硬件和软件组成的。嵌入式系统的硬件部分,是以嵌入式处理器为中心,配合存储器、I/O设备、通信模块、扩展设备接口以及电源等必要的辅助接口组成。嵌入式系统软件部分,
2、一般是按3层划分的:设备驱动层、实时操作系统层、 应用程序层。嵌入式系统的硬件是嵌入式系统的基础,决定了嵌入式系统的运算速度和扩展功能等,提供了嵌入式软件运行的物理平台和通信接口;嵌入式系统的软件是嵌入式系统的灵魂,包括嵌入式操作系统和嵌入式应用软件,决定了硬件的操作模式,通过操作系统和应用程序发挥硬件装置的功能。嵌入式系统是应用于特定环境下,面对专业领域、针对特定用途的系统,所以与通用计算机系统的多样化和适用性不同。与通用计算机系统相比,它具有以下显著的特点:1) 嵌入式系统通常是面向特定应用的,是“专用”的计算机系统;2) 嵌入式系统一般使用实时操作系统;3) 嵌入式系统是技术密集、资金密
3、集、高度分散、不断创新的知识集成系统;4) 嵌入式系统具有功耗低、体积小、集成度高、成本低的特点;5) 嵌入式系统的硬件和软件通过量体裁衣、去除冗余,可以用较少的软硬件资源实现较高的性能;6) 嵌入式系统与具体的行业应用相结合;7) 嵌入式系统的软件一般都固化在非易失性存储器中,提高了执行速度和系统可靠性。二本课题的主要研究工作本课题采用高性能嵌入式处理器S3C2410X和C/OS-II 操作系统,开发了一个轻型嵌入式串行通信系统。具体的工作主要有: 1. 键盘的驱动编程。2. C/OS-II的移植,这是本课题的重点所在。操作系统内核移植是在ARM公司的ADS1.2集成开发环境下完成的。3.
4、在应用层裁剪移植一个用于监视的图形用户界面(GUI)。 4. 在操作系统的上层编写一个用于人机交互的键盘驱动程序、LCD液晶显示驱动程序和相关的功能运用程序等。 第二章 基于C/OS-II的键盘驱动的总体规划与设计嵌入式系统设计的基本原则是“物尽其用”,与通用计算机相比,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣,去除冗余,力争在同样的硅片面积上实现更高的性能,以满足应用系统对功能、可靠性、成本、体积和功耗的要求。2.1 系统的设计要求本设计将一个实时操作系统移植到 ARM 嵌入式微处理器后,利用操作系统中提供的系统资源调用把串口及其他外设当成普通文件进行操作,读写方便,从而在进行相应
5、软件开发的过程中,提高系统编程效率,简化调试的复杂程度,实现基于ARM嵌入式微处理器为核芯的串口通信,除此之外,按照嵌入式系统的软、硬件结构组成, 将图形用户界面GUI和实时操作系统整合后移植到ARM微控制器上。系统实现的功能如下:(1)激活超级终端0,敲击PC机的键盘,将字符通过PC机的串口发送给ARM开发板的串口0;通过ARM芯片处理后,在开发板上的LCD上同步显示。(2)利用开发板上的键盘输入字符,同样可在LCD上显示,并发送给PC机。(3)系统还应考虑日后的升级和功能扩展,留下可开发的硬件空间。2.2 系统的硬件和软件选型2.2.1 系统硬件平台的选择嵌入式开发的硬件平台的选择主要是嵌
6、入式处理器的选择。在一个系统中使用什么样的嵌入式处理器内核主要取决于应用的领域、用户的需求、成本问题、开发的难易程度等因素。目前非常流行的ARM核有ARM7TDMI,StrongARM,ARM720T,ARM9TDMI,ARM922T,ARM940T,ARM946T,ARM966T,ARM10TDMI等。自V5版本以后,ARM公司提供Piccolo DSP的核心给芯片设计者,用于设计ARM DSP的SOC(System On Chip)结构芯片。此外,ARM核还获得了许多实时操作系统(Real Time Operating System)供应商的支持,比较知名的实时操作系统有:Windows
7、CE、Linux、pSOS、VxWorks、Nucleus、EPOC、C/OS-II、BeOS等。S3C2410A微处理器是一款由韩国SamSung电子公司为手持设备设计的低功耗、高集成度的基于ARM920T核的16/32位RISC处理器。为了降低整个系统的成本,S3C2410A还集成了以下部件:16KB指令Cache、16KB数据Cache、具有虚拟存储器管理单元MMU、外部存储器控制器、LCD控制器(支持STN和TFT)、8通道10位ADC、触摸屏接口、NAND Flash控制器、3个UART通道、4个DMA通道、4个PWM定时器、1个内部定时器、I/O端口、RTC、IIC-BUS控制器、
8、IIS-BUS控制器、USB主、USB从、SD主卡/MMC卡接口、2通道的SPI以及内部PLL时钟倍频器等。S3C2410A采用0.18um工艺生产制造,核心频率最高可以达到203MHz,功能强大而且体积小、功耗低。S3C2410A片上资源丰富,可以简化外围电路设计,减少了整个系统的成本,为嵌入式系统提供了一个高效的硬件平台。S3C2410A处理器不仅在手机、PDA等手持设备方面广泛应用,在通信系统、数据终端等方面也得到广泛应用。考虑到本项目的开发要带操作系统并运行CGUI,本文选定SamSung(三星)公司生产的一款基于ARM920T核的高性能低功耗SOC芯片S3C2410A作为硬件开发平台
9、的主控制器。2.2.2 嵌入式操作系统的选择嵌入式操作系统EOS(Embedded Operating System)是一种支持嵌入式系统应用的操作系统软件,是嵌入式系统的重要组成部分。嵌入式操作系统负责完成嵌入式系统的全部软、硬件资源的分配、调度、控制、协调;它必须体现其所在系统的特征,能够通过加载/卸载某些模块来达到系统所要求的功能。嵌入式操作系统具有小巧、可定制性、强稳定性、弱交互性、较强的实时性、外设接口统一性等特点。随着嵌入式系统的快速发展,嵌入式操作系统已经从简单走向成熟,比较著名的有Windows CE、CLinux、C/OS-II、VxWorks、Palm OS和Linux等。
10、基于实时性、成本以及开发难度方面的考虑 ,系统设计时选择了C/OS-II开放源代码的嵌入式实时操作系统。实时操作系统C/OS- II是一个源码公开、可移植、可固化、可裁剪及占先式的实时多任务操作系统 ,它运行优先级最高的就绪任务,其绝大部分源码是用 C 语言编写。C/OS - 的正常运行需要处理器平台满足以下要求: 处理器的 C编译器能产生可重入代码。 用 C语言就可以打开和关闭中断。 处理器支持中断,并且能产生定时中断 (通常在 10至 100Hz之间 )。 处理器支持能够容纳一定量数据 (可能是几千字节 )的硬件堆栈。 处理器有将堆栈指针和其它 CPU寄存器读出和存储到堆栈或内存中的指令。
11、S3C2410处理器采用 ARM920T内核 ,内部共有 37个寄存器 ,其中 R13通常用作堆栈指针 ,只要系统 RAM空间允许 ,堆栈空间理论上没有限制。ARM处理器提供 ARM指令和 Thumb指令两种指令集 ,每种指令集都包含有丰富的指令对堆栈进行操作 ,可以随意的对处理器中的寄存器进行堆栈操作。根据堆栈生长方向的不同 ,可以生成 4种不同的堆栈,分别是满递增、空递增、满递减 (此移植中使用的是满递减方式 )、空递减。芯片内集成 5个定时时钟 ,任何一个都可以产生定时中断 ,满足第三条要求。ADS集成开发环境的内置编译器可以产生可重入代码 ,并且支持内嵌汇编 , C环境中可任意的进行开
12、关中断操作。综上所述,从理论上讲C/OS - 完全可以移植到 S3C2410A上运行。2.2.3 嵌入式GUI的选择图形用户界面GUI(Graphic User Interface)是系统与用户交流沟通的一个平台,为用户提供了友好的人机界面和简单的图形化操作,是嵌入式软件平台的重要组成部分。嵌入式GUI要求简单、直观、可靠、占用资源少并且反应快速,以满足嵌入式系统中硬件资源有限的要求。独立开发嵌入式GUI需要大量的人力物力,所以对于大多数用户来说一般采用目前比较成熟的GUI系统,从而将更多的精力用来开发自己的应用程序。面向比较流行的嵌入式GUI系统有:Microwindows、MiNiGUI、
13、OpenGUI、Qt/Embedded和CGUI等。基于C/OS-II的图形用户界面支持系统的选型,我们有多种选择,对上述5种嵌入式图形用户界面进行了综合比较,CGUI在API完整性、函数库大小、可移植性、多进程执行性、健壮性、执行效率等各方面都具有优势,符合本系统对嵌入式GUI的要求,因此选择CGUI作为本系统的嵌入式GUI。C/ OS- I IC/GUI32位微处理器S3C2410AARM920TUSB接口电源电路复位电路时钟电路FlashSDRAMJTAG接口键盘接口液晶显示屏图2-1 系统平台设计框图2.3 4X4键盘的简介2.5 本章总结本章给出了嵌入式键盘系统的平台选配,包括系统的
14、MCU内核、操作系统、GUI选择等,并给出了相关功能模块如S3C2410A、C/OS-II实时操作系统、CGUI等的工作原理及相关介绍,最后给出了键盘驱动的总体设计方案。第三章 基于S3C2410A的嵌入式键盘驱动系统实现ARM嵌入式系统在基于ARM CPU为核心的硬件平台和以ADS或相关软件集成开发环境为软件平台,在其基础上,搭建中间件、驱动程序及嵌入式操作系统平台,最终在此基础上完成ARM嵌入式系统应用的开发。嵌入式系统硬件平台结构主要分为2大部分:一部分为系统主板,为基于ARM的最小系统,包括ARM CPU、Flash、SDRAM、键盘等最基本部分;另一部分为系统扩展板,提供了用于完成各
15、个不同硬件的功能模块。3.1 硬件总体结构设计MAX3232ARM9S3C2410A电源部分14针JTAG调试接口32.768KHZ有源晶振键盘接口HD7279ALCD液晶显示屏5.7寸256色真彩SDRAMHY57V641620B8MFlash ROMK9F5608U0A32M复位模块IMP811S文章选择基于ARM920T精简指令集的S3C2410A微处理器作为硬件的控制核心,附加外围的电源、晶振、调试接口、SDRAM,Flash ,人机接口等功能模块构成嵌入式键盘驱动的硬件平台。硬件的整体结构设计如图3-1所示。图3-1 基于S3C2410A的硬件整体设计各部分功能表述如下:电源电路:电
16、源电路为5V到3.3V和5V到1.8V的DC-DC转换器,给MCU的I/O和ARM内核供电,向系统提供+5V、+3.3V、+1.8v电压;时钟电路:32.768K有源晶振为系统提供工作时针,通过片内PLL电路倍频为50MHZ作为微处理器的工作时钟;复位电路:复位电路主要完成上电、掉电复位和系统在运行时用户的按键复位功能。本系统所采用专门的系统监视复位芯片IMP811S,可以手动控制系统的复位,还可以实时监控系统的电源;Flash存储器:是一种可在线擦写,掉电后数据不丢失的存储器,具有功耗低、容量大、擦写速度快等优点。本系统包含2MB NOR Flash和32MB NAND Flash存储器,内
17、部存放系统引导代码、C/OS-II内核、用户程序等。SDRAM:SDRAM(Synchronous Dynamic Random Access Memory)是同步动态RAM,具有容量大、成本低、存储快等优点,广泛应用在嵌入式系统中。S3C2410A处理器内部没有集成的SRAM,无法满足本系统的需要,因此我们扩展了两片SDRAM芯片HY57V561620,主要用作程序运行空间、数据和堆栈区。JTAG接口电路:JTAG是一种国际标准测试协议,主要用于芯片内部测试以及对系统仿真和调试。本系统采用14脚JTAG仿真调试接口电路,芯片内部有JTAG核,可以通过外部仿真器与开发系统连接调试;键盘:本系统
18、采用HD7279芯片,该芯片支持IIC总线协议,可以扩展64位键盘,驱动8个LED数码管;LCD接口:支持多种尺寸的STN、TFT LCD。3.2 电源电路设计由于S3C2410A的内核电压为1.8V/2.0V,I/O模块和存储器供电为3.3V,而电路板、LCD屏及USB接口等提供供电电压外部设备通常为5V,因此系统需要1.8/2.0V ,3.3V及5V共三种电压。图32 系统的5V电源图3-3 S3C2410A 的电源电路本课题设计中的电源系统包括交流电源和直流电源。首先选用或自制由交流到直流(AC-DC)的直流稳压电源输出5V电压,电流大小根据外部设备及接口情况,选择1A、1.5A或更大的
19、电流输出。目前在S3C2410A中使用广泛的DC-DC模块是ALPHA公司的AS1117AU系列,尾标1.8、3.3分别代表输出电压值为1.8V和3.3V。本课题的电源电路设计如下图3-2与图3-3所示。3.3 时钟电路设计S3C2410A的主时钟源来自外部晶振或外部时钟。时钟发生器有一个振荡放大器,其外部需要接一个石英振荡器。同时它还有一个锁相环(PLL),其输入信号是低频振荡器的输出,输出信号是S3C2410A的需的高频时钟(倍频作用)。S3C2410A的时钟电路的设计见图3-4。图3-4 S3C2410A 时钟电路 3.4 复位电路设计微控制器在上电时状态并不确定,将造成微控制器不能正常
20、工作。为解决这个问题,所有微控制器均有一个复位逻辑,它负责将微控制器初始化为某个确定的状态。多数嵌入式系统一般采用专用复位电路IC芯片,如IMP811等。S3C2410A的复位电路设计见下图3-5。图3-5 S3C2410A 复位电路3.5 存储器接口电路设计S3C2410A内部没有存储器,因此必须采用总线方式扩展外部存储器,包程序存储器和数据存储器。3.5.1 数据存储器SDRAM的接口设计在本设计中数据存储器选用了典型的SDRAM(Synchronous DRAM)存储器芯片HY57V641620B 两片,如下图3-6所示,它是1M4 Banks 16 Bit 的SDRAM芯片,带自刷新电
21、路、16条数据线,11条地址线,由于是 SDRAM,因此容量为8M。通过S3C2410A的nSCLK0 和nSCLK1对两片HY57V641620B进行选择存储,可实现32位的数据存储功能。图3-6 SDRAM存储器电路3.5.2 程序存储器NAND Flash的接口设计通常使用的Flash有NOR Flash和NAND Flash两种,由于NOR Flash读取速度快,多用于存储操作系统等重要信息;大容量的信息通常存储在NAND Flash中,可在线擦除。本设计中选用的程序存储器是SAMSUNG公司的32M x 8 Bit NAND Flash Memory K9F5608U0A。电路设计见
22、下图3-7。图3-7 NAND Flash存储器电路3.6 键盘及LED显示器接口设计设计过程中,键盘采用的控制芯片是HD7279A。HD7279是一片具有串行接口的可同时驱动8位共阴式数码管或独立的LED的智能显示驱动芯片。该芯片同时还可连接多达64键的键盘矩阵,单片即可完成显示键盘接口的全部功能。内部含有译码器可直接接受BCD码或16进制码并同时具有两种译码方式。电路设计如图3-8所示。图3-8 键盘及LED显示器接口3.7 LCD控制器接口设计S3C2410A 与LCD液晶显示屏的连接很简单,直接将相关引脚相连即可,无需其他硬件。本系统中选用的LCD为5.7寸,256色,640480像素
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 基于 COSII 键盘 驱动 实现

链接地址:https://www.31ppt.com/p-2392996.html