一种用于嵌入式系统USB键盘控制接口电路设计.docVIP

一种用于嵌入式系统USB键盘控制接口电路设计.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文档。上传文档
查看更多
一种用于嵌入式系统USB键盘控制接口电路设计

一种用于嵌入式系统的USB键盘控制接口电路设计   【摘 要】本文介绍了一种基于STM32的可定制的USB键盘控制接口电路,与传统键盘方案进行了比较,介绍了电源部分、USB接口部分的设计,针对矩阵键盘多按键的特殊需求,对基本按键提出了改进思路及软件识别方法,在嵌入式系操作系统如WINCE、LINUX上有较高的通用性和灵活性。   【关键词】STM32;USB接口;矩阵键盘;多按键   0 引言   随着科技的不断进度与发展,嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一,像常见到的手机、PDA、机顶盒、高清电视(HDTV)、路由器、汽车电子、智能家电、医疗仪器、航天航空设备等都是典型的嵌入式系统。   嵌入式系统中人机交互技术最为重要,WINCE和LINUX系统比较流行,然而这两种系统的驱动开发门槛较高,尤其对于特殊的矩阵键盘而言,实现基于USB接口的控制电路具有一定的难度。本文设计了一种基于STM32的可定制的USB键盘控制电路,比一般的专用的USB键盘接口芯片更加简单方便,利用软件的可以进行灵活的修改,大大的提高矩阵键盘的通用性。   1 方案比较   传统方案:标准的PC104键盘大多采用专用的USB键盘芯片(如MC178-04B),其价格便宜而被广泛运用,但是其接口比较固定,不利于开发者自己定制,例如按键连发、多键识别(A,E同时按下)等特定的功能需求,传统方案的缺陷就慢慢的凸显出来了。   本文设计的方案:运用带USB接口功能的MCU(STM32F103ZET芯片)制作USB HID设备,根据矩阵键盘设计键码扫描程序,可以完美的解决类似于上面的需求,同时STM32的芯片的性价比高、开发简单,适合一般的嵌入式开发工程师。   2 系统的硬件设计(图1)   系统总共分为5部分:系统供电部分,JTAG调试接口,矩阵键盘模块,USB从设备接口,STM32F103ZET芯片内部包含AD模块,为了能够使系统能够正常运行,尽管AD模块未使用,设计时应给予相应正常供电,使引脚VREF+、VDDA接VCC,引脚VREF-、VSSA接GND,否则系统不能正常运行。   2.1 电源部分   系统供电部分采用LT1117三端可调线性稳压芯片,输出电流可达800mA,采用SOT-223封装以减小空间,输入端和输出端分别接入100nF和10uF电容进行滤波降低电压纹波,最终使电压稳定到3.3V。   2.2 USB 模块接口电路设计(图2)   根据USB1.1官方协议可知,USB为主从设备区分是有硬件电路实现的,USB HID设备属于从设备,USB上拉电压接在D+线上,所以本设计USB实现全速通讯。当开关开启时,嵌入式系统就能自动开始枚举该USB设备。   2.3 矩阵键盘接口设计   传统的矩阵的键盘识别方法为扫描法和线反转法,只能识别单个按键,硬件电路设计如图3所示:   由上图可知当双按键按下时产生了线与逻辑冲突,对该设计进行改进,采用行线为开漏输出,列线上有10K的上拉电阻,当双按键按下时1和0线与产生0,这样有效的识别了双按键,如图4所示:   3 软件设计要点   3.1 USB键盘配置   USB通信协议中涉及了大量的描述符等相关信息其中包括设备描述符,配置描述符,接口描述符,HID描述符等,在STM32的库文件中给出了相关的框架hw_config.c usb_desc.c usb_istr.c usb_prop.c usb_pwr.c嵌入式开发者进行相关的框架填写便可进行正确的USB通信,USB键盘相关配置如下:   //开启相关时钟   /* Select USBCLK source */   RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);   /* Enable USB clock */   RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE);   //开启相关USB通信中断   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);   NVIC_InitStructure.NVIC_IRQChannel =   USB_LP_CAN_RX0_IRQChannel;   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;   NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;   NVIC_Ini

文档评论(0)

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

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

1亿VIP精品文档

相关文档