USB无线翻页笔设计及实现.docx
《USB无线翻页笔设计及实现.docx》由会员分享,可在线阅读,更多相关《USB无线翻页笔设计及实现.docx(43页珍藏版)》请在冰豆网上搜索。
USB无线翻页笔设计及实现
信息工程学院本科毕业论文
题目
USB无线翻页笔设计及实现
系
电子工程
专业
电子信息科学与技术
班级
学号
学生姓名
指导教师
完成日期
诚信承诺
我谨在此承诺:
本人所写的毕业论文《USB无线翻页笔设计及实现》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。
承诺人(签名):
年月日
摘要
本设计是一个基于USB2.0的无线翻页笔。
由于时间和经费原因,为简化系统,数据无线传输部分使用市面上的315Mhz的成品。
研究的内容主要为数据的USB传输以及HID设备。
通过使用Cypress公司开发的EZ-USBFX2单片机CY7C68013,来控制数据的接收和处理以及传送到PC机。
短距离无线通信技术和USB技术是目前非常流行的两项数据传输技术,得到了广泛的应用。
本文结合无线通信和USB技术的优点,设计了一种短距离无线USB接口控制系统的方案。
论文首先介绍了短距离无线通信技术的动态,分析了相关的关键技术;接着介绍了USB接口协议,着重分析了本文采用的USBHID协议和CY7C68013单片机、SC2262和SC2272(或PT2272)。
论文的重点是设计短距离无线USB接口控制系统方案,包括硬件设计和软件设计。
利用CY7C68013单片机做控制,作为USB接口芯片,实现了基于315M射频电路的无线控制的上下翻页系统。
论文设计了系统的硬件原理图,软件流程图和源代码,并通过固件程序设计、仿真和调试等手段,在对固件的编程配置中实现设计的功能。
关键词:
无线通信;USB技术;射频技术;HID设备
ABSTRACT
ThisdesignisasystembasedonUSB2.0wirelessnextpage.Duetotimeandfinancialreasons,inordertosimplifythesystem,partofthewirelesstransmissionofdatausingthe315Mhzofthefinishedproductonthemarket.StudythecontentsoftheUSBkeyfordatatransmission,aswellasHIDdevices.CypressdevelopedthroughtheuseofEZ-USBFX2microcontrollerCY7C68013,tocontrolthedatareceptionandprocessing,andsenttothePC.
Short-rangewirelesscommunicationtechnologyandUSBtechnologyiscurrentlyverypopulartwodatatransmissiontechnology,hasbeenwidelyused.Inthispaper,wirelessandUSBtechnology,theadvantagesofdesignedashort-rangewirelessUSBInterfaceControlSystemprogram.
Paperfirstdescribestheshort-rangewirelesscommunicationtechnologydevelopments,analysisoftherelevantkeytechnologies;thenintroducedtheUSBinterfaceprotocol,focusingonanalysisofthispaper,theUSBHIDprotocolsandCY7C68013microcontroller,SC2262andSC2272(orPT2272).Paperfocusesonthedesignshort-rangewirelessUSBinterfacecontrolsystemsolutions,includinghardwaredesignandsoftwaredesign.CY7C68013microcontrollerusedtodocontrol,astheUSBinterfacechiptoachieve315M-basedRFwirelesscontrolsystemfromtoptobottomnextpage.
Paperdesignofthesystem'shardwareschematicsandsoftwareflowchartandsourcecode,andthroughfirmwaredesign,simulationanddebuggingtools,programminginthefirmwareconfigurationtoachievethedesignfunctionality.
Keywords:
Wirelesscommunication;USBtechnology;RFtechnology;HIDEquipment
1引言
目前高校的多媒体投影教室的装备和使用也越来越多,由于其图,声,文并茂深得学校和学生的喜欢,但是其使用也暴露出一个问题,为了控制演示进度,老师必须亲自用键盘或鼠标近距离操作电脑,因此在演示过程中,老师一直都只能活动在电脑附近很小的区域,甚至就坐在电脑旁边。
这样不仅局限了老师自身的活动空间,还增大了老师与学生的距离,使得原本生动的多媒体演示缺乏重要的亲和力和沟通性,也使得老师的思维由于要进行键盘操作而影响到讲课的连贯性,另外,老师的肢体语言也没有充分表现出来。
能否有一种装置解决上述问题呢?
根据这个问题,研制出了基于USB接口的短距离无线翻页控制系统设备,目的主要是为了解决传统的演示操作方式带来的种种弊端,使得老师彻底摆脱空间的束缚。
在教学的整个过程中,老师可以在教室里边随意走动,可以走到学生当中,进行沟通,从而实现演示无线,沟通无限的最佳演示效果,使得多媒体教学更加方便灵活,整个教学过程更加自然、亲和、人性化。
USB作为一种新的解决方案能够克服其他接口的常见缺点,并提供新的能力,包括:
●USB是一个可以连接任何设备的简单连接器。
●可以把很多外围设备连接到同一连接器上。
●可以消除系统资源冲突。
●自动检测和配置外围设备。
●以较低成本实现系统和外围设备的连接。
●提高系统性能。
●支持对新设计的外围设备的连接。
●支持老式的硬件和软件。
●低功率。
所以,在数据传输系统中,采用USB(UniversalSerialBus通用串行总线)在PC连接外围设备方面是一个相当好的解决方案。
2概述
2.1USB无线翻页概述
USB无线翻页系统[1-3]的工作原理是发射装置上的信号产生、编码、发射电路和无线电信号产生发射信号。
接收装置的信号接收、取出信号、解码、处理。
单片机CY7C68013的原理结构应用,单片机与计算机的USB接口通信,单片机固件程序的设计,射频接收芯片的原理与应用,发射电路和接收电路的设计调试,整个系统的联调工作。
图2-1发射器功能部件
图2-2接收器功能部件
短距离无线技术的范围很广,在一般意义上,只要通信收发双方通过无线电波传输信息,并且传输距离限制在较短的范围内,通常是几十米以内,就可以称为短距离无线通信。
短距离无线通信技术的特征:
低成本、低功耗和对等通信,是短距离无线通信技术的三个重要特征和优势。
首先,低成本是短距离无线通信的客观要求,因为各种通信终端的产销量都很大,要提供终端间的直通能力,没有足够低的成本是很难推广的。
其次,低功耗是相对其它无线通信技术而言的一个特点,这与其通信距离短这个先天特点密切相关,由于传播距离近,遇到障碍物的几率也小,发射功率普遍都很低,通常在1毫瓦量级。
最后,对等通信是短距离无线通信的重要特征,有别于基于网络基础设施的无线通信技术。
终端之间对等通信,无须网络设备进行中转,因此空中接口设计和高层协议都相对比较简单,无线资源的管理通常采用竞争的方式。
2.2本设计方案思路
要实现对PPT等应用软件的全屏观看时的前后翻页的短距离无线控制,需要发射装置上的信号产生、编码、发射电路和高频无线电信号产生发射信号,接收装置上的信号接收、取出信号、解码、处理,以及通过单片机实现与计算机通信。
简单的说是三个步骤组成:
信号发出、信号接收、计算机响应。
2.3本设计用到的软件工具
KeilC51:
随着硬件的发展,51单片机软件工具已经有C级编译器。
目前常用的FranklinC51和KeilCsl二种,这二种C51编译器略有差别。
PROTEL:
PROTEL是PORTEL公司在20世纪80年代末推出的电路行业的CAD软件,它当之无愧地排在众多EDA软件的前面,是电路设计者的首选软件。
它较早在国内使用,普及率也最高,几乎所有的电路公司都要用到它。
早期的PROTEL主要作为印刷板自动布线工具使用,运行在DOS环境,对硬件的要求很低,在无硬盘286机的IM内存下就能运行。
它的功能较少,只有电原理图绘制与印刷板设计功能,印刷板自动布线的布通率也低。
现在的PROTEL己发展PROTEL99以上了,是个庞大印制电路板软件,完全安装有200多MB,是个完整的全方位电路设计系统,它包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印刷电路板设计(包含印刷电路板自动布线)、可编程逻辑器件设计、图表生成、电路表格生成、支持宏操作等功能,同时还兼容一些其它设计软件的文件格式,如ORCAD、PSPICE、EXCEL等。
使用多层印制线路板的自动布线,可实现高密度PCB的100%布通率。
2.4主要技术指标
系统技术指标:
●有效距离—大于等于15m
●按键迟延—小于等于0.25
●工作温度—20~+70℃
●误码率—小于10一5
●工作电压—发送器:
3V[电池供电]
●最大功耗—发送器:
80袱〔电池提供〕
●接收器:
100mw〔USB口提供〕
●接收器:
5V[USB口供电〕
●可控制软件—Powerpoint
3USB协议简介和数据传输的实现
3.1USB(UniversalSerialBus)的发展
USB(UniversalSerialBus通用串行总线)是1995年康柏、微软、IBM、DEC等公司为解决传统总线不足而推广的一种新型的通信标准。
该总线接口具有安装方便、高带宽、易于扩展等优点,已逐渐成为现代数据传输的发展趋势。
基于USB的数据采集传输系统充分利用USB总线的上述优点,有效解决了传统数据采集传输的缺陷。
USB1.0有低速传输(1.5Mb/s)和全速传输(12Mb/s)模式。
12Mbps的带宽对于键盘鼠标等低中速外设是完全足够的。
也正是USB的诸多优点推动了它的发展。
为了适应其他高速设备,如打印机、扫描仪、硬盘和影像设备,第二代USB协议,也就是USB2.0,在第一代协议的基础上,作了以下扩展:
●480Mb/s传输速度,这个速率是USB1.1协议(12Mb/s)的40倍。
●完全的向前及向后兼容性,所有的USB1.1的设备及连接器都可以在USB2.0下运行。
●一种全新的集线器架构,这种架构可以提供多路12Mb/s的下行接口用来连接USB1.1设备。
自从USB1.0发布短短几年间,USB不光成为了微机主板上的标准端口,而且还成为了所有微机外设,包括键盘、鼠标、打印机、数字相机扫描仪和游戏手柄等等与主机相连的设备的标准协议之一。
这种连接较以往普通并口和串口的连接,更具有的优势有:
●一个USB设备可以随时接入或者拔出,即使是在计算机运行中(即所谓的即插即用Plug&Play)。
●开发维护方便。
●当一个USB设备连接到计算机上时,计算机会自动检测到并与之通信,获取这个设备的功能以及运行要求。
基于这些信息,计算机自动将对应的驱动程序加载到操作系统中。
当设备拔出时,计算机则会自动卸载这些驱动程序,释放内存空间。
●USB设备没有拨动设置开关,没有跳线,也没有特定的配置程序。
在USB协议中,还没有IRQ,DMA,memory,或者I/O的概念。
●USB扩展集线器是一条USB总线可以同时连接数个,数十个,甚至上百个设备。
●在USB2.0协议中规定,新的规范支持3种传输速率。
3.1.1USB传输方向
一个USB系统中,只有一个主控制器:
主机计算机。
USB设备响应主机的请求。
USB设备之间无法进行任何直接的通讯,必须通过主机才可以。
相比之下,IEEE1394则是点对点的通讯协议,设备之间可以互相通讯,但实现起来就要复杂很多了。
然而,只有一种情况下例外,设备可以初始化一个请求。
当主机使设备进入省电模式(SuspendMode)后,设备可以发出“远程唤醒”信号。
其他任何情况都是主机发出请求,设备来响应。
这种主从结构的通讯方式有一个很突出的优点,就是大部分智能处理都在主机端,也就是计算机端,而设备端的接口就可以很简单,大大降低了USB总线系统的成本。
相比之下,IEEE1394设备接口的软件和硬件开销都大很多。
因为主机是USB总线的主控制者,所以很容易区分USB的传输方向。
OUT就是从主机到设备;IN就是从设备到主机。
一次USB传输由一些数据包组成,这些数据包由包标识符区分。
一个包标识符代表一种类型的数据包。
共有4种包标识符,见表3-1:
表3-1USBPIDs
PIDTYPE
PIDNAME
Token
IN,OUT,SOF,SETUP
Data
DATA0,DATA1,DATA2,MDATA
Handshake
ACK,NAK,STALL,NYET
Special
PRE,ERR,SPLIT,PING
图3-1描述了一个USBOUT传输。
主机传输为红色部分,设备传输为黄色部分。
Packet1是一个OUT令牌,由OUTPID标识,标志着从主机到设备的数据就要从总线通过。
Packet2装载着数据,由DATA1PID标识。
Packet3是一个握手包,由设备向主机发出ACKPID包,表示已经正确接受到数据。
如此重复执行,例如从Packet4(OUTtoken4)开始,还有DATAPacket5等等,如果成功了,则从设备端返回ACKPID。
图3-1USBPackets
在全速传输中,每一个OUT传输都带有一个OUT数据包。
在高速传输中,为了节省带宽,采用了一种新的包,叫“Ping”包。
主机在发送数据包之前,先向设备发出一个Ping包,如果接口设备有足够的空间并且已经准备好接收数据了,则返回ACKPID包,此时主机就将装有大量数据的数据包发出。
在图3-1中有两种数据包标识符,DATA0和DATA1,是因为USB协议有严格的校验过程。
前面讲到的ACK握手数据包是为了表明设备端已经正确接受了数据,经过了CRC校验。
但是为了避免包与包之间次序的混淆,主机与设备需要同时处理一个数据交替位(DATATogglebit),保证数据包的PID以DATA0-DATA1-DATA0-DATA1的顺序传送。
这样就可以防止中断的不完整的数据传输。
SETUP令牌用在控制传输中(ControlTransfers),它用来传输标志设备请求的8个字节。
在全速设备中,帧起始令牌包每1ms发出一次。
在高速设备中,原先的每一帧数据又被分为8个微帧,这里的帧起始令牌包每125um发出一次。
在USB2.0中,共有4个包标识符来表明传输的状态,它们是:
●ACK(ACKnowledge),表明一次传输成功。
●NAK(NegativeACKnowledge),表明设备或主机繁忙,请稍后重新发送这个数据包。
NAK不是错误,USB中的错误通常都表现为没有任何反应。
●STALL,一个设备发出STALL表示它不明白当前接收到的设备请求,或者主机访问了不可访问的设备资源。
●NYET(NotYet),与ACK有相同的含义,但同时又表明没有准备好接受另一个OUT传输。
这个包标识符只在USB2.0中存在,只在高速方式时有效。
一个PRE(Preamble前导)PID置于低速(1.5Mb/s)USB传输之前,是为了在高速传输系统中声明一个全速传输的数据传输。
而EZ-USBFX2芯片只支持全速(12Mb/s)传输和高速(480Mb/s)传输方式,它将忽略PRE包以及其后跟随的低速传输。
3.1.3从主机端接收数据
为了发送数据到USB外围设备,主机会在数据之后发出OUT令牌包。
如果外围设备还有容量空间,并能无错误地接收数据,就会回复ACK,让主机知道。
如果正处在忙状态,则以NAK来取代传输。
假如发现了一个错误,则不传输任何信息。
对于后两种情况,主机会在稍后传输数据。
USB设备不会“自然地”将数据传输到主机上,为了传输,EZ-USBFX2的固件或外围逻辑任何时候都能装载数据到EZ-USBFX2端点缓冲区并完成打包。
但是,直到主机端发出IN的设备请求,这些数据才会从设备传送的主机端。
如果主机一直不发IN令牌,则这些数据就永远也发不出去,是否还保存在EZ-USBFX2端点缓冲区就不一定了。
3.1.5USB帧
对于所有USB设备,USB主机通过每1ms向设备发送一个SOF(帧起始)来时间同步。
SOF(帧起始)包含对每一帧进行累加计数的11位计数值,当前的帧计数值[0-2047]可在任何时刻从EZ-USBFX2内部寄存器中读到。
在高速传输状态,每1ms帧被分为8个125us“微帧(microframe)”,每一个微帧都由SOF包作为先导。
而帧计数值则仍然是每1ms累加一次,所以这些SOF包中包含同样的帧计数值。
为了保持当前的微帧计数值[0-7],EZ-USBFX2提供了一个可读的微帧计数器。
只要FX2接收到一个SOF包,它就生成一次中断请求(全速方式时,每1ms一次;高速方式时,每125us一次)。
这个SOF中断非常有用,例如可以用于同步端。
3.1.6USB传输类型
USB定义了四种传输类型,它们分别满足不同的数据传输需要。
●批量传输(BulkTransfers)
图3-2两个Bulk传输,INAndOUT
批量传输是一种突发(burst)的传输模式的。
在全速方式时,数据包的大小可以是8个字节,16个字节,32个字节或者64个字节。
高速传输中数据包的大小为512个字节。
由于其具有自动的错误数据校验机制(CRC),所以批量传输能确保其正确性。
当带宽允许的时候,主机端才发送批量传输请求。
批量传输主要用于打印机,扫描仪,硬盘,调制/解调器等。
批量传输示意图如图3-3所示:
●中断传输(InterruptTransfers)
图3-3中断传输
中断传输有点儿类似批量传输。
中断传输的数据包的大小在全速方式为1-64字节,而在高速方式时,可以达到1024字节。
中断端点必须设置轮询间隔,以保证经过主机做有规则的询问(接收IN令牌)。
因此,此种中断传输方式有点儿像PC主机的轮询方式。
早期的USB1.0协议,仅具备中断IN传输;而在USB1.1以后的协议,则增加了中断OUT传输。
●同步传输(IsochronousTransfer)
同步传输具有时间临界的特性,通常应用在视频或者音频数据流的传送。
一个同步信息包,在全速方式时可以达到1023个字节,而在高速方式时可以达到1024个字节。
对于同步传输,传输的时间是最重要的请求信息。
在每一个USB帧里,会申明某些带宽给同步传输使用。
为了减轻带宽的负担,同步传输没有设置任何的握手包(ACK/NAK/STALL/NYET),而且也不会在发生错误时重试。
错误检测仅限于16位CRC错误检验码。
由于同步传输没有采用DATA-toggle机制,所以在全速方式中,同步传输仅使用了DATA0PID;而在高速方式中,同步传输使用了DATA0、DATA1、DATA2和MDATA。
在全速方式下,每一端点、每一帧仅只有一个同步信息包能被传输;而在高速方式下,可以有3个同步信息包。
同步传输示意图如图3-4所示:
图3-4同步传输
●控制传输
控制传输用来配置设备和给设备发送命令。
由于其重要性,所以采取了更为严格的校验机制。
主机在每一USB帧中都保留了一部分带宽给控制传输(一般为10%)。
控制传输示意图如图3-5所示。
一个控制传输包括2-3个阶段。
其中,SETUP阶段包含8个字节的USB控制数据。
如有必要,可以执行DATA阶段,次阶段包含有更多的数据。
在STATUS(或握手)阶段中,允许设备返回成功标识。
图3-5控制传输
即插即用的USB设备实现了真正意义上的即插即用,哪怕你的计算机正在使用。
在每一个USB设备的内部都有一个设备描述符表,其中包含了设备全部的要求和特性。
当一个USB设备插入计算机后,USB主机端将会执行认证程序,这个过程被称为设备枚举。
设备枚举只要有以下五个步骤:
●主机通过预设的地址0向设备发送获取描述符的请求(GetDescriptor)来获得设备描述符。
每一个刚连接上的设备都必须响应0地址的请求。
●设备响应请求,将ID数据发送到主机端,确认自己连上了。
●主机向设备发送设置地址的请求(SetAddress),分配给设备一个唯一的通讯地址,可以与其他设备区分开来。
●主机通过新分配的地址向设备发送更多的索要描述符的请求,进一步了解设备的信息,包括端点数目,电力要求,带宽要求,需要什么样的驱动程序,等等。
●加载符合USB指定的PID(产品码)和VID(制造商码)的驱动程序。
因为FX2软件式的配置模式,当一个设备连接到主机时,它可以作为一个默认的设备出现,然后从主机端下载固件程序和新的设备描述符。
这时候,FX2设备重新进行枚举,在主机端看来就好像变成了另外一个设备。
这个过程就是二次枚举过程。
同时,FX2也可以从外部扩展的EEPROM中读取描述符和程序。
3.1.9行接口引擎(SerialInterfaceEngine,SIE)
图3-6串行接口引擎示意图
USB带宽
每一个USB设备都有一个串行接口引擎(SIE)连接到USB数据线(D+和D-)。
设备通过这个引擎发送或者接收数据。
在图3-6中介绍了SIE工作的基本情况。
SIE的功能是对信息包PID进行译码,利用传输的CRC位进行错误检测,并且传输下载数据到USB设备。
当设备发送数据时,SIE接受设备的控制命令和数据,把数据打包成标准数据包,通过D+和D-传输到主机端。
由于USB采用了自时钟数据格式(NRZI),为了保证在串行数据传输的品质,SIE会在适当的地方插入位,这个动作称之为填充。
显然这一动作是由FX2的SIE控制的。
FX2的一个突出的特性就是它的运行配置是“软件”式的,取代了以往需要ROM或者可烧写存储器的要求。
取而代之的是一片内置的RAM内存,它包含了内部程序、数据RA