[H8-ML(2910)] Re: [H8-ML(2890)] 9bitデータ長UARTとDMA
From: わたなべ <yiu03275@xxxxxxxxxxx>
Date: 2003年03月04日(火)23時04分48秒
 先週末から参加させて頂いているわたなべです。過去ログを少し
見させていただきました。
本来[H8-ML(2849)]に返信すべき内容なのですが、メーラーの入れ
換えもうまくいかず、過去ログに返信するのに悩みましたので申し訳
ありませんが、subjectを変えてここにつけさせて頂きます。
----------------------------------------------------
 私もラジコンサーボを使用した2足で遊んでおります。当初の計画
ではAKI-H8のボードでタイマとDMAをからめて関節の数だけPWMを
作りラジコンサーボを動作させ、制御用の数値演算の処理が間に合
わなくなったらSHのボードでも追加してUARTでデータ転送を行おうと
考えていました。
 今のところ数学演算ではなく歩行パターンを作ったところで作業が
止まってしまっていますので16bitマイコンボード1枚で用が足りて
いるのですけど。

 以下データ転送に関する構想(妄想?)です。H8で試してはいま
せんので、一般的なワンチップマイコンの場合と考えて下さい。

 hamayanさんが書かれましたようにワンチップマイコン用のUARTは
昔からマルチプロセッサ通信を考慮し、8bit+1bitのデータ長を扱える
ものが多いようです。このおまけの1bitを使用することで、バイナリ
データのままで「コマンド/ヘッダー/ID」と「データ」を切り分ける
ことができます。
 ただUARTへのデータセット処理をソフトで行うとオーバーヘッドが
大きくなり、これが課題だったのですが、最近のワンチップマイコンは
DMAコントローラが内蔵されておりますので、これを用いることで
処理時間の短縮を図ります。
 具体的には16ms毎の処理の先頭でおまけの1bitを立てヘッダ
データを送信し、後はおまけの1bitを落としてDMAコントローラに
送るべきRAMの先頭アドレスと転送回数をセットします。DMAの
要因として送信終了割り込みなどを使用します。
 受ける方はこの逆となります。おまけの1bitが立っている場合の
データをヘッダと認識し、それなりDMAを設定します。H8のUARTでも
数百kbpsはたぶんいけたと思いますので、負荷の軽いそこそこ速い
通信ができるのではないでしょうか?
 また256bitのヘッダ情報を使用してそれなりのプロトコルを組めば
スレーブからの返信も可能となります。
 DMA転送もバスサイクルを有するわけですが、ソフトで組むより
処理が速いと思います。

 ちなみに私の方はシリアルとDMAコントローラをからめてRAMモニタや
Treva(PHS用カメラ)のデータ取りこみなどに挑戦?中です。

# TK-80 欲しかったです。
#「何でこんなにいっぱい勉強することがあるんだろう? 」
# 私もそうです。何でこんなこと始めてしまったんだろう?
#楽しいけど苦しい。

-----------------------------------------
Masami Watanabe
E-mail      yiu03275@xxxxxxxxxxx
HP URL    http://homepage3.nifty.com/two_legs/
----------------------------------------





スレッド概略
[2849(R)](起点)
 └[2890(U)]
   └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]