samohan1987さん、
どんなプロジェクトも、なんかしら入力をマイコンが受けとって、判断・処理して、うまいタイミングで結果を出力をする、ってことをしますよね。
入力は、ボタンだったり、タイマーだったり、センサーだったり。
出力は、LED・画面へ表示やら、メモリやファイルへの保存やら、PWMの信号生成だったり。
そういうやつの、細かくブレイクダウンしていった、入力・出力が、基板上のチップ同士で行わます。
いまは、SOC(System-on-a-chip)とよばれる、いろんな機能を1つのマイコンに詰め込んでるものが主流だと思いますが、これだと、このチップの中のユニット同士でも、入力・出力が行わます。
マイコンを中心にみていくと、(特殊な用途でなければ)だいたい汎用的なインターフェースで、ほかのチップや機器と接続してると思います。
汎用的なI/Fとしては、基板上の部品同士の接続として、
- Digital IO(DIO, GPIO)
- A/D converter(ADC),
- SPI(Serial Peripheral Interface)
- I2C,
- PWM(Pulse Width Modulation)など、
外部との機器との接続では
があるので、このへんの知識をちょっと頭に入れてから、
- どのようなインターフェースで、接続しているか、
- 入力・出力は、マイコン側か、周辺の部品・チップ側か
- どのようなデータがやり取りされるか、
といったことを確認しながら、回路図を見ていくといいんじゃないかな、と思います。
色鉛筆をもって、赤は、I2Cで、マイコンがセンサーとつながってる、青はCSIでカメラ、紫は、... というような感じで、回路図上の線を追って(塗って)いくのも、一度やっておくっといいかもしれません。
プログラマから、としてみると、
- ADCでは、端子の電圧から、12bit精度のものであれば、0~4095の値を取得できる、
- DIO端子は、1か0の入力を読み取る、または、出力する、
- I2C, SPIであれば、部品の仕様にある、データを読み出したり、書き込んだり、
といった感じになるので、回路の細かいところは見なくても、このパーツがどのようなデータの値を出力して、マイコンが受け取るか、または、マイコンからどういったデータを提供するか、というくらいが分かれば、どうにかなるんじゃないかと思います。
で、質問の
おすすめの参考書やサイトはありますでしょうか。
ですが、具体的に書かれている内容が少ないので、何とも言えません。
"組み込み"といっても、いまは、
- Linuxベースのもの
- RTOS(リアルタイムOS)
- OSなし(メインループ一つで、割り込みなど使用)
- (上のをミックス。複数のプロセッサ使用などで)
のように、プロジェクトの規模、使えるRAMサイズ(数百MB ~ 数百~数十キロバイト ~ 数キロバイトなど)でも全く環境が違ってくると思います。
チームに誰かしら、経験豊富な方がいれば、お話しをして、(今回のプロジェクトに関する)アドバイスをもらうのが、いいんじゃないでしょうか。