- 締切済み
異なるクロックの装置を1つの制御回路で制御できるか?
2つの装置があって、それぞれが何らかのクロック周波数に基づいて、規則的に作動しているとします。 この2つの装置が、互いに全く関係なく別々の周波数で作動している場合、それぞれを制御する独立した回路が2つあると言えるのでしょうか? 1つの回路で2つの装置を別クロックで制御できることもあるのでしょうか? #素人なもので、そもそも「1つの回路」という定義からして怪しいのですが・・
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- nubou
- ベストアンサー率22% (116/506)
40kHzのクロックタイミングxで動いている装置Xに10Hzのクロックタイミングyで動いている装置Yがあり yの立ち上がりエッジが発生した直後一定時間YがデータをXに送るっているとする Xはyの立ち上がりエッジを検出すると自分の都合のよい時間(例えばxがLレベルがHレベルになった直後であってタイミングを切り替えてもタイミングが乱されず前期データが消えるまでに十分早い時間)にタイミングをデータ受け取り用のタイミングx’に切り替え Xはデータを受け取ったら自分の都合のよい時間(データ受け取りようタイミングx’を元のタイミングxに切り替えたときにタイミングが乱れない時間)にもとのタイミングxに戻す 回路で構成した方が文章で記述するより遙かに楽で回路も簡単に構成できる 高度な素子は全く必要がない ゲート(and、or、xor、not等) レジスタ(Dレジスタ、FF、ラッチ等) で構成できる タイミングが複雑だとromでタイミングを作るがそれは設計を手抜きする場合
- nubou
- ベストアンサー率22% (116/506)
もちろん(1)です どうするかというと 電子回路を設計する場合には ハードウェアとそれを駆動するタイミングチャートを作成します(もちろんなれてくると大規模回路でもタイミングチャートを作成せずとも設計できるようになる) 非同期の信号の受信(あるいは送信)要求をを受けた装置はその要求に対してタイミングをデータの受信(あるいは送信)ようのタイミングに切り替えます いろいろやり方はあるが わかりやすい例を示すと 通常のタイミングにマスクをかけてマスクをかけ続けていた受信(送信)ようのタイミングのマスクをはずし 受信(送信)がすめば元に戻すのです 実際はもっと簡単になる場合がほとんど 下手にやれば数ゲートの増えますが他の回路とのかねあいで増えた分は吸収されるのでほとんどゲートはふえません 最も最近の装置は皆CMOSのLSIや超LSIで構成されていてそれ一つのゲート数は軽く10万程度有るのでいい加減に設計してゲートが100増えても大したことはありません
- nubou
- ベストアンサー率22% (116/506)
「一つの回路」を一つの回路基板というのなら 同一基板に2つの装置の回路を実装すればいいのですから一つの回路で何でもできます もちろん「何でも」は回路関係のことであり癌でも直せるということではありません 実はそんなたいそうなことをしなくてもいいのです 同期しないで動いている2つの装置間のデータのやりとりは回路技術からすれば初歩中の初歩でたやすいことです 同期していた方が考えやすいしよけいなことを考えなくてすみますが同期していなくてもほとんど部品点数を増やすことなく同一コストですみます LSI化してもゲート数の差はほとんどありません 心配しなくても簡単な回路技術でカバーできます それをできない技術者は「もぐり」です 非同期の技術を電子回路技術者はしょっちゅう使っています
お礼
ありがとうございます。 素人なものでよくわからないのですが、データの受け渡しとは関係なく、ただ完全に独立のクロックで動作する装置を、1つの制御回路で実現できるか?というのを聞きたいのです・・ (1)余裕で可能 (2)理論的には可能だが通常やらない (3)不可能 のどれなんでしょうか・・
- hot-tea
- ベストアンサー率25% (20/78)
制御かどうかいいにくいのですが・・・ 私のパソコンの場合、CPUが800MHzで動作していて、マザーボードは100MHz、ハードディスクは66MHzでデータの転送などしています。各機器はその内部の周波数でもって動作していて、それぞれの間はウエイトを入れたり、相手の速さでデータを読み蓄えて自分の速さで処理しています。また、違う周波数のパソコンを複数つないで、お互いに相手のパソコンを動かしたりするのは、それなりに始めにどんなクロックでやり取りするか決めてあるので出来るのです。 また、CPUを10個20個と並列の並べて動作させる場合、おのおのクロックを別にして結果が出揃えばいっせいに答えを出すなどになると思うのですが、クロックをそろえたほうが楽でしょうね。 回路というより、各機器のクロックの話にでした。
- gamma
- ベストアンサー率56% (44/78)
一番目の問い;独立した2つの回路といって、差し支えないと思います。二つを連携して動作させることも、よくやられています。例えば、何台かのモードロックレーザーや、モードロックレーザーと加速器を同期して運転する場合は、位相のズレを検出して、フィードバックをかけて、位相を合わせています。もっとも、周波数が安定していないと大変なことにはなりますが。この方法で、100fsより短い時間差で同期をとることができます。 二番目の問い;共通の発振器の信号を細工して、複数の装置を動かすことは、よくやられています。
お礼
2番目の問いに関して、やはり共通の発振器の信号を利用するのですよね。1つの回路が2つのクロック信号源から入力を得て2つの装置を制御することはしないということで良いでしょうか
- CAW
- ベストアンサー率14% (37/257)
クロックが異なる装置の間でのデータのやり取りですね。いわゆる非同期の データ交換ですが、もちろんデータ交換は同期しているほうがはるかに 効率的なのですが、世の中非同期のほうがはるかに多いです。 そのために、プロトコルというものが存在するわけですね。 いつもお世話になっている、TCP/IPなんていうのもありますが もっとベーシックなレベルでのプロトコルもありますし、それで 非同期なデータ交換が成り立っていることもしばしばあります。
- kaitou-man
- ベストアンサー率60% (86/141)
不可能ではないでしょうが、現実的でない手間と信頼性の低下の可能性があるので、そのような設計をしたりはしないはずです。 一つの回路(制御回路も含む)がなんらかのクロックで動いているとして、それと無関係なクロックを受け取るには、シンクロナイザという機構が必要です。単純にはフリップフロップですみますが、両方の信号変化がほとんど同時だったりすると誤動作がおきます。複雑なシンクロナイザを使えば誤動作を減らせますが原理上可能性をゼロにはできません。 外部入力を受け取るなどの仕方のない場合を除いて、シンクロナイザは使わずクロックをどこかで共通にするのがよい設計です。
お礼
なるほどなるほど、なんとなくわかりました。 ありがとうございました!
全くの素人考えなのですが・・・できる気がします。 1つのクロックを用いて、装置Aはクロック検出ごとにある動作を行い、装置Bはクロック検出2回ごとにある動作を行う、など。 周波数が倍じゃなくても、装置Aがクロック3回ごと、装置Bがクロック7回ごと、など単位時間を調整すれば実現可能な気がします。 お考えの参考になれば幸いです(^^)
お礼
早速のご回答ありがとうございます。 一方のクロックに依存しない、全然関係ないクロックで回路が動いている場合(一方のクロックとは無関係な周波数で動作させなければならない場合)はどうでしょうか?? ひとつの回路が2種類のクロック周波数を受け取って2つの装置を別々に動かすなどは可能でしょうか???
お礼
たびたびありがとうございます。 うーん・・難しい・・ 例えば40kHzのクロックで常に動作する装置Aと、もっと不規則なクロックで(例えばかざぐるまの回転に応じて)動作する装置Bとがあったとして、 1つの制御回路が、かざぐるまの回転に合わせてA用のクロックにマスクをかけて非同期に制御できるということなのでしょうか??