?? 協議.txt
字號:
上位機協議:
1、芯片用不同的波特率往PC機串口發送字符“>”、pc端必須返回“<”字符以建立通訊、如果接收不到PC機的返回字符則說明不需要在線升級程序、則進入用戶應用程序區開始執行、
2、通訊鏈接建立后、芯片開始發送自身芯片型號、FLASH區大小、EEPROM大小以及在線編程的頁面大小等信息給PC機、PC機程序應該顯示此時鏈接的芯片的參數、
3、然后芯片發送字符“!”給PC機、提示PC機可以發送數據了、于是PC機就先發送一個16位的數據頁面編號、從0x0000開始(以后依次是0x0001、0x0002……)、接著發送一串固定大小(與頁面大小一致)的數據給芯片、這個數據就是要更新的二進制數據、當一頁數據發送完成后、PC機接著發送一個校驗碼、要是這個校驗碼與芯片內部計算出來的一致、說明程序接收無誤、就將這頁程序數據由FLASH的0x0000地址開始寫入、如果校驗出錯、就向PC端發送“@”提示PC機再次發送這頁數據、如此反復直至程序被完全寫入FLASH區、如果最后一頁數據不滿、則用0xFF來填滿再發送、
4、pc機完成發送任務后、向芯片發送0xFFFF指令、以示程序數據發送完成、芯片接收到這個數據后即完成了更新工作、跳轉到新的用戶應用程序區開始執行、
對于加密則是必須的、建議在提供給用戶的HEX文件里暗藏幾個字節的認證碼、在升級前先將它們分離出來、加密后發送到芯片、芯片的bootload程序收到后解密、如果校驗通過就給予升級、否則予以拒絕、甚至校驗失敗若干次后清空原來的程序等等、當然上位機的程序要自己編寫、雙方的程序都有一個隨機認證碼表、以免被惡人監聽COM口獲得校驗碼、避免程序被非法修改、
--------田旭/12/04/06年
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -