为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

无线鼠标毕业2

2011-05-07 39页 doc 766KB 21阅读

用户头像

is_187423

暂无简介

举报
无线鼠标毕业2毕业设计(论文)指导教师评语: 摘 要 鼠标是人们日常使用的电脑外设,其技术的发展备受瞩目。传统的鼠标有机械鼠标和光电鼠标两种,它们都依赖于在平面上工作来感知位移的变化。而随着工作场合和客户需求的不断变化,人们越来越需要一种具备无线功能和悬空遥控功能的鼠标,它不依赖于平面,没有连线的距离限制。同时,在鼠标的发展中,如何缩小鼠标的体积,降低鼠标的功耗也越来越被人们所关注。。无线鼠标则是电脑周边器件与无线通信技术的完美结合物。 无线鼠标接收器作为无线鼠标的一个重要组成部分是完成无线鼠标与计算机之间的通信的媒介,对它的设计和创新能够...
无线鼠标毕业2
毕业)指导教师评语: 摘 要 鼠标是人们日常使用的电脑外设,其技术的发展备受瞩目。传统的鼠标有机械鼠标和光电鼠标两种,它们都依赖于在平面上工作来感知位移的变化。而随着工作场合和客户需求的不断变化,人们越来越需要一种具备无线功能和悬空遥控功能的鼠标,它不依赖于平面,没有连线的距离限制。同时,在鼠标的发展中,如何缩小鼠标的体积,降低鼠标的功耗也越来越被人们所关注。。无线鼠标则是电脑周边器件与无线通信技术的完美结合物。 无线鼠标接收器作为无线鼠标的一个重要组成部分是完成无线鼠标与计算机之间的通信的媒介,对它的设计和创新能够为无线鼠标的更快普及和发展提供有力的支持。本文在分析了无线鼠标的工作原理之后,将无线鼠标接收器的设计主要分为两部分。一部分是无线通信,使用无线收发芯片nRF2401进行无线发送和接收,并使用80C196单片机对该芯片进行控制完成信息的无线传递功能。另一部分为接收器与计算机间的通信,将接收器接收到的信号在单片机的控制下通过RS232接口传递给PC机并让PC识别出相应的操作。通过调试验证其系统稳定,通信可靠。最后论文总结了在无线鼠标接收器研究设计中的工作,提出了下一步需要完善和解决的问题。 关键词:无线鼠标;接收器;无线射频; 【Abstract】 With the continuing popularity of computer, Mouse as a part of computer’s peripheral devices has been in rapid development. Wireless mouse is the perfect combination of computer peripheral devices and wireless communication technologies.. Key words:Wireless Mouse, Receiver, Wireless RF TOC \o "1-4" \h \z \u 摘 要 1 一、 引言 1 1.1 80C196的片内结构 2 1.2 80C196的引脚图 3 1.3 80C196程序存储器 5 1.4 数据存储器 6 1.5 特殊功能寄存器SFR 7 1.6 工作方式 8 1.7存储器的设计 9 1.9系统时钟的设计 10 二、 系统设计 11 2.1硬件构成 12 2.1.1 加速度计 12 2.1.2 微处理器 12 2.1.3 射频收发器 12 2.1.4 接口设计 13 2.2 软件设计 13 2.2.1 USB 部分 13 2.2.2 控制部分 16 三、无线鼠标的结构 16 3.0 无线收发模块 16 3.1 发射部分 16 3.2 接收部分 17 3.2 编解码电路 17 3.2.1 PT2262/PT2272 17 3.2.2 地址编码设定和修改 18 3.2.3  抗干扰的的处理 18 3.3 无线遥控鼠标的设计和实现 19 3.3.1无线鼠标左键的实现 19 3.3.2 无线鼠标滚轮的实现 20 3.4 安装与调试 21 四、80C196单片机鼠标接口程序设计 22 4.1 串行鼠标的原理及数据协议 22 4.2. 鼠标信号发送协议与过程 23 五、结束语 35 六、 参考文献: 36 一、 引言 随着信息技术的飞速发展, 计算机已经成为人们日常工作、学习必不可少的工具。其中, 鼠标作为计算机最重要的外设之一, 它能控制计算机屏幕的光标移动, 代替了键盘的某些繁琐的指令, 使计算机的操作更加简便。 鼠标从出现至今, 经历了机械式鼠标、光电机械式鼠标和光电式鼠标三个阶段。本文要介绍的则是鼠标发展的新阶段:MEMS 无线鼠标。它以MEMS 技术为依托, 进行一定 距离的无线操作, 来控制屏幕光标移动。MEMS, Micro Electron- mechanical System, 即微机电系统, 是指采用微机械加工技术可以批量制作的, 集微型传感器、微型机构、微型执行器以及信号处理和控制电路、接口、通讯等于一体的微型器件或微型系统。它可以将物理信号转换为电学信号或将电学信号转换为物理信号, 实现从信号取样、处理到执行的整体集成。 目前, 国内外对这种基于MEMS 的无线鼠标均有一定的研究。香港中文大学设计的是一个三维的指环形式的鼠标[1]( 见图1) , 将装有MEMS 微加速度计的指环套在手指上, 通过手指的活动来获得加速度; 微处理器和射频发射器则安装在手腕处, 与指环相连, 构成一个完整的系统。 图1 鼠标环的实物 1.1 80C196的片内结构 为了设计此系统,我们采用了80C196单片机作为控制芯片,在前向通道中是一个非电信号的电量采集过程。它由传感器采集非电信号,从传感器出来经过功率放大过程,使信号放大,再经过模/数转换成为计算机能识别的数字信号,再送入计算机系统的相应端口。 由于80C196中无片内ROM,且数据存储器也不能满足要求,,经扩展2762和6264来达到存储器的要求,其结果通过显示器来进行显示输出。 80C196是有8个部件组成,即CPU,时钟电路,数据存储器,并行口(P0~P3)串行口,定时计数器和中断系统,它们均由单一总线连接并被集成在一块半导体芯片上,即组成了单片微型计算机, 80C196就是MCS-51系列单片机中的一种。 图 1-1 80C196基本组成 CPU中央处理器:中央处理器是80C196的核心,它的功能是产生控制信号,把数据从存储器或输入口送到CPU或CPU数据写入存储器或送到输出端口。还可以对数据进行逻辑和算术的运算。 时钟电路:80C196内部有一个频率最大为12MHZ的时钟电路,它为单片机产生时钟序列,需要外接石英晶体做振荡器和微调电容。 内存:内部存储器可分做程序存储器和数据存储器,但在80C196中无片内程序存储器 。 定时/计数器:80C196有两个16位的定时/计数器,每个定时器/计数器都可以设置成定时的方式和计数的方式,但只能用其中的一个功能,以定时或计数结果对计算机进行控制。 并行I/O口:MCS-51有四个8位的并行I/O口,P0,P1,P2,P3,以实现数据的并行输出。 串行口:它有一个全双工的串行口,它可以实现计算机间或单片机同其它外设之间的通信,该并行口功能较强,可以做为全双工异步通讯的收发器也可以作为同步移位器用。 中断控制系统:80C196有五个中断源,既外部中断两个,定时计数中断两个,串行中断一个,全部的中断分为高和低的两个输出级。 1.2 80C196的引脚图 图1-2 80C196引脚图 80C196的制作工艺为HMOS,采用40管脚双列直插DIP封装,引脚说明如下: VCC(40引脚)正常运行时提供电源。 VSS(20引脚)接地。 XTAL1(19引脚)在单片机内部,它是一个反向放大器的输入端,该放大器构成了片内的震荡器,可以提供单片机的时钟信号,该引脚也是可以接外部的晶振的一个引脚,如采用外部振荡器时,对于8031而言此引脚应该接地。 XTAL2(18引脚)在内部,接至上述振荡器的反向输入端,当采用外部振荡器时, 对MCS51系列该引脚接收外部震荡信号,即把该信号直接接到内部时钟的输入端。 RST/VPD(9引脚)在振荡器运行时,在此引脚加上两个机器周期的电平将单片机复位,复位后应使此引脚电平保持不高于0.5V的低电平以保证8031正常工作。在掉电时,此引脚接备用电源VDD,以保持RAM数据不丢失,当BVCC低于规定的值时,而VPD在其规定的电压范围内时,VPD就向内部数据存储器提供备用电源。 ALE/PROG(30引脚)当8031访问外部存储器时,包括数据存储器和程序存储器,ALE9地址锁存允许0输入的脉冲的下沿用于锁存16位地址的低8位,在不访问外部存储器的时候,ALE仍有两个周期的正脉冲输出,其频率为振荡器的频率的1/6,在访问外存储器的是候,在两个周期中,ALE只出现一次,ALE断可驱动8个LS TTL负载,对于有片内EPROM的而言,在EPROM编程期间,此脚用于输入编程脉冲PROG。 (29引脚)此脚输出为 单片机内访问外部程序存储器的读选通信号,在读取外部指令期间, PSEN非有两次在每个周期有效,在此期间,每当访问外部存储器时,两个有效的PSEN非将不再出现,同样这个引脚可驱动8个LSTTL负载。 /VPP(31引脚)当 保持高电平时,单片机访问内部存储器,当PC值超过0FFFH时,将自动转向片外存储器。当 保持低电平时,则只访问外部程序存储器,对8031而言,此脚必须接地。 P0,P1,P2,P3:8031有四个并行口,在这四个并行口中,可以在任何一个输出数据,又可以从它们那得到数据,故它们都是双向的,每一个I/O口内部都有一个8位数据输出锁存器和一个8位数据输入缓冲器,各成为SFR中的一个,因此CPU数据从并行I/O口输出时可以得到锁存,数据输入时可以得到缓冲,但他们在功能和用途上的差异很大,P0和P2口内部均有个受控制器控制的二选一选择电路,故它们除可以用做通用I/O口以外还具有特殊的功能,P0口通常用做通用I/O口为CPU传送数据,P2口除了可以用做通用口以外,还具有第一功能,除P0口以外其余三个都是准双向口。 80C196有一个全双工串行口,这个串行口既可以在程序下把CPU的8位并行数据变成串行数据一位一位的从发送数据线发送出去,也可以把串行数据接受进来变成并行数据给CPU,而且这种串行发送和接收可以单独进行也可以同时进行。 80C196的 串行发送和接收利用了P3口的第二功能,利用P3.1做串行数据接收线,串行接口的电路结构还包括了串行口控制寄存器SCON,电源及波特率选择寄存器PCON和串行缓冲寄存器SBUF,他们都属于SFR,PCON和SCON用于设置串行口工作方式和确定数据发送和接收,SBUF用于存放欲发送的数据起到缓冲的作用。 1.3 80C196程序存储器 MCS-51系列单片机的内部ROM是不同的,8051有4K的ROM,而8751则是4K光可擦写EPROM,而我们所采用的8031则没有片内的ROM,但是无论那种型号的芯片都可以在片外扩展多达64K的片外程序存储器,外部程序存储器扩展的大小以满足系统要求即可,或有特殊要求或为了以后升级方便采用大容量的片外程序存储器。当外接程序存储器的时候,单片机通过P2口和P0口输出16位的地址,即可寻址的外部程序存储器单元的地址,使用ALE作为低8位地址锁存器信号,再由P0口读回指令的代码,用PSEN非作为外部程序存储器的选通信号。 单片机有一个程序计数器PC,它始终存着CPU要读取的机器码的所在地址,单片机工作时,PC自动加一,此时程序开始顺序执行,因为单片机程序 访问空间是64K,故需要16条地址线,当 接“0”则8031在片外程序存储器中读取指令,此时片外程序存储器从0000H开始编址,因为8031无片内程序存储器,故在此系统中 必须接地使CPU到外部ROM中去寻址。 在程序存储器中有六个单元有特定的含义: 0000H单元:单片机复位后,PC=0000H即从此处开始执行指令。 0003H单元:外部中断0入口地址。 000BH单元:定时器0溢出中断入口地址。 0013H单元:外部中断1入口地址。 001BH单元:定时器溢出中断入口地址。 0023H单元:串行口中断入口地址。 使用时常在这些入口外安放一条绝对跳转指令,使程序跳转到拥护安排的中断处理程序的起始地址,或从0000H外执行一跳转指令,跳转到用户设计的初始程序入口。 1.4 数据存储器 数据存储器用于存放运算中间的结果、数据暂存、缓冲、标志位、待测程序等功能。 片内的128B的RAM地址为00H~7FH,供用户做RAM用,但是在这中间的前32单元,00H~1FH即引用地址寻址做用户RAM用,常常做工作寄存器区,分做四组,每组由8个单元组成通用寄存器R0~R7,任何时候都由其中一组作为当前工作寄存器,通过RS0,RS1的内容来决定选择哪一个工作寄存器。 低128字节中的20H~2FH共16字节可用位寻址方式访问各位,共128个位地址,30H~7FH共80个单元为用户RAM区,作堆栈或数据缓冲用,片内RAM不够用时,须扩展片外数据存储器。此时单片机通过P2口和P0口选出6位地址,使用ALE作低8位的锁存信号,再由P0口写入或读出数据。写时用 ,读时用 做外部数据存储器的选通信号 1.5 特殊功能寄存器SFR 80C196有21个专用寄存器,他们是用来管理CPU和I/O口以及内部逻辑部件的,在指令中专用寄存器是以存储单元方式被读写的,专用寄存器虽有名称,但寻址时都做专用寄存器用,它们的地址是与片内RAM的地址相连的。下面就专用寄存器作以简单的介绍: 累加器A:在绝大多数情况下它参与运算的一方并存放运算的结果。 寄存器B:进行乘除运算时,寄存器B有特定的用途,在乘时存放一个乘数以及积的最高位,A中存放另一个乘数以及积的低位。除法时,B中存放除数及余数,而在A中存放被除数和商,其他情况可作为普通寄存器用。 堆栈指针SP:在子程序调用或中断时,用来暂存数据和地址,它按先进后出的原则存储数据,它是一个八位寄存器它指出堆栈顶部在片内RAM中的位置,系统复位后,SP变成07H,使堆栈从00单元开始。; 数据指针DPTR:由两个字节组成,DPH字地址由83H,DPL由82H,存放一个16位的二进制数做地址用。 程序状态字PSW:七位用来表征各种标志,另一位无意义。 C AC FO RS1 RS0 OV -- P C:进位标志位,用于表示加减运算时最高位有无进位和借位,在加法运算中,若累加器最高位有进位则CY=1,否则CY=0,在减法时则有借位CY=1,否则CY=0,在执行算术逻辑运算时可以被硬件或软件置位或清除,CPU在进行移位操作也会影响该位。 AC:当进行加法或减法运算时并产生由低四位向高四位的进位或借位时,AC置1,否则清0。若AC=0时则在加减过程中A3没有向A4进位或借位,否则正好相反。 F0:F0常不是由机器来指令执行中形成的,而是用户根据程序的需要进行设置的,这个位一经确定就可通过软件测试来决定用户程序的流向。 RS1,RS0:8031有四个8位工作寄存器R0~R7,用户可以改变RS1和RS0的状态来决定R0~R7的物理地址。 OV:用以指示运算是否发生溢出,由机器执行指令自动形成,若机器在执行指令过程中累加器A超过8位,则OV=1否则为0。 P:用来来表示累加器A中的值为1的二进制位的奇偶数,若‘1’的个数为奇数P=1,为偶数P=0。在串行通信中常用奇偶校验数据传输结果的正确性。 1.6 工作方式 它的工作方式可以分做复位,掉电和低功耗方式等。 1、​ 复位方式 当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。 根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如图 (1-3a)中左图所示。图中电容C1和电阻R1对电源十5V来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如图 (1-3a)中所示。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的上电或开关复位电路如图 (1-3b)所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。 根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。 图1-3 单片机的复位电路 图(1-16a)中:Cl=10-30uF,R1=1kO 图(1-16b)中:C:=1uF,Rl=lkO,R2=10kO 二、掉电和低功耗方式 人们往往在程序运行中系统发生掉电的故障,使RAM和寄存器中的数据内容丢失,使人们丢失珍贵的数据而束手无策,80C196有掉电保护,是先把有用的数据保存,再用备用电源进行供电。 1.7存储器的设计 在80C196芯片的外围电路中必须对其进行程序存储器的扩展,和根据系统的需要对其进行数据存储器的扩展。80C196对程序存储器和数据存储器均可进行0000H~FFFFH的64K字节地址内容的有效寻址。在前面我们已经讲过80C196外扩展存储器时,P2作高位的地址输出,P0作低位地址输出和数据线。 一、程序存储器的扩展 由于80C196无内部ROM ,故扩展的程序存储器地址为0000H~FFFFH,考虑系统的需要,我们将8031的程序存储器扩展为4K EPROM,采用2764作为ROM芯片。 程序存储器扩展的容量大于256字节,故EPROM片内地址线除了由P0口经地址存储器提供低8位地址外,还需要由P2口提供若干条地址线,我们选用8K的2764 EPROM,故地址线应该是13条,因为系统中只扩展一片EPROM,所以不用片选信号,即EPROM 的 接地。在程序扩展中,我们选用的地址锁存器是74LS373 当三态门的 为低电平时,三态门处于导通状态,允许Q端输出,否则 为高电平,输出为三态门断开,输出端对外电路呈高阻态,所以在这里 为低电平,这时当G端为高电平时,锁存器输出和输入的状态是相同的,当G由高电平下落为低电平时,输入端1D~8D的数据锁入1Q~8Q中。 当2764处于读方式下 和 均为低电平有效。当VPP=+5V时,EPROM处于读工作方式:这时由给定地址信号决定被选中存储器单元信息。被读出到数据输出端D0~D7上。维持方式:当 为高电平时,VPP为+5V,EPROM处于低功耗方式,输出端均为高阻态,这与 输入无关。编程方式:在VPP加上+25V编程电源并在 和地端跨接一个0.1uf的电容以干扰电压的瞬间对2764进入编程方式,被编程的8位数据以并行方式送到数据输出断编程校验。 1.9系统时钟的设计 时钟电路是用来产生80C196单片机工作时所必须的时钟信号,80C196本身就是一个复杂的同步时序电路,为保证工作方式的实现,80C196在唯一的时钟信号的控制下严格的按时序执行指令进行工作 ,时钟的频率影响单片机的速度和稳定性。通常时钟由于两种形式:内部时钟和外部时钟。 我们系统采用内部时钟方式来为系统提供时钟信号。80C196内部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,便构成了一个自激励振荡器 电路中的C1、C2的选择在30PF左右,但电容太小会影响振荡的频率、稳定性和快速性。晶振频率为在1.2MHZ~12MHZ之间,频率越高单片机的速度就越快,但对存储器速度要求就高。为了提高稳定性我们采用温度稳定性好的NPO电容,采用的晶振频率为12MHZ。 图1-4系统时钟 二、 系统设计 如图2 所示, 这种新型的鼠标由三个模块组成:( 1)MEMS 加速度计, 用它来检测鼠标各方向的运动; ( 2) 微处理器, 用来处理加速度计输出的数据, 对收发器进行控制; ( 3) 收发器, 对处理后的信号进行无线传输, 以相应的通讯协议与PC 机相连。 图2 无线鼠标的结构 2.1硬件构成 2.1.1 加速度计 MEMS 加速度计两个MEMS 单轴加速度计( 或一个双轴加速度计) 被放置在水平面上来检测鼠标X 和Y 方向的运动。若在YZ 平面放置一个双轴加速度计检测鼠标的垂直运动和旋转角度就构成了三维鼠标。本系统中采用AD 公司的ADXL203 微加速度计检测运动, 这是一款电容式加速度计, 温度系数低、灵敏度高、直流响应好。它通过检测电容量的变化得到加速度值。 2.1.2 微处理器 本系统中采用了两种微处理器。在发射部分中, 微处理器要对加速度计的输出信号进行滤波放大处理, 采用A/D转换电路将模拟信号转换为数字信号, 并转化为符合串行鼠标规范的数据包, 输出给发射器。其中一个重要作用是将加速度计输出的与检测的加速度成比例的电信号转换成表征X、Y 方向位移的电信号, 实现该功能是通过编程对信号进行二重积分。同时还需对发射器件进行控制, 例如对内部寄存器进行初始设置, 设定工作频率、发射功率等参数; 进入工作状态后, 通过微控制器进行收发模式的控制, 发送/接收数据或进行状态转换。因此采用Atmel 的ATmega16 单片机, 它是一种高性能、低功耗的AVR 单片机, 带有16K 字节的可编程Flash, 1K 字节的片内SRAM, 3 个定时/计数器,2 个可编程的串行USART。在接收部分, 微处理器需要对收发器和接口芯片进行控制, 因此采用Atmel 的AT80C51。 2.1.3 射频收发器 该系统采用射频技术(RF) 来实现短距离无线数据通讯。射频技术能够对短距离通讯提供充足的带宽, 只要在限定距离内( 一般为10~20 米) , 就可以在任何位置使用, 几乎不受障碍物的影响。系统选用的收发芯片是挪威Nordic 公司推出的nRF2401 单片2.4GHz 无线收发一体芯片[4], 24 引脚, 提供 ShockBurst 模式、直接收发模式、DuoCeiver 双信道收发模式、片上CRC 以及地址计算编码等功能, 支持多点间通信,最高传输速率超过1Mbit/s, 功耗小, 外围设备少, 是一款理想的系统芯片。 2.1.4 接口设计 基于USB 使用方便、允许外设热插拔、速度快、连接灵活等特点, 本系统采用Philips 的PDIUSBD12 芯片[6], 该芯片符合USB1.1 协议规范, 与任何微处理器有高速( 2MB/S) 并行接口, 可通过软件控制总线连接SoftConnect,具有多中断模式。 2.2 软件设计 2.2.1 USB 部分 根据USB 协议, 传输由主机(Host) 开始, 单片机(AT80C51) 作为前台, 等待中断。主机发令牌给USB 芯片( PDIUSBD12) , PDIUSBD12 接收后给单片机发中断,单片机进入中断服务程序,进行相应的操作, 因此USB 的软件设计分单片机方面和主机方面两部分[5]。单片机方面的单片机控制程序通常由三部分组成: (1)初始化单片机和外围设计(如PDIUSBD12);(2) 主循环部分,可以进行中断; (3)中断服务程序。 图3 无线鼠标发射部分 图4 无线鼠标接收部分 主机方面的设计就是USB 设备驱动程序的编制。USB驱动程序属于WDM(Windows Driver Model) ,它对驱动程序分层重新进行定义, 以便适应即插即用系统。驱动程序包括: (1)DriverEntry 例程, 用来初始化入口和内核调用; (2)IRP处理, 内核通过发送I/O 请求来运行驱动程序; (3) 分发例程, 用来“创建”、“读”、“写”处理程序; (4)硬件资源管理、电源管理等。USB 驱动是USB 开发中最困难的, 开发工具可采用Windows DDK 来实现。 2.2.2 控制部分 两个单片机对系统进行控制。主程序初始化I/O 口、中断、寄存器等参数后, ATmega16 对得到的鼠标的加速度信号和按键信息进行处理, 在对nRF2401 的控制字设置后传输数据, 等待发送。AT80C51 单片机在检测到nRF2401 接收器的DR1 信号有效时, 读取接收器的数据, 传送给USB芯片。AT80C51 单片机也对USB 芯片( PDIUSBD12) 进行控制处理。 三、无线鼠标的结构 3.0 无线收发模块 鼠标是用来控制屏幕光标移动的一种装置,是计算机最重要的外部输入设备之一。用遥控器控制鼠标,是用遥控器的按键信号控制鼠标的上下左右移动和左右键,只需要考虑发射和接收电路,不需要考虑接口协议。本设计只考虑左键和滚轮的滚动方向来控制ppt的翻页。基本如图1所示。 3.1 发射部分 无线发射编码模块主要由315MHz无线数据发射和编码芯片PT2262组成。发射电路由声表谐振器稳频,工作频率为315MHz,以AM方式调制, 240mm小拉杆天线发射信号。   发射模块具有较宽的工作电压范围。当电压变化时发射频率基本不变,与发射模块配套的接收模块无需任何调整就能稳定地接收。当发射电压为3 V时。空旷地传输距离约20~50 m。发射功率较小;当电压5 V时约 100~200 m;当电压 9 V时约 300~500 m;当发射电压为 12 V时,为最佳工作电压,具有较好的发射效果,此时发射电流约60 mA,空旷地传输距离700~800 m,发射功率约 500 mW;当电压大于12 V时功耗增大,有效发射功率不再明显提高。发射模块用ASK方式调制,以降低功耗。当数据信号停止时,发射电流降为零[2]。 3.2 接收部分  无线接收解码模块主要由315 MHz无线数据接收模块、解码芯片 PT2272及继电器驱动电路组成。315 MHz无线数据接收模块有超再生式接收模块和超外差式接收模块两种。 这里用的是超再生式接收模块,采用SMD贴片工艺制造生产,工作电压为5 V,静态电流4 mA,接收灵敏度为105 dBm。它内含放大整形及解码电路,使用极为方便。天线输入端有选频电路,而不依赖1/4波长天线的选频作用,控制距离较近时可以剪短甚至去掉外接天线。由于频率受温度漂移影响大,采用了带骨架的铜芯电感将频率调整到315 MHz后封固。  无线接收模块没有接收到空间的315 MHz信号时,输出的只是干扰信号,解码芯片PT2272输出端D0~D5均为低电平。当无线接收模块收到空间的315 MHz信号时,经放大、变频、滤波等处理后输出控制信号,送到解码芯片第14脚进行解码。只有PT2272的地址端的电平状态与发射部分的PT2262的地址端一致时,对应的数据端才有高电平输出。本方案设计的地址为FF,即全部悬空,也可以另行设定地址码,最重要的就是不要相互干扰。输出时通过继电器控制电路的工作状态,同时还有对应的发光二极管指示。 3.2 编解码电路 3.2.1 PT2262/PT2272 PT2262/PT2272 是一种 CMOS 工艺制造的低功耗低价位通用编解码电路,最多可有12位(A0~A11)三态地址端管脚,任意组合可提供531 441个地址码,最多可有6位(D0~D5)数据端管脚,设定的地址码和数据码从17脚串行输出,可用于无线遥控发射电路。编码芯片PT2262发出的编码信号由地址码、数据码、同步码组成一个完整的码字。解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。当发射机没有按键按下时,PT2262 不接通电源,其17脚为低电平,315 MHz的高频发射电路不工作;当有按键按下时,PT2262上电工作,其第17脚输出经调制的串行数据信号,当17脚为高电平时,315 MHz 的高频发射电路起振并发射等幅高频信号,当17脚为低电平时,315 MHz 的高频发射电路停止振荡,所以高频发射电路完全受控于PT2262的17脚输出的数字信号,从而对高频电路完成幅度键控(ASK)调制,相当于调为100%的调幅。 3.2.2 地址编码设定和修改  通常使用中,一般采用8位地址码和4位数据码,这时编码电路 PT2262 和解码电路PT2272 的第1~8 脚为地址设定脚,有三种状态可供选择:悬空、接正电源、接地。3的8次方为6 561,所以地址编码不重复度为6 561组,只有发射端PT2262和接收端PT2272的地址编码完全相同,才能配对使用,PT2262和PT2272出厂时的8位地址编码端全部悬空,这样可以便于选择各种编码状态,用户如果想改变地址编码,只要将 PT2262和PT2272的1~8脚设置相同即可。当两者地址编码完全一致时,接收机对应的D1~D4端输出约4V互锁高电平控制信号,同时VT端也输出解码有效高电平信号。用户可将这些信号加一级放大,便可驱动继电器、功率三极管等进行负载遥控开关操作[4]。 3.2.3  抗干扰的的处理 通过PT2272的VT脚(17脚)是否为高电平去判断是否有键按下,若为高,则去判断PT2272的D0~D3中哪个键按下,但其中忽略了一点,即:这些数据接收到的是干扰,系统将错误判断影响正常运行。由于干扰脉冲是窄脉冲,故可通过软件来滤除干扰,从而有效的解决该问题。也就是说,只有在接收到PT2272的 VT脚由低变高至少保持 20 ms以上时系统才确认按钮按下。 3.3 无线遥控鼠标的设计和实现 在普通的光电鼠标基础上,研究鼠标的的按键电平和滚轮的波形来实现鼠标的左键和滚轮的功能,从而达到无线远距离的实现。无线遥控鼠标设计方案如图4所示。 3.3.1无线鼠标左键的实现 通过对光电鼠标的研究,发现鼠标上的所有按键都是低电平有效,也就是说按键是一个按钮开关,一端连接地另一端连接鼠标芯片。当键按下鼠标芯片的那一端就接地呈低电平,当按钮松开时呈高电平。   根据此情况,只要在接收电路中有一信号连接到按键那一端,当接收到低电平时,也就是鼠标芯片那一端为低电平,鼠标的点击就可以实现,如图5所示。   图5 对收发模块是串行通信的,所以接收到的是一组方波信号,这组方波信号经过解码电路解码后就可以知道得到的是高电平或者是低电平。由于设计了用高电平发射,所以接收到的是高电平。然后经过反相后给鼠标按键连接芯片的那一端,这样就可以实现鼠标的点击功能。这种电路不仅能实现鼠标的左击功能,而且鼠标所有的点击都能实现。由于本设计只针对多媒体教学中放映 3.3.2 无线鼠标滚轮的实现 如图6 所示的鼠标滚轮的实现是本设计的核心之一。在多媒体教学中放映PPT文件时,实现页面的上翻和下翻就是用鼠标的滚轮来实现的。   根据鼠标滚轮的特点,其实现的重点在于滚轮波形处理方面。由于要产生两个信号方波而且还有相位差的存在,在实现上翻和下翻时相位差还是不同的,这在设计电路时会造成很多的麻烦。因此,在设计电路时考虑到用单片机来实现方波的产生和在不同的情况下产生不同的相位差,最终实现滚轮的上翻和下翻功能。利用单片机来实现与利用IC芯片相比较,单片机的外围电路要比IC芯片的外围电路少很多。单片机不仅可以产生方波电路,在鼠标左击时还可以实现反相功能。单片机实现相应功能的程序相对比较简单,其流程图如图7所示。   应该注意的是,方波的频率的大小与鼠标滚轮的反应速度成正比,频率选取是否适当决定了鼠标滚轮能否实现,因此应当选择适当的频率。经过调试,方波的频率在50~100Hz的范围内比较合适,可在软件中延时来实现方波频率的控制。 3.4 安装与调试 无线收发模块虽然在传输距离上有优势,但它对天线和电压的要求相对要高一些,电压的大小和天线的制作直接影响到传输距离。在调试时用了9 V的干电池,天线用了25 cm的螺旋型天线。资料表明,当电压 9 V时传输距离约300~500 m。根据调试情况,实际上很难达到这个距离。但对于本设计,实际范围只要有20~30 m就已经足够了。 利用单片机产生方波电路虽然程序非常简单,但是频率有比较高的要求。根据鼠标滚轮的资料和反复的调试,最终把方波的频率定为100 Hz比较合适。最重要的是在调试过程中发现单片机的晶振出来的高频信号会影响到模块的接收距离。通过采取相应的措施,把原来用的12 MHz晶振改成4 MHz的,而且晶振离接收模块尽可能地远。在接收模块的电源附近加上滤波电容,这也是相对比较重要的。采取这些措施后,其传输距离得到一定的改善。   本文利用光电式鼠标和编解码遥控电路模块的结合,可实现低成本高性能的无线鼠标,并具有全方位遥控的特点,能有效地解决多媒体教室普遍存在的教师教学活动离开电脑控制台就无法操纵鼠标的问题。当今各大中小学校的多媒体教室正在以较快的速度普及,这种鼠标能大大地改善多媒体教室的人机交互性能,因此具有很好的实际应用价值。 四、80C196单片机鼠标接口程序设计        80C196单片机由于低格低、处理能力强,在信号分析、数据采集等很多领域得到了广泛应用,在目标系统中使用各种规格的液晶或CRT显示器也越来越多。因此在这样的单片机系统中引入鼠标,将会方便操作,提高工作效率。鼠标内核本质上是一个二维的角度或位移信号检测装置,耗电极少、可靠性高、价格低廉,可能在许多场合发挥作用。鼠标与主机之间通过RS-232标准串行接口进行通信,信息传送是单方向、无条件、无应答连续进行的。此外80C196的UART不直接支持鼠标的接口协议,在程序设计中必须予以注意。本文主要探讨80C196单片机与Microsoft兼容鼠标接口程序的设计实现 鼠标是一种快速定位器,通过移动鼠标能快速定位屏幕上的对象,是计算机图像界面交互的必用外部设备。通常,鼠标通过微机中的串口或PS/2鼠标插口和主机连接。当在平面上移动鼠标时,通过机械或光学的把鼠标滚轮移动的距离和方向转换成脉冲信号传送给计算机,计算机鼠标驱动程式将脉冲个数转换成鼠标的水平方向和垂直方向的位移量,从而控制显示屏上光标箭头随鼠标的移动而移动。根据此原理,我们可利用鼠标的上位机驱动程式来设计测控系统中的编码器读取软件。 4.1 串行鼠标的原理及数据协议 鼠标一般划分为以下功能模块:微控制器、按键检测、位置移动检测、RS232信号产生、5V电源产生器。串行鼠标的功能框图如图1所示。微软公司和Mouse System公司的鼠标都采用串行输入技术。微软公司的协议格式为3个字节:第1字节的6、7位固定为1,4,5位分别为左右键状态,2、3位为上下移动数据的高6、7位,0、1位为左右移动数据的高6、7位;第2、第3字节发送的都是左右上下的其余6位数据,其中Y表示上下、X表示左右移动的数据位。Mouse System公司的协议格式为5个字节:1个字节用于描述3个按键的状态,2个字节为Y方向的相对坐标,另外2个字节为X方向的相对坐标,具体协议如表1所列。表1我们能方便地制作鼠标 表1 鼠标系统数据信息协议   Mouse System格式 Microsoft格式 数字位 7  6  5  4  3  2  1  0 7  6  5  4  3  2  1  0 字节1 1  0  0  0  0  L  M  R 1  1  L  R  Y7  Y6 X7 X6 字节2 X7 X6 X5 X4 X3 X2 X1 X0 0  0  X5 X4 X3 X2 X1 X0 字节3 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 0  0  Y5 Y4 Y3 Y2 Y1 Y0 字节4 X7 X6 X5 X4 X3 X2 X1 X0   字节5 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0   4.2. 鼠标信号发送协议与过程 鼠标是一个功能高度集中的小型机电一体化系统。它首先将直线移转换成角度位移,再转变成数字量,然后与按钮状态统一编码,通过RS-232串口发出。鼠标工作所需功率从RS-232串行接口的控制线上窃取(PS/2、USB接口鼠标除外)。当鼠标被拖动超过一个最小距离或某一按钮被按下时,它按照规定的协议将移动距离和按钮状态通过一次或几次信息发送到机;主机上的鼠标驱动程序将信息变换成鼠标位置和按钮状态供其它程序模块调用。每发生一次移动或按钮状态变化,鼠标向上发送一次信息。通常一般鼠标的分辨率为400DPI。理论上即沿着某一方向每拖动一英寸(一般速度),会产生400次信息发送过程。,如果拖动较快,则信息发送次数送减少,但所反映的总的移动距离仍然是400步。 各种串行接口鼠标在物理层普遍采用标准的串行通信协议,波特率为1200bps。帧格式为7个数据位、2个停止位,无奇偶校验位。上层协议则在此基础上以十六进制数形式直接发更新鼠标信息,包括:初始化报告:移动方向、距离、按钮状态。其一般形式如表1所示。 表1 鼠标信息发送格式 序   号 名   称 字串形式 长   度 意   义 说   明 1 初始化报告 4DH('M') 1字节 声明初始化结束 加电时发送一次 2 移动、按钮 P1、P2、P3 3字节 反映按钮状态、移动方向和距离 移动或按钮操作时发送   上述P1、P2、P3三个参数说明:  P1_D7D6固定值01;D1D0=11本次鼠标移动包含左右移动分量;D3D2=11本次鼠标移动包含上下移动分量;D4=1目前鼠标右键呈按下状态;D5=1目前鼠标左键呈按下状态(D4D5=00则键呈释放状态)。   P2_D7D6固定值00;其余六位表示一个有符号二进制数,反映左右移动量,大于0为向右移动,小于0为向左移动。   P3_D7D6固定值00;其余六位表示一个有符号二进制数,反映上下移动量,大于0为向下移动,小于0为向上移动。   例如:[6CH 02H 3AH](P1=6CH,P2=02H,P3=3AH)反馈出鼠标向右移动了2个单位,向上移动了6个单位,目前左键按下。 80C196系列单片机内设RS-232收发器,但需要配置接口芯片实现电平转换。考虑到鼠标从串口窃取功率,接口芯片必须具有一定的驱动能力,而不能要用简单的准RS-232电平转换器。这里采用MAX232E作为接口芯片。 图1中左侧为80C196单片机,P2.0(TXD)、P2.1(RXD)通过MAX232E形成满足鼠标要求的串行接口,包括生成标准RS-232C电平和提供电源供应。图1中最右边为9针或24针标准串行接插件。由于鼠标的电源供应采用功率窃取方案,由DTR/RTS提供,这里为DTR加限流电阻防止对鼠标造成伤害。RTS由MAX232E垢信号发送端提供,通过80C196的P2.0控制MAX232E的10脚(对应的输出脚为7脚)电平高低以改变7脚电位,使鼠标可以接收来自RTS的控制命令,以实现鼠标安装与否的检测。MAX232E的11脚(对应的输入脚为14脚)设备高电平以保证14脚电位为负RS-232电位,满足鼠标发送信号时的电平要求。 从链路层看,80C196串行接口的四种工作方式均不满足鼠标的帧格式要求;但其工作方式1(1位起始位、8位数据位、1位停止位)的总传送位数与鼠标(1位起始位、7个数据位、2个停止位)相同,均为10位。接收过程中80C196收到7个数据位后,将2个停止位中的第一个作为数据位装入接收缓冲器的最高位,由于停止位在物理层是高电平,作为数据被接收后相当于逻辑“0”;剩下的第二个停止位给好为80C196提供了有效的停止位。利用80C196的工作方式1完全可以保证正确接收鼠标信息。 单片机起动后,通过鼠标驱动模块对鼠标进行初始化,即通过P2.0使RTS电平翻转一次而令鼠标发送初始化报告,以确认鼠标是否安装。之后,鼠标即可随着拖动或按钮操作向单片机发送动作信息,经接口模块释放即可反应鼠标位置和按钮状态。 鼠标接口模块主要包括按钮状态识别和位置识别两个部分。80C196将根据接收到的鼠标信息不断刷新鼠标信息缓冲区。由于鼠标事件间隔不确定,采用扫描方式但会浪费CPU时间,还可能因来不及处理而丢失信息。有效的处理方法是采用中断方式接收,应用模块通过软件接口获得鼠标信息。完整的鼠标接口程序流程图如图2所示。在初始化阶段,首先检查鼠标是否存在,根据结果设置标志位,以备以后取鼠标信息时判断用;根据需要设定鼠标初始化位置、按钮原始状态;最后设置串行接口参数(帧格式等)并开放鼠标中断。鼠标发送信息时,第三个字节为一个完整的信息报告。但80C196每接收到一个字节,就产生一次中断,然后根据当前字节是否大于40H确定其性质。若是信息报告的首字节,则还要进一步通过有效性检验后保存;若不是首字节,则必须经过一系列检验后保存起来。收到三个字节后立即进行命令分析和执行。具体处理过程可参看源程序。用户模块通过特定接口模块(图2(b))获得鼠标当前位置和按钮状,并可通过进位标志C=0/1判断鼠标是否安装。 下面是图2程序流程图如图对应的程序清单。该程序要求80C196单片机的工作频率为12MHz;如果采有其它工作频率,通过修改串行口的波特率设置参数以及延时程序的时间常数即可。 80C196特殊功能寄存器预定义 R0 EQU 00H:Word SBUD EQU 07H:Byte INT_MASK EQU 08H:Byte INT_PEND EQU 09H:Byte BAUD_RT EQU 0EH:Byte IOP2 EQU 10H:Byte SP_CON EQU 11H:Byte SP_STAT EQU 11H:Byte IOC1 EQU 16H:Byte SP EQU 18H:Word ;通用寄存器预定义 RSEG AT ICH AX: DSW 1 DX: DSW 1 AL EQU AX:BYTE AH EQU (AX+1):BYTE DL EQU DX:BYTE DH EQU (DX+1):BYTE SCRNW EQU 640 ;显示屏宽度 SCRNH EQU 480 ;显示屏高度 变量区 RSEG AT 20H M_X :DSW 1 ;光标X值 M_Y :DSW 1 :光标Y值 M_BUF :DSB 4 ;接收缓冲区 M_P : DSW 1 ;接收指针 BX :DSW 1 LRB_OK:DSB 1 ;鼠标状态 ;Bit7:存在,Bit5,左键,Bit4:右键 ; CSEG AT 2000H DCW INIT CSEG AT 200CH DCW SIOINT DCW INIT DCW 0 DCB 0,0,0,0,0,0 DCB 08DH DCB 000H DCB 027H,0FEH CSEG AT 2080H INIT:LD SP,#0100H ;设堆栈指针 LD M_X,#SCRNW/2;初始化指针 LD M_Y,#SCRNH/2 ANDB LRB_OK,#7CH LD M_P,#M_BUF CLRB INT_PEND ;清除中断 LDB INT_MASK,#40H ;开串行中断 LDB AL,SP_STAT ;清除RI/TI LDB SP_CON,#09H ;设串口模式 LDB BAUD_RT,#9BH ;1200,12MHz LDB BAUD_RT,#80H EIT ANDB IOP2,#0FEH ;P2.2=0 LD AX,#8000H ;延迟200ms DLY0:DEC AX JNE DLY0 LDB AL,LRB_OK LBS AL,7,M_OK ANDB INT_MASK,#0BFH M_OK:NOP ; … … … ;清单二:取鼠标消息, AL=鼠标及按钮状态,BX=X,DX=Y GET_M:ANDB INT_MASK,#0BFH LDB AL,LRB_OK ;取鼠标信息 LD BX,M_X LD DX,M_Y ORB INT_MASK,#40H RET ; ;清单三:串口中断服务程序 SIOINT:PUSHF ;中断服务 PUSH AX LDB AL,SBUF LDB AH,SP_STAT JBS AL,6,ISB0 ;第一个字节 CMP M_P,#M_BUF JNE SIO_1 SJMP C99 ;缓冲区空,出错; SIO_1:CMP M_P,#M_BUF+2 JH C98 ;缓冲区满,出错 STB AL,[M_P]+ ;存储收到字节 CMP M_P,#M_BUF+3 JNE C99 LD M_P,#M_BUF ;已收到完整命令 GOLR:LDB AL,1[M_P] ;处理X方向位移 SHLB AL,#2 EXTB AL SHRA AX,#2 ADD M_X,AX CKL:CMP M_X,#0 JGE CKR CLR M_X CKR:CMP M_X ,#SCRNW JLT GOUD LD M_X,#SCRNW GOUD:LDB AL,2[M_P] ;处理Y方向位数 SHLB AL,#2 EXTB AL SHRA AX,#2 ADD M_Y,AX CKU:CMP M_Y,#0 JGE CKD CLR M_Y CKD:CMP M_Y,#SCRNH JLT ELRUD LD M_Y,#SCRNH ELRUD:SJMP C98 ISB0:STB AL,M_BUF ANDB AL,#0FH CMPB AL,#03H JE C97 ;=X3H, CMPB AL,#0CH JE C97 ;=XCH CMPB AL,#0DH JNE C98 ;<>XDH ORB LRB_OK,#80H ;确认鼠标正常 C97:ANDB AL,M_BUF,#30H ANDB LRB_OK,#80H ORB LRB_OK,AL ;更新左右键状态 LD M_P,#M_BUF+1 SJMP C99 C98:LD M_P,#0000H C99:POP AX POPF RET; END 2 鼠标接口程序设计接口原理图 五、结束语 无线鼠标作为鼠标发展的新形式, 减少了设备之间连线的繁琐, 扩大了鼠标使用的空间, 在许多特殊场合得到了广泛的利用。基于MEMS 的无线鼠标, 在继承这些优点的基础上, 运用MEMS 表面微加工和体硅加工的特殊工艺, 集成微加速度计、单片机和射频收发器, 使系统在尺寸、性能等方面均优于传统的鼠标。随着信息技术和MEMS 技术的继续发展, 基于MEMS 技术的无线鼠标会更加可靠、方便。 六、 参考文献: [1] 张建斌. 基于AT89C2051 单片机的无线鼠标的设计[A].2001 嵌入式系统及单片机国际学术交流会论文集第四篇网络、通信与数据传送[C]: 396- 399. [2]朱卫华, 黄智伟. 一种微机与单片机无线串行通信的设计方法[J]. 南华大学学报, 2002,16 (3): 67- 69. [3]张崇, 于小林, 刘建平. 单片2.4 G Hz 无线收发一体芯片nRF2401 及其应用[J].国外电子元器件,2004,(6): 34- 36. [4] 杨龙, 刘岩, 董绪荣. USB 设备驱动程序的设计与开发[J]. 装备指挥技术学院学报, 2003,14(1):90- 93.
/
本文档为【无线鼠标毕业2】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索