基于Agilent ADNK - 6003的光学鼠标设计指南

电子说

1.4w人已加入

描述

基于Agilent ADNK - 6003的光学鼠标设计指南

在当今数字化时代,鼠标作为计算机的重要外设,其性能和设计不断发展。本文将详细介绍基于Agilent ADNK - 6003的光学鼠标设计,涵盖硬件、固件等多个方面,为电子工程师提供全面的设计参考。

文件下载:ADNK-6003.pdf

一、设计概述

1.1 设计目标

本设计旨在构建一个经济高效的USB - PS/2光学鼠标,使用Cypress Semiconductor CY7C63743 - PXC USB微控制器和Agilent ADNS - 6000光学传感器。

1.2 相关标准与接口

通用串行总线(USB)是计算机与鼠标、键盘等外设之间的行业标准串行接口。本设计支持USB和PS/2两种协议,能为不同需求的用户提供选择。

二、硬件设计

2.1 核心芯片

  • CY7C63743 - PXC:这是一款8位RISC微控制器,集成了USB串行接口引擎(SIE)。它具有内置时钟振荡器和定时器,每个I/O线还配备可编程驱动强度和上拉电阻,能以最少的外部组件和固件实现高性能、低成本的人机接口计算机外设。
  • ADNS - 6000:作为主要的导航引擎,包含图像采集系统、数字信号处理器、双通道正交输出和四线串行端口。它能提供出色的跟踪精度,可通过SPI端口进行灵活编程,还具备自动帧率功能(1000fps至6400fps),能在传统LED技术难以跟踪的表面(如光滑表面)上实现良好的跟踪效果。

2.2 硬件架构

  • 运动检测:X和Y方向的运动通过光学传感器检测,Z轮运动则通过一组输出正交信号的光学传感器检测。
  • 按钮设计:鼠标按钮作为标准开关连接,由微控制器内部的上拉电阻上拉。当用户按下按钮时,开关闭合,引脚被拉低至地,低电平状态表示按钮被按下。
  • USB和PS/2连接:CY7C63743 - PXC的配置寄存器可在SIE和手动控制之间切换D +和D -引脚的控制,使固件能动态配置为USB或PS/2鼠标,实现信号线共享,无需额外的GPIO引脚用于PS/2操作。

三、固件设计

3.1 固件文件

固件采用Cypress汇编语言编写,主要文件包括:

  • 637xx.inc:CY7C63743PXC I/O寄存器定义。
  • adns - 6000.asm:主鼠标固件。
  • macros.inc:通用宏。
  • ps2.inc:PS/2接口常量。
  • usb.inc:USB接口常量。
  • adns - 6000_srom_25.inc:SROM固件。

3.2 功能函数

3.2.1 通用函数

  • GetMouseType:用于确定鼠标的接口类型(USB或PS/2)。
  • SPIInit:启用SPI接口,将CY7C63743 - PXC配置为主设备,驱动P0.7上的串行时钟。
  • SensorReset:通过在RESET引脚产生脉冲来复位串行接口和ADND - 6000内部寄存器。
  • LoadSROM:将SROM固件加载到ADNS6000光学传感器中。
  • AdjustLASER:校准激光功率至506uW,确保符合1类眼睛安全标准。
  • ProcessButtons:检测按钮状态的变化,并在消抖定时器到期后确认新的按钮状态。
  • ReadProcessOptics:获取X、Y和Z轮的运动信息。

3.2.2 USB函数

  • usbMain:初始化USB相关参数,启用VREG以向主机发出鼠标已连接的信号。
  • usbTaskLoop:在无限循环中等待事件处理,调用ProcessButtonsReadProcessOptics函数获取运动和按钮信息,并将数据加载到端点1缓冲区发送给主机。
  • ep0SetupReceivedep0InReceivedep0OutReceived:分别处理端点0的SETUP、IN和OUT数据包。
  • setDeviceConfigurationsetDeviceAddressgetDescriptor等:处理各种USB请求。

3.2.3 PS/2函数

  • PS2Main:初始化PS/2相关参数,发送BAT代码给主机。
  • PS2TaskLoop:在无限循环中等待事件处理,获取运动和按钮信息并发送给主机。
  • PS2BAT:延迟500毫秒后发送初始化字符串进行PS/2基本保证测试。
  • PS2SendResponseBytePS2SendPS2Receive等:处理PS/2协议的发送和接收。

四、系统要求与操作

4.1 系统要求

PC需使用Windows 95/98/NT/2000操作系统,具备PS/2端口,并加载标准3按钮USB鼠标驱动。

4.2 操作模式

  • PS/2模式:关闭PC,将鼠标的PS/2连接器插入PC的PS/2端口,然后开启PC。
  • USB模式:支持热插拔,无需关闭PC即可插拔鼠标。

五、其他注意事项

5.1 激光安全

ADNS - 6000和相关组件需符合IEC 60825 - 1的1类眼睛安全要求。制造商应进行测试以验证眼睛安全性,同时需根据激光二极管的bin号设置合适的电阻Rbin,并对LP_CFG0和LP_CFG1寄存器进行适当编程。

5.2 组件信息

设计套件包含ADNS - 6000传感器、ADNS - 6120镜头、ADNS - 6220激光组件夹、ADNV - 6330激光二极管等组件,每个组件都有相应的数据手册可供参考。

六、总结

通过本文的介绍,我们详细了解了基于Agilent ADNK - 6003的光学鼠标设计。从硬件的核心芯片选择到固件的功能实现,再到系统的操作和安全注意事项,每一个环节都紧密相连。电子工程师在进行类似设计时,可根据实际需求对硬件和固件进行调整和优化,以实现更好的性能和用户体验。你在实际设计过程中遇到过哪些挑战呢?欢迎在评论区分享你的经验。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分