嵌入式键盘中断论文.docVIP

  • 25
  • 0
  • 约9.74千字
  • 约 15页
  • 2016-06-08 发布于江苏
  • 举报
嵌入式键盘中断论文.doc

湘南学院 课程设计报告 课程名称: 嵌入式系统 设计题目: 键盘驱动 专业班级: 学生姓名: 学生学号: 指导老师: 2013年 12月 23 日 目 录 1.概述 1 1.1背景 1 1.2设计要求 1 1.3开发环境 1 1.4关键技术 1 2.概要设计 2 2.1、软件结构 2 2.2、各功能模块设计 2 2.2.1 S3C2410的I/O介绍………………………………………..2 2.2.2 S3C2410中断介绍…………………………………………...3 2.2.3 按键驱动………………………………………………………..4 3.详细设计与实现 7 3.1、界面说明 7 3.2、程序流程 8 3.3、关键代码 8 4.测试分析 12 4.1.测试方法 12 4.2 测试用例 12 4.3 测试结果 12 5.小结 13 参考文献 13 1.概述 1.1背景 许多嵌入式系统,尤其是一些人机交互(HMI)较频繁的嵌入式系统,键盘是一种应用最为广泛的输入设备。由于嵌入式设备的功能互异性,为其提供一种通用性键盘是不可行的,一般都需要根据嵌入式系统的实际功能来设计所需的特殊键盘,并实现相应的驱动程序。 在嵌入式设备上扩展键盘的常用方式是通过使用CPU的GPIO端口扫描实现的,显然,这种方式会占用系统的GPIO资源,特别是在GPIO资源比较紧张而按键又较多的系统,这个问题就特别突出。当然,也可以通过外扩GPIO(如8255等)或外扩专用的键盘接口(如8279等)方式实现,但这种方式显然增加了系统的复杂度,在实际系统设计中颇感不便。因此我们将借用嵌入式知识用软件来实现键盘驱动程序。 1.2设计要求 用户设计行列键盘接口,一般常采用三种方法读取键值。一种是中断式,另外两种是扫描法和发转法。 键盘扩展我们将采用SPI接口的键盘显示控制芯片ZLG7289。 所包含的功能应该有:硬件中断,按键识别,键值显示。 1.3开发环境 硬件环境:S3C2410嵌入式开发板,JTAG仿真器。 软件环境:PC机操作系统Win98,Win2000或WinXP,ADS1.2集成开发环境,仿真器驱动程序,超级终端驱动程序。 1.4关键技术 中断式技术的应用,在键盘按下时产生一个外部中断通知 CPU,并由中断处理程序通过不同的地址读取数据线上的状态,判断哪个按键被按下。本实验采用中断式实现用户键盘接口。中断源向 CPU 发出中断请求,若优先级别最高,CPU 在满足一定的条件下,可以中断当前程序的运行,保护好被中断主程序的断点及现场信息。然后,根据中断源提供的信息,找到中断服务子程序的入口地址,转去执行新的程序段,这就是中断响应。CPU 响应中断是有条件的,如内部允许中断、中断未被屏蔽、当前指令执行完等。CPU 响应中断以后,就会终止当前的程序,转去执行一个中断服务子程序,以完成为相应设备的服务。a.保护现场(由一系列的压栈指令完成)。目的是为了保护那些与主程序中有冲突的寄存器,(如 R0,R1,R2 等),如果中断服务子程序中所使用的寄存器与主程序中所使用的寄存器等没有冲突的话,这一步可以省略。 b.中断处理,中断处理程序在检查到相应的中断源后,调用对应的中断处理程序完成。 c.恢复现场并返回(由一系列的出栈指令完成)。是与保护现场对应的,但要注意数据恢复的次序,以免混乱。由于中断服务子程序需要打断主程序的执行,因此其处理应该及时完成,较长时间的延时将导致系统性能严重下降。 SN74hc164芯片所使用到的GPIO端口作配置,以使CPU可以对它们进行控制和访问。为了要将某个GPIO端口配置成输入输出或者是中断源,需要在对应的GPIO控制寄存器中设置正确的值,具体的值可以通过查阅S3C2410开发板手册来获得。比如,为了将GPB1设置成SN74hc164的输入端,需要将GPBCON这个控制字中2,3两位设置成二进制的01,为了将GPG6设置成电压低跳变中断源,需要将GPGCON中12,13两位设置成二进制的10。在完成了硬件初始化操作以后,就是软件层上的初始化了。首先将键盘中断处理函数注册到系统,然后设置好一个定时器结构,以便在中断发生时将其挂到内核的定时器队列中去,该定时器将触发对键盘的扫描操作。最后通过SN74hc164将矩阵电路的16列置零。 2.2、各功能模块设计 2.2.1 S3C2410的I/O介绍 (1)输入输出端口引脚: PortA(GPA):32个输入/输出端口 PortB(GPB):11个输入/输出端口 PortC(GPC):16个输入/输出端口

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档