電子計算機Ⅰ

科目基礎情報

学校 東京工業高等専門学校 開講年度 2017
授業科目 電子計算機Ⅰ
科目番号 0014 科目区分 専門 / 必修
授業形態 演習 単位の種別と単位数 履修単位: 1
開設学科 情報工学科 対象学年 3
開設期 後期 週時間数 2
教科書/教材 Webテキスト使用  https://xythos.tokyo-ct.ac.jp/web/j/usr/kosaka/studentreports/index.html
担当教員 小坂 敏文

到達目標

組み込みシステムというCPUの使われ方が増えている。組込システム用CPUの数はPCなどに搭載されているCPUの数を大きく上回っている。組み込み開発を行う技術者の不足が指摘されており,情報系の学生も,組込システムに精通することが求められる。本科目では,H8マイクロコンピュータのプログラミングを行ない,プリミティブな組み込みシステム開発の基本事項を修得する。特にポート入出力,タイマ割り込み,シリアル通信を用いた演習を行ない,マニュアルや使用例を読み取って,自分の希望通りの動作をマイコンを用いて実現できるようにする。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
制御構造の概念を理解し,条件分岐や反復処理を記述できる。制御構造の概念を理解し,条件分岐や反復処理やそれらの複合動作を理解し,意図通りのマイコン向けCプログラムを作成できる。制御構造の概念を理解し,条件分岐や反復処理やそれらの複合動作を理解し,マイコン向けCプログラムの振る舞いを追うことができる。 制御構造の概念を理解できず,条件分岐や反復処理やそれらの複合動作も理解できていないため,マイコン向けCプログラムの振る舞いを追うことができない。
プロシージャ(または、関数、サブルーチンなど)の概念を理解し,これらを含むプログラムを記述できる。関数の概念,引数,関数の戻り値を理解し,意図通りにこれらを含むマイコン向けCプログラムを作成できる。 関数の概念,引数,関数の戻り値を理解し,マイコン向けCプログラムの振る舞いを追うことができる。 関数の概念,引数,関数の戻り値を理解していないため,マイコン向けCプログラムの振る舞いを追うことができない。
与えられた簡単な問題に対して,それを解決するためのソースプログラムを記述できる。与えられた問題に対して,解決手順を考え,意図通りにマイコン向けCソースプログラムを作成できる。 与えられた簡単な問題に対して,解決手順のヒントを元に解決するためのマイコン向けCソースプログラムを作成できる。 与えられた簡単な問題に対して,解決手順のヒント与えられても解決するためのマイコン向けCソースプログラムを作成できない。
ソフトウェア生成に必要なツールを使い,ソースプログラムをロードモジュールに変換して実行できる。 様々な開発環境があることを知っており,それぞれの環境でプログラム作成が出来,コンパイル&実行ができる。 与えられた開発環境(クロス開発環境)でプログラム作成が出来,コンパイル&実行ができる。 与えられた開発環境(クロス開発環境)でプログラム作成が出来,コンパイル&実行ができない。
要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。与えられた要求仕様に対して,解決手順を考え,実行効率を考慮したマイコン向けCソースプログラムを作成できる。 与えられた要求仕様に対して,解決手順のヒントを元に,実行効率を考慮したマイコン向けCソースプログラムを作成できる。 与えられた要求仕様に対して,解決手順のヒントを与えられても,実行効率を考慮したマイコン向けCソースプログラムを作成できない。
マイコンIOポートについて理解し,それを用いたプログラムが作成できる。マイコンIOポートを利用する与えられた問題に対して,解決手順を考え,意図通りにマイコン向けCソースプログラムを作成できる。マイコンIOポートを利用する与えられた問題に対して,解決手順のヒントを元に,意図通りにマイコン向けCソースプログラムを作成できる。マイコンIOポートを利用する与えられた問題に対して,解決手順のヒントを与えられても,意図通りにマイコン向けCソースプログラムを作成できない。
マイコンにおいて,インターバルタイマ割り込みについて理解し,それを用いたプログラムが作成できる。マイコンインターバルタイマ割り込みを利用する与えられた問題に対して,解決手順を考え,意図通りにマイコン向けCソースプログラムを作成できる。マイコンインターバルタイマ割り込みを利用する与えられた問題に対して,解決手順のヒントを元に,意図通りにマイコン向けCソースプログラムを作成できる。マイコンインターバルタイマ割り込みを利用する与えられた問題に対して,解決手順のヒントを与えられても,意図通りにマイコン向けCソースプログラムを作成できない。

学科の到達目標項目との関係

教育方法等

概要:
プリミティブなマイコンプログラミングではOSは存在せず,ハードウェアの初期化等を自分で行わなければならない。(プログラムのメモリ配置,メモリの割当に関しては電子計算機IIで行う)PC上でエディタとクロスコンパイラを用いたクロス開発を体験し,またLEDの点滅など時間の流れを意識したプログラミング,タイマー割り込みを使ったプログラミングを学ぶ。また,入出力ポートが外部からどのように見えるか,プログラミング側からどのように見えるかを統一して考えることを学ぶ。
授業の進め方・方法:
授業中においては自分でWebテキストのサンプルプログラムの解説を読み,要点を理解しながら30個ほどの課題を1人1台のPCとH83048foneマイコンセットを用いて演習する。最初は簡単なLED点滅テストプログラムをテキスト通りに作成し,クロスコンパイル・リンク・リロケート・実行オブジェクト転送・実行までを行い,その後LEDのPWM駆動,外部スイッチの状態取得,タイマー割り込み,シリアル通信,これらを複合させた課題を演習して学ぶ。
注意点:
Webテキストを読む時は,要点に自分で「気づく」ことが大事である。そのため,気づいた要点をレポートにまとめとしての記述してもらう。課題の演習では,課題内容をよく読むこと。課題にはどのように出力するか指示がある場合があるので,それに従うこと。課題の実行結果については正しいかどうか検討してから提出すること。課題の提出期限を守ることは当然だが,遅れそうな時は放課後も使って課題演習を行うこと。なお,課題がはやく終わってしまった場合は,自分のペースで先に進んでも良い。定期試験前には過去の問題を試験本番と同じように解いてみて,自分の理解度が正確であったかどうか,ケアレスミスを犯しやすいところはどこかよく検討してから本番に臨むこと。

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 ガイダンス・Webテキストの紹介を行う。エディタによるプログラム作成・クロスコンパイル&実行オブジェクト転送・実行,課題のWeb提出を指導し,実際に提出させる。 この授業・授業方法の狙いを理解する。エディタでのプログラムの記述,コンパイル&実行オブジェクト転送・実行,課題提出方法を理解する。
2週 Webテキストを自分で読んで,マイコンプログラミングによく出てくるビット演算の演習を行う。実行結果を貼り付けて提出形式ファイルを作成し,Web提出する。 ビット演算を理解でき,それを使ったプログラムを作成できる。プログラムの各行逐次動作説明ができる。
3週 Webテキストを自分で読んで,ビット演算およびLED点滅プログラムの演習を行う。実行結果を貼り付けて提出形式ファイルを作成し,Web提出する。 ビット演算およびLED点滅のしかた,周期とデューティ比を理解でき,それを使ったプログラムを作成できる。プログラムの各行逐次動作説明ができる。
4週 Webテキストを自分で読んで,LED点滅プログラムの演習を行う。またポインタでの直接ポート指定と,構造体・共有体による隠蔽のプログラムの原理に触れと体験する。実行結果を貼り付けて提出形式ファイルを作成し,Web提出する。 LED点滅に関してハードウェアを直接駆動(メモリマップトIO)して,プログラムを作成できる。プログラムの各行逐次動作説明ができる。
5週 Webテキストを自分で読んで,LED点滅プログラムの演習を行う。出力ポートについて,プログラミングで0,1を出力した際に出力ピンの電圧が変化することを演習で学ぶ。実行結果を貼り付けて提出形式ファイルを作成し,Web提出する。 LED点滅に関して,ポート外部の出力ピンの発生電圧とプログラムの関係を理解し,プログラムを作成できる。プログラムの各行逐次動作説明ができる
6週 Webテキストを自分で読んで,LED点滅プログラムの演習を行う。ただし,LEDを点灯したり,消灯したりする関数をマイコンユーザマニュアルを参考にしながら自分で制作する。実行結果を貼り付けて提出形式ファイルを作成し,Web提出する。 LED点滅に関してハードウェア駆動部を関数化,隠すことでプログラミングを容易にし,別CPUへのプログラム移植が用意になることを理解でき,それを使ったプログラムを作成できる。プログラムの各行逐次動作説明ができる。
7週 Webテキストを自分で読んで,LED点滅プログラムの演習を行う。ただし,高速点滅で,デューティ比を変化させ,LEDが明るくなったり,暗くなったりすることを体験する。実行結果を貼り付けて提出形式ファイルを作成し,Web提出する。 LED点滅に関して,高速な駆動+デューティ比の変化で明るさの制御が可能になることを理解し,同じ原理でモータなども駆動できることを理解でき,それを使ったプログラムを作成できる。プログラムの各行逐次動作説明ができる。
8週 Webテキストを自分で読んで,Bitスイッチの状態を取り込み,それに応じてLED点滅プログラムの演習を行う。また,ポートの外部で観察した入力ピンの電圧とプログラム中で取り込まれた0,1の関係を体感する。実行結果を貼り付けて提出形式ファイルを作成し,Web提出する。 BITスイッチの状態を取得し,それに応じてLEDを駆動するプログラムを作成できる。プログラムの各行逐次動作説明ができる。
4thQ
9週 Webテキストを自分で読んで,ポートとCPU周り,マザーボード周りのピン配置を説明書と実部を照らしあわせて観察する。観察結果を貼り付けて提出形式ファイルを作成し,Web提出する。 IOポートを外部から見た入出力ピンと内部から見た構造を一致させ,自由に入出力設計をした時のプログラムを作成できる。
10週 Webテキストを自分で読んで,Bitスイッチの状態を取り込み,それに応じてLED点滅プログラムの演習を行う。また,チャタリングの現象を体験し,緩和策を考える。実行結果を貼り付けて提出形式ファイルを作成し,Web提出する。 BITスイッチの状態を取得し,それに応じてLEDを駆動するプログラムを作成できる。チャタリング減少について理解し,対処を考えられる。プログラムの各行逐次動作説明ができる。
11週 Webテキストを自分で読んで,インターバルタイマ割り込みによるLED点滅プログラムの演習を行う。割り込み処理ルーチンの書き方,間引き動作を体験する。実行結果を貼り付けて提出形式ファイルを作成し,Web提出する。 インターバルタイマ割り込みを使ったLEDを駆動するプログラムを作成できる。プログラムの各行逐次動作説明ができる。
12週 Webテキストを自分で読んで,シリアル通信を含むプログラムの演習を行う。メモリダンプなど,メモリを意識したプログラミングを行う。実行結果を貼り付けて提出形式ファイルを作成し,Web提出する。 シリアル通信を用いたプログラムを作成できる。プログラムの各行逐次動作説明ができる。
13週 Webテキストを自分で読んで,シリアル通信・タイマ割り込みを含むプログラムの演習を行う。ストップウォッチを作成する。また,シリアル通信速度設定を自分で行うプログラムを作成する。実行結果を貼り付けて提出形式ファイルを作成し,Web提出する。 シリアル通信・タイマ割り込みを用いた複合プログラムを作成できる。プログラムの各行逐次動作説明ができる。
14週 Webテキストを自分で読んで,OSを用いない擬似マルチタスクの演習を行う。実行結果を貼り付けて提出形式ファイルを作成し,Web提出する。 タイマ割り込みを用いた擬似マルチタスクプログラムを作成できる。プログラムの各行逐次動作説明ができる。
15週 期末試験(中間試験を含む)
16週

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング制御構造の概念を理解し、条件分岐や反復処理を記述できる。3
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。3
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。3
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。3

評価割合

試験発表相互評価態度ポートフォリオ課題レポート合計
総合評価割合70000030100
基礎的能力0000000
専門的能力70000030100
分野横断的能力0000000