專利名稱:提高紅外觸摸屏性能的結(jié)構(gòu)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種應(yīng)用在顯示屏幕表面的觸摸輸入設(shè)備,尤其是以紅外線為傳感介質(zhì)的紅外觸摸屏,屬于計算機多媒體技術(shù)領(lǐng)域。
觸摸屏作為最簡單、成熟的計算機多媒體人機交互設(shè)備已經(jīng)得到了廣泛的應(yīng)用?,F(xiàn)有的觸摸屏技術(shù)主要有電阻膜、電容、表面聲波和紅外線等幾種形式。在這些觸摸屏技術(shù)之中,紅外觸摸屏以其生產(chǎn)工藝簡單、生產(chǎn)成本較低等優(yōu)勢得到了很大的發(fā)展,并被應(yīng)用到了許多領(lǐng)域。紅外觸摸屏的基本結(jié)構(gòu),是在一個適合安裝在顯示器邊緣的框架內(nèi),沿著顯示器的顯示表面的四個邊緣按照一定的順序,安裝許多對紅外發(fā)射接收管;這些發(fā)射接收對管沿顯示表面邊緣縱向和橫向排列,構(gòu)成一個互相垂直的發(fā)射接收陣列,其中每一對發(fā)射接收管均安裝在一條軸線上;因而這些軸線就在顯示表面上構(gòu)成了一個柵格的結(jié)構(gòu);上述陣列中的發(fā)射和接收管與兩個模擬開關(guān)陣列相連接;模擬開關(guān)陣列與一個產(chǎn)生開關(guān)順序通斷指令的地址掃描發(fā)生器相連接;紅外發(fā)射管通過與其連接的模擬開關(guān)陣列,被一個驅(qū)動電路所驅(qū)動;與紅外接收管相連接的模擬開關(guān)陣列的光電信號輸出端與一個信號放大處理電路耦合連接;上述這些部分分別與一個微型計算機系統(tǒng)的I/O線相連接,并且在其控制下工作;該微型計算機系統(tǒng)通過一個端口與上位計算機的輸入輸出端口相連接;在上位機內(nèi)安裝有使用該觸摸屏的驅(qū)動程序。這里的微型計算機系統(tǒng)基本上都是單片機系統(tǒng),因此下文均統(tǒng)稱為單片機系統(tǒng)。這種結(jié)構(gòu)的紅外觸摸屏的基本工作原理,是通過地址掃描發(fā)生器按照一定的順序分別接通每一對發(fā)射接收管,然后由單片機系統(tǒng)檢驗每一對紅外發(fā)射接收管之間紅外光線是否被阻斷,來判定是否有觸摸事件發(fā)生。更詳細的工作原理請參閱號碼為5,162,783美國專利申請及其相關(guān)專利。
以上述技術(shù)方案構(gòu)成的紅外觸摸屏,對于某一對紅外發(fā)射接收對管來講,性能容易得到保證,但一個觸摸屏需要數(shù)十對至上百對管子,在量產(chǎn)條件下,即使同一廠商同一批次的產(chǎn)品也很難保證性能一致,尤其當發(fā)射管工作一段時間后,老化速度不一樣,導致這種差異明顯加大,最后當某只接收管的光電信號輸出太弱,以至于接收電路的放大量相對不足時,就會導致觸摸屏失效,因而整個觸摸屏的工作壽命很短,常常只有一兩年的時間。同時,通過判斷每對發(fā)射接收管的光線是否被阻斷的檢測原理,導致其分辨率一般只能與其每個方向的發(fā)射接收管的對數(shù)相同,即使軟件倍增,分辨率也只能增加一倍。由于光電元件均有一定的尺寸,所以在顯示器邊緣不可能排列下更多的發(fā)射接收管,所以觸摸分辨率很低。再有,脈沖形式的光線還常常受電光源和自然光的干擾,導致發(fā)生操作錯誤以至死機。申請?zhí)枮?5105303中國專利申請就公布了一種使用脈沖計數(shù)和寬度調(diào)整的方法使系統(tǒng)工作更穩(wěn)定,但多脈沖技術(shù)會導致掃描的頻率降低,因此存在系統(tǒng)的反應(yīng)速度減慢的缺點,同時也沒有解決工作壽命和觸摸分辨率的問題。
針對以上的缺點和問題,本發(fā)明提供了一套解決方案。因此,本發(fā)明的一個主要目的,是提供一種提高紅外觸摸屏的使用壽命的電路結(jié)構(gòu)和方法,同時提高紅外觸摸屏抵抗各種光干擾的能力。本發(fā)明的另一個目的,是提供一種提高紅外觸摸屏分辨率的電路結(jié)構(gòu)和方法。
為了實現(xiàn)本發(fā)明的目的,在紅外觸摸屏的電路設(shè)計和信號處理方法上,采用了增加調(diào)控元器件,并以增加的調(diào)控元器件為基礎(chǔ)重新設(shè)計程序流程等措施。
為了提高紅外觸摸屏的使用壽命,本發(fā)明在普通觸摸屏電路結(jié)構(gòu)的基礎(chǔ)上,增加了一個光電信號放大量的數(shù)控反饋控制環(huán),以及一個發(fā)射管驅(qū)動電流限制電路,具體結(jié)構(gòu)變化如下在所述的與紅外發(fā)射管相連接的模擬開關(guān)的驅(qū)動輸入端,連接有一個驅(qū)動電流限制電路或元件;并在所述的信號處理放大電路中,還串連有一個數(shù)控增益放大器和一個A/D變換器;數(shù)控增益放大器的輸入端與其它信號處理電路耦合連接,輸出端與所述A/D變換器的模擬輸入端耦臺連接,增益控制端與單片機系統(tǒng)的I/O口線相連接;A/D變換器的數(shù)據(jù)輸出端與單片機系統(tǒng)的I/O口線耦合連接;在所述單片機系統(tǒng)的存儲器內(nèi),存儲有一個二極管標準參考值、一個增益比較運算代碼模塊和一段增益控制代碼;該增益比較代碼能夠?qū)乃鯝/D變換器得到的各個數(shù)據(jù),與所述標準數(shù)據(jù)進行比較運算,并將運算結(jié)果按照一定的地址排列方式,存儲到單片機系統(tǒng)內(nèi)存儲器的存儲單元內(nèi),構(gòu)成一個“增益控制表”;增益控制代碼嵌入在觸摸檢測主程序內(nèi),能夠在所述主程序檢測觸摸事件時,按照被所述掃描發(fā)生器通過模擬開關(guān)陣列所控制的紅外發(fā)射接對管的接通順序,依次讀取上述增益控制表,通過所述與數(shù)控增益放大器連接的I/O口線反饋輸出。
為了提高觸摸屏的抗干擾性能,該紅外觸摸屏的電路中,可以安裝一個載波發(fā)生器,該發(fā)生器通過所述限流驅(qū)動電路或元件、模擬開關(guān)與紅外發(fā)射管相連接;與此對應(yīng)在信號處理電路中,還包含有一個檢波電路,該檢波電路安裝在所述A/D變換器之前,與數(shù)控增益放大器串連耦合連接。
對應(yīng)于上述的電路結(jié)構(gòu),本發(fā)明利用上述的代碼構(gòu)成,在上述條件下,通過控制光電信號放大器的增益,主要通過如下步驟方法,實現(xiàn)延長觸摸屏工作壽命的目的1.單片機系統(tǒng)通過掃描發(fā)生器、模擬開關(guān)陣列,將第一對紅外發(fā)射管和接收管接通,使發(fā)射管發(fā)射紅外線,接收管接收紅外線;同時打開與A/D變換器連接的I/O口線,接收該接收管產(chǎn)生的光電信號經(jīng)放大處理、A/D變換得到的數(shù)據(jù);2.將步驟1得到的數(shù)據(jù)與所述單片機系統(tǒng)內(nèi)存儲的標準數(shù)據(jù),通過其CPU進行比較運算,并將運算結(jié)果存儲到所述單片機系統(tǒng)內(nèi)一定地址的存儲單元內(nèi),作為數(shù)控增益放大器的增益控制數(shù)據(jù);3.按照步驟1、2的方法,依次讀取打開與每一對紅外發(fā)射接收管所得到的A/D變換數(shù)據(jù),按照一定的地址排列方式,存儲到所述單片機系統(tǒng)的存儲器內(nèi),構(gòu)成一組數(shù)控增益放大器的增益控制數(shù)據(jù)即“增益控制表”,直到最后一對紅外發(fā)射接收對管;4.結(jié)束步驟3,并向進行數(shù)據(jù)處理的觸摸屏內(nèi)的單片機系統(tǒng)發(fā)出開始下一步操作的指令;5.啟動包含有增益控制代碼模塊的觸摸檢測主程序;6.觸摸檢測主程序通過掃描發(fā)生器,控制模擬開關(guān)陣列,重新依次開啟紅外發(fā)射接收對管;同時按照紅外發(fā)射接對管的接通順序,調(diào)用增益控制代碼模塊,依次輸出上述預(yù)置數(shù)據(jù)中的每一個增益控制數(shù)據(jù)到數(shù)控增益放大器。
7.重復步驟6,開始新的循環(huán)。
如果單純?yōu)榱颂岣哂|摸屏的觸摸分辨率,則可以在上述電路結(jié)構(gòu)的基礎(chǔ)上作適當簡化,去掉光電信號通道內(nèi)的數(shù)控增益放大器,而且發(fā)射管的驅(qū)動電流限制電路也不是必須的,按照一般的電路設(shè)計即可。這時電路的具體結(jié)構(gòu)改變?nèi)缦略谛盘柼幚矸糯箅娐分?,包含有一個A/D變換器,其模擬量輸入端與信號處理電路的輸出端耦合連接,其數(shù)據(jù)輸出端與單片機系統(tǒng)的數(shù)據(jù)線耦合連接;在單片機系統(tǒng)的程序存儲器之中,除了有用于觸摸事件判定的觸摸檢測程序外,還存儲有一個二極管標準參考值,一個數(shù)據(jù)歸一化代碼模塊;在觸摸檢測主程序或使用該觸摸屏的上位機驅(qū)動程序中,包含有一個觸摸點計算代碼模塊;所述增益差值表代碼模塊,能夠循環(huán)讀取每一個由紅外接收管產(chǎn)生的、經(jīng)信號放大和A/D變換后光電信號數(shù)據(jù),并將所述數(shù)據(jù)與上述標準參考值進行比較運算,生成一個與發(fā)射接收對管一一對應(yīng)的、用于所述光電信號數(shù)據(jù)歸一化的數(shù)據(jù)表;觸摸點計算代碼模塊能夠根據(jù)觸摸判定程序的判定結(jié)果,通過計算對所述由AD變換器輸出、經(jīng)過歸一化的光電信號進行曲線方程計算,得到觸摸點的精確坐標值。
對應(yīng)于這里的電路設(shè)計,本發(fā)明采用光電信號增益差值補償?shù)姆椒?,實現(xiàn)精確計算觸摸點坐標的目的,主要步驟如下1.單片機系統(tǒng)通過掃描發(fā)生器、模擬開關(guān)陣列,將第一對紅外發(fā)射管和接收管接通,使發(fā)射管發(fā)射紅外線,接收管接收紅外線;同時打開與A/D變換器連接的I/O口線,接收該接收管產(chǎn)生的光電信號經(jīng)放大處理、A/D變換得到的數(shù)據(jù);2.由步驟1得到的數(shù)據(jù)經(jīng)單片機系統(tǒng)的CPU運算處理后,存儲到存儲器內(nèi)的一定地址的存儲單元內(nèi);3.按照步驟1、2的方法,依次讀取打開與每一對紅外發(fā)射接收管所得到的A/D變換數(shù)據(jù),按照一定的地址排列方式,存儲到所述單片機系統(tǒng)的存儲器內(nèi),構(gòu)成一個“增益差值表”或“歸一化數(shù)據(jù)表”,直到最后一對紅外發(fā)射接收管;4.結(jié)束步驟1、2、3,并向進行數(shù)據(jù)處理的觸摸屏內(nèi)的單片機系統(tǒng)或上位計算機系統(tǒng)輸出開始下一步操作的指令;5.啟動觸摸判斷主程序,進入定時中斷重復步驟C,并進行數(shù)據(jù)歸一化處理;6.比較處理上述歸一化的數(shù)據(jù)和二極管參考值,判定是否有觸摸事件發(fā)生;7.將由步驟5和6得到的相鄰的數(shù)個數(shù)據(jù),送到單片機系統(tǒng)或上位計算機的CPU進行運算比較,判斷數(shù)據(jù)值的變化趨勢,是否符合所選定曲線的變化趨勢,即是否符合觸摸點精確計算的條件;8.在步驟7的判定結(jié)果滿足精確計算的條件的情況下,計算觸摸點的精確坐標值;9.按照步驟5、6的方法,依次運算比較每一對紅外發(fā)射接收管的A/D變換數(shù)據(jù),并輸出結(jié)果,直到最后一對紅外發(fā)射接收管;10.步驟9結(jié)束后,按照步驟5的方法,開始新的循環(huán)。
對比這兩個發(fā)明目的所使用的電路結(jié)構(gòu)和方法,可以看到,以提高觸摸分辨率為目的方法,完全可以建立在前述以提高觸摸屏工作壽命的電路結(jié)構(gòu)和方法的基礎(chǔ)之上,而省略掉“增益差值補償”的程序代碼,成為一種對性能的改善更全面的設(shè)計。當然,發(fā)射管驅(qū)動電路內(nèi)的載波發(fā)生器也可以加上,以提高觸摸屏的抗干擾能力。
本發(fā)明的優(yōu)點在于第一,采用數(shù)控增益控制環(huán),并降低發(fā)射管的驅(qū)動電流,在降低發(fā)射管老化速度的同時,實現(xiàn)動態(tài)的增益補償,極大地擴展了接收電路的有效范圍,也就極大地增加了觸摸屏的使用壽命;第二,使用曲線擬合的觸摸點計算方法,根據(jù)相鄰接收管的光電信號強度變化,用曲線擬合的方式精確計算觸摸點的位置,使其觸摸分辨率提高十幾倍,不僅能夠應(yīng)用在一般的大圖標觸摸輸入界面,還能夠應(yīng)用在要求在對分辨率要求很高的書寫、繪畫、網(wǎng)頁瀏覽等方面,擴展了它的用途;第三,采用高頻載波的方式,進一步加強了觸摸屏對一般常見的各種電光源和自然光的抗干擾能力。
圖1給出了本發(fā)明的總體物理結(jié)構(gòu)圖。從圖一可以看到,紅外發(fā)射接收管陣列安裝在構(gòu)成工作區(qū)域的框架101上,分為縱橫兩個方向構(gòu)成發(fā)射——接收陣列;其中發(fā)射管和接收管每兩只構(gòu)成一對,位置相對安裝在框架101內(nèi);發(fā)射管發(fā)射的紅外線如圖中102所示,在縱橫兩個方向上交叉而覆蓋整個觸摸工作區(qū)域。紅外發(fā)射管陣列中的每個發(fā)射管均連接到一個模擬開關(guān)陣列103上,被紅外發(fā)射驅(qū)動電路模塊105所驅(qū)動;紅外接收管陣列中的每個接收管均連接到模擬開關(guān)陣列106上;每一對發(fā)射接收管擁有一個固定的識別地址,即地址掃描發(fā)生器107產(chǎn)生的、控制兩個模擬開關(guān)陣列同時接通一對發(fā)射和接收管的“順序號碼”。紅外發(fā)射、接收管與模擬開關(guān)的連接方法有兩種第一種是每一個發(fā)射或接收管均于一個模擬開關(guān)相連接,模擬開關(guān)的數(shù)量不小于相對應(yīng)的發(fā)射、接收管的數(shù)量,適用于發(fā)射接收管數(shù)量較小的情況;第二種是由模擬開關(guān)的開關(guān)通道線路再構(gòu)成一個“縱橫方向”的控制陣列,每一個發(fā)射接收管均連接在這些通道線路的相交結(jié)點上,在發(fā)射接收管數(shù)量較大的情況下,可以節(jié)省大量模擬開關(guān)并簡化電路結(jié)構(gòu)。這兩種方法均是現(xiàn)有各種“多單元”驅(qū)動電路常用的形式,在此無需詳述。當發(fā)射發(fā)射接收管從控制接收管的模擬開關(guān)陣列輸出的紅外光電信號,作為觸摸掃描的判定信息,通過由預(yù)放電路109、高通或帶通濾波電路110等構(gòu)成的信號處理電路,輸入到單片機系統(tǒng)(MCS)115的I/O口線上。最后,整個觸摸屏通過單片機系統(tǒng)的接口117,與使用或接收該觸摸屏信息的上位機輸入輸出端口相連接。這里,本發(fā)明與上位機之間的連接端口可以是上位機的串口、并口或USB接口,一般使用串口或USB接口。所有這些部分均由單片機系統(tǒng)115通過控制總線或I/O口線117協(xié)調(diào)工作。發(fā)射管驅(qū)動電路105除了可以直接由單片機系統(tǒng)控制外(圖中未畫出),也可以由地址掃描發(fā)生器107通過同步線108控制。但作為一個獨立的能量供給電路,也可以自行工作,而由模擬開關(guān)陣列103控制其對發(fā)射管的驅(qū)動。在所述上位機的物理存儲器內(nèi),安裝有使用該觸摸屏的驅(qū)動程序。
與現(xiàn)有觸摸屏物理結(jié)構(gòu)的不同之處在于,在圖1中光電信號的通道中,增加了由111和114構(gòu)成的數(shù)控增益放大器;一個D/A變換器113,并且在紅外發(fā)射管的驅(qū)動電路中串連了一個電流限制電路104。為了提高系統(tǒng)的抗干擾能力,在紅外發(fā)射管的驅(qū)動電路105內(nèi)還可以安裝裝一個載波發(fā)生器,經(jīng)實驗得到,載波頻率可以設(shè)定在50——300KHz之間,將紅外發(fā)射管發(fā)射的紅外脈沖進行高頻調(diào)制;相應(yīng)在光電信號處理電路中的濾波器110,應(yīng)當是與載波的頻率相對應(yīng)的高通或帶通濾波器。
按照圖1中的電路構(gòu)成和單片機系統(tǒng)內(nèi)置程序功能,并根據(jù)不同的發(fā)明目的,本發(fā)明的工作過程分為兩類主要的過程,現(xiàn)分別詳細說明如下。
對于以增加觸摸屏的工作壽命為主的目的,第一類過程的功能是建立一個和增益控制表;第二類過程是利用已經(jīng)建立的增益控制表,通過調(diào)節(jié)數(shù)控放大器的增益,統(tǒng)一光電信號的最終幅度、檢測觸摸事件和確定觸摸點。具體的工作過程如下由單片機系統(tǒng)115控制地址掃描發(fā)生器107按照一定的順序和頻率,依次接通每一對紅外發(fā)射和接收管;每一只發(fā)射管的驅(qū)動電流均被電流限制電路104限制在一個較小的數(shù)值上,以保證發(fā)射能夠長時間工作而不降低性能;在發(fā)射管被接通的同時,與其對應(yīng)構(gòu)成一對的那只紅外接收管也被選通,將接收到的紅外信號轉(zhuǎn)變?yōu)殡娦盘?,從模擬開關(guān)陣列106的信號輸出端輸出到固定增益前置放大器(預(yù)放大器)109輸入端,被其以一定的比例放大。由于發(fā)射管的發(fā)射效率和接收管的接收靈敏度不同,所以盡管發(fā)射電流和放大增益相同,但前置放大器輸出的信號幅度,即A點的波形也是不同的,如圖2或圖3的電壓波形201和301所示。圖2所示的波形201,在沒有載波的情況下,可以是圖1中A點的波形,也可以是經(jīng)過濾波單元112后C點的波形,而無論是否有載波;圖3所示的波形301,是有載波的情況下圖1中A點的波形或B點的波形。放大后的光電信號被送到濾波器110,濾除包含自然光在內(nèi)的其它無用信號,然后送到數(shù)控增益放大器進行第二級放大。這時該放大器的增益被固定在一個適當?shù)闹瞪?,使其能夠?qū)⒐怆娦盘柗糯蟮阶銐虼?,而對于任何一個有用的信號又不會產(chǎn)生過載失真。經(jīng)過這次放大后的信號隨后被送到A/D變換器,經(jīng)?!獢?shù)變換后輸出到單片機系統(tǒng)的I/O口線上,被該計算機系統(tǒng)讀取。在該計算機系統(tǒng)內(nèi),讀取的數(shù)據(jù)將被與一個預(yù)置的二極管標準參考值相比較,即與該參考值相減或相除,得到一系列與發(fā)射接收對管相對應(yīng)數(shù)值,存儲在單片機系統(tǒng)內(nèi)的存儲器內(nèi),作為后面工作過程中調(diào)節(jié)數(shù)控增益放大器增益的依據(jù)。這里,所述標準參考值,原則上可以選取任意的數(shù)值,但為了得到最高的增益控制精度,最好選取一個絕對值盡量大的數(shù)值,但又要兼顧數(shù)控增益放大器的增益調(diào)節(jié)范圍,即對于輸入數(shù)控放大器的的光電信號,當其幅值較小時,能夠被以較大的增益充分放大;當其幅值較大時,數(shù)控放大器能夠降低到較低的增益,不使其出現(xiàn)過載失真。對于增益調(diào)節(jié)范圍一定的數(shù)控放大器,這個數(shù)值的確定可以通過實驗確定,也可以根據(jù)紅外發(fā)射接收管的技術(shù)數(shù)據(jù)經(jīng)計算得到。為敘述方便起見,本發(fā)明中選取的該參考值,可以是本過程中的參考值,又可以是下面第二類過程中觸摸判定的參考值。當本發(fā)明的觸摸屏經(jīng)過一次地址掃描過程后,所有的紅外發(fā)射和接收對管均被檢測一遍,即可得到一個增益控制表。當然,這個過程可以進行多次,按照一定規(guī)則產(chǎn)生這個控制表,以排除或減小各種偶然因素產(chǎn)生的誤差。
得到這個增益控制表之后,觸摸屏開始進入第二類工作過程——觸摸檢測。這個過程的某些方面與上面的過程相似,也是依次掃描接通每一對紅外發(fā)射接收管,所產(chǎn)生的光電信號經(jīng)放大、濾波等處理后,送到A/D變換器產(chǎn)生與光電信號強度對應(yīng)的數(shù)據(jù),供單片機系統(tǒng)使用。不同之處在于第一,在地址掃描電路接通某一對發(fā)射接收管的同時,單片機系統(tǒng)從“增益控制表”內(nèi)調(diào)用與該對發(fā)射接收管對應(yīng)的增益控制數(shù)據(jù),及時調(diào)節(jié)數(shù)控增益放大器的增益,使其正常接收到的光電信號被放大到上述的標準參考值,如圖5和圖6所示。這里,圖5中電壓波形501的取樣點與圖2的相同;圖6中電壓波形601的取樣點與圖3的相同,具體含意見前面介紹。第二,單片機系統(tǒng)可以用上述參考值與從A/D變換器得到的光電信號數(shù)值相減,然后根據(jù)得到差值的大小來判定是否有光線被阻擋,即是否有觸摸事件發(fā)生;也可以如圖8所示的原理,設(shè)定一個參考閥值電壓Vf,單片機系統(tǒng)通過檢測從A/D輸出的數(shù)據(jù)是否小于Vf,來判斷是否有觸摸事件發(fā)生。在圖8中,801是經(jīng)過檢波(有載波的情況下)和簡單濾波后的光電信號電壓波形,Vf是參考閥值電壓,虛線表示的凹陷802是因手指或其等效物阻擋紅外線而產(chǎn)生的電壓跌落。這里,Vf也可以作為后面各種觸摸判定過程中的“參考閥值電壓”使用,包括使用后面所述的“歸一化數(shù)據(jù)表”處理從A/D變換器得到的數(shù)據(jù)后,判斷是否有觸摸事件發(fā)生。具體選用前面增益控制表生成程序內(nèi)使用的參考值,還是使用Vf作為觸摸基本判定的參考值,可根據(jù)方便自由選定,在本發(fā)明中統(tǒng)稱為“觸摸判斷處理”。
在本目的的應(yīng)用中,數(shù)控增益放大器可以由一個壓控增益放大器111和一個D/A變換器114構(gòu)成,達到很高的控制精度;也可以使用通用的數(shù)控增益放大器,以降低成本和電路的復雜程度。具體選用哪一種形式,根據(jù)所本發(fā)明的實際需要確定。圖4所示圖1中D點的電壓波形401,就是上述單片機系統(tǒng)根據(jù)被接通的發(fā)射接收對管的順序,調(diào)用增益控制表中相應(yīng)的數(shù)據(jù),經(jīng)運算通過I/O接口輸出到D/A變換器114變換后,控制壓控增益放大器111的增益控制電壓的幅值。對于電流限制電路104,可以一般的恒流源構(gòu)成,但對于電壓降比較一致的紅外發(fā)射管,在驅(qū)動電壓固定的通常情況下,完全可以僅用一只限流電阻實現(xiàn)。
對于以增加觸摸屏的觸摸分辨率為主的目的,可以對圖1中的電路進行簡化,去掉電流限制電路104、由壓控增益放大器111和D/A變換器114構(gòu)成的數(shù)控增益放大器。在這種情況下,第一類過程的功能是建立一個和增益差值表;第二類過程是利用已經(jīng)建立的增益差值表,檢測觸摸事件和確定觸摸點。具體的工作過程如下依然由單片機系統(tǒng)115控制地址掃描發(fā)生器107按照一定的順序和頻率,與前面目的的過程相同,依次接通每一對紅外發(fā)射和接收管;從模擬開關(guān)陣列106的信號輸出端輸出到固定增益放大器109輸入端,被其以一定的比例放大。由于只有這一個放大單元,所以放大器的增益選擇要合適,使其能夠?qū)⒎递^小的光電信號放大到足夠大,而對于任何一個有用的信號又不會產(chǎn)生過載失真,這時濾波電路112可以移到放大器的前面或插入放大單元內(nèi)部,以免包含自然光在內(nèi)的其它無用信號使放大器產(chǎn)生飽和失真。同樣由于發(fā)射管的發(fā)射效率和接收管的接收靈敏度不同,所以盡管發(fā)射電流和放大增益相同,但前置放大器輸出的信號幅度,即A點的波形也是不同的,同樣如圖2、圖3所示,含意與前面相同。經(jīng)過放大后的信號隨后被送到A/D變換器,經(jīng)模——數(shù)變換后輸出到單片機系統(tǒng)的I/O口線上,被該計算機系統(tǒng)讀取。在該計算機系統(tǒng)內(nèi),讀取的數(shù)據(jù)將被與一個預(yù)置的標準參考值相比較,即與該參考值相減或相除,得到一系列與發(fā)射接收對管相對應(yīng)數(shù)值,存儲在單片機系統(tǒng)內(nèi)的存儲器內(nèi),作為后面工作過程中進行數(shù)據(jù)歸一化處理的依據(jù)。這里標準參考值的選取方法也與前面介紹的相同。當本發(fā)明的觸摸屏經(jīng)過一次地址掃描過程后,所有的紅外發(fā)射和接收對管均被檢測一遍,即可得到一個增益差值表。當然這個過程可以進行多次,按照一定規(guī)則產(chǎn)生這個比例表,以排除或減小各種偶然因素產(chǎn)生的誤差。
得到這個增益差值表之后,觸摸屏開始進入第二類工作過程——觸摸檢測。與前面相似,紅外接收管所產(chǎn)生的光電信號經(jīng)處理后被送到A/D變換器,產(chǎn)生與光電信號強度對應(yīng)的數(shù)據(jù);單片機系統(tǒng)同時從“增益差值表”內(nèi)調(diào)用與該對發(fā)射接收管對應(yīng)的增益比例數(shù)據(jù),與接收到的數(shù)據(jù)相加或相乘,使其正常接收到的光電信號被歸一化到上述的標準參考值。然后,運用前面閥值電壓判斷的原理,判定是否有觸摸事件發(fā)生,與圖8所示相同。圖7給出了圖1中C點經(jīng)檢波、簡單濾波后被送到A/D變換器之前的光電信號電壓波形701,和發(fā)生觸摸事件時光電信號被阻擋的情況。虛線表示的波形702是被阻擋后光電信號電壓跌落的波形??梢钥吹剑跀?shù)據(jù)歸一化之前,盡管也基本上可以判定觸摸事件是否發(fā)生,但由于信號幅度的差別,不容易精確地計算觸摸點的位置。
在以提高觸摸分辨率為目的的情況下,上述數(shù)據(jù)的歸一化處理,盡管不是觸摸判定的必要條件,但卻是為下面對觸摸點的精確計算提供的必要條件。發(fā)明人通過實驗發(fā)現(xiàn),當一個尺寸與人的手指相仿、近似圓柱體的物體在觸摸屏上阻擋了紅外光線時,由于紅外發(fā)射管有一定的發(fā)射角度,以及周圍環(huán)境物體的反射和空氣中各種顆粒的散射,所以對應(yīng)的紅外接收管還是有一定的輸出;而在掃描檢測的過程中,相鄰的幾對紅外發(fā)射接收管所接收到的信號也被一定程度地削弱。這時如果以發(fā)射接收對管的序號為一個坐標軸,以電壓值為另一個坐標軸,其光電信號的強度,尤其是在靠近被最大阻擋的接收管附近,近似地構(gòu)成一個含有常數(shù)值開放型二次曲線;或指數(shù)、對數(shù)曲線及正切曲線的一部分。曲線根據(jù)所選的坐標軸不同而開口方向不同,曲線的頂點就是觸摸點,即光電信號最小的點;所述的觸摸點計算代碼模塊,是通過已知點坐標求解二次曲線或指數(shù)、對數(shù)曲線及正切、余切曲線的頂點坐標值的算法模塊。利用這些曲線的方程,都可以得到精度很高的觸摸定位。由于其它曲線的數(shù)值求解方法比較復雜,所以在本發(fā)明中,兼顧計算的簡單性和精確性,利用雙曲線的曲線方程來精確計算點的坐標,如圖20所示。該算法代碼模塊存儲在觸摸屏的單片機系統(tǒng)內(nèi),或嵌入在該觸摸屏上位機的驅(qū)動程序內(nèi)。
在本發(fā)明中,上述兩個不同目的的信號處理過程,完全可以兼而有之融合在一起。比如在使用數(shù)控增益放大器實現(xiàn)硬件方式的光電信號數(shù)據(jù)的歸一化,在提高觸摸屏工作壽命的同時,再采用能夠?qū)崿F(xiàn)高觸摸分辨率的算法,就可以實現(xiàn)提高觸摸分辨率和極大增加觸摸屏工作壽命的雙重目的。而使用頻率較高的載波驅(qū)動發(fā)射管,又能夠提高系統(tǒng)的抗干擾能力。但為了敘述清晰,下面依然根據(jù)不同的主要目的,來說明觸摸屏內(nèi)單片機系統(tǒng)的工作程序代碼,以及可以移植到使用或處理該觸摸屏輸入信息的上位計算機內(nèi)代碼構(gòu)成和工作流程。
一切軟件的運行都必須有硬件基礎(chǔ),因此本發(fā)明中的程序流程建立在圖1所示結(jié)構(gòu)的基礎(chǔ)上。這里硬件之間的連接,包括光電信號通道內(nèi)各單元之間的連接,A/D、D/A變換器與光電信號通道和單片機系統(tǒng)之間的連接,以及發(fā)射二極管與模擬開關(guān)陣列、驅(qū)動電路之間的連接,均需要根據(jù)傳輸信號的屬性和所需的時序,采用相應(yīng)的連接模式,如模擬電路的電容耦合、數(shù)字電路的數(shù)據(jù)鎖存等,在此統(tǒng)稱為耦合連接。
針對以較小的驅(qū)動電流來驅(qū)動紅外發(fā)射管,然后使用數(shù)控增益調(diào)節(jié)方法,以延長其工作壽命的設(shè)計,圖9給出了生成增益控制表的程序代碼流程。這個程序的工作過程如下觸摸屏電源接通后,這個程序首先開始啟動,進入901和902,對整個單片機系統(tǒng)最基礎(chǔ)的檢測和復位,即初始化,這時也為數(shù)控增益放大器設(shè)置了一個基礎(chǔ)的增益值。初始化完成后,從存儲器內(nèi)讀入接收二極管的參考值903,同時讀入發(fā)射接收管的總數(shù),并進入步驟904,置發(fā)射接收對管的地址計數(shù)器N=0。然后通過一個轉(zhuǎn)移環(huán)節(jié)905,即程序從其它步驟進入步驟906的入口,進入步驟906開始掃描循環(huán),解析第一對發(fā)射接收管的地址,令N=1,在控制模擬開關(guān)陣列接通第一對發(fā)射接收管后,進入步驟907,驅(qū)動與A/D變換器113的I/O接口及其附屬的數(shù)據(jù)鎖存等電路,接收來自A/D變換器的數(shù)據(jù)。這一步需要注意安排好時序,考慮到系統(tǒng)各種延時,保證I/O口接收到真實穩(wěn)定的數(shù)據(jù)。數(shù)據(jù)接收完畢后,進入下一步908,將接收到的數(shù)據(jù)與先前讀入的二極管參考值相比較,結(jié)合現(xiàn)有的增益值,通過計算得到將這一對發(fā)射接收管的光電信號放大到參考值的標準,需要對數(shù)控增益放大器進行調(diào)節(jié)的數(shù)值,并將這個數(shù)值存儲到存儲器的一個特定地址的存儲單元內(nèi),形成增益控制表909的第一個數(shù)據(jù)。這里的比較可以是相除,也可以是相減,由于一般單片機系統(tǒng)計算乘除的能力比較弱,所以一般采用減法。至此,針對第一對發(fā)射接收管的增益控制調(diào)整設(shè)定完成,單片機系統(tǒng)進入步驟910,將地址計數(shù)器N的值加一,令N=N+1,然后通過判斷語句911,將N與已知的發(fā)射接收對管總數(shù)相比較。根據(jù)比較的結(jié)果決定程序的走向如果N小于對管總數(shù),就返回轉(zhuǎn)移環(huán)節(jié)905,檢測下一對發(fā)射接收管,直到最后一對;如果完成了最后一對,則N就等子對管總數(shù),通過步驟912最后完成增益控制表,結(jié)束增益控制表生成程序。這個增益控制表中的每一個數(shù)值,均按照一定的地址排列規(guī)則,存入單片機系統(tǒng)的存儲器。此后經(jīng)過一段延時程序913,執(zhí)行啟動觸摸檢測程序的步驟914。當然,如果希望增益控制表的數(shù)值能更精確,排除一切干擾,還可以將上面的程序運行數(shù)次,然后根據(jù)平均值并剔除明顯與平均值差異較大的數(shù)據(jù),來選取每一個控制值。這個增益差值表可以存儲在隨機存儲器內(nèi)隨時更新,也可以存儲在EEPROM存儲器內(nèi)定期更新。
圖10是在此目的下的觸摸檢測主程序代碼流程。該程序在增益控制表完成之后進入啟動步驟1001,再次進行初始化步驟1002,清除在寄存器等存儲單元內(nèi)不需要的數(shù)據(jù)。同上面的程序類似,首先通過步驟1003設(shè)置一些必要的數(shù)值,如對管總數(shù)、發(fā)射接收對管的地址計數(shù)器置0(N=0)等。然后進入一個或多個轉(zhuǎn)移環(huán)節(jié)1004、1005,通過定時中斷及判斷步驟1006,讀取第一對發(fā)射接收對管被選通后的A/D變換結(jié)果。完成A/D數(shù)值的讀取接收后,進入數(shù)據(jù)比較處理步驟1007,通過判斷步驟1008判斷是否有觸摸。如果沒有觸摸,則返回轉(zhuǎn)移環(huán)節(jié)1004或1005,如果有觸摸事件發(fā)生,則根據(jù)設(shè)定的需要,確定是直接將初步判定和觸摸點計算的結(jié)果通過與上位機的接口驅(qū)動1010發(fā)出,還是通過算法程序1009進行觸摸點的精確計算(這里用虛線表示該步驟,意義是可選的步驟)。如果直接將初步判斷的結(jié)果輸出到上位機,則觸摸屏的觸摸分辨率與現(xiàn)有的觸摸屏相同,只能判斷某一對發(fā)射接收管的光線是否被阻斷;如果經(jīng)過精確算法程序1009,就能夠達到本發(fā)明的第二個目的——提高觸摸分辨率。經(jīng)過上面的各個過程之后,主程序返回到轉(zhuǎn)移環(huán)節(jié)1004或1105,開始下一次觸摸檢測。
圖11給出了觸摸檢測主程序中,讀取A/D變換器的的定時中斷子程序代碼模塊流程圖。這個程序的工作過程也很簡單定時中斷的指令1101被執(zhí)行后,單片機系統(tǒng)就開始根據(jù)前面程序運行的結(jié)果解析發(fā)射接收對管的地址N,完成后讀取增益控制表1102。這時第N對發(fā)射接收對管已經(jīng)被接通,程序根據(jù)N找到了對應(yīng)的增益控制數(shù)據(jù),執(zhí)行步驟1103,在單片機系統(tǒng)的I/O口線輸出經(jīng)運算后增益控制值,調(diào)節(jié)數(shù)控增益放大器的增益到預(yù)定值。為了保證能夠得到穩(wěn)定的A/D變換值,這里插入了一個延時步驟1104,保證接收到的數(shù)值不會因為系統(tǒng)軟硬件的各種延時而出錯。這個延時的尺度很小,以延時后A/D變換器的數(shù)據(jù)穩(wěn)定為準。經(jīng)過這個步驟后,計算機系統(tǒng)通過I/O口線讀取A/D變換器的輸出值,即步驟1106,然后由步驟1107將這個數(shù)值存入緩存,供以后計算觸摸點的位置使用。步驟1108是一個循環(huán)次數(shù)的判斷步驟,判定是否已經(jīng)完成了一次循環(huán),如果完成了一次全部發(fā)射接收對管的循環(huán),就由步驟1110將掃描地址計數(shù)器清零,即N=0;否則轉(zhuǎn)向分支1109將N+1,為讀取下一對發(fā)射接收管做好準備。無論是否N的數(shù)值是多少,均匯總到轉(zhuǎn)移步驟1111而進入中斷結(jié)束步驟1112,返回主程序。在這里,觸摸檢測主程序的循環(huán)功能是在這個中斷例程中實現(xiàn)的,是實現(xiàn)循環(huán)的一種方式。但實現(xiàn)循環(huán)檢測每一對發(fā)射接收管的循環(huán)檢測,判斷N的數(shù)值以及加1的步驟,完全可以在主程序中實現(xiàn),程序的設(shè)計可以根據(jù)所用語言的語法規(guī)則,靈活多樣地編寫執(zhí)行代碼。
圖12是基本的觸摸點判斷子程序代碼模塊。定時中斷完成后,主程序通過步驟1201讀取前述緩存中的本次循環(huán)得到的A/D變換值,同時通過步驟1202讀取預(yù)設(shè)的二極管參考值,經(jīng)過比較代碼斷1203將這兩個數(shù)值相比較。這里為方便起見,選定前述的Vf作為二極管的參考值,判斷通過A/D得到的數(shù)值是否小于Vf,來確定是否有觸摸事件發(fā)生。比較的結(jié)果通過步驟1204存儲到接口緩沖區(qū),以備傳送到上位機。這個步驟可以根據(jù)上位機中安裝的本觸摸屏的驅(qū)動程序來確定是否需要,如果上位機中的驅(qū)動程序不需要無觸摸時的數(shù)據(jù),則這一步完全可以省略。在一般情況下,這一步是可以省略的。當然還可以有其它的判定方法,如使用前面增益控制表中使用的二極管參考值作為本次判斷的參考值,判斷該參考值與A/D變換值之間的差值是否大于某個設(shè)定標準來確定是否有觸摸發(fā)生。如果判斷有觸摸發(fā)生,就通過步驟1207在接口的緩沖區(qū)內(nèi)置觸摸標志碼,然后進入下一步,根據(jù)對觸摸屏性能的要求決定是進入主程序中觸摸點精確計算模塊1208,還是直接通過主程序向與上位機的連接端口發(fā)送數(shù)據(jù)。上述判斷在步驟1205中執(zhí)行,如果沒有觸摸事件發(fā)生,則轉(zhuǎn)向步驟1206,返回主程序中的轉(zhuǎn)移繼續(xù)語句1004或1005。
至此,以提高觸摸屏工作壽命為目的的兩個程序——增益控制表生成程序和觸摸檢測主程序的運行介紹完畢,下面將說明提高本發(fā)明觸摸屏觸摸分辨率程序結(jié)構(gòu)。
圖14是生成增益差值表的程序代碼流程圖。與生成增益控制表的程序相類似,這個程序也是由步驟1401、1402開始,首先對系統(tǒng)進行初始化,設(shè)置系統(tǒng)的基本工作狀態(tài),并讀入一些基本的必須數(shù)據(jù),如發(fā)射接收對管的總數(shù)等。由于提高觸摸分辨率的設(shè)計可以不涉及數(shù)控增益放大器,不需要這方面的基礎(chǔ)設(shè)置。初始化之后,經(jīng)步驟1403讀入一個與發(fā)射接收管有關(guān)的參考值,類似于圖9中步驟903所讀入的參考值,作為產(chǎn)生針對每一對發(fā)射接收管的發(fā)射效率和靈敏度的基準參考。然后進行步驟1404,設(shè)置發(fā)射接收對管的地址計數(shù)器N=0,再經(jīng)過一個轉(zhuǎn)移環(huán)節(jié)1405后,開始掃描循環(huán),進入步驟1406,解析第一對發(fā)射接收管的地址,令N=1,在控制模擬開關(guān)陣列接通第一對發(fā)射接收管后,進入步驟1407,驅(qū)動與A/D變換器113的I/O接口及其附屬的數(shù)據(jù)鎖存等電路,接收來自A/D變換器的數(shù)據(jù)。數(shù)據(jù)接收完畢后,進入下一步1408,將先前讀入的參考值與接收到的數(shù)據(jù)相比較。同圖9的過程相似,這里的比較一般采用減法,得到這一對發(fā)射接收管的光電信號與參考值的差值,將這個數(shù)值存儲到存儲器的一個特定地址的存儲單元內(nèi),形成增益控制表1409的第一個數(shù)據(jù)。然后,單片機系統(tǒng)進入步驟1410,將地址計數(shù)器N的值加一,令N=N+1,然后通過判斷語句1411,將N與已知的發(fā)射接收對管總數(shù)相比較,根據(jù)比較的結(jié)果決定程序的走向如果N小于對管總數(shù),就返回轉(zhuǎn)移環(huán)節(jié)1405,檢測下一對發(fā)射接收管,直到最后一對;如果N等于對管總數(shù),則經(jīng)步驟1412完成增益控制表,結(jié)束增益差值表生成程序。這個增益差值表中的每一個數(shù)值,也按照一定的地址排列規(guī)則,存入單片機系統(tǒng)的存儲器。此后經(jīng)過一段延時程序1413,執(zhí)行啟動觸摸檢測程序的步驟1414。當然,也可以如前面生成增益控制表一樣,多次運行這段程序,以排除偶然的干擾,使結(jié)果更準確。這個增益差值表可以存儲在隨機存儲器內(nèi)隨時更新,也可以存儲在EEPROM存儲器內(nèi)定期更新。
事實上,這里所述的“增益差值表”是一個用于光電信號數(shù)據(jù)歸一化的“歸一化數(shù)值表”在后面可以看到,如果在前述提高觸摸屏工作壽命的結(jié)構(gòu)和方法的基礎(chǔ)上再提高觸摸分辨率,那么這個“歸一化數(shù)值表”可以用“增益控制表”替代。
圖15是檢測觸摸事件并精確計算觸摸點的觸摸判定主程序代碼流程圖。這個主程序與圖10所示的觸摸檢測主程序基本內(nèi)容大部分相同,因而在此簡要對程序流程內(nèi)的各個步驟說明如下步驟1501由步驟1414引導啟動該程序;步驟1502系統(tǒng)初始化,讀入各種必須的數(shù)據(jù);步驟1503將發(fā)射接收對管的地址計數(shù)器置0;步驟1504定時中斷,讀取A/D變換器的數(shù)據(jù);步驟1505觸摸判定過程,初步判斷是否有觸摸事件發(fā)生;步驟1506觸摸判定轉(zhuǎn)移語句,根據(jù)觸摸判定的結(jié)構(gòu)決定程序下一步的走向,并在觸摸發(fā)生時在接口緩沖區(qū)內(nèi)置觸摸標志,可以與步驟1505合而為一;步驟1507進行詳細的觸摸點計算的算法子程序,并把計算結(jié)果存入接口緩沖區(qū),以便傳輸給上位機;步驟1508通過與上位機的接口發(fā)送數(shù)據(jù),將觸摸標志、觸摸點坐標等內(nèi)容發(fā)送到上位機,而后返回步驟1504,重新接收A/D變換器的光電信號數(shù)據(jù)。
圖16是圖15所示的觸摸檢測主程序中的定時中斷子程序代碼模塊,與圖11的內(nèi)容相似,不同之處在于不需要讀取與增益有關(guān)的預(yù)置數(shù)據(jù),下面按照圖示步驟說明。
步驟1601定時中斷開始;步驟1602解析目前需要得到光電信號數(shù)據(jù)的發(fā)射接收對管的地址N,控制地址掃描發(fā)生器和模擬開關(guān)陣列接通這對發(fā)射接收管;步驟1603讀取A/D變換器輸出的光電信號數(shù)據(jù);步驟1604將上一步得到的光電信號數(shù)據(jù)存入單片機系統(tǒng)的緩存;步驟1605判斷是否已經(jīng)將全部發(fā)射接收對管掃描了一遍,決定對其地址計數(shù)器的操作和狀態(tài);步驟1606在已經(jīng)完成一遍對發(fā)射接收對管全部光電信號數(shù)據(jù)掃描接收的情況下,將所述地址計數(shù)器置0;步驟1607在本次沒有完成對全部發(fā)射接收對管的數(shù)據(jù)接收掃描的情況下,將地址計數(shù)器加1;步驟1608轉(zhuǎn)移語句,步驟1607、1608的匯合處;步驟1609中斷返回,繼續(xù)主程序的工作。
圖17是圖15所示觸摸檢測主程序中的觸摸判定子程序代碼模塊。該子程序模塊與在圖12中所示的觸摸判定子程序模塊基本相同,下面按照圖示的步驟說明。
步驟1701將圖16中的步驟1604存儲在緩存中的A/D數(shù)據(jù)讀出;步驟1702通過分支步驟1703訪問由增益差值表生成程序生成的發(fā)射接收對管的增益差值表,找到并取出與該對發(fā)射接收管對應(yīng)的、增益歸一化所需要的差值,然后對本次得到A/D變換器數(shù)值歸一化;步驟1704從單片機系統(tǒng)的存儲器內(nèi)取出設(shè)定的二極管參考值;步驟1705將歸一化以后的A/D變換器數(shù)值與二極管參考值相比較;步驟1706將步驟1705比較的結(jié)果存入輸出端口的緩沖區(qū);步驟1707判斷結(jié)果轉(zhuǎn)移語句,根據(jù)是否有觸摸事件發(fā)生而決定程序的走向;步驟1708在判斷沒有觸摸發(fā)生的情況下,返回主程序中,開始下一個定時中斷;步驟1709在有觸摸事件發(fā)生的情況下,在輸出接口的緩沖區(qū)內(nèi)置觸摸標志;步驟1710調(diào)用算法子程序模塊,精確計算觸摸點。
如果要達到提高觸摸分辨率的目的,必須調(diào)用一個算法子程序模塊。圖13和圖19給出了兩種算法程序模塊的流程圖,分別對應(yīng)于安裝在觸摸屏內(nèi)的單片機系統(tǒng)的程序存儲器和上位機的物理存儲部件內(nèi)。
圖13所示的程序模塊安裝在觸摸屏內(nèi)的單片機系統(tǒng)的存儲器內(nèi),即步驟1009、1208、1507或1710所對應(yīng)的程序模塊。當上述各個主程序或子程序中的觸摸判定步驟,即本模塊中的步驟1301判定有觸摸事件發(fā)生后,算法模塊就進入另外一個判定步驟1303,判定緩存中的幾個相鄰的數(shù)據(jù)是否基本符合如圖20所示預(yù)定的光電幅值曲線。在圖20中縱軸N表示發(fā)射接收管的地址編號;橫軸V代表數(shù)控增益放大器調(diào)整后或者A/D輸出值歸一化以后的光電信號幅值度量單位;2001是沒有阻擋時的幅值;2002是被不同程度阻擋后的幅值;2003表示手指之間部分的橫切面。的判斷的過程如下對緩存內(nèi)相鄰的幾個數(shù)據(jù)進行比較,判斷后一次存入緩存單元的數(shù)值是否小于前一次的數(shù)值,如果這種趨勢存在,則認為光電信號在連續(xù)不斷地減弱,認為有手指尺寸的物體阻擋了發(fā)射管發(fā)射的紅外線,在這種情況下就啟動曲線擬合計算步驟,按照雙曲線的曲線方程,根據(jù)已知點計算出曲線的頂點的位置坐標,也就是光線最弱、光電信號最小的點的位置,即圖20中的點P。由于全部紅外發(fā)射接收對管是在縱向和橫向兩個方向排列的,所以在對全部發(fā)射接收管的一次光電信號數(shù)據(jù)的接收掃描過程中,會有兩次這種由強變?nèi)醯淖兓?,也就需要計算兩次,分別計算出相應(yīng)的橫坐標和縱坐標,也就確定了觸摸點的位置。如果前述的這種光電信號變化趨勢不存在,則直接跳轉(zhuǎn)到轉(zhuǎn)移繼續(xù)語句1306,繼續(xù)主程序中的其它操作,并且認為不是真正的觸摸,不計算觸摸點的精確坐標,而是認為是干擾等其它原因引起了信號強度的變化,或不予理會,不向上位機輸出坐標值,或者先傳送一個低分辨率的觸摸坐標到上位機,或者在這種狀況長期存在的情況下,修正二極管的增益差值表(在圖9中是增益控制表),以消除干擾。事實上,由于有這種趨勢判定的過程存在,所以在程序一開始發(fā)現(xiàn)有光電信號減弱時,并不馬上開始計算;只有在連續(xù)對幾對發(fā)射接收管進行數(shù)據(jù)接收的掃描過程之后,即有一定的延遲之后,才開始曲線的擬合計算。
因為精確計算觸摸點坐標必須有這種延遲,所以這種數(shù)據(jù)變化趨勢的判定還可以進一步,即不僅判斷數(shù)值的下降趨勢,還在下降趨勢結(jié)束后,再判斷數(shù)值的上升趨勢。單純判斷下降趨勢最多有3對發(fā)射接收管的掃描周期就可以了,如果加上上升趨勢的判斷,一般需要5個掃描周期,但最少也同樣只需要3個周期。如果加上上升趨勢的判定,其計算精度要高一些。由于地址掃描的速度非常高,所以這種延遲時間非常短,使用者根本感覺不到。
步驟1304就是上述的曲線擬合計算部分,計算結(jié)果經(jīng)步驟1305存儲到接口緩沖區(qū),經(jīng)轉(zhuǎn)移繼續(xù)語句1306后,通過接口將計算結(jié)果等內(nèi)容輸出到上位機。有關(guān)曲線方程的計算方法,請參閱有關(guān)計算方法的資料。
圖19是存儲在上位機物理存儲器內(nèi)的觸摸點精確計算程序代碼模塊,該代碼模塊與圖18所示的觸摸屏單片機系統(tǒng)內(nèi)的觸摸檢測主程序相對應(yīng)。在圖18中,步驟1801開始這個觸摸檢測主程序,經(jīng)步驟1802初始化之后,讀入必要的初始數(shù)據(jù),包括地址計數(shù)器置0,然后經(jīng)步驟1803將發(fā)射接收對管的,經(jīng)轉(zhuǎn)移繼續(xù)環(huán)節(jié)后進入前述的定時中斷模塊,掃描讀取A/D變換器輸出的光電信號數(shù)據(jù)。再經(jīng)過步驟1804讀入二極管參考值,而后經(jīng)過判斷語句1805判斷是否有觸摸事件發(fā)生。如果有觸摸事件發(fā)生,進入一個數(shù)據(jù)格式處理程序段1806,在經(jīng)過預(yù)置數(shù)據(jù)訪問的分支步驟1807讀取增益差值表和二極管參考值之后,按照與上位機的觸摸點計算程序模塊約定的方案組織數(shù)據(jù)格式,然后經(jīng)過步驟1808,從與上位機連接的端口,將組織好的數(shù)據(jù)發(fā)送到上位機。當然,這里依然需要使用輸出端口的緩沖區(qū),與前面介紹的步驟相同。圖19與圖18相結(jié)合,經(jīng)初始化步驟1901后,通過端口驅(qū)動程序,由步驟1902接收從觸摸屏發(fā)送過來的數(shù)據(jù),然后經(jīng)歸一化處理步驟1903,利用增益差值表將前述的A/D變換數(shù)據(jù)進行歸一化處理。下面的步驟1904與圖13中的步驟1303相同,是一個光電信號變化趨勢的判定程序段,不同之處在于這里的數(shù)據(jù)不是存在于觸摸屏的單片機系統(tǒng),而是存儲在上位機的內(nèi)存或緩存之中的數(shù)據(jù)P,N的意義不變;步驟1905與圖13中的步驟1304相同,是二次曲線,或本發(fā)明選定的雙曲線的數(shù)值計算程序段。在所有的計算完成之后,該程序經(jīng)步驟1906,或者直接將各種數(shù)據(jù)、指令直接傳送到應(yīng)用程序,或者存儲到內(nèi)存之中供調(diào)用。這一段觸摸點計算子程序一般嵌入觸摸屏的驅(qū)動程序之內(nèi),在安裝驅(qū)動程序時拷貝到上位機的硬盤上,在操作系統(tǒng)啟動觸摸屏后開始運行。
使用上位機實現(xiàn)觸摸點計算,能夠充分發(fā)揮PC機強大的計算功能,使計算速度極大地提高,觸摸屏的反應(yīng)更靈敏。因為對于觸摸屏內(nèi)的單片機而言,數(shù)值運算的能力實在太弱,用匯編語言編寫這種程序困難也比較大。
如前面所述,本發(fā)明的兩個主要目的可以應(yīng)用到一個觸摸屏上,即在提高觸摸屏工作壽命的基礎(chǔ)上再提高其觸摸分辨率。實現(xiàn)這樣的且的,只要在圖10所示的觸摸檢測主程序內(nèi)真正插入“計算方法”子程序代碼模塊,這時前述的“增益差值表”或“歸一化數(shù)據(jù)表”就是圖9中程序流程所生成的“增益控制表”;而且圖10還可以按照圖18所述的方式改造觸摸檢測主程序,在上位機內(nèi)安裝的驅(qū)動程序內(nèi)實現(xiàn)精確計算功能。
權(quán)利要求
1.一種提高紅外觸摸屏性能的結(jié)構(gòu),該結(jié)構(gòu)使用在由沿著顯示器的顯示表面的四個邊緣,按照一定的順序縱向和橫向排列的紅外線發(fā)射接收對管陣列;分別與上述陣列中每一只發(fā)射及其對應(yīng)的接收管相連接的兩組模擬開關(guān)陣列與模擬開關(guān)陣列相連接、產(chǎn)生開關(guān)順序通斷指令的掃描發(fā)生器;以及耦合連接在與紅外接收管對應(yīng)的模擬開關(guān)陣列信號輸出端的信號放大處理電路;一個與上位計算機的輸入輸出端口相連接,并通過I/O口線分別與上述各部分相連接、控制上述部分工作的微型計算機系統(tǒng);一個存儲在所述微型計算機的程序存儲器內(nèi)、用于觸摸判定的觸摸檢測程序;和安裝在上位機中的驅(qū)動程序所構(gòu)成的紅外觸摸屏內(nèi);其特征在于在所述的與紅外發(fā)射管相連接的模擬開關(guān)的驅(qū)動輸入端,連接有一個驅(qū)動電流限制電路或元件;并在所述的信號處理放大電路中,還串連有一個數(shù)控增益放大器和一個A/D變換器;數(shù)控增益放大器的輸入端與其它信號處理電路耦合連接,輸出端與所述A/D變換器的模擬輸入端耦合連接,增益控制端與微型計算機系統(tǒng)的I/O口線相連接;A/D變換器的數(shù)據(jù)輸出端與微型計算機系統(tǒng)的I/O口線耦合連接;在所述微型計算機系統(tǒng)的存儲器內(nèi),存儲有一個二極管標準參考值、一個增益比較運算代碼模塊和一段增益控制代碼;該增益比較代碼能夠?qū)乃鯝/D變換器得到的各個數(shù)據(jù),與所述標準數(shù)據(jù)進行比較運算,并將運算結(jié)果按照一定的地址排列方式,存儲到微型計算機系統(tǒng)內(nèi)存儲器的存儲單元內(nèi),構(gòu)成一個增益控制表;增益控制代碼嵌入在觸摸檢測主程序內(nèi),能夠在所述主程序檢測觸摸事件時,按照被所述掃描發(fā)生器通過模擬開關(guān)陣列所控制的紅外發(fā)射接對管的接通順序,依次讀取上述增益控制表,通過所述與數(shù)控增益放大器連接的I/O口線反饋輸出。
2.根據(jù)權(quán)利要求1或2所述的提高紅外觸摸屏性能的結(jié)構(gòu),其特征在于所述的數(shù)控增益放大器,由一個壓控增益放大器和一個D/A變換器構(gòu)成;其中D/A變換器的輸入端與所述微型計算機系統(tǒng)的I/O口線相連接,輸出端與壓控增益放大器的壓控增益控制端相連接。
3.根據(jù)權(quán)利要求1所述的提高紅外觸摸屏性能的結(jié)構(gòu),其特征在于該紅外觸摸屏的電路中,還包含有一個載波發(fā)生器,該發(fā)生器依次通過所述限流驅(qū)動電路或元件、模擬開關(guān)與紅外發(fā)射管相連接;與此對應(yīng)在信號處理電路中,還包含有一個檢波電路,該檢波電路安裝在所述A/D變換器之前,與數(shù)控增益放大器串連耦合連接。
4.根據(jù)權(quán)利要求3所述的提高紅外觸摸屏性能的結(jié)構(gòu),其特征在于在所述的信號處理電路中,還包含有一個高通濾波器;該濾波器串連安裝所述檢波電路之前。
5.根據(jù)權(quán)利要求4所述的提高紅外觸摸屏性能的結(jié)構(gòu),其特征在于在所述的信號處理電路中,還包含有一個以載波頻率為中心頻率的帶通濾波器;該帶通濾波器串連安裝在所述檢波電路之前。
6.一種提高紅外觸摸屏工作壽命的方法,該方法包含以下步驟A.在紅外觸摸屏的電路部分,安裝由所述的數(shù)控增益放大器、A/D變換器構(gòu)成的增益控制環(huán)路,和紅外發(fā)射管的驅(qū)動電流限制電路;B.微型計算機系統(tǒng)初始化,設(shè)定數(shù)控增益放大器的初始增益和紅外發(fā)射管的驅(qū)動電流;C.微型計算機系統(tǒng)通過掃描發(fā)生器、模擬開關(guān)陣列,將第一對紅外發(fā)射管和接收管接通,使發(fā)射管發(fā)射紅外線,接收管接收紅外線;同時打開與A/D變換器連接的I/O口線,接收該接收管產(chǎn)生的光電信號經(jīng)放大處理、A/D變換得到的數(shù)據(jù);D.將步驟C得到的數(shù)據(jù)與所述微型計算機系統(tǒng)內(nèi)存儲的標準數(shù)據(jù),通過其CPU進行比較運算,并將運算結(jié)果存儲到所述微型計算機系統(tǒng)內(nèi)一定地址的存儲單元內(nèi),作為數(shù)控增益放大器的增益控制數(shù)據(jù);E.按照步驟C、D的方法,依次讀取打開與每一對紅外發(fā)射接收管所得到的A/D變換數(shù)據(jù),按照一定的地址排列方式,存儲到所述微型計算機系統(tǒng)的存儲器內(nèi),構(gòu)成一組數(shù)控增益放大器的增益控制數(shù)據(jù),即“增益控制表”,直到最后一對紅外發(fā)射接收對管;F.結(jié)束步驟E,并向進行數(shù)據(jù)處理的觸摸屏內(nèi)的微型計算機系統(tǒng)發(fā)出開始下一步操作的指令;G.啟動包含有增益控制代碼模塊的觸摸檢測主程序;H.觸摸檢測主程序通過掃描發(fā)生器,控制模擬開關(guān)陣列,重新依次開啟紅外發(fā)射接收對管;同時按照紅外發(fā)射接對管的接通順序,調(diào)用增益控制代碼模塊,依次輸出上述預(yù)置數(shù)據(jù)中的每一個增益控制數(shù)據(jù)到數(shù)控增益放大器;I.重復步驟H,開始下一個循環(huán)。
7.一種提高紅外觸摸屏觸摸分辨率的結(jié)構(gòu),該結(jié)構(gòu)使用在由沿著顯示器的顯示表面的四個邊緣,按照一定的順序縱向和橫向排列的紅外線發(fā)射接收對管陣列;分別與上述陣列中每一只發(fā)射及其對應(yīng)的接收管相連接的兩組模擬開關(guān)陣列;與模擬開關(guān)陣列相連接、產(chǎn)生開關(guān)順序通斷指令的掃描發(fā)生器;以及耦合連接在與紅外接收管對應(yīng)的模擬開關(guān)陣列信號輸出端的信號放大處理電路;一個與上位計算機的輸入輸出端口相連接,并通過I/O口線分別與上述各部分相連接、控制上述部分工作的微型計算機系統(tǒng);一個存儲在所述微型計算機的程序存儲器內(nèi)、用于觸摸判定的觸摸檢測程序;和安裝在上位機中的驅(qū)動程序所構(gòu)成的紅外觸摸屏內(nèi);其特征在于在信號處理放大電路中,包含有一個A/D變換器,其模擬量輸入端與信號處理電路的輸出端耦合連接,其數(shù)據(jù)輸出端與微型計算機系統(tǒng)的數(shù)據(jù)線耦合連接;在微型計算機系統(tǒng)的程序存儲器之中,還存儲有一個二極管標準參考值,一個數(shù)據(jù)歸一化代碼模塊;在觸摸檢測主程序或使用該觸摸屏的上位機驅(qū)動程序中,包含有一個觸摸點計算代碼模塊;所述數(shù)據(jù)歸一化代碼模塊,能夠循環(huán)讀取每一個由紅外接收管產(chǎn)生的、經(jīng)信號放大和A/D變換后光電信號數(shù)據(jù),并將所述數(shù)據(jù)與上述二極管標準參考值進行比較運算,生成一個與發(fā)射接收對管一一對應(yīng)的、用于所述光電信號數(shù)據(jù)歸一化的數(shù)據(jù)表;觸摸點計算代碼模塊能夠根據(jù)觸摸判定程序的判定結(jié)果,通過計算對所述由AD變換器輸出、經(jīng)過歸一化的光電信號進行曲線方程計算,得到觸摸點的精確坐標值。
8.根據(jù)權(quán)利要求7所述的提高紅外觸摸屏觸摸分辨率的結(jié)構(gòu),其特征在于所述的數(shù)據(jù)歸一化的數(shù)據(jù)表,由數(shù)據(jù)歸一化代碼模塊利用所述二極管標準參考值,與每一個由紅外接收管產(chǎn)生的、經(jīng)信號放大和A/D變換后光電信號數(shù)據(jù)相減而得到。
9.根據(jù)權(quán)利要求7所述的提高紅外觸摸屏觸摸分辨率的結(jié)構(gòu),其特征在于在所述的與紅外發(fā)射管相連接的模擬開關(guān)的驅(qū)動輸入端,還連接有一個限流驅(qū)動電路或元件;所述的信號處理放大電路中,還串連有一個數(shù)控增益放大器;數(shù)控增益放大器的輸入端與其它信號處理電路耦合連接,輸出端與所述A/D變換器的模擬輸入端耦合連接,增益控制端與微型計算機系統(tǒng)的I/O口線相連接;A/D變換器的數(shù)據(jù)輸出端與微型計算機系統(tǒng)的I內(nèi)口線耦合連接;所述微型計算機系統(tǒng)存儲器內(nèi)數(shù)據(jù)歸一化代碼模塊,由一個增益比較運算代碼模塊和一段增益控制代碼構(gòu)成;該增益比較代碼能夠?qū)乃鯝/D變換器得到的各個數(shù)據(jù),與所述標準數(shù)據(jù)進行比較運算,并將運算結(jié)果按照一定的地址排列方式,存儲到微型計算機系統(tǒng)內(nèi)存儲器的存儲單元內(nèi),構(gòu)成一個增益控制表;增益控制代碼嵌入在觸摸檢測主程序內(nèi),能夠在所述主程序檢測觸摸事件時,按照被所述掃描發(fā)生器通過模擬開關(guān)陣列所控制的紅外發(fā)射接對管的接通順序,依次讀取上述增益控制表,通過所述與數(shù)控增益放大器連接的I/O口線反饋輸出。
10.根據(jù)權(quán)利要求7所述的提高紅外觸摸屏觸摸分辨率的結(jié)構(gòu),其特征在于所述的觸摸點計算代碼模塊,是通過已知點坐標求解二次曲線或指數(shù)、對數(shù)曲線及正切、余切曲線的頂點坐標值的算法模塊。
11.根據(jù)權(quán)利要求10所述的提高紅外觸摸屏觸摸分辨率的結(jié)構(gòu),其特征在于所述觸摸點計算代碼模塊,是一個通過雙曲線上已知點求解雙曲線頂點的算法模塊。
12.根據(jù)權(quán)利要求7、10或11所述的提高紅外觸摸屏觸摸分辨率的結(jié)構(gòu),其特征在于所述觸摸點計算代碼模塊,存儲在觸摸屏內(nèi)微型計算機系統(tǒng)的程序存儲器之中;并能夠被微型計算機系統(tǒng)的CPU執(zhí)行。
13.根據(jù)權(quán)利要求7所述的提高紅外觸摸屏觸摸分辨率的結(jié)構(gòu),其特征在于在所述觸摸屏的觸摸檢測主程序內(nèi),嵌入有一段數(shù)據(jù)傳輸代碼該代碼能夠?qū)⒂|摸點精確計算所需要的全部數(shù)據(jù),即上述歸一化的光電信號數(shù)據(jù)和觸摸事件判定結(jié)果,按照一定的格式,通過微型計算機系統(tǒng)與所述上位機的接口,傳輸運算結(jié)果到上位計算機中。
14.根據(jù)權(quán)利要求13所述的提高紅外觸摸屏觸摸分辨率的結(jié)構(gòu),其特征在于所述的觸摸點計算代碼,存儲在上位計算機的存儲器中;該運算比較代碼模塊,能夠被所述上位計算機的CPU執(zhí)行,并接收從所述從微型計算機系統(tǒng)通過與該計算機的接口傳輸而來的全部數(shù)據(jù)。
15.根據(jù)權(quán)利要求7、8、10、11或12所述的提高紅外觸摸屏觸摸分辨率的結(jié)構(gòu),其特征在于所述的觸摸點精確計算代碼模塊中,包含有一段判斷光電信號強度變換趨勢的代碼,該代碼能夠?qū)⒁粋€經(jīng)過歸一化處理的光電信號數(shù)據(jù),與提供該數(shù)據(jù)的紅外接收管據(jù)相鄰其它紅外接收管所提供的數(shù)據(jù)相比較,并判斷數(shù)據(jù)值的變化趨勢,是否符合所選定曲線的變化趨勢,即是否符合觸摸點精確計算的條件。
16.一種提高紅外觸摸屏分辨率的方法,該方法包含以下步驟A.在紅外觸摸屏的電路部分,安裝由所述A/D變換器構(gòu)成的模數(shù)變換電路;B.微型計算機系統(tǒng)初始化;C.微型計算機系統(tǒng)通過掃描發(fā)生器、模擬開關(guān)陣列,將第一對紅外發(fā)射管和接收管接通,使發(fā)射管發(fā)射紅外線,接收管接收紅外線同時打開與A/D變換器連接的I/O口線,接收該接收管產(chǎn)生的光電信號經(jīng)放大處理、A/D變換得到的數(shù)據(jù);D.由步驟C得到的數(shù)據(jù)經(jīng)微型計算機系統(tǒng)的CPU運算處理后,存儲到存儲器內(nèi)的一定地址的存儲單元內(nèi);E.按照步驟C、D的方法,依次讀取打開與每一對紅外發(fā)射接收管所得到的A/D變換數(shù)據(jù),按照一定的地址排列方式,存儲到所述微型計算機系統(tǒng)的存儲器內(nèi),構(gòu)成一個“增益差值表”或“歸一化數(shù)據(jù)表”,直到最后一對紅外發(fā)射接收管F.結(jié)束步驟C、D、E,并向進行數(shù)據(jù)處理的觸摸屏內(nèi)的微型計算機系統(tǒng)或上位計算機系統(tǒng)輸出開始下一步操作的指令;G.啟動觸摸判斷主程序,進入定時中斷重復步驟C,并進行數(shù)據(jù)歸一化處理;H.通過主程序進行觸摸判斷處理,判定是否有觸摸事件發(fā)生;I.將由步驟G和H得到的相鄰的數(shù)個數(shù)據(jù),送到微型計算機系統(tǒng)或上位計算機的CPU進行運算比較,判斷數(shù)據(jù)值的變化趨勢,是否符合所選定曲線的變化趨勢,即是否符合觸摸點精確計算的條件;J.在步驟I的判定結(jié)果滿足精確計算的條件的情況下,計算觸摸點的精確坐標值;K.按照步驟G、H的方法,依次運算比較每一對紅外發(fā)射接收管的A/D變換數(shù)據(jù),并輸出結(jié)果,直到最后一對紅外發(fā)射接收管;L.步驟K結(jié)束后,按照步驟G的方法,開始新的循環(huán)。
17.在權(quán)利要求16所述的方法中,觸摸屏內(nèi)的光電信號處理通路中還安裝了所述的數(shù)控增益放大器,故步驟D的內(nèi)容如下M.將步驟C得到的數(shù)據(jù)與所述微型計算機系統(tǒng)內(nèi)存儲的二極管標準數(shù)據(jù),通過其CPU進行比較運算,并將運算結(jié)果存儲到所述微型計算機系統(tǒng)內(nèi)一定地址的存儲單元內(nèi),作為數(shù)控增益放大器的增益控制數(shù)據(jù);N.重復步驟M,生成數(shù)控增益放大器的增益控制表作為歸一化數(shù)據(jù)表。
18.在權(quán)利要求16所述的方法之中,步驟I內(nèi)容如下O.啟動所述微型計算機系統(tǒng)內(nèi)的數(shù)據(jù)傳輸程序;傳輸歸一化處理的A/D數(shù)據(jù)和其她觸摸點計算所需要的預(yù)置數(shù)據(jù)到上位計算機中;P.啟動在所述上位機中的觸摸點精確計算代碼,接收由觸摸屏連接端口輸入的數(shù)據(jù)。
全文摘要
一種提高紅外觸摸屏性能的結(jié)構(gòu)和方法,主要結(jié)構(gòu)是在其光電信號通路內(nèi)插入A/D變換環(huán)節(jié),實現(xiàn)其單片機系統(tǒng)對光電元件性能的預(yù)檢,以及根據(jù)檢測結(jié)果實現(xiàn)觸摸判定過程中的數(shù)據(jù)歸一化,提供給曲線擬合方式的觸摸點計算模塊,極大地提高觸摸分辨率;再在該通路中插入數(shù)控增益環(huán)節(jié),與單片機系統(tǒng)構(gòu)成一個增益控制環(huán)路,依照上述預(yù)檢結(jié)果自動調(diào)節(jié)其增益實現(xiàn)數(shù)據(jù)歸一化,彌補元件間的性能和老化差異,極大地延長其工作壽命。
文檔編號G06F3/02GK1335548SQ0012146
公開日2002年2月13日 申請日期2000年7月24日 優(yōu)先權(quán)日2000年7月24日
發(fā)明者劉建軍, 劉新斌 申請人:北京匯冠科技有限公司