ここから本文です
ブログを始めました・・・

書庫全体表示

勘違い等もあったので、この辺りで立ち止まり再度、
データの転送の仕組みを速度面から考えてみたいと
思いました。根拠とするのは下のカベキンさんが
提供してくれた「ロジアナ波形2」です。
https://imgur.com/a/ulNjzuD

1サイクルのWRとWRの間にTXE#が一瞬highになります。
現在の基板でも配線を手直しすればこのフラグの情報は
取得できますが、このロジアナ波形は最初の基板の時の
ものです。WRがhighからlowに変る直後の一瞬TXE#が
highになりますが、この時だけでFM-7からPCに送った
データを取り零します。この期間は非常に短いですし
PC側で、FT245RLドライバがバッファからデータを取得
するタイミングは判りませんがバッファからデータの
取得時とTXE#がhighになる瞬間以外であれば、FM-7が
送信したデータの取り零しはないと予測してます。

感覚的な観点だけではなく数理的な観点でも考察すると、
1サイクルのWRとWRの間は約10μSで1バイトを送信してると
考えてます。理由は大雑把ですけど1バイト送るコードから
計算しました。またFT245RLの転送能力は300Kバイト/S
ですので10μSで3バイトの転送ができて、FM-7が1バイト
を転送する時間をクリアします。残る問題はPC側が受信
バッファからデータを取得する時間ですけど、FM-7の
1000倍の処理能力があるなら1サイクルのWRとWR間で
余裕で処理は間に合うでしょう、と言う推論をしました。
そして、これが初回の基板からTXE#フラグ情報を省いた
理由になります。もっとも1000倍の処理能力があるからと
言ってPC側で呑気に「printf」等のコードを残していては
データの取り零しの可能性はあります。(因みに自分のこと)

と言うことで、アスロン2(デュアルコア)の10年前の
性能のCPU(10年前でも低性能でしたけど)を搭載した
windows7でテストした結果が「転送ハードの製作30」の
内容です。何か勘違いしてる点や気付いた点で、ご指摘が
あれば助かります。

それではまた。

本文はここまでですこのページの先頭へ
みんなの更新記事