關於我們所設計的 8051 和 PC 間的通訊協定,可以分幾個層次來看

Baud Rate Scan

8051 端會給予每個 Baud Rate 2.5 秒的時間看看 Handshake 有沒有完成。而 PC 端則是以預先設定的 Baud Rate 一直送 HandShake 問題

HandShake

Handshake 採用 PC 問 8051 回答的方式,PC 會不斷丟出 'Lucy' 的字串,若 8051 端正確的連續接到 'L' 'u' 'c' 'y' 四個字,就回送 'Lworm' 字串,PC 收到後就完成 Handshake。

After HandShake Synchronize

因為在 8051 回答 'Lworm' 的時候,PC 還是不斷的在送 'Lucy' 字串,為了加以區別,我們讓 PC 完成 Handshake 後,先送 10 個 0 字元,再送 10 個 255 字元,當 8051 接到第一個 255 字元後,再接到第一個非 255 字元時,才是真正的封包開始。

封包

封包用 Length-Data 方式編碼,先傳一個 2-byte 的封包長度(不含自己) n,之後的 n 個 byte 都是所要的程式。程式一定被傳到 A000h 的 RAM 位址上。在傳送封包時,不使用 Timeout ,以避免過大的封包會被切掉。