网站首页 | 经济学论文 | 证券金融 | 管理学 | 会计审计 | 法学论文 | 医药学论文 | 社会学论文 | 教育论文 | 计算机 | 艺术论文 | 哲学论文 | 财务管理 |
写论文网
  • 基本理论
  • 融资决策
  • 财务分析
  • 投资决策
  • 财务控制
  • 其他相关
  • 您的位置:写论文网 > 财务管理 > 融资决策 > 嵌入式设备鼠标接口的设计与... 正文 2019-12-27 07:26:38

    嵌入式设备鼠标接口的设计与实现_嵌入式接口

    相关热词搜索:

    嵌入式设备鼠标接口的设计与实现

    嵌入式设备鼠标接口的设计与实现 关键词:PS/2接口 双向同步串行协议 GUI 当前嵌入式系统技术已得到了广泛应用,但传统嵌入式系统的人机接口多 采用小键盘操作的文本菜单方式,用户操作较为不便。本文介绍了一种利用PS /2接口鼠标,在点阵LCD的单片机系统上实现图形化用户界面的方案。用窗 口菜单和图形按钮取代了传统的键盘操作,具有成本低、效果好等特点,具有很 强的实用性。

    1 PS/2接口和协议 1.1 接口的物理特性 PS/2接口用于许多现代的鼠标和键盘,由IBM最初开发和使用。物 理上的PS/2接口有两种类型的连接器:5脚的DIN和6脚的mini-D IN。图1就是两种连接器的引脚定义。使用中,主机提供+5V电源给鼠标, 鼠标的地连接到主机电源地上。

    1.2 接口协议原理 PS/2鼠标接口采用一种双向同步串行协议。即每在时钟线上发一个脉 冲,就在数据线上发送一位数据。在相互传输中,主机拥有总线控制权,即它可 以在任何时候抑制鼠标的发送。方法是把时钟线一直拉低,鼠标就不能产生时钟 信号和发送数据。在两个方向的传输中,时钟信号都是由鼠标产生,即主机不产 生通信时钟信号。

    如果主机要发送数据,它必须控制鼠标产生时钟信号。方法如下:主机首先 下拉时钟线至少100μs抑制通信,然后再下拉数据线,最后释放时钟线。通 过这一时序控制鼠标产生时钟信号。当鼠标检测到这个时序状态,会在10ms 内产生时钟信号。如图3中  A  时序段。主机和鼠标之间,传输数据帧的时序 如图2、图3所示。

    2 PS/2鼠标的工作模式和协议数据包格式 2.1 PS/2鼠标的四种工作模式PS/2鼠标的四种工作模式是:Reset模式,当鼠标上电或主机发 复位命令  0xFF  给它时进入这种模式;
    Stream模式  鼠标的默认模 式,当鼠标上电或复位完成后,自动进入此模式,鼠标基本上以此模式工作;
    R emote模式,只有在主机发送了模式设置命令  0xF0  后,鼠标才进入 这种模式;
    Wrap模式,这种模式只用于测试鼠标与主机连接是否正确。

    2.2 数据包结构 PS/2鼠标在工作过程中,会及时把它的状态数据发送给主机。发送的 数据包格式如表1所示。

    表1 鼠标发送的数据包格式 Byte1中的Bit0、Bit1、Bit2分别表示左、右、中键的 状态,状态值0表示释放,1表示按下。Byte2和Byte3分别表示X轴 和Y轴方向的移动计量值,是二进制补码值。Byte4的低四位表示滚轮的移 动计量值,也是二进制补码值,高四位作为扩展符号位。这种数据包由带滚轮的 三键三维鼠标产生。若是不带滚轮的三键鼠标,产生的数据包没有Byte4  其余的相同。

    3 设计与实现 3.1 接口设计 因为PS/2鼠标接口采用双向同步串行协议,时钟脉冲信号  以下皆称 CLOCK  总是由鼠标产生。因此,可以考虑这种方案:鼠标的CLOCK接 主机的一外中断线,数据线  以下皆称DATA  接主机的某一I/O口线,如 图4所示。

    在主机程序中,利用每个数据位的时钟脉冲触发中断,在中断例程中实现数 据位的判断和接收。在实验过程中,通过合适的编程,能够正确控制并接收鼠标 数据。但该方案有一点不足,由于每个CLOCK都要产生一次中断,中断频繁, 需要耗用大量的主机资源。

    由于鼠标与主机之间以双向同步串行协议传送数据,若不考虑CLOCK, 仅考虑DATA,则其数据帧的时序与单片机的UART异步串行时序类似。所以,采用了另一种方案:鼠标的CLOCK仍旧接主机的外中断,但鼠标的DA TA接UART的接收脚  RxD  。参照图4  DATA改接RxD。在初 始化过程中,主机利用CLOCK的外中断和RxD脚的I/O口线功能实现数 据的传输。初始化完成后,切换到RxD功能  即UART的接收引脚功能  。

    因为鼠标已处于Stream模式的工作状态,这时鼠标能主动发送数据。这样, 主机可以在每收到一帧数据时才中断一次。中断次数大大降低,减少了主机资源 的耗用。

    不过,在此方案中,必须实现另一个功能:主机波特率的自适应。因为P S/2接口的鼠标一般工作在10kHz~20kHz时钟频率。不同厂家制造 的鼠标工作的时钟频率不同。嵌入设备主机要做到与不同鼠标的波特率同步和自 适应,才能够正确接收鼠标传送来的数据。波特率的自适应是这样实现:鼠标上 电自检时会产生一串时钟脉冲,利用鼠标时钟脉冲产生的中断,结合主机的定时 器测量时钟脉冲周期,可以得出所用鼠标的时钟频率,进而求出波特率。通过设 置相应的波特率寄存器,实现了波特率的自适应。

    3.2 软件实现 软件实现原理框图如图5所示。

    (1)鼠标初始化 最简单的初始化就是当鼠标上电自检完成后,主机给鼠标发送一个使能鼠 标数据传送命令字节(0xf4),鼠标就会在默认设置状态下工作。主机也可实 现自定义初始化,如:复位三次(Snd_CMD(0xff),Snd_CMD(0 xff),Snd_CMD(0xff);
    设置采样率:Snd_CMD(0xf3), Snd_CMD(0x0a);
    设置解析度(2点/毫米):Snd_CMD(0xe 8),Snd_CMD(0x01);
    设置缩放比例(1:1):Snd_CMD(0xe 6);
    使能鼠标数据传送:Snd_CMD(0xf4)。鼠标每收到一个命令字节 都会给出一个应答字节(0xfa)。

    (2)两种方案的实现过程 两种方案的软件实现过程基本相同。只是后一种方案中,初始化时还要实 现主机波特率的自适应,关闭时钟脉冲中断和打开串口中断。此后主机利用UA RT的接收功能接收鼠标数据。(3)图形化人机接口(GUI)的实现 在点阵式LCD显示屏上实现图形化的人机接口界面,主要有两个方面:
    一个是菜单图标的实现;
    另一个是鼠标光标的实现。实现菜单图标,显示屏一般 工作在图形显示模式。菜单图标有正常显示状态和反显状态,它们都用函数实 现:void Draw_ICON(signed int xICON, sig ned int yICON,unsigned char *pDatICON)。

    xICON  yICON是图标所在位置的左上角坐标值,pDatICON是 各个图标及其不同显示状态的点阵码值。反显状态是当图标被光标滑到或点取时 才显现的。实现鼠标光标,又分两种情况。一种是单层显示的LCD,只能由程 序画出鼠标光标。但是,当光标移动较快时,画出光标的点阵图形需要耗用较多 的主机资源。另一种是有双层显示和光标功能的LCD,只需程序控制它的光标 移动位置,无需程序画出光标的点阵图形,因而耗用主机资源较少,实现起来效 果较好。

    两种方案简单、明了,容易实现,都已在实验中得到验证。并且,后一种 方案已在某一仪表系统中得到成功应用。总体来说,随着嵌入式处理器性能的不 断提高,在嵌入设备中接入鼠标,既可灵活使用,也可减少因接入许多按键而占 用的口线数,还能使LCD的图形化显示界面更美观、更人性化。

    • 范文大全
    • 教案
    • 优秀作文
    • 教师范文
    • 综合阅读
    • 读后感
    • 说说
    嵌入式设备鼠标接口的设计与实现_嵌入式接口》由(写论文网)整理提供,版权归原作者、原出处所有。
    Copyright © 2019 写论文网 All Rights Reserved.