### USB键盘的设计 #### 一、键盘基础知识 ##### 1.1 键盘开关及扫描矩阵 传统的键盘设计中,按键通常按照国际标准通用键盘布局排列,形成一个矩阵结构。这种矩阵一般不超过8行和20列。每个按键位于某一行和某一列的交叉点上。当一个键被按下时,其所在的行线和列线会短接,从而改变这两根线上的电位。通过这种方式,键盘能够检测到哪些键被按下。 ##### 1.2 计算机标准键盘控制器 现代键盘内部通常包含一个微控制器,用于监测键盘按键的状态变化。当有按键被按下或释放时,微控制器会向主机发送相应的信号。控制器通过逐次给键盘矩阵的列线施加零电平信号,并检测行线上的电平变化来实现这一功能。如果某个行线上的电平变为低,则表示该行与当前为零电平的列交汇处的按键被按下。 ##### 1.3 键盘电缆 键盘与主机之间的连接通常通过USB电缆实现。这种电缆内部包括四根导线:D+、D-、VBUS(电源)和地线。对于键盘电缆的要求相对较低,通常使用28AWG双绞线作为D+、D-差分信号线,30AWG线作为电源和地线。这些电缆无需额外的屏蔽措施。 #### 二、CY7C63413简介 CY7C63413是由Cypress Semiconductor公司生产的一款高性能8位RISC微控制器,内置USB串行接口引擎(SIE),专门针对USB应用进行了优化。这款微控制器只需要少量外部组件即可实现高性能、低成本的人机接口类计算机外部设备的设计,如键盘、鼠标等。 ##### 2.1 时钟电路 CY7C63413内置了时钟振荡器和PLL频率倍增器。当外接6MHz的陶瓷振荡器时,RISC内核的工作频率可达12MHz。 ##### 2.2 SIE(Serial Interface Engine) SIE负责处理USB通信中的数据包编码和解码任务。在接收数据模式下,SIE自动完成USB数据包的解码并将数据传输到端点内的FIFO RAM中,然后触发中断请求,调用相应的中断服务程序。在发送数据模式下,SIE自动完成数据打包并从端点发送出去。 ##### 2.3 通用I/O口 CY7C63413提供了32个通用I/O线,分为4个端口(PORT0至PORT3)。其中PORT0、PORT1和PORT2可以提供较低的电流驱动能力,最大吸收电流的典型值为7mA;而PORT3的最大吸收电流可以达到12mA,适合驱动LED灯。每个I/O线都可以向RISC内核提出中断请求,中断极性可以通过通用I/O配置寄存器设置。中断请求是否有效还需要通过中断允许寄存器的相关位进行控制。 ##### 2.4 上电模式 CY7C63413支持两种上电复位操作:上电后挂起和上电后运行。通过PORT3的17脚接不同的电阻值可以选择这两种模式。上电后挂起模式常用于USB产品中,而上电后运行模式则适用于PS/2键盘等应用。 #### 三、硬件电路设计 图1展示了基于CY7C63413的USB键盘的硬件电路设计。在这个设计中,PORT2配置为内部上拉电阻,作为键盘矩阵的八根行输入线;而PORT0、PORT1和PORT3同样配置为上拉电阻,作为20根列输出线。三个LED指示灯(Numlock、Capslock及Scrolllock)连接到PORT3的低三位。未使用的端口在芯片内部都有上拉电阻到Vcc。在没有按键被按下时,行线始终保持高电平;当有键按下时,与该键相关的行线和列线电平变为低。 ### 结论 USB键盘的设计主要依赖于高性能的微控制器,如CY7C63413。这种微控制器不仅集成了USB SIE,还具有丰富的I/O资源,能够满足USB键盘对于低成本和高性能的需求。通过合理的硬件设计,可以实现高效、可靠的USB键盘解决方案。
- lsn1102012-10-27学习一下 自己做一个机械键盘
- 粉丝: 3
- 资源: 22
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助