長らくお待たせしていた新連載"ブレッドボードI/Oプログラミング"ですが、ようやく第1回原稿の脱稿を完了しました。原稿は既に私の手を離れ、鋭意レイアウト作業中となっていますので、校正が上がってくるのが楽しみです。
ブレッドボードI/Oプログラミングの全体像について、ご紹介しておきます。連載は全部で5回。下記のようなタイトルで構成されています(一部仮題)。
- 第1回 USB GPIOを手に入れる
- 第2回 初めての外部制御とlibd2xxライブラリの作成 ~バーLED/7セグメントLED/スイッチ/圧電ブザー~
- 第3回 MPSSE版libgpioライブラリの作成とパラレル制御 ~NVRAM/キャラクタ表示LCD~
- 第4回 SPIとI2Cによるシリアル通信 ~SPI EEPROM/I2C EEPROM/センサ~
- 第5回 JTAGによるデバイス制御 ~MSP430マイクロコントローラ~
第1回では、現代のパソコンにGPIO(General Purpose Input Output: 汎用I/O)機能を再現する、USB GPIOを紹介します。FTDI社のFTx232H FIFOコンバータICを用いると、USBインターフェースを通じてホストからI/Oピンを制御することが可能になります。
国内外でFTx232Hを搭載したボードが販売されていますが、第1回ではFTDI社オリジナルのUM232Hおよび秋月電子のAE-FT232HLを実例として紹介します。市販されているFTx232Hボード一覧については、別頁で改めてご紹介しますので、参考にしてください。
各連載の サブタイトルは、各回での操作対象となるデバイスの一覧を示しています。最初は単純なLEDに始まり、液晶表示キャラクタディスプレイ、EEPROMやセンサと進化していき、最後には複雑なマイクロコントローラを制御するレベルにまで到達します。
この間に登場するのは、コンピュータシステムの基盤技術となるインターフェースプロトコルです。古典的なパラレル制御に始まり、SPI/I2Cシリアル制御とJTAGをすべてソフトウェアで実現します。プロトコル仕様を学び、その動作をC言語で記述し、最後に現実のデバイスを自在に制御するのです。この3つを連続して体験することで、単なる知識ではなく、本物の智慧を体得できることでしょう。知識は時の経過と共に風化していきますが、普遍性をもった智慧は生涯色褪せることがありません。
なお、当初ブレッドボードI/Oプログラミングの序章には、UNIX環境におけるC言語入門編を添える予定だったのですが、加筆しているうちに書籍一冊分のボリュームとなってしまいました。よって、このC言語入門編は"システムプログラミングのためのC言語概説"として、連載が併走することになりそうです。