●ソフトウェアの基本設計
■■ メインマイコンのソフトウェアの要点 ■■
『1』 使用言語
通常ならばC言語+アセンブラー言語でソフト開発を進めるのですが、今回は『高速で動作できる』こと
が主命題なので、全てアセンブラー言語で開発を進めることにしました。
『2』 IICバスデータの取り込み
IICバスからのデータ取り込みについては、シリアル→パラレル変換をFPGAに任せるので、
メインマイコン側はFPGAからの次の3つの割り込み要求に応えてデータを取り込むことにしました。
![]() |
FPGAからメインマイコンへ割り込み要求 |
* スタートコンディション割り込み
スタートコンディション条件成立でメインマイコン側に割り込みをかけます。
割り込みルーチンでは、ソフトにてFPGAの内部ロジックリセットを行うようにします。
また、データ取り込みメモリーにはスタートコンディションが発生したことを示すステータス
情報を書き込みます。
* ストップコンディション割り込み
ストップコンディション条件成立でメインマイコン側に割り込みをかけます。
また、データ取り込みメモリーにはストップコンディションが発生したことを示すステータス
情報を書き込みます。
* パラレル変換完了割り込み
シリアル9ビットデータがパラレル変換された瞬間にメインマイコン側に割り込みをかけます。
割り込みルーチンでは9ビットデータを読み込み、メモリーに保存します。
『3』 メモリに取り込んだIICバスデータの送出
メモリーに取り込んだデータは、割り込み処理でない通常ループでPICマイコンへ渡すことにします。
PICマイコン側ではポートに受けとれるデータのバイト数、受け取り可能を示すBusy信号を出力
させることにし、メインマイコンはこのポートの状態を確認しながら1バイトずつデータを渡すことに
します。
『4』 PICマイコンとの232C通信
パソコンからの指令を受け取るために、PICマイコンとの間で232C通信を行います。
PICマイコンからは、
* データ取り込み開始、終了コマンド
を受け取ります。
■■ PICマイコンのソフトウェアの要点 ■■
『1』 使用言語
PICマイコン側でも『高速で動作できる』ことが重要なので、全てアセンブラー言語で開発を
進めることにしました。
『2』 メインマイコンからのデータの取り込み
PIC16C765のポートDとポートEをパラレルスレーブポートとして使用し、メインマイコン
の1出力命令でデータを受け取り可能にします。
またポートBには、PICマイコンのBusy出力とデータ取り込みバッファー空きサイズを出力
しておくことで、メインマイコンとの同期をとるようにします。
メインマイコンがPICマイコンのパラレルスレーブポートにデータを出力した時に割り込みが
かかるようにしておき、パラレルスレーブポート割り込みルーチン内でデータを取り込みます。
『3』 メモリに取り込んだIICバスデータのUSBバスへの送出
PICマイコン内蔵のエンドポイントの割付としては
*EP0 パソコンとのコマンドのやりとりに使用します。
*EP1 パソコンへのデータ送信に使用します。
『4』 PICマイコンとの232C通信
パソコンから受け取った指令をメインマイコンに送信するために、メインマイコンとの間で232C通信
を行います。
■■ パソコンのソフトウェアの要点 ■■
『1』 開発環境
Visual Studio Ver6.0 環境にて開発します。
開発は Win32プラットホームで Visual C++ を使用し、 今回は、MFCクラスライブラリを利用して
作成します。
『2』 アプリケーションソフトの機能
パソコン側アプリケーションでは、モニター開始・終了ボタンを設けマウスクリックで
モニター開始・終了をできるようにします。
また、モニター条件を入力できるダイアログBOXを作成し、モニターしたデータの選別等を 可能にします。
モニターしたデータは、リストBOXにアスキー形式で保存するようにします。
専用基板からのデータ読みだし処理は、読み出し専用スレッドを作成してスレッドで行います。
『3』 USBデバイスドライバー
USB機器の接続には必ずデバイスドライバーが必要です。
開発には、Windows98 SDK DDK 環境にて開発することにします。
![]() |
![]() |