新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STC12C系列的協(xié)議分析

STC12C系列的協(xié)議分析

作者: 時間:2016-11-29 來源:網(wǎng)絡 收藏

我正在想,那么C級別的單片機是不是xx 43呢~

以下數(shù)據(jù)幀省略幀頭幀尾幀長度校驗碼

——————–核對MCU型號幀————————-

發(fā)送數(shù)據(jù) 50 07 00 36 01 MCU型號

接收數(shù)據(jù) 8F

——————-波特率實驗幀—————————–

發(fā)送數(shù)據(jù) 8F xx yy zz aa dd 83

xx=0xC0 (C0=1100 0000,意思就是T1x12,波特率加倍)

yy=定時器重載值,按照加倍/1T計算。

zz=設置校驗值,計算方式是 ff=xx

aa=波特率校驗值,計算方式是aa=2 * (0×100 -yy)

dd=延時值,延時多少時間片切換

83為ISP定時常數(shù),這個值適用于12M晶振,在STC手冊中有不明顯的描述:

1//#define ENABLE_IAP 0x80//if SYSCLK<30MHz
2//#define ENABLE_IAP 0x81//if SYSCLK<24MHz
3//#define ENABLE_IAP 0x82//if SYSCLK<20MHz
4//#define ENABLE_IAP 0x83//if SYSCLK<12MHz
5//#define ENABLE_IAP 0x84//if SYSCLK<6MHz
6//#define ENABLE_IAP 0x85//if SYSCLK<3MHz
7//#define ENABLE_IAP 0x86//if SYSCLK<2MHz
8//#define ENABLE_IAP 0x87//if SYSCLK<1MHz

但是實際上測試似乎83這個值在40M都沒有問題。

接受數(shù)據(jù):

8F xx yy zz aa dd 83

—————————–波特率確認幀

發(fā)送數(shù)據(jù) 8E xx yy zz dd 83

接收數(shù)據(jù) 同上

——————————擦除幀:

這里我有充分的理由懷疑老妖是有毛病的。都到了下載程序的地步了還搞這么詭異的擦除命令:

184FF00F00000F00000000000000000000000
200807F 7E 7D 7C 7B 7A797877767574737271706F 6E 6D 6C 6B
36A696867666564636261605F 5E 5D 5C 5B 5A595857565554
4535251504F 4E 4D 4C
54B 4A494847464544434241403F 3E 3D 3C 3B 3A3938373635
634333231302F 2E 2D 2C 2B 2A292827262524232221201F 1E
71D 1C 1B 1A191817161514131211100F 0E

回應:

00 00

———————數(shù)據(jù)幀

發(fā)送 00 00 00 ADDR 00 LEN EF 0×80 bytes數(shù)據(jù)

ADDR = 2BYTE 的地址,高位在前低位在后

LEN 似乎是數(shù)據(jù)長度

數(shù)據(jù)字段如果不足80 bytes填ff補足

回應 07 ChkSum

ChkSum的算法和前面介紹的一樣,只不過只是針對數(shù)據(jù)部分的校驗

——————設置型號幀:

69 07 00 36 01 MCU_MODEL

MCU_MODEL是MCU型號

回應就一個字 8D

——————-設置選項幀

發(fā)送:8D FF x1 x2 FF FF FF FF FF x3 FF FF FF FF FF FF 00 A9 0A A6

x1,x2,x3參見前面的選項信息

接受:50 FF x1 x2 FF x3 03 FF 固件版本 FF x1 x2 FF x3 FF 00 A9 00 03 00 9A 04 79 1A 00 AD FF 00 62

——————RESET幀

發(fā)送:82 00 00

沒有回應。

具體實現(xiàn)可以看kSTC12-ISP的實現(xiàn)方式


上一頁 1 2 下一頁

評論


技術專區(qū)

關閉