August 20, 2007

Super Sylphide 進捗状況(8) -- DSP/BIOSを利用した割込みMcBSP(SPI Slave)

オートパイロットシステム Super Sylphideには、高速な計算をサポートするためにメインCPUとしてDSP(Digital Signal Processor)のTI TMS320C6713Bが、そして周辺への接続や基本的なログ機能のためのマイコンSilicon Laboratories C8051F340が搭載されています。両者の間ではA/D変換データや外部からの指令値をやりとりする必要があり、物理的にSPIならびにI2Cの2つのインターフェイスで接続されています。今回はそのうち、より高速にデータを転送できるSPIに関する話です。

SPIは3本または4本の線によって接続される簡易的、汎用的なインターフェイスで、馴染みがあるところですとSDカードにも使われています。お手軽ながら、ある程度のデータ転送速度を確保することができる(現在、最大24Mbpsで利用中)ので、マイコン野郎ご用達インターフェイスであると思っています。以前、SDカードとマイコン間のSPI信号を計測した記事があるので、物理的にどのような信号が流れているか興味があるようでしたら、そちらを参考にどうぞ。マイコミジャーナルのバス記事も、参考にあげておきます。

このSPIですが、お手軽ということもあり多くのマイコンに採用されています。実際Super Sylphideのマイコンにも、まさにSPIの機能が搭載されているので、こちらの実装は非常に簡単でした。
一方のDSPは、これ自体が汎用的、簡易的なものではないので、インターフェイスも残念ながらあまり簡易的なものが搭載されていません。SPIを実現するにあたっても、高機能なMcBSP(Multi-channel Buffered Serial Port)というインターフェイスを、設定によって簡易化して利用する必要があります。加えてDSPはマイコンに比べ割り込み処理が複雑であったり、また今回はDSPに付属のリアルタイムOS DSP/BIOSを利用したタスク管理をしようと考えたため、ますます訳がわからなくなってしまいました。

そんなこんなで、本家TIのドキュメントやComp.DSPを彷徨ったあげく、ようやく完成しました。

CCS_070818.gif
DSP開発環境のCCS(Code Composer Studio)で、晴れてマイコン側から送られたデータ(右下)を読めた。

同じようなことをしたいという奇特な方がどれだけいるかは知りませんが、参考になればと、現時点でのソースコードを散らかしておきます。実装形態の要約としては、タイトルの通り『McBSPをSPI Slaveで利用し、割り込み制御はDSP/BIOSのセマフォを活用』(まさに呪文(笑))です。

※その後、このDSPのSPIでデータの塊を通信する方法について記事を書きました。

00:35 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/587
コメント

ほほう、c67のSPIはMcBSPですか。もともとTIのDSPは、ホストとの通信はHost IFを使う思想なので、SPIのような「低性能ペリフェラル向け」IFは積まない…のかな。
ところで、c6713のDSKを買うと、実はc6711の開発ツールを制限なし、期限なしで使えると聞いたのですが、本当ですか?めちゃめちゃそそられる(笑)

Posted by: 酔漢 : August 20, 2007 10:35 AM

>酔漢さん
どうやら新しいC672XシリーズだとSPIついているみたいですね。次期Mave(笑)では楽ができるでしょうか。
あとDSKの件ですが、最近DSK自体あまり触っていない(正規版CCSを使っています)ので要確認ですが、確かバイナリサイズや使用期限に制限はなかったような気がします。も少し詳しく調べてみますね

Posted by: fenrir : August 23, 2007 01:27 AM

次世代機種では楽を出来ることを祈っています。てか、航法装置の標準化は開発者の楽しみを奪うので先送りでしょうか(w
その後、TIの方に聞いて、DSKにはサイズ制限がないとわかりました。すごいです。

Posted by: 酔漢 : August 23, 2007 04:41 PM

>酔漢さん
なかなか実物でリアルタイムとなると研究以外の実作業(笑)が多くて四苦八苦しています。それでもちゃんとしたものは残したいので、日夜がんばっています!!
DSKですが、搭載されたUSBのエミュレータ機能の配線を外に回して、実は別プラットフォームの同系チップのデバックができてしまいそうな気がします(試してはいませんが、以前どこかのMLで見たような気が…)

Posted by: fenrir : August 24, 2007 11:41 PM
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。