四虎成人免费视频,国产一级a作爱视频免费观9看,色五月丁香亚洲,亚洲欧美性爱在线视频,1000部黄片免费观看一区,国产亚洲性生活视频播放,三级黄色在线视频网站

現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>HDNS光學(xué)感測芯片在運(yùn)動檢測中的應(yīng)用

HDNS光學(xué)感測芯片在運(yùn)動檢測中的應(yīng)用

時間:2023-02-20 22:55:58 電子通信論文 我要投稿
  • 相關(guān)推薦

HDNS2000光學(xué)感測芯片在運(yùn)動檢測中的應(yīng)用

  摘要:安捷倫(Agilent)公司的HDNS2000芯片是一種高性能的運(yùn)動檢測器件,在目前的光學(xué)鼠標(biāo)中應(yīng)用廣泛,其易用性和廉價性使其非常適合應(yīng)用于中低精度的運(yùn)動和位置檢測中。本文介紹HDNS2000的功能、特點(diǎn),從硬件與軟件兩個方面討論HDNS2000與AVR單片機(jī)的接口設(shè)計(jì)。
  關(guān)鍵詞:HDNS2000運(yùn)動檢測AVR
  
  在機(jī)電產(chǎn)品設(shè)計(jì)中,有時需要檢測物體間的相對運(yùn)動,包括運(yùn)動方向和運(yùn)動距離。若采用機(jī)械式的結(jié)構(gòu),比如機(jī)械鼠標(biāo)中的滾輪和軌跡球,則會由于頻繁的機(jī)械運(yùn)動而發(fā)生故障,導(dǎo)致精度下降甚至失效,維修起來也不方便。另外它需要兩個物體表面相接觸,靠相互間的摩擦進(jìn)行工作,這在某些場合是不能允許的。解決方案之一就是采用光電器件,運(yùn)用光學(xué)原理來測定運(yùn)動。安捷倫公司的HDNS2000就是為此而設(shè)計(jì)的,雖然它的市場是針對光學(xué)鼠標(biāo),但也可以作為一種高性能而又廉價的器件運(yùn)用于工業(yè)控制領(lǐng)域中。
  
  1HDNS2000芯片介紹
  
  1.1主要功能與特性
  
  HDNS2000是安捷倫推出的高性能的光學(xué)感測芯片,它的內(nèi)部包含三個基本模塊:圖像拾取系統(tǒng)、DSP處理器、PS/2或四狀態(tài)輸出轉(zhuǎn)換器,如圖1所示。在HDNS2000芯片的底部有一個感光眼,如同一個小型的攝像頭,不斷地對物體表面進(jìn)行拍照,接著將前后兩次的圖像送入DSP中進(jìn)行處理,以判斷物體移動的方向和大小,最后將數(shù)據(jù)轉(zhuǎn)化為PS/2格式或者以兩通道四狀態(tài)格式輸出。圖2中的(a)與(b)分別為芯片前后兩次拾取的圖像。比較圖2中的(a)和(b)可以看出,物體向左下方移動了一點(diǎn)。
  
  HDNS2000的圖像拾取系統(tǒng)每秒鐘可以拾取1500張圖像,可以精確地測量最高30.48cm/s(12英寸/s)的運(yùn)動,解析度為400點(diǎn)每英寸。
  
  1.2引腳介紹
  
  HDNS2000的主要引腳框圖如圖3所示。
  
  PS2_C:PS/2接口的時鐘端。
  
  MODE/XA:復(fù)用引腳,接高電平時表示選擇PS/2模式;否則,為XA輸出。
  
  RB/XB:復(fù)用引腳,PS/2模式時為鼠標(biāo)右鍵輸入;否則,為XA輸出。
  
  MB/YB:復(fù)用引腳,PS/2模式時為鼠標(biāo)中鍵輸入;否則,為YB輸出。
  
  LB/YA:復(fù)用引腳,PS/2模式為鼠標(biāo)左鍵輸入;否則,為YA輸出。
  
  XY_LED:激光LED控制輸出,在物體長時間不移動時,HDNS2000可以控制LED關(guān)閉,以節(jié)約能量。
  
  VDD3:3.3V直流電源輸入。
  
  REFB:內(nèi)部參考引腳,通過電容與VDD3相連。
  
  PS2_D:PS/2接口的數(shù)據(jù)端。
  
  NRESET:低電平復(fù)位引腳。
  
  VDD5:5V直流電源輸入。
  
  GND:電源地。
  
  OSC2:晶振輸出。
  
  OSC1:晶振輸入,外接18.432MHz晶振。
  
  2HDNS2000與AVR單片機(jī)接口設(shè)計(jì)
  
  2.1HDNS2000與AT90S8015接口
  
  HDNS2000直接提供有PS/2接口,方便了PS/2鼠標(biāo)的設(shè)計(jì);但在機(jī)電控制中,為了提高效率,宜直接采用HDNS2000的另一種輸出模式,即X向與Y向兩通道四狀態(tài)輸出模式。此時XA、XB指示X向移動狀態(tài),而YA、YB指示Y向移動狀態(tài)。圖4為HDNS2000與AVR單片機(jī)AT90S8515的接口原理圖。接口主要占用了4個引腳,其它兩個是可選的,所以,即使是AVR中最低檔的ATtiny系列也可以方便地與HDNS2000連接。
  
  圖4HDNS2000與AT90S8015接口原理圖
  
  另外在對節(jié)能要求不高的場合,可以將激光LED的一端直接與地相連接,而通過控制開關(guān)三極管2N3906來主動控制HDNS2000的工作狀態(tài)。本文作者在設(shè)計(jì)時正是采用的這種方式。在進(jìn)行系統(tǒng)設(shè)計(jì)時,最好采用安捷倫公司提供的套件,其中包括HDNS2000芯片、HDNS2100透鏡、HDNS2200激光LED卡件及HLMP-ED80激光LED,激光波長為639nm。
  
  2.2四位狀態(tài)機(jī)的工作過程
  
  在HDNS2000內(nèi)部有兩個狀態(tài)機(jī)分別指示X、Y兩個方向,每個狀態(tài)機(jī)又有四個穩(wěn)定的狀態(tài)。圖5是狀態(tài)機(jī)的示意圖。由圖5可見,一開始系統(tǒng)處于狀態(tài)0,每當(dāng)檢測到物體向正向或反向移動1個單位時就轉(zhuǎn)移到下一個狀態(tài),所以只要連續(xù)監(jiān)測狀態(tài)機(jī)狀態(tài)的變化就可以判斷物體移動的方向和距離。圖6(a)和(b)分別為負(fù)向移動和正向移動時狀態(tài)機(jī)輸出的波形。值得注意的是,每個狀態(tài)的最少停留時間為133μs。
  
  2.3接口軟件設(shè)計(jì)
  
  由狀態(tài)機(jī)輸出波形圖可以看出,有一種很簡單自然的接口設(shè)計(jì)方法,就是將狀態(tài)輸出引腳接到單片機(jī)的外部中斷引腳上,使其在每個波形的上下邊沿都產(chǎn)生中斷,再在中斷處理程序中,檢測另一對應(yīng)波形的電平高低,就可以判斷移動方向。比如在XA的上升沿時,若XB是低電平就是左移,若XB是高電平就是右移。這種方法需要單片機(jī)提供足夠多的外部中斷。若同時檢測X向與Y向運(yùn)動,且單片機(jī)1個引腳不能同時提供上升沿和下降沿中斷的情況下,就需要占用8個中斷、8條引腳;而目前許多單片機(jī)僅提供2個外部中斷引腳,這種要求顯然較為苛刻。
  
  另一種方式就是降低精度要求,僅在XA與YA的上升沿進(jìn)行檢測,此時僅需要2個外部中斷引腳。但這種方式在一種極端條件下會出錯,讀者可以自行分析。若只檢測X一個方向,則可以同時檢測上下沿中斷,這樣不會出錯。這種方式犧牲了一點(diǎn)對運(yùn)動換向和震顫的敏感度;但編程簡單,不失為一種好方法。
  
  本文采用的是查詢方式,這種方式不占用任何中斷,且能夠不損精度地同時檢測X向與Y向運(yùn)動。前面已經(jīng)提過,每個狀態(tài)的最小保持時間為133μs,所以,只要將查詢的周期控制在60μs之下就可以抓住每個狀態(tài)的變化。對于AT90S8515,若按晶振為8MHz計(jì)算,則只需將查詢周期匯編指令數(shù)控制在450條以下就可以了。實(shí)際上,以下給出的C語言程序經(jīng)過編譯后只有不大于60條匯編指令,完全能夠滿足系統(tǒng)要求。
  
  該方法的基本思想是將狀態(tài)機(jī)的前一狀態(tài)與現(xiàn)在的狀態(tài)組合在同一字節(jié)內(nèi),如表1所列,尋找其中的規(guī)律,簡化程序設(shè)計(jì)。表1中以PRE開頭的表示前一狀態(tài)的對應(yīng)值。
  
  表1組合前后兩狀態(tài)在同一字節(jié)
  
  位bit3210值XAXBPRE_XAPRE_XB位bit7654值YAYBPRE_YAPRE_YB
  以X向移動為例(僅看前半字節(jié)),正向移動時對應(yīng)的值為0b1000、0b1110、0b0111、0b0001,負(fù)向移動時對應(yīng)的值為0b0010、0b1011、0b1101、0b0100。假設(shè)狀態(tài)不變的情況已經(jīng)排除,且查詢周期足夠短,不會出現(xiàn)相對周期的組合值。所以只要能將以上兩組值區(qū)分開來就可以了,這也正是程序中兩條條件判斷語句的目的。讀者可以對照程序自行驗(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("INCR20");gotonext;}
  
  if((combo_state|0x09)==0x09)
  
  {asm("INCR20");gotonext;}
  
  asm("DECR20");
  
  }
  
  next:
  
  if(state_change&0xc0)
  
  {
  
  if((temp&0x60)==0x60)
  
  {asm("INCR21");gotoend;}
  
  if((temp|0x90)==0x90)
  
  {asm("INCR21");gotoend;}
  
  asm("DECR21");
  
  }
  
  end:pre_state=state;}
  
  程序已經(jīng)事先定義了寄存器R20與R21分別為X、Y向的計(jì)數(shù)器,用來表示X、Y向移動的距離。以上程序段利用內(nèi)嵌匯編語句優(yōu)化了程序結(jié)構(gòu)。實(shí)際上,還可以對編譯器生成的匯編代碼進(jìn)行優(yōu)化,這里就不再詳述了。
  
  結(jié)語
  
  以上軟硬件接口設(shè)計(jì)雖然是以功能強(qiáng)大的AVR單片機(jī)作為例子,但通過仔細(xì)分析不難發(fā)現(xiàn),在簡單的應(yīng)用場合,用普通的51單片機(jī),甚至如AT89C2051在12MHz晶振頻率下也可以實(shí)現(xiàn)其功能。所以整個系統(tǒng)會是相當(dāng)廉價的。
  
  安捷倫公司最近在繼HDNS2000之后,又推出了升級芯片HDNS2051和適于無線應(yīng)用的芯片HDNS2030,除了更強(qiáng)的處理能力外,主要改進(jìn)還在于采用了單電源供電,提供了省電模式,去掉了不實(shí)用的PS/2接口,引入了同步串行口,允許用戶對分辨率進(jìn)行設(shè)置等。這些改進(jìn)極大地方便了用戶的使用,一方面擴(kuò)大了其光學(xué)感測芯片市場占有率,另一方面無疑也為機(jī)電產(chǎn)品設(shè)計(jì)者提供了一種更強(qiáng)大、更方便、更廉價的運(yùn)動檢測方案。
  
  
  
  

【HDNS光學(xué)感測芯片在運(yùn)動檢測中的應(yīng)用】相關(guān)文章:

DSP芯片在超聲波鉆井液測漏儀中的應(yīng)用08-06

藍(lán)牙芯片ROK 101 007在語音系統(tǒng)中的應(yīng)用08-06

TD340芯片在直流調(diào)速系統(tǒng)中的應(yīng)用08-06

iLabel機(jī)器視覺在標(biāo)簽檢測中的應(yīng)用08-06

GPIB芯片TNT4882在多路程控電源中的應(yīng)用08-06

ISD4004語音芯片在語音報站器中的應(yīng)用08-06

基因芯片技術(shù)進(jìn)展及應(yīng)用08-05

ISD2560語音芯片在排隊(duì)機(jī)系統(tǒng)中的應(yīng)用08-06

射頻識別芯片在汽車智能防盜報警裝置中的應(yīng)用08-06