基于51单片机的USB键盘设计与实现本科生毕业论文

上传人:仙*** 文档编号:100929637 上传时间:2022-06-04 格式:DOC 页数:57 大小:670.50KB
收藏 版权申诉 举报 下载
基于51单片机的USB键盘设计与实现本科生毕业论文_第1页
第1页 / 共57页
基于51单片机的USB键盘设计与实现本科生毕业论文_第2页
第2页 / 共57页
基于51单片机的USB键盘设计与实现本科生毕业论文_第3页
第3页 / 共57页
资源描述:

《基于51单片机的USB键盘设计与实现本科生毕业论文》由会员分享,可在线阅读,更多相关《基于51单片机的USB键盘设计与实现本科生毕业论文(57页珍藏版)》请在装配图网上搜索。

1、本科生毕业设计(论文)题 目 基于51单片机的USB键盘设计与实现 毕业设计(论文)原创性声明和使用授权说明原创性声明本人重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作与取得的成果。尽我所知,除文中特别加以标注和致的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得与其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了意。作 者 签 名:日 期:指导教师签名: 日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和

2、电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部容。作者签名: 日 期:学位论文原创性声明本人重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定

3、,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日注意事项1.设计(论文)的容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少

4、于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体与大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原

5、文(复印件)次序装订3)其它摘 要 随着计算机技术的不断更新和多媒体技术的快速发展,传统的计算机外设接口因为存在许多缺点已经不能适应计算机的发展需要。比起传统的AT,PS/2,串口,通用串行总线USB,具有速度快,使用方便灵活,易于扩展,支持即插即用,成本低廉等一系列优点,得到了广泛的应用。本论文阐述了51系列单片机和USB的相关容,详细介绍了系统的一些功能设计,包括硬件设计和软件设计。在程序调试期间用简单的串口通信电路,通过串口调试助手掌握了USB指令的传输过程,这对整个方案的设计起到了很大的指导作用。论文以单片机最小系统配合模拟键盘组成的USB键盘硬件系统,通过对D12芯片的学习与探索,在

6、其基本命令接口的支持下,结合硬件进行相应的固件程序设计,使其在USB协议下,实现USB模块与PC的数据通信,完成USB键盘的功能模拟。总结论文研究工作有阐述USB总线的原理、对本设计的系统要求作出了分析、根据要求选定元件和具体编程方案、针对系统所要实现的功能对相关芯片作了详细介绍以与在硬件部分设计了原理图。关键词:USB;D12;PCAbstractWith the rapid development of computer technology and multimedia technology constantly updated, traditional computer periphe

7、ral interface because there are many shortcomings have been unable to meet the development needs of the computer pared to traditional AT, PS / 2, serial, Universal Serial Bus USB, with fast, flexible and easy to use, easy to expand, support Plug and Play, a series of advantages, such as low cost, ha

8、s been widely used.This paper describes the 51 series and USB related content, detailing some of the features of the system design, including hardware and software design.During debugging a simple serial communication circuit, through the serial port debugging assistant master USB transfer instructi

9、ons, which designed the entire program has played a significant role in guiding.Thesis smallest single-chip system consisting of analog keyboard with a USB keyboard hardware system, by learning and exploration D12 chips, with the support of its basic command interface, in conjunction with the corres

10、ponding hardware firmware design, making it in the USB protocol, USB module data communication with the PC, the USB keyboard to complete the functional simulation. This paper summarizes research work has elaborated the principle of the USB bus, the system is designed to require the analysis, compone

11、nts and solutions based on the specific requirements of the selected programming for the system to achieve the function of the relevant chips are described in detail in the hardware part of the design as well as the principle of Figure.Keywords:USB;D12;PC49 / 57目 录第一章绪 论11.1 PC接口简介11.2 USB 接口分析11.3

12、USB 器件的选择1第二章系统分析32.1 USB总线简介32.2 USB技术指标32.3 USB系统构成4第3章系统硬件设计63.1 STC89C52单片机简介与最小系统63.1.1 单片机发展概况与发展方向63.1.2 单片机特点与结构63.1.3 复位电路设计83.1.4 单片机最小系统硬件设计93.2 PDIUSBD12接口芯片设计93.2.1 USB接口芯片简介93.2.2 USB接口芯片引脚配置113.2.3 USB接口芯片硬件设计143.2.4 USB接口芯片端点描述143.2.5 USB接口芯片命令163.3 USB键盘硬件设计18第4章系统软件设计194.1 固件编程的实现2

13、04.1.1 USB接口芯片工作流程图204.1.2 PDIUSBD12命令接口-PDIUSBD12.C214.1.3 USB中断服务程序-USBISR.C214.1.4 按键处理流程图214.1.5 USB键盘处理程序-KEY.C224.1.6 USB主循环程序-MAIN.C234.2 实物演示25结束语27致28参考文献29附录A30附录B37第一章绪 论1.1 PC接口简介PC中的接口有两类:串行接口和并行接口。计算机部总线,如CPU与存储器之间匀采用并行接口,这样速度快;但外设却以串行接口比较占优势。传统的打印机接口为并行接口。SCSI标准的全名是小型设备通用接口标准,其传输速率为10

14、M,早期的扫描仪一般使用此接口,硬盘与主机的联接也使用这种接口。串行接口出现最早,使用最广的RS232接口,但其速度太慢,现在已经逐渐被淘汰。USB接口和IEEE1394接口是两种速度比较高的串行接口,还有局域网中的以太网接口,它们具有较广阔的发展前景和应用潜力。USB适用于低档外设与主机之间的高速数据传输,USB1.1可以达到1.5Mbps或12Mbps的传输率,而1394更是可达100200400Mbps。USB2.0将速度定位在480Mbps,而IEEE1394也推出了1394b 1.3.1版草案,速度从800Mbps起步,最高可达3.2Gbps。局局域中用得最多的是以太网接口,速度可达

15、100Mbps,当使用光纤传输时,速度可达1000Mbps。1.2 USB 接口分析通用串行总线(Universal Serial Bus USB),是一种快速、灵活的总线接口。与其它通信接口比较,USB接口的最大特点是易于使用。作为一种高速总线接口,USB适用于多种设备,如数码相机、MP3播放机、高速数据采集设备等。易于使用还表现在USB接口支持热插拔,并且所有的配置过程都由系统自动完成,无需用户干预。USB接口支持1.5Mb/s(低速)、12Mb/s(全速)和高达480Mb/s的数据传输速率,扣除用于总线状态、控制和错误监测等的数据传输,USB的最论传输速率仍达1.2Mb/s或9.6Mb/

16、s,远高于一般的串行总线接口。USB接口芯片价格低廉,一个支持USB 1.1 规的USB接口芯片价格大多在人民币1530元之间,这也大大促进USB设备的开发与应用。1.3 USB 器件的选择在进行一个USB设备开发之前,首先要根据具体使用要求选择合适的USB控制器。目前,市场上供应的USB控制器主要有两种:带USB接口的单片机(MCU)或纯粹的USB接口芯片。带USB接口的单片机从应用上又可以分成两类,一类是从底层设计专用于USB控制的单片机另一类是增加了USB接口的普通单片机,如Cypress公司的EZUSB(基于8051),选择这类USB控制器的最大好处在于开发者对系统结构和指令集非常熟悉

17、,开发工具简单,但对于简单或低成本系统。但价格因素也是在实际选择过程中需要考虑的因素。纯粹的USB 接口芯片仅处理USB通信,必须有一个外部微处理器来进行协议处理和数据交换。典型产品有Philips公司的PDIUSBD11(I2C接口)、PDIUSBD12(并行接口),NS公司的USBN9603/9604(并行接口),NetChip公司的NET2888 等。USB接口芯片的主要特点是价格便宜、接口方便、可靠性高,尤其适合于产品的改型设计(硬件上仅需对并行总线和中断进行改动,软件则需要增加微处理器的USB中断处理和数据交换程序、PC机的USB接口通信程序,无需对原有产品系统结构作很大的改动)。第

18、二章系统分析2.1USB总线简介USB是一种支持在USB主机和USB设备之间进行串行数据传输的通信协议。主机作为总线的主叫方,采用两种信令模式:全速模式12Mb/s和低速模1.5Mb/s。USB使用四种数据传输方式:控制传输(control)、中断传输(interrupt)、批量传输(bulk)与等时传输(isochronous)。Intel公司开发的通用串行总线架构(USB)的目的主要基于以下三方面考虑:一、计算机与之间的连接显然用计算机来进行计算机通信将是下一代计算机基本的应用。机器和人们的数据交互流动需要一个广泛而又便宜的连通网络。然而,由于目前产业间的相互独立发展,尚未建立统一标准,而

19、USB则可以广泛的连接计算机和。二、易用性众所周知,PC机的改装是极不灵活的。对用户友好的图形化接口和一些软硬件机制的结合,加上新一代总线结构使得计算机的冲突大量减少,且易于改装。但以终端用户的眼光来看,PC机的输入/输出,如串行/并行端口、键盘、鼠标、操纵杆接口等,均还没有达到即插即用的特性,USB正是在这种情况下问世的。三、端口扩充外围设备的添加总是被相当有限的端口数目限制着。缺少一个双向、价廉、与外设连接的中低速的总线,限制了外围设备(如/电传/调制解调器的适配器、扫描仪、键盘、PDA)的开发。现有的连接只可对极少设备进行优化,对于PC机的新的功能部件的添加需定义一个新的接口来满足上述需

20、要,USB就应运而生。它是快速、双向、同步、动态连接且价格低廉的串行接口,可以满足PC机的发展现状和未来需要。码主要存储在单片机中,通过单片机中的软件代码运行后,通过各个管脚的控制外围辅助电路的运行以实现系统的功能。复位电路是保证系统安全运行的基础,由于单片机的运行环境无法确定,无法保证单片机在长时间的运行过程中能够一直保证系统的稳定性,复位电路就是在单片机无常运行后,软复位无法进行复位的情况下,能够保证系统能够重新启动2.2USB技术指标USB最大的特点是支持热插拔(Hot plug)和即插即用 (Plug&Play)。当设备插入时,主机枚举(enumerate)此设备并加载所需的驱动程序,

21、因此使用远比PCI和ISA总线方便 。目前USB支持3种数据信号速率,USB设备应该在其外壳或者有时是自身上正确标明其使用的速率。(1)1.5 Mbit/s (183 KByte/s) 的低速速率,主要用于人机接口设备(Human Interface Devices ,HID)例如键盘、鼠标、游戏杆。(2)12 Mbit/s (1.4 MByte/s)的全速速率,在USB 2.0之前是曾经是最高速率,后起的更高速率的高速接口应该兼容全速速率。多个全速设备间可以按照先到先得法则划分带宽,使用多个等时设备时会超过带宽上限也并不罕见。所有的USB Hub支持全速速率。(3)480 Mbit/s (5

22、7 MByte/s)的高速速率。并非所有的USB 2.0设备都是高速的。高速设备插入全速hub时应该与全速兼容,而高速hub具有所谓Transaction Translator(事务翻译器)功能,能够隔离全速、低速设备与高速之间数据流,但是不会影响供电和串联深度。2.3 USB系统构成USB系统主要由三部分组成,即宿主(host),USB设备(device)和USB连接。一、USB宿主USB宿主(host)是一个带有USB主控制器的PC机或者嵌入式系统,在USB系统中只有一个宿主,它是USB系统的主控者。USB宿主主要用于产生并且管理控制信号和数据流,检测并处理总线上的各种活动的状态,并为总线

23、上的USB设备提供能源。USB宿主存在于主机系统中,它包括硬件,软件部分。其中,硬件部分指的是USB宿主控制器,一般集成在主板上,受USB系统软件的控制。软件部分分为三部分,分别是:1. USB设备驱动程序(USB Device Drivers)通过I/O请求包发出给USB设备的请求,而这些I/O请求包则完成对目标设备传输的设置。2. USB驱动程序(USB Driver)在设备设置时读取描述寄存器以获取USB设备的特征,并根据这些特征,在请求发生时组织数据传输。3. 主控制器驱动程序(Host Controller Driver)完成对USB交换的调度,并通过根集线器或其它的集线器完成对交换

24、的初始化。二、USB设备USB设备用于完成特定的功能,它具有极强的扩充性,能以一种星型+级联的方式连接起来,USB宿主可以根据USB设备的动态增减,对其进行动态配置。USB设备是实现某种具体功能的硬件设备,如键盘,鼠标和摄像头等。USB功能器件作为USB外设,它必须保持和USB协议的完全兼容,并可以响应标准的USB操作。同样,用于表明自己身份的“BIOS”系统对于USB外设也是必不可少的,这在USB外设上被称为协议层。在物理机制上,一个USB外设可以由四部分构成:(1)用于实现和USB协议兼容的SIE部分。(2)用于存特征字,存储实现外设特殊功能程序与厂家信息的协议ROM(3)用于实现外设功能

25、的传感器与对资料进行简单处理的DSP部分(4)将外设连接到主机或USB Hub的接口部分。根据传输率的不同,USB功能器件被分为高速和低速两种。低速外设的标准传输率为1.5Mbps,而高速外设的标准传输率为12Mbps。例如鼠标,键盘等交互式设备就是低速设备运行,而打印机,扫描仪就使用全速设备模式运行。三、USB连接(数据流)USB连接实际上是指USB器件和USB主机连接并进行通信的方法,它可以将存在于USB主机和USB设备之间的USB数据传输模型描述为一个管道(pipe),管道只是一个逻辑上的概念。USB系统软件通过缺省管道(与端点0相对应)管理设备,设备驱动程序通过其它的管道来管理设备的功

26、能接口。实际的数据传输过程是:设备驱动程序通过对USBD接口(USB driver interface)的调用发出输入输出请求(IRP I/O Request Packet), USB驱动程序接到请求后调用HCD接口(host controller driver interface)将IRP转化为USB的传输(transfer),一个IRP可以包含一个或多个USB传输,然后HCD将USB传输分解为总线操作(transaction),由主控制器以包(packet)的形式发出。需要注意的是所有的数据传输都是由主机开始的,任何外设都无权开始一个传输。IRP是由操作系统定义的,而USB传输与总线操作是

27、USB规定义的。USB总线将1ms定义为一帧,每帧以一个SOF包为起始,在这1ms里USB进行一系列的总线操作,引入帧的概念主要是为了支持与时间有关的总线操作。为了满足不同外设和用户的要求 USB 提供了四种传输方式:控制传输,同步传输,中断传输,批传输。它们在数据格式,传输方向,数据包容量限制,总线访问限制等方面有着各自不同的特征。 第3章系统硬件设计3.1STC89C52单片机简介与最小系统随着电子技术的迅速发展,特别是随着大规模集成电路产生而出现的微型计算机,给人类生活带来了根本性的改变。单片微型计算机简称单片机。它是把组成微型计算机的各功能部件像中央处理器CPU、随机存取存储器RAM、

28、只读存储器ROM、I/O接口电路、定时器/计数器以与串行通讯接口等部件制作在一块集成芯片中,构成一个完整的微型计算机。由于它的结构与指令功能都是按照工业控制要求设计的,故又叫单片微控制器。3.1.1 单片机发展概况与发展方向 单片机的出现使现代科学技术研究得到了质的飞跃,可以毫不夸地说,它给现代工业领域带来了一次新的技术革命。目前,单片机以其高可靠性、高性能价格比,在工业控制系统、智能化仪器仪表、办公自动化、日常生活用品等诸多领域得到极为广泛的应用。由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机。早期单片机大多结构体系,指令复杂,指令代码、

29、周期数不统一、指令运行很难实现流水线操作,大大阻碍了运行速度的提高。虽然单片机对运行速度要求远不如通用计算机系统或数字信号处理对指令运行速度的要求,但速度的提高会带来许多好处,并拓宽单片机应用领域。一方面可获得很高的指令运行速度,另方面,在一样的运行速度下,可大大降低时钟频率,有利于获得良好的电磁兼容效果。专用单片机是专门针对某一类产品系统要求而设计的。使用专用单片机可最大限度地简化系统结构,使资源利用效率最高。在大批量使用时有可观的经济效益和可靠性效益。专用单片机发展的基础是半导体集成工艺和微电子设计技术。采用模块化标准单元的快速设计与快速半导体集成工艺,将加速专用单片机的发展。3.1.2

30、单片机特点与结构 本系统采用STC89C52单片机,它是一种低电压、低功耗、高性能微控制器,具有 8K 字节可编程可擦出只读存储器。使得STC89C52为众多控制应用系统提供高灵活、超有效的解决方案。它与MCS51指令系统兼容。STC89C52是一个功能强大的单片机,但它只有40个引脚,其中P1是一个完整的8位双向I/O口,此外,从STC89C52部结构图也可看出,其部结构与8051部结构基本一致,引脚RST、XTAL1、XTAL2的特性和外部连接电路也完全与51系列单片机相应引脚一致.如图3.1所示。1 402 393 384 375 366 357 348 339 3210 3111 30

31、12 2913 2814 2715 2616 2517 2418 2319 2220 21VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0 P1.0 P1.1 P1.2P1.3P1.4P1.5P1.6P1.7RST(RXD) P3.0(TXD) P3.1(INT0) P3.2(INT1) P3.3(T0) P3.4(T1) P3.5(WR) P3.6(RD)P3.7XTAL1XTAL2GND图3.1单片机引脚图引脚功能说明如下:VCC:供电电源。GND:电路地。P0口(P0

32、.0P0.7):为双向8位IO端口。当作为IO口使用时,可直接连接外部IO口设备,由于部没有上拉电阻,故要接上拉电阻。它是地址总线低8位与数据总线分时复用口,可以驱动8个TTL负载。一般作为扩展时的地址数据总线口使用。当P0口作为地址/数据复用时不用接上拉电阻。P1口(P1.0P1.7):为8位准双向IO口,它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必须置1),可以驱动4个TTL负载。P2口(P2.0P2.7):为8位准双向IO口,当作为IO口使用时,可直接连接外部IO设备,可驱动4个TTL负载。一般作为扩展时地址总线的高8位复用口。P3口(P3.03.7):为8位准双向I

33、O口,可驱动4个TTL负载,是双功能复用口,它的另一功能如表所示。RST:复位输入。RST一旦变成高电平,所有的I/O引脚就复位到“1”。当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。复位后应使此引脚电平为0.5V的低电平,以保证单片机的正常工作。 XTAL1:作为振荡器反相放大器的输入和部时钟发生器的输入。 XTAL2:作为振荡器反相放大器的输出。此外,从STC89C52部结构图也可看出,其部结构与8051单片机部结构基本一致,引脚RST、XTAL1、XTAL2的特性和外部连接电路也完全与51系列单片机相应引脚一致。3.1.3

34、 复位电路设计在上电或复位过程中控制CPU的复位状态,这段时间让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令,执行错误操作,也可以提高电磁兼容性能。无论使用哪种类型的单片机,总要涉与到单片机复位电路的设计。而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。单片机在启动时都需要复位,以使CPU与系统各部件处于确定的初始状态,并从初态开始工作。51系列单片机的复位信号是从RST引脚输入到芯片的触发器中的。当系统处于正常工作

35、状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位,如图3.2图3.3所示。C31uF10kVCCRESETVCCRSTGNDVCCSTC89C521uF10k图3.2手动按钮复位电路图3.3上电复位电路 上电复位:STC89C52的上电复位电路如图所示,RST引脚是复位信号的输入端,在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。只要高电平的复位信号持续两个机器周期以上的有效时间,就可以使单片机上电复位。上电复位的工作过程是在加电时,复位电路通过电容加给R

36、ST端一个短暂的高电平信号,RST端电位与Vcc一样,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,在图2的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。 手

37、动按钮复位:手动按钮复位需要人为在复位输入端RST上加入高电平(如图所示)。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的要求。3.1.4 单片机最小系统硬件设计图3.4单片机最小系统硬件原理图3.2 PDIUSBD12接口芯片设计3.2.1 USB接口芯片简介 用于USB设备开发的芯片通常有两种:一种是带USB接口的微控制器,另一种是纯粹的USB接口芯片,需要外部微控制器(MCU)控制。PHILIPS公司的PDIUSBD12芯片

38、属于后者。本文对此芯片的应用作了具体设计,以PDIUSBD12为接口芯片,以STC89C52为微控制器,完成了USB接口电路的设计。PDIUSBD12是一款性价比很高的USB器件,它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口,它还支持本地的 DMA传输。这种实现USB接口的标准组件使得设计者可以在各种不同类型微控制器中选择出最合适的微控制器。这种灵活性减小了开发的时间,风险以与费用,通过使用已有的结构和减少固件上的投资,从而用最快捷的方法实现最经济的USB外设的解决方案。 PDIUSBD12完全符合USB1.1版的规,它还符合大多数器件的分类规格:成像类,海量存储器件,通信

39、器件,打印设备以与人机接口设备。同样地 PDIUSBD12 理想地适用于许多外设。PDIUSBD12的 技术可提供良好的USB连接指示。在枚举中LED指示根据通信的状况间歇闪烁。当PDIUSBD12成功地枚举和配置后LED指示将一直点亮,随后与PDIUSBD12 之间成功的传输(带应答)将关闭LED,处于挂起状态时,LED 将会关闭。 该特性为USB 器件,集线器和USB通信状态提供了用户友好的指示。作为一个诊断工具,它对隔离故障的设备是很有用的。从系统测试中也可以看见该指示LED间歇闪烁,很好的验证了这一特性。PDIUSBD12部包括模拟收发器、电压调整器、PLL、 Philips串行接口引

40、擎(PSIE)等。1、模拟收发器:集成的收发器接口可通过终端电阻直接与 USB 电缆相连。 2、电压调整器:片集成了一个 3.3V 的调整器用于模拟收发器的供电,该电压还作为输出连接到外部 1.5k的上拉电阻,可选择 PDIUSBD12提供的带 1.5k部上拉电阻的软件连接技术。 3、PLL:片集成了6M到48M时钟乘法PLL,这样就可使用低成本的6M晶振,EMI也随之降低。PLL的工作不需要外部元件。 4、位时钟恢复:位时钟恢复电路使用4X过采样规则,从进入的USB数据流中恢复时钟,它能跟踪 USB 规定围的抖动和频漂。 5、Philips 串行接口引擎(PSIE):Philips SIE实

41、现了全部的USB协议层,完全由硬件实现而不需要固件的参与。该模块的功能包括:同步模式的识别,并行/串行转换,位填充/解除填充,CRC校验/产生,PID校验/产生,地址识别和握手评估/产生。 6、 :与 USB 的连接是通过1.5k上拉电阻将D+(用于高速USB器件)置为高实现的。1.5k上拉电阻集成在PDIUSBD12 片,默认状态下不与 VCC 相连。连接的建立通过外部/系统微控制器发送命令来实现。这就允许系统微控制器在决定与 USB 建立连接之前完成初始化时序。USB总线连接可以重新初始化而不需要拔出电缆。 PDIUSBD12在连接可以建立之前会检测USB VBUS是否可用。VBUS可通过

42、 EOT_N 管脚进行检测。具体参阅管脚描述一节。需要注意的是,部电阻的误差(25%)大于USB规格的5% .但用于连接的VSE 电压规格仍然有足够的余量。 是Philips半导体一项尚未获批准的专利技术。 7、 :技术可提供良好的USB连接指示。在枚举中LED指示根据通信的状况间歇闪烁。当PDIUSBD12成功地枚举和配置后LED指示将一直点亮,随后与PDIUSBD12 之间成功的传输(带应答)将关闭LED,处于挂起状态时,LED 将会关闭。 该特性为USB 器件,集线器和USB通信状态提供了用户友好的指示。作为一个诊断工具,它对隔离故障的设备是很有用的。该特性降低了现场支持和热线的成本。

43、8、存储器管理单元(MMU)和集成(RAM):以 12M/s的速率传输并与微控制器并口相连时,MMU和集成RAM作为USB 之间速度差异的缓冲区。这就允许微控制器以自己的速率对USB信息包进行读写。9、并行和 DMA接口:一个普通的并行接口定义成易于使用,快速而且可以与主流的微控制器直接接口。对一个微控制器而言,PDIUSBD12看起来就象一个带8位数据总线和一个地址位,占用2个位置的存储器件。PDIUSBD12支持多路复用和非复用的地址和数据总线,还支持主端点与本地共享RAM之间直接读取的 DMA传输。支持单周期和突发模式的DMA传输。3.2.2 USB接口芯片引脚配置PDIUSBD12芯片

44、采用TSSOP28塑料极小型封装,一共28个引脚,本体宽度为4.4mm。图3.5芯片引脚配置下面对其引脚和命令字作具体说明。表3.6 PDIUSBD12芯片引脚说明管脚符号类型描述1DATAIO2双向数据位02DATAIO2双向数据位13DATAIO2双向数据位24DATAIO2双向数据位35GNDP地6DATAIO2双向数据位47DATAIO2双向数据位58DATAIO2双向数据位69DATAIO2双向数据位710ALEI在多路地址/数据总线中,下降沿关闭地址信息锁存。将其固定为低电平用于单地址/数据总线配置11CS_NI片选(低有效)12SUSPENDI,OD4器件处于挂起状态13CLKO

45、UTO2可编程时钟输出14INT_NOD4中断(低有效)15RD_NI读选通(低有效)16WR_NI写选通(低有效)17DMREQO4DMA请求18DMACK_NIDMA应答(低有效)19EOT_NIDMA传输结束(低有效)。EOT_N仅当DMACK_N和RD_N或WR_N一起激活才有效20RESET_NI复位(低有效且不同步)。片上电复位电路,该管脚可固定接VCC21GL_NOD8GoodLinkLED指示器(低有效)22XTAL1I晶振连接端1(6MHz)23XTAL2O晶振连接端2(6MHz)。如果采用外部时钟信号取代晶振,可连接XTAL1,XTAL2应当悬空24VCCP电源电压(4.0

46、V-5.5V),要使器件工作在3.3V,对VCC和脚都提供3.3V25D+AUSB D-数据线26D-AUSB D+数据线27P3.3V调整输出。要使器件工作在3.3V,对VCC和脚都提供3.3V28A0I地址位。A0=1选择命令指令,A0=0选择数据。该位在多路地址/数据总线配置时应接高电平随着科技的发展,芯片集成度越来越高,封装也变得越来越小,PDIUSBD12芯片不是采用标准DIP直插的引脚,因而需要有一个SOP转DIP的转接板,这样方便采用电路板设计硬件电路,同时也方便程序下载完成后系统的调试。即使有了转接板,采用贴片封装的PDIUSBD12芯片也需要手工焊接在转接板上,这一点需要特别

47、注意,不能长时间焊接,以免芯片过热以致损坏。PDIUSBD12与一般需要提供时钟信号的芯片不同,该芯片需要标准的6MHz的时钟信号,因而采用晶振的时候需要特别注意,不能随意选择,这一点与51系列单片机能有选择的采用晶振的情况不同。芯片部有各个寄存器,根据寄存器相关命令编写C语言程序(可以采用由局部到整体的方法),这样对USB传输协议的认识更清楚,程序流程也容易理解,脉络清晰。在程序中,Main函数作为程序设备Reset时的程序入口,调用了一些初始化设备的函数,比如各种寄存器如中断寄存器,定时器,计数器等,初始化D12芯片并完成连接等工作,然后程序进入循环等待阶段,等待着中断的发生。由于没有采用

48、PCB制板,手工焊接要十分注意电源干扰的问题,电源和地之间要加上滤波电容。USB接口芯片与单片机之间的引线要尽量短,本设计采用并行传输,数据传输占用了8个IO口,个引脚连线要尽量平行,避免交叉,以免信号线相互干扰,造成数据传输不争取或者USB总线不能正常复位。PDIUSBD12芯片的GoodLinkLED指示器短接普通发光二极管时,要注意连接限流电阻,不能超过该芯片的输入电流额定值,否则可能造成芯片工作不正常,并且与电脑或者其他USB Host 芯片不能正常建立连接。对该芯片的各个管脚和具体功能建立了一定认识的基础上,就能顺利完成各部分硬件电路的设计和软件功能调试。3.2.3 USB接口芯片硬

49、件设计图3.7 PDIUSBD12接口原理图3.2.4 USB接口芯片端点描述PDIUSBD12 的端点适用于不同类型的设备,例如图像 打印机 海量存储器和通信设备端点可通过Set Mode 命令配置为 4 种不同的模式,分别为:表3.8 端点模式模式 0Non-ISO 模式非同步传输 模式 1ISO-OUT模式同步输出传输 模式 2ISO-IN 模式同步输入传输 模式 3ISO-IO 模式同步输入输出传输4种模式具体说明见下表:表3.9 模式0(非同步模式)端点数端点索引传输类型端点类型方向最大信息包规格(字节)001控制输出控制输入默认默认输出输入1616123普通输出普通输入普通普通输出

50、输入1616245普通输出普通输入普通普通输出输入表3.3 模式1(同步输出模式)端点数端点索引传输类型端点类型方向最大信息包规格(字节)001控制输出控制输入默认默认输出输入1616123普通输出普通输入普通普通输出输入161624同步输出同步输出表3.4 模式2(同步输入模式)端点数端点索引传输类型端点类型方向最大信息包规格(字节)001控制输出控制输入默认默认输出输入1616123普通输出普通输入普通普通输出输入161624同步输入同步输入表3.5 模式3(同步输入/输出模式)端点数端点索引传输类型端点类型方向最大信息包规格(字节)001控制输出控制输入默认默认输出输入1616123普通

51、输出普通输入普通普通输出输入1616245同步输出同步输入同步同步输出输入表格说明:主端点(端点2)在有些方面是比较特别的,它是进行吞吐大数据的主要端点,同样地它执行主机的特性以减轻传输大数据的任务: 1、双缓冲,允许USB与本地CPU之间的并行读写操作,这样就增加了数据的吞吐量缓冲区切换是自动处理的,这导致了透明的缓冲区操作。 2、支持DMA(直接存储器访问)操作,可以和对其它端点的正常 I/O 操作交叉进行。 3、DMA操作中的自动指针处理。在跨过缓冲区边界时不需要本地CPU的干预。 4、可配置为同步传输或非同步(批量和中断)传输。3.2.5 USB接口芯片命令系对一个具体的USB接口芯片

52、,需要根据其相关寄存器或者命令字来驱动。下表指出了PDIUSBD12芯片的命令字:表3.10 PDIUSBD12命令字说明命令名接受者编码数据初始化命令设置地址/使能器件D0H写1字节设置端点使能器件D8H写1字节设置模式器件F3H写2字节设置DMA器件FBH写/读1字节数据流命令读中断寄存器器件F4H读2字节选择端点控制输出00H读1字节(可选)控制输入01H读1字节(可选)端点1输出02H读1字节(可选)端点1输入03H读1字节(可选)端点2输出04H读1字节(可选)端点2输入05H读1字节(可选)读最后处理状态控制输出40H读1字节控制输入41H读1字节端点1输出42H读1字节端点1输入

53、43H读1字节端点2输出44H读1字节端点2输入45H读1字节读缓冲区选择的端点F0H读N字节写缓冲区选择的端点F0H写N字节设置端点状态 控制输出40h写1字节 控制输入41h写1字节端点1输出42h写1字节端点1输入43h写1字节端点2输出44h写1字节端点2输入45h写1字节 应答设置选择的端点F1H无缓冲区清零选择的端点F2H无使缓冲区有效选择的端点FAH无普通命令发送回复F6H无读当前帧数目F5H读1或2字节3.3 USB键盘硬件设计图3.11 USB键盘硬件原理图第4章系统软件设计单片机开发中除必要的硬件外,同样离不开软件,汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种

54、是手工汇编,另一种是机器汇编,机器汇编是通过汇编软件将源程序变为机器码。随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。Keil软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到其生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开

55、发大型软件时更能体现高级语言的优势。本设计采用的开发环境为Keil uVision4,开发语言为C语言。C语言是一个通用的编程语言,它提供高效的代码,结构化的编程和丰富的操作符。C不是一种大语言,不是为任何特殊应用领域而设计。它一般来说限制较少,可以为各种软件任务提供方便和有效的编程。许多应用用C比其他语言编程更方便和有效。与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。软件设计部分主要是要处理好按键扫描和USB接口芯片的数据传输问题,按键扫描部分利用单片机监测处理,实时性好。以下为各部分软件设计的详细介绍。4.1 固件编程的实现4.1.1USB接口芯片工作

56、流程图开始初始化按键和定时器连接USB等待USB中断N有中断事件发生?Y判断中断类型转中断处理N有按键事件发生?Y发送USB数据包图4.1USB接口芯片工作流程图4.1.2 PDIUSBD12命令接口-PDIUSBD12.C详细程序见附录A。4.1.3USB中断服务程序-USBISR.C详细程序见附录B。4.1.4 按键处理流程图开始5ms中断时间到读取键值Y按键与上次一样?NN判断模式正确?Y键值处理YUSB接口忙?N发送按键值图4.2按键处理流程图4.1.5USB键盘处理程序-KEY.C/*函数功能:定时器0中断处理。入口参数:无。返 回:无。备 注:22.1184M晶体约5ms中断一次。

57、*/void Timer0Isr(void) interrupt 1 /定时器0重装,定时间隔为5ms,加15是为了修正重装所花费时间/这个值可以通过软件仿真来确定,在这里设置断点,调整使两次运行/时间差刚好为5ms即可。TH0=(65536-Fclk/1000/12*5+15)/256; TL0=(65536-Fclk/1000/12*5+15)%256; / if(!KeyCanChange)return; /如果正在处理按键,则不再扫描键盘 /开始键盘扫描 /保存按键状态到当前按键情况 /KeyCurrent总共有8个bit /当某个开关按下时,对应的bit为1KeyCurrent=Ge

58、tKeyValue(); /读取键值,GetKeyValue()其实是个宏,不是函数, /这里故意写成函数的样子,美观。它的定义在 /key.h文件中 if(KeyCurrent!=KeyOld) /如果两次值不等,说明按键情况发生了改变 KeyNoChangedTime=0; /键盘按下时间为0 KeyOld=KeyCurrent; /保存当前按键情况return; /返回 else KeyNoChangedTime+; /按下时间累计 if(KeyNoChangedTime=1) /如果按下时间足够 KeyNoChangedTime=1; KeyPress=KeyOld; /保存按键 KeyDown|=(KeyLast)&(KeyPress); /求出新按下的键 KeyUp|=KeyLast&(KeyPress); /求出新释放的键 KeyLast=KeyPress; /保存当前按键情况 4.1.6USB主循环程序-MAIN.C主函数部分程序代码:/*

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!