基于Avalon总线的键盘和VGA控制接口设计.docVIP

基于Avalon总线的键盘和VGA控制接口设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Avalon总线的键盘和VGA控制接口设计

基于Avalon总线的键盘和VGA控制接口设计 类别:电子综合 ? 阅读:1662 引言 SOPC(System On Programmable Chip,可编程的片上系统)是Altera公司提出的一种灵活、高效的SOC解决方案。它将处理器、存储器、I/O口等系统设计 需要的功能模块集成到一个可编程器件上,构成一个可编程的片上系统。SOPC是PLD和ASIC技术融合的结果,代表了半导体产业未来的发展方向。 Altera公司的Nios II核是目前最具代表性的软核嵌入式系统处理器,本文描述的SOPC系统以Altera NiosII为基础,利用SOPC Builder对Nios II及其外围系统进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足系统设计的需求。 设计课题的确立 本文所描述的SOPC系统需要完成以下功能: 1.利用PS2接口的键盘作为设计的信号输入和外部控制电路部分;   2.利用VGA显示接口作为设计的信号输出和显示电路部分; 3.嵌入处理器 + 应用软件。 根据以上要求,确立要完成本文设计的3个功能模型,分别是:兼容标准键盘的PS2控制接口逻辑;基于Avalon总线的VGA显示接口逻辑,以及NiosII嵌入式处理器和PS2/VGA驱动程序。 系统的组成和结构 在SOPCBuilder中构造整个系统的连接,包括基本的SOPC系统和自定义外设。基本SOPC系统的核心是NiosII处理器Core,它还包含Avalon三态总线,以及挂在总线上的外部存储设备接口,包括SRAM(或SDRAM)控制接口及Flash控制接口;以及定时计数Timer和调试Jtag_Uart模块。而本课题设计的关键就是自定义的外设接口——基于Avalon总线协议的PS2接口和VGA控制接口。 基于Avalon总线协议的PS2控制接口设计 PS2控制接口协议 PS2设备接口多用于当今的鼠标和键盘设计,它是由IBM 开发并最早出现在IBM 技术参考手册里。PS2 鼠标和键盘遵循双向同步串行协议,每次数据线上发送一位数据,时钟线上的脉冲就被读入。键盘/鼠标可以发送数据到主机,同样主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘/鼠标的通讯,而只需把时钟拉低即可。 从键盘/鼠标发送到主机的数据,在时钟信号的下降沿被读取;从主机发送到键盘/鼠标的数据在上升沿被读取。不管通讯的方向怎样,键盘/鼠标总是产生时钟信号。如果主机要发送数据,它必须先告诉设备开始产生时钟信号。PS2设备最大的时钟频率是33kHz 而大多数设备工作在10-20kHz。设备到主机的通讯过程如图2所示: 所有数据安排在字节中,每个字节为一帧,包含了11/12 个位,这些位的含义如下:1个起始位,总是为0;8个数据位,低位在前;1个校验位,奇校验;1个停止位,总是为1;1个应答位,仅在主机对设备的通讯中出现。 键盘上包含了一个大型的按键矩阵,它们是由“键盘编码器”来监视的。监视哪些按键被按下或释放了,并在适当的时候传送到主机。而主板上包含了一个“键盘控制器”负责解码所有来自键盘的数据, 并告诉软件什么事件发生。在主机和键盘之间的通讯使用IBM 的协议,最初IBM 使用Intel8048 微处理器作为它的键盘编码器,而使用Intel8042 微控制器作为它的键盘控制器,这些现 已被兼容设备取代,并整合到主板的芯片组中。 键盘的处理器花费很多的时间来扫描或监视按键矩阵。如果它发现有键被按下、释放或按住,键盘将发送“扫描码”的信息包到计算机。扫描码有两种不同的类型:“通码”和“断码”。当一个键被按下或按住就发送通码;当一个键被释放就发送断码。每个按键被分配了唯一的通码和断码,这样主机通过查找唯一的扫描码就可以测定是哪个按键。 基于Avalon总线的键盘控制器的FPGA实现 基于Avalon总线的键盘控制器的实现,需模拟Intel8042的功能时序,完成键盘控制器的功能模型的建立,并完成其RTL代码。本键盘控制器,不仅完成8042对键盘扫描码的接收功能,还要把扫描码转换为处理器能够识别的ASCII码。 从键盘读数据:当从键盘收到有效的扫描码就把它放置在输入缓冲区,IBF(输入缓冲区满)标志被设置,产生IRQ1。如果中断是使能,IRQ1将激活键盘驱动程序,它指向0x09中断向量。驱动程序将从Avalon_PS2_BASE端口读取ASCII码。这个动作会释放IRQ1并复位IBF标志。接着ASCII被驱动程序处理。如下图3显示接收“c”通码的时序,经过11个PS2_CLK接收到“c”的扫描码为“0x21”,同时扫描码被转换为ASCII码,为“0x63”。图4,模拟了键盘发送一个大写“A”的数据传输时序,其过程为SHIFT通码(0x12),

文档评论(0)

liudao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档