基于单片机的无线鼠标的设计_第1页
基于单片机的无线鼠标的设计_第2页
基于单片机的无线鼠标的设计_第3页
基于单片机的无线鼠标的设计_第4页
基于单片机的无线鼠标的设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、淮北煤炭师范学院学士毕业论文 论文题目2 基于单片机的无线鼠标的设计基于单片机的无线鼠标的设计摘要 随着计算机的不断普及,计算机周边器件之中的鼠标也得到了迅速的发展。无线鼠标则是电脑周边器件与无线通信技术的完美结合物。msp430单片机是一种通常用于家庭的高性能低功耗的人机接口设备(hid)应用,如:无线鼠标或键盘。本应用报告描述了一个全功能的无线鼠标的参考设计,由msp430单片机组成的超低功耗微控制器。该方案解决了无线鼠标三个部分,包括avago technologies的超低功耗的adns - 3040光学鼠标传感器,以及trf7950 27兆赫发射模块,相应的usb接收适配器都进行了讨

2、论。完整的硬件示意图,无线鼠标发射原理图,usb无线接收示意图,与源代码都提供了一个完整的参考设计方案。可以实现基于msp430单片机无线鼠标的设计。 关键词 单片机;光学鼠标传感器;发射模块;usb接收适配器wireless mouse with mcu designschool of physics and electronic information, huaibei coal industuy terachers college, 235000abstract wireless mouse is a computer peripheral device and wireless com

3、munication technology the perfect combination of things. msp430 mcu is a commonly used family of many high-performance low-power human interface device (hid) applications, such as: wireless mouse or keyboard. this application report describes a fully functional wireless mouse reference design, from

4、the composition of ultra-low power msp430 mcu microcontrollers. the program solves the wireless mouse three parts, including avago technologies of the ultra-low-power adns - 3040 optical mouse sensor, as well as the trf7950 27 mhz transmitter module, the corresponding usb receiver adapters are discu

5、ssed. a complete hardware schematic diagram launches wireless mouse, usb wireless receiver schematic, with the source code provides a complete reference design. based on msp430 mcu enables wireless mouse design.keywords microcontroller; optical mouse sensor; transmitter module; usb receiver adapter目

6、次1导言52 鼠标发射机的硬件体系结构62.1 msp430 单片机62.1.1 msp430 单片机的特点72.1.2 振荡器和定时器92.1.3 msp430单片机i/o端口控制特点102.1.4 msp430与iic总线器件接口112.1.5 调试接口122.1.6 中断122.2 adns-3040光学鼠标传感器132.3 27 - mhz的trf7950发射模块142.4 机械组件(滚轮和按钮)153 usb接收适配器163.1 trf 7900 27-mhz的rf接收器163.2 cy7c63743usb微控制器173.3 msp430低功耗模式184 鼠标发射机:软件体系结构18

7、4.1 滚动轮解码原理图:184.2 adns-3040光学鼠标传感器设备的驱动程序184.3 米勒编码体系流程图和循环校验码204.3.1 米勒编码204.3.2 循环校验编码204.4 trf7950发射机设备驱动程序215 结论226 参考文献22附录一:无线鼠标发射原理图23附录二:usb接收适配器原理图24附录3 源代码:261导言在电子技术日益发展的今天, 由于配件价格的不断下调,人们逐渐从2d中脱离出来,逐渐迈向了3d,有些有远见的厂家从价格战中脱离出来,于是科技含量较高的无线技术应运而生。随着科学技术的发展,计算机已经走进千家万户,但人们常用的都是手柄式光电鼠标。无线鼠标作为一

8、个研究的新课题,最早提出的无线鼠标的概念主要是为了解决在多媒体教室中,普通鼠标确实很不方便,于是无线鼠标应运而生。采用先进的rf技术,可以让您在任何位置、任何方向工作,只需将遥控器对准计算机或接收器,就能给您带来真正的无“线”自由。并且外观时尚靓丽。四个方向健让鼠标移动更加轻松、定位更加准确、点击快捷方便,比轨迹球好多了。自动采用原有鼠标的驱动程序,即插即用,安装简便,完全不影响计算机原有程序的运行。而无线鼠标就是这其中比较另类的一支。这些产品大多采用红外技术进行遥控,使用时距离可以控制在1020米以类,一方面这种技术可以让用户远离显示器的辐射,间接保护了用户的视力。另一方面也避免了采用同一种

9、姿势给用户带来的疲劳感。当然应用无线技术的鼠标使用起来十分方便,省去了鼠标线带来的累赘。对那些爱护个体健康,追求时尚的个性用户,从经济到心理上多可以完全被接受。从这个角度上讲,无线遥控鼠标具有广阔的发展空间。所以我们今天进一步研究无线鼠标是很有必要的。无线鼠标的设计必须以维持高性能,低功耗,延长电池寿命。选msp430f1222单片机是由于相对较少的针脚数(28针)。msp430工作在两种模式下:工作模式和睡眠模式。当鼠标检测数据时:msp430停留在主动模式下为80毫秒,80毫秒之后msp430自动进入睡眠模式,直到鼠标移动检测光学传感器或按钮被按下。当鼠标在深度睡眠模式时,消耗小于4毫安的

10、电流。所以用msp430设计无线鼠标是超低功耗的。2 鼠标发射机的硬件体系结构2.1 msp430 单片机msp430 系列是 16 位、精简指令集、超低功耗的混合型单片机,1996年问世,以及极低的功耗、丰富的片内外设和方便灵活的开发手段,已成为众多单片机系列中的一颗新星。msp430 单片机的发展过程有三个阶段:开始阶段:从1996 年推出 msp430 系列开始到 2000 年。蓬勃发展阶段: ti公司在2002年底和2003年期间又陆续推出了 f15x 和 f16x 系列的产品。 在这一新的系列中,有了两个方面的发展:一是从存储器方面来说,将 ram 容量大大增加,如 f1611 的

11、ram 容量增加到了 10kb 。这样一来,希望将实时操作系统( rtos )引入 msp430 的,就不会因 ram 不够而发愁了。二是从外围模块来说,增加了 iic、 dma、 dac12和svs等模块。 在 2003 年中, ti 公司还推出了专门用于电量计量的 msp430fe42x 和用于水表、气表、热表上的具有无磁传感模块的 msp430fw42x 单片机。我们相信由于 msp430 的开放性的基本架构和新技术的应用,新的 msp430 的产品品种必将会不断出现。 左按键 hlmp-ed80传感器 发光二极管 中间的按键 右按键 msp430单片机 前按键 adns-3040光学

12、鼠标传感器 后按键 连接按键 发光二极管 滚动轮 trf发射模块 电池 图 1 鼠标发射系统框图2.1.1 msp430 单片机的特点 1强大的处理能力。 msp430 系列单片机是一个 16 位的单片机,采用了精简指令集( risc )结构,具有丰富的寻址方式( 7 种源操作数寻址、 4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在 8mhz 晶体驱动下指令周期为 125 ns 。这些特点保证了可编制出高效率的源程序。 在运算速度方面, msp430 系列单片机能在 8mhz 晶体

13、的驱动下,实现 125ns 的指令周期。 16 位的数据宽度、 125ns 的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如 fft 等)。 msp430 系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的备用状态时,用中断请求将它唤醒只用 6us 。 2超低功耗 msp430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行时钟方面都有其独到之处。首先, msp430 系列单片机的电源电压采用的是 1.83.6v 电压。因而可使其在 1mhz 的时钟条件下运行时, 芯片的电流会在 200400ua 左右,时

14、钟关断模式的最低功耗只有 0.1ua 。 其次,独特的时钟系统设计。在 msp430 系列中有两个不同的系统时钟系统:基本时钟系统和锁频环( fll 和 fll+ )时钟系统或 dco 数字振荡器时钟系统。有的使用一个晶体振荡器( 32768hz ) , 有的使用两个晶体振荡器)。由系统时钟系统产生 cpu 和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。 由于系统运行时打开的功能模块不同,即采用不同的工作模式,芯片的功耗有着显著的不同。在系统中共有一种活动模式( am )和五种低功耗模式( lpm0lpm4 )。在等待方式下,耗电为 0.7ua ,在

15、节电方式下,最低可达 0.1ua 。 系统工作稳定 上电复位后,首先由 dcoclk 启动 cpu ,以保证程序从正确的位置开始执行,保证晶体振荡器有足够的起振及稳定时间。然后软件可设置适当的寄存器的控制位来确定最后的系统时钟频率。如果晶体振荡器在用做 cpu 时钟 mclk 时发生故障, dco 会自动启动,以保证系统正常工作;如果程序跑飞,可用看门狗将其复位。 丰富的片上外围模块 msp430 系列单片机的各成员都集成了较丰富的片内外设。它们分别是看门狗(wdt)、模拟比较器 a 、定时器 a(timer_a)、定时器 b (timer_b)、串口 0、1(usart0 、1)、硬件乘法器

16、、液晶驱动器、 10 位 /12 位 adc 、i 2 c 总线直接数据存取(dma)、端口 o (p0)、端口 16 (p1p6)、基本定时器 (basic timer)等的一些外围模块的不同组合。其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出 a/d 转换器;16 位定时器(timer_a 和 timer_b)具有捕获/比较功能,大量的捕获/比较寄存器,可用于事件计数、时序发生、pwm 等;有的器件更具有可实现异步、同步及多址访问串行通信接口可方便的实现多机通信等应用;具有较多的 i/o 端口,最多达 6*8 条 i/o 口线 p0 、p1 、p2

17、 端口能够接收外部上升沿或下降沿的中断输入; 12/14 位硬件 a/d 转换器有较高的转换速率,最高可达 200kbps ,能够满足大多数数据采集应用;能直接驱动液晶多达 160 段;实现两路的 12 位 d/a 转换;硬件iic 串行总线接口实现存储器串行扩展;以及为了增加数据传输速度,而采用直接数据传输(dma)模块。 msp430 系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。 方便高效的开发环境 目前 msp430 系列有 opt型、 flash 型和 rom 型三种类型的器件,这些器件的开发手段不同。对于 opt 型和 rom 型的器件是使用仿真器开发成功之后在烧写

18、或掩膜芯片;对于 flash 型则有十分方便的开发调试环境,因为器件片内有 jtag 调试接口,还有可电擦写的 flash 存储器,因此采用先下载程序到 flash 内,再在器件内通过软件控制程序的运行,由 jtag 接口读取片内信息供设计者调试使用的方法进行开发。这种方式只需要一台 pc 机和一个 jtag 调试器,而不需要仿真器和编程器。开发语言有汇编语言和 c 语言。msp430系列单片机,是一种具有超低功耗特性的功能强大的单片机。主要有以下几个特点:1)16位精简指令结构。 2)内含10,12,14位快速adc/slop adc。 3)内含flash rom多致60k字节,多致2k r

19、am 。4)片内资源丰富,有adc,pwm,若干time,串行口,watchdog,比较器,模拟信号。5)有多种省电模式,功耗特别省,一颗电池可工作10年,在液晶显示时也能达到0.8ua的低电源消耗。 6)开发简单,仿真器价格低廉,不需昂贵的编程器。 同其它微控制器相比,带flash的微控制器可以将功耗降低5倍,既缩小了线路板空间又降低了系统成本。 高效16位risccpu可以确保任务的快速执行,缩短了工作时间。大多数指令可在一个时钟周期里完成 6微秒的快速启动时间可以延长待机时间并使启动更加迅速,降低了电池的功耗。 msp430产品系列可以提供多种存储器选择,从14位adcs到lcd驱动电路

20、的混合信号外设,简化了各类应用中 msp430的设计 esd保护,抗干扰力特强,1.8v-3.6v低电压供电。msp430系列超低功耗微控制器,结合5个低功耗模式,实现了延长电池的寿命。该设备有功能强大的16位cpu,16位寄存器和常数发生器。在数控振荡器器允许唤醒从低功耗模式为主动模式。在msp430 x11xx(20引脚减少外围设备)和msp430x12x2(28引脚器件)该msp430x12x2系列单片机具有内置通信功能。使用异步(uart),以及同步(spi)的协议。2.1.2 振荡器和定时器msp430根据型号的不同最多可以选择使用3个振荡器。我们可以根据需要选择合适的振荡频率,并可

21、以在不需要时随时关闭振荡器,以节省功耗。这3个振荡器分别为: 1.dco 数控rc振荡器。它在芯片内部,不用时可以关闭。dco的振荡频率会受周围环境温度和msp430工作电压的影响,且同一型号的芯片所产生的频率也不相同。但dco的调节功能可以改善它的性能,他的调节分为以下3步:a:选择bcsctl1.rselx确定时钟的标称频率;b:选择dcoctl.dcox在标称频率基础上分段粗调;c:选择dcoctl.modx的值进行细调。 2.lfxt1 接低频振荡器。典型为接32768hz的时钟振荡器,直接连接在xin与xout之间,此时振荡器不需要接负载电容。也可以接450khz8mhz的标准晶体振

22、荡器,此时需要接负载电容.lxft1产生的频率信号为aclk.低速时钟需要上百毫秒的建立时间才能稳定下来. 3.xt2 接450khz8mhz的标准晶体振荡器。外部标准晶体振荡器接在xt2in和xt2out之间,此时需要接负载电容,不用时可以关闭。 低频振荡器主要用来降低能量消耗,如使用电池供电的系统,高频振荡器用来对事件做出快速反应或者供cpu进行大量运算。 msp430的3种时钟信号:mclk系统主时钟;smclk系统子时钟;aclk辅助时钟。 1)mclk系统主时钟。除了cpu运算使用此时钟以外,外围模块也可以使用。mclk可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作

23、为其信号源。 2)smclk系统子时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。smclk可以xt2clk或者dcoclk振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。3)aclk辅助时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。但aclk只能由lfxt1进行1、2、4、8分频作为信号源。可以作为后台时钟用来唤醒cpu。 4)aclk/n, ack缓冲输出,他可以有acl.1.2.4.8分频获得 ,且只能为外部所用. puc复位后,mclk和smclk的信号源为dco,dco的振荡频率为800khz。aclk的信号源为lfxt1。 msp430

24、内部含有晶体振荡器失效监测电路,监测lfxt1(工作在高频模式)和xt2输出的时钟信号。当时钟信号丢失50us时,监测电路捕捉到振荡器失效。如果mclk信号来自lfxt1或者xt2,那么msp430自动把mclk的信号切换为dco,这样可以保证程序继续运行。但msp430不对工作在低频模式的lfxt1进行监测。在msp430的主动模式(通过按键从深度睡眠中醒来),然后从新调整外部32.768khz的时钟晶振,以节省电力。timera有2个中断向量,timera0,timera1。timera0只针对ccr0的计数溢出。timera1再查询taiv后可知道是ccr1,还是ccr2,亦或taifg

25、引起的,至于taifg是什么情况下置位的,则要看ta工作的模式。 具体看用户手册,还有一点ta本身有pwm输出功能,无须借用中断功能。在这个问题上经常出现应用弯路的是如何结合ta和ad实行定时采样的问题,很多人都是在ta中断里打开ad这样来做。这是不适宜的,因为430 的adc10,adc12模块均有脉冲采样模式和扩展采样模式。只要选择ad是由ta触发采样,然后把ta设置成pwm输出模式,当然输出pwm波的都是特殊功能脚,但是在这里它是不需要输出的,所以引脚设置不必理会。值得关心的就是pwm的频率,也就是你ad的采样率。图2 msp430的总线转换2.1.3 msp430单片机i/o端口控制特

26、点与8031单片机相比,msp430的i/o端口的功能要强大的多,其控制的方法也更为复杂。msp430的i/o端口可以实现双向的输入、输出;完成一些特殊功能如:驱动lcd、a/d转换、捕获比较等;实现i/o各种中断。msp430采用了传统的8位端口方式保证其兼容性,即每个i/o端口控制8个i/o引脚。为了实现对i/o端口每一个引脚的复杂控制,msp430中的每个i/o口都对应一组8位的控制寄存器(如图3)。寄存器中的每一位对应一个i/o引脚,实现对该引脚的独立控制。寄存器的功能和数目是由该i/o口所能完成的功能以及类型确定的。 图3为msp430的一个i/o端口的控制结构示意图。对于最基本的只

27、能完成输入、输出功能的i/o端口其控制寄存器只有3个。其中,输入寄存器保存输入状态;输出寄存器保存输出的状态,方向寄存器控制对应引脚的输入、输出状态。本文中用来实现i2c总线接口的p6.6、p6.7都属于这类的端口。此外,有些i/o端口不但可以用作基本的输入输出,而且可以用作其他用途,比如可以作为lcd的驱动控制引脚。这类端口的控制功能寄存器实现引脚功能状态的切换。再者,有一类端口不但可以完成上述两种端口的功能,而且可以实现中断功能。该类端口拥有图1中所有的寄存器,中断触发的方式以及中断的屏蔽性都可以通过相应的寄存器控制。本文中使用的p2.0就属于该类端口,利用它来接收lm92发出的中断。通过

28、上述的控制结构,msp430的i/o端口可以实现很丰富的功能。不仅如此,其中一些i/o口还可以与msp430中的特殊模块相结合完成更为复杂的工作。如与捕获比较模块相结合可以实现串行通信,与a/d模块结合实现a/d转换等。此外,msp430 i/o端口的电器特性也十分突出,几乎所有的i/o口都有20ma的驱动能力,对于一般的led、蜂鸣器可以直接驱动无需辅助电路。许多端口内部都集成了上拉电阻,可以方便与外围器件的接口。 图3 msp430的一个i/o端口的控制结构示意图2.1.4 msp430与iic总线器件接口 通过上述的介绍了解了msp430中i/o口的一些控制特点。以下介绍如何利用这些特点

29、实现i2c总线的接口。如图2所示,使用41系列单片机的p6.6产生i2c总线的时序同步信号;使用p6.7完成i2c总线的串行数据输入输出;利用p2.0接收lm92产生的中断信号。基于i2c总线规范,通过对lm92的a0、a1和at240的a0、a1、a2设定不同的器件地址,两个器件可以共用scl、sda。 图4 msp430接口电路示意图2.1.5 调试接口msp430系列产品中,采用的是4线jtag接口。也即tms(模式选择)、tck(jtag时钟信号)、tdo(数据输出)、tdi(数据输入)。在4线制的jtag接口中,ti公司有定义一个常规的14pin接口方式,而在msp430f2系列产品

30、中,包含了两种jatg接口界面,一种是上述所说的4线制jtag。另一种是msp430f20xx系列产品中名为“spy bi-wire”的调试接口,此接口方式采用是2线制。分别为sbwtck(时钟)、sbwtdo(数据线),加上gnd、vcc两引脚此接口只需4根引线。目前支持2线制接口的仿真器有ti ezsp430 usb接口仿真器。2.1.6 中断中断是msp430微处理器的一大特色,有效地利用中断可以简化程序和提高执行效率。msp430的几乎每个外围模块都能够产生中断,为msp430针对事件(即外围模块产生的中断)进行的编程打下基础。msp430在没有事件发生时进入低功耗模式,事件发生时,通

31、过中断唤醒cpu,事件处理完毕后,cpu再次进入低功耗状态。由于cpu的运算速度和退出低功耗的速度很快,所以在应用中,cpu大部分时间都处于低功耗状态。 msp430的中断分为3种:系统复位、不可屏蔽中断、可屏蔽中断。(1)系统复位的中断向量为0xfffe。(2)不可屏蔽中断的中断向量为0xfffc。响应不可屏蔽中断时,硬件自动将ofie、nmie、accvie复位。软件首先判断中断源并复位中断标志,接着执行用户代码。退出中断之前需要置位ofie、nmie、accvie,以便能够再次响应中断。需要特别注意点:置位ofie、nmie、accvie后,必须立即退出中断相应程序,否则会再次触发中断,

32、导致中断嵌套,从而导致堆栈溢出,致使程序执行结果的无法预料。(3)可屏蔽中断的中断来源于具有中断能力的外围模块,包括看门狗定时器工作在定时器模式时溢出产生的中断。每一个中断都可以被自己的中断控制位屏蔽,也可以由全局中断控制位屏蔽。 多个中断请求发生时,响应最高优先级中断。响应中断时,msp430会将可屏蔽中断控制位sr.gie复位。因此,一旦响应了中断,即使有优先级更高的可屏蔽中断出现,也不会中断当前正在响应的中断,去响应另外的中断。但sr.gie复位不影响不可屏蔽中断,所以仍可以接受不可屏蔽中断的中断请求。 中断响应的过程:(1)如果cpu处于活动状态,则完成当前指令;(2)若cpu处于低功

33、耗状态,则退出低功耗状态;(3)将下一条指令的pc值压入堆栈;(4)将状态寄存器sr压入堆栈;(5)若有多个中断请求,响应最高优先级中断;(6)单中断源的中断请求标志位自动复位,多中断源的标志位不变,等待软件复位;(7)总中断允许位sr.gie复位。sr状态寄存器中的cpuoff、oscoff、scg1、v、n、z、c位复位;(8)相应的中断向量值装入pc寄存器,程序从此地址开始执行。中断返回的过程:(1)从堆栈中恢复pc值,若响应中断前cpu处于低功耗模式,则可屏蔽中断仍然恢复低功耗模式;(2)从堆栈中恢复pc值,若响应中断前cpu不处于低功耗模式,则从此地址继续执行程序。 图5 中断地址表

34、2.2 adns-3040光学鼠标传感器adns-3040是一种超低功耗的光学导航传感器,它有新的低功耗构架和自动电源管理模式,非常实用与电池的应用,如:无线输入设备。ands-3040是高速的运动检测,它有一个振荡器和led驱动器,以尽量减少外部元件。adns-3040 通过adns-3120-001透镜,构成一个完整的和小巧的鼠标跟踪系统。这意味着高可靠性,为用户减少维护。该传感器是通过寄存器编程,通过4线spi端口。他是采用20脚dip封装。adns-3040是采用光学导航技术,该措施是采用光学方式连续采集表面图像和用数学方法确定方向和运动幅度。adns-3040包含一个图像采集系统(i

35、as),和一个数字信号处理器(dsp)和一个四线串行端口。在图像采集系统通过透镜精微的表面图像和照明系统。这些图像是通过数字信号处理器来确定方向和距离运动。特征:(1) 低功耗架构(2) 自动调整省电(使电池的寿命很长)(3) 高速运动检测(4) 内部振荡器(5) 宽工作电压:2.5v至3.6v(6) 四线串行端口 2.3 27 - mhz的trf7950发射模块trf7950发射模块通过标准的3线spi接口对msp430进行通信,两个gpio引脚用于trf7950设备。 vcc msp430单片机 gnd trf7950发射模块 spi miso spi misispi sclkchip s

36、clectfsk date 图6 无线鼠标的主板2.4 机械组件(滚轮和按钮) 除了光学鼠标移动和运动检测,机械部件一般包括滚轮和各种按钮。在这个设计中,一共有六个按钮可以实施:左,滚动轮(中),右,前进,后退,和连接。基于主机的电脑鼠标驱动程序的执行情况,左,滚动,和右按钮可能有标准的定制功能。连接按钮是用来连接与鼠标在pc端相应的接受适配器。 光机式鼠标目前有2种.1种是ps/2接口的,另1种是usb接口的。但鼠标控制器输人部分的电路原理大体相同,都是通过塑胶滚球带动译码轮转动,再通过译码轮控制光电祸合器来实现鼠标的移动。光机式鼠标器底部有1个露出一部分的塑胶小球,当鼠标器在操作桌面上移动

37、时,小球随之转动,在鼠标器内部装有3个滚轴与小球接触,其中有2个分别是x轴方向和y轴方向滚轴,用来分别测量x轴方向和y轴方向的移动量,另1个是空轴,仅起支撑作用。拖动鼠标器时,由于小球带动3个滚轴转动,x轴方向和y轴方向滚轴又各带动一个转轴(称为译码轮)转动.译码轮(见图1)的两侧分别装有红外发光二极管和光敏传感器,组成光电祸合器.光敏传感器内部沿垂直方向排列有2个光敏晶体管a和b.由于译码轮有间隙,故当译码轮转动时,红外发光二极管发出的红外线时而照在光敏传感器上,时而被阻断,从而使光敏传感器输出脉冲信号。光敏晶体管a和b被安放的位置使得其光照和阻断的时间有差异,从而产生的脉冲a和脉冲b有一定

38、的相位差,利用这种方法,就能测出鼠标器的拖动方向。从硬件的角度来看,所有按钮都实施了标准的按键开关和100的上拉电阻。产生中断,每当上升或下降沿时这些按钮的输入的引脚没有检测到,可以收集到msp430的各种按钮状态和发送状态回到接收适配器。滚动位置检测室使用标准的双通道正交编码器芯片(其中包括两个传感器等)和一个光学滚轮。编码器及其应用概述:编码器是一种机电装备,可以用来测量机械运动或者目标位置。大多数编码器都使用光学传感器来提供脉冲序列形式的电信号,这些信号可以依次转换成运动、方向或位置信息。旋转编码器可以用来测量轴的旋转运动。旋转编码器的基木组成部分,包括一个发光一极管(led),一个码盘

39、,以及码盘背而的一个光传感器。这个码盘安置在旋转轴上,上而按一定编码形式排列着不透光和透光的扇形区域。当码盘转动时,不透光扇区能够遮挡光线,而透光扇区则允许光线透过。这样就产生了方波脉冲,可以编译成相应的位置或运动信急。编码器每转通常分为100到6000个扇区。这就表明,100个扇区的编码器可以提供3.6度的精度,而6000个扇区的编码器则可以提供0.06度的精度。线性编码器与旋转编码器的工作原理类似。它采用了一条固定的不透光带取代了旋转码盘,在不透光带表而上有一些透光缝隙,而led探测器组件则被附在运动体上。仅有一路脉冲输出的编码器不能确定旋转的角度,所以用处不大。如果使用两路码道,其扇区之

40、间的相位差为90度,那么通过该正交编码器的两路输出通道就可以确定位置和旋转的方向两个信急。例如,如果通道a相位超前,码盘就以顺时针旋转。如果通道b相位超前,那么码盘就是以逆时针旋转。因此,通过监控脉冲的数目和信号a, b之间的相对相位信急,就可以同时获得旋转的位置和方向信息。除此之外,有些正交编码器还包含被称为零信号或者参考信号的第二个输出通道。这个通道每旋转一圈输出一个单脉冲。你可以使用这个单脉冲来精确计算某个参考位置。在绝大多数编码器中,这个信号称为z轴或者索引。 传感器间隔/ 4度 外槽间隔度光源(led) / 4 ch.a轴旋转 ch.b 增量式光电编码器 正交输出传感器 图7 正交编

41、码器实现3 usb接收适配器 3.1 trf 7900 27-mhz的rf接收器该trf7900a是双集成射频收发器(hid)的接口设备设计的。工作在27mhz,它集成了多个组件(锁相环,射频混频器,调谐电路等)这种集成降低了组件,制造和系统成本。特征:(1) 23个分立器件集成一个芯片(2) 射频调谐器,混频器,晶体管,线圈上的所有功能芯片(3) 集成锁相环(4) 8用户可选频率(5) 内部产生6-mhz的驱动器 usb微控制器(6) 接收信号强度指示器(7) 5v电源 应用:(1) 无线鼠标(2) 人机接口设备(3) 无线控制(4) 遥控玩具(5) 无线耳机(6) 远程仪器3.2 cy7c

42、63743usb微控制器鼠标发射机:软件体系结构 (每10毫秒) 中断 timer_a1 ccr2左按钮(1) 系统模块 中断 更新闲置 超时 中断 运动 传感器 1服 计数器 2服 端口2中断滚动按钮(2) 务程 务程 序 cpu循环处理 序 (1)运动数据处理右侧按钮(3) (2)工艺装订包 (3)进程按钮数据 连接按钮 前进按钮(4) (4)更新滚轮 qep (5)发送车轮位置 (6)如果80秒毫无作为,后退按钮 (5) 进入睡眠模式,否则重复 timer_a0 循环 中断 滚轮模块 发射模块timer_a1 ccr1 (1)轮开启 (1)建立原始数据包中断 (2)记录滚轮位置 (2)提

43、交数据包发送队列(每2毫秒) (3)轮关闭 (3)打开射频发射器 (4)更新qep法 (4)米勒编码方案 (5)更新超时计数器 (5)射频发射器开关打开 图8 鼠标发射机软件流程图3.3 msp430低功耗模式msp430系列单片机的各个模块都可以独立运行,如定时器、输入/输出端口、a/d转换、看门狗、液晶显示器等都可以在cpu休眠的状态下独立工作。若需要主cpu工作,任何一个模块都可以通过中断唤醒cpu,从而使系统以最低功耗运行。让cpu工作于突发状态可以充分利用cpu的低功耗性能。通常,使用软件将cpu设定到某一低功耗模式,在需要时使用中断将cpu从休眠状态中唤醒,完成工作后又可以进入相应

44、的休眠状态。如:让cpu工作在lpm3状态,通过中断事件转换到am活动模式,根据运行需要,又可以从am状态进入相应的低功耗模式:lpm0/lpm3或lpm4。系统的这些低功耗特性是靠系统对中断的响应来实现的。系统响应中断的过程:(1)硬件自动中断服务。包括pc入栈、sr入栈;中断向量赋给pc;gie、cpuoff、oscoff和scg1清除;以及ifg标志位清除(单源中断标志)。(2)执行中断处理子程序。(3)执行reti指令(中断返回),包括sr出栈;pc出栈。4 鼠标发射机:软件体系结构4.1 滚动轮解码原理图: (10)(01) (00)(11) 增量计数器 减量 10 计数 00 正交

45、解码器 11 ch.a ch.b 01 图9 正交解码状态机4.2 adns-3040光学鼠标传感器设备的驱动程序void spi0_writebyte(unsigned char data);/ usage: transmits an 8-bit data value out via the spi0/paramters: 8-bit data to be transmitted/returns: nothingvoid ands3040_delayoperation(void);/ usage: execute a set delay to separate each access to

46、the adns-3040/paramters: noneunsigned char adns3040_readregister(unsigned char regaddress)/ usage: reads a byte from the adns3040/paramters: desired register address/returns: most currently received datavoid adns3040_writeregister(unsigned char regaddress, unsigned char data) /usage: writes a byte f

47、rom the specified ands3040 register/parameters: desired register address & data/ returns: nothingvoid adns3040_readmotionburst(uns char *motion, uns char *deltax, uns char *deltay);/ usage: reads the motion, delta_x, and delta_y registers in a burst sequence/parameters: addresses for the locations for motion , deltax,&deltay data to be modified/note: this sequence of operations will automatically clear the motion bit void adns3040_enable(void) / usage: asserts (active low) /ncs for the adns-3040 sensor/ parameters: none/

温馨提示

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

评论

0/150

提交评论