位置:51电子网 » 技术资料 » 接口电路

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

发布时间:2008/6/3 0:00:00 访问次数:1156

引言

  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),“a”通码(0x1c),“a”断码(0xf0,0x1c),shift断码(0xf0,0x12)。此过程中加入了两个标识位,shift标识(rx_shift_key_on)和断码标识(rx_released),用以显示shift是否被按下,及发送的是通码或断码。

  往键盘写数据:当你写数据到键盘控制器的

引言

  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),“a”通码(0x1c),“a”断码(0xf0,0x1c),shift断码(0xf0,0x12)。此过程中加入了两个标识位,shift标识(rx_shift_key_on)和断码标识(rx_released),用以显示shift是否被按下,及发送的是通码或断码。

  往键盘写数据:当你写数据到键盘控制器的

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!