用于NIOS II 嵌入式处理器系统的鼠标控制器设计
随着芯片制造技术的发展,SOPC(可编程单芯片系统)已成为嵌入式系统设计的一个发展方向。Altera公司推出的NIOS II嵌入式处理器系统,是目前比较流行的SOPC。它通常由NIOS II处理器、Avalon总线结构和各种外围设备(包括SDRAM控制器、DMA、CF卡控制器以及用户自己设计的外围设备[1]等)的IP核三部分组成[2],Altera的SOPC builder系统开发工具可以自动生成这些组件以及联结它们的总线。近些年来,NIOS II嵌入式处理器系统由于具有较高的性能,很好的设计灵活性,在嵌入式领域中的应用越来越广泛。另一方面,随着嵌入式系统的发展,鼠标在嵌入式系统中的应用越来越多。本文介绍了一个鼠标控制器的设计,不但支持标准PS/2(IBM PS/2)鼠标,还支持微软的Intellimouse,相比目前多数采用的另外加一个单片机作为鼠标控制器的方式减少了系统成本,可以在采用NIOS II处理器的嵌入式系统中应用。
本文引用地址:http://www.amcfsurvey.com/article/202707.htm1、鼠标控制器的设计
本文所介绍的鼠标控制器是一个Avalon从模式设备,遵循Avalon总线接口规范,并遵循PS/2通讯协议。
1.1 Avalon 总线从端口接口信号
Avalon总线规范定义了外设可以包含的各种信号类型(例如地址、数据、时钟等)[3]。本文所设计的鼠标控制器是一个从模式设备, 它和Avalon总线通过从端口信号连接。部分Avalon从端口信号的方向和说明如表1所示。信号的方向是从外设的角度定义的。
表1 部分Avalon 从端口信号说明
1.2 PS/2通讯协议简介
PS/2通讯协议[4]是一种双向同步串行通讯协议。通讯的两端通过时钟线同步,并通过数据线交换数据。
标准PS/2 鼠标支持X方向(左右)位移,Y方向(上下)位移,并支持左键,中键和右键。它发送位移和按键信息给主机采用3字节数据帧格式(表2所示的4字节数据中的前3个字节)。微软的Intellimouse是对标准PS/2 鼠标的扩展。它支持五个鼠标按键和三个位移轴,左右,上下和滚轮(Z方向)。缺省情况下工作方式和标准的PS/2 鼠标类似。要进入滚轮模式主机应该发送如下的命令序列:
设置采样速率(0xf3) 200(0xc8)
设置采样速率(0xf3) 100(0x64)
设置采样速率(0xf3) 80 (0x50)
在滚轮模式下鼠标使用4字节的数据帧格式,如表2所示。
另外,鼠标上电后会载入缺省设置,其中之一是数据报告被禁止。要让鼠标开始发送数据包,主机应发送0xF4(使能鼠标)命令给鼠标。
表2 微软的Intellimouse的数据帧格式
1.3 鼠标控制器的设计实现
评论