(57)【要約】【課題】各種の信号の伝送のための配線数をさらに削減し、配線基板の構造を簡素化する。【解決手段】タッチパネル装置１は、タッチパネル２と、その周辺に設けられた駆動基板３，４と、制御部５とを備える。駆動基板３，４は、複数のドライバＩＣ６を実装している。ドライバＩＣ６は、タッチパネル２の透明電極に入力データに基づいて駆動電圧を印加するとともに、透明電極から出力される検出電圧を検出データとして取り込む。各ドライバＩＣ６に供給するクロック、駆動電圧を出力するためのデータ、各ドライバＩＣ６の処理動作を規定するコマンド等の信号を、各ドライバＩＣ６間でデイジーチェーン接続される配線を介して順次伝送する。各信号を伝送するための配線がそれぞれ１系統設けられるだけでよいので、各配線を交差しないように形成することで、駆動基板３，４の片面に配線を設けることができる。【選択図】図１
2011003023.tif 000002
【特許請求の範囲】
【請求項１】
マトリクス型タッチパネルにおける複数の第１電極へ駆動データに基づいて駆動電圧を印加し、前記第１電極と交差する複数の第２電極からタッチを検出する検出電圧を検出データとして出力する駆動用集積回路を複数備えたタッチパネル駆動装置であって、
各駆動用集積回路は、デイジーチェーン接続されるとともに、
前記複数の第１電極への駆動データが連続して構成されるシリアルの前記駆動データをシフトさせることによりパラレルに変換して各第１電極に対して出力するとともに、前記複数の第２電極からパラレルで得られた検出データをシフトさせることにより、パラレルの前記検出データをシリアルに変換して出力するデータシフト手段と、
外部から与えられた指令データで規定される指令を実行することにより、前記データシフト手段による前記駆動データおよび前記検出データのシフト動作を開始させるシフト制御手段とを備え、
前記駆動データ、前記検出データおよび前記指令データは、前記駆動用集積回路毎に連続するシリアル形式であり、クロックとともに、デイジーチェーン接続された各駆動用集積回路に伝送されることを特徴とするタッチパネル駆動装置。
【請求項２】
各駆動用集積回路は、
前記駆動データおよび前記検出データを前記データシフト手段でシフトさせるか否かを判定するシフト要否判定手段と、
当該シフト要否判定手段により否と判定されたときに、入力された前記駆動データおよび前記検出データを前記データシフト手段を通過しない経路で直接出力する直接出力手段とを備えていることを特徴とする請求項１に記載のタッチパネル駆動装置。
【請求項３】
各駆動用集積回路は固有のＩＤが設定されており、
最終段の前記駆動用集積回路は、前記ＩＤが最終段の駆動用集積回路を表す最終値であり且つ前記指令が前記データシフト手段によるシフト動作を実行させるシフト指令であるとき、前記ＩＤが前記最終値であり且つ前記指令が前記シフト指令以外の指令であるとき、前記ＩＤが前記最終値であり且つ前記指令データが与えられないとき、前記ＩＤが０であるとき、前記ＩＤが前記最終値または０以外の値であるときに、それぞれを判別する終端信号を出力する終端出力手段を有していることを特徴とする請求項１に記載のタッチパネル駆動装置。
【請求項４】
前記終端出力手段は、前記検出データが出力されるときに、前記検出データが前記データシフト手段によってシフトされる直前に前記終端信号を出力することを特徴とする請求項３記載のタッチパネル駆動装置。
【請求項５】
前記駆動用集積回路は、前記駆動データおよび前記検出データを取り込む第１フリップフロップと、前記指令データを取り込む第２フリップフロップとを備え、前記第１および第２フリップフロップが前記クロックの立ち下がりに同期して取り込み動作を行うことを特徴とする請求項１に記載のタッチパネル駆動装置。
【請求項６】
マトリクス型タッチパネルと、当該マトリクス型タッチパネルを駆動するタッチパネル駆動装置とを備えたタッチパネル装置であって、
前記タッチパネル駆動装置が請求項１から５のいずれか１項に記載のタッチパネル駆動装置であることを特徴とするタッチパネル装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マトリクス型タッチパネルを駆動するタッチパネル駆動装置およびそれを備えたタッチパネル装置に関するものである。
【背景技術】
【０００２】
マトリクス型のタッチパネルは、複数点の同時のタッチ操作を検出できることから、複数点でのタッチ入力により規定されるコマンドの入力などに好適に利用できる。このようなマトリクス型タッチパネルは、互いに交差する２軸の方向に並ぶ複数の透明電極を有しており、一方の方向の各透明電極に駆動電圧を印加して、他方の方向の各透明電極に現れる出力電圧を検出することにより、タッチ入力の座標が特定される。
【０００３】
上記の駆動電圧を各透明電極に印加するために、ＣＰＵから駆動電圧を出力するようにドライバに指示を与える。また、上記の各透明電極から出力電圧を検出するために、当該出力電圧をＣＰＵに送信する。
【０００４】
ところが、上記のようなタッチパネルでは、高解像度化が進むに従い、ＣＰＵとタッチパネルの各透明電極との間の信号伝送のための配線数が増加して、大型化するという不都合が生じてしまう。
【０００５】
そのような不都合を解消するため、例えば、特許文献１には、配線数を減少させるために、複数の透明電極を群として各群にパラレル変換手段およびシリアル変換手段を設けた構成が開示されている。具体的には、この構成では、ＣＰＵからのシリアルの指示信号をパラレル変換手段によってシフトさせてパラレルに変換して各群のドライバに与え、各群の透明電極に駆動電圧を印加する。また、各群の透明電極から出力されたパラレルの検出信号をシリアル変換手段によってシフトさせてシリアルに変換し、各シリアル変換手段からのシリアルの検出信号を順次加算してＣＰＵに送信する。これにより、信号を１つのシリアルで伝送するため、配線数を大幅に減少させることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−２７４５３８号公報（１９９７年１０月２１日公開）
【非特許文献】
【０００７】
【非特許文献１】アプリケーションノート４０２４“複数の周辺機器を制御するＳＰＩ／Ｉ２Ｃバスライン”、［Online］、平成１９年１０月２９日、マキシム、［平成２１年３月６日検索］、インターネット〈ＵＲＬ：http://japan.maxim-ic.com/appnotes.cfm/an_pk/4024〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載されている構成では、ＣＰＵとタッチパネルとの間における特定の信号の伝送のみについて配線数の削減が図られているものの、このような信号以外のクロック等を伝送するには、ＣＰＵと各群との間に専用の配線が必要となる。しかしながら、これらの配線が基板上で交差してしまうので、これを回避するために、ドライバを実装する基板に多層基板を用いる必要がある。このような多層基板は、構造が複雑であるため、作製が煩雑であり、コスト高となる。
【０００９】
また、非特許文献１には、シリアルインターフェースにおいて、複数のデバイスがデイジーチェーン接続されることにより、マイクロコントローラから出力されるデータを各デバイスへデイジーチェーン接続を介して伝送されることが開示されている。しかしながら、このような構成では、クロックやチップセレクト信号が、マイクロコントローラから各デバイスへ個々に与えられることから、特許文献１に記載されている構成と同様の問題を有する。
【００１０】
本発明は、上記の問題点に鑑みてなされたものであり、各種の信号の伝送のための配線数をさらに削減し、配線基板の構造を簡素化することを目的としている。
【課題を解決するための手段】
【００１１】
本発明に係るタッチパネル駆動装置は、マトリクス型タッチパネルにおける複数の第１電極へ駆動データに基づいて駆動電圧を印加し、前記第１電極と交差する複数の第２電極からタッチを検出する検出電圧を検出データとして出力する駆動用集積回路を複数備えたタッチパネル駆動装置であって、各駆動用集積回路が、デイジーチェーン接続されるとともに、前記複数の第１電極への駆動データが連続して構成されるシリアルの前記駆動データをシフトさせることによりパラレルに変換して各第１電極に対して出力するとともに、前記複数の第２電極からパラレルで得られた検出データをシフトさせることにより、パラレルの前記検出データをシリアルに変換して出力するデータシフト手段と、外部から与えられた指令データで規定される指令を実行することにより、前記データシフト手段による前記駆動データおよび前記検出データのシフト動作を開始させるシフト制御手段とを備え、前記駆動データ、前記検出データおよび前記指令データが、前記駆動用集積回路毎に連続するシリアル形式であり、クロックとともに、デイジーチェーン接続された各駆動用集積回路に伝送されることを特徴としている。
【００１２】
上記の構成において、各駆動用集積回路が、デイジーチェーン接続されており、シリアル形式の駆動データ、前記検出データおよび前記指令データを次段の駆動用集積回路に伝送していく。また、各駆動用集積回路においては、シフト制御手段によって、指令データの指令が実行されることで、データシフト手段による駆動データおよび検出データのシフト動作が開始する。このシフト動作により、各第１電極に駆動データによる駆動電圧が印加されるとともに、各第２電極から検出電圧による検出データが取り込まれる。上記のシフト動作は、クロックに同期して行われる。このように、各駆動用集積回路がデイジーチェーン接続されることから、各駆動用集積回路へのファンアウト数が各データについて１つになり、駆動用集積回路を実装する基板における配線数を削減することができる。また、デイジーチェーン接続により、上記の配線を互いに交差しないように形成することが可能になる。これにより、配線を基板における同一面に形成することができ、基板を多層基板で形成する必要がなくなる。
【００１３】
前記タッチパネル駆動装置において、各駆動用集積回路は、前記駆動データおよび前記検出データを前記データシフト手段でシフトさせるか否かを判定するシフト要否判定手段と、当該シフト要否判定手段により否と判定されたときに、入力された前記駆動データおよび前記検出データを前記データシフト手段を通過しない経路で直接出力する直接出力手段とを備えていることが好ましい。
【００１４】
これにより、各駆動用集積回路では、シフト要否判定手段により、駆動データおよび検出データがシフトさせる必要はないと判定されると、入力される駆動データおよび検出データが直接出力手段によって、データシフト手段を通過せずに出力される。したがって、次段以降の駆動用集積回路への駆動データおよび検出データの伝送速度の低下を抑えることができる。
【００１５】
タッチパネル駆動装置においては、水平方向に配置された駆動用集積回路で水平方向に並ぶ電極への電圧印加と電圧検出とを行い、垂直方向に配置された駆動用集積回路で垂直方向に並ぶ電極への駆動電圧の印加と検出電圧の検出とを行う。また、水平方向の駆動用集積回路と垂直方向の駆動用集積回路とで、電圧印加と電圧検出とがそれぞれ個別に行われる。例えば、水平方向の駆動用集積回路で駆動電圧の印加が行われる場合には、垂直方向の駆動用集積回路で検出電圧の検出が行われる。逆に、垂直方向の駆動用集積回路で駆動電圧の印加が行われる場合には、水平方向の駆動用集積回路で検出電圧の検出が行われる。
【００１６】
したがって、垂直方向の駆動用集積回路におけるデータシフト手段でデータをシフトさせる場合には、当該データを水平方向の駆動用集積回路におけるデータシフト手段でシフトさせる必要はない。この場合には、当該データが水平方向の駆動用集積回路におけるデータシフト手段を上記のように通過しないようにして、そのままの状態で当該データを伝送することができる。逆に、水平方向の駆動用集積回路におけるデータシフト手段でデータをシフトさせる場合には、当該データを垂直方向の駆動用集積回路におけるデータシフト手段でシフトさせる必要はない。この場合には、当該データが垂直方向の駆動用集積回路におけるデータシフト手段を上記のように通過しないようにして、そのままの状態で当該データを伝送することができる。これにより、不要にシフト数が増加することなく、データを高速で伝送することができる。
【００１７】
また、前記タッチパネル駆動装置において、各駆動用集積回路は固有のＩＤが設定されており、最終段の前記駆動用集積回路は、前記ＩＤが最終段の駆動用集積回路を表す最終値であり且つ前記指令が前記データシフト手段によるシフト動作を実行させるシフト指令であるとき、前記ＩＤが前記最終値であり且つ前記指令が前記シフト指令以外の指令であるとき、前記ＩＤが前記最終値であり且つ前記指令データが与えられないとき、前記ＩＤが０であるとき、前記ＩＤが前記最終値または０以外の値であるときに、それぞれを判別する終端信号を出力する終端出力手段を有していることが好ましい。
【００１８】
これにより、ＩＤが１のとき、終端出力手段から、シフト指令もしくはそれ以外の指令が実行されるとき、または指令データが与えられないときに、それぞれを判別する終端信号が出力されることにより、シフト命令やそれ以外の指令の実行が終了したことや、指令がなかったことを確認できる。しかも、ＩＤが１であるので、終端信号により、最終段の駆動用集積回路に正しくＩＤが設定されていることも確認できる。また、ＩＤが０（ＩＤ未設定）のときも終端信号により判別可能であるので、駆動用集積回路が基板に互いに正しく接続されていることを確認できる。さらに、最終段の駆動用集積回路に０および１以外のＩＤが設定されているときも終端信号により判別可能であるので、当該駆動用集積回路に正しいＩＤ（最終値＝１）が設定されていないことを確認できる。
【００１９】
また、このタッチパネル駆動装置において、前記終端出力手段は、前記検出データが出力されるときに、前記検出データが前記データシフト手段によってシフトされる直前に前記終端信号を出力することが好ましい。
【００２０】
最終段から出力される検出データは、一旦、タッチパネルと外部のＣＰＵとの間のインターフェース機能を有する制御部における記憶装置に読み込まれて、ＣＰＵに出力される。上記の検出データを記憶装置に読み込むとき、終端出力手段から、検出データがシフトされる直前に終端信号が出力されるので、制御部において検出データの読み込みを行うときに、指令データの実行終了を確認することができる。
【００２１】
また、前記タッチパネル駆動装置において、前記駆動用集積回路は、前記駆動データおよび前記検出データを取り込む第１フリップフロップと、前記指令データを取り込む第２フリップフロップとを備え、前記第１および第２フリップフロップが前記クロックの立ち下がりに同期して取り込み動作を行うことが好ましい。
【００２２】
これにより、第１および第２フリップフロップの取り込み動作においてレーシング現象の発生を回避することができる。
【００２３】
本発明のタッチパネル装置は、マトリクス型タッチパネルと、当該マトリクス型タッチパネルを駆動するタッチパネル駆動装置とを備えたタッチパネル装置であって、前記タッチパネル駆動装置が上記のいずれかのタッチパネル駆動装置である。
【発明の効果】
【００２４】
本発明に係るタッチパネル駆動装置は、以上のように、マトリクス型タッチパネルにおける複数の第１電極へ駆動データに基づいて駆動電圧を印加し、前記第１電極と交差する複数の第２電極からタッチを検出する検出電圧を検出データとして出力する駆動用集積回路を複数備えたタッチパネル駆動装置であって、各駆動用集積回路が、デイジーチェーン接続されるとともに、前記複数の第１電極への駆動データが連続して構成されるシリアルの前記駆動データをシフトさせることによりパラレルに変換して各第１電極に対して出力するとともに、前記複数の第２電極からパラレルで得られた検出データをシフトさせることにより、パラレルの前記検出データをシリアルに変換して出力するデータシフト手段と、外部から与えられた指令データで規定される指令を実行することにより、前記データシフト手段による前記駆動データおよび前記検出データのシフト動作を開始させるシフト制御手段とを備え、前記駆動データ、前記検出データおよび前記指令データが、前記駆動用集積回路毎に連続するシリアル形式であり、クロックとともに、デイジーチェーン接続された各駆動用集積回路に伝送される。これにより、各駆動用集積回路へのファンアウト数が各データについて１つになり、駆動用集積回路を実装する基板における配線数を削減することができる。また、デイジーチェーン接続により、上記の配線を互いに交差しないように形成することが可能になる。したがって、配線を基板における同一面に形成することにより、配線基板の構造を簡素化することができるという効果を奏する。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態に係るタッチパネル装置の要部の構成を示す図である。
【図２】上記タッチパネル装置におけるタッチパネルおよび当該タッチパネル周辺に接続される駆動基板の構成を示す図である。
【図３】上記駆動基板に設けられるドライバＩＣの構成を示すブロック図である。
【図４】上記ドライバＩＣに与えられる各種のコマンドを示す図である。
【図５】上記コマンドの送信タイミングを示すタイミングチャートである。
【発明を実施するための形態】
【００２６】
本発明の実施形態を図１〜図５に基づいて説明すると、以下の通りである。
【００２７】
図１に示すように、本実施の形態に係るタッチパネル装置１は、タッチパネル２と、駆動基板３，４と、制御部５とを備えている。駆動基板３，４および制御部５は、タッチパネル装置１においてタッチパネル駆動装置を構成している。
【００２８】
図２に示すように、タッチパネル２は、高精細のマトリクス型タッチパネルである。このタッチパネル２は、所定間隔をおいて対向するように貼り合わされた透明基板を有しており、両透明電極の互いに対向する面が電極形成面となる。一方の透明基板における電極形成面には、水平方向に互いに平行に配された複数の透明電極Ｅｈ（第１電極または第２電極）が形成されている。また、他方の透明基板における電極形成面には、垂直方向に互いに平行に配された複数の透明電極Ｅｖ（第１電極または第２電極）が形成されている。各透明電極Ｅｈ，Ｅｖは、ＩＴＯ（インジウム錫酸化物）などからなる抵抗膜で構成される短冊状の電極であり、両透明基板間で互いに交差するように配置されている。
【００２９】
タッチパネル装置１においては、タッチパネル２がタッチされると、タッチ箇所で透明電極Ｅｈ，Ｅｖの交差部分が互いに接触する。この状態で、透明電極Ｅｈまたは透明電極Ｅｖのいずれか一方に駆動電圧を印加すると、この駆動電圧がタッチ箇所を介して他方側に現れる。したがって、この電圧を検出電圧として取り出すことにより、タッチパネル２上でタッチされた位置が検出される。
【００３０】
なお、以降の説明において、透明電極Ｅｈ，Ｅｖに共通して記述する場合には、透明電極Ｅとする。
【００３１】
駆動基板３は透明電極Ｅｈの一端側に接続され、駆動基板４は透明電極Ｅｖの一端側に接続されている。これらの駆動基板３，４には、それぞれ複数のドライバＩＣ６（駆動用集積回路）が設けられている。また、駆動基板３において、各ドライバＩＣ６は、タッチパネル２の垂直方向接続端縁に沿った垂直方向に並ぶように実装されている。一方、駆動基板４において、各ドライバＩＣ６は、タッチパネル２の水平方向の接続端縁に沿った水平方向に並ぶように実装されている。
【００３２】
ドライバＩＣ６は、制御部５から与えられるシリアルのデータＤＡＴＡＩＮに基づいた駆動電圧をタッチパネル２の複数の透明電極Ｅｈ，Ｅｖへ出力する。具体的には、ドライバＩＣ６は、データＤＡＴＡＩＮを透明電極Ｅｈ，Ｅｖの個々に対応するようにパラレルに変換して、このパラレルのデータに基づいて透明電極Ｅｈ，Ｅｖの個々に与える駆動電圧を発生する。また、ドライバＩＣ６は、透明電極Ｅｈ，Ｅｖから出力される検出電圧に基づく検出データを制御部５に出力する。具体的には、ドライバＩＣ６は、複数の透明電極Ｅｈ，Ｅｖの個々から出力される検出電圧をパラレルのデータとして検出し、検出したデータをシリアルのデータに変換して出力する。
【００３３】
ドライバＩＣ６は、上記のようなデータのシリアル／パラレル変換を行うために、データをシフトする機能を有している。この機能を含め、ドライバＩＣ６については、後に詳しく説明する。
【００３４】
駆動基板３に実装される各ドライバＩＣ６は、複数の透明電極Ｅｈに駆動電圧を出力するとともに、複数の透明電極Ｅｈからの検出電圧が入力されるように、タッチパネル２側に入出力用の端子（ピン）を有している。同様に、駆動基板４に実装される各ドライバＩＣ６は、複数の透明電極Ｅｖに駆動電圧を出力するとともに、複数の透明電極Ｅｖからの検出電圧が入力されるように、タッチパネル２側に入出力用の端子（ピン）を有している。
【００３５】
また、駆動基板３，４には、各種の配線Ｗ１〜Ｗ６が形成されている。配線Ｗ１は、上記のデータＤＡＴＡＩＮを各ドライバＩＣ６に入力するとともに、当該データＤＡＴＡＩＮおよび各ドライバＩＣ６から得られた上記の検出データを伝送データＤＡＴＡＮＥＸＴ（図３参照）として次段のドライバＩＣ６に出力するための配線である。配線Ｗ２は、各ドライバＩＣ６へ入力される入力コマンドＣＭＤＩＮと、各ドライバＩＣ６から出力される出力コマンドＣＭＤＯＵＴとを伝送する配線である。コマンドの詳細については、後に詳細に説明する。
【００３６】
配線Ｗ３は、制御部５から供給される入力クロックＣＬＫＩＮを各ドライバＩＣ６に入力するための配線である。配線Ｗ４は、リセット信号ＲＳＴを各ドライバＩＣ６に入力するための配線である。配線Ｗ５は、上記の検出データが全ドライバＩＣ６について順次付加されて構成されるシリアルの出力データＤＡＴＡＯＵＴを最後段のドライバＩＣ６から制御部５に出力するための配線である。配線Ｗ６は、特定のドライバＩＣ６から出力されるリターンクロックＣＬＫＲＴＮ（終端信号）を制御部５に戻すための配線である。
【００３７】
制御部５からの入力信号を伝送する配線Ｗ１〜Ｗ４は、駆動基板３において、駆動基板４から最も離れたドライバＩＣ６（図２における上端のドライバＩＣ６）に接続されている。当該ドライバＩＣ６は、これらの配線Ｗ１〜Ｗ４から伝送される信号を内部の処理に用いるとともに、配線Ｗ１〜Ｗ４を介して隣接するドライバＩＣ６に出力する。また、当該ドライバＩＣ６は、透明電極Ｅｈ，Ｅｖの出力電圧から取得したタッチの検出データ（データＤＡＴＡＮＥＸＴ）を配線Ｗ１を介して隣接するドライバＩＣ６に出力する。これらの隣接する２つのドライバＩＣ６間での信号の伝送も配線Ｗ１〜Ｗ４を用いて行われる。これは、他の隣接するドライバＩＣ６同士でも同じであり、駆動基板３，４において隣接するドライバＩＣ６同士と、駆動基板３，４間で隣接するドライバＩＣ６同士とが、配線Ｗ１〜Ｗ４を介してデイジーチェーンで接続されている。これにより、隣接するドライバＩＣ６間で信号が順次伝送されていく。
【００３８】
制御部５へ出力信号を伝送する配線Ｗ５，Ｗ６は、駆動基板４において、駆動基板３から最も離れたドライバＩＣ６（図２における右端のドライバＩＣ６）に接続されている。当該ドライバＩＣ６は、これらの配線Ｗ５，Ｗ６から伝送される信号を制御部５へ出力する。
【００３９】
このようなデイジーチェーン接続が可能となるように、各ドライバＩＣ６において、配線Ｗ１〜Ｗ４が接続される端子（ピン）は、隣接するドライバＩＣ６間で配線Ｗ１〜Ｗ４が交差しないような位置に設けられている。これにより、制御部５が駆動するドライバＩＣ５へのファンアウト数が各信号について１つになり、駆動基板３，４における配線数を削減することができる。また、デイジーチェーン接続により、配線Ｗ１〜Ｗ４を互いに交差しないように形成することが可能になる。これにより、配線Ｗ１〜Ｗ４を駆動基板３，４における同一面に形成することができ、駆動基板３，４を多層基板で形成する必要がなくなる。
【００４０】
上記のように、データは、ドライバＩＣ６間で順次転送されていき、各ドライバＩＣ６において、シリアル／パラレル変換のためにシフトされる。透明電極Ｅｈ，Ｅｖへの駆動電圧の出力および透明電極Ｅｈ，Ｅｖからの検出電圧の入力を一斉に行うために、上記のシフト動作のタイミングを各ドライバＩＣ６で同期させる必要がある。
【００４１】
そこで、各ドライバＩＣ６には、シフト開始まで待機する時間が入力クロックＣＬＫＩＮのクロック数で個々に設定される。具体的には、当該クロック数は、デイジーチェーン接続における先頭のドライバＩＣ６から順に所定値（例えば１つ）ずつ少なくなり且つ最終段のドライバＩＣ６のＩＤ（最終値）が１になるように設定され、各ドライバＩＣ６を特定するＩＤとして与えられる。初段のドライバＩＣ６に与えられるＩＤ（最大ＩＤ値）は、入力コマンドＣＭＤＩＮ（指令データ）におけるＩＤ設定コマンドに含まれており、当該ドライバＩＣ６において所定値（例えば１）だけ減算される。次段のドライバＩＣ６に与えられるＩＤ設定コマンドは、減算された上記のＩＤを含んでおり、当該ドライバＩＣ６および以降のドライバＩＣ６においても、同様にＩＤが減算される。このようにして、各ドライバＩＣ６は、前段のドライバＩＣ６で設定されるＩＤより小さいＩＤを取得する。
【００４２】
ここで、ドライバＩＣ６はＣＭＯＳレベル（５Ｖ）で動作する。ドライバＩＣ６への電源電圧の印加は、上記のようなデイジーチェーン接続による配線ではなく、各ドライバＩＣ６に接続される電源配線によって行われる。このため、電源配線については、駆動基板３，４において配線Ｗ１〜Ｗ４が形成される面と異なる面に形成される。例えば、配線Ｗ１〜Ｗ４が駆動基板３，４におけるドライバＩＣ６の実装面に形成されている場合、電源配線は駆動基板３，４における実装面と反対側の面に形成される。
【００４３】
なお、上記の例では、駆動基板３側から信号を入力して、駆動基板４側から信号を出力しているが、逆に、駆動基板４側から信号を入力して、駆動基板３側から信号を出力してもよい。
【００４４】
制御部５は、前述の入力コマンドＣＭＤＩＮ、入力クロックＣＬＫＩＮおよびデータＤＡＴＡＩＮを出力する。この制御部５は、コマンドレジスタ５１と、クロック発生器５２と、データレジスタ５３とを有している。
【００４５】
コマンドレジスタ５１は、各種の入力コマンドＣＭＤＩＮを記憶している。クロック発生器５２は、上記の入力クロックＣＬＫＩＮを発生する。
【００４６】
データレジスタ５３は、データＤＡＴＡＩＮを構成する駆動電圧のパターンデータを記憶している。このパターンデータは、検出方法に応じて異なっており、各ドライバＩＣ６について用意されている。例えば、特定の透明電極Ｅｈに駆動電圧を印加して、タッチパネル２に対するタッチ入力を透明電極Ｅｖから検出するときに、特定の透明電極Ｅｈのみに駆動電圧を印加するように構成されたパターンのデータをパターンデータとして用いる。即ち、透明電極Ｅｈに駆動電圧を供給するパターンデータや透明電極Ｅｖに駆動電圧を供給するパターンデータが用意されている。各ドライバＩＣ６についてのパターンデータがシリアルデータとなるように順次出力されることで、データＤＡＴＡＩＮが形成される。
【００４７】
また、データレジスタ５３には、駆動基板４における最後段のドライバＩＣ６から出力されるデータＤＡＴＡＯＵＴと、当該ドライバＩＣ６から出力されるリターンクロックＣＬＫＲＴＮとが入力される。データレジスタ５３は、データＤＡＴＡＯＵＴをリターンクロックＣＬＫＲＴＮのタイミングで読み込んで記憶する。
【００４８】
データレジスタ５３へのパターンデータの書き込み、およびデータレジスタ５３からのパターンデータの読み出しは、例えば、タッチパネル装置１を搭載する装置のＣＰＵによって制御される。
【００４９】
制御部５は、回路によって構成されるが、マイクロコンピュータを用いてソフトウェアにて実現してもよい。
【００５０】
続いて、ドライバＩＣ６について説明する。
【００５１】
なお、以降に説明するドライバＩＣ６は、３３本の透明電極Ｅを駆動するものとして説明する。
【００５２】
図３に示すように、ドライバＩＣ６は、リセット信号処理部１００と、クロック信号処理部２００と、コマンド処理部３００と、データ処理部４００とを有している。
【００５３】
リセット信号処理部１００は、入力されたリセット信号ＲＥＳＩＮをドライバＩＣ６内で伝送させて出力する。クロック信号処理部２００は、入力された入力クロックＣＬＫＩＮをドライバＩＣ６内で伝送させて出力する。なお、前記クロック信号処理部２００は、後述するリターンクロックＣＬＫＲＴＮを発生する。
【００５４】
コマンド処理部３００は、入力された入力コマンドＣＭＤＩＮをデコードすることにより、入力コマンドＣＭＤＩＮで規定される各種の命令を命令信号として出力する。また、コマンド処理部３００は、後段のドライバＩＣ６で実行される入力コマンドＣＭＤＩＮをデコードせずに通過させるとともに、後述するＩＤ設定コマンドＳＥＴＩＤ（図４参照）に規定されるＩＤから１を減算して出力する。
【００５５】
データ処理部４００は、入力された入力データＤＡＴＡＩＮをシフトさせることによりパラレルの駆動データに変換して、当該駆動データに基づいて各透明電極Ｅに駆動電圧を印加するとともに、各透明電極Ｅから得られた検出電圧をパラレルの検出データとして取り込んでシフトさせることによりシリアルの検出データを出力する。また、データ処理部４００は、入力データＤＡＴＡＩＮのうちの他のドライバＩＣ６で使用される部分についてはシフトさせずに出力する。
【００５６】
以降、各処理部１００，２００，３００，４００について詳細に説明する。
【００５７】
リセット信号処理部１００は、入力ドライバ１０１と、出力ドライバ１０２とを有している。入力ドライバ１０１は、外部から入力されるリセット信号ＲＥＳＩＮを波形整形するために、シュミットトリガタイプで構成されている。リセット信号ＲＥＳＩＮは、ドライバＩＣ６の所要各部に供給される（便宜上図２において詳細なリセット信号供給配線を省略している）。出力ドライバ１０２は、入力ドライバ１０１からのリセット信号ＲＥＳＩＮを次段のドライバＩＣ６にリセット信号ＲＥＳＯＵＴとして出力する。入力段に入力ドライバ１０１を設け、出力段に出力ドライバ１０２を設けることにより、リセット信号ＲＥＳＩＮの減衰を防止するようにドライブ能力を増強している。
【００５８】
初段のドライバＩＣ６に入力されるリセット信号ＲＥＳＩＮは、タッチパネル装置１を搭載する装置内で発生するパワーオンリセット信号やユーザの指示によって発生するリセット信号などである。
【００５９】
クロック信号処理部２００は、入力ドライバ２０１と、出力ドライバ２０２と、リターンクロック生成回路２０３（終端出力手段）とを有している。
【００６０】
入力ドライバ２０１は、入力クロックＣＬＫＩＮを受けてドライバＩＣ６の所要各部に供給される（便宜上図２において詳細なクロック信号供給配線を省略している）。出力ドライバ２０２は、入力ドライバ２０１からの入力クロックＣＬＫＩＮを次段のドライバＩＣ６に出力クロックＣＬＫＯＵＴとして出力する。入力段に入力ドライバ２０１を設け、出力段に出力ドライバ２０２を設けることにより、入力クロックＣＬＫＩＮの減衰を防止するようにドライブ能力を増強している。
【００６１】
リターンクロック生成回路２０３は、フリップフロップ２０４、ＡＮＤゲート２０５、ＯＲゲート２０６および出力ドライバ２０７からなる。
【００６２】
このリターンクロック生成回路２０３は、前述のリターンクロックＣＬＫＲＴＮを生成する。デイジーチェーン接続されたドライバＩＣ６のうちの最終段のドライバＩＣ６から出力されるリターンクロックＣＬＫＲＴＮは、配線Ｗ６を介して制御部５へ送られる。該制御部５は、入力されるリターンクロックＣＬＫＲＴＮの信号を監視することによって、デイジーチェーン接続された一連のドライバＩＣ６の状態を把握することができる。なお、デイジーチェーン接続されたドライバＩＣ６の最終段以外の、ドライバＩＣ６からのリターンクロックＣＬＫＲＴＮは、後段へ伝送されず、使用されない。
【００６３】
つまり、リターンクロック生成回路２０３におけるＡＮＤゲート２０５の一方の入力端には、例えば、下記の３つの信号がフリップフロップ２０４を介して入力される。第１の信号は、ＩＤレジスタ４１２に記憶されたＩＤの値が“０”（０００００）であるとき（つまり、デイジーチェーン接続された一連のドライバＩＣ６がリセットされた状態のとき）に“１”となる信号である。第２の信号は、入力コマンドＣＭＤＩＮが実行されるときに１パルスのクロックが出力されるようなアクティブ（Ｈｉｇｈ）信号となる後述の命令実行信号ＣＭＤＥＸＥである。第３の信号は、後述するシフト制御信号ＳＨＩＦＴＳＴＲである。また、ＡＮＤゲート２０５の他方の入力端には、入力クロックＣＬＫＩＮが入力される。
【００６４】
ＯＲゲート２０６は、ＩＤ判別信号とＡＮＤゲート２０５の出力とが入力されている。上記のＩＤ判別信号は、ＩＤレジスタ４１２に保持されているＩＤの上位４ビットが（００００）であるとき（最終段のドライバＩＣ６のＩＤ値が正しく設定されているとき）に“１”となり、それ以外のとき（最終段のドライバＩＣ６のＩＤ値が誤設定されているとき）に“０”となる信号である。
【００６５】
これにより、ＩＤが“０”（０００００）のとき、リターンクロック生成回路２０３は、上記第１の信号に基づいて、出力クロックＣＬＫＯＵＴと同じ位相のクロックを出力する。
【００６６】
また、ＩＤが１のとき（最終段のドライバＩＣ６のＩＤ値が正しく設定されているとき）、リターンクロック生成回路２０３は、入力コマンドＣＭＤＩＮが実行されるタイミング（命令実行終了のタイミング）で、上記第２の信号に基づいて、入力クロックＣＬＫＩＮに同期した１クロック分（１パルス）のリターンクロックＣＬＫＲＴＮを出力する。
【００６７】
また、ＩＤが１であり且つ前述のシフト系コマンドが実行されるとき、リターンクロック生成回路２０３は、上記第２および第３の信号に基づいて、入力クロックＣＬＫＩＮに同期した１クロック分の１パルスと、それに続く、後述するシフト制御信号ＳＨＩＦＴＳＴＲがＨｉｇｈとなる期間に入力ＣＬＫＩＮに同期したクロックとからなるリターンクロックＣＬＫＲＴＮを出力する。これにより、先の１パルスでシフト動作が行われたことを確認することができ、続くシフト制御信号ＳＨＩＦＴＳＴＲがＨｉｇｈとなる期間（シフト期間）にリターンクロックＣＬＫＲＴＮが出力されることで、シフト制御信号ＳＨＩＦＴＳＴＲがＨｉｇｈからＬｏｗに変化してリターンクロックＣＬＫＲＴＮが出力されなくなると、シフト動作が完了したことがわかる。
【００６８】
また、ＩＤが１であり且つ入力コマンドＣＭＤＩＮがドライバＩＣ６に入力されないとき、リターンクロック生成回路２０３は、上記第２の信号に基づいて、Ｌｏｗレベルを出力する。これにより、入力コマンドＣＭＤＩＮが与えられない（実行されない）ことがわかる。
【００６９】
さらに、ＩＤが上記の値以外のとき（最終段のドライバＩＣ６のＩＤ値が誤設定されたとき）、リターンクロック生成回路２０３は、“１”となる上記ＩＤ判定信号に基づいて、誤設定されている間にＨｉｇｈレベルを出力する。
【００７０】
このように、リターンクロックＣＬＫＲＴＮを用いることにより、命令の実行終了タイミング、ＩＤの誤設定等を制御部５で判定することができる。
【００７１】
コマンド処理部３００は、インバータ３０１，３０２と、フリップフロップ３０３（第２フリップフロップ），３０４と、減算回路３０５と、切替スイッチ３０６と、フリップフロップ３０７と、プルアップ抵抗Ｒと、入力ドライバ３０８と、コマンドバッファ３０９と、制御回路３１０（シフト制御手段）と、バレルレジスタ３１２と、シフトカウンタ３１３とを有している。
【００７２】
ここで、コマンド処理部３００の説明に先立って、入力コマンドＣＭＤＩＮの詳細について説明する。
【００７３】
図４に示すように、各入力コマンドＣＭＤＩＮは、オペコードを構成する下位の４ビット（ＯＰＴ０〜ＯＰＴ３）と、オペランドを構成する上位の５ビット（ＯＰＤ０〜ＯＰＤ４）とからなる。オペコードは、入力コマンドＣＭＤＩＮにおける命令が規定される部分であり、オペランドは、入力コマンドＣＭＤＩＮにおける各種のパラメータが設定される部分である。
【００７４】
入力コマンドＣＭＤＩＮとしては、図４に示すように、例えば、リセットコマンドＲＥＳＡＬＬ、ドライブＯＦＦコマンドＤＲＩＶＥＯＦＦ、バッファクリアコマンドＣＬＲＢＵＦ、バッファドライブコマンドＤＲＩＶＥＢＵＦ、全ドライブコマンドＤＲＩＶＥＡＬＬ、ラッチコマンドＬＡＴＣＨＴＯＵＣＨ、第１シフトコマンドＳＨＩＦＴＦ、第２シフトコマンドＳＨＩＦＴＭ、シフトビット数設定コマンドＳＥＴＳＨＩＦＴＮＯ、およびＩＤ設定コマンドＳＥＴＩＤが用意されている。
【００７５】
リセットコマンドＲＥＳＡＬＬは、リセット可能な各部をリセットするためにリセット信号ＲＥＳＩＮと同等の機能を実行するコマンドであり、オペコードの全ビットが“０”である。制御回路３１０は、このリセットコマンドＲＥＳＡＬＬが入力されると、リセット信号ＲＥＳＩＮと同等のリセット信号を出力する。
【００７６】
ドライブＯＦＦコマンドＤＲＩＶＥＯＦＦは、駆動動作後にドライバコントローラ４０８の全てをリセットするが、シフトバッファ４０６（データシフト手段，シフト要否判定手段）をリセットしない。このドライブＯＦＦコマンドＤＲＩＶＥＯＦＦは、ビットＯＰＴ３のみが“１”である。
【００７７】
バッファクリアコマンドＣＬＲＢＵＦは、シフトバッファ４０６をリセットするコマンドである。このバッファクリアコマンドＣＬＲＢＵＦは、ビットＯＰＴ０のみが固定的に“１”である。また、ビットＯＰＴ３において、ドライバＩＣ６が垂直側（“１”）または水平側（“０”）のいずれであるかが規定される。
【００７８】
また、図示はしないが、バッファクリアコマンドＣＬＲＢＵＦを利用して、シフトバッファ４０６に保持された値を反転するバッファ反転コマンドＩＮＶＢＵＦを構成することもできる。具体的には、バッファクリアコマンドＣＬＲＢＵＦとして利用する場合は、オペランドにおけるビットＯＰＤ０を“０”とし、バッファ反転コマンドＩＮＶＢＵＦとして利用する場合は、オペランドにおけるビットＯＰＤ０を“１”とする。バッファ反転コマンドＩＮＶＢＵＦは、本実施の形態で説明する駆動アルゴリズムには用いられないが、反転値を得るために、反転値を作成してシフトバッファ４０６においてシフトさせる必要はない。
【００７９】
バッファドライブコマンドＤＲＩＶＥＢＵＦは、シフトバッファ４０６にシフトされたデータパターンに基づいて各ライン（透明電極Ｅ）を駆動するコマンドである。全ドライブコマンドＤＲＩＶＥＡＬＬは、シフトバッファ４０６の出力に関係なくドライバＩＣ６に接続される全ラインをアクティブに駆動するコマンドである。バッファドライブコマンドＤＲＩＶＥＢＵＦおよび全ドライブコマンドＤＲＩＶＥＡＬＬは、オペランドにおけるビットＯＰＤ１が“１”である点で共通しているが、ビットＯＰＤ０の値で区別される。バッファドライブコマンドＤＲＩＶＥＢＵＦではビットＯＰＤ０が“１”であり、全ドライブコマンドＤＲＩＶＥＡＬＬではビットＯＰＤ０が“０”である。また、ビットＯＰＴ３において、ドライバＩＣ６が垂直側（“１”）または水平側（“０”）のいずれであるかが規定される。
【００８０】
ラッチコマンドＬＡＴＣＨＴＯＵＣＨは、全ラインからシフトバッファ４０６にデータをラッチする（読み込む）コマンドである。このラッチコマンドＬＡＴＣＨＴＯＵＣＨは、ビットＯＰＴ０，ＯＰＴ１が固定的に“１”である。また、ビットＯＰＴ３において、ドライバＩＣ６が垂直側（“１”）または水平側（“０”）のいずれであるかが規定される。
【００８１】
第１シフトコマンドＳＨＩＦＴＦは、シフトバッファ４０６のシフト動作をバレルレジスタ３１２に設定されている前述の倍数値を用いることなく実行させるコマンドである。この第１シフトコマンドＳＨＩＦＴＦにおいては、前述のようにシフトバッファ４０６におけるシフトのビット数が３１以下である場合のシフト数をオペランドの５ビットで規定している。
【００８２】
第２シフトコマンドＳＨＩＦＴＭは、シフトバッファ４０６のシフト動作をバレルレジスタ３１２に設定されている前述の倍数値を用いて実行させるコマンドである。この第２シフトコマンドＳＨＩＦＴＭにおいては、前述のようにシフトバッファ４０６におけるシフトのビット数が３１以下のシフト数をオペランドの５ビットで規定している。
【００８３】
シフトビット数設定コマンドＳＥＴＳＨＩＦＴＮＯは、前述のようにシフトバッファ４０６におけるシフトのビット数が３２以上である場合の３２の倍数値をバレルレジスタ３１２に設定するコマンドである。このシフトビット数設定コマンドＳＥＴＳＨＩＦＴＮＯにおいては、倍数値をオペランドの４ビットで規定している。
【００８４】
第１シフトコマンドＳＨＩＦＴＦ、第２シフトコマンドＳＨＩＦＴＭおよびシフトビット数設定コマンドＳＥＴＳＨＩＦＴＮＯにおいても、ビットＯＰＴ３において、ドライバＩＣ６が垂直側（“１”）または水平側（“０”）のいずれであるかが規定される。
【００８５】
ＩＤ設定コマンドＳＥＴＩＤは、各ＩＤを設定するためのコマンドである。このＩＤ設定コマンドＳＥＴＩＤは、前述のように、デイジーチェーン接続における先頭のドライバＩＣ６に設定される最大のＩＤ値がオペランドに規定されている。このオペランドは、第２のドライバＩＣ６に設定されるＩＤが順次減じられた結果、末尾のドライバＩＣ６のＩＤが１となるように設定される。また、オペコードは、３つのビットＯＰＴ０〜ＯＰＴ２が用いられる。
【００８６】
図５に示すように、入力コマンドＣＭＤＩＮ（基本コマンド）は、通常のシリアル通信で用いられるシリアルデータと同様に構成されている。具体的には、入力コマンドＣＭＤＩＮは、先頭にＬｏｗレベルのスタートビットを有しており、９ビット（ＯＰＴ０〜ＯＰＴ３，ＯＰＤ０〜ＯＰＤ４）の値（ローアクティブ）が入力クロックＣＬＫに同期して連続して伝送される。入力コマンドＣＭＤＩＮは、複数の基本コマンドが列をなして構成される場合、コマンド列となる。
【００８７】
シフトバッファ４０６による入力データＤＡＴＡＩＮのシフト動作は、駆動基板３または駆動基板４のいずれか一方におけるドライバＩＣ６において同時に行われる。このため、例えば、駆動基板３におけるドライバＩＣ６でシフト動作が行われるとき、駆動基板４におけるドライバＩＣ６ではシフト動作が行われない。したがって、この場合、コマンド列である入力コマンドＣＭＤＩＮは、駆動基板４のドライバＩＣ６に与えられる基本コマンドにおけるオペランドの各ビットが０に設定されている。これにより、シフトライン数が０となるので、シフトバッファ４０６におけるシフト動作は行われない。逆に、駆動基板４におけるドライバＩＣ６ではシフト動作が行われる場合、入力コマンドＣＭＤＩＮは、駆動基板３のドライバＩＣ６に与えられる基本コマンドにおけるオペランドの各ビットが０に設定されることになる。
【００８８】
引き続き、コマンド処理部３００について説明する。
【００８９】
フリップフロップ３０３は、インバータ３０１で反転した入力コマンドＣＭＤＩＮを入力クロックＣＬＫＩＮのタイミングで取り込む。このフリップフロップ３０３は、レーシング現象を回避するために立ち下がりのタイミングで入力コマンドＣＭＤＩＮを保持する。
【００９０】
減算回路３０５は、前述の設定コマンドＳＥＴＩＤにおけるオペコードから“１”を減算して出力する。フリップフロップ３０４は、減算回路３０５の減算の結果でボロー（桁下げ）を生じたときに、そのボローをフリップフロップ３０４で保持する。そして、フリップフロップ３０４は、保持したボローを桁下げ演算のために減算回路３０５へ与える。減算回路３０５とフリップフロップ３０４とでシリアルサブトラクターが構成されている。
【００９１】
切替スイッチ３０６は、フリップフロップ３０３から出力される入力コマンドＣＭＤＩＮと、減算回路３０５から出力される入力コマンドＣＭＤＩＮとのいずれか１つを選択して出力する。具体的には、切替スイッチ３０６は、制御回路３１０から出力される切替制御信号が“０”であるとき、出力端子をフリップフロップ３０３に接続し、上記の切替制御信号が“１”であるとき、出力端子を減算回路３０５に接続する。
【００９２】
フリップフロップ３０７は、入力クロックＣＬＫＩＮに同期して切替スイッチ３０６からの入力コマンドＣＭＤＩＮを保持する。インバータ３０２は、フリップフロップ３０７からの入力コマンドＣＭＤＩＮを反転して、出力コマンドＣＭＤＯＵＴとして次段のドライバＩＣ６に出力する。
【００９３】
ここで、ドライバＩＣ６には、水平・垂直判別信号Ｈ／Ｖが入力される。水平・垂直判別信号Ｈ／Ｖは、駆動基板３における垂直方向に配置されたドライバＩＣ６であることを“１”で表し、駆動基板４における水平方向に配置されたドライバＩＣ６であることを“０”で表す。水平・垂直判別信号Ｈ／Ｖの入力端子は、入力ドライバ３０８の入力端子に接続されているが、ＣＭＯＳレベルで駆動するため、抵抗Ｒによってプルアップされている。
【００９４】
コマンドバッファ３０９は、フリップフロップ３０３を経た９ビットの入力コマンドＣＭＤＩＮを一時的に保持する。
【００９５】
制御回路３１０は、コマンドバッファ３０９に保持された入力コマンドＣＭＤＩＮに含まれる４ビットのオペコードをデコードして得られるＨｉｇｈの信号と、後述するイコールコンパレータ４１４から出力される命令実行信号ＣＭＤＥＸＥがＨｉｇｈ（アクティブ）とで有効となる命令信号を出力して所要の各部に与える。
【００９６】
具体的には、制御回路３１０は、入力コマンドＣＭＤＩＮが前述のバッファクリアコマンドＣＬＲＢＵＦであるとき、バッファクリア信号ＣＢＵＦ（Ｈｉｇｈレベル）を命令信号として出力する。また、制御回路３１０は、入力コマンドＣＭＤＩＮが前述の全ドライブコマンドＤＲＩＶＥＡＬＬであるとき、全ドライブ信号ＤＡＬＬ（Ｌｏｗレベル）を命令信号として出力する。また、制御回路３１０は、入力コマンドＣＭＤＩＮが前述のドライブＯＦＦコマンドＤＲＩＶＥＯＦＦであるとき、ドライブＯＦＦ信号ＤＯＦＦ（Ｈｉｇｈレベル）を命令信号として出力する。また、制御回路３１０は、入力コマンドＣＭＤＩＮが前述のバッファドライブコマンドＤＲＩＶＥＢＵＦであるとき、バッファドライブ信号ＤＢＵＦ（Ｈｉｇｈレベル）を命令信号として出力する。また、制御回路３１０は、入力コマンドＣＭＤＩＮが前述のラッチコマンドＬＡＴＣＨＴＯＵＣＨであるとき、ラッチ信号ＬＯＵＴ（Ｈｉｇｈレベル）を命令信号として出力する。さらに、制御回路３１０は、入力コマンドＣＭＤＩＮが前述の第１シフトコマンドＳＨＩＦＴＦまたは第２シフトコマンドＳＨＩＦＴＭであるとき、シフト命令信号ＳＨＩＦＴ（Ｈｉｇｈレベル）を命令信号として出力する。
【００９７】
また、制御回路３１０は、入力ドライバ３０８を介して入力される水平・垂直判別信号Ｈ／Ｖに基づいて、自身のドライバＩＣ６が水平方向または垂直方向のいずれの方向に配置されたものであるかを判別する。
【００９８】
また、制御回路３１０は、入力コマンドＣＭＤＩＮがＩＤ設定コマンドＳＥＴＩＤであるか否かを判定する。制御回路３１０は、その結果に応じて、入力コマンドＣＭＤＩＮがＩＤ設定コマンドＳＥＴＩＤである場合、“１”の切替制御信号を出力する一方、入力コマンドＣＭＤＩＮがＩＤ設定コマンドＳＥＴＩＤでない場合、“０”の切替制御信号を出力する。この切替制御信号は、ＩＤをＩＤレジスタ４１２にロードするためのＩＤロード信号としても利用される。
【００９９】
また、制御回路３１０は、後述するウエイトカウンタ４１３のカウント動作を開始させるためのカウンタ制御信号を出力する。このため、制御回路３１０は、コマンドバッファ３０９に書き込まれた入力コマンドＣＭＤＩＮのオペコードをデコードした結果から、当該入力コマンドＣＭＤＩＮがＩＤ設定コマンドＳＥＴＩＤ以外のコマンドであるか否かを判定する。これにより、制御回路３１０は、書き込まれた入力コマンドＣＭＤＩＮがＩＤ設定コマンドＳＥＴＩＤ以外のコマンドであると認識したときに、実行すべき入力コマンドＣＭＤＩＮがコマンドバッファ３０９に書き込まれていると判断して、カウンタ制御信号をアクティブ（Ｈｉｇｈ）に変化させる。
【０１００】
また、制御回路３１０は、シフトバッファ４０６の制御に関するバッファ制御系コマンド（ＣＬＲＢＵＦ、ＤＲＩＶＥＢＵＦ／ＤＲＩＶＥＡＬＬ、ＳＨＩＦＴＦ、ＳＨＩＦＴＭ、ＳＥＴＳＨＩＦＴＮＯ、ＬＡＴＣＨＴＯＵＣＨ）に含まれる水平・垂直の判別ビットと、水平・垂直判別信号Ｈ／Ｖとの値を比較して、両者の一致を判別する。バッファ制御系コマンドおよびラッチコマンドＬＡＴＣＨＴＯＵＣＨには、オペコードにおける最上位のビットＯＰＴ３（図４参照）にドライバＩＣ６が垂直側（“１”）または水平側（“０”）のいずれであるかが規定されている。
【０１０１】
また、制御回路３１０は、シフトバッファ４０６にシフト動作を行わせるためのシフト制御信号ＳＨＩＦＴＳＴＲを出力する。このシフト制御信号ＳＨＩＦＴＳＴＲは、前述のシフト命令信号ＳＨＩＦＴおよび命令実行信号ＣＭＤＥＸＥがともにＨｉｇｈになるとＨｉｇｈとなり、後述するシフトカウンタ３１３がロード値からのカウント値が０になるとＬｏｗとなる。
【０１０２】
また、制御回路３１０は、後述するセレクタ４０７（直接出力手段）の切り替えを制御するためのセレクト信号を出力する。具体的には、制御回路３１０は、上記の両者が一致しているとき“０”となり、一致していないときに“１”となる一致判別信号（エクスクルーシブＯＲゲートで得られる）と、命令実行信号ＣＭＤＥＸＥとの論理積でセットされ、一致判別信号の反転信号と、命令実行信号ＣＭＤＥＸＥとの論理積でリセットされるＲＳフリップフロップ（図示せず）を有している。制御回路３１０は、このＲＳフリップフロップによって、上記の判別ビットと、水平・垂直判別信号Ｈ／Ｖとの値が一致し且つ命令実行信号ＣＭＤＥＸＥがアクティブとなってから、上記の判別ビットと、水平・垂直判別信号Ｈ／Ｖとの値が一致しなくなり且つ次に命令実行信号ＣＭＤＥＸＥがアクティブとなるまでＨｉｇｈとなるセレクト信号を出力する。
【０１０３】
後述するシフトバッファ４０６において入力データＤＡＴＡＩＮをシフトするビット数は、前述の第１シフトコマンドＳＨＩＦＴＦで設定される。第１シフトコマンドＳＨＩＦＴＦは、５ビットのオペランドでそのビット数を表している。したがって、当該ビット数が３１以下であれば、第１シフトコマンドＳＨＩＦＴＦにおいて、そのビット数に応じたシフト動作を規定することができる。
【０１０４】
しかしながら、入力データＤＡＴＡＩＮをシフトするビット数が３１を越える場合には、上記の５ビットのオペランドではシフト動作を規定することができない。そこで、シフトするビット数が３１を越える場合は、３２を整数倍する倍数値（ｎ）を予め規定しておき、３２×ｎと、３１以下のビット数を規定する第２シフトコマンドＳＨＩＦＴＭとで、３２以上のビット数を表す。これにより、５ビットのオペランドでも、３２以上のビット数を規定することができる。
【０１０５】
バレルレジスタ３１２は、上記の倍数値を記憶するために設けられる。当該倍数値は、前述のシフトビット数設定コマンドＳＥＴＳＨＩＦＴＮＯにおけるオペランドの４ビットを用いて表される。このバレルレジスタ３１２は、例えばＤラッチによって構成されており、水平方向のドライバＩＣ６と垂直方向のドライバＩＣ６とについてそれぞれ個別に該当する４ビットの値を保持する。バレルレジスタ３１２に記憶されている水平方向または垂直方向のドライバＩＣ６についての倍数値がシフトカウンタ３１３に出力される。
【０１０６】
また、バレルレジスタ３１２は、コマンドバッファ３０９から出力される５ビットのオペランドのうち、上記のシフトビット数設定コマンドＳＥＴＳＨＩＦＴＮＯにおけるオペランドの４ビット（倍数値）を一時的に保持する。
【０１０７】
シフトカウンタ３１３は、コマンドバッファ３０９からの上記の第１シフトコマンドＳＨＩＦＴＭにおけるオペランド（５ビット）、またはバレルレジスタ３１２からの上記の倍数値ｎ（４ビット）と、上記の第２シフトコマンドＳＨＩＦＴＭにおけるオペランド（５ビット）とがプリセット値として入力される。シフトカウンタ３１３は、前述のシフト制御信号ＳＨＩＦＴＳＴＲがＨｉｇｈとなっている期間に、ロードされたプリセット値から０まで入力クロックＣＬＫＩＮをダウンカウントするダウンカウンタである。また、シフトカウンタ３１３は、アップカウンタであってもよい。
【０１０８】
ここで、後述するように、シフト制御信号ＳＨＩＦＴＳＴＲがＨｉｇｈとなる期間にシフトバッファ４０６における入力データＤＡＴＡＩＮのシフト動作が行われる。これにより、シフトカウンタ３１３にロードされるプリセット値に応じて、シフトバッファ４０６がシフトするビット数が規定される。
【０１０９】
データ処理部４００は、入力ドライバ４０１と、出力ドライバ４０２と、フリップフロップ４０３〜４０５と、シフトバッファ４０６と、セレクタ４０７と、ドライバコントローラ４０８と、出力ドライバ４０９と、入力ドライバ４１０と、ノイズフィルタ４１１と、ＩＤレジスタ４１２（）と、ウエイトカウンタ４１３と、イコールコンパレータ４１４とを有している。
【０１１０】
フリップフロップ４０３（第１フリップフロップ）は、入力ドライバ４０１を介して入力された入力データＤＡＴＡＩＮを入力クロックＣＬＫＩＮのタイミングで取り込む。このフリップフロップ４０３は、レーシング現象を回避するために立ち下がりのタイミングで入力データＤＡＴＡＩＮを保持する。フリップフロップ４０４は、入力クロックＣＬＫＩＮに同期してフリップフロップ４０３からの入力データＤＡＴＡＩＮを保持する。
【０１１１】
シフトバッファ４０６は、フリップフロップ４０３を経て入力された入力データＤＡＴＡＩＮを、規定されたビット数まで入力クロックＣＬＫＩＮに同期して１ビットずつシフトさせ、パラレルデータとして保持して出力する。上記のビット数は、３１ビット以下の場合は、コマンドバッファ３０９に展開される第１シフトコマンドＳＨＩＦＴＦのオペランドの値で規定され、３２ビット以上の場合は、コマンドバッファ３０９に展開される第２シフトコマンドＳＨＩＦＴＭおよびシフトビット数設定コマンドＳＥＴＳＨＩＦＴＮＯのオペランドの値（９ビット）で規定される。これにより、シフトバッファ４０６は、所望のビット数だけ入力データＤＡＴＡＩＮをシフトさせて、入力データＤＡＴＡＩＮの必要な部分をパラレルデータに変換することができる。
【０１１２】
また、シフトバッファ４０６は、後述するノイズフィルタ４１１から出力される３３ビットの各透明電極Ｅから取得したパラレルのデータ（検出データ）を、ラッチ信号ＬＯＵＴがアクティブ（Ｈｉｇｈ）になると取り込む。シフトバッファ４０６は、取り込んだデータを入力クロックＣＬＫＩＮに同期して上記のように規定されたビット数だけ１ビットずつシフトさせることでシリアルのデータとして出力する。
【０１１３】
また、シフトバッファ４０６は、入力コマンドＣＭＤＩＮがシフトに関するシフト系コマンド（前述のＳＨＩＦＴＦ、ＳＨＩＦＴＭ、ＳＥＴＳＨＩＦＴＮＯ）であるときに、前述のシフト制御信号ＳＨＩＦＴＳＴＲが有効（Ｈｉｇｈ）となったときにシフト動作を行い、ＩＤで規定される入力クロックＣＬＫＩＮのクロック数だけシフトの開始を遅らせる。そして、シフトバッファ４０６は、前述のバッファクリア信号ＣＢＵＦが有効となったときにリセットされて出力を停止する。
【０１１４】
ＩＤレジスタ４１２は、コマンドバッファ３０９に保持されるＩＤ設定コマンドＳＥＴＩＤにおいてＩＤが設定される部分（５ビットのオペランド）を記憶する。このＩＤレジスタ４１２は、例えばＤラッチによって構成されており、制御回路３１０からのＩＤロード信号によって上記の５ビットのデータを書き込む。
【０１１５】
ウエイトカウンタ４１３は、入力クロックＣＬＫＩＮを０からカウントしていきカウント値を出力する。このウエイトカウンタ４１３は、制御回路３１０から出力される前述のカウンタ制御信号がアクティブとなったときにカウントを開始する。
【０１１６】
イコールコンパレータ４１４は、ＩＤレジスタ４１２からのＩＤとウエイトカウンタ４１３からのカウント値とを比較し、両者が一致するとＨｉｇｈレベルの命令実行信号ＣＭＤＥＸＥを出力する。この命令実行信号ＣＭＤＥＸＥがＨｉｇｈレベルになると、制御回路３１０からの前述の各命令信号が有効となり、ＩＤ設定コマンドＳＥＴＩＤ以外のコマンドが実行される。命令実行信号ＣＭＤＥＸＥは、ウエイトカウンタ４１３のカウント値が入力クロックＣＬＫＩＮの１クロックのタイミングで変化していくことから、１クロックの期間のみＨｉｇｈとなる。
【０１１７】
シフトバッファ４０６は、この上記の命令信号のうちのシフト命令信号ＳＨＩＦＴＳＴＲを受けてシフト動作を開始する。これにより、シフトバッファ４０６は、ＩＤの値に応じてシフト動作の開始を遅らせることができる。
【０１１８】
セレクタ４０７は、フリップフロップ４０４から出力される入力データＤＡＴＡＩＮと、シフトバッファ４０６から出力される入力データコマンドＣＭＤＩＮとのいずれか１つを選択して出力する。具体的には、セレクタ４０７は、制御回路３１０から出力されるセレクト信号が“１”であるとき、すなわち、前述のバッファ制御系コマンドが実行されるときに、シフトバッファ４０６の出力端子を出力ドライバ４０２に接続する。一方、セレクタ４０７は、セレクト信号が“０”であるとき、すなわち、バッファ制御系コマンドおよびラッチコマンドＬＡＴＣＨＴＯＵＣＨが実行されないときに、フリップフロップ４０４の出力端子を出力ドライバ４０２に接続する。
【０１１９】
ドライバコントローラ４０８は、透明電極Ｅに駆動電圧を印加するときに“０”の駆動信号を出力し、透明電極Ｅに駆動電圧を印加しないときに“１”の駆動信号を出力する。このようなドライバコントローラ４０８は、論理回路によって構成される。また、ドライバコントローラ４０８は、ドライブ系コマンド（ＤＲＩＶＥＯＦＦ、ＤＲＩＶＥＢＵＦ、ＤＲＩＶＥＡＬＬ）によって制御回路３１０から出力される前述の各種の命令信号に基づいて出力ドライバ４０９の動作を制御する。具体的には、ドライバコントローラ４０８は、全ドライブ信号ＤＡＬＬが有効（Ｌｏｗレベル＝“０”）であるときには、シフトバッファ４０６の出力に関係なく、全ドライブ信号ＤＡＬＬの“０”をドライバＩＣ６に接続される全透明電極Ｅに対して駆動信号として出力する。また、ドライバコントローラ４０８は、バッファドライブ信号ＤＢＵＦが有効であるときには、シフトバッファ４０６からの各ビットのデータを対応する透明電極Ｅに対して駆動信号として出力する。さらに、ドライバコントローラ４０８は、ドライブＯＦＦ信号ＤＯＦＦが有効になると、シフトバッファ４０６からのデータ（“０”または“１”）の出力を停止する。
【０１２０】
出力ドライバ４０９は、ドライバコントローラ４０８からの駆動信号に基づいて透明電極Ｅへの駆動電圧の印加と印加の停止とを行う。具体的には、出力ドライバ４０９は、透明電極Ｅとグランドとの間に接続されるトランジスタ回路をドライバＩＣ６に接続される透明電極Ｅの数だけ有しており、各トランジスタ回路のゲートに出力ドライバ４０９からの対応する駆動信号が入力される。また、個々の透明電極Ｅとトランジスタ回路との間には、それぞれ抵抗を介して電源電圧が印加されている。これにより、“０”の駆動信号が出力されると、トランジスタ回路がＯＦＦするので、透明電極Ｅには電源電圧が駆動電圧として印加され、“１”の駆動信号が出力されると、トランジスタ回路がＯＮするので、透明電極Ｅには駆動電圧が印加されない。
【０１２１】
入力ドライバ４１０は、インバータ機能を兼ね備えており、透明電極Ｅからの検出電圧を反転して出力する。この入力ドライバ４１０も、出力ドライバ４０９と同様、ドライバＩＣ６に接続される透明電極Ｅの個々に設けられている。
【０１２２】
入力ドライバ４１０から各透明電極Ｅからの検出電圧は、パラレルのデータとしてノイズフィルタ４１１でノイズが除去されてシフトバッファ４０６に入力される。
【０１２３】
ノイズフィルタ４１１は、複数のＤフリップフロップが複数段直列に接続されて入力データをシフトするシフトレジスタと、シフトレジスタにおける各段の出力の多数決をとる多数決回路とを有している。このノイズフィルタ４１１は、多数決回路により、シフトレジスタの各段の出力が所定数連続して“０”であると判定すると“０”を出力し、シフトレジスタの各段の出力が所定数連続して“１”であると判定すると“１”を出力することで、入力データのノイズを除去する。
【０１２４】
上記のように構成されるタッチパネル装置１におけるタッチパネル２の駆動動作について説明する。
【０１２５】
まず、以降に説明するタッチパネル装置１においては、ドライバＩＣ６が９個設けられており、駆動基板３が４個のドライバＩＣ６を実装し、駆動基板４が５個のドライバＩＣ６を実装している。図１および図２においては、便宜上一部のドライバＩＣ６の図示を省略している。
【０１２６】
タッチパネル装置１を搭載する装置が電源投入されたり、起動後のリセット操作などでリセットされたりすると、リセット信号ＲＥＳＩＮがタッチパネル装置１に入力される。リセット信号ＲＥＳＩＮは、駆動基板３において配線Ｗ４を介して初段のドライバＩＣ６に入力されると、当該ドライバＩＣ６を経て以降のドライバＩＣ６にも順次伝送されていく。これにより、各ドライバＩＣ６がリセットされる。最終段のドライバＩＣ６は、リセット信号ＲＥＳＯＵＴの出力端子が非接続状態であるため、リセット信号ＲＥＳＯＵＴを出力しない。
【０１２７】
なお、リセット動作は、入力コマンドＣＭＤＩＮのリセットコマンドＲＥＳＡＬＬを実行することでも行われる。
【０１２８】
また、入力クロックＣＬＫＩＮは、制御部５のクロック発生器５２から出力されると、リセット信号ＲＥＳＩＮと同様に、駆動基板３において配線Ｗ３を介して、初段のドライバＩＣ６に入力され、以降のドライバＩＣ６に順次伝送されていく。各ドライバＩＣ６から出力される出力クロックＣＬＫＯＵＴは、次段のドライバＩＣ６へ入力クロックＣＬＫＩＮとして入力される。これにより、各ドライバＩＣ６が入力クロックＣＬＫＩＮに基づいて動作する。最終段のドライバＩＣ６は、出力クロックＣＬＫＯＵＴの出力端子が非接続状態であるため、出力クロックＣＬＫＯＵＴを出力しないが、その代わりに、リターンクロックＣＬＫＲＴＮを配線Ｗ６を介して制御部５に出力する。
【０１２９】
リセット後には、外部のＣＰＵの指示により、制御部５のコマンドレジスタ５１から入力コマンドＣＭＤＩＮが出力される。入力コマンドＣＭＤＩＮは、各ドライバＩＣ６でフリップフロップ３０７を通過することで、入力クロックＣＬＫＩＮの１クロックずつ遅れながら、次段のドライバＩＣ６に伝送されていく。
【０１３０】
システム起動時には、まず、入力コマンドＣＭＤＩＮとしてＩＤ設定コマンドＳＥＴＩＤが出力される。ここで述べるタッチパネル装置１が９個のドライバＩＣ６を有することから、ＩＤ設定コマンドＳＥＴＩＤにおけるオペランドに設定される最大ＩＤ値は“９”（０１００１）となる。
【０１３１】
このＩＤ設定コマンドＳＥＴＩＤは、初段のドライバＩＣ６にインバータ３０１で反転されて入力されると、ここで、コマンドバッファ３０９に一旦入力されるとともに、フリップフロップ３０３および減算回路３０５からなるシリアルサブトラクターでオペランドから１だけ減算される。コマンドバッファ３０９に保持されているＩＤ設定コマンドＳＥＴＩＤは、制御回路３１０でデコードされる。すると、制御回路３１０では、入力コマンドＣＭＤＩＮがＩＤ設定コマンドＳＥＴＩＤであると判定される。このとき、コマンドバッファ３０９に保持されているＩＤ設定コマンドＳＥＴＩＤのオペランドが、制御回路３１０から出力されるロード信号（“１”）により、ＩＤレジスタ４１２に書き込まれることで、当該ドライバＩＣ６にＩＤが設定される。
【０１３２】
また、上記の判定により、制御回路３１０から出力される切替制御信号が“０”から“１”に切り替わる。これにより、シリアルサブトラクターでオペランド（ＩＤ値）から１を減算されたＩＤ設定コマンドＳＥＴＩＤが、切替スイッチ３０６、フリップフロップ３０７およびインバータ３０２を介して出力される。これにより、ＩＤ設定コマンドＳＥＴＩＤが出力コマンドＣＭＤＯＵＴとして次段のドライバＩＣ６に出力される。次段のドライバＩＣ６は、このＩＤ設定コマンドＳＥＴＩＤが入力コマンドＣＭＤＩＮとして入力されることにより、やはり上記のように、ＩＤ設定するとともに、ＩＤの減算（−１）を行う。このような処理を以降の各ドライバＩＣ６でも同様に行うことにより、各ドライバＩＣ６で初段から１つずつ小さくなるＩＤが設定される。これにより、最終段のドライバＩＣ６に設定されるＩＤが“１”となる。
【０１３３】
このようにして各ドライバＩＣ６にＩＤが設定されると、各ドライバＩＣ６では、ＩＤ設定コマンドＳＥＴＩＤ以外の入力コマンドＣＭＤＩＮが実行可能となる。シリアルの入力コマンドＣＭＤＩＮは、各ドライバＩＣ６でフリップフロップ３０７によって入力クロックＣＬＫＩＮの１クロック分遅れるので、実行されるべき各ドライバＩＣ６に達するには時間差がある。このため、最終段のドライバＩＣ６に入力コマンドＣＭＤＩＮが達してから、全てのドライバＩＣ６で入力コマンドＣＭＤＩＮが実行される。このとき、各ドライバＩＣ６では、ＩＤレジスタ４１２に設定されたＩＤと、ウエイトカウンタ４１３でカウントされた入力クロックＣＬＫＩＮのクロック数とが一致したときに、イコールコンパレータ４１４からＨｉｇｈの命令実行信号ＣＭＤＥＸＥが出力される。これにより、全てのドライバＩＣ６が命令実行信号ＣＭＤＥＸＥに基づいて同時に入力コマンドＣＭＤＩＮを実行する。
【０１３４】
続いて、入力コマンドＣＭＤＩＮを用いた透明電極Ｅへの駆動電圧の印加および透明電極Ｅからの駆動電圧の検出について説明する。
【０１３５】
まず、駆動電圧の印加を行うには、ドライブ系のコマンドであるバッファドライブコマンドＤＲＩＶＥＢＵＦまたは全ドライブコマンドＤＲＩＶＥＡＬＬが用いられる。また、シフトバッファ４０６を用いて電極駆動を行うバッファドライブコマンドＤＲＩＶＥＢＵＦを実行するときには、シフト系コマンドが用いられる。シフトビット数が３１以下である場合は、第１シフトコマンドＳＨＩＦＴＦが用いられ、シフトビット数が３２以上である場合は、第２シフトコマンドＳＨＩＦＴＭおよびシフトビット数設定コマンドＳＥＴＳＨＩＦＴＮＯが用いられる。
【０１３６】
制御回路３１０により、オペコードに基づいて入力コマンドＣＭＤＩＮが第１シフトコマンドＳＨＩＦＴＦであると判定されると、当該第１シフトコマンドＳＨＩＦＴＦのオペランドがシフトカウンタ３１３にロードされる。また、制御回路３１０から出力されるシフト制御信号ＳＨＩＦＴＳＴＲは、シフトカウンタ３１３が、ロードされたオペランドの値まで入力クロックＣＬＫＩＮをカウントアップするか、またはロードされたオペランドの値をカウントダウンとして０に達すると、Ｌｏｗとなる。これにより、シフト制御信号ＳＨＩＦＴＳＴＲがＨｉｇｈとなっている期間に行われていたシフトバッファ４０６のシフト動作が停止する。
【０１３７】
一方、ドライバＩＣ６に入力される入力データＤＡＴＡＩＮは、フリップフロップ４０３から入力クロックＣＬＫＩＮに同期して１ビットずつシフトバッファ４０６に入力される。シフトバッファ４０６では、入力された入力データＤＡＴＡＩＮが入力クロックＣＬＫＩＮに同期して１ビットずつシフトされていく。そして、上記ようにシフトバッファ４０６のシフト動作が停止すると、そのときの入力データＤＡＴＡＩＮの値が保持される。
【０１３８】
当該ドライバＩＣ６でバッファ制御系コマンドが実行されない場合、入力データＤＡＴＡＩＮは、フリップフロップ４０４で入力クロックＣＬＫＩＮの１クロック分遅延した状態で、セレクタ４０７および出力ドライバ４０２を介して、伝送データＤＡＴＡＩＮとして出力される。これにより、当該ドライバＩＣ６でシフトする必要がなく、次段以降のドライバＩＣ６でシフトされる入力データＤＡＴＡＩＮは、当該ドライバＩＣ６のシフトバッファ４０６を通過することなく、伝送データＤＡＴＡＩＮとして次段のドライバＩＣ６に入力データＤＡＴＡＩＮとして入力される。例えば、駆動基板３における各ドライバＩＣ６でデータをシフトさせる一方、駆動基板４における各ドライバＩＣ６でデータをシフトさせない場合、入力データＤＡＴＡＩＮは、駆動基板３における各ドライバＩＣ６をシフトしていくが、駆動基板４においては各ドライバＩＣ６でシフトバッファ４０６を迂回してドライバＩＣ６内を通過するのみとなる。すなわち、駆動基板３（垂直方向）および駆動基板４（水平方向）のそれぞれにおいて存在する複数個のドライバＩＣ６によって、垂直方向で一連のシフトレジスタおよび水平方向で一連のシフトレジスタをそれぞれ形成する。そのため、上述のように、垂直方向においてシフトしたデータは、水平方向においてはシフトせずにフリップフロップ４０４を介して通過するのみである。このような方式で、データが複数のドライバＩＣ６をシフトしていく。
【０１３９】
このように、入力データＤＡＴＡＩＮは、シフトされるドライバＩＣ６に入力されるまで、通過する各ドライバＩＣ６でシフトされることなく（不要にシフト数が増加することなく）、高速で伝送される。
【０１４０】
一方、制御回路３１０により、オペコードに基づいて入力コマンドＣＭＤＩＮが第２シフトコマンドＳＨＩＦＴＭであると判定されると、シフトビット数設定コマンドＳＥＴＳＨＩＦＴＮＯおよび当該第２シフトコマンドＳＨＩＦＴＭのオペランドからなる９ビットの値がシフトカウンタ３１３にロードされる。すると、シフトバッファ４０６のシフト動作は、上記と同様にしてシフトカウンタ３１３によるカウント動作が行われている間に行われた後に停止する。これにより、シフトバッファ４０６では、入力データＤＡＴＡＩＮのシフトが停止して、そのときの値が保持される。
【０１４１】
このように、シフトビット数が３１以下である場合は、第１シフトコマンドＳＨＩＦＴＦの５ビットのオペランドでシフトビット数を規定することができる。また、シフトビット数が３２以上である場合は、シフトビット数設定コマンドＳＥＴＳＨＩＦＴＮＯのオペランドが３２ビットの整数倍を規定することから、これとシフトビット数が３１以下を規定する第２シフトコマンドＳＨＩＦＴＭのオペランドとを組み合わせることにより、３２ビット以上のシフトビット数を規定することができる。これにより、オペランドを６ビット以上に増加させることなく、入力コマンドＣＭＤＩＮの規定のビット数以内で３２ビット以上のシフトビット数を規定することができる。
【０１４２】
この状態で、続いてバッファドライブコマンドＤＲＩＶＥＢＵＦがドライバＩＣ６に入力される。すると、コマンドバッファ３０９では、バッファドライブコマンドＤＲＩＶＥＢＵＦがデコードされることにより、バッファドライブ信号ＤＢＵＦ（Ｈｉｇｈレベル）が生成される。シフトバッファ４０６では、バッファドライブ信号ＤＢＵＦにより、前述のようにして保持された各ビットの値がドライバコントローラ４０８に出力される。
【０１４３】
すると、ドライバコントローラ４０８では、バッファドライブ信号ＤＢＵＦを受けて、シフトバッファ４０６から出力された各ビットの値が出力ドライバ４０９の制御端子に出力される。これにより、出力ビットの値が“０”である場合、出力ドライバ４０９がＯＦＦするので、電源電圧が駆動電圧として透明電極Ｅに印加される。また、出力ビットの値が“１”である場合、出力ドライバ４０９がＯＮするので、電源電圧が透明電極Ｅに印加されない。
【０１４４】
このように、バッファドライブコマンドＤＲＩＶＥＢＵＦを用いた場合は、シリアルの入力データＤＡＴＡＩＮのうちの所望のビットがシフトバッファ４０６に保持され、各ビットの値に基づいて透明電極Ｅへの電源電圧の印加または非印加が行われる。
【０１４５】
また、全ドライブコマンドＤＲＩＶＥＡＬＬを実行する場合は、入力データＤＡＴＡＩＮをシフトバッファ４０６でシフトさせる必要がないので、シフト系コマンドを必要としない。全ドライブコマンドＤＲＩＶＥＡＬＬがドライバＩＣ６に入力されると、コマンドバッファ３０９では、当該コマンドがデコードされることにより、全ドライブ信号ＤＡＬＬ（Ｈｉｇｈレベル）が生成される。
【０１４６】
すると、ドライバコントローラ４０８では、全ドライブ信号ＤＡＬＬを受けて、シフトバッファ４０６から出力された全ビットの値（“０”）が出力ドライバ４０９の制御端子に出力される。これにより、電源電圧が駆動電圧としてドライバＩＣ６に接続される全ての透明電極Ｅに印加される。
【０１４７】
このような処理が、駆動基板３における全てのドライバＩＣ６で同時に行われることにより、全ての透明電極Ｅｈが駆動される。すると、タッチパネル２においてタッチされた位置に応じた透明電極Ｅｖが当該位置で対応する透明電極Ｅｈと導通することから、当該電極Ｅｖに検出電圧が現れる。このとき、駆動基板４における全てのドライバＩＣ６でタッチ位置の読み出しが行われる。
【０１４８】
駆動電圧の検出を行うには、ラッチコマンドＬＡＴＣＨＴＯＵＣＨが用いられる。制御回路３１０により、オペコードに基づいて入力コマンドＣＭＤＩＮがラッチコマンドＬＡＴＣＨＴＯＵＣＨであると判定されると、ラッチ信号ＬＯＵＴ（Ｈｉｇｈレベル）がシフトバッファ４０６に与えられる。すると、各透明電極Ｅに現れる検出電圧の状態（“０”または“１”）が、検出データとしてインバータ４１０およびノイズフィルタ４１１を介してシフトバッファ４０６に取り込まれて保持される。これは、ラッチコマンドＬＡＴＣＨＴＯＵＣＨが実行されるドライバＩＣ６の全てについて同時に行われる。
【０１４９】
各ドライバＩＣ６のシフトバッファ４０６に保持されたデータは、各ドライバＩＣ６にシフト系コマンドが与えられることにより、シフトバッファ４０６をシフトされて出力され、次段のドライバＩＣ６のシフトバッファ４０６において保持されているデータに続いてシフトされていく。このように、データが複数のドライバＩＣ６間をシフトしていくことにより、各シフトバッファ４０６に保持されているデータがシリアルに順次つなげられていく。したがって、最終段のドライバＩＣ６からは、シリアルの出力データＤＡＴＡＯＵＴが出力される。
【０１５０】
また、最終段のドライバＩＣ６からは、ＩＤ設定コマンドＳＥＴＩＤおよびシフト系コマンド以外の入力コマンドＣＭＤＩＮが実行されるときに、入力コマンドＣＭＤＩＮ毎に１クロックのみのリターンクロックＣＬＫＲＴＮが出力される。上記の出力データＤＡＴＡＯＵＴは、レベルシフタ７を介して制御部５のデータレジスタ５３に、リターンクロックＣＬＫＲＴＮに同期して読み込まれる。これにより、各ドライバＩＣ６が伝送されることで遅延していく出力クロックＣＬＫＯＵＴを用いないので、適正なタイミングで出力データＤＡＴＡＯＵＴを読み込むことができる。
【０１５１】
上記の例では、駆動電圧の印加を垂直側のドライバＩＣ６で行い、駆動電圧の検出を水平側のドライバＩＣ６で行っているが、その逆も行われる。
【０１５２】
以上のように、本実施形態に係るタッチパネル装置１は、隣接する各ドライバＩＣ６が配線Ｗ１〜Ｗ４を介してデイジーチェーンで接続されていることから、ドライバＩＣ６を通過する各種の信号に遅延が生じる。
【０１５３】
リセット信号ＲＥＳＩＮについては、遅延しても各ドライバＩＣ６に伝送されれば、リセットが行われるので不都合はない。しかしながら、入力クロックＣＬＫＩＮについては、最終段のドライバＩＣ６に達すると各ドライバＩＣ６での遅延が蓄積しているため、制御部５から出力された時点とで大きな位相差が生じている。そこで、リターンクロックＣＬＫＲＴＮによりシフトの完了を検出することで、誤動作を回避することができる。
【０１５４】
また、各ドライバＩＣ６では、シフトバッファ４０６により、シリアルのデータをシフトさせてシリアル／パラレル変換するとともに、取り込んだパラレルのデータをシフトさせてシリアル／パラレル変換している。その一方、各ドライバＩＣ６でシフトさせる必要のないデータをセレクタ４０７を介して出力させている。これにより、データの伝送時間の遅れを抑制することができる。
【０１５５】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０１５６】
本発明のタッチパネル装置は、駆動基板上に実装された複数のドライバＩＣ間を伝送する信号をデイジーチェーン接続された配線を介して順次伝送するので、各信号を伝送するための配線がそれぞれ１系統設けられるだけでよく、各配線を交差しないように形成することで、駆動基板の片面に配線を設けることができることから、構造の簡素な駆動基板を用いることによりコスト低減が可能であり、タッチパネル装置を搭載する装置に好適に利用することができる。
【符号の説明】
【０１５７】
１        タッチパネル装置
２        タッチパネル（マトリクス型タッチパネル）
３，４    駆動基板
５        制御部
６        ドライバＩＣ（駆動用集積回路）
２０３        リターンクロック生成回路（終端出力手段）
３１０        制御回路（シフト制御手段）
３０３        フリップフロップ（第２フリップフロップ）
４０３        フリップフロップ（第１フリップフロップ）
４０６        シフトバッファ（データシフト手段，シフト要否判定手段）
４０７        セレクタ（直接出力手段）
ＣＬＫＩＮ    入力クロック（クロック）
ＣＬＫＲＴＮ  リターンクロック（終端信号）
ＣＭＤＩＮ    入力コマンド（指令データ）
ＤＡＴＡＩＮ  入力データ（駆動データ）
ＤＡＴＡＩＮＯＵＴ  出力データ（検出データ）
ＤＡＴＡＮＥＸＴ    伝送データ（駆動データ，検出データ）
Ｅｈ          透明電極（第１電極，第２電極）
Ｅｖ          透明電極（第１電極，第２電極）
Ｅ            透明電極
Ｗ１〜Ｗ６    配線
【図１】
2011003023.tif 000003
【図２】
2011003023.tif 000004
【図３】
2011003023.tif 000005
【図４】
2011003023.tif 000006
【図５】
2011003023.tif 000007