分类: 单片机2013-06-28
10:44 29人阅读 收藏 举报
stc89c51单片机通讯协议
目录(?)[+]
说明:
ISP
,STC单片机的编程软件;
IAP
,CTC单片机固化的烧写软件;
1、引导码
ISP
:7F 7F 7F 7F 7F
ISP
一直发送0x7F,直到收到IAP的回复帧;
IAP
:68 00 39 00 09 7A 09 7A 09 7A
09 76 09 7A 09 76 09 7A 09 7A
38 43 FD F1 10 82 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 AC 16
IAP
回复帧:没有帧头,有帧尾0x16,校验0xAC,
校验方式:从
0x68到0xAC前面一个数加和,再加1,取低8位;
IAP
的回复帧根据单片机的晶振不同,回复的也不同,上面的是11.0592的晶振;
2、设置通讯速率
ISP
:46 B9 6A 00 0C 8F FF 7D 00 FE 78 80 77 16
IAP
:46 B9 68 00 0C 8F FF 7D 00 FE 78 80 75 16
ISP
:46 B9 6A 00 0B 8E FF 7D 00 FF 78 F6 16
IAP
:46 B9 68 00 0B 8E FF 7D 00 FF 78 F4 16
结构:Head(2) sign(1) reserve(1) length(1) frame(1) data(x) checksum(1) trail(1)
Head(2) 0x46 0xb9
Sign (1) 0x6a pc->mcu
0x68 mcu->pc
Reserve (1) 0x00
Length(1) 0x0c = head + sign + reserve + length + frame + data
Frame(1) 0x8F
、0x8E 不同的数表示不同的操作
Data(x)
Checksum(1) 0x77
从head到checksum前一个字节的加和,再加1,取低8位;
Trail
(1) 0x16
3、通讯同步
ISP
:46 B9 6A 00 0C 80 02 00 36 01 F1 10 30 16
IAP
:46 B9 68 00 06 80 EE 16
收发同步5
次
ISP
结构:Head(2) sign(1) reserve(1) length(1) frame(1) data(x) checksum(1) trail(1)
IAP
结构:Head(2) sign(1) reserve(1) length(1) frame(1) checksum(1) trail(1)
Frame
(1)0x80
4、擦出命令
ISP
:46 B9 6A 00 0D 84 0B 33 33 33 33 33 33 38 16
IAP
:46 B9 68 00 06 80 EE 16
ISP
结构:Head(2) sign(1) reserve(1) length(1) frame(1) data(x) checksum(1) trail(1)
IAP
结构:Head(2) sign(1) reserve(1) length(1) frame(1) checksum(1) trail(1)
Frame
(1)0x84 擦出命令
0x80
5、编程
ISP
:46 B9 6A 00 8C 00 00 00 00 00 00 80 02 0D 2F 12 13 AD 02 15 22 FF FF 02 12 B9 FF E4 33 FE E4 2F F5 82 74 F0 3E F5 83 E0 FA 12 14 55 AF 02 22 02 08 48 E4 90 00 B7 F0 90 00 B7 E0 C3 94 04 40 03 02 02 39 E0 FF 75 F0 07 A4 24 05 F5 82 E4 34 00 F5 83 E0 FE EF 75 F0 07 A4 24 67 F5 82 E4 34 00 F5 83 E0 FF 6E 60 1F EF 24 C6 90 00 B8 F0 C3 94 00 40 10 E0 FD 94 20 50 0A 90 00 B7 E0 FF 12 13 65 80 03 7F 01 22 90 00 B7 E0 FF 75 46 16
IAP
:46 B9 68 00 07 80
D0 BF 16
结构:Head(2) sign(1) reserve(1) length(1) frame(1) data(x) checksum(1) trail(1)
Frame(1) 0x00
编程命令
ISP
帧中data结构:addr(4) lenght(2)programe(128)
Addr(4) 0x00 0x00 0x00 0x00
地址高位->低位,这个地址是写入单片机编程的起始地址,第1帧的地址是0x00000000,第2帧的地址是0x00000080,第3帧的地址是0x00000100,因为每一帧的编程数据长度是0x80,每发一帧地址+0x80;
Lenght
(2)0x00 0x80 每一帧的编程数据长度都是0x0080;
Programe
(128) 编程数据内容
IAP
帧中的data(1)0xD0 为ISP帧中data(x)数据的加和值,取低8位,不要加1;
把要编程的内容全部发完,如果发送的编程数据不够
0x80个字节,则在后面填充0x00,不齐0x80个字节;
6、重启动
ISP
:FE FE FE FE
46 B9 6A 00 06 82 F2 16
ISP
发送上面的内容两次
IAP
没有回复
结构:
Head(2) sign(1) reserve(1) length(1) frame(1) checksum(1) trail(1)
Frame
(0x82) 重启命令