マイコン回路設計についての質問

このQ&Aのポイント
  • MCUタイプとプロセッサタイプの違いについて詳しく教えてください。
  • SH-4とSH-3DSP内蔵の選択について、用途によってどちらが適しているのか教えてください。
  • マイコンに内蔵されているDSPの役割や特徴について、資料では分かりにくかったので教えてください。
回答を見る
  • ベストアンサー

SHマイコンについて

初めて質問します。 仕事で、マイコン回路を設計する必要があります。マイコンを選ぶにあたって、いくつか質問があります。 (1)MCUタイプとプロセッサタイプという2種類があるのですが、データシートを見てもどのような違いがあるのか分かりません。どう違うのでしょう? (2)仕様上、高速信号処理を要しますが、SH-4とSH-3DSP内蔵というのはどちらがいいのでしょう? (多分用途によって違うと思いますが…) (3)(2)に関して、今までDSPとは、マイコンを音声信号処理(FFTなど?)などの特定デジタル処理向けに特化したものと思っていましたが、それがマイコンに内蔵されているとなるとDSPとは一体どのようなものなのでしょうか?CQ出版社の”DSPのハードウェアと信号処理の実際”という本を読んでみましたがいまいちマイコンとの違いがよく分かりませんでした。 以上、分かる範囲で結構ですので皆様のお知恵を拝借したく宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ojin
  • ベストアンサー率43% (280/638)
回答No.3

>実際にルネサスに質問したところはっきりとした区別はないもののイメージとしては、 コントローラ:ROM/RAM内蔵 プロセッサ:MMU、chache内蔵、外付けRAM とのことです。 仕様書を見ると、非常に難解でした。ROMも、マスクタイプ(設計が完了して、大量生産に移行する場合)と、焼き切る(少量生産で、プログラムイメージをメモリーのヒューズを焼ききって書き込むたいぷ)があるようです。 >ビットコントロールというのは、具体的にいうとどのような制御なのでしょうか? コントローラタイプでは、I/Oポートとして、入出力兼用ポートはビット毎に入出力切り換え可能とあります。 一例として、ビデオテープデッキなどでは、テープの終了を検地するセンサー、テープが正しく挿入されたことを検地する、プレイボタンが押された、巻き戻しボタンがおされた、早送りボタンが押された、録画中のランプを点灯する、テープの一時停止をする、予約ランプを点灯する、などは、1ビットの信号の入出力で充分です。その意味で、ビットコントロールと呼びました。多点のIOポートを見かけ上同時並行的に処理するには、それなりのCPUの処理速度が要求されます。 余談ですが、設計したものは、ある程度簡単なものは、ユニバーサル基板上でハードワイヤで、プロトタイプを作成して、ディバッグを行いますが、複雑になると、プロトタイプのプリントパターンを試作します。この場合も、複雑なものは、多層基盤で回路を構成しますが、人間の考えることです。時には誤りもあります。そのためには、回路設計もある程度、システム的にシミュレートできる設計が必要かと思います。ハード・ソフトを一人の人間が作成する場合は、生産性は悪いものの、自己責任でできますが、分業化すると、クリティカルなタイミングで動作しないなど、ソフトの問題か、ハードの問題化を切り分けるのに相互に不信感が表れ、感情的な軋轢が生じます。老婆心ながらお伝えしておきます。

zaki_shin
質問者

お礼

ハードとソフトの問題の切り分けに関しては、他の経験者の方にも同様なアドバイスを貰いました。どちらの責任かということもそうですが、問題の早期解決においても重要なことと思います。 定性的な質問で分かりづらかったと思いますが、色々ご相談にのって頂き、ありがとうございます。 ひとまず、締め切らせてもらいますが、また何かありましたら、質問したいと思います。次からはなるべく分かりやすく…

その他の回答 (2)

  • ojin
  • ベストアンサー率43% (280/638)
回答No.2

No.1です。返事が遅れて申し訳ありません。 最初に、小生は、日立のSH(スーパーエイチ)は使用したことがないので、的確なアドバイスにはならないかと思いますが、ご指摘の参考URLを元に仕様を比較しました。 >MMU(Memory Management Unit)の有無ではないかと 思いました。 (プロセッサ:あり、コントローラ:なし) ではないように思えましたが。私の見間違えかもしれません。 タイプで分けると: コントローラタイプ(SH-1, SH-2,SH2-DSP...) SH3-DSP(SH7641[HD6417641]) 130MIPS(Million{=Mega} Instructions Per Second)/100MHz(最大)、128KRAM内蔵/ROMなし。SH-4に比べると、性能は落ちるもののDSPがその部分を補完するようにも思えます。 プロセッサータイプ(SH-3,SH3-DSP,SH-4....) SH-4(SH7760[HD6417760])いくつかのシリーズがあるようですが。360MIPS(Million Instructions Per Second)/200MHz (最大)、ROM/RAMなし。 >プロセッサタイプでは、MMUの存在によりOSを載せることができる(載せやすい)のに対し、コントローラタイプでは割り込み処理オンリーのプログラムが主なものになると思うのですが、この解釈はどうでしょうか? 割り込みコントローラとしてNMI(Non Maskable Interrupt)の観点からは、エンジンが同じ系統であることから同一と思いましたが、プロセッサータイプは、どちらかというと、標準のIOを想定しているために、評価ボードなどが販売されているのだと想像いたします。SH-3 DSPは、カスタムメィドになるのではないでしょうか。 >ちなみにどちらも内蔵ROMなしでしたが、この場合、プログラムの格納場所は外部のEEPROMなどに書き込むことになるのでしょうか? 当然、制御用のプログラムが完成した時点で、EEPROMや、MASK ROM、Flash Memoryなどを外部に取り付けなければなりません。 >次にSH4は、スーパースカラ方式というものを採用しており、同時に2つの命令を並列処理できるそうです。  また、FPU(浮動小数点演算器)があることによりDSP演算を高速に実行とありますが、これはなぜでしょうか?浮動小数点の計算ができると積和演算が早くなるのでしょうか? 詳細はよく分かりません。 SH-3 DSPは、Digital Signal Processingを行うエンジンを持っている?SH-4は、標準入出力を同時に処理するためにより、強力な浮動小数点や、同時並列処理の必要があると想像いたしました。 いずれも、RISCプロセッサーですので、処理は相当早いと思われますが、実態は分かりません。 SH-3 DSPは、IOポート(164ポート)が極めて多く、組み込み機器の制御や、ランプ表示の制御に適しているように思えます。 SH-4は、シングルチップのCPUに、標準のインターフェイス(COMポート、USBポート、LCDコントローラなど) 完全に独自のインターフェイスで、ビットコントロールを行うのであれば、SH-3 DSPで、標準のインターフェイス(シリアルインターフェイス、USBインターフェイスなど)の機器を使用する目的であれば、SH-4ではないでしょうか。 開発は、Windowsの上でエミュレートしながらの開発のようですが、最終的には、開発されたコードは、なんらかの形で外部メモリーに書き込まなければならないと思いますので、メモリーのライターや、実機に実装したときのディバッグ用にICEも必要になると思います。 あくまでも、仕様を比較した私見ですので、間違っている部分も多々あるかと思います。参考意見です。

zaki_shin
質問者

補足

マイコンを使った回路設計は、まだあまりなく、勘違い、知らないこと多々あると思いますので、質問の意味が分かりづらいとは思います。申し訳ありません。 コントローラタイプとプロセッサタイプの違いについて、実際にルネサスに質問したところはっきりとした区別はないもののイメージとしては、 コントローラ:ROM/RAM内蔵 プロセッサ:MMU、chache内蔵、外付けRAM とのことです。 ご指摘のようにI/Oポートの数が多いことや、メモリを多分割できることから考えると コントローラタイプというのは名前の通り、機器に組み込んで様々なデバイスを同時に制御する用途向けで、 プロセッサタイプというのは、CPU自体は高速なものが 多いですが、様々なデバイスを制御するというよりは、計算自体を速くしたものと察します。 当初の目的は、ソフト屋さんと相談しましてどうやらマイコンだけで達成するのは厳しく、FPGAを併用または、仕様を変更する必要がありそうです。 質問なのですが、 ビットコントロールというのは、具体的にいうとどのような制御なのでしょうか? 時間があればお答え下されば幸いです。

  • ojin
  • ベストアンサー率43% (280/638)
回答No.1

アドバイスや、回答の得にくい質問だと思われます。私は、この製品の存在すら知りません。機器に組み込み用のプロセッサーのようですね。ただ、私も、i80286 CPUが出たときに、製品開発をした過去の経験からお話いたします。 (1)MCUタイプとプロセッサタイプという2種類があるのですが... ここで、MCU(Micro Controller Unitの略だと思われます)は、CPU、メモリー、IOなどを全て組み込んだUnitで、開発をすぐに行なえる環境を提供するものだたと思います。プロセッサータイプは、プロセッサー単体で、自ら周辺回路を含めて設計をしなければならず、回路の設計経験がないと大変難しいです。 一例として、SH-4を用いた、MCUのURLを↓に示します。 http://www.cqpub.co.jp/eda/CqREEK/SH4.HTM (2)仕様上、高速信号処理を要しますが、SH-4とSH-3DSP内蔵というのはどちらがいいのでしょう? (多分用途によって違うと思いますが…) その通りとおもいます。 DSP(Digital Signal Processing)の略と思われます。 SH-4(SH7750)は、日立製(現在は他社のようです)で32BitのRISC(Reduced Instruction Set Computer) SH-3 DSP(SH7729R)は、同じく日立製の音声、画像データを高速に処理できるDSP機能を搭載した32ビットRISCマイコンです。参考URLは、↓ http://www.vdec.u-tokyo.ac.jp/CHIP/SH3DSP/SH3DSP.html SH-3 DSPも、SH-4もCPUの駆動周波数は、基本周波数66Mhzを3逓倍して約200Mhzにしていますので、同等のようですが、DSP内蔵のものは、音声や、画像処理に適していると想像されます。 注意する点としては、MCUタイプでは、プログラム格納用にFlash Memoryが搭載されていますが、書き込み回数は約100回程度と言われていますが、現実には、数回程度で書き込みが出来なくなる場合もあります。 さらに、プログラムの本格的な開発では、ICE(In Circuit Emulator)を用いて、プログラムのブレークポイントや、トレースなどを用いる場合があります(かなり高価です)も含めて検討する必要があります。 以上ですが、分かりにくいと思いますが、結論は、MCUタイプの評価ボードで開発をされることと、SH-3DSPでも、SH-4でもいずれでもよいのではないかと個人的には思いました。

zaki_shin
質問者

補足

アドバイスありがとうございます。 その後もう一度仕様を比較してみたところ、 プロセッサタイプとコントローラタイプの違いは MMU(Memory Management Unit)の有無ではないかと 思いました。 (プロセッサ:あり、コントローラ:なし) 参考URL(SH3-DSP) プロセッサ↓ http://www.renesas.com/jpn/products/mpumcu/32bit/sh/sh7727/index.html コントローラ↓ http://www.renesas.com/jpn/products/mpumcu/32bit/sh/sh7641/index.html  プロセッサタイプでは、MMUの存在によりOSを載せることができる(載せやすい)のに対し、コントローラタイプでは割り込み処理オンリーのプログラムが主なものになると思うのですが、この解釈はどうでしょうか? ちなみにどちらも内蔵ROMなしでしたが、この場合、プログラムの格納場所は外部のEEPROMなどに書き込むことになるのでしょうか?  次にSH4は、スーパースカラ方式というものを採用しており、同時に2つの命令を並列処理できるそうです。  また、FPU(浮動小数点演算器)があることによりDSP演算を高速に実行とありますが、これはなぜでしょうか?浮動小数点の計算ができると積和演算が早くなるのでしょうか? (参考URL)http://www.renesas.com/jpn/products/mpumcu/32bit/sh/sh4/index.html 上記のことを仮定すると、スーパースカラ方式により 多チャンネルの信号を同時処理するにはSH4を使うのが良い。また、一つチャンネルの信号を処理するのにもFPUによりDSP機能を持たせることによりSH4でOK? それで基本的にはSH4を用いるのが良いという風に思ったのですが、どうでしょうか? 重ね重ねすいません。部分的にでも結構ですので回答宜しくお願いします。

関連するQ&A

  • デジタル信号処理を行うデバイス

    いつもお世話になっております。 デジタル信号処理について質問です。 いま、畳みこみなど、基礎的なことを学習中なのですが、 それらが実際のどの場面で、 どのように活かされるのかがいまいちつかめません。 一般に、「デジタル信号処理」は実際どのようなデバイスで実施されるのでしょうか? MATLABなどのソフトで実行するのと、 デジタルシグナルプロセッサーで実行するのは違うことなのでしょうか? また、「組込」で信号処理をどのように応用しているのでしょうか? さらに、 ・DSP用のLSI設計、 ・FPGAを使ってDSP用の論理回路を組む ・DSPボードそのものの作成 などということがあるとしたら、 その設計にも、畳みこみやFFTなどといった デジタル信号処理の知識が必要なのでしょうか? 必要であるとしたら、その「設計」は何を使ってするのでしょうか? 一度にたくさん質問しすぎて、すみません。  DSPについていろんな「応用例」を是非知りたいと思い、質問しました。 この中の一つでも教えていただけたら幸いです。 よろしくおねがいします。

  • ルネサステクノロジ SH2(7045F)の資料

    ルネサステクノロジーのMCUタイプのSH2(SH7045Fなど)に関して勉強を始めています。 会社のページから「ハードウェアマニュアル」を見て勉強をしてるのですが、 ページが多く、全体的な概要を把握するのにあまり向いておりません。 CまたはC++言語でD/AとA/D変換, SCIなどを利用するプログラムを 作っていきたいのですが、サンプルプログラムを含むwebや資料 などご存知ないでしょうか?

  • マイコン

    アナログ電圧信号を取り込み、デジタルフィルタ等の処理をした後、規格値との比較・判定を行なうような検査装置を作りたいと考えています。 サンプリングは5~10KHZ位で、必要チャンネル数は40チャンネル位です。 どのようなものを使用すれば可能でしょうか? パソコンは使用せず、マイコンのようなものでやりたいのですが、 無謀でしょうか? 測定電圧はDC±10Vです。 測定精度はフルスケールの±2%程度を考えています。 測定は40ch同時です。ただ、サンプリングレートが確保できれば ch切替式(マルチプレクサタイプ)でもOKです。 判定出力(OK,HI-NG,LOW-NG)も必要です。 よろしくお願いします。

  • FFTによるフィルタの可能性について

    はじめまして、信号処理については初心者です。教えていただけると幸いです。 ソフト処理でディジタルフィルタを作成したいと思っています。 リアルタイム処理が最終目標です。 IIRとかFIRとかの手法がありますが、FFTによるフィルタリングの可能性はあるのか知りたいです。 エクセルを用いて、模擬的に作った方形波をFFT演算して、 その結果の高い周波数部分を0にして逆FFTすると、綺麗に高調波が除去されていました。 この方法でのフィルタリングは実現可能なものと考えてよいのでしょうか? FFT処理では、エクセルの結果を見る限り、(当たり前ですが)遮断周波数でスパッと切れた波形が得られています(遮断周波数以上の振幅は0になる)。 一方、フィルタの本などでは、振幅減衰は1次で-20dB/dec、2次で-40dB/decと書かれており、 物理法則上そうなるものと思っていました。 FFTを利用したフィルタリング(遮断周波数以上の振幅は0)というのは、 何か原理的に(物の理として)おかしいところはないのか、不安に思っています。 また、電気系の雑誌にはIIRフィルタ等の使用について書かれている記事を見受けますが、 FFTフィルタリングが可能だとすれば、こちらの方が理想的なフィルタが得られることになります。 何か問題があってFFTフィルタリングが採用されていないと思いますが、どのような問題を秘めているのでしょうか。 (FFTフィルタが理想なのに、IIRフィルタが使用される理由は?) 上にも記載しましたが、将来的には高速マイコン(DSP,FPU付き)を使用してリアルタイム的な処理を行いたいと考えています(サンプリング周波数は16kHz程度です)。 FFTフィルタリングの設計の肝、IIR(FIR)フィルタとの使い分けについても、ご教示いただけると幸いです。 どうぞよろしくお願いいたします。

  • DSP(ディジタル信号処理)について詳しく教えてください。

    今、DSPについて調べているのですが、ディジタル信号の作成や編集を行う事を DSPというと、書いてありました。また、C言語で/アセンブラで目的にあった動作をさせるとありました。他にも、例えで、DSPは、レーシングカーF1 、 CPUは、 レジャーカーと書いてありました。これは、処理速度の違いを表していると思うのですが、具体的に、DSPとCPUの違いを教えてください。それと、DSPが、どのように使われてるか教えてください。お願いします。

  • PC内RAW現像がカメラ内現像よりも時間を要する訳

    デジカメで撮ったRAWデータをパソコンで現像してjpegとして書き出すと数十秒ぐらいの時間がかかります。 一方でデジカメ本体でjpeg画像を出すように設定すれば、撮った瞬間すぐに(恐らく1秒以下)jpegを書き出します。1万円ぐらいの安いコンパクトデジカメ、携帯電話のカメラでも同様です。この場合、撮像素子が作り出したRAWデータをカメラ内のマイコン(画像エンジン)でホワイトバランス、色みなどの味付けをして、jpegデータを生成しますよね。 前者が後者よりも時間を要するのは何故でしょうか。情報処理能力は、パソコンのほうがカメラ内のマイコンよりも優れていそうなのに。カメラのマイコン(ハードウェア、ソフトウェア)がjpeg生成に特化して設計されているのでしょうか。現像するためのプログラムに大きな違いがあるのでしょうか。

  • dsPICとPIC24の処理速度について

    PIC12とPIC16やAVR(ATmega88など)を使ってこれらのマイコンには慣れてきたところなのですが、今回作成するものが処理速度が速いマイコンが必要で、AVRライタを自作したときに対応しているという事だったのでなんとなく買っておいた、dsPIC33FJ32GP202 か PIC24HJ12GP202 を使ってみようかと思うのですが、これらのマイコンは未経験で全くの素人です。 そこで質問なのですが、PICの場合4クロックで1命令というのはこれらのマイコンもそうなのでしょうか?・・・だとすると、これらのマイコンは40MHzとのことですが、実質10MHz?・・・AVRを20MHzで使った方が処理速度が速いという事なのでしょうか? また、上記が違い1クロックで1命令で、これらのマイコンの方がAVRより速い場合、dsPIC33とPIC24HJはどちらの方が速いのでしょうか?同クリスタルを使えば同じですか? 最後に、dsPICのdspとは何の機能なのでしょうか? 以上3点よろしくお願いします。

  • オシロスコープの自作

    プローブからの電圧をA/Dコンバータで読み込み、それをパソコンに出力するタイプのオシロスコープの自作を試みています。 マイコンには、現在、開発環境の整っている3694FかSH7144を使用したいと思うのですが、これらのマイコンに搭載されているA/Dコンバータはスキャン速度が遅く、最大でも分解能3kHz程度のオシロしかできないと考えています。 理想的には10MHz程度までの信号を計測したいのですが、何か安価な方法は無いでしょうか。

  • DSP入門者です。

    DSP入門者です。 現在三上直樹氏の「C/C++によるディジタル信号処理入門」を参考に マイコンとPCを使って勉強中です。 マイコンのADCの都合上、入力信号を0Vではなく1.6V中心に振幅させて マイコンでADCした値をパソコンのアプリでフィルタ処理してグラフ表示しています。 IIRのハイパスフィルタをかけると出力結果が1.6V中心の振幅ではなく、0V以下中心になってしまいます。 ローパスだと1.6V中心の振幅になっているように見えています。 フィルタのパラメータは書籍付属のツールを使っています。 設定は下記の通りです。 高域通過フィルタ バタワース特性 次数    :4 次 標本化周波数:30.000000 kHz 遮断周波数 :1.000000 kHz デジタルフィルタは0V中心の振幅を想定しているのでしょうか? それともパラメータや処理に問題があるのでしょうか? 基本的な質問だと思うのですが、ご教授いただけないでしょうか。

  • デュアルプロセッサーとの違いは

    HT(ハイパースレッディング)対応のMPUと、デュアルプロセッサーとの違いは、なんでしょうか? 仮に、同じ処理速度で、ベースクロックも同じタイプの、HT型MPUとデュアルプロセッサーでは、処理速度と総合的な機能の差は、どうなるんでしょうか?

専門家に質問してみよう