基于STC89C52单片机的USB鼠标的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(下转第129页)
基于STC89C52单片机的USB 鼠标的设计
任军首,汪世林
(安彩高科股份有限公司河南安阳455000)
【摘要】:基于USB 协议,以微控制器STC89C52为核心,控制USB 数据接收和发送电路,实现了USB 接口鼠标的设计方案。
从硬件搭建和软件设计出发,全面介绍了USB 鼠标的设计。
USB 鼠标具有高效性和方便性。
【关键词】:鼠标USB STC89C52USB 接口芯片主机HID 引言
USB ,是英文Universal Serial BUS (通用串行总线)的缩写,而其中文简称为"通串线,是一个外部总线标
准,用于规范电脑与外部设备的连接和通讯。
是应用在PC 领域的接口技术。
USB 接口支持设备的即插即用和热插拔功能。
USB 是在1994年底由英特尔、康柏、IBM 、Microsoft 等多家公司联合提出的。
传统的PS/2接口的鼠标不支持热拔插,实现更方便的USB 接口的鼠标有必要性。
本文介绍了一种基于USB 接口的鼠标的设计方案。
1.系统结构
系统由按键模块,微控制器模块,USB 接口芯片模块,三大部分组成。
从下位机到上位机,依次经过按键扫描,微控制器分析发送,USB 接口芯片发送等几个处理过程,实现USB 接口的鼠标功能。
系统硬件结构如图1所示。
2.系统的硬件设计
2.1微控制器芯片和USB 接口芯片的选择
在USB 鼠标的实现中,采用STC 公司的STC89C52芯片作为微控制器,USB 接口芯片采用Philips 半导体公司的一颗通用USB 接口芯片PDIUS -BD12。
STC89C52单片机包括8K 字节程序存储空间,512字节数据存储空间,内带2K 字节EEPROM 存储
空间。
之所以选用该单片机是因为它功能强大,有着易用的开发环境Keil C51并且国内有丰富的51资料。
PDIUSBD12芯片支持USB2.0的全速模式(12Mb/s ),具有软连接功能和数据流指示灯;它使用8位并行的数据口与MCU 连接,数字引脚兼容5V 逻辑电平;内置3.3V 稳压器,可直接使用5V 电源供电,也可以使
用3.3V 电源供电。
除了端点0,它还有两个额外的端点,每个端点都具有输出端点和输入端点,可以完美的作为USB 鼠标的接口芯片。
2.2系统硬件电路的连接
按键模块通过导线连接至微控制器的P1口,用来查询按键情况。
微控制器的P0口连接USB 接口芯片的数据引脚口D0至D7,实现数据的在微控制器和USB 接口芯片间的交换。
微控制器的P3.3脚接USB 接口芯片的A0脚,实现对数据或地址写入。
USB 接口芯片的INT_N 脚,与微控制器的P3.2脚相接,实现对中断事件的捕捉。
USB 接口芯片的差分数据线D+,D-通过标准的USB A 型插头与主机即PC 机相连,实现数据在主机和USB 接口芯片间的传递。
硬件原理图(部分)如图2所示
3.系统的软件设计
3.1USB 底层数据包收发的实现
根据PDIUSBD12的读写时序,编写PDIUSBD12的写命令函数D12WriteCommand (),读数据函数D12ReadByte (),写数据函数D12WriteByte ()。
再由这
些函数底层函数构造功能更加具体的函数,例如读端点缓冲函数D12ReadEndpointBuffer (),写端点缓冲函数D12WriteEndpointBuffer (),上位机即PC 与下位机即微控制器间的数据通讯就是通过这些具体的函数实现的。
图1系统硬件结构
图2硬件原理图(部分
)
(上接第107页)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3.2USB鼠标设备枚举过程的实现
设备枚举传递的数据是通过端点0传递的,因此需要在端点0输出中断处理函数中,完成设备枚举。
微处理器通过读端点缓冲函数D12ReadEndpointBuffer()读取主机发过来的数据,然后对数据进行多层散转处理,针对主机发来的不同类型的数据,做出相应的回应处理,完成USB鼠标设备的枚举过程。
3.3报告的发送
USB HID(人机接口设备)设备是通过报告(report)来传送数据的,报告有输入报告和输出报告。
输入报告是USB设备发送给主机的,输出报告是主机发送给USB设备的。
在设备枚举完成之后,USB设备便可以和主机进行通信,鼠标的操作引发相应的报告发送给主机,主机分析不同的报告,实现相应的鼠标操作。
报告的发送通过Sendreport()函数完成。
Sendreport函数通过对不同的按键信息的判断,发送不同的报告。
这样就从软件层面上实现了USB鼠标设备,软件流程图如图3所示。
结语
本文介绍了以STC89C52微控制器为核心,PDIUSBD12为USB接口芯片的USB鼠标的设计,使鼠标操作准确高效,同时和其他的USB设备一样,支持热拔插,非常方便用户使用。
参考文献:
[1]Compaq,Intel,Microsoft,NEC.Universal Serial Bus Specification [M].[S.L.].1998.
[2]PHILIPS.PDIUSBD12USB interface device with parallel bus [M].[S.L.].1999
[3]李朝青.单片机原理及接口技术[M].北京航空航天出版社. 2005
图3软件流程图
请求,跟踪学习的行为,包括学生点击的URL、搜索的关键字、学习时间和内容、浏览方式、作业完成情况和考试过程结果等。
然后将这些信息传送到个性化分析模块,进行个性分析、产生结果,更新学生个性数据库,同时把结果送到信息调度中心,调度中心根据个性化信息和学生请求,从学校资源库调用学生学习资源,满足学生个性化学习。
五、个性化教学系统实现
基于数据挖掘的个性化教学系统主要包括四大模块,模块功能如下:
1、人机交互界面
人机交互界面是人机交互的一个模块,通过自然语言处理和语义查询在系统和学生之间提供交互功能。
可以根据数据挖掘的结果不断更新界面。
2、数据收集模块
数据收集模块是个性化教学的基础,收集信息的质量与数量直接影响个性分析的质量,采集的学生信息包括学生浏览方式、学生的IP地址、访问的时间和频率、搜索关键词、答疑内容、考试结果等。
收集后送往数据处理模块处理。
3、数据处理模块
数据仓库中的数据是面向主题的而非面向应用的,数据在进入数据仓库之前必须经过加工与集成。
数据仓库中包含大量的历史数据,而且是不可更新的,同时数据仓库中的数据又是随时间变化的,不断增加新的数据、删除旧的数据。
数据仓库需要对学生数据进行提取和数据准备,以提高数据挖掘的速度。
4、数据分析模块(数据挖掘执行系统与数据挖掘规则库)
数据挖掘是整个系统的核心模块。
它对于数据仓库的数据从模型库中提取学生模型和挖掘算法模型进行处理。
在远程开放教育教学过程中,我们利用数据挖掘技术,挖掘学生学习的规律,动态地调整教学系统的结构,为学生定制个性化学习模式。
总之,数据挖掘技术的应用为开放教育教学系统的智能化、个性化提供了重要的技术手段。
参考文献:
[1]丁琳等,2002,《数据挖掘在远程教育个性化服务中的应用》,上海:电化教育研究。
[2]于宁等,2006,《高校教学决策支持系统数据仓库的研究与实现》,北京:计算机工程与设计。
[3]吴斌等,2009,《数据挖掘及其在远程教学中的应用》,河南:电脑知识与技术。