基于Agilent ADNK - 6003的光學(xué)鼠標(biāo)設(shè)計(jì)指南
在當(dāng)今數(shù)字化時(shí)代,鼠標(biāo)作為計(jì)算機(jī)的重要外設(shè),其性能和設(shè)計(jì)不斷發(fā)展。本文將詳細(xì)介紹基于Agilent ADNK - 6003的光學(xué)鼠標(biāo)設(shè)計(jì),涵蓋硬件、固件等多個(gè)方面,為電子工程師提供全面的設(shè)計(jì)參考。
文件下載:ADNK-6003.pdf
一、設(shè)計(jì)概述
1.1 設(shè)計(jì)目標(biāo)
本設(shè)計(jì)旨在構(gòu)建一個(gè)經(jīng)濟(jì)高效的USB - PS/2光學(xué)鼠標(biāo),使用Cypress Semiconductor CY7C63743 - PXC USB微控制器和Agilent ADNS - 6000光學(xué)傳感器。
1.2 相關(guān)標(biāo)準(zhǔn)與接口
通用串行總線(USB)是計(jì)算機(jī)與鼠標(biāo)、鍵盤等外設(shè)之間的行業(yè)標(biāo)準(zhǔn)串行接口。本設(shè)計(jì)支持USB和PS/2兩種協(xié)議,能為不同需求的用戶提供選擇。
二、硬件設(shè)計(jì)
2.1 核心芯片
- CY7C63743 - PXC:這是一款8位RISC微控制器,集成了USB串行接口引擎(SIE)。它具有內(nèi)置時(shí)鐘振蕩器和定時(shí)器,每個(gè)I/O線還配備可編程驅(qū)動(dòng)強(qiáng)度和上拉電阻,能以最少的外部組件和固件實(shí)現(xiàn)高性能、低成本的人機(jī)接口計(jì)算機(jī)外設(shè)。
- ADNS - 6000:作為主要的導(dǎo)航引擎,包含圖像采集系統(tǒng)、數(shù)字信號(hào)處理器、雙通道正交輸出和四線串行端口。它能提供出色的跟蹤精度,可通過SPI端口進(jìn)行靈活編程,還具備自動(dòng)幀率功能(1000fps至6400fps),能在傳統(tǒng)LED技術(shù)難以跟蹤的表面(如光滑表面)上實(shí)現(xiàn)良好的跟蹤效果。
2.2 硬件架構(gòu)
- 運(yùn)動(dòng)檢測(cè):X和Y方向的運(yùn)動(dòng)通過光學(xué)傳感器檢測(cè),Z輪運(yùn)動(dòng)則通過一組輸出正交信號(hào)的光學(xué)傳感器檢測(cè)。
- 按鈕設(shè)計(jì):鼠標(biāo)按鈕作為標(biāo)準(zhǔn)開關(guān)連接,由微控制器內(nèi)部的上拉電阻上拉。當(dāng)用戶按下按鈕時(shí),開關(guān)閉合,引腳被拉低至地,低電平狀態(tài)表示按鈕被按下。
- USB和PS/2連接:CY7C63743 - PXC的配置寄存器可在SIE和手動(dòng)控制之間切換D +和D -引腳的控制,使固件能動(dòng)態(tài)配置為USB或PS/2鼠標(biāo),實(shí)現(xiàn)信號(hào)線共享,無需額外的GPIO引腳用于PS/2操作。
三、固件設(shè)計(jì)
3.1 固件文件
固件采用Cypress匯編語言編寫,主要文件包括:
637xx.inc:CY7C63743PXC I/O寄存器定義。adns - 6000.asm:主鼠標(biāo)固件。macros.inc:通用宏。ps2.inc:PS/2接口常量。usb.inc:USB接口常量。adns - 6000_srom_25.inc:SROM固件。
3.2 功能函數(shù)
3.2.1 通用函數(shù)
GetMouseType:用于確定鼠標(biāo)的接口類型(USB或PS/2)。SPIInit:?jiǎn)⒂肧PI接口,將CY7C63743 - PXC配置為主設(shè)備,驅(qū)動(dòng)P0.7上的串行時(shí)鐘。SensorReset:通過在RESET引腳產(chǎn)生脈沖來復(fù)位串行接口和ADND - 6000內(nèi)部寄存器。LoadSROM:將SROM固件加載到ADNS6000光學(xué)傳感器中。AdjustLASER:校準(zhǔn)激光功率至506uW,確保符合1類眼睛安全標(biāo)準(zhǔn)。ProcessButtons:檢測(cè)按鈕狀態(tài)的變化,并在消抖定時(shí)器到期后確認(rèn)新的按鈕狀態(tài)。ReadProcessOptics:獲取X、Y和Z輪的運(yùn)動(dòng)信息。
3.2.2 USB函數(shù)
usbMain:初始化USB相關(guān)參數(shù),啟用VREG以向主機(jī)發(fā)出鼠標(biāo)已連接的信號(hào)。usbTaskLoop:在無限循環(huán)中等待事件處理,調(diào)用ProcessButtons和ReadProcessOptics函數(shù)獲取運(yùn)動(dòng)和按鈕信息,并將數(shù)據(jù)加載到端點(diǎn)1緩沖區(qū)發(fā)送給主機(jī)。ep0SetupReceived、ep0InReceived、ep0OutReceived:分別處理端點(diǎn)0的SETUP、IN和OUT數(shù)據(jù)包。setDeviceConfiguration、setDeviceAddress、getDescriptor等:處理各種USB請(qǐng)求。
3.2.3 PS/2函數(shù)
PS2Main:初始化PS/2相關(guān)參數(shù),發(fā)送BAT代碼給主機(jī)。PS2TaskLoop:在無限循環(huán)中等待事件處理,獲取運(yùn)動(dòng)和按鈕信息并發(fā)送給主機(jī)。PS2BAT:延遲500毫秒后發(fā)送初始化字符串進(jìn)行PS/2基本保證測(cè)試。PS2SendResponseByte、PS2Send、PS2Receive等:處理PS/2協(xié)議的發(fā)送和接收。
四、系統(tǒng)要求與操作
4.1 系統(tǒng)要求
PC需使用Windows 95/98/NT/2000操作系統(tǒng),具備PS/2端口,并加載標(biāo)準(zhǔn)3按鈕USB鼠標(biāo)驅(qū)動(dòng)。
4.2 操作模式
- PS/2模式:關(guān)閉PC,將鼠標(biāo)的PS/2連接器插入PC的PS/2端口,然后開啟PC。
- USB模式:支持熱插拔,無需關(guān)閉PC即可插拔鼠標(biāo)。
五、其他注意事項(xiàng)
5.1 激光安全
ADNS - 6000和相關(guān)組件需符合IEC 60825 - 1的1類眼睛安全要求。制造商應(yīng)進(jìn)行測(cè)試以驗(yàn)證眼睛安全性,同時(shí)需根據(jù)激光二極管的bin號(hào)設(shè)置合適的電阻Rbin,并對(duì)LP_CFG0和LP_CFG1寄存器進(jìn)行適當(dāng)編程。
5.2 組件信息
設(shè)計(jì)套件包含ADNS - 6000傳感器、ADNS - 6120鏡頭、ADNS - 6220激光組件夾、ADNV - 6330激光二極管等組件,每個(gè)組件都有相應(yīng)的數(shù)據(jù)手冊(cè)可供參考。
六、總結(jié)
通過本文的介紹,我們?cè)敿?xì)了解了基于Agilent ADNK - 6003的光學(xué)鼠標(biāo)設(shè)計(jì)。從硬件的核心芯片選擇到固件的功能實(shí)現(xiàn),再到系統(tǒng)的操作和安全注意事項(xiàng),每一個(gè)環(huán)節(jié)都緊密相連。電子工程師在進(jìn)行類似設(shè)計(jì)時(shí),可根據(jù)實(shí)際需求對(duì)硬件和固件進(jìn)行調(diào)整和優(yōu)化,以實(shí)現(xiàn)更好的性能和用戶體驗(yàn)。你在實(shí)際設(shè)計(jì)過程中遇到過哪些挑戰(zhàn)呢?歡迎在評(píng)論區(qū)分享你的經(jīng)驗(yàn)。
-
硬件設(shè)計(jì)
+關(guān)注
關(guān)注
18文章
503瀏覽量
45704 -
固件設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
3瀏覽量
5647
發(fā)布評(píng)論請(qǐng)先 登錄
基于Agilent ADNK - 6003的光學(xué)鼠標(biāo)設(shè)計(jì)指南
評(píng)論