図面 (/)

技術 接続制御装置、情報処理装置、及び接続制御方法

出願人 富士通株式会社
発明者 植栗博幹
出願日 2013年3月29日 (7年8ヶ月経過) 出願番号 2015-507905
公開日 2017年2月16日 (3年10ヶ月経過) 公開番号 WO2014-155721
状態 特許登録済
技術分野 データの入出力機構(インターフェイス) 情報転送方式
主要キーワード ディレイフリップフロップ 追加ユニット 切り離し状態 活線挿入 バス固有 接続制御回路 カウンター回路 GND接続
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年2月16日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (18)

課題・解決手段

バス(32)に対するデバイス(21)の接続制御を行なう接続制御装置(10)であって、前記バス(32)に含まれる複数の信号線(32a,32b)の各々から入力される信号の電圧レベルが所定の閾値未満であるか否かを判定する判定部(13)と、前記バス(32)と前記デバイス(21)との間に介装され前記複数の信号線(32a,32b)の各々と前記デバイス(21)との間の接続の切り替えを行なう切替部(4)に対して、前記判定部(13)により前記信号の電圧レベルが前記所定の閾値未満であると判定された信号線(32a,32b)を前記デバイス(21)に接続させるように切替制御を行なう切替制御部(14)と、をそなえる。

概要

背景

サーバパーソナルコンピュータ等の情報処理装置では、I2C(登録商標バスに類する2線式シリアルバスが用いられることがある。2線式シリアルバスは、例えば比較的低速な周辺機器等のデバイスを接続するために用いられる。
2線式シリアルバスへデバイスを有するユニット活線挿入する場合、ユニット内部の信号線コンデンサ成分(浮遊容量)により、ごく短い時間(例えば数ns)ではあるが、バス線からユニットの端子側電流が流れるという現象が発生することがある。

図14は、バス線へユニットを活線挿入したときのユニット内部の浮遊容量によるバス線への影響を説明する図である。図14に示すように、ユニットは、内部回路に依存した浮遊容量を有する。バス線は、プルアップ抵抗により所定の電圧レベルに維持されるが、バス線にユニットが活線挿入されると、バス線からユニットの浮遊容量に対するチャージ電流iが流れる。このとき、バス線からユニットへの電流iの流出により瞬間的にバス線の電圧レベルが低下するため、2線式シリアルバスに接続された他のデバイスが誤動作する可能性がある。

2線式シリアルバスへのユニットの追加による他のデバイスの誤動作を防ぐため、例えば以下の手法が知られている。
図15及び図16は、I2Cバスを有する情報処理装置100及び100′の構成例を示す図である。
はじめに、図15に示す例を説明する。図15に示すように、情報処理装置100は、MPU(Micro Processing Unit)120、I2Cバスコントローラ130、IO_PORT入力110、IO_PORT出力111、並びに、バススイッチ140a及び140bを備える。また、情報処理装置100は、プルアップ抵抗150及び160、コネクタ170、電源供給部180、並びに、I2Cデバイス210−2及び210−3を備える。さらに、追加ユニット200は、I2Cデバイス210−1、電源部220、及び、コネクタ230を備える。

MPU120は、I2Cデバイス210−1〜210−3(以下、I2Cデバイス210−1〜210−3を区別しない場合には、単にI2Cデバイス210という)の監視及び制御を行なうプロセッサである。MPU120は、ローカルバス310を介してIO_PORT入力110、IO_PORT出力111、及び、I2Cバスコントローラ130に接続される。

IO_PORT入力110は、情報処理装置100に追加ユニット200が実装されたことを検出する。ここで、IO_PORT入力110は、プルアップ抵抗160により所定の電圧レベルに維持された実装信号線340を介して、コネクタ170に接続される。また、追加ユニット200のコネクタ230には、GND接続接地)された実装信号線420が接続される。コネクタ170がコネクタ230に接続されると、実装信号線340が実装信号線420を介してGND接続する。このため、IO_PORT入力110は、実装信号線340の電圧が低下した場合に、情報処理装置100に追加ユニット200が実装されたことを検出する。

I2Cバスコントローラ130は、プルアップ抵抗150により所定の電圧レベルに維持されたシリアルバス(I2Cバス)320を介してI2Cデバイス210と接続され、I2Cデバイス210との間でデータ信号及びクロック信号通信制御を行なう。
BUS−SW(バススイッチ)140a及び140bは、それぞれ、シリアルバス320に含まれるデータ信号線(SDA)320a及びクロック信号線(SCL)320bとコネクタ170との間に介装されるスイッチである。バススイッチ140a及び140bは、対応する信号線とコネクタ170及び230を介して接続された追加ユニット200のI2Cデバイス210−1との間の接続を切り替える。なお、バススイッチ140a及び140bは、コネクタ170に追加ユニット200が接続されるときにはいずれもディセーブル状態になり、シリアルバス320とI2Cデバイス210−1との間の接続を開放、つまり切り離された状態にする。

IO_PORT出力111は、MPU120からの制御に応じて、制御線330a及び330bを介してバススイッチ140a及び140bにおける接続の切り替えを行なう。
なお、電源供給部180は、コネクタ170に追加ユニット200のコネクタ230が接続されると、電源部220に対して電力を供給する。
上述の如く構成された情報処理装置100では、追加ユニット200が実装されると、IO_PORT110は、実装信号線340の実装信号がHighからLowに変化したことを通じて追加ユニット200の接続を検知する(図15の矢印(1)参照)。

MPU120は、IO_PORT入力110を参照して追加ユニット200が接続されたことを認識すると、I2Cバスコントローラ130に対して、シリアルバス320のバスアクセスの動作を一旦停止させる(図15の矢印(2)参照)。
また、MPU120は、シリアルバス320が停止している間に、IO_PORT出力111を制御してバススイッチ140a及び140bをイネーブルに切り替える(図15の矢印(3)参照)。これにより、バススイッチ140a及び140bが閉じて、SDA320aと追加ユニット200のSDA410aとが導通するとともに、SCL320bと追加ユニット200のSCL410bとが導通する。

バススイッチ140a及び140bがイネーブルに切り替えられると、I2Cバスコントローラ130は、バスアクセスの動作を再開し、追加ユニット200のI2Cデバイス210−1へのバスアクセスを実施する(図15の矢印(4)参照)。
以上の動作により、MPU120は、シリアルバス320のバスアクセスを一旦停止させて、シリアルバス320へ追加ユニット200を接続させる。これにより、追加ユニット200の信号線のコンデンサ成分(浮遊容量)による、バス線への追加ユニット200の接触時のノイズ(電圧低下)の影響を抑えることができる。つまり、追加ユニット200をコネクタ170に接続した際に発生する電圧低下のノイズは、ディセーブル状態のバススイッチ140a及び140bにより分離されるため、シリアルバス320には影響を及ぼさない。

次に、図16に示す例を説明する。図16に示すように、情報処理装置100′は、図15に示す情報処理装置100と同様の構成を備えるが、IO_PORT出力111、並びに、バススイッチ140a及び140bの代わりに、I2Cバスマルチプレクサ112を備える点が異なる。
I2Cバスマルチプレクサ112は、シリアルバス320とI2Cデバイス210及びコネクタ170との間に介装されるI2Cデバイスである。なお、I2Cバスマルチプレクサ112としては、NXP製PCA9542等が挙げられる。

I2Cバスマルチプレクサ112は、情報処理装置100′内部のI2Cデバイス210−2及び210−3用のチャネル1と、追加ユニット200のI2Cデバイス210−1用のチャネル2との間で、シリアルバス320のチャネル切替を行なう。具体的には、I2Cバスマルチプレクサ112は、バスがビジー状態でないタイミングでチャネル切替を行なう。なお、I2Cバスマルチプレクサ112は、内部にレジスタを備え、I2Cコントローラ130を介してMPU120によりチャネル切替を示す値がレジスタに書き込まれると、バスがビジー状態でないタイミングの検出を開始する。

上述の如く構成された情報処理装置100′では、追加ユニット200が実装されると、IO_PORT110は、情報処理装置100と同様に追加ユニット200の接続を検知する(図16の矢印(1)参照)。
MPU120は、追加ユニット200の接続の検出後、追加ユニット200へのアクセに先立ち、シリアルバス320を介して、I2Cバスマルチプレクサ112の内部レジスタに対してチャネル切替制御を行なう(図16の矢印(2′)参照)。

I2Cバスマルチプレクサ112は、内部レジスタの値に基づき、バスがビジー状態でないタイミングでチャネル1からチャネル2への切り替えを行なう(図16の矢印(3′)参照)。
I2Cバスマルチプレクサ112によりチャネルが切り替えられると、I2Cバスコントローラ130は、追加ユニット200のI2Cデバイス210−1へのバスアクセスを実施する(図16の矢印(4)参照)。

以上の動作により、I2Cバスマルチプレクサ112は、バスがビジー状態でないときに、チャネルを切り替えてシリアルバス320へ追加ユニット200を接続させる。これにより、図15に示す例と同様に、追加ユニット200の信号線のコンデンサ成分(浮遊容量)による、バス線への追加ユニット200の接触時のノイズ(電圧低下)の影響を抑えることができる。つまり、追加ユニット200をコネクタ170に接続した際に発生する電圧低下のノイズは、I2Cバスマルチプレクサ112により分離されるため、シリアルバス320には影響を及ぼさない。

なお、関連する技術として、システムオンライン稼働中でのモジュール交換手法が知られている(例えば、特許文献1参照)。この技術では、モジュールの挿入/抜去のときに発生するノイズをバスに接続された他のモジュールが受信しても誤動作しないタイミングで、バススイッチがモジュールの接続/切り離しを行なう。
ここで、ノイズを他のモジュールが受信しても誤動作しないタイミングとしては、図17に示す例が挙げられる。図17は、バスへのモジュールの接続又は切り離しのタイミングを説明する図である。例えばパラレルバスでは、他のモジュールは、バスクロック立ち上がりのタイミングでデータを受け取る。換言すれば、他のモジュールは、追加モジュールをバスへ接続した際にノイズが発生したとしても、バスクロックに同期してデータを受け取るときにこのノイズが消滅していれば、ノイズの影響を受けずにデータ(図17のデータ“B”)を受け取ることができる。

また、関連する他の技術として、バスとユニットとの間に介装されたスイッチにより、バス又はユニットの状態に応じて、バス及びユニットの接続状態を切り替える技術が知られている(例えば、特許文献2及び3参照)。
さらに、コンピュータ本体のバスの電位レベルを制御し、拡張ユニット側のバスと等しい電位レベルにすることで、バスサイクル実行状態のときに、拡張ユニットとのバス接続を可能とする技術が知られている(例えば、特許文献4参照)。

概要

バス(32)に対するデバイス(21)の接続制御を行なう接続制御装置(10)であって、前記バス(32)に含まれる複数の信号線(32a,32b)の各々から入力される信号の電圧レベルが所定の閾値未満であるか否かを判定する判定部(13)と、前記バス(32)と前記デバイス(21)との間に介装され前記複数の信号線(32a,32b)の各々と前記デバイス(21)との間の接続の切り替えを行なう切替部(4)に対して、前記判定部(13)により前記信号の電圧レベルが前記所定の閾値未満であると判定された信号線(32a,32b)を前記デバイス(21)に接続させるように切替制御を行なう切替制御部(14)と、をそなえる。

目的

本発明は、デバイスの接続の際にバスが受ける影響を低減させることを目的とする

効果

実績

技術文献被引用数
2件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

バスに対するデバイス接続制御を行なう接続制御装置であって、前記バスに含まれる複数の信号線の各々から入力される信号の電圧レベルが所定の閾値未満であるか否かを判定する判定部と、前記バスと前記デバイスとの間に介装され前記複数の信号線の各々と前記デバイスとの間の接続の切り替えを行なう切替部に対して、前記判定部により前記信号の電圧レベルが前記所定の閾値未満であると判定された信号線を前記デバイスに接続させるように切替制御を行なう切替制御部と、をそなえたことを特徴とする、接続制御装置。

請求項2

前記判定部は、前記各信号の電圧レベルに基づいて、前記バスに接続された他のデバイスにより前記バスが使用されていない状態を検出した場合に、前記信号線ごとに前記信号の電圧レベルが所定の閾値未満であるか否かの判定を行なうことを特徴とする、請求項1記載の接続制御装置。

請求項3

所定期間の計時を行なうタイマー部をさらにそなえ、前記判定部は、前記複数の信号線の各々から入力される信号の電圧レベルが、前記タイマー部による前記所定期間の計時の間、いずれも前記所定の閾値以上である場合に、前記他のデバイスにより前記バスが使用されていない状態であると判定することを特徴とする、請求項2記載の接続制御装置。

請求項4

前記バスは、2線式シリアルバスであり、前記判定部は、前記他のデバイスにより前記バスが使用されていない状態を検出した後、前記他のデバイスによる前記バスの使用開始のタイミングに応じて、前記複数の信号線のうちのデータ信号線及びクロック信号線の順で、各信号線から入力される信号の電圧レベルが前記所定の閾値未満であるか否かの判定を行なうことを特徴とする、請求項2又は請求項3記載の接続制御装置。

請求項5

前記デバイスが前記切替部に接続されたことを検知する検知部をさらにそなえ、前記判定部は、前記検知部により前記デバイスが前記切替部に接続されたことが検知された場合に、前記他のデバイスにより前記バスが使用されていない状態の検出を開始することを特徴とする、請求項2〜4のいずれか1項記載の接続制御装置。

請求項6

前記切替部は、前記複数の信号線について個別に前記デバイスとの間の接続の切り替えを行なう複数のスイッチをそなえ、前記切替制御部は、前記判定部により検出された信号線に対応するスイッチに対して、前記切替制御を行なうことを特徴とする、請求項1〜5のいずれか1項記載の接続制御装置。

請求項7

前記判定部及び前記切替制御部のうちの少なくとも一方は、一以上の論理回路をそなえることを特徴とする、請求項1〜6のいずれか1項記載の接続制御装置。

請求項8

バスに含まれる複数の信号線の各々から入力される信号の電圧レベルが所定の閾値未満であるか否かを判定する判定部と、前記バスと前記バスに接続するデバイスとの間に介装され前記複数の信号線の各々と前記デバイスとの間の接続の切り替えを行なう切替部と、前記切替部に対して、前記信号の電圧レベルが前記所定の閾値未満であると判定された信号線を前記デバイスに接続させるように切替制御を行なう切替制御部と、をそなえることを特徴とする、情報処理装置

請求項9

前記判定部は、前記各信号の電圧レベルに基づいて、前記バスに接続された他のデバイスにより前記バスが使用されていない状態を検出した場合に、前記信号線ごとに前記信号の電圧レベルが所定の閾値未満であるか否かの判定を行なうことを特徴とする、請求項8記載の情報処理装置。

請求項10

所定期間の計時を行なうタイマー部をさらにそなえ、前記判定部は、前記複数の信号線の各々から入力される信号の電圧レベルが、前記タイマー部による前記所定期間の計時の間、いずれも前記所定の閾値以上である場合に、前記他のデバイスにより前記バスが使用されていない状態であると判定することを特徴とする、請求項9記載の情報処理装置。

請求項11

前記バスは、2線式シリアルバスであり、前記判定部は、前記他のデバイスにより前記バスが使用されていない状態を検出した後、前記他のデバイスによる前記バスの使用開始のタイミングに応じて、前記複数の信号線のうちのデータ信号線及びクロック信号線の順で、各信号線から入力される信号の電圧レベルが前記所定の閾値未満であるか否かの判定を行なうことを特徴とする、請求項9又は請求項10記載の情報処理装置。

請求項12

前記デバイスが前記切替部に接続されたことを検知する検知部をさらにそなえ、前記判定部は、前記検知部により前記デバイスが前記切替部に接続されたことが検知された場合に、前記他のデバイスにより前記バスが使用されていない状態の検出を開始することを特徴とする、請求項9〜11のいずれか1項記載の情報処理装置。

請求項13

前記切替部は、前記複数の信号線について個別に前記デバイスとの間の接続の切り替えを行なう複数のスイッチをそなえ、前記切替制御部は、前記判定部により検出された信号線に対応するスイッチに対して、前記切替制御を行なうことを特徴とする、請求項8〜12のいずれか1項記載の情報処理装置。

請求項14

前記判定部及び前記切替制御部のうちの少なくとも一方は、一以上の論理回路をそなえることを特徴とする、請求項8〜13のいずれか1項記載の情報処理装置。

請求項15

バスに対するデバイスの接続制御を行なう接続制御装置における接続制御方法であって、前記バスに含まれる複数の信号線の各々から入力される信号の電圧レベルが所定の閾値未満であるか否かを判定し、前記バスと前記デバイスとの間に介装され前記複数の信号線の各々と前記デバイスとの間の接続の切り替えを行なう切替部に対して、前記信号の電圧レベルが前記所定の閾値未満であると判定された信号線を前記デバイスに接続させるように切替制御を行なう、ことを特徴とする、接続制御方法。

請求項16

前記判定する処理において、前記各信号の電圧レベルに基づいて、前記バスに接続された他のデバイスにより前記バスが使用されていない状態を検出した場合に、前記信号線ごとに前記信号の電圧レベルが所定の閾値未満であるか否かの判定を行なうことを特徴とする、請求項15記載の接続制御方法。

請求項17

前記判定する処理において、前記複数の信号線の各々から入力される信号の電圧レベルが、所定期間の計時の間、いずれも前記所定の閾値以上である場合に、前記他のデバイスにより前記バスが使用されていない状態であると判定することを特徴とする、請求項16記載の接続制御方法。

請求項18

前記バスは、2線式シリアルバスであり、前記判定する処理において、前記他のデバイスにより前記バスが使用されていない状態を検出した後、前記他のデバイスによる前記バスの使用開始のタイミングに応じて、前記複数の信号線のうちのデータ信号線及びクロック信号線の順で、各信号線から入力される信号の電圧レベルが前記所定の閾値未満であるか否かの判定を行なうことを特徴とする、請求項16又は請求項17記載の接続制御方法。

請求項19

前記デバイスが前記切替部に接続されたことを検知し、前記判定する処理において、前記デバイスが前記切替部に接続されたことが検知された場合に、前記他のデバイスにより前記バスが使用されていない状態の検出を開始することを特徴とする、請求項16〜18のいずれか1項記載の接続制御方法。

請求項20

前記切替部は、前記複数の信号線について個別に前記デバイスとの間の接続の切り替えを行なう複数のスイッチをそなえ、前記切替制御を行なう処理において、前記判定する処理により検出された信号線に対応するスイッチに対して、前記切替制御を行なうことを特徴とする、請求項15〜19のいずれか1項記載の接続制御方法。

技術分野

0001

本発明は、接続制御装置情報処理装置、及び接続制御方法に関する。

背景技術

0002

サーバパーソナルコンピュータ等の情報処理装置では、I2C(登録商標バスに類する2線式シリアルバスが用いられることがある。2線式シリアルバスは、例えば比較的低速な周辺機器等のデバイスを接続するために用いられる。
2線式シリアルバスへデバイスを有するユニット活線挿入する場合、ユニット内部の信号線コンデンサ成分(浮遊容量)により、ごく短い時間(例えば数ns)ではあるが、バス線からユニットの端子側電流が流れるという現象が発生することがある。

0003

図14は、バス線へユニットを活線挿入したときのユニット内部の浮遊容量によるバス線への影響を説明する図である。図14に示すように、ユニットは、内部回路に依存した浮遊容量を有する。バス線は、プルアップ抵抗により所定の電圧レベルに維持されるが、バス線にユニットが活線挿入されると、バス線からユニットの浮遊容量に対するチャージ電流iが流れる。このとき、バス線からユニットへの電流iの流出により瞬間的にバス線の電圧レベルが低下するため、2線式シリアルバスに接続された他のデバイスが誤動作する可能性がある。

0004

2線式シリアルバスへのユニットの追加による他のデバイスの誤動作を防ぐため、例えば以下の手法が知られている。
図15及び図16は、I2Cバスを有する情報処理装置100及び100′の構成例を示す図である。
はじめに、図15に示す例を説明する。図15に示すように、情報処理装置100は、MPU(Micro Processing Unit)120、I2Cバスコントローラ130、IO_PORT入力110、IO_PORT出力111、並びに、バススイッチ140a及び140bを備える。また、情報処理装置100は、プルアップ抵抗150及び160、コネクタ170、電源供給部180、並びに、I2Cデバイス210−2及び210−3を備える。さらに、追加ユニット200は、I2Cデバイス210−1、電源部220、及び、コネクタ230を備える。

0005

MPU120は、I2Cデバイス210−1〜210−3(以下、I2Cデバイス210−1〜210−3を区別しない場合には、単にI2Cデバイス210という)の監視及び制御を行なうプロセッサである。MPU120は、ローカルバス310を介してIO_PORT入力110、IO_PORT出力111、及び、I2Cバスコントローラ130に接続される。

0006

IO_PORT入力110は、情報処理装置100に追加ユニット200が実装されたことを検出する。ここで、IO_PORT入力110は、プルアップ抵抗160により所定の電圧レベルに維持された実装信号線340を介して、コネクタ170に接続される。また、追加ユニット200のコネクタ230には、GND接続接地)された実装信号線420が接続される。コネクタ170がコネクタ230に接続されると、実装信号線340が実装信号線420を介してGND接続する。このため、IO_PORT入力110は、実装信号線340の電圧が低下した場合に、情報処理装置100に追加ユニット200が実装されたことを検出する。

0007

I2Cバスコントローラ130は、プルアップ抵抗150により所定の電圧レベルに維持されたシリアルバス(I2Cバス)320を介してI2Cデバイス210と接続され、I2Cデバイス210との間でデータ信号及びクロック信号通信制御を行なう。
BUS−SW(バススイッチ)140a及び140bは、それぞれ、シリアルバス320に含まれるデータ信号線(SDA)320a及びクロック信号線(SCL)320bとコネクタ170との間に介装されるスイッチである。バススイッチ140a及び140bは、対応する信号線とコネクタ170及び230を介して接続された追加ユニット200のI2Cデバイス210−1との間の接続を切り替える。なお、バススイッチ140a及び140bは、コネクタ170に追加ユニット200が接続されるときにはいずれもディセーブル状態になり、シリアルバス320とI2Cデバイス210−1との間の接続を開放、つまり切り離された状態にする。

0008

IO_PORT出力111は、MPU120からの制御に応じて、制御線330a及び330bを介してバススイッチ140a及び140bにおける接続の切り替えを行なう。
なお、電源供給部180は、コネクタ170に追加ユニット200のコネクタ230が接続されると、電源部220に対して電力を供給する。
上述の如く構成された情報処理装置100では、追加ユニット200が実装されると、IO_PORT110は、実装信号線340の実装信号がHighからLowに変化したことを通じて追加ユニット200の接続を検知する(図15の矢印(1)参照)。

0009

MPU120は、IO_PORT入力110を参照して追加ユニット200が接続されたことを認識すると、I2Cバスコントローラ130に対して、シリアルバス320のバスアクセスの動作を一旦停止させる(図15の矢印(2)参照)。
また、MPU120は、シリアルバス320が停止している間に、IO_PORT出力111を制御してバススイッチ140a及び140bをイネーブルに切り替える(図15の矢印(3)参照)。これにより、バススイッチ140a及び140bが閉じて、SDA320aと追加ユニット200のSDA410aとが導通するとともに、SCL320bと追加ユニット200のSCL410bとが導通する。

0010

バススイッチ140a及び140bがイネーブルに切り替えられると、I2Cバスコントローラ130は、バスアクセスの動作を再開し、追加ユニット200のI2Cデバイス210−1へのバスアクセスを実施する(図15の矢印(4)参照)。
以上の動作により、MPU120は、シリアルバス320のバスアクセスを一旦停止させて、シリアルバス320へ追加ユニット200を接続させる。これにより、追加ユニット200の信号線のコンデンサ成分(浮遊容量)による、バス線への追加ユニット200の接触時のノイズ(電圧低下)の影響を抑えることができる。つまり、追加ユニット200をコネクタ170に接続した際に発生する電圧低下のノイズは、ディセーブル状態のバススイッチ140a及び140bにより分離されるため、シリアルバス320には影響を及ぼさない。

0011

次に、図16に示す例を説明する。図16に示すように、情報処理装置100′は、図15に示す情報処理装置100と同様の構成を備えるが、IO_PORT出力111、並びに、バススイッチ140a及び140bの代わりに、I2Cバスマルチプレクサ112を備える点が異なる。
I2Cバスマルチプレクサ112は、シリアルバス320とI2Cデバイス210及びコネクタ170との間に介装されるI2Cデバイスである。なお、I2Cバスマルチプレクサ112としては、NXP製PCA9542等が挙げられる。

0012

I2Cバスマルチプレクサ112は、情報処理装置100′内部のI2Cデバイス210−2及び210−3用のチャネル1と、追加ユニット200のI2Cデバイス210−1用のチャネル2との間で、シリアルバス320のチャネル切替を行なう。具体的には、I2Cバスマルチプレクサ112は、バスがビジー状態でないタイミングでチャネル切替を行なう。なお、I2Cバスマルチプレクサ112は、内部にレジスタを備え、I2Cコントローラ130を介してMPU120によりチャネル切替を示す値がレジスタに書き込まれると、バスがビジー状態でないタイミングの検出を開始する。

0013

上述の如く構成された情報処理装置100′では、追加ユニット200が実装されると、IO_PORT110は、情報処理装置100と同様に追加ユニット200の接続を検知する(図16の矢印(1)参照)。
MPU120は、追加ユニット200の接続の検出後、追加ユニット200へのアクセに先立ち、シリアルバス320を介して、I2Cバスマルチプレクサ112の内部レジスタに対してチャネル切替制御を行なう(図16の矢印(2′)参照)。

0014

I2Cバスマルチプレクサ112は、内部レジスタの値に基づき、バスがビジー状態でないタイミングでチャネル1からチャネル2への切り替えを行なう(図16の矢印(3′)参照)。
I2Cバスマルチプレクサ112によりチャネルが切り替えられると、I2Cバスコントローラ130は、追加ユニット200のI2Cデバイス210−1へのバスアクセスを実施する(図16の矢印(4)参照)。

0015

以上の動作により、I2Cバスマルチプレクサ112は、バスがビジー状態でないときに、チャネルを切り替えてシリアルバス320へ追加ユニット200を接続させる。これにより、図15に示す例と同様に、追加ユニット200の信号線のコンデンサ成分(浮遊容量)による、バス線への追加ユニット200の接触時のノイズ(電圧低下)の影響を抑えることができる。つまり、追加ユニット200をコネクタ170に接続した際に発生する電圧低下のノイズは、I2Cバスマルチプレクサ112により分離されるため、シリアルバス320には影響を及ぼさない。

0016

なお、関連する技術として、システムオンライン稼働中でのモジュール交換手法が知られている(例えば、特許文献1参照)。この技術では、モジュールの挿入/抜去のときに発生するノイズをバスに接続された他のモジュールが受信しても誤動作しないタイミングで、バススイッチがモジュールの接続/切り離しを行なう。
ここで、ノイズを他のモジュールが受信しても誤動作しないタイミングとしては、図17に示す例が挙げられる。図17は、バスへのモジュールの接続又は切り離しのタイミングを説明する図である。例えばパラレルバスでは、他のモジュールは、バスクロック立ち上がりのタイミングでデータを受け取る。換言すれば、他のモジュールは、追加モジュールをバスへ接続した際にノイズが発生したとしても、バスクロックに同期してデータを受け取るときにこのノイズが消滅していれば、ノイズの影響を受けずにデータ(図17のデータ“B”)を受け取ることができる。

0017

また、関連する他の技術として、バスとユニットとの間に介装されたスイッチにより、バス又はユニットの状態に応じて、バス及びユニットの接続状態を切り替える技術が知られている(例えば、特許文献2及び3参照)。
さらに、コンピュータ本体のバスの電位レベルを制御し、拡張ユニット側のバスと等しい電位レベルにすることで、バスサイクル実行状態のときに、拡張ユニットとのバス接続を可能とする技術が知られている(例えば、特許文献4参照)。

先行技術

0018

特開平9−44280号公報
特開2008−197752号公報
特表2004−528627号公報
特開平9−237140号公報

発明が解決しようとする課題

0019

図15に示す情報処理装置100では、MPU120は、I2Cバスコントローラ130に対するソフトウェアによる制御により、I2Cバス320の動作を停止させる。本来、I2Cバス320のような共有バスは、常にデバイスへアクセスできる状態であることが望ましいが、情報処理装置100においては、共有バスへの追加ユニット200の接続の際に、他のデバイス210に対して継続アクセスができなくなる。

0020

また、図16に示す情報処理装置100′では、I2Cバスマルチプレクサ112が備えられることでI2Cバス320が分岐バス構成が複雑になる。MPU120は、複雑なバス構成へ追加ユニット200を追加するために、I2Cバスマルチプレクサ112に対してソフトウェアによるチャネル切替制御を行なう。従って、情報処理装置100′では、図15に示す情報処理装置100と同様の問題に加え、MPU120によるチャネル切替制御において処理の遅延が発生するという問題もある。

0021

さらに、図17を参照して説明した技術は、パラレルバスに適用されるものである。仮に、当該技術をI2C(シリアル)バスに適用したとしても、追加するモジュールの接続に伴いクロック信号にノイズが発生した場合には、他のモジュールは誤ってデータを取りこんでしまう可能性がある。
なお、上述した、バス又はユニットの状態に応じてスイッチによりバス及びユニットの接続状態を切り替える技術では、ユニットを接続する際に発生するノイズの影響を抑えることについては考慮されていない。

0022

また、コンピュータ本体のバスの電位レベルを制御し、拡張ユニット側のバスと等しい電位レベルにする技術では、ソフトウェアによる複雑な制御が行なわれるため、拡張ユニットの接続処理の遅延が発生するという問題がある。
以上のように、上述した技術では、デバイスの接続の際にバスは種々の影響を受ける。
1つの側面では、本発明は、デバイスの接続の際にバスが受ける影響を低減させることを目的とする。

0023

なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。

課題を解決するための手段

0024

本件の接続制御装置は、バスに対するデバイスの接続制御を行なう接続制御装置であって、前記バスに含まれる複数の信号線の各々から入力される信号の電圧レベルが所定の閾値未満であるか否かを判定する判定部と、前記バスと前記デバイスとの間に介装され前記複数の信号線の各々と前記デバイスとの間の接続の切り替えを行なう切替部に対して、前記判定部により前記信号の電圧レベルが前記所定の閾値未満であると判定された信号線を前記デバイスに接続させるように切替制御を行なう切替制御部と、をそなえる。

発明の効果

0025

第1又は第2実施形態によれば、デバイスの接続の際にバスが受ける影響を低減させることができる。

図面の簡単な説明

0026

第1実施形態に係る情報処理装置の構成例を示す図である。
図1に示すI2Cコントローラの構成例を示す図である。
図2に示すBUS−SW制御部の構成例を示す図である。
図2に示すシリアルバスへ追加ユニットを活線挿入したときのシリアルバスの電圧レベルを説明する図である。
図2に示すシリアルバスへ追加ユニットを活線挿入したときのシリアルバスの電圧レベルを説明する図である。
図2に示すシリアルバスの通信状態遷移を説明する図である。
図2に示すBUS−SW制御部の詳細な構成例を示す図である。
図7に示すBUS−SW制御部における各部の状態の一例を示すタイムチャートである。
図1に示すI2Cコントローラの動作例を説明するフローチャートである。
図1に示すI2Cコントローラの動作例を説明する図である。
図2に示すシリアルバス、実装信号線、及びBUS−SW ENABLEの状態の一例を示すタイムチャートである。
第2実施形態に係る情報処理装置の構成例を示す図である。
図12に示すI2Cコントローラの構成例を示す図である。
バス線へユニットを活線挿入したときのユニット内部の浮遊容量によるバス線への影響を説明する図である。
I2Cバスを有する情報処理装置の構成例を示す図である。
I2Cバスを有する情報処理装置の構成例を示す図である。
バスへのモジュールの接続又は切り離しのタイミングを説明する図である。

実施例

0027

以下、図面を参照して実施の形態を説明する。
〔1〕第1実施形態
〔1−1〕情報処理装置の説明
図1は、第1実施形態に係る情報処理装置1の構成例を示す図である。図1に示すように、情報処理装置1は、I2Cコントローラ50、Central Processing Unit(CPU)51、メモリ52、並びに、I2Cデバイス21−2及び21−3を備える。

0028

CPU(プロセッサ)51は、種々の制御や演算を行なう処理装置である。CPU51は、メモリ52又は図示しないRead Only Memory(ROM)等に格納されたプログラムを実行することにより、種々の機能を実現する。なお、CPU51は、メモリ52及びI2Cコントローラ50とそれぞれシステムバスを介して接続される。
メモリ52は、種々のデータやプログラムを一時的に格納する記憶装置であって、CPU51がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。なお、メモリ52としては、例えばRandom Access Memory(RAM)等の揮発性メモリが挙げられる。

0029

I2Cコントローラ50は、2線式のシリアルバスの一例であるI2Cバスを介して、I2Cデバイス21−2及び21−3に対する各種制御を行なう装置である。また、第1実施形態に係るI2Cコントローラ50は、I2Cデバイス21−1を備える追加ユニット(I2Cユニット)20をI2Cバスに接続させるために、後述する各種制御を行なう。例えば、I2Cコントローラ50は、I2Cデバイス21を含む情報処理装置1の監視を行なう監視装置であってもよい。

0030

I2Cデバイス21−1〜21−3(I2Cデバイス21−1〜21−3を区別しない場合には、単にI2Cデバイス21という)は、情報処理装置1に対して活線接続が可能なデバイスである。例えば、I2Cデバイス21としては、Hard Disk Drive(HDD)又はSolid State Drive(SSD)等の記憶装置のほか、ファンセンサ、電源等の制御装置、又は、監視装置等、I2Cに準拠した種々のデバイスが挙げられる。

0031

〔1−2〕I2Cコントローラの説明
次に、図2を参照してI2Cコントローラ50の構成を説明する。
図2は、図1に示すI2Cコントローラ50の構成例を示す図である。
図2に示すように、I2Cコントローラ50は、BUS−SW(バススイッチ)制御部10、MPU2、I2Cバスコントローラ3、バススイッチ4a及び4b、プルアップ抵抗5及び6、コネクタ7、電源供給部8、並びに、クロック発振器9を備える。

0032

また、追加ユニット20は、図15又は図16に示す追加ユニット200と同様の構成であり、I2Cデバイス21−1、電源部22、及び、コネクタ23を備える。
MPU2は、図示しないROM等に格納されたファームウェアを実行することにより種々の制御を実行するプロセッサである。例えば、MPU2は、ローカルバス31を介してI2Cバスコントローラ3に接続され、I2Cデバイス21−1〜21−3の監視及び制御を行なう。

0033

I2Cバスコントローラ3は、プルアップ抵抗5により所定の電圧レベルに維持されたシリアルバス(バス)32を介してI2Cデバイス21と接続され、MPU2からの制御を受けてI2Cデバイス21との間でデータ信号及びクロック信号の通信制御を行なう。
つまり、図2に示すように、シリアルバス32に含まれるデータ信号線(SDA)32a及びクロック信号線(SCL)32bは、それぞれプルアップ抵抗5に接続され、プルアップ抵抗5により各信号線の電圧が調整される。例えば、SDA32a及びSCL32bの各々は、I2Cバスコントローラ3により印加された電圧レベルがVhigh(High)又はVlow(Low)で示す所定のレベルを維持するように、プルアップ抵抗5によって調整される(図4及び図5参照)。

0034

なお、図2において図示を省略しているが、MPU2及びI2Cバスコントローラ3の少なくとも一方は、システムバスを介して図1に示すCPU51に接続され、CPU51からの要求に応じて、上記制御を行なうのである。
BUS−SW(バススイッチ,スイッチ)4a及び4bは、それぞれ、SDA32a及びSCL32bとコネクタ7との間に介装されるスイッチである。バススイッチ14a及び14bは、対応する信号線について個別に、コネクタ7及び23を介して接続された追加ユニット20(I2Cデバイス21−1)との間の接続及び切り離しの切り替えを行なう。なお、バススイッチ4a及び4bは、コネクタ7に追加ユニット20が接続されるときにはいずれもディセーブル状態になり、シリアルバス32とI2Cデバイス21−1との間の接続を開放、つまり切り離された状態にする。

0035

従って、バススイッチ4a及び4bは、シリアルバス32とI2Cデバイス21−1との間に介装され複数の信号線(SDA32a及びSCL32b)の各々とI2Cデバイス21との間の接続の切り替えを行なう切替部4の一例である。なお、ここでは、切替部4がバススイッチ4a及び4bである例を説明したが、これに限定されるものではなく、複数の信号線とI2Cデバイス21との間の接続の切り替えを個別に行なうことができれば、切替部4が一のスイッチ素子により実現されてもよい。

0036

コネクタ7は、追加ユニット20のコネクタ23と嵌合等によって接触することにより、I2Cコントローラ50と追加ユニット20とを接続する。具体的には、コネクタ7は、I2Cコントローラ50側のSDA32a、SCL32b、実装信号線34、電源供給部8と、追加ユニット20側のSDA41a、SCL41b、実装信号線42、電源部22と、をそれぞれ接触(導通)させる。

0037

実装信号線34は、バススイッチ制御部10とコネクタ7とを接続する信号線であり、プルアップ抵抗6により所定の電圧レベルに維持される。一方、追加ユニット20のコネクタ23には、GND接続(接地)された実装信号線42が接続されている。
電源供給部8は、コネクタ7に追加ユニット20のコネクタ23が接続されると、電源部22に対して電力を供給する。

0038

クロック発振器9は、バススイッチ制御部10においてサンプリングを行なうために用いられるクロック信号を生成するものである。なお、クロック発振器9が生成するクロック信号は、SDA32aにおけるクロック信号よりも十分に早い(例えば十倍程度の)周波数である。なお、クロック発振器9としては、LC回路を用いた発振器や水晶発振器等が挙げられる。

0039

バススイッチ制御部(接続制御装置)10は、シリアルバス32に対するI2Cデバイス21の接続制御を行なう装置である。バススイッチ制御部10は、図2に示すように、シリアルバス32から分岐したSDA32a及びSCL32b、実装信号線34、並びに、クロック発振器9からのクロック信号線35が接続され、各信号線からの信号を入力信号とする。また、バススイッチ制御部10は、図2に示すように、バススイッチ4a及び4bの各々とBUS−SW ENABLE(バススイッチイネーブル;以下、制御線という)33a及び33bを介して接続され、バススイッチ4a及び4bを制御する。

0040

以下、図3図6を参照してバススイッチ制御部10の構成を説明する。図3は、図2に示すバススイッチ制御部10の構成例を示す図であり、図4及び図5は、それぞれ、図2に示すシリアルバス32へ追加ユニット20を活線挿入したときのシリアルバス32の電圧レベルを説明する図である。図6は、図2に示すシリアルバス32の通信状態の遷移を説明する図である。

0041

図3に示すように、バススイッチ制御部10は、実装信号検知部11、タイマー部12、クロック信号/データ信号レベル判定部13、BUS−SW ENABLE(バススイッチイネーブル)設定部14を備える。
実装信号検知部(検知部)11は、実装信号線34からの実装信号を入力され、I2Cユニット20(I2Cデバイス21)がコネクタ7(バススイッチ4a及び4b)に接続されたことを検知する。例えば、コネクタ7がコネクタ23に接続されると、実装信号線34は、実装信号線42を介してGND接続する。実装信号検知部11は、実装信号線42の電圧が低下したことを検知すると、I2Cデバイス21がバススイッチ4a及び4bに接続されたことを検知する。

0042

タイマー部12は、所定期間の計時を行なうものである。タイマー部12としては、例えばカウンター回路のほか、計時が可能な種々の回路を用いることができる。
バススイッチイネーブル設定部(切替制御部)14は、切替部4に対して、後述する信号レベル判定部13により信号の強度(電圧レベル)が所定の閾値未満であると判定された信号線をI2Cデバイス21に接続させるように切替制御を行なう。具体的には、バススイッチイネーブル設定部14は、信号レベル判定部13により検出されたSDA32a又はSCL32bに対応するバススイッチ4a又は4bに対して、切り離し状態から接続状態に切り替えさせる制御を行なう。

0043

例えば、バススイッチイネーブル設定部14は、追加ユニット20がI2Cコントローラ50に接続されたときは、制御線33a及び33bの電圧レベルをLow(ディセーブル)にすることで、バススイッチ4a及び4bを開放し、切り離し状態にする。一方、バススイッチイネーブル設定部14は、信号レベル判定部13からの指示に応じて、制御線33a又は33bの電圧レベルをHigh(イネーブル)にすることで、バススイッチ4a又は4bを閉じ、接続状態にする。

0044

クロック信号/データ信号レベル判定部(信号レベル判定部,判定部)13は、追加ユニット20をシリアルバス32へ接触させる際に発生する、追加ユニット20内の信号線のコンデンサ成分によるノイズの大きさが最小限となるタイミングを検出する。
具体的には、信号レベル判定部13は、実装信号検知部11によりI2Cデバイス21がバススイッチ4a及び4bに接続されたことが検知されると、SDA32a及びSCL32bの各々から入力される信号の電圧レベルを監視する。そして、信号レベル判定部13は、SDA32a及びSCL32bの各々から入力される信号の電圧レベルが所定の閾値(Vthreshold)未満であるか否かを判定する。より具体的に、信号レベル判定部13は、クロック発振器9から入力されるクロック信号を用いて、SDA32a及びSCL32bから入力される信号をそれぞれサンプリングする。そして、信号レベル判定部13は、サンプリング結果から、各信号の電圧レベルがHigh及びLowのいずれの状態であるかを判別する。

0045

以下、図4及び図5を参照して、シリアルバス32へ追加ユニット20を活線挿入するタイミングと、シリアルバス32の電圧レベルとの関係を説明する。
図4に示すように、シリアルバス32のうちのSDA32a又はSCL32bの信号の電圧レベルがVhighである場合、図4中“接触”のタイミングでシリアルバス32に追加ユニット20が接続されると、浮遊容量による電圧低下の振れが大きい。図4に示す例では、SDA32a又はSCL32bの電圧レベルは、閾値(Vthreshold)の近傍にまで降下しているため、システムバス32に接続された他のI2Cデバイス21が誤動作する可能性がある。

0046

これに対し、図5に示すように、SDA32a又はSCL32bの信号の電圧レベルがVlowである場合、もともと電圧レベルがLowの状態であるため、浮遊容量に起因する電圧低下が発生しても他のI2Cデバイス21で誤動作は生じない。つまり、バス線の電圧レベルがLowの状態のときに、システムバス32に追加ユニット20を接続することで、追加ユニット20のコンデンサ成分によるノイズの影響を抑えることができる。

0047

そこで、信号レベル判定部13は、上述のようにバス線の電圧レベルがLowになったタイミングを判定し、Lowになったバス線(SDA32a又はSCL32b)について、バススイッチイネーブル設定部14に切替制御を指示する。
ここで、シリアルバス32の一例としてのI2Cバスは、図6に示すように、通信過程で、バスアクセスとバスアクセスとの合間であるバスフリータイム(Bus free time between STOP and STARTconditions;以下、Tbufという)の状態に遷移する。Tbufは、STOPコンディションとSTARTコンディションとの間の時間であり、この間、シリアルバス32に接続されたI2Cデバイス21−2及び21−3は、シリアルバス32を使用しない。

0048

I2CバスのSTARTコンディションは、図6に示すように、SCL32bがHighの状態のときに、SDA32aがHighの状態からLowに落ちるときの状態であり、I2Cバスにおけるバスアクセスの開始を表す。一方、I2CバスのSTOPコンディションは、図6に示すように、SCL32bがHighの状態のときに、SDA32aがLowの状態からHighに上がるときの状態であり、I2Cバスにおけるバスアクセスの終了を表す。

0049

図6に示すように、SDA32a及びSCL32bは、STARTコンディションにおいて、順にHighの状態からLowに落ちる。
そこで、信号レベル判定部13は、Tbufを検出し、その後のSTARTコンディションを検出することで、SDA32a及びSCL32bの電圧レベルについて、HighからLowへの切り替わりを、順に検出することができる。そして、信号レベル判定部13は、Lowへの切り替わりを検出したSDA32a及びSCL32bについて、個別にバススイッチ4a及び4b(バススイッチイネーブル設定部14)に対して切替制御を行なうことができる。

0050

すなわち、信号レベル判定部13は、SDA32a及びSCL32bの各々から入力される信号の電圧レベルが、タイマー部12による所定期間の計時の間、いずれも所定の閾値(Vthreshold)以上である場合に、Tbufの期間であると判定する。ここで、Tbufは、I2Cバス固有の期間であり、SCL32bのクロック信号におけるHighの期間よりも長い。従って、タイマー部12には、計時する期間として、予めTbufと同一或いは略同一、又はTbuf以上の期間が設定されることが好ましい。

0051

〔1−3〕バススイッチ制御部の詳細な構成例
次に、図7及び図8を参照して、バススイッチ制御部10の詳細な構成例を説明する。図7は、図2に示すバススイッチ制御部10の詳細な構成例を示す図であり、図8は、図7に示すバススイッチ制御部10における各部の状態の一例を示すタイムチャートである。図7に示すように、バススイッチ制御部10は、例えば複数の回路素子を用いて、ハードウェアにより実現される。

0052

実装信号検知部11は、実装信号線34に接続される抵抗11a、増幅器11b、及びコンデンサ11cを備える。
タイマー部12は、カウンター回路12a及びOR回路10cを備える。
信号レベル判定部13は、プルアップ抵抗10a、10e、及び10k、AND回路10b、10f、及び10l、OR回路10i、NAND回路10j、並びにDelay−Flip Flop(ディレイフリップフロップ;D−FF)13a〜13fを備える。

0053

バススイッチイネーブル設定部14は、プルアップ抵抗10h及び10n、OR回路10g及び10m、並びにD−FF14a及び14bを備える。
なお、図7において、“RESET”は、例えばMPU2から送信されるリセット信号線36であり、実装信号線34がLowに落ちると、Highに維持される。
以下、クロック発振器9からのクロック信号線35、実装信号検知部11からの実装信号線34、リセット信号線36、SCL32b、SDA32a、図7に示す(1)〜(11)の各部、並びに制御線33a及び33bの状態の一例を、図8を参照して説明する。なお、図8においては、制御線33aを“BUS−SW1_ENABLE”と表記し、制御線33bを“BUS−SW2_ENABLE”と表記する。

0054

なお、クロック発振器9からのクロック信号線35は、サンプリング用のクロック信号を出力し、バススイッチ制御部10内の各回路素子は、クロック信号に同期して動作を行なう。
タイミングt1において、実装信号線34がLow、つまり追加ユニット20がシステムバス32に接続されると、リセット信号線36がHighに維持される(タイミングt2)。また、タイミングt3において、D−FF13eの出力(9)がHighからLowに遷移するとともに、D−FF13fの出力(10)がLowからHighに遷移する。

0055

タイミングt4において、SDA32aの電圧レベルがLowからHighに遷移すると、D−FF13aの出力(2)がHighになるとともに、D−FF13c及び13eの出力(6)及び(10)がそれぞれLowになる(タイミングt5)。なお、D−FF13a、13c、及び13eは、それぞれSDA32aの電圧レベルを監視するD−FFである。

0056

次いで、タイミングt6において、SCL32bの電圧レベルがLowからHighに遷移すると、D−FF13bの出力(1)がHighになる(タイミングt7)。また、タイミングt7において、D−FF13a及び13bの出力のANDをとるAND回路10bの出力(3)がHighになる(タイミングt7)。なお、D−FF13b、13d、及び13fは、それぞれSCL32bの電圧レベルを監視するD−FFである。

0057

なお、タイミングt6において、SDA32aの電圧レベルがHighの状態で、SCL32bの電圧レベルがHighに遷移したため(STOPコンディション)、システムバス32はバスフリータイムの状態になっている。
カウンター回路12aでは、AND回路10bの出力(3)がHighになったことで、“*LOAD”端子にHighが入力される。そして、カウンター回路12aは、タイミングt7において、Tbufの期間のカウントを開始する。

0058

カウンター回路12aによる所定期間の計時が終了し、AND回路10bの出力(3)がHighである時間がTbuf以上であった場合には、カウンター回路12aの出力(4)がHighに遷移する(タイミングt8)。また、出力(4)がHighになったことにより、カウンター回路12aの後段のD−FF13dの出力(5)がHighに遷移する(タイミングt9)。

0059

ここで、タイミングt10において、SDA32aの電圧レベルがHighからLowに遷移すると、つまりSTARTコンディションになると、D−FF13a及びAND回路10bの出力(2)及び(3)がLowになる(タイミングt11)。また、タイミングt11において、D−FF13c及び13eの出力(6)及び(10)がHighになるとともに、D−FF13c及び13dのANDをとるAND回路10fの出力(7)がHighになる。

0060

また、AND回路10fの出力(7)がHighになったことで、D−FF14aの出力(8)がHighになり、制御線33aの電圧レベルがHighになる(タイミングt12)。すなわち、バススイッチイネーブル設定部14によりバススイッチ4aが接続状態に切替制御され、I2Cデバイス21−1のSDA42aがシリアルバス32のSDA32aに接続される。

0061

次いで、タイミングt13において、SCL32bの電圧レベルがHighからLowに遷移すると、D−FF13b及び13dの出力(1)及び(5)がLowに遷移する(タイミングt14)。また、タイミングt14において、D−FF13c及び13dのANDをとるAND回路10fの出力(7)がLowになる。さらに、タイミングt14において、D−FF13fの出力(9)がHighに遷移するとともに、D−FF13e及び13fのANDをとるAND回路10lの出力(11)がHighになる。

0062

また、AND回路10lの出力(11)がHighになったことで、D−FF14bの出力がHighになり、制御線33bの電圧レベルがHighになる(タイミングt14)。すなわち、バススイッチイネーブル設定部14によりバススイッチ4bが接続状態に切替制御され、I2Cデバイス21−1のSCL41bがシリアルバス32のSCL32bに接続される。

0063

以上のように、第1実施形態に係るバススイッチ制御部10によれば、信号レベル判定部13及びバススイッチイネーブル設定部14が論理回路により実現される。従って、I2Cバスの動作の中で、追加ユニット20をシリアルバス32に接続する機会をハードウェアによって高速に検出し接続を行なうため、図15を参照して説明したソフトウェアによる制御と比べ、I2Cバスコントローラ3の動作を停止しなくてよい。さらに、図16を参照して説明したI2Cバスマルチプレクサ112のように、バス分岐がなくなるため、バス構成が複雑になることを抑止できる。また、ハードウェアによる制御は、MPU2の性能や負荷に依存するソフトウェアによる制御と比べて、安定した動作を実現することができる。

0064

なお、図17を参照して説明したパラレルバスに関する技術をI2Cバスに適用した場合、I2Cバスにはバス制御信号がないため、I2Cデバイス21は、発生したノイズが原因でSTARTコンディション又はSTOPコンディションと誤認識する可能性がある。これに対し、第1実施形態に係るバススイッチ制御部10によれば、バス線の電圧レベルがLowの状態のときに、システムバス32に追加ユニット20を接続するため、I2Cデバイス21は、発生するノイズが原因でシリアルバス32の状態を誤認識することがない。

0065

なお、図7では、信号レベル判定部13及びバススイッチイネーブル設定部14の双方が論理回路により実現される例を示したが、これに限定されるものではない。例えば、信号レベル判定部13及びバススイッチイネーブル設定部14のうちの少なくとも一方が論理回路をそなえる構成としてもよい。この場合でも、信号レベル判定部13及びバススイッチイネーブル設定部14の双方がソフトウェアによる制御により実現される場合と比べて、安定した動作を実現することができる。

0066

〔1−4〕第1実施形態の動作例
次に、上述の如く構成された第1実施形態に係るI2Cコントローラ50における、シリアルバス32への追加ユニット20(I2Cデバイス21−1)の接続制御の動作例を、図9図11を参照して説明する。図9は、図1に示すI2Cコントローラ50の動作例を説明するフローチャートであり、図10は、図1に示すI2Cコントローラ50の動作例を説明する図である。図11は、図2に示すシリアルバス32、実装信号線34、及び制御線33の状態の一例を示すタイムチャートである。なお、図9においては、制御線33aを“BUS−SW1_ENABLE”と表記し、制御線33bを“BUS−SW2_ENABLE”と表記する。

0067

はじめに、図9に示すように、バススイッチ制御部10により、追加ユニット20がコネクタ7に接続されたことに起因する実装信号が検出されたか否かが判定される(ステップS1)。実装信号が検出されなかったと判定された場合(ステップS1のNoルート)、実装信号が検出されるまでステップS1の判定が行なわれる。
一方、実装信号が検出されたと判定された場合(ステップS1のYesルート;図10の矢印(1)及び図11のタイミングT1参照)、バススイッチ制御部10により、バスフリータイム(Tbuf)が検出されたか否かが判定される(ステップS2)。つまり、バススイッチ制御部10は、シリアルバス32のSDA32a及びSCL32bの電圧レベルを監視し、両方とも一定時間(Tbuf)High状態であるバスフリータイム(バスアクセスとバスアクセスとの合間)の検出が行なわれる。バススイッチ制御部10により、Tbufが検出されなかったと判定された場合(ステップS2のNoルート)、Tbufが検出されるまでステップS2の判定が行なわれる。

0068

一方、Tbufが検出されたと判定された場合(ステップS2のYesルート;図10の(2)及び図11のタイミングT1〜T2参照)、バススイッチ制御部10により、SDA32aの電圧レベルがHighからLowに遷移したことが検出されたか否かが判定される(ステップS3)。つまり、バススイッチ制御部10は、バスフリータイムを検出すると、I2CバスのSTARTコンディションの発生を検出する。バススイッチ制御部10により、SDA32aの電圧レベルがHighからLowに遷移したことが検出されなかったと判定された場合(ステップS3のNoルート)、遷移したことが検出されるまでステップS3の判定が行なわれる。

0069

これに対し、ステップS3において、SDA32aの電圧レベルがHighからLowに遷移したことが検出されたと判定された場合(ステップS3のYesルート;図10の矢印(3)及び図11のタイミングT2参照)、ステップS4に移行する。
ステップS4では、バススイッチ制御部10により、制御線33aがイネーブルにされ、バススイッチ4aが閉じられることで、SDA32aとSDA41aとが接続される(図10の矢印(4)及び(5)並びに図11のタイミングT3参照)。つまり、バススイッチ制御部10は、SDA32aがLowに維持されている状態でI2Cデバイス21−1のSDA41aをシリアルバス32に接続する。I2Cデバイス21−1は、SDA32aがLowに落ちた状態でシリアルバス32に接続されるため、追加ユニット20の端子のコンデンサ成分(浮遊容量)によるノイズの影響を抑えて接続することができる。また、これにより、I2Cバスのバスサイクルの途中ではなく、バスサイクルの先頭からI2Cデバイス21−1をシリアルバス32に接続することができる。

0070

次いで、バススイッチ制御部10により、SCL32bの電圧レベルがHighからLowに遷移したことが検出されたか否かが判定される(ステップS5)。遷移したことが検出されなかったと判定された場合(ステップS5のNoルート)、遷移したことが検出されるまでステップS5の判定が行なわれる。
これに対し、ステップS5において、SCL32bの電圧レベルがHighからLowに遷移したことが検出されたと判定された場合(ステップS5のYesルート;図10の矢印(6)及び図11のタイミングT4参照)、ステップS6に移行する。

0071

ステップS6では、バススイッチ制御部10により、制御線33bがイネーブルにされ、バススイッチ4bが閉じられることで、SCL32bとSCL41bとが接続される(図10の矢印(7)及び(8)並びに図11のタイミングT5参照)。つまり、バススイッチ制御部10は、STARTコンディションが発生した後、SCL32bがLowに維持されている状態でI2Cデバイス21−1のSCL41bをシリアルバス32に接続する。

0072

以上の処理により、I2Cコントローラ50における、シリアルバス32への追加ユニット20(I2Cデバイス21−1)の接続制御が完了する。
〔1−5〕まとめ
このように、第1実施形態に係るI2Cコントローラ50によれば、バススイッチイネーブル設定部14により、切替部4に対して、信号レベル判定部13により信号の強度(電圧レベル)が所定の閾値未満であると判定された信号線をI2Cデバイス21−1に接続させるように切替制御が行なわれる。従って、バススイッチ制御部10は、例えばLowに落ちた信号線ごとに個別に、I2Cデバイス21−1の対応するSDA41a及びSCL41bと接続することができる。これにより、I2Cコントローラ50は、システムバス32を停止させることなく、追加ユニット20の端子のコンデンサ成分によるノイズの影響を抑えることができる。つまり、I2Cデバイス21−1の各信号線を、ノイズの大きさが最小限となるタイミングでシリアルバス32に接続することができ、I2Cデバイス21の接続の際にシリアルバス32が受ける影響を低減させることができる。

0073

また、上記判定は、各信号の強度(電圧レベル)に基づいて、シリアルバス32に接続された他のI2Cデバイス21によりシリアルバス32が使用されていない状態が検出された場合に行なわれる。従って、バススイッチ制御部10は、I2CバスがSTARTコンディションになったときに、SDA32a及びSCL32bの電圧レベルがそれぞれLowに落ちたことを検出することができる。これにより、I2Cコントローラ50は、I2Cバスのバスサイクルの途中ではなく先頭から、I2Cデバイス21をシステムバス32に接続することができ、バスサイクルの途中から接続されるよりもI2Cデバイス21−1の誤作動の発生確率を低減させることができる。

0074

さらに、バススイッチ制御部10により、SDA32a及びSCL32bの各々から入力される信号の強度(電圧レベル)が、タイマー部12による所定期間の計時の間、いずれも所定の閾値以上である場合に、他のI2Cデバイス21によりシリアルバス32が使用されていない状態であると判定される。従って、バススイッチ制御部10は、バスフリータイムを確実に検出することができる。

0075

また、STARTコンディションのあと、SDA32a、SCL32bの順序で電圧レベルがLowに落ちるため、バススイッチ制御部10は、毎回決まった手順で安定してI2Cデバイス21をI2Cバスへ接続することができる。
さらに、実装信号検知部11により、I2Cデバイス21−1が切替部4に接続されたことが検知された場合に、バススイッチ制御部10によって他のI2Cデバイス21によりシリアルバス32が使用されていない状態の検出が開始される。従って、I2Cコントローラ50は、コネクタ7への追加ユニット20の接続に応じて、自律シルアルバス32へのI2Cデバイス21−1の接続を行なうことができ、利便性が高い。

0076

また、切替部4は、SDA32a及びSCL32bについて個別にSDA41a及びSCL41bとの切替制御を行なうバススイッチ4a及び4bを備える。従って、電圧レベルがLowに落ちた信号線から順に、I2Cデバイス21−1をシルアルバス32へ効率的に接続することができる。
〔2〕第2実施形態
第1実施形態においては、情報処理装置1が二つのI2Cデバイス21−2及び21−3をそなえ、情報処理装置1に一つの追加ユニット20が接続されるものとして説明したが、これに限定されるものではない。例えば、図12に示すように、情報処理装置1′に複数(例えば三つ)の追加ユニット20−1〜20−3が接続されるものとしてもよい。

0077

以下、図12及び図13を参照して、情報処理装置1′の構成例を説明する。
図12は、第2実施形態に係る情報処理装置1′の構成例を示す図であり、図13は、図12に示すI2Cコントローラ50′の構成例を示す図である。なお、図12及び図13において、図1及び図2に示す符号と同一の符号は、図1及び図2に示す構成と同一又は略同一のため、重複した説明は省略する。

0078

図12に示すように、第2実施形態に係る情報処理装置1′は、図1に示すI2Cコントローラ50に代えて、I2Cコントローラ50′を備える。なお、情報処理装置1′は、I2Cデバイス21を備えてもよい。
I2Cコントローラ50′は、I2Cデバイス21−1〜21−3を備える追加ユニット(I2Cユニット)20−1〜20−3をI2Cバスに接続させるために、I2Cコントローラ50と同様の各種制御を行なう。

0079

図13に示すように、第2実施形態に係るI2Cコントローラ50′は、追加ユニット20−1〜20−3を接続するコネクタ7の数と同数のバススイッチ制御部10、プルアップ抵抗6、切替部4、及び電源供給部8を備える。一方、I2Cコントローラ50′は、複数のコネクタ7に対して共通のMPU2、I2Cバスコントローラ3、及びクロック発振器9を備える。

0080

第2実施形態に係るI2Cコントローラ50′は、接続される複数の追加ユニット20−1〜20−3の各々について、個別に、第1実施形態において説明した各種制御を行なうのである。
これにより、第2実施形態に係る情報処理装置1′(I2Cコントローラ50′)によっても、第1実施形態と同様の効果を奏することができる。

0081

〔3〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、上述した第1及び第2実施形態では、実装信号検知部11は、実装信号線34がGND接続したことを検出すると、追加ユニット20が実装されたことを検知するものとして説明したが、これに限定されるものではない。実装信号検知部11による追加ユニット20が実装されたことの検知は、既知の種々の手法により行なうことが可能であり、その詳細な説明は省略する。

0082

また、上述した第1及び第2実施形態では、シリアルバス32は、I2Cバスであるものとして説明したが、これに限定されるものではない。シリアルバス32として、他の2線式シリアルバスが用いられてもよく、また、2線式以外の複数の信号線を含むシリアルバスが用いられてもよい。シリアルバス32がいずれの場合であっても、バススイッチ制御部10は、信号の強度(電圧レベル)が所定の閾値以下になった信号線について、個別に切替部4に対して切替制御を行なわせればよい。なお、バススイッチ制御部10は、バスフリータイムの検出の手法については、他の2線式シリアルバス、又は複数の信号線を含むシリアルバスの規格に従って、適宜修正を加えればよい。

0083

さらに、上述した第1及び第2実施形態では、信号レベル判定部13は、Tbufを検出した後に各信号の電圧レベルがLowに切り替わることを検出するものとして説明したが、これに限定されるものではない。例えば、信号レベル判定部13は、バスサイクルの途中でも、電圧レベルがLowになったことを検出した場合には、LowになったSDA32a又はSCL32bについて、バススイッチ4a又は4bの接続制御を行なってもよい。これにより、I2Cコントローラ50は、Tbufの検出を待つよりも、早いタイミングで追加ユニット20(I2Cデバイス21)をシリアルバス32に接続することができる。

0084

また、上述した第1及び第2実施形態では、一つ又は三つの追加ユニット20が情報処理装置1又は1′に接続されるものとして説明したが、追加ユニット20の数はこれらに限定されるものではなく、種々増減することができる。
なお、図9に示すステップS1〜S6の処理は、シリアルバス32に接続された他のI2Cデバイス21が存在する場合に行なわれればよく、他のI2Cデバイス21が存在しない場合には、少なくともステップS4及びS6の処理(順不同)が行なわれればよい。

0085

1,1′,100,100′情報処理装置
2 MPU
3 I2Cバスコントローラ(バス制御部)
4切替部
4a,4c,4e BUS−SW1(バススイッチ,スイッチ)
4b,4d,4f BUS−SW2(バススイッチ,スイッチ)
5,6,150,160プルアップ抵抗
7,23,170,230コネクタ
8,180電源供給部
9クロック発振器
10 BUS−SW制御部(接続制御回路
10a,10e,10h,10k,10n プルアップ抵抗
10b,10d,10f,10j,10lAND回路
10c,10g,10i,10mOR回路
10jNAND回路
11実装信号検知部(検知部)
11a抵抗
11b増幅器
11cコンデンサ
12タイマー部
12aカウンター回路
13クロック信号/データ信号レベル判定部(信号レベル判定部,判定部)
13a〜13f,14a,14b D−FF
14 BUS−SW ENABLE設定部(バススイッチイネーブル設定部,切替制御部)
20,20−1〜20−3,200追加ユニット
21,21−1〜21−3 I2Cデバイス(デバイス)
22,220電源部
31,310ローカルバス
32,320シリアルバス
32a,41a,41c,41e,320a,410aデータ信号線(SDA)
32b,41b,41d,41f,320b,410bクロック信号線(SCL)
33a,33c,33e,330a BUS−SW1 ENABLE(制御線)
33b,33d,33f,330b BUS−SW2 ENABLE(制御線)
34,42,340,420 実装信号線
35 クロック信号線
36リセット信号線
50,50′ I2Cコントローラ
51 CPU
52メモリ
110 IO_PORT入力
111 IO_PORT出力
112 I2Cバスマルチプレクサ
120 MPU
130 I2Cバスコントローラ
140a BUS−SW1(バススイッチ)
140b BUS−SW2(バススイッチ)
210,210−1〜210−3 I2Cデバイス
32,320 シリアルバス

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • セイコーエプソン株式会社の「 回路装置、回路装置の判定方法および電子機器」が 公開されました。( 2020/10/29)

    【課題】切断の誤判定を防止しつつ、構成の複雑化を回避する。【解決手段】回路装置は、パケットの電流を増幅して、USB規格のバスに出力するパケット出力回路と、バスに送信されたパケットの振幅レベルが所定の期... 詳細

  • キヤノン株式会社の「 情報処理装置」が 公開されました。( 2020/10/29)

    【課題】機能ブロック間でデータの受け渡しを行う構成において、タイミング設計が容易となるように、機能ブロックに対するクロック供給を行う。【解決手段】同期関係にある複数の機能ブロックと、それぞれが、カウン... 詳細

  • 新唐科技股ふん有限公司の「 安全装置、安全方法、安全システム、及び安全設備」が 公開されました。( 2020/10/29)

    【課題】周辺デバイス間のトランザクションを保護するための方法およびシステムを提供する。【解決手段】本発明の安全装置は、インターフェースと、プロセッサーとを備え、インターフェースは、ホスト及び第2デバイ... 詳細

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ