當(dāng)前位置:首頁(yè) > 測(cè)試測(cè)量 > 測(cè)試測(cè)量
[導(dǎo)讀]本文介紹HDNS2000的功能、特點(diǎn),從硬件與軟件兩個(gè)方面討論HDNS2000與AVR單片機(jī)的接口設(shè)計(jì)。

   摘要:安捷倫(Agilent)公司的HDNS2000芯片是一種高性能的運(yùn)動(dòng)檢測(cè)器件,在目前的光學(xué)鼠標(biāo)中應(yīng)用廣泛,其易用性和廉價(jià)性使其非常適合應(yīng)用于中低精度的運(yùn)動(dòng)和位置檢測(cè)中。本文介紹HDNS2000的功能、特點(diǎn),從硬件與軟件兩個(gè)方面討論HDNS2000與AVR單片機(jī)的接口設(shè)計(jì)。

    關(guān)鍵詞:HDNS2000 運(yùn)動(dòng)檢測(cè) AVR

在機(jī)電產(chǎn)品設(shè)計(jì)中,有時(shí)需要檢測(cè)物體間的相對(duì)運(yùn)動(dòng),包括運(yùn)動(dòng)方向和運(yùn)動(dòng)距離。若采用機(jī)械式的結(jié)構(gòu),比如機(jī)械鼠標(biāo)中的滾輪和軌跡球,則會(huì)由于頻繁的機(jī)械運(yùn)動(dòng)而發(fā)生故障,導(dǎo)致精度下降甚至失效,維修起來(lái)也不方便。另外它需要兩個(gè)物體表面相接觸,靠相互間的摩擦進(jìn)行工作,這在某些場(chǎng)合是不能允許的。解決方案之一就是采用光電器件,運(yùn)用光學(xué)原理來(lái)測(cè)定運(yùn)動(dòng)。安捷倫公司的HDNS2000就是為此而設(shè)計(jì)的,雖然它的市場(chǎng)是針對(duì)光學(xué)鼠標(biāo),但也可以作為一種高性能而又廉價(jià)的器件運(yùn)用于工業(yè)控制領(lǐng)域中。

1 HDNS2000芯片介紹

1.1 主要功能與特性

HDNS2000是安捷倫推出的高性能的光學(xué)感測(cè)芯片,它的內(nèi)部包含三個(gè)基本模塊:圖像拾取系統(tǒng)、DSP處理器、PS/2或四狀態(tài)輸出轉(zhuǎn)換器,如圖1所示。在HDNS2000芯片的底部有一個(gè)感光眼,如同一個(gè)小型的攝像頭,不斷地對(duì)物體表面進(jìn)行拍照,接著將前后兩次的圖像送入DSP中進(jìn)行處理,以判斷物體移動(dòng)的方向和大小,最后將數(shù)據(jù)轉(zhuǎn)化為PS/2格式或者以兩通道四狀態(tài)格式輸出。圖2中的(a)與(b)分別為芯片前后兩次拾取的圖像。比較圖2中的(a)和(b)可以看出,物體向左下方移動(dòng)了一點(diǎn)。

HDNS2000的圖像拾取系統(tǒng)每秒鐘可以拾取1500張圖像,可以精確地測(cè)量最高30.48 cm/s(12 英寸/s)的運(yùn)動(dòng),解析度為400點(diǎn)每英寸。

1.2 引腳介紹

HDNS2000的主要引腳框圖如圖3所示。

PS2_C:PS/2接口的時(shí)鐘端。

MODE/XA:復(fù)用引腳,接高電平時(shí)表示選擇PS/2模式;否則,為XA輸出。

RB/XB:復(fù)用引腳,PS/2模式時(shí)為鼠標(biāo)右鍵輸入;否則,為XA輸出。

MB/YB:復(fù)用引腳,PS/2模式時(shí)為鼠標(biāo)中鍵輸入;否則,為YB輸出。

LB/YA:復(fù)用引腳,PS/2模式為鼠標(biāo)左鍵輸入;否則,為YA輸出。

XY_LED:激光LED控制輸出,在物體長(zhǎng)時(shí)間不移動(dòng)時(shí),HDNS2000可以控制LED關(guān)閉,以節(jié)約能量。

VDD3:3.3 V直流電源輸入。

REFB:內(nèi)部參考引腳,通過電容與VDD3相連。

PS2_D :PS/2接口的數(shù)據(jù)端。

NRESET:低電平復(fù)位引腳。

VDD5:5 V直流電源輸入。

GND:電源地。

OSC2:晶振輸出。

OSC1:晶振輸入,外接18.432 MHz晶振。

2 HDNS2000與AVR單片機(jī)接口設(shè)計(jì)

2.1 HDNS2000與AT90S8015接口

HDNS2000直接提供有PS/2接口,方便了PS/2鼠標(biāo)的設(shè)計(jì);但在機(jī)電控制中,為了提高效率,宜直接采用HDNS2000的另一種輸出模式,即X向與Y向兩通道四狀態(tài)輸出模式。此時(shí)XA、XB指示X向移動(dòng)狀態(tài),而YA、YB指示Y向移動(dòng)狀態(tài)。圖 4為HDNS2000與AVR單片機(jī)AT90S8515的接口原理圖。接口主要占用了4個(gè)引腳,其它兩個(gè)是可選的,所以,即使是AVR中最低檔的ATtiny系列也可以方便地與HDNS2000連接。

圖4 HDNS2000與AT90S8015接口原理圖

    另外在對(duì)節(jié)能要求不高的場(chǎng)合,可以將激光LED的一端直接與地相連接,而通過控制開關(guān)三極管2N3906來(lái)主動(dòng)控制HDNS2000的工作狀態(tài)。本文作者在設(shè)計(jì)時(shí)正是采用的這種方式。在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),最好采用安捷倫公司提供的套件,其中包括HDNS2000芯片、HDNS2100透鏡、HDNS2200 激光LED卡件及HLMP-ED80激光LED,激光波長(zhǎng)為639 nm。

2.2 四位狀態(tài)機(jī)的工作過程

在HDNS2000內(nèi)部有兩個(gè)狀態(tài)機(jī)分別指示X、Y兩個(gè)方向,每個(gè)狀態(tài)機(jī)又有四個(gè)穩(wěn)定的狀態(tài)。圖5是狀態(tài)機(jī)的示意圖。由圖5可見,一開始系統(tǒng)處于狀態(tài)0,每當(dāng)檢測(cè)到物體向正向或反向移動(dòng)1個(gè)單位時(shí)就轉(zhuǎn)移到下一個(gè)狀態(tài),所以只要連續(xù)監(jiān)測(cè)狀態(tài)機(jī)狀態(tài)的變化就可以判斷物體移動(dòng)的方向和距離。圖6(a)和(b)分別為負(fù)向移動(dòng)和正向移動(dòng)時(shí)狀態(tài)機(jī)輸出的波形。值得注意的是,每個(gè)狀態(tài)的最少停留時(shí)間為133μs。

2.3 接口軟件設(shè)計(jì)

由狀態(tài)機(jī)輸出波形圖可以看出,有一種很簡(jiǎn)單自然的接口設(shè)計(jì)方法,就是將狀態(tài)輸出引腳接到單片機(jī)的外部中斷引腳上,使其在每個(gè)波形的上下邊沿都產(chǎn)生中斷,再在中斷處理程序中,檢測(cè)另一對(duì)應(yīng)波形的電平高低,就可以判斷移動(dòng)方向。比如在XA的上升沿時(shí),若XB是低電平就是左移,若XB是高電平就是右移。這種方法需要單片機(jī)提供足夠多的外部中斷。若同時(shí)檢測(cè)X向與Y向運(yùn)動(dòng),且單片機(jī)1個(gè)引腳不能同時(shí)提供上升沿和下降沿中斷的情況下,就需要占用8個(gè)中斷、8條引腳;而目前許多單片機(jī)僅提供2個(gè)外部中斷引腳,這種要求顯然較為苛刻。

另一種方式就是降低精度要求,僅在XA與YA的上升沿進(jìn)行檢測(cè),此時(shí)僅需要2個(gè)外部中斷引腳。但這種方式在一種極端條件下會(huì)出錯(cuò),讀者可以自行分析。若只檢測(cè)X一個(gè)方向,則可以同時(shí)檢測(cè)上下沿中斷,這樣不會(huì)出錯(cuò)。這種方式犧牲了一點(diǎn)對(duì)運(yùn)動(dòng)換向和震顫的敏感度;但編程簡(jiǎn)單,不失為一種好方法。

本文采用的是查詢方式,這種方式不占用任何中斷,且能夠不損精度地同時(shí)檢測(cè)X向與Y向運(yùn)動(dòng)。前面已經(jīng)提過,每個(gè)狀態(tài)的最小保持時(shí)間為133 μs,所以,只要將查詢的周期控制在60μs之下就可以抓住每個(gè)狀態(tài)的變化。對(duì)于AT90S8515,若按晶振為8 MHz計(jì)算,則只需將查詢周期匯編指令數(shù)控制在450條以下就可以了。實(shí)際上,以下給出的C語(yǔ)言程序經(jīng)過編譯后只有不大于60條匯編指令,完全能夠滿足系統(tǒng)要求。

該方法的基本思想是將狀態(tài)機(jī)的前一狀態(tài)與現(xiàn)在的狀態(tài)組合在同一字節(jié)內(nèi),如表1所列,尋找其中的規(guī)律,簡(jiǎn)化程序設(shè)計(jì)。表1中以PRE開頭的表示前一狀態(tài)的對(duì)應(yīng)值。

表1 組合前后兩狀態(tài)在同一字節(jié)

位bit 3 2 1 0
XA XB PRE_XA PRE_XB
位bit 7 6 5 4
YA YB PRE_YA PRE_YB

以X向移動(dòng)為例(僅看前半字節(jié)),正向移動(dòng)時(shí)對(duì)應(yīng)的值為0b1000、0b1110、0b0111、0b0001,負(fù)向移動(dòng)時(shí)對(duì)應(yīng)的值為0b0010、0b1011、0b1101、0b0100。假設(shè)狀態(tài)不變的情況已經(jīng)排除,且查詢周期足夠短,不會(huì)出現(xiàn)相對(duì)周期的組合值。所以只要能將以上兩組值區(qū)分開來(lái)就可以了,這也正是程序中兩條條件判斷語(yǔ)句的目的。讀者可以對(duì)照程序自行驗(yàn)證。接口程序如下:

while(1){

state=PINA&0xcc;

state_change=state^pre_state;

combo_state=sate | (pre_state>>2);

if(state_change & 0x0c)

{

if((combo_state & 0x06) == 0x06)

{asm("INC R20");goto next;}

if((combo_state | 0x09) == 0x09)

{asm("INC R20");goto next;}

asm("DEC R20");

}

next:

if(state_change & 0xc0)

{

if((temp & 0x60) == 0x60)

{asm("INC R21");goto end;}

if((temp | 0x90) == 0x90)

{asm("INC R21");goto end;}

asm("DEC R21");

}

end:pre_state=state;}

程序已經(jīng)事先定義了寄存器R20與R21分別為X、Y向的計(jì)數(shù)器,用來(lái)表示X、Y向移動(dòng)的距離。以上程序段利用內(nèi)嵌匯編語(yǔ)句優(yōu)化了程序結(jié)構(gòu)。實(shí)際上,還可以對(duì)編譯器生成的匯編代碼進(jìn)行優(yōu)化,這里就不再詳述了。

結(jié) 語(yǔ)

以上軟硬件接口設(shè)計(jì)雖然是以功能強(qiáng)大的AVR單片機(jī)作為例子,但通過仔細(xì)分析不難發(fā)現(xiàn),在簡(jiǎn)單的應(yīng)用場(chǎng)合,用普通的51單片機(jī),甚至如AT89C2051在12 MHz晶振頻率下也可以實(shí)現(xiàn)其功能。所以整個(gè)系統(tǒng)會(huì)是相當(dāng)廉價(jià)的。

安捷倫公司最近在繼HDNS2000之后,又推出了升級(jí)芯片HDNS2051和適于無(wú)線應(yīng)用的芯片HDNS2030,除了更強(qiáng)的處理能力外,主要改進(jìn)還在于采用了單電源供電,提供了省電模式,去掉了不實(shí)用的PS/2接口,引入了同步串行口,允許用戶對(duì)分辨率進(jìn)行設(shè)置等。這些改進(jìn)極大地方便了用戶的使用,一方面擴(kuò)大了其光學(xué)感測(cè)芯片市場(chǎng)占有率,另一方面無(wú)疑也為機(jī)電產(chǎn)品設(shè)計(jì)者提供了一種更強(qiáng)大、更方便、更廉價(jià)的運(yùn)動(dòng)檢測(cè)方案。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉