基于USB的无线触摸鼠标板的设计

最新更新时间:2012-05-07来源: OFweek关键字:USB  鼠标触摸板  单片机 手机看文章 扫描二维码
随时随地手机看文章

  随着IT技术的发展,多媒体教学已经在学校得到广泛的应用。但传统的多媒体教学存在互动性不强等缺点,不利于师生的交流和沟通,基于这种情况,我们设计和实现了一种基于USB无线触摸鼠标板,使得教师在学生座位旁依然可以像站在讲台那样自由控制电脑。

  1系统组成

  本系统可以大致分为两个部分,其中一端是手持设备终端,提供PS/2接口供鼠标触摸板接入使用;另一端是PC接入端,通过USB接口与主机相连,二者之间通过无线传输协议联系在一起。整体构架图如图1所示。

 

图1整体构架图

  因为设计所选用的CC2420集成了发送和接收功能在同一芯片中,故在手持终端和接入设备部分的无线收发器可复用同一模块,无需重新设计。而在PC端,为了实现设计的普遍适用性以及即插即用的特性,对接人设备采用了HID类设计从而使PC端无需增加任何软件,即可使用操作系统提供的设备驱动程序。

  本设计的实验开发板由笔者自行设计实现,不仅包括了本设计所需要的功能,还有调试功能以及扩展功能,供日后有需要时使用。

  2 硬件设计与实现

  2.1手持端硬件设计与实现

  在手持端,主要包括的模块有MCU控制模块,无线发送模块,PS/2接口模块和调试模块等。各模块的功能示意图如图2所示:

 

图2手持端模块图

  2.1.1 MCU PIC整体控制模块

  MCU控制着整个系统的运行,包括软件的触发、运行,以及各个部分的协调工作。整个系统的软件都是存储并运行在MCU当中,在触摸板事件响应方面采用的是中断触发。而PS/2接口实际上只需两条IO线,也就是说其只占用了MCU两个管脚资源,其中一个为普通IO口,另一个则是中断口,考虑到中断12的可能冲突,可以通过跳线方式自行选择。在CC2420方面,亦采用电平跳变中断检测其SFD及FIFOP的中断请求,而其数据通信则是使用芯片集成的SPI接口中的RCA(SO)、RC5(si)、rico(CS-N)、RC3(SCK)等4条线来实现。

  2.1.2串口模块

  由于USB的数据信息在其未被主机正确识别之前无法得到,并且在无线传输方面也需将数据及控制信息等传回主机以供调试,所以在开发板上另外设计一个串口调试模块,方便设计过程中的调试需要。

  RS232规范使用12V供电,而开发板上使用的电压为3.3V,这样如果直接将数据线直接连到RS232接口上会将实验板上的元件烧毁。为了实现不同电压之间的连接,采用了RS232电平转换芯片MAX3232.利用这个芯片我们可将12V电压的数据传输转换为3V,这样就可以达到将数据与主机进行交互的目的。在数据传输线路上,由于PICl6F877A内置了串口接口,所以只需使用RC6、RC7这两根线就可以实现数据的传输,经过MAX3232的电平变换到达主机。

  2.1.3无线传输模块

  考虑到工艺问题,靠手工无法完成,所以采用模块购买的方式来获得CC2420的使用,购买的模块仅有非常简单的外围器件,以及12根控制引脚外引(包括电源和地),这样我们就可以通过MCU利用这12根引脚控制CC2420的工作了。根据该模块的外接引脚,在实际的电路设计中设计了一个两排12根线的接口,可以直接接到MCU控制接口,因为MCU和CC2420都是采用3.3V的电压,所以不会有电压过高的问题。

  在CC2420的电路设计过程中发现,对于控制引脚SFD、FIFOP这两个用于检测中断接受数据的接口尤其重要,如果在这两条线路出现了干扰的话,在软件的实现方面将产生很多不必要的软件开销,例如去除干扰等。所以在PCB设计的时候要对这两条线加宽,不要横跨电源和地,这样会产生很大的干扰。

  2.2 PC接入端硬件设计与实现

  此部分将介绍接人设备的硬件设计与实现,在串口调试部分采用和手持端同样的硬件设计,而在无线接受模块,因为CC2420集合接收发送功能在同一芯片中,而应用电路也采用同样电路,故在接入设备部分可以使用相同模块。所以在这里将主要介绍USB模块的设计与实现。

  在USB接IZl方面,为了使用上的方便,将设备设计成标准的HID类鼠标,这样可以直接使用操作系统自带的驱动程序而无需安装任何的驱动软件。在供电方面使用标准USB接口提供的5V电源为USB芯片供电,接人端的主要硬件架构可用图3所示:

 

图3接入端硬件构架图

  在USB接口芯片的连接上,采用了与MCU控制器的INT0外部中断的方式连接,这样可以保证USB数据传输的实时性,而其他的控制接El使用一般的数据IO口,其8位数据传输口使用PICl6F877A的RD口连接。

  3 系统软件设计与实现

  在本部分,主要将介绍本设计的软件实现,其中包括接入端和手持端两大部分。

  3.1整体设计方案的设计与实现环境

  本次设计采用的控制芯片为PIC16F877A。

  由于程序是在PC上设计,需要将程序下载到单片机上运行和测试,所以需要一个程序下载工具,本次设计所采用的程序烧录器为TOP WIN2004,该烧录器自身提供有一个下载软件,使用也非常方便,安装按照软件目录下的README一步步操作即可。

  本设计中的软件均是在单片机内实现,运行在MCU内的软件控制着整个设计所要实现的模块。

  但是由于MCU与传统Pc有着巨大的差别,必须考虑存储空间、运行速度、外界干扰等因素。在实现此次设计的过程中,除了首先要保证硬件环境的设计正确和优质之外,软件方面的严谨设计也是必不可少的一个重要部分。

  本设计的软件总体框架图可如图4所示,为了使两端达到速度及任务的均衡,一些软件处理将在手持端完成,然后以接收端可以识别的格式打包发送过去,由图4也可以看出两端的任务处理基本处于均衡状态。

 

图4软件总体框架图

  3.2手持端软件的设计与实现

  在本部分将介绍手持终端的软件设计过程,以及各个模块部分的具体实现。软件的运行流程图如图5所示。

 

图5手持端软件流程

  对于事件发生的获取是采用中断模式,也就是在有鼠标触摸板事件发生的时候,将唤醒MCU进行数据的采集处理,然后将采集到的PS/2数据进行一定规则的转换,然后将其打包发送。若没有数据需要处理,则进入睡眠状态以节省功耗。

  3.2.1芯片初始化

  在芯片初始化阶段,主要是芯片的内部工作的时钟的设置、IO口的初始化设置、以及CC2420的初始化。

  在芯片的初始化阶段需要注意对每个IO口的数据方向进行设置,并且要准确设置时钟以及串口的传输数率,否则在调试阶段无法获取数据。不用的IO口全部设置成输出端口,这样可减少端口不必要的干扰。

  3.2.2鼠标触摸板事件的信息采集

  首先要对触摸板进行初始化,其初始化序列请参照PS/2协议的命令序列。初始化成功后,该触摸板将正常工作,只要有触摸事件发生,将产生连续三帧的数据发送,而按键事件发生,则在按下产生三帧数据发送,弹起产生三帧数据发送。我们需要做的工作就是在触摸板发送数据的时候对其进行采集。采集过程也非常简单,在熟悉PS/2协议的基础上,中断产生后,按照时序对数据进行采集,一定要在读完一帧的基础上再读下一帧,读取完三帧数据后就马上进行数据转换和打包发送,然后再次等待中断事件发生。所选择的MCU在速度处理上完全可以满足一般键盘鼠标数据包发送的间隔时间,也就是说在读取完一个数据包后,就处理该数据包而不需要完全读取完一次事件产生的数据堆。

  3.2.3 CC2420数据发送

  在CC2420的数据发送阶段,MCU将数据发送命令传送给CC2420之后,可以通过SFD引脚来判断其发送过程。该引脚会有一个由低电平向高电平跳变的过程,其过程如图6所示。

 

图6发送过程示意图

  控制器向CC2420发送了发送数据的命令之后,并不能马上把数据发送出去,而是要经过12个时钟周期之后发送器才启动,之后将数据添加了其实序列和帧头之后,才能开始数据发送进程。在数据发送完毕之前,SFD引脚将一直为高电平,这样在MCU就可以根据此引脚的变化来跟踪发送过程,发送过程具体的软件实现,可用图7表示。

 

图7 CC2420发送实现过程

  在CC2420的数据发送阶段,发射校正和添加起始序列和帧头可以由硬件自动完成,但是帧的长度需要在软件中计算得到再写入帧中,并且需要将数据写入发送器的发送缓冲区之后向CC2420发送发送启动命令。

  3.3接入端软件的设计与实现

  接入设备部分的软件设计,主要是分为两部分:CC2420的接收和USB数据传输。CC2420由于是发送和接收集成在同一模块中,所以其初始化可采用发送端的设计。而在USB数据传输部分,则采用HID的协议与主机进行通信,这样在软件设计上可以减少复杂度。

  3.3.1无线数据接收

  无线数据接收的软件实现,使用RB5端口的电平中断触发接收进程。当CC2420发现有帧传输过来时其引脚会产生相应的变化,MCU通过检测这些引脚的变化可以得知CC2420所在的接收阶段与状态。在接收过程中,有3根引脚可以检测出CC2420的状态,其数据接收的变化示意图限于篇幅,在此略去。

  当CC2420收到有符合其起始序列的时候,其自动接收帧头和帧的长度,并且SFD、FIFO、FIFOP这3根输出引脚分别输出上图所示电平。当接收到帧的目的地址时候,CC2420自动进行地址匹配,若地址匹配成功,则接收进程继续进行,如果地址匹配不成功,则马上停止接收过程,并把3根输出引脚都置为低电平。MCU在控制时可以通过检测这3根输出引脚的电平来判断接收过程的状态。

  如果地址匹配成功且接收完整个帧,则可以启动数据读取进程。

  在数据读取阶段,CC2420提供了帧的正确接收的初始判断,由此可以知道该帧是否被正确接收,以决定是读取该帧还是放弃该帧。按照CC2420的规定,当一个帧接收完毕之后,如果出现FIFOP=l并且FIFO=0的情况,则说明该帧错误接收,应当向其连续写人两个CC2420_SFLUSHRX命令将数据冲刷。如果没有出现这种情况,则按照帧发送的相反过程从接收缓冲中读取数据。

  3.3.2 USB设备HID类设计与实现

  USB数据传输的软件设计,主要是集中在USB芯片的初始化以及协议的初始化、以及之后的枚举过程,在成功枚举并被主机正确识别之后,只需将数据写入发送缓冲即可将数据发送到主机。在协议的初始化时,需要将协议中规定的各个参数设定都按照设计的要求设定,并且将各种描述符,包括配置描述符、端点描述符、接口描述符、报告描述符等初始完毕,以供枚举过程使用。

  USB芯片的初始化过程的最后一步是将其SoftConnect功能打开,从这时起,主机才能开始检测到设备的接入,也从这个时候起,USB芯片才真正开始与主机通信并开始设备枚举过程。在枚举过程中,主机首先向设备发送启动信号,设备在接收到这个信号之后向主机发送回送的协议数据以供主机识别,当识别到这个信号之后,主机则开始向设备获取描述符等信息,进而完成设备枚举过程。

  初始化完成之后,主循环实际上不再参与USB通信。每次PDIUSBDl2接口芯片检测到USB总线上主机发给这个设备的信号时候就触发一次单片机的外部中断。中断处理子程序要做的工作就是首先D12读取中断信息,查看D12收到了什么样的封包,然后根据主机的不同要求做出响应,中断处理程序流程如图8所示。

 

图8中断处理程序流程

  本系统设备中,固件程序只须处理端点0的输出和输入要求就可以完成设备的正常配置和基本工作。

  在图8中,SOF包处理程序是自定义的部分,是为了更好地配合设备工作而添加的代码,与设备的实质没有太大关系,而结束状态改变引起的中断在这里不需要做处理。由于USB的数据传输都是由D12自动完成,端点1和2的输出/输入中断处理就没有什么实质内容。

  4结束语

  本设计所实现的基于USB的无线触摸鼠标板除了具有无线空中鼠标的所以功能外,且成本低廉,容易实现,无线传输距离远(20 m),无指向性,适应性强,能广泛应用于现有的多媒体教室。

关键字:USB  鼠标触摸板  单片机 编辑:探路者 引用地址:基于USB的无线触摸鼠标板的设计

上一篇:基于嵌入式系统实时交互的手势识别
下一篇:针对DC/DC变换的轨道交通应用的FIAM

推荐阅读最新更新时间:2023-10-18 16:43

基于ARM的系统构件块有助于优化整个MCU开发周期
如今,对成本敏感的微控制器市场需要可使产品功能紧密地适合应用的高层次系统集成。PCB尺寸、电源消耗和材料成本的压力也需要比以往更高层次的系统集成。此外,稳压器、电压不足检测器、上电复位等电源接口与晶振/PLL、系统定时器等定时单元一样,都需要在片内得到实现。 为紧密地适合应用,存储器、外围设备与连接之间的正确组合非常重要。对存储器的需求在类型和密度上是不同的。小容量的引导ROM、RAM工作区以及用于存储软件和参考数据的片上闪存都是必需的,但不同应用对密度需求不一样。NAND或NOR闪存、SDRAM等各种存储器类型和密度都需要高效率的外部接口。在连接性方面,微控制器一般需要提供USB、以太网、CAN、SPI或USART总线连
[单片机]
基于ARM的系统构件块有助于优化整个<font color='red'>MCU</font>开发周期
MSP430G2553单片机使用printf函数进行串口打印输出
以前在使用keil编写51单片机程序的时候,经常使用printf函数打印输出一些关键的过程数据到电脑,方便监控程序的运行状况。最近使用IAR for MSP430 调试 MSP430G2553 程序的时候,发现了一些小问题,MSP430G2553单片机并没有按照我的预期输出数据到电脑。 带着疑惑我查看了keil的帮助文件里面的printf函数说明,原来printf函数最终是调用putchar函数来实现打印输出字符的。 putchar,该函数将制定的表达式的值所对应的字符输出到标准输出终端上。表达式可以是字符型或整型,它每次只能输出一个字符。我们来看keil标准函数库里的putchar函数的函数体。
[单片机]
MSP430G2553<font color='red'>单片机</font>使用printf函数进行串口打印输出
USB接口的电子巡更系统的设计
摘要:介绍一种具有数据传输速度快、支持热插拔和充电方便等特点的USB接口电子巡更系统;阐述电子巡更系统硬件电路及工作原野,并介绍该系统的软件组成及流程图。 关键词:电子巡更系统 信息钮扣 USB接口 设备驱动程序 电子巡更系统是智能楼宇中保安系统的一个子系统。保安巡更时,需按指定的路线和时间,依次以达各个巡更点进行巡更。在此系统中,各巡更点设有信息钮扣,保安用巡更机读取信息钮及当前时间。巡更完毕后,将巡更机交至安保中心,使之与计算机的USB接口相连,将存储在巡更机中的巡更数据输入计算机。所以,通过它可以了解保安的巡更情况,有效地管理和督促保安的工作。 1996年,Intel、Microsoft、IBM等七家公司共同推出USB
[应用]
IAR的C-Trust安全开发工具支持NXP MCU
IAR Systems的C-Trust安全开发工具现在支持NXP的一系列MCU,包括K22 / 24/64 / V65 / V58和i.MX RT1064交叉设备。新增的支持使开发人员可以使用这些和其他NXP MCU来实现高级安全功能,并确保符合新兴的安全标准,例如EN 303645,SB 237,HB 2395和韩国互联网与安全机构(KISA)的“ IoT服务计划从个人信息角度”指南。 C-Trust是IAR Embedded Workbench的一部分,可为不具备深厚技术安全知识的开发人员提供保护,而几乎无需进行任何返工即可保护新的或现有的应用程序。它提供了针对IP盗窃,恶意软件注入,伪造,超额生产以及一系列其他威胁。
[工业控制]
基于单片机PIC18F4550的USB接口设计
引言   USB是一种快速的、双向同步传输的、廉价并可以进行热插拔的串行接口。利用USB总线技术,开发适用于科学研究和工业牛产的各种仪器仪表设备,借以取代传统计算机测控系统中采用串行RS232或并行接口的仪器仪表设备,使计算机测控系统更加高效实时,方便灵活。   利用USB总线的数据采集方案有两种,一种是采用普通单片机加上专用的USB通信芯片。该方案可充分利用开发人员原有的硬件资源和软件知识,开发成本较低,但系统的设计和调试较为麻烦,且电磁兼容性差,容易造成主机不能识别USB设备。另一种是利用具有USB接口功能的单片机。使用这些专用芯片构成的数据采集系统电路设计简单,调试方便,电磁兼容性好。然而,目前大部分具有USB功能的
[单片机]
基于<font color='red'>单片机</font>PIC18F4550的<font color='red'>USB</font>接口设计
基于单片机简单实现图形显示的方法
1设计思路 当一个电光源的光束射人到镜面上时就会发生反射现象,当我们让光束以固定角度入射到镜面上时,就会在另一面反射出来。这时,我们让镜面以水平方向中心轴为支点前后快速晃动时,由于人眼的余辉效应,我们就会观测到反射出来的光在显示屏上呈现出一条竖向的光线;同样当我们以竖直方向中心轴为支点前后陕速晃动时,我们就会在显示屏上观测到一条竖向的光线。 我们就以这种现象为模型,让点光源发出的光线先经过一个以水平中心轴为支点,前后转动的镜面,反射出来的光线再经过一个以竖直中心轴为支点前后晃动的镜面。当两面镜子都不晃动时所产生的点称为原点;把其中一个镜面沿水平方向轴晃动时,另一面镜子不动时产生的光线称为Y轴;把其中的一面不动,而另一面
[单片机]
基于<font color='red'>单片机</font>简单实现图形显示的方法
基于事件一目标驱动的人机界面设计
引 言   人机界面(human-computer interface),又称用户界面、人机交互、人机接口等,是人与机器之间传递、交换信息的媒介.是用户使用计算机系统的综合操作环境。在商品竞争中,一个应用系统的成功与否在某种程度上也取决于用户使用界面的感受好坏,因此,人机界面的设计在应用系统的设计中有着重要的作用。嵌入式系统强调人机界面操作的实时性,简单化,强调在特定平台上特定应用的时间空间效率。在传统的小系统设计中。程序设计一般采用前后台工作方式。应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,时间相关性很强的关键操作(crltical operation)是靠中断服务来保证的。因为中断服务提供的信息一直要等到后台
[嵌入式]
基于89C52单片机和MB90092芯片实现视频图像叠加应用系统的设计
1、引言 随着监控现场的扩展和探头数量增多,在监控端的图像显示系统中,经常需要接收外部数据并把相关的信息实时地连同图像显示在监控屏幕上,以便使用人员知道该图像信息以何种方式来自何处及与之相关的信息,时间,地区徽标,实时数据显示在屏幕上。但是对于监控人员而言,监控端遭到攻击是一个值得担心的问题,因此,改善技术方案和增强安全性是对目前状况提出的一种迫切要求。监控人员希望所看到的是得到验证的真实图像,无论时间、环境、探头位置、角度和焦距都必须得到保证。在远程监控场合,有关重要部门的监控者往往对于接收图像的实时性和真实性不完全放心,尤其是如果对高科技对象实时监控,那么,当监控者因故临时离开监控台一段时间后,由于不知道被监控方是否对监控系统
[单片机]
基于89C52<font color='red'>单片机</font>和MB90092芯片实现视频图像叠加应用系统的设计
小广播
最新电源管理文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved