|
勘違い等もあったので、この辺りで立ち止まり再度、
データの転送の仕組みを速度面から考えてみたいと 思いました。根拠とするのは下のカベキンさんが 提供してくれた「ロジアナ波形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」の
内容です。何か勘違いしてる点や気付いた点で、ご指摘が
あれば助かります。
それではまた。 |

>
- コンピュータとインターネット
>
- コンピュータ
>
- ソフトウェア




