よくある質問(FAQ)

●本書について
(1)この本はシリコン・ラボラトリーズ社のC8051の入門書なのでしょうか?
(2)「第4部 8051応用プログラムの制作と実験」で製作するハードウェアはどんなものですか?

●シリコンラボラトリーズ社C8051やその開発キットの入手先など
(1)C8051シリーズのマイコンは,どこで買えますか?また,その価格は?
(2)開発キットC8051F310DKは,どこで買えますか?また,その価格は?
(3)開発キットC8051F310DKは,シリアル・インターフェース接続版とUSB接続版のどちらを買えばよいのでしょう?
(4)開発キット(C8051F310DK)には何が含まれているのでしょうか?
(5)開発キット(C8051F310DK)に付属する開発ツールに制限はありますか?
(6)DIPパッケージ品は,どこで買えますか?また,その価格は?

●8051のプロフィール
(1)8051ってなんですか?
(2)8051ってPICマイコンやH8と比べてどうなの?
(3)パソコン用のPentiumとどう違うのでしょうか?
(4)“MCS-51”と“8051”の違いは?

●C8051のプロフィール
(1)8051系マイコンの中でC8051の特徴は何ですか?
(2)クロスバ機能って何ですか?

●シリコン・ラボラトリーズ社のプロフィール
(1)シリコン・ラボラトリーズ社ってどんな会社なんでしょうか?

●自分の機器に組み込んで開発する方法
(1)自分で製作した基板上のC8051に書き込むには?
(2)C2インターフェースって何ですか?

●その他のことがら
(1)割り込みのネスティングとか,サブルーチンのネスティングって何ですか?
(2)ポーリングって何ですか?
(3)エッジ・トリガ,レベル・トリガって何ですか?
(4)ペリフェラルって何ですか?
(5)リード・モディファイ・ライトって何ですか?
(6)UARTって何ですか?
(7)MIPSって何ですか?



●シリコンラボラトリーズ社C8051やその開発キットの入手先など
(1)C8051シリーズのマイコンは,どこで買えますか?また,その価格は?
 下記は代表的な購入先の例です.価格は法人向けと個人/SOHO向けでは異なります.
 個人/SOHO向けの場合,C8051F310-GQ(32ピンLQFP)が単価US$6ぐらい(国内では1,500円ぐらい)です.

 法人向け販売→マイクロテック(株)(株)マクニカ クラビス・カンパニー
 個人やSOHO向け販売→セミコンボックス(タクミ商事)DigikeyMouser

(2)開発キットC8051F310DKは,どこで買えますか?また,その価格は?
 下記は代表的な購入先の例です.価格は法人向けと個人/SOHO向けでは異なります.
 この開発キットには,シリアル・インターフェース接続版とUSB接続版があります.
 シリアル・インターフェース版はCygnal時代にリリースされたものとSilabs時代のものがあります.Cygnalブランドの古い開発キットに付属のCD-ROMに収録されたKeil社のアセンブラで日本語のコメントを含むソース・リストをアセンブルすると不具合が生じることがあります.
 USB版は2005年にリリースされた新しいもので,シリアル・インターフェース・アダプタ“EC2”の代わりにUSB接続の「EC2エミュレータ」が付属します.現在,シリコンラボラトリーズ社のホームページで見られるものはUSB版の写真です.シリアル・インターフェース版も同じC8051F310DKという型名で紛らわしいため,購入時に確認してください.

 価格は個人/SOHO向けで単価US$100ぐらい(国内では1万5000円ぐらい)です.

 法人向け販売→マイクロテック(株)(株)マクニカ クラビス・カンパニー
 個人やSOHO向け販売→セミコンボックス(タクミ商事)DigikeyMouser

(3)開発キットC8051F310DKは,シリアル・インターフェース接続版とUSB接続版のどちらを買えばよいのでしょう?
 シリアル・インターフェースの付いていないパソコンで使うつもりなら,USB接続版を購入すべきでしょう.
 ターゲット・ボードや統合開発環境は,どちらも同じです.
 なお,本書では,シリアル・インターフェース接続版をもとに解説しています.開発環境の操作は基本的に同じですが,USB版では設定を1箇所変更する必要があります.本書の第15章のコラム(269ページ)をご覧ください.
 USB接続版はシリアル・インターフェース・アダプタ(EC2)の代わりに「EC2エミュレーション・アダプタ」が付属しています.下記のようなイメージです.USB版であっても別途EC2だけを購入すれば,シリアル・インターフェースへ接続することもできます.EC2の定価はUS$50です.


シリアル・インターフェース接続版ではアダプタ(EC2)経由でパソコンへ接続する


USB接続版ではEC2エミュレーション・アダプタ経由でパソコンへ接続する

 シリアル・インターフェース接続版は古いタイプで,USB接続版は2005年に発売された新しいタイプです.
 市販のシリアル-USB変換アダプタ経由でシリアル・インターフェース版を使った場合に正常に動作するかどうかは未確認のためわかりません.(アイ・オー・データ機器のUSB-RSAQ2で動作したという情報があるものの未確認です.)

(4)開発キット(C8051F310DK)には何が含まれているのでしょうか?
 下記が含まれています:
  ・ターゲット・ボード“C8051F310TB”
  ・シリアル・アダプタ“EC2”
  ・統合開発環境(IDE),アセンブラ,Cコンパイラ,ドキュメントなどが収められたCD-ROM.
  ・ACアダプタ
  ・シリアル・インターフェース・ケーブル
  ・EC2とターゲット・ボードを接続するJTAGリボン・ケーブル
  ・クイック・スタート・ガイド
  ・ユーザーズ・ガイド

 下記は主なアイテムの写真です.


ターゲット・ボード(C8051F310TB)


シリアル・インターフェース・ケーブル,JTAGリボン・ケーブル,EC2
統合開発環境などが納められたCD-ROM,ターゲット・ボード


 このページのトップへ戻る

(5)開発キット(C8051F310DK)に付属する開発ツールに制限はありますか?
 開発キットに含まれるKeil社のCコンパイラは評価版のため下記の制限があります.
  ・生成されるオブジェクト・ファイルのサイズは最大4Kバイト
  ・浮動小数点ライブラリが付属していない
 アセンブラやリンカに制限はありません.

 なお,Cygnalブランド時代の古い開発キットに付属するアセンブラで日本語のコメントを含むソース・リストをアセンブルすると不具合が生じることが確認されています.古い開発キットをお使いになる場合はご注意ください.

 このページのトップへ戻る

(6)DIPパッケージ品は,どこで買えますか?また,その価格は?
 下記で買えます.単価は下記をご覧ください.
 Silabs社のリンクをたどるとMouserで購入できます.C8051F330-GPは,C8051F330Dのリンクをたどると購入できます.

 C8051F300P(14ピンDIP,US$6.60): 説明ピン配置図DigikeyMouser
 C8051F330D(C8051F330-GP,20ピンDIP,US$2.73): ピン配置図DigikeyMouser

 かつてC8051F330P(24ピンDIP)も存在したようですが,現在はディスコン(製造中止)です.


 このページのトップへ戻る

●本書について
(1)この本はシリコン・ラボラトリーズ社のC8051の入門書なのでしょうか?
 本書は世界中で使われている8051系マイコンの和文解説書として企画したものです.各社8051系マイコンの入門書としても,シリコン・ラボラトリーズ社のC8051の入門書としても役立つよう,本書は次の4部で構成されています.
  ・第1部 MCS-51リファレンス編
  ・第2部 シリコン・ラボラトリーズC8051編
  ・第3部 C8051F310開発キットとIDEの使い方
  ・第4部 8051応用プログラムの制作と実験
 第1部は各社の8051系マイコンを理解し応用する上で基本となる「オリジナルの8051」(MCS-51アーキテクチャ)について解説しています.第4部の応用例は,第21章を除いて各社の8051系マイコンに搭載されている「オリジナルの8051」にある周辺機能だけを使っています.
 第2部と第3部はシリコン・ラボラトリーズ社のC8051にしぼった内容となっています.

 このページのトップへ戻る

(2)「第4部 8051応用プログラムの制作と実験」で製作するハードウェアはどんなものですか?
 本書の目次の第17章〜第21章に記したアイテムを試作して実験します.いずれも実用的に使えるものではありませんが,8051を学び応用する上で役立つ内容を含んでいます.
 これらの実験用ハードウェアは開発キット(C8051F310DK)のユニバーサル・エリア(穴あき基板の部分)に組み立てます.下記はその写真です.


ユニバーサル・エリアに実験用回路を組み込んだ状態(部品面)


ユニバーサル・エリアに実験用回路を組み込んだ状態(箔面)


液晶表示モジュールとキーパッドを取り付けた状態

 このページのトップへ戻る

●8051のプロフィール
(1)8051ってなんですか?
 Intel社が1980年に発売した8ビットのワンチップ・マイコンです.PIC16/18シリーズなどと同じ8ビット・ワンチップ・マイコンです.
 四半世紀以上も前に登場したマイコンですが,現在も新製品が発売され続けており,全世界で60社以上の半導体メーカーやIPベンダーが発売しています.

(2)8051ってPICマイコンやH8と比べてどうなの?
 一口でいうとその性能や機能は,
  PIC16F84<8051<C8051F310≦H8/3048F
です.なお,C8051シリーズには100MIPSで動作する高速版もあります.
 もう少し詳しくは本書の第1章のコラム「PIC,H8と8051の機能比較」(27ページ)をご覧ください.
 PICマイコンはマイクロチップテクノロジー社だけ,H8マイコンはルネサステクノロジ社だけが発売しています.一方,8051系マイコンはオリジナルのインテルをはじめ,Maxim(Dallas),Philips,Texsas Instruments,Atmel,Analog Devices,ST micro,Infineonなど,多くの半導体メーカーから発売されており,命令セットや内蔵周辺機能に互換性があります.いわば「8ビット・マイコンの世界標準」です.

(3)パソコン用のPentiumとどう違うのでしょうか?
 「パソコンのCPU」は「マイクロプロセッサ」というLSIであり,人間にたとえると「脳みそ」だけであり,メモリやI/Oインターフェースを外付けする必要があります.
 一方,(8051系を含む一般的な)マイコンは「マイクロコントローラ」とか「ワンチップ・マイコン」と呼ばれるLSIであり,処理能力はPentiumほどありませんが,内部にメモリや各種インターフェースを内蔵しているので,いわば「脳みそ+手足」をもち,単独で動作することのできる部品です.

(4)“MCS-51”と“8051”の違いは?
 もともと“MCS-51”はインテル社のマイクロコンピュータ・システムの名称(Micro Computer System-51)で,“8051”はMCS-51ファミリ製品のうちマスクROM内蔵品に付けられた型名でした.
 現在ではファミリ名やアーキテクチャを意味するのに“MCS-51”と“8051”という用語が混用されているように感じます.しかし,MCS-51ファミリを代表するのは8051であり,たとえばEPROM版の8751の名前を採って「8751ファミリ」とは呼びませんね(^^)

 このページのトップへ戻る

●C8051のプロフィール
(1)8051系マイコンの中でC8051の特徴は何ですか?
 8051系マイコンには大別して「汎用マイクロコントローラ」として発売されているものと,「特定用途向けコントローラ」があります.C8051は前者です.後者の例としては例えばCypress社のUSBコントローラEZ-USBシリーズなどがあります.
 C8051は,数ある8051系マイコンのなかで「最速,超多機能,高精度システム・クロック内蔵,クロスバによる自由なピン割り当て,最小パッケージも可能」なことが特徴です.

 C8051の性能に着目すると下記の特徴があります:
 最大100MIPSの高速処理
  この速度は2006年の時点で8051系では最速です.C8051シリーズは1クロックで1命令を実行するアーキテクチャです.オリジナルの8051は12クロックで1命令を実行するので同じ動作クロック周波数でも12倍高速です.なお,本書の「第4部 8051応用プログラムの制作と実験」で使ったC8051F310はクロック25MHzで最大25MIPSが得られます.

 機能に着目すると,
 ±2%精度のシステム・クロック内蔵
  これまでのマイコンでは水晶発振子などを外付けするか,周波数が低くて精度の悪いCR発振回路などを利用するのが当たり前でしたが,C8051シリーズは高精度のシステム・クロックを内蔵しています.C8051F310は25MHzのクロックを内蔵しています.
 内蔵アナログ周辺機能が強力
  最大24ビット精度のADC,独立した2個のADC,DAC,基準電圧源,温度センサなどを内蔵した品種を選択可能です.
 内蔵ディジタル周辺機能がてんこ盛り
  独立した2個のUART,PCA,拡張タイマ/カウンタ,SPI,SMbusなど,およそ考えられるディジタル周辺機能が網羅されています.
 クロスバ機能によってピンの機能を(動作中でも)切り替え可能
  いくら内蔵周辺機能が豊富でも,ピン数が多いと小型化できません.多機能なマイコンほど多ピンのパッケージを採用せざるを得ないのが実情です.ところが実際の応用では,すべての機能を使うわけではありません.多くのピンは無駄になっていました.この矛盾する命題にC8051が出した解決策が「クロスバ」(cross-bar)です.これは内蔵機能とピンをクロスバ・スイッチによって割り当て,たとえピン数の少ないパッケージであっても,必要な機能だけを必要なときに割り当てて使うことを可能にします.すべてのピン,すべての機能ではありませんが,機能によっては動作中でも切り替え可能です.

 パッケージに注目すると,
 わずか3mm角から,QFP,DIPまでバリエーションが豊富
  軽薄短小が求められる携帯機器などには3mm角パッケージと高性能・高機能を両立するマイコンが貴重です.また,試作・実験では(C8051F300とC8051F330だけですが)DIPパッケージを選ぶこともできます.

 ぜひ一度,Silicon Labolatories社のサイトにあるセレクター・ガイドに目を通してみてください.

(2)クロスバ機能って何ですか?
  内蔵のディジタル周辺機能とICのピンをクロスバ・スイッチによって自由に割り当てる機能です.内蔵のアナログ周辺機能は,クロスバ・スイッチによって割り当てることはできません.
  内蔵周辺機能が豊富なマイコンほど多ピンのパッケージを採用せざるを得ないのが実情です.ところが実際の応用では,すべての機能を使うわけではありません.多くのピンは無駄になっていました.「豊富な内蔵周辺機能」と「小型化」…この矛盾する命題にC8051が出した解決策が「クロスバ」(cross-bar)です.
 クロスバ機能は,たとえピン数の少ないパッケージであっても,必要な機能だけを必要なときに割り当てて使うことを可能にします.機能によっては動作中でも切り替え可能です.また,プリント基板のアートワークの都合に合わせてピン機能を割り当てるような使い方も考えられます.

 ただし,C8051のクロスバ機能は,マトリクス・スイッチのようなものではないので,次のような制約があります.
 ペリフェラルの各信号はアサイン順が決まっていて,この順番を入れ替えるような割り当てはできません.例えば,UARTのTXDは,常にRXDよりも若いピン番号にしかアサインできません.同様に,各ペリフェラルのアサイン順は,ピン番号が決まっているUARTを除くと,
 SPI→SMBus→コンパレータ出力→SYSCLK出力→PCA→タイマ
の順に若いピン番号からアサインされ,この順番を入れ替えることはできません.また,UARTはP0.4とP0.5にしかアサインできません.
 クロスバ機能は,この順番を守った上で,「指定したペリフェラルのピンだけをスキップしていないピンに『ずらしながら』アサインしていく」というイメージです.

 このページのトップへ戻る

●シリコン・ラボラトリーズ社のプロフィール
(1)シリコン・ラボラトリーズ社ってどんな会社なんでしょうか?
 Silicon Laboratories, Inc.(略称Silabs社)は米国テキサス州オースチンに本社があり,広範囲に応用するために特にアナログ機能を強化したミクスト・シグナルICを設計・開発するファブレスの半導体メーカーです.
 1996年にCrystal Semiconductor社やCirrus Logic社出身のJeffery Scott,David Welland,Nav Soochらによって設立されました.Crystal SemiconductorはΔΣ型A-Dコンバータで名を馳せた半導体メーカー,Cirrus LogicはWindows3.1の時代にパソコン用グラフィックス・アクセラレータICで有名になった半導体メーカーです.

 C8051マイクロコントローラは,1999年に設立された米国Cygnal Integrated Products, Inc. 社が開発したもので,同社を2003年にSilabs社が買収しました.Cygnal社の創業者であるDerrell Cokerは,スマートバッテリーの基礎を築いたことで有名なBenchmarq Technology社(現在はTexsas Instruments社の傘下)の創業社長でもあり,現在はSilabs社の副社長を務めています.
 現在は下記のようなICがおもな製品です.
  ・マイクロコントローラ(C8051,USB)
  ・高精度発振器(水晶,VCXO)
  ・衛星放送受信セットトップ・ボックス用IC
  ・有線モデムIC
  ・携帯電話用ICや無線データ通信用IC
  ・電源コントローラIC

 このページのトップへ戻る

●自分の機器に組み込んで開発する方法
(1)自分で製作した基板上のC8051に書き込むには?
 3本の線だけで接続できる「3線式C2インターフェース」を基板上に用意しておき,それを経由して書き込むのが簡単で便利でしょう.C8051F310DKに付属の統合開発環境ツールもそのまま使えます.
 詳細は本書の第15章Appendix(270ページ)をご覧ください.

(2)C2インターフェースって何ですか?
 シリコン・ラボラトリーズ社(旧Cygnal社)のマイコンで採用されているデータ線(C2D),クロック線(C2CK),グラウンド(GND)の3線だけで双方向通信できるデバッグ用のインターフェースです.
 C2インターフェースは1対1の通信であり,複数のマイコンを接続することはできません.
 プロトコルを含むC2インターフェースの詳細は,C2 Interface Standard ver.1.1に記述されています.またC2インターフェース経由でマイコンの内蔵フラッシュROMを書き込む方法は,アプリケーション・ノートAN-127に解説されています.

 このページのトップへ戻る

●その他のことがら
(1)割り込みのネスティングとか,サブルーチンのネスティングって何ですか?
 ネスティング(nesting)を辞書で調べると「入れ子にする」という意味です.割り込みやサブルーチンのネスティングは,この入れ子構造にするという意味です.
 C8051では割り込みのネスティングが可能です.たとえばメイン・ルーチンを実行中に割り込みが入って割り込みルーチン1を実行している間に,さらに別の(もっと優先度の高い)割り込みによって割り込みルーチン2を実行するような事例をいいます.
 サブルーチンのネスティングとは,サブルーチン1がその中でサブルーチン2を実行するようなプログラム構造をいいます.


割り込みのネスティングとサブルーチンのネスティング

 “nest”はネズミなどの小動物の巣の意味があります.割り込みやサブルーチンの実行中に,プログラムがメインとは別の巣を作るとたとえられるかもしれません.

 このページのトップへ戻る

(2)ポーリングって何ですか?
 “poll”には「投票する」という意味や「調べる」という意味があります.この場合のポーリング(polling)は後者です.
 たとえばI/Oポートのあるビットの状態を調べるのに条件判断とループ構造を組み合わせたルーチンを使います.
 マイコンによっては割り込み応答の速度が遅いため,反応速度を上げたいときにシンプルなループ構造を持つポーリングを使うことがあります.しかし,ポーリングはCPUパワーを単なる調査だけに使うぜいたくな方法ともいえます.


I/Oポート(P1のビット1)の状態を調べるポーリングの例

 このページのトップへ戻る

(3)エッジ・トリガ,レベル・トリガって何ですか?
 C8051の割り込み入力はエッジ・トリガとレベル・トリガを選択できます.
 エッジ・トリガとは文字通りedge(縁)を検出してトリガにするものです.例えばLレベルからHレベルへの遷移が起きたら割り込み処理をスタートするように設定できます.なお,L→Hか,H→Lかを設定することができます.
 レベル・トリガとはLレベルまたはHレベルのどちらかのレベルになっていればトリガされるものです.LレベルかHレベルのどちらでトリガするかを設定することができます.

 このページのトップへ戻る

(4)ペリフェラルって何ですか?
 CPUの周辺機能のことです.“Peripheral”は周辺を意味します.
 マイコンの黎明期にはCPU,ROM,RAM,I/Oなどを別々のICで構成していました.このためCPUチップの周辺を取り巻くクロック・ジェネレータ,ROM,RAM,I/Oなどの機能を提供するICのことをペリフェラルLSIと呼んでいました.
 ワンチップ・マイコンでは,ペリフェラル機能の多くをチップ内に内蔵しています.「内蔵ペリフェラル」というと,カウンタ,タイマ,UART,A-Dコンバータ,D-Aコンバータなどの周辺機能を意味します.

 このページのトップへ戻る

(5)リード・モディファイ・ライトって何ですか?
 あるメモリ番地やI/Oポートを読み込んで(read),そのデータを変更して(modify),同じメモリ番地やI/Oポートに書き込むこと(write)をいいます.

 このページのトップへ戻る

(6)UARTって何ですか?
 Universal Asynchronous Receiver Transmitterの略称です.「ユーアート」と読むこともあります.非同期シリアル・インターフェース機能を提供するもので,パソコンでおなじみの9ピンDサブ・コネクタを使ったシリアル・ポート(EIA-574)や25ピンDサブ・コネクタを使ったEIA-232(RS-232)の非同期シリアル・インターフェースの部分に使われます.
 同様な機能にUSART(Universal Synchronous Asynchronous Receiver Transmitter)があります.こちらは信号同期(電気同期)や文字同期をサポートした同期/非同期シリアル・インターフェースです.

(7)MIPSって何ですか?
 1秒間に何命令実行できるかを表す単位で,Mega Instructions Per Secondの略語です.単位はMegaなので毎秒100万回実行できれば1MIPSということです.
 マイコンには,外付け発振子や外部クロック源の周波数(いわゆるシステム・クロック周波数)と実際の動作クロック(マシン・クロック)周波数が異なるものが少なからずあります.これはシステム・クロックをマイコン内部で分周して動作クロック(マシン・クロック)を生成しているからです.
 たとえばPIC16F84は,20MHzの発振子を外付けして20MHzのシステム・クロックを生成し,これを内部で4分周して動作クロック(マシン・クロック)にしています.このためたとえ1命令を1マシン・クロックで実行可能でも5MIPSしか実行できません.
 インテル社のオリジナル8051も同様にシステム・クロックが8MHzでも,内部で12分周するので,実際のマシン・クロックは約670kHzであり,最大でも0.67MIPSしか得られません.
 各社の8051系マイコンは,1マシン・サイクルを何クロックで構成するかによって,12クロック,6クロック,4クロック,2クロック,1クロック・タイプなどがあります.
 このようにマイコンは,表面的なシステム・クロック周波数の値だけで処理速度を判断できないものがあります.そこで一つの目安としてMIPS値が使われます.

 C8051シリーズは,システム・クロックを分周せず,そのままマシン・クロックとして使う1クロック・アーキテクチャであり,多くの命令を1マシン・クロックで実行します.このため,内蔵クロック周波数が24.5MHzなら,最大24.5MIPSが得られるわけです.なお,C8051シリーズには,最大100MIPSが得られる製品もあります.


 このページのトップへ戻る

ホームへ戻る Copyright 2006 by 8051.designerz-net.com