平成26年3月31日
XMODEM
(平成26年4月1日追記)
XMODEMは使用していません。記憶間違いでした。(追記ここまで)
XMODEMに関してはこちらに詳しい説明があります。データを128バイト毎のブロックとして、ブロック毎にヘッダ・シーケンス番号(とその補数)・チェックサムを付加しています。送受信のシーケンスは大まかには
1.受信側からNAKを定期的に送信
2.送信側が一ブロックを送信
3.受信側がACKを送信して、2.に戻る
4.送信側がデータの最後まで送信を確認したときにはEOTを送信
5.受信側がACKを送信して終了
となります。
この構成から、内部的に1ブロック分のバッファを用意して、バッファが一杯になった(指定の文字数を受信)後に出力部へデータを送るようにします。