説明

タッチパネル駆動装置およびタッチパネル装置

【課題】各種の信号の伝送のための配線数をさらに削減し、配線基板の構造を簡素化する。
【解決手段】タッチパネル装置1は、タッチパネル2と、その周辺に設けられた駆動基板3,4と、制御部5とを備える。駆動基板3,4は、複数のドライバIC6を実装している。ドライバIC6は、タッチパネル2の透明電極に入力データに基づいて駆動電圧を印加するとともに、透明電極から出力される検出電圧を検出データとして取り込む。各ドライバIC6に供給するクロック、駆動電圧を出力するためのデータ、各ドライバIC6の処理動作を規定するコマンド等の信号を、各ドライバIC6間でデイジーチェーン接続される配線を介して順次伝送する。各信号を伝送するための配線がそれぞれ1系統設けられるだけでよいので、各配線を交差しないように形成することで、駆動基板3,4の片面に配線を設けることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マトリクス型タッチパネルを駆動するタッチパネル駆動装置およびそれを備えたタッチパネル装置に関するものである。
【背景技術】
【0002】
マトリクス型のタッチパネルは、複数点の同時のタッチ操作を検出できることから、複数点でのタッチ入力により規定されるコマンドの入力などに好適に利用できる。このようなマトリクス型タッチパネルは、互いに交差する2軸の方向に並ぶ複数の透明電極を有しており、一方の方向の各透明電極に駆動電圧を印加して、他方の方向の各透明電極に現れる出力電圧を検出することにより、タッチ入力の座標が特定される。
【0003】
上記の駆動電圧を各透明電極に印加するために、CPUから駆動電圧を出力するようにドライバに指示を与える。また、上記の各透明電極から出力電圧を検出するために、当該出力電圧をCPUに送信する。
【0004】
ところが、上記のようなタッチパネルでは、高解像度化が進むに従い、CPUとタッチパネルの各透明電極との間の信号伝送のための配線数が増加して、大型化するという不都合が生じてしまう。
【0005】
そのような不都合を解消するため、例えば、特許文献1には、配線数を減少させるために、複数の透明電極を群として各群にパラレル変換手段およびシリアル変換手段を設けた構成が開示されている。具体的には、この構成では、CPUからのシリアルの指示信号をパラレル変換手段によってシフトさせてパラレルに変換して各群のドライバに与え、各群の透明電極に駆動電圧を印加する。また、各群の透明電極から出力されたパラレルの検出信号をシリアル変換手段によってシフトさせてシリアルに変換し、各シリアル変換手段からのシリアルの検出信号を順次加算してCPUに送信する。これにより、信号を1つのシリアルで伝送するため、配線数を大幅に減少させることができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平9−274538号公報(1997年10月21日公開)
【非特許文献】
【0007】
【非特許文献1】アプリケーションノート4024“複数の周辺機器を制御するSPI/I2Cバスライン”、[Online]、平成19年10月29日、マキシム、[平成21年3月6日検索]、インターネット〈URL:http://japan.maxim-ic.com/appnotes.cfm/an_pk/4024〉
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1に記載されている構成では、CPUとタッチパネルとの間における特定の信号の伝送のみについて配線数の削減が図られているものの、このような信号以外のクロック等を伝送するには、CPUと各群との間に専用の配線が必要となる。しかしながら、これらの配線が基板上で交差してしまうので、これを回避するために、ドライバを実装する基板に多層基板を用いる必要がある。このような多層基板は、構造が複雑であるため、作製が煩雑であり、コスト高となる。
【0009】
また、非特許文献1には、シリアルインターフェースにおいて、複数のデバイスがデイジーチェーン接続されることにより、マイクロコントローラから出力されるデータを各デバイスへデイジーチェーン接続を介して伝送されることが開示されている。しかしながら、このような構成では、クロックやチップセレクト信号が、マイクロコントローラから各デバイスへ個々に与えられることから、特許文献1に記載されている構成と同様の問題を有する。
【0010】
本発明は、上記の問題点に鑑みてなされたものであり、各種の信号の伝送のための配線数をさらに削減し、配線基板の構造を簡素化することを目的としている。
【課題を解決するための手段】
【0011】
本発明に係るタッチパネル駆動装置は、マトリクス型タッチパネルにおける複数の第1電極へ駆動データに基づいて駆動電圧を印加し、前記第1電極と交差する複数の第2電極からタッチを検出する検出電圧を検出データとして出力する駆動用集積回路を複数備えたタッチパネル駆動装置であって、各駆動用集積回路が、デイジーチェーン接続されるとともに、前記複数の第1電極への駆動データが連続して構成されるシリアルの前記駆動データをシフトさせることによりパラレルに変換して各第1電極に対して出力するとともに、前記複数の第2電極からパラレルで得られた検出データをシフトさせることにより、パラレルの前記検出データをシリアルに変換して出力するデータシフト手段と、外部から与えられた指令データで規定される指令を実行することにより、前記データシフト手段による前記駆動データおよび前記検出データのシフト動作を開始させるシフト制御手段とを備え、前記駆動データ、前記検出データおよび前記指令データが、前記駆動用集積回路毎に連続するシリアル形式であり、クロックとともに、デイジーチェーン接続された各駆動用集積回路に伝送されることを特徴としている。
【0012】
上記の構成において、各駆動用集積回路が、デイジーチェーン接続されており、シリアル形式の駆動データ、前記検出データおよび前記指令データを次段の駆動用集積回路に伝送していく。また、各駆動用集積回路においては、シフト制御手段によって、指令データの指令が実行されることで、データシフト手段による駆動データおよび検出データのシフト動作が開始する。このシフト動作により、各第1電極に駆動データによる駆動電圧が印加されるとともに、各第2電極から検出電圧による検出データが取り込まれる。上記のシフト動作は、クロックに同期して行われる。このように、各駆動用集積回路がデイジーチェーン接続されることから、各駆動用集積回路へのファンアウト数が各データについて1つになり、駆動用集積回路を実装する基板における配線数を削減することができる。また、デイジーチェーン接続により、上記の配線を互いに交差しないように形成することが可能になる。これにより、配線を基板における同一面に形成することができ、基板を多層基板で形成する必要がなくなる。
【0013】
前記タッチパネル駆動装置において、各駆動用集積回路は、前記駆動データおよび前記検出データを前記データシフト手段でシフトさせるか否かを判定するシフト要否判定手段と、当該シフト要否判定手段により否と判定されたときに、入力された前記駆動データおよび前記検出データを前記データシフト手段を通過しない経路で直接出力する直接出力手段とを備えていることが好ましい。
【0014】
これにより、各駆動用集積回路では、シフト要否判定手段により、駆動データおよび検出データがシフトさせる必要はないと判定されると、入力される駆動データおよび検出データが直接出力手段によって、データシフト手段を通過せずに出力される。したがって、次段以降の駆動用集積回路への駆動データおよび検出データの伝送速度の低下を抑えることができる。
【0015】
タッチパネル駆動装置においては、水平方向に配置された駆動用集積回路で水平方向に並ぶ電極への電圧印加と電圧検出とを行い、垂直方向に配置された駆動用集積回路で垂直方向に並ぶ電極への駆動電圧の印加と検出電圧の検出とを行う。また、水平方向の駆動用集積回路と垂直方向の駆動用集積回路とで、電圧印加と電圧検出とがそれぞれ個別に行われる。例えば、水平方向の駆動用集積回路で駆動電圧の印加が行われる場合には、垂直方向の駆動用集積回路で検出電圧の検出が行われる。逆に、垂直方向の駆動用集積回路で駆動電圧の印加が行われる場合には、水平方向の駆動用集積回路で検出電圧の検出が行われる。
【0016】
したがって、垂直方向の駆動用集積回路におけるデータシフト手段でデータをシフトさせる場合には、当該データを水平方向の駆動用集積回路におけるデータシフト手段でシフトさせる必要はない。この場合には、当該データが水平方向の駆動用集積回路におけるデータシフト手段を上記のように通過しないようにして、そのままの状態で当該データを伝送することができる。逆に、水平方向の駆動用集積回路におけるデータシフト手段でデータをシフトさせる場合には、当該データを垂直方向の駆動用集積回路におけるデータシフト手段でシフトさせる必要はない。この場合には、当該データが垂直方向の駆動用集積回路におけるデータシフト手段を上記のように通過しないようにして、そのままの状態で当該データを伝送することができる。これにより、不要にシフト数が増加することなく、データを高速で伝送することができる。
【0017】
また、前記タッチパネル駆動装置において、各駆動用集積回路は固有のIDが設定されており、最終段の前記駆動用集積回路は、前記IDが最終段の駆動用集積回路を表す最終値であり且つ前記指令が前記データシフト手段によるシフト動作を実行させるシフト指令であるとき、前記IDが前記最終値であり且つ前記指令が前記シフト指令以外の指令であるとき、前記IDが前記最終値であり且つ前記指令データが与えられないとき、前記IDが0であるとき、前記IDが前記最終値または0以外の値であるときに、それぞれを判別する終端信号を出力する終端出力手段を有していることが好ましい。
【0018】
これにより、IDが1のとき、終端出力手段から、シフト指令もしくはそれ以外の指令が実行されるとき、または指令データが与えられないときに、それぞれを判別する終端信号が出力されることにより、シフト命令やそれ以外の指令の実行が終了したことや、指令がなかったことを確認できる。しかも、IDが1であるので、終端信号により、最終段の駆動用集積回路に正しくIDが設定されていることも確認できる。また、IDが0(ID未設定)のときも終端信号により判別可能であるので、駆動用集積回路が基板に互いに正しく接続されていることを確認できる。さらに、最終段の駆動用集積回路に0および1以外のIDが設定されているときも終端信号により判別可能であるので、当該駆動用集積回路に正しいID(最終値=1)が設定されていないことを確認できる。
【0019】
また、このタッチパネル駆動装置において、前記終端出力手段は、前記検出データが出力されるときに、前記検出データが前記データシフト手段によってシフトされる直前に前記終端信号を出力することが好ましい。
【0020】
最終段から出力される検出データは、一旦、タッチパネルと外部のCPUとの間のインターフェース機能を有する制御部における記憶装置に読み込まれて、CPUに出力される。上記の検出データを記憶装置に読み込むとき、終端出力手段から、検出データがシフトされる直前に終端信号が出力されるので、制御部において検出データの読み込みを行うときに、指令データの実行終了を確認することができる。
【0021】
また、前記タッチパネル駆動装置において、前記駆動用集積回路は、前記駆動データおよび前記検出データを取り込む第1フリップフロップと、前記指令データを取り込む第2フリップフロップとを備え、前記第1および第2フリップフロップが前記クロックの立ち下がりに同期して取り込み動作を行うことが好ましい。
【0022】
これにより、第1および第2フリップフロップの取り込み動作においてレーシング現象の発生を回避することができる。
【0023】
本発明のタッチパネル装置は、マトリクス型タッチパネルと、当該マトリクス型タッチパネルを駆動するタッチパネル駆動装置とを備えたタッチパネル装置であって、前記タッチパネル駆動装置が上記のいずれかのタッチパネル駆動装置である。
【発明の効果】
【0024】
本発明に係るタッチパネル駆動装置は、以上のように、マトリクス型タッチパネルにおける複数の第1電極へ駆動データに基づいて駆動電圧を印加し、前記第1電極と交差する複数の第2電極からタッチを検出する検出電圧を検出データとして出力する駆動用集積回路を複数備えたタッチパネル駆動装置であって、各駆動用集積回路が、デイジーチェーン接続されるとともに、前記複数の第1電極への駆動データが連続して構成されるシリアルの前記駆動データをシフトさせることによりパラレルに変換して各第1電極に対して出力するとともに、前記複数の第2電極からパラレルで得られた検出データをシフトさせることにより、パラレルの前記検出データをシリアルに変換して出力するデータシフト手段と、外部から与えられた指令データで規定される指令を実行することにより、前記データシフト手段による前記駆動データおよび前記検出データのシフト動作を開始させるシフト制御手段とを備え、前記駆動データ、前記検出データおよび前記指令データが、前記駆動用集積回路毎に連続するシリアル形式であり、クロックとともに、デイジーチェーン接続された各駆動用集積回路に伝送される。これにより、各駆動用集積回路へのファンアウト数が各データについて1つになり、駆動用集積回路を実装する基板における配線数を削減することができる。また、デイジーチェーン接続により、上記の配線を互いに交差しないように形成することが可能になる。したがって、配線を基板における同一面に形成することにより、配線基板の構造を簡素化することができるという効果を奏する。
【図面の簡単な説明】
【0025】
【図1】本発明の実施形態に係るタッチパネル装置の要部の構成を示す図である。
【図2】上記タッチパネル装置におけるタッチパネルおよび当該タッチパネル周辺に接続される駆動基板の構成を示す図である。
【図3】上記駆動基板に設けられるドライバICの構成を示すブロック図である。
【図4】上記ドライバICに与えられる各種のコマンドを示す図である。
【図5】上記コマンドの送信タイミングを示すタイミングチャートである。
【発明を実施するための形態】
【0026】
本発明の実施形態を図1〜図5に基づいて説明すると、以下の通りである。
【0027】
図1に示すように、本実施の形態に係るタッチパネル装置1は、タッチパネル2と、駆動基板3,4と、制御部5とを備えている。駆動基板3,4および制御部5は、タッチパネル装置1においてタッチパネル駆動装置を構成している。
【0028】
図2に示すように、タッチパネル2は、高精細のマトリクス型タッチパネルである。このタッチパネル2は、所定間隔をおいて対向するように貼り合わされた透明基板を有しており、両透明電極の互いに対向する面が電極形成面となる。一方の透明基板における電極形成面には、水平方向に互いに平行に配された複数の透明電極Eh(第1電極または第2電極)が形成されている。また、他方の透明基板における電極形成面には、垂直方向に互いに平行に配された複数の透明電極Ev(第1電極または第2電極)が形成されている。各透明電極Eh,Evは、ITO(インジウム錫酸化物)などからなる抵抗膜で構成される短冊状の電極であり、両透明基板間で互いに交差するように配置されている。
【0029】
タッチパネル装置1においては、タッチパネル2がタッチされると、タッチ箇所で透明電極Eh,Evの交差部分が互いに接触する。この状態で、透明電極Ehまたは透明電極Evのいずれか一方に駆動電圧を印加すると、この駆動電圧がタッチ箇所を介して他方側に現れる。したがって、この電圧を検出電圧として取り出すことにより、タッチパネル2上でタッチされた位置が検出される。
【0030】
なお、以降の説明において、透明電極Eh,Evに共通して記述する場合には、透明電極Eとする。
【0031】
駆動基板3は透明電極Ehの一端側に接続され、駆動基板4は透明電極Evの一端側に接続されている。これらの駆動基板3,4には、それぞれ複数のドライバIC6(駆動用集積回路)が設けられている。また、駆動基板3において、各ドライバIC6は、タッチパネル2の垂直方向接続端縁に沿った垂直方向に並ぶように実装されている。一方、駆動基板4において、各ドライバIC6は、タッチパネル2の水平方向の接続端縁に沿った水平方向に並ぶように実装されている。
【0032】
ドライバIC6は、制御部5から与えられるシリアルのデータDATAINに基づいた駆動電圧をタッチパネル2の複数の透明電極Eh,Evへ出力する。具体的には、ドライバIC6は、データDATAINを透明電極Eh,Evの個々に対応するようにパラレルに変換して、このパラレルのデータに基づいて透明電極Eh,Evの個々に与える駆動電圧を発生する。また、ドライバIC6は、透明電極Eh,Evから出力される検出電圧に基づく検出データを制御部5に出力する。具体的には、ドライバIC6は、複数の透明電極Eh,Evの個々から出力される検出電圧をパラレルのデータとして検出し、検出したデータをシリアルのデータに変換して出力する。
【0033】
ドライバIC6は、上記のようなデータのシリアル/パラレル変換を行うために、データをシフトする機能を有している。この機能を含め、ドライバIC6については、後に詳しく説明する。
【0034】
駆動基板3に実装される各ドライバIC6は、複数の透明電極Ehに駆動電圧を出力するとともに、複数の透明電極Ehからの検出電圧が入力されるように、タッチパネル2側に入出力用の端子(ピン)を有している。同様に、駆動基板4に実装される各ドライバIC6は、複数の透明電極Evに駆動電圧を出力するとともに、複数の透明電極Evからの検出電圧が入力されるように、タッチパネル2側に入出力用の端子(ピン)を有している。
【0035】
また、駆動基板3,4には、各種の配線W1〜W6が形成されている。配線W1は、上記のデータDATAINを各ドライバIC6に入力するとともに、当該データDATAINおよび各ドライバIC6から得られた上記の検出データを伝送データDATANEXT(図3参照)として次段のドライバIC6に出力するための配線である。配線W2は、各ドライバIC6へ入力される入力コマンドCMDINと、各ドライバIC6から出力される出力コマンドCMDOUTとを伝送する配線である。コマンドの詳細については、後に詳細に説明する。
【0036】
配線W3は、制御部5から供給される入力クロックCLKINを各ドライバIC6に入力するための配線である。配線W4は、リセット信号RSTを各ドライバIC6に入力するための配線である。配線W5は、上記の検出データが全ドライバIC6について順次付加されて構成されるシリアルの出力データDATAOUTを最後段のドライバIC6から制御部5に出力するための配線である。配線W6は、特定のドライバIC6から出力されるリターンクロックCLKRTN(終端信号)を制御部5に戻すための配線である。
【0037】
制御部5からの入力信号を伝送する配線W1〜W4は、駆動基板3において、駆動基板4から最も離れたドライバIC6(図2における上端のドライバIC6)に接続されている。当該ドライバIC6は、これらの配線W1〜W4から伝送される信号を内部の処理に用いるとともに、配線W1〜W4を介して隣接するドライバIC6に出力する。また、当該ドライバIC6は、透明電極Eh,Evの出力電圧から取得したタッチの検出データ(データDATANEXT)を配線W1を介して隣接するドライバIC6に出力する。これらの隣接する2つのドライバIC6間での信号の伝送も配線W1〜W4を用いて行われる。これは、他の隣接するドライバIC6同士でも同じであり、駆動基板3,4において隣接するドライバIC6同士と、駆動基板3,4間で隣接するドライバIC6同士とが、配線W1〜W4を介してデイジーチェーンで接続されている。これにより、隣接するドライバIC6間で信号が順次伝送されていく。
【0038】
制御部5へ出力信号を伝送する配線W5,W6は、駆動基板4において、駆動基板3から最も離れたドライバIC6(図2における右端のドライバIC6)に接続されている。当該ドライバIC6は、これらの配線W5,W6から伝送される信号を制御部5へ出力する。
【0039】
このようなデイジーチェーン接続が可能となるように、各ドライバIC6において、配線W1〜W4が接続される端子(ピン)は、隣接するドライバIC6間で配線W1〜W4が交差しないような位置に設けられている。これにより、制御部5が駆動するドライバIC5へのファンアウト数が各信号について1つになり、駆動基板3,4における配線数を削減することができる。また、デイジーチェーン接続により、配線W1〜W4を互いに交差しないように形成することが可能になる。これにより、配線W1〜W4を駆動基板3,4における同一面に形成することができ、駆動基板3,4を多層基板で形成する必要がなくなる。
【0040】
上記のように、データは、ドライバIC6間で順次転送されていき、各ドライバIC6において、シリアル/パラレル変換のためにシフトされる。透明電極Eh,Evへの駆動電圧の出力および透明電極Eh,Evからの検出電圧の入力を一斉に行うために、上記のシフト動作のタイミングを各ドライバIC6で同期させる必要がある。
【0041】
そこで、各ドライバIC6には、シフト開始まで待機する時間が入力クロックCLKINのクロック数で個々に設定される。具体的には、当該クロック数は、デイジーチェーン接続における先頭のドライバIC6から順に所定値(例えば1つ)ずつ少なくなり且つ最終段のドライバIC6のID(最終値)が1になるように設定され、各ドライバIC6を特定するIDとして与えられる。初段のドライバIC6に与えられるID(最大ID値)は、入力コマンドCMDIN(指令データ)におけるID設定コマンドに含まれており、当該ドライバIC6において所定値(例えば1)だけ減算される。次段のドライバIC6に与えられるID設定コマンドは、減算された上記のIDを含んでおり、当該ドライバIC6および以降のドライバIC6においても、同様にIDが減算される。このようにして、各ドライバIC6は、前段のドライバIC6で設定されるIDより小さいIDを取得する。
【0042】
ここで、ドライバIC6はCMOSレベル(5V)で動作する。ドライバIC6への電源電圧の印加は、上記のようなデイジーチェーン接続による配線ではなく、各ドライバIC6に接続される電源配線によって行われる。このため、電源配線については、駆動基板3,4において配線W1〜W4が形成される面と異なる面に形成される。例えば、配線W1〜W4が駆動基板3,4におけるドライバIC6の実装面に形成されている場合、電源配線は駆動基板3,4における実装面と反対側の面に形成される。
【0043】
なお、上記の例では、駆動基板3側から信号を入力して、駆動基板4側から信号を出力しているが、逆に、駆動基板4側から信号を入力して、駆動基板3側から信号を出力してもよい。
【0044】
制御部5は、前述の入力コマンドCMDIN、入力クロックCLKINおよびデータDATAINを出力する。この制御部5は、コマンドレジスタ51と、クロック発生器52と、データレジスタ53とを有している。
【0045】
コマンドレジスタ51は、各種の入力コマンドCMDINを記憶している。クロック発生器52は、上記の入力クロックCLKINを発生する。
【0046】
データレジスタ53は、データDATAINを構成する駆動電圧のパターンデータを記憶している。このパターンデータは、検出方法に応じて異なっており、各ドライバIC6について用意されている。例えば、特定の透明電極Ehに駆動電圧を印加して、タッチパネル2に対するタッチ入力を透明電極Evから検出するときに、特定の透明電極Ehのみに駆動電圧を印加するように構成されたパターンのデータをパターンデータとして用いる。即ち、透明電極Ehに駆動電圧を供給するパターンデータや透明電極Evに駆動電圧を供給するパターンデータが用意されている。各ドライバIC6についてのパターンデータがシリアルデータとなるように順次出力されることで、データDATAINが形成される。
【0047】
また、データレジスタ53には、駆動基板4における最後段のドライバIC6から出力されるデータDATAOUTと、当該ドライバIC6から出力されるリターンクロックCLKRTNとが入力される。データレジスタ53は、データDATAOUTをリターンクロックCLKRTNのタイミングで読み込んで記憶する。
【0048】
データレジスタ53へのパターンデータの書き込み、およびデータレジスタ53からのパターンデータの読み出しは、例えば、タッチパネル装置1を搭載する装置のCPUによって制御される。
【0049】
制御部5は、回路によって構成されるが、マイクロコンピュータを用いてソフトウェアにて実現してもよい。
【0050】
続いて、ドライバIC6について説明する。
【0051】
なお、以降に説明するドライバIC6は、33本の透明電極Eを駆動するものとして説明する。
【0052】
図3に示すように、ドライバIC6は、リセット信号処理部100と、クロック信号処理部200と、コマンド処理部300と、データ処理部400とを有している。
【0053】
リセット信号処理部100は、入力されたリセット信号RESINをドライバIC6内で伝送させて出力する。クロック信号処理部200は、入力された入力クロックCLKINをドライバIC6内で伝送させて出力する。なお、前記クロック信号処理部200は、後述するリターンクロックCLKRTNを発生する。
【0054】
コマンド処理部300は、入力された入力コマンドCMDINをデコードすることにより、入力コマンドCMDINで規定される各種の命令を命令信号として出力する。また、コマンド処理部300は、後段のドライバIC6で実行される入力コマンドCMDINをデコードせずに通過させるとともに、後述するID設定コマンドSETID(図4参照)に規定されるIDから1を減算して出力する。
【0055】
データ処理部400は、入力された入力データDATAINをシフトさせることによりパラレルの駆動データに変換して、当該駆動データに基づいて各透明電極Eに駆動電圧を印加するとともに、各透明電極Eから得られた検出電圧をパラレルの検出データとして取り込んでシフトさせることによりシリアルの検出データを出力する。また、データ処理部400は、入力データDATAINのうちの他のドライバIC6で使用される部分についてはシフトさせずに出力する。
【0056】
以降、各処理部100,200,300,400について詳細に説明する。
【0057】
リセット信号処理部100は、入力ドライバ101と、出力ドライバ102とを有している。入力ドライバ101は、外部から入力されるリセット信号RESINを波形整形するために、シュミットトリガタイプで構成されている。リセット信号RESINは、ドライバIC6の所要各部に供給される(便宜上図2において詳細なリセット信号供給配線を省略している)。出力ドライバ102は、入力ドライバ101からのリセット信号RESINを次段のドライバIC6にリセット信号RESOUTとして出力する。入力段に入力ドライバ101を設け、出力段に出力ドライバ102を設けることにより、リセット信号RESINの減衰を防止するようにドライブ能力を増強している。
【0058】
初段のドライバIC6に入力されるリセット信号RESINは、タッチパネル装置1を搭載する装置内で発生するパワーオンリセット信号やユーザの指示によって発生するリセット信号などである。
【0059】
クロック信号処理部200は、入力ドライバ201と、出力ドライバ202と、リターンクロック生成回路203(終端出力手段)とを有している。
【0060】
入力ドライバ201は、入力クロックCLKINを受けてドライバIC6の所要各部に供給される(便宜上図2において詳細なクロック信号供給配線を省略している)。出力ドライバ202は、入力ドライバ201からの入力クロックCLKINを次段のドライバIC6に出力クロックCLKOUTとして出力する。入力段に入力ドライバ201を設け、出力段に出力ドライバ202を設けることにより、入力クロックCLKINの減衰を防止するようにドライブ能力を増強している。
【0061】
リターンクロック生成回路203は、フリップフロップ204、ANDゲート205、ORゲート206および出力ドライバ207からなる。
【0062】
このリターンクロック生成回路203は、前述のリターンクロックCLKRTNを生成する。デイジーチェーン接続されたドライバIC6のうちの最終段のドライバIC6から出力されるリターンクロックCLKRTNは、配線W6を介して制御部5へ送られる。該制御部5は、入力されるリターンクロックCLKRTNの信号を監視することによって、デイジーチェーン接続された一連のドライバIC6の状態を把握することができる。なお、デイジーチェーン接続されたドライバIC6の最終段以外の、ドライバIC6からのリターンクロックCLKRTNは、後段へ伝送されず、使用されない。
【0063】
つまり、リターンクロック生成回路203におけるANDゲート205の一方の入力端には、例えば、下記の3つの信号がフリップフロップ204を介して入力される。第1の信号は、IDレジスタ412に記憶されたIDの値が“0”(00000)であるとき(つまり、デイジーチェーン接続された一連のドライバIC6がリセットされた状態のとき)に“1”となる信号である。第2の信号は、入力コマンドCMDINが実行されるときに1パルスのクロックが出力されるようなアクティブ(High)信号となる後述の命令実行信号CMDEXEである。第3の信号は、後述するシフト制御信号SHIFTSTRである。また、ANDゲート205の他方の入力端には、入力クロックCLKINが入力される。
【0064】
ORゲート206は、ID判別信号とANDゲート205の出力とが入力されている。上記のID判別信号は、IDレジスタ412に保持されているIDの上位4ビットが(0000)であるとき(最終段のドライバIC6のID値が正しく設定されているとき)に“1”となり、それ以外のとき(最終段のドライバIC6のID値が誤設定されているとき)に“0”となる信号である。
【0065】
これにより、IDが“0”(00000)のとき、リターンクロック生成回路203は、上記第1の信号に基づいて、出力クロックCLKOUTと同じ位相のクロックを出力する。
【0066】
また、IDが1のとき(最終段のドライバIC6のID値が正しく設定されているとき)、リターンクロック生成回路203は、入力コマンドCMDINが実行されるタイミング(命令実行終了のタイミング)で、上記第2の信号に基づいて、入力クロックCLKINに同期した1クロック分(1パルス)のリターンクロックCLKRTNを出力する。
【0067】
また、IDが1であり且つ前述のシフト系コマンドが実行されるとき、リターンクロック生成回路203は、上記第2および第3の信号に基づいて、入力クロックCLKINに同期した1クロック分の1パルスと、それに続く、後述するシフト制御信号SHIFTSTRがHighとなる期間に入力CLKINに同期したクロックとからなるリターンクロックCLKRTNを出力する。これにより、先の1パルスでシフト動作が行われたことを確認することができ、続くシフト制御信号SHIFTSTRがHighとなる期間(シフト期間)にリターンクロックCLKRTNが出力されることで、シフト制御信号SHIFTSTRがHighからLowに変化してリターンクロックCLKRTNが出力されなくなると、シフト動作が完了したことがわかる。
【0068】
また、IDが1であり且つ入力コマンドCMDINがドライバIC6に入力されないとき、リターンクロック生成回路203は、上記第2の信号に基づいて、Lowレベルを出力する。これにより、入力コマンドCMDINが与えられない(実行されない)ことがわかる。
【0069】
さらに、IDが上記の値以外のとき(最終段のドライバIC6のID値が誤設定されたとき)、リターンクロック生成回路203は、“1”となる上記ID判定信号に基づいて、誤設定されている間にHighレベルを出力する。
【0070】
このように、リターンクロックCLKRTNを用いることにより、命令の実行終了タイミング、IDの誤設定等を制御部5で判定することができる。
【0071】
コマンド処理部300は、インバータ301,302と、フリップフロップ303(第2フリップフロップ),304と、減算回路305と、切替スイッチ306と、フリップフロップ307と、プルアップ抵抗Rと、入力ドライバ308と、コマンドバッファ309と、制御回路310(シフト制御手段)と、バレルレジスタ312と、シフトカウンタ313とを有している。
【0072】
ここで、コマンド処理部300の説明に先立って、入力コマンドCMDINの詳細について説明する。
【0073】
図4に示すように、各入力コマンドCMDINは、オペコードを構成する下位の4ビット(OPT0〜OPT3)と、オペランドを構成する上位の5ビット(OPD0〜OPD4)とからなる。オペコードは、入力コマンドCMDINにおける命令が規定される部分であり、オペランドは、入力コマンドCMDINにおける各種のパラメータが設定される部分である。
【0074】
入力コマンドCMDINとしては、図4に示すように、例えば、リセットコマンドRESALL、ドライブOFFコマンドDRIVEOFF、バッファクリアコマンドCLRBUF、バッファドライブコマンドDRIVEBUF、全ドライブコマンドDRIVEALL、ラッチコマンドLATCHTOUCH、第1シフトコマンドSHIFTF、第2シフトコマンドSHIFTM、シフトビット数設定コマンドSETSHIFTNO、およびID設定コマンドSETIDが用意されている。
【0075】
リセットコマンドRESALLは、リセット可能な各部をリセットするためにリセット信号RESINと同等の機能を実行するコマンドであり、オペコードの全ビットが“0”である。制御回路310は、このリセットコマンドRESALLが入力されると、リセット信号RESINと同等のリセット信号を出力する。
【0076】
ドライブOFFコマンドDRIVEOFFは、駆動動作後にドライバコントローラ408の全てをリセットするが、シフトバッファ406(データシフト手段,シフト要否判定手段)をリセットしない。このドライブOFFコマンドDRIVEOFFは、ビットOPT3のみが“1”である。
【0077】
バッファクリアコマンドCLRBUFは、シフトバッファ406をリセットするコマンドである。このバッファクリアコマンドCLRBUFは、ビットOPT0のみが固定的に“1”である。また、ビットOPT3において、ドライバIC6が垂直側(“1”)または水平側(“0”)のいずれであるかが規定される。
【0078】
また、図示はしないが、バッファクリアコマンドCLRBUFを利用して、シフトバッファ406に保持された値を反転するバッファ反転コマンドINVBUFを構成することもできる。具体的には、バッファクリアコマンドCLRBUFとして利用する場合は、オペランドにおけるビットOPD0を“0”とし、バッファ反転コマンドINVBUFとして利用する場合は、オペランドにおけるビットOPD0を“1”とする。バッファ反転コマンドINVBUFは、本実施の形態で説明する駆動アルゴリズムには用いられないが、反転値を得るために、反転値を作成してシフトバッファ406においてシフトさせる必要はない。
【0079】
バッファドライブコマンドDRIVEBUFは、シフトバッファ406にシフトされたデータパターンに基づいて各ライン(透明電極E)を駆動するコマンドである。全ドライブコマンドDRIVEALLは、シフトバッファ406の出力に関係なくドライバIC6に接続される全ラインをアクティブに駆動するコマンドである。バッファドライブコマンドDRIVEBUFおよび全ドライブコマンドDRIVEALLは、オペランドにおけるビットOPD1が“1”である点で共通しているが、ビットOPD0の値で区別される。バッファドライブコマンドDRIVEBUFではビットOPD0が“1”であり、全ドライブコマンドDRIVEALLではビットOPD0が“0”である。また、ビットOPT3において、ドライバIC6が垂直側(“1”)または水平側(“0”)のいずれであるかが規定される。
【0080】
ラッチコマンドLATCHTOUCHは、全ラインからシフトバッファ406にデータをラッチする(読み込む)コマンドである。このラッチコマンドLATCHTOUCHは、ビットOPT0,OPT1が固定的に“1”である。また、ビットOPT3において、ドライバIC6が垂直側(“1”)または水平側(“0”)のいずれであるかが規定される。
【0081】
第1シフトコマンドSHIFTFは、シフトバッファ406のシフト動作をバレルレジスタ312に設定されている前述の倍数値を用いることなく実行させるコマンドである。この第1シフトコマンドSHIFTFにおいては、前述のようにシフトバッファ406におけるシフトのビット数が31以下である場合のシフト数をオペランドの5ビットで規定している。
【0082】
第2シフトコマンドSHIFTMは、シフトバッファ406のシフト動作をバレルレジスタ312に設定されている前述の倍数値を用いて実行させるコマンドである。この第2シフトコマンドSHIFTMにおいては、前述のようにシフトバッファ406におけるシフトのビット数が31以下のシフト数をオペランドの5ビットで規定している。
【0083】
シフトビット数設定コマンドSETSHIFTNOは、前述のようにシフトバッファ406におけるシフトのビット数が32以上である場合の32の倍数値をバレルレジスタ312に設定するコマンドである。このシフトビット数設定コマンドSETSHIFTNOにおいては、倍数値をオペランドの4ビットで規定している。
【0084】
第1シフトコマンドSHIFTF、第2シフトコマンドSHIFTMおよびシフトビット数設定コマンドSETSHIFTNOにおいても、ビットOPT3において、ドライバIC6が垂直側(“1”)または水平側(“0”)のいずれであるかが規定される。
【0085】
ID設定コマンドSETIDは、各IDを設定するためのコマンドである。このID設定コマンドSETIDは、前述のように、デイジーチェーン接続における先頭のドライバIC6に設定される最大のID値がオペランドに規定されている。このオペランドは、第2のドライバIC6に設定されるIDが順次減じられた結果、末尾のドライバIC6のIDが1となるように設定される。また、オペコードは、3つのビットOPT0〜OPT2が用いられる。
【0086】
図5に示すように、入力コマンドCMDIN(基本コマンド)は、通常のシリアル通信で用いられるシリアルデータと同様に構成されている。具体的には、入力コマンドCMDINは、先頭にLowレベルのスタートビットを有しており、9ビット(OPT0〜OPT3,OPD0〜OPD4)の値(ローアクティブ)が入力クロックCLKに同期して連続して伝送される。入力コマンドCMDINは、複数の基本コマンドが列をなして構成される場合、コマンド列となる。
【0087】
シフトバッファ406による入力データDATAINのシフト動作は、駆動基板3または駆動基板4のいずれか一方におけるドライバIC6において同時に行われる。このため、例えば、駆動基板3におけるドライバIC6でシフト動作が行われるとき、駆動基板4におけるドライバIC6ではシフト動作が行われない。したがって、この場合、コマンド列である入力コマンドCMDINは、駆動基板4のドライバIC6に与えられる基本コマンドにおけるオペランドの各ビットが0に設定されている。これにより、シフトライン数が0となるので、シフトバッファ406におけるシフト動作は行われない。逆に、駆動基板4におけるドライバIC6ではシフト動作が行われる場合、入力コマンドCMDINは、駆動基板3のドライバIC6に与えられる基本コマンドにおけるオペランドの各ビットが0に設定されることになる。
【0088】
引き続き、コマンド処理部300について説明する。
【0089】
フリップフロップ303は、インバータ301で反転した入力コマンドCMDINを入力クロックCLKINのタイミングで取り込む。このフリップフロップ303は、レーシング現象を回避するために立ち下がりのタイミングで入力コマンドCMDINを保持する。
【0090】
減算回路305は、前述の設定コマンドSETIDにおけるオペコードから“1”を減算して出力する。フリップフロップ304は、減算回路305の減算の結果でボロー(桁下げ)を生じたときに、そのボローをフリップフロップ304で保持する。そして、フリップフロップ304は、保持したボローを桁下げ演算のために減算回路305へ与える。減算回路305とフリップフロップ304とでシリアルサブトラクターが構成されている。
【0091】
切替スイッチ306は、フリップフロップ303から出力される入力コマンドCMDINと、減算回路305から出力される入力コマンドCMDINとのいずれか1つを選択して出力する。具体的には、切替スイッチ306は、制御回路310から出力される切替制御信号が“0”であるとき、出力端子をフリップフロップ303に接続し、上記の切替制御信号が“1”であるとき、出力端子を減算回路305に接続する。
【0092】
フリップフロップ307は、入力クロックCLKINに同期して切替スイッチ306からの入力コマンドCMDINを保持する。インバータ302は、フリップフロップ307からの入力コマンドCMDINを反転して、出力コマンドCMDOUTとして次段のドライバIC6に出力する。
【0093】
ここで、ドライバIC6には、水平・垂直判別信号H/Vが入力される。水平・垂直判別信号H/Vは、駆動基板3における垂直方向に配置されたドライバIC6であることを“1”で表し、駆動基板4における水平方向に配置されたドライバIC6であることを“0”で表す。水平・垂直判別信号H/Vの入力端子は、入力ドライバ308の入力端子に接続されているが、CMOSレベルで駆動するため、抵抗Rによってプルアップされている。
【0094】
コマンドバッファ309は、フリップフロップ303を経た9ビットの入力コマンドCMDINを一時的に保持する。
【0095】
制御回路310は、コマンドバッファ309に保持された入力コマンドCMDINに含まれる4ビットのオペコードをデコードして得られるHighの信号と、後述するイコールコンパレータ414から出力される命令実行信号CMDEXEがHigh(アクティブ)とで有効となる命令信号を出力して所要の各部に与える。
【0096】
具体的には、制御回路310は、入力コマンドCMDINが前述のバッファクリアコマンドCLRBUFであるとき、バッファクリア信号CBUF(Highレベル)を命令信号として出力する。また、制御回路310は、入力コマンドCMDINが前述の全ドライブコマンドDRIVEALLであるとき、全ドライブ信号DALL(Lowレベル)を命令信号として出力する。また、制御回路310は、入力コマンドCMDINが前述のドライブOFFコマンドDRIVEOFFであるとき、ドライブOFF信号DOFF(Highレベル)を命令信号として出力する。また、制御回路310は、入力コマンドCMDINが前述のバッファドライブコマンドDRIVEBUFであるとき、バッファドライブ信号DBUF(Highレベル)を命令信号として出力する。また、制御回路310は、入力コマンドCMDINが前述のラッチコマンドLATCHTOUCHであるとき、ラッチ信号LOUT(Highレベル)を命令信号として出力する。さらに、制御回路310は、入力コマンドCMDINが前述の第1シフトコマンドSHIFTFまたは第2シフトコマンドSHIFTMであるとき、シフト命令信号SHIFT(Highレベル)を命令信号として出力する。
【0097】
また、制御回路310は、入力ドライバ308を介して入力される水平・垂直判別信号H/Vに基づいて、自身のドライバIC6が水平方向または垂直方向のいずれの方向に配置されたものであるかを判別する。
【0098】
また、制御回路310は、入力コマンドCMDINがID設定コマンドSETIDであるか否かを判定する。制御回路310は、その結果に応じて、入力コマンドCMDINがID設定コマンドSETIDである場合、“1”の切替制御信号を出力する一方、入力コマンドCMDINがID設定コマンドSETIDでない場合、“0”の切替制御信号を出力する。この切替制御信号は、IDをIDレジスタ412にロードするためのIDロード信号としても利用される。
【0099】
また、制御回路310は、後述するウエイトカウンタ413のカウント動作を開始させるためのカウンタ制御信号を出力する。このため、制御回路310は、コマンドバッファ309に書き込まれた入力コマンドCMDINのオペコードをデコードした結果から、当該入力コマンドCMDINがID設定コマンドSETID以外のコマンドであるか否かを判定する。これにより、制御回路310は、書き込まれた入力コマンドCMDINがID設定コマンドSETID以外のコマンドであると認識したときに、実行すべき入力コマンドCMDINがコマンドバッファ309に書き込まれていると判断して、カウンタ制御信号をアクティブ(High)に変化させる。
【0100】
また、制御回路310は、シフトバッファ406の制御に関するバッファ制御系コマンド(CLRBUF、DRIVEBUF/DRIVEALL、SHIFTF、SHIFTM、SETSHIFTNO、LATCHTOUCH)に含まれる水平・垂直の判別ビットと、水平・垂直判別信号H/Vとの値を比較して、両者の一致を判別する。バッファ制御系コマンドおよびラッチコマンドLATCHTOUCHには、オペコードにおける最上位のビットOPT3(図4参照)にドライバIC6が垂直側(“1”)または水平側(“0”)のいずれであるかが規定されている。
【0101】
また、制御回路310は、シフトバッファ406にシフト動作を行わせるためのシフト制御信号SHIFTSTRを出力する。このシフト制御信号SHIFTSTRは、前述のシフト命令信号SHIFTおよび命令実行信号CMDEXEがともにHighになるとHighとなり、後述するシフトカウンタ313がロード値からのカウント値が0になるとLowとなる。
【0102】
また、制御回路310は、後述するセレクタ407(直接出力手段)の切り替えを制御するためのセレクト信号を出力する。具体的には、制御回路310は、上記の両者が一致しているとき“0”となり、一致していないときに“1”となる一致判別信号(エクスクルーシブORゲートで得られる)と、命令実行信号CMDEXEとの論理積でセットされ、一致判別信号の反転信号と、命令実行信号CMDEXEとの論理積でリセットされるRSフリップフロップ(図示せず)を有している。制御回路310は、このRSフリップフロップによって、上記の判別ビットと、水平・垂直判別信号H/Vとの値が一致し且つ命令実行信号CMDEXEがアクティブとなってから、上記の判別ビットと、水平・垂直判別信号H/Vとの値が一致しなくなり且つ次に命令実行信号CMDEXEがアクティブとなるまでHighとなるセレクト信号を出力する。
【0103】
後述するシフトバッファ406において入力データDATAINをシフトするビット数は、前述の第1シフトコマンドSHIFTFで設定される。第1シフトコマンドSHIFTFは、5ビットのオペランドでそのビット数を表している。したがって、当該ビット数が31以下であれば、第1シフトコマンドSHIFTFにおいて、そのビット数に応じたシフト動作を規定することができる。
【0104】
しかしながら、入力データDATAINをシフトするビット数が31を越える場合には、上記の5ビットのオペランドではシフト動作を規定することができない。そこで、シフトするビット数が31を越える場合は、32を整数倍する倍数値(n)を予め規定しておき、32×nと、31以下のビット数を規定する第2シフトコマンドSHIFTMとで、32以上のビット数を表す。これにより、5ビットのオペランドでも、32以上のビット数を規定することができる。
【0105】
バレルレジスタ312は、上記の倍数値を記憶するために設けられる。当該倍数値は、前述のシフトビット数設定コマンドSETSHIFTNOにおけるオペランドの4ビットを用いて表される。このバレルレジスタ312は、例えばDラッチによって構成されており、水平方向のドライバIC6と垂直方向のドライバIC6とについてそれぞれ個別に該当する4ビットの値を保持する。バレルレジスタ312に記憶されている水平方向または垂直方向のドライバIC6についての倍数値がシフトカウンタ313に出力される。
【0106】
また、バレルレジスタ312は、コマンドバッファ309から出力される5ビットのオペランドのうち、上記のシフトビット数設定コマンドSETSHIFTNOにおけるオペランドの4ビット(倍数値)を一時的に保持する。
【0107】
シフトカウンタ313は、コマンドバッファ309からの上記の第1シフトコマンドSHIFTMにおけるオペランド(5ビット)、またはバレルレジスタ312からの上記の倍数値n(4ビット)と、上記の第2シフトコマンドSHIFTMにおけるオペランド(5ビット)とがプリセット値として入力される。シフトカウンタ313は、前述のシフト制御信号SHIFTSTRがHighとなっている期間に、ロードされたプリセット値から0まで入力クロックCLKINをダウンカウントするダウンカウンタである。また、シフトカウンタ313は、アップカウンタであってもよい。
【0108】
ここで、後述するように、シフト制御信号SHIFTSTRがHighとなる期間にシフトバッファ406における入力データDATAINのシフト動作が行われる。これにより、シフトカウンタ313にロードされるプリセット値に応じて、シフトバッファ406がシフトするビット数が規定される。
【0109】
データ処理部400は、入力ドライバ401と、出力ドライバ402と、フリップフロップ403〜405と、シフトバッファ406と、セレクタ407と、ドライバコントローラ408と、出力ドライバ409と、入力ドライバ410と、ノイズフィルタ411と、IDレジスタ412()と、ウエイトカウンタ413と、イコールコンパレータ414とを有している。
【0110】
フリップフロップ403(第1フリップフロップ)は、入力ドライバ401を介して入力された入力データDATAINを入力クロックCLKINのタイミングで取り込む。このフリップフロップ403は、レーシング現象を回避するために立ち下がりのタイミングで入力データDATAINを保持する。フリップフロップ404は、入力クロックCLKINに同期してフリップフロップ403からの入力データDATAINを保持する。
【0111】
シフトバッファ406は、フリップフロップ403を経て入力された入力データDATAINを、規定されたビット数まで入力クロックCLKINに同期して1ビットずつシフトさせ、パラレルデータとして保持して出力する。上記のビット数は、31ビット以下の場合は、コマンドバッファ309に展開される第1シフトコマンドSHIFTFのオペランドの値で規定され、32ビット以上の場合は、コマンドバッファ309に展開される第2シフトコマンドSHIFTMおよびシフトビット数設定コマンドSETSHIFTNOのオペランドの値(9ビット)で規定される。これにより、シフトバッファ406は、所望のビット数だけ入力データDATAINをシフトさせて、入力データDATAINの必要な部分をパラレルデータに変換することができる。
【0112】
また、シフトバッファ406は、後述するノイズフィルタ411から出力される33ビットの各透明電極Eから取得したパラレルのデータ(検出データ)を、ラッチ信号LOUTがアクティブ(High)になると取り込む。シフトバッファ406は、取り込んだデータを入力クロックCLKINに同期して上記のように規定されたビット数だけ1ビットずつシフトさせることでシリアルのデータとして出力する。
【0113】
また、シフトバッファ406は、入力コマンドCMDINがシフトに関するシフト系コマンド(前述のSHIFTF、SHIFTM、SETSHIFTNO)であるときに、前述のシフト制御信号SHIFTSTRが有効(High)となったときにシフト動作を行い、IDで規定される入力クロックCLKINのクロック数だけシフトの開始を遅らせる。そして、シフトバッファ406は、前述のバッファクリア信号CBUFが有効となったときにリセットされて出力を停止する。
【0114】
IDレジスタ412は、コマンドバッファ309に保持されるID設定コマンドSETIDにおいてIDが設定される部分(5ビットのオペランド)を記憶する。このIDレジスタ412は、例えばDラッチによって構成されており、制御回路310からのIDロード信号によって上記の5ビットのデータを書き込む。
【0115】
ウエイトカウンタ413は、入力クロックCLKINを0からカウントしていきカウント値を出力する。このウエイトカウンタ413は、制御回路310から出力される前述のカウンタ制御信号がアクティブとなったときにカウントを開始する。
【0116】
イコールコンパレータ414は、IDレジスタ412からのIDとウエイトカウンタ413からのカウント値とを比較し、両者が一致するとHighレベルの命令実行信号CMDEXEを出力する。この命令実行信号CMDEXEがHighレベルになると、制御回路310からの前述の各命令信号が有効となり、ID設定コマンドSETID以外のコマンドが実行される。命令実行信号CMDEXEは、ウエイトカウンタ413のカウント値が入力クロックCLKINの1クロックのタイミングで変化していくことから、1クロックの期間のみHighとなる。
【0117】
シフトバッファ406は、この上記の命令信号のうちのシフト命令信号SHIFTSTRを受けてシフト動作を開始する。これにより、シフトバッファ406は、IDの値に応じてシフト動作の開始を遅らせることができる。
【0118】
セレクタ407は、フリップフロップ404から出力される入力データDATAINと、シフトバッファ406から出力される入力データコマンドCMDINとのいずれか1つを選択して出力する。具体的には、セレクタ407は、制御回路310から出力されるセレクト信号が“1”であるとき、すなわち、前述のバッファ制御系コマンドが実行されるときに、シフトバッファ406の出力端子を出力ドライバ402に接続する。一方、セレクタ407は、セレクト信号が“0”であるとき、すなわち、バッファ制御系コマンドおよびラッチコマンドLATCHTOUCHが実行されないときに、フリップフロップ404の出力端子を出力ドライバ402に接続する。
【0119】
ドライバコントローラ408は、透明電極Eに駆動電圧を印加するときに“0”の駆動信号を出力し、透明電極Eに駆動電圧を印加しないときに“1”の駆動信号を出力する。このようなドライバコントローラ408は、論理回路によって構成される。また、ドライバコントローラ408は、ドライブ系コマンド(DRIVEOFF、DRIVEBUF、DRIVEALL)によって制御回路310から出力される前述の各種の命令信号に基づいて出力ドライバ409の動作を制御する。具体的には、ドライバコントローラ408は、全ドライブ信号DALLが有効(Lowレベル=“0”)であるときには、シフトバッファ406の出力に関係なく、全ドライブ信号DALLの“0”をドライバIC6に接続される全透明電極Eに対して駆動信号として出力する。また、ドライバコントローラ408は、バッファドライブ信号DBUFが有効であるときには、シフトバッファ406からの各ビットのデータを対応する透明電極Eに対して駆動信号として出力する。さらに、ドライバコントローラ408は、ドライブOFF信号DOFFが有効になると、シフトバッファ406からのデータ(“0”または“1”)の出力を停止する。
【0120】
出力ドライバ409は、ドライバコントローラ408からの駆動信号に基づいて透明電極Eへの駆動電圧の印加と印加の停止とを行う。具体的には、出力ドライバ409は、透明電極Eとグランドとの間に接続されるトランジスタ回路をドライバIC6に接続される透明電極Eの数だけ有しており、各トランジスタ回路のゲートに出力ドライバ409からの対応する駆動信号が入力される。また、個々の透明電極Eとトランジスタ回路との間には、それぞれ抵抗を介して電源電圧が印加されている。これにより、“0”の駆動信号が出力されると、トランジスタ回路がOFFするので、透明電極Eには電源電圧が駆動電圧として印加され、“1”の駆動信号が出力されると、トランジスタ回路がONするので、透明電極Eには駆動電圧が印加されない。
【0121】
入力ドライバ410は、インバータ機能を兼ね備えており、透明電極Eからの検出電圧を反転して出力する。この入力ドライバ410も、出力ドライバ409と同様、ドライバIC6に接続される透明電極Eの個々に設けられている。
【0122】
入力ドライバ410から各透明電極Eからの検出電圧は、パラレルのデータとしてノイズフィルタ411でノイズが除去されてシフトバッファ406に入力される。
【0123】
ノイズフィルタ411は、複数のDフリップフロップが複数段直列に接続されて入力データをシフトするシフトレジスタと、シフトレジスタにおける各段の出力の多数決をとる多数決回路とを有している。このノイズフィルタ411は、多数決回路により、シフトレジスタの各段の出力が所定数連続して“0”であると判定すると“0”を出力し、シフトレジスタの各段の出力が所定数連続して“1”であると判定すると“1”を出力することで、入力データのノイズを除去する。
【0124】
上記のように構成されるタッチパネル装置1におけるタッチパネル2の駆動動作について説明する。
【0125】
まず、以降に説明するタッチパネル装置1においては、ドライバIC6が9個設けられており、駆動基板3が4個のドライバIC6を実装し、駆動基板4が5個のドライバIC6を実装している。図1および図2においては、便宜上一部のドライバIC6の図示を省略している。
【0126】
タッチパネル装置1を搭載する装置が電源投入されたり、起動後のリセット操作などでリセットされたりすると、リセット信号RESINがタッチパネル装置1に入力される。リセット信号RESINは、駆動基板3において配線W4を介して初段のドライバIC6に入力されると、当該ドライバIC6を経て以降のドライバIC6にも順次伝送されていく。これにより、各ドライバIC6がリセットされる。最終段のドライバIC6は、リセット信号RESOUTの出力端子が非接続状態であるため、リセット信号RESOUTを出力しない。
【0127】
なお、リセット動作は、入力コマンドCMDINのリセットコマンドRESALLを実行することでも行われる。
【0128】
また、入力クロックCLKINは、制御部5のクロック発生器52から出力されると、リセット信号RESINと同様に、駆動基板3において配線W3を介して、初段のドライバIC6に入力され、以降のドライバIC6に順次伝送されていく。各ドライバIC6から出力される出力クロックCLKOUTは、次段のドライバIC6へ入力クロックCLKINとして入力される。これにより、各ドライバIC6が入力クロックCLKINに基づいて動作する。最終段のドライバIC6は、出力クロックCLKOUTの出力端子が非接続状態であるため、出力クロックCLKOUTを出力しないが、その代わりに、リターンクロックCLKRTNを配線W6を介して制御部5に出力する。
【0129】
リセット後には、外部のCPUの指示により、制御部5のコマンドレジスタ51から入力コマンドCMDINが出力される。入力コマンドCMDINは、各ドライバIC6でフリップフロップ307を通過することで、入力クロックCLKINの1クロックずつ遅れながら、次段のドライバIC6に伝送されていく。
【0130】
システム起動時には、まず、入力コマンドCMDINとしてID設定コマンドSETIDが出力される。ここで述べるタッチパネル装置1が9個のドライバIC6を有することから、ID設定コマンドSETIDにおけるオペランドに設定される最大ID値は“9”(01001)となる。
【0131】
このID設定コマンドSETIDは、初段のドライバIC6にインバータ301で反転されて入力されると、ここで、コマンドバッファ309に一旦入力されるとともに、フリップフロップ303および減算回路305からなるシリアルサブトラクターでオペランドから1だけ減算される。コマンドバッファ309に保持されているID設定コマンドSETIDは、制御回路310でデコードされる。すると、制御回路310では、入力コマンドCMDINがID設定コマンドSETIDであると判定される。このとき、コマンドバッファ309に保持されているID設定コマンドSETIDのオペランドが、制御回路310から出力されるロード信号(“1”)により、IDレジスタ412に書き込まれることで、当該ドライバIC6にIDが設定される。
【0132】
また、上記の判定により、制御回路310から出力される切替制御信号が“0”から“1”に切り替わる。これにより、シリアルサブトラクターでオペランド(ID値)から1を減算されたID設定コマンドSETIDが、切替スイッチ306、フリップフロップ307およびインバータ302を介して出力される。これにより、ID設定コマンドSETIDが出力コマンドCMDOUTとして次段のドライバIC6に出力される。次段のドライバIC6は、このID設定コマンドSETIDが入力コマンドCMDINとして入力されることにより、やはり上記のように、ID設定するとともに、IDの減算(−1)を行う。このような処理を以降の各ドライバIC6でも同様に行うことにより、各ドライバIC6で初段から1つずつ小さくなるIDが設定される。これにより、最終段のドライバIC6に設定されるIDが“1”となる。
【0133】
このようにして各ドライバIC6にIDが設定されると、各ドライバIC6では、ID設定コマンドSETID以外の入力コマンドCMDINが実行可能となる。シリアルの入力コマンドCMDINは、各ドライバIC6でフリップフロップ307によって入力クロックCLKINの1クロック分遅れるので、実行されるべき各ドライバIC6に達するには時間差がある。このため、最終段のドライバIC6に入力コマンドCMDINが達してから、全てのドライバIC6で入力コマンドCMDINが実行される。このとき、各ドライバIC6では、IDレジスタ412に設定されたIDと、ウエイトカウンタ413でカウントされた入力クロックCLKINのクロック数とが一致したときに、イコールコンパレータ414からHighの命令実行信号CMDEXEが出力される。これにより、全てのドライバIC6が命令実行信号CMDEXEに基づいて同時に入力コマンドCMDINを実行する。
【0134】
続いて、入力コマンドCMDINを用いた透明電極Eへの駆動電圧の印加および透明電極Eからの駆動電圧の検出について説明する。
【0135】
まず、駆動電圧の印加を行うには、ドライブ系のコマンドであるバッファドライブコマンドDRIVEBUFまたは全ドライブコマンドDRIVEALLが用いられる。また、シフトバッファ406を用いて電極駆動を行うバッファドライブコマンドDRIVEBUFを実行するときには、シフト系コマンドが用いられる。シフトビット数が31以下である場合は、第1シフトコマンドSHIFTFが用いられ、シフトビット数が32以上である場合は、第2シフトコマンドSHIFTMおよびシフトビット数設定コマンドSETSHIFTNOが用いられる。
【0136】
制御回路310により、オペコードに基づいて入力コマンドCMDINが第1シフトコマンドSHIFTFであると判定されると、当該第1シフトコマンドSHIFTFのオペランドがシフトカウンタ313にロードされる。また、制御回路310から出力されるシフト制御信号SHIFTSTRは、シフトカウンタ313が、ロードされたオペランドの値まで入力クロックCLKINをカウントアップするか、またはロードされたオペランドの値をカウントダウンとして0に達すると、Lowとなる。これにより、シフト制御信号SHIFTSTRがHighとなっている期間に行われていたシフトバッファ406のシフト動作が停止する。
【0137】
一方、ドライバIC6に入力される入力データDATAINは、フリップフロップ403から入力クロックCLKINに同期して1ビットずつシフトバッファ406に入力される。シフトバッファ406では、入力された入力データDATAINが入力クロックCLKINに同期して1ビットずつシフトされていく。そして、上記ようにシフトバッファ406のシフト動作が停止すると、そのときの入力データDATAINの値が保持される。
【0138】
当該ドライバIC6でバッファ制御系コマンドが実行されない場合、入力データDATAINは、フリップフロップ404で入力クロックCLKINの1クロック分遅延した状態で、セレクタ407および出力ドライバ402を介して、伝送データDATAINとして出力される。これにより、当該ドライバIC6でシフトする必要がなく、次段以降のドライバIC6でシフトされる入力データDATAINは、当該ドライバIC6のシフトバッファ406を通過することなく、伝送データDATAINとして次段のドライバIC6に入力データDATAINとして入力される。例えば、駆動基板3における各ドライバIC6でデータをシフトさせる一方、駆動基板4における各ドライバIC6でデータをシフトさせない場合、入力データDATAINは、駆動基板3における各ドライバIC6をシフトしていくが、駆動基板4においては各ドライバIC6でシフトバッファ406を迂回してドライバIC6内を通過するのみとなる。すなわち、駆動基板3(垂直方向)および駆動基板4(水平方向)のそれぞれにおいて存在する複数個のドライバIC6によって、垂直方向で一連のシフトレジスタおよび水平方向で一連のシフトレジスタをそれぞれ形成する。そのため、上述のように、垂直方向においてシフトしたデータは、水平方向においてはシフトせずにフリップフロップ404を介して通過するのみである。このような方式で、データが複数のドライバIC6をシフトしていく。
【0139】
このように、入力データDATAINは、シフトされるドライバIC6に入力されるまで、通過する各ドライバIC6でシフトされることなく(不要にシフト数が増加することなく)、高速で伝送される。
【0140】
一方、制御回路310により、オペコードに基づいて入力コマンドCMDINが第2シフトコマンドSHIFTMであると判定されると、シフトビット数設定コマンドSETSHIFTNOおよび当該第2シフトコマンドSHIFTMのオペランドからなる9ビットの値がシフトカウンタ313にロードされる。すると、シフトバッファ406のシフト動作は、上記と同様にしてシフトカウンタ313によるカウント動作が行われている間に行われた後に停止する。これにより、シフトバッファ406では、入力データDATAINのシフトが停止して、そのときの値が保持される。
【0141】
このように、シフトビット数が31以下である場合は、第1シフトコマンドSHIFTFの5ビットのオペランドでシフトビット数を規定することができる。また、シフトビット数が32以上である場合は、シフトビット数設定コマンドSETSHIFTNOのオペランドが32ビットの整数倍を規定することから、これとシフトビット数が31以下を規定する第2シフトコマンドSHIFTMのオペランドとを組み合わせることにより、32ビット以上のシフトビット数を規定することができる。これにより、オペランドを6ビット以上に増加させることなく、入力コマンドCMDINの規定のビット数以内で32ビット以上のシフトビット数を規定することができる。
【0142】
この状態で、続いてバッファドライブコマンドDRIVEBUFがドライバIC6に入力される。すると、コマンドバッファ309では、バッファドライブコマンドDRIVEBUFがデコードされることにより、バッファドライブ信号DBUF(Highレベル)が生成される。シフトバッファ406では、バッファドライブ信号DBUFにより、前述のようにして保持された各ビットの値がドライバコントローラ408に出力される。
【0143】
すると、ドライバコントローラ408では、バッファドライブ信号DBUFを受けて、シフトバッファ406から出力された各ビットの値が出力ドライバ409の制御端子に出力される。これにより、出力ビットの値が“0”である場合、出力ドライバ409がOFFするので、電源電圧が駆動電圧として透明電極Eに印加される。また、出力ビットの値が“1”である場合、出力ドライバ409がONするので、電源電圧が透明電極Eに印加されない。
【0144】
このように、バッファドライブコマンドDRIVEBUFを用いた場合は、シリアルの入力データDATAINのうちの所望のビットがシフトバッファ406に保持され、各ビットの値に基づいて透明電極Eへの電源電圧の印加または非印加が行われる。
【0145】
また、全ドライブコマンドDRIVEALLを実行する場合は、入力データDATAINをシフトバッファ406でシフトさせる必要がないので、シフト系コマンドを必要としない。全ドライブコマンドDRIVEALLがドライバIC6に入力されると、コマンドバッファ309では、当該コマンドがデコードされることにより、全ドライブ信号DALL(Highレベル)が生成される。
【0146】
すると、ドライバコントローラ408では、全ドライブ信号DALLを受けて、シフトバッファ406から出力された全ビットの値(“0”)が出力ドライバ409の制御端子に出力される。これにより、電源電圧が駆動電圧としてドライバIC6に接続される全ての透明電極Eに印加される。
【0147】
このような処理が、駆動基板3における全てのドライバIC6で同時に行われることにより、全ての透明電極Ehが駆動される。すると、タッチパネル2においてタッチされた位置に応じた透明電極Evが当該位置で対応する透明電極Ehと導通することから、当該電極Evに検出電圧が現れる。このとき、駆動基板4における全てのドライバIC6でタッチ位置の読み出しが行われる。
【0148】
駆動電圧の検出を行うには、ラッチコマンドLATCHTOUCHが用いられる。制御回路310により、オペコードに基づいて入力コマンドCMDINがラッチコマンドLATCHTOUCHであると判定されると、ラッチ信号LOUT(Highレベル)がシフトバッファ406に与えられる。すると、各透明電極Eに現れる検出電圧の状態(“0”または“1”)が、検出データとしてインバータ410およびノイズフィルタ411を介してシフトバッファ406に取り込まれて保持される。これは、ラッチコマンドLATCHTOUCHが実行されるドライバIC6の全てについて同時に行われる。
【0149】
各ドライバIC6のシフトバッファ406に保持されたデータは、各ドライバIC6にシフト系コマンドが与えられることにより、シフトバッファ406をシフトされて出力され、次段のドライバIC6のシフトバッファ406において保持されているデータに続いてシフトされていく。このように、データが複数のドライバIC6間をシフトしていくことにより、各シフトバッファ406に保持されているデータがシリアルに順次つなげられていく。したがって、最終段のドライバIC6からは、シリアルの出力データDATAOUTが出力される。
【0150】
また、最終段のドライバIC6からは、ID設定コマンドSETIDおよびシフト系コマンド以外の入力コマンドCMDINが実行されるときに、入力コマンドCMDIN毎に1クロックのみのリターンクロックCLKRTNが出力される。上記の出力データDATAOUTは、レベルシフタ7を介して制御部5のデータレジスタ53に、リターンクロックCLKRTNに同期して読み込まれる。これにより、各ドライバIC6が伝送されることで遅延していく出力クロックCLKOUTを用いないので、適正なタイミングで出力データDATAOUTを読み込むことができる。
【0151】
上記の例では、駆動電圧の印加を垂直側のドライバIC6で行い、駆動電圧の検出を水平側のドライバIC6で行っているが、その逆も行われる。
【0152】
以上のように、本実施形態に係るタッチパネル装置1は、隣接する各ドライバIC6が配線W1〜W4を介してデイジーチェーンで接続されていることから、ドライバIC6を通過する各種の信号に遅延が生じる。
【0153】
リセット信号RESINについては、遅延しても各ドライバIC6に伝送されれば、リセットが行われるので不都合はない。しかしながら、入力クロックCLKINについては、最終段のドライバIC6に達すると各ドライバIC6での遅延が蓄積しているため、制御部5から出力された時点とで大きな位相差が生じている。そこで、リターンクロックCLKRTNによりシフトの完了を検出することで、誤動作を回避することができる。
【0154】
また、各ドライバIC6では、シフトバッファ406により、シリアルのデータをシフトさせてシリアル/パラレル変換するとともに、取り込んだパラレルのデータをシフトさせてシリアル/パラレル変換している。その一方、各ドライバIC6でシフトさせる必要のないデータをセレクタ407を介して出力させている。これにより、データの伝送時間の遅れを抑制することができる。
【0155】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【0156】
本発明のタッチパネル装置は、駆動基板上に実装された複数のドライバIC間を伝送する信号をデイジーチェーン接続された配線を介して順次伝送するので、各信号を伝送するための配線がそれぞれ1系統設けられるだけでよく、各配線を交差しないように形成することで、駆動基板の片面に配線を設けることができることから、構造の簡素な駆動基板を用いることによりコスト低減が可能であり、タッチパネル装置を搭載する装置に好適に利用することができる。
【符号の説明】
【0157】
1 タッチパネル装置
2 タッチパネル(マトリクス型タッチパネル)
3,4 駆動基板
5 制御部
6 ドライバIC(駆動用集積回路)
203 リターンクロック生成回路(終端出力手段)
310 制御回路(シフト制御手段)
303 フリップフロップ(第2フリップフロップ)
403 フリップフロップ(第1フリップフロップ)
406 シフトバッファ(データシフト手段,シフト要否判定手段)
407 セレクタ(直接出力手段)
CLKIN 入力クロック(クロック)
CLKRTN リターンクロック(終端信号)
CMDIN 入力コマンド(指令データ)
DATAIN 入力データ(駆動データ)
DATAINOUT 出力データ(検出データ)
DATANEXT 伝送データ(駆動データ,検出データ)
Eh 透明電極(第1電極,第2電極)
Ev 透明電極(第1電極,第2電極)
E 透明電極
W1〜W6 配線

【特許請求の範囲】
【請求項1】
マトリクス型タッチパネルにおける複数の第1電極へ駆動データに基づいて駆動電圧を印加し、前記第1電極と交差する複数の第2電極からタッチを検出する検出電圧を検出データとして出力する駆動用集積回路を複数備えたタッチパネル駆動装置であって、
各駆動用集積回路は、デイジーチェーン接続されるとともに、
前記複数の第1電極への駆動データが連続して構成されるシリアルの前記駆動データをシフトさせることによりパラレルに変換して各第1電極に対して出力するとともに、前記複数の第2電極からパラレルで得られた検出データをシフトさせることにより、パラレルの前記検出データをシリアルに変換して出力するデータシフト手段と、
外部から与えられた指令データで規定される指令を実行することにより、前記データシフト手段による前記駆動データおよび前記検出データのシフト動作を開始させるシフト制御手段とを備え、
前記駆動データ、前記検出データおよび前記指令データは、前記駆動用集積回路毎に連続するシリアル形式であり、クロックとともに、デイジーチェーン接続された各駆動用集積回路に伝送されることを特徴とするタッチパネル駆動装置。
【請求項2】
各駆動用集積回路は、
前記駆動データおよび前記検出データを前記データシフト手段でシフトさせるか否かを判定するシフト要否判定手段と、
当該シフト要否判定手段により否と判定されたときに、入力された前記駆動データおよび前記検出データを前記データシフト手段を通過しない経路で直接出力する直接出力手段とを備えていることを特徴とする請求項1に記載のタッチパネル駆動装置。
【請求項3】
各駆動用集積回路は固有のIDが設定されており、
最終段の前記駆動用集積回路は、前記IDが最終段の駆動用集積回路を表す最終値であり且つ前記指令が前記データシフト手段によるシフト動作を実行させるシフト指令であるとき、前記IDが前記最終値であり且つ前記指令が前記シフト指令以外の指令であるとき、前記IDが前記最終値であり且つ前記指令データが与えられないとき、前記IDが0であるとき、前記IDが前記最終値または0以外の値であるときに、それぞれを判別する終端信号を出力する終端出力手段を有していることを特徴とする請求項1に記載のタッチパネル駆動装置。
【請求項4】
前記終端出力手段は、前記検出データが出力されるときに、前記検出データが前記データシフト手段によってシフトされる直前に前記終端信号を出力することを特徴とする請求項3記載のタッチパネル駆動装置。
【請求項5】
前記駆動用集積回路は、前記駆動データおよび前記検出データを取り込む第1フリップフロップと、前記指令データを取り込む第2フリップフロップとを備え、前記第1および第2フリップフロップが前記クロックの立ち下がりに同期して取り込み動作を行うことを特徴とする請求項1に記載のタッチパネル駆動装置。
【請求項6】
マトリクス型タッチパネルと、当該マトリクス型タッチパネルを駆動するタッチパネル駆動装置とを備えたタッチパネル装置であって、
前記タッチパネル駆動装置が請求項1から5のいずれか1項に記載のタッチパネル駆動装置であることを特徴とするタッチパネル装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate