まず組込みシステムの目的は、様々な周辺ハードウェアを制御すること。
周辺ハードウェアは、ペリフェラル、周辺インターフェース、周辺I/Oなどと呼ばれる。
インタフェースとは、データ転送の際の信号の電圧や転送速度などの決まりごとのこと、物理的なコネクタの形状も。
インタフェースは、シリアル通信やEthernet規格(LAN)などいろいろあるが、もちろんデータ転送するという目的は同じ。
⇒インタフェースなんて一番転送速度が速いのに統一してしまえ、まどろっこしいからと思ったりする。インターネットでCPUが扱うくらいの転送速度があればいいもんだ。いろんな制約(パッと思い浮かぶだけでも物理、経済、人間など)があっていくつもインタフェースあるんだろうけど、転送速度を割り出す方程式でもあればよいな。★
⇒ちなみにwikipediaだと1つ上の観点のインタフェースを紹介している。3つにわかれるとある。★
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9_(%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93)
⇒おおきくシリアルインターフェースとパラレルインターフェースがあること書いてある。★
http://job-pc.net/archives/30/34/000342.html
また、データ転送の際はデータを流す前に送信側と受信側のデータを扱える準備ができたかの確認をするための手順も必要でこういう手順のことをプロトコルと呼ぶ。
⇒wikipediaだとプロトコルもインタフェースの範疇として扱われていそう★
例えば本章で扱われるシリアル通信のインタフェースの場合。
1stステップでは、シリアル通信速度によるデータ転送速度は9600bps、つまり1秒間に9600回ON/OFFの信号を送っている。
これをCPUで行うとしたら1秒間に9600回という周期で特定の信号線をON/OFFするということでこれはソフトウェアのプログラムによって行う必要がある、が、これを実施するのは面倒で他の作業がしにくくなるとのこと。
⇒できなくはないんだなぁ。★
これらのインタフェースに関わる面倒な部分(信号の制御)をCPU以外で肩代わりしてくれるとこないかなというとこで、ICチップを用意し1秒間に9600回ON/OFFさせるものとしてハードで用意。
この面倒なことを実施してくれるICチップのことを一般にコントローラと呼ぶ。
⇒ソフトで実現するときとハードで実現するときはどのような差があるのを知るために、ソフトで実現するときの面倒加減をプログラムで見てみたいなぁ★
⇒インタフェースに関わる面倒な部分(信号の制御)として転送速度を扱っているが、電圧とかのインタフェースも同じく扱ってくれるの?★
⇒プロトコルは極めてソフトウェアで実現しそうなことだけど、コントローラ任せなの?★
シリアル通信の制御を実施するのは「シリアル・コントローラ」。
LANならば「LANコントローラ」。
インタフェースに関わる面倒な部分(信号の制御)はコントローラが行うため、CPUからはコントローラに対してデータの送信要求を出したり、コントローラからデータを受信したりするだけで済むようになる。
⇒レジスタ経由でおこなうとか書いてある。
周辺ハードウェアは、ペリフェラル、周辺インターフェース、周辺I/Oなどと呼ばれる。
インタフェースとは、データ転送の際の信号の電圧や転送速度などの決まりごとのこと、物理的なコネクタの形状も。
インタフェースは、シリアル通信やEthernet規格(LAN)などいろいろあるが、もちろんデータ転送するという目的は同じ。
⇒インタフェースなんて一番転送速度が速いのに統一してしまえ、まどろっこしいからと思ったりする。インターネットでCPUが扱うくらいの転送速度があればいいもんだ。いろんな制約(パッと思い浮かぶだけでも物理、経済、人間など)があっていくつもインタフェースあるんだろうけど、転送速度を割り出す方程式でもあればよいな。★
⇒ちなみにwikipediaだと1つ上の観点のインタフェースを紹介している。3つにわかれるとある。★
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9_(%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93)
⇒おおきくシリアルインターフェースとパラレルインターフェースがあること書いてある。★
http://job-pc.net/archives/30/34/000342.html
また、データ転送の際はデータを流す前に送信側と受信側のデータを扱える準備ができたかの確認をするための手順も必要でこういう手順のことをプロトコルと呼ぶ。
⇒wikipediaだとプロトコルもインタフェースの範疇として扱われていそう★
例えば本章で扱われるシリアル通信のインタフェースの場合。
1stステップでは、シリアル通信速度によるデータ転送速度は9600bps、つまり1秒間に9600回ON/OFFの信号を送っている。
これをCPUで行うとしたら1秒間に9600回という周期で特定の信号線をON/OFFするということでこれはソフトウェアのプログラムによって行う必要がある、が、これを実施するのは面倒で他の作業がしにくくなるとのこと。
⇒できなくはないんだなぁ。★
これらのインタフェースに関わる面倒な部分(信号の制御)をCPU以外で肩代わりしてくれるとこないかなというとこで、ICチップを用意し1秒間に9600回ON/OFFさせるものとしてハードで用意。
この面倒なことを実施してくれるICチップのことを一般にコントローラと呼ぶ。
⇒ソフトで実現するときとハードで実現するときはどのような差があるのを知るために、ソフトで実現するときの面倒加減をプログラムで見てみたいなぁ★
⇒インタフェースに関わる面倒な部分(信号の制御)として転送速度を扱っているが、電圧とかのインタフェースも同じく扱ってくれるの?★
⇒プロトコルは極めてソフトウェアで実現しそうなことだけど、コントローラ任せなの?★
シリアル通信の制御を実施するのは「シリアル・コントローラ」。
LANならば「LANコントローラ」。
インタフェースに関わる面倒な部分(信号の制御)はコントローラが行うため、CPUからはコントローラに対してデータの送信要求を出したり、コントローラからデータを受信したりするだけで済むようになる。
⇒レジスタ経由でおこなうとか書いてある。