首页 » 技术文章 » 如何编写STC单片机的ISP协议

如何编写STC单片机的ISP协议

作者:  时间:2011-01-21 11:50  来源:EDN

  本刊网站中给出了ISPC程序源代码ISPC。需要注意的是,此程序在Keil-C中要建立工程文件,包含

  IAPC函数以及STARTUPA51,并且在IAPCISPC中都要去掉STC的定义。为了将地址范围设定到F000H~FFFFH,要将STARTUPA51中程序入口地址由0改为0F000H,如下:

  CSEG AT 0F000H

  C_STARTUP: LJMP STARTUP1

  还要修改编译选项设置Target选项卡中Off-chip Code memory:Start

  =0xF000;Size=0x1000;还要设置C51选项卡中Interrupt Vectors at address:0xF000

  (2)  STC89C516RD程序区Block1Block0的切换实现

  STC89C516RD单片机在烧录时,将ISP程序写到Block1(注意:并不烧录SC0/SC1)。单片机上电复位时,缺省的Block1映射到0000H地址开始的8KB程序区,进入ISP程序执行。需要切换到用户代码(Block0)运行时,ISP修改SFCF[1]控制位SWR,产生一个软复位(Software Reset)。由于SC0SC1都未烧录,程序软复位后,Block1将不再映射到0000H地址映,则开始运行Block0中的用户代码程序。

  本刊网站中给出了ISPC程序源代码ISPC。要注意的是:此程序在Keil-C中要建立工程文件,包含IAPC函数,并且在IAPCISPC中都要保留STC的定义。

  与计算机的通信协议

  升级用户代码时,需要与计算机进行通信,一般采用RS232串行通信,数据协议采用简单协议。此协议参考了ADuC812单片机的ISP数据协议。(ADuC812单片机硬件内置ISP程序)

  (1)  复位命令(计算机单片机)

  计算机发送4字节复位命令:21H5AH00HA6H,单片机返回复位信息。

  (2)  复位信息(单片机计算机)

  复位信息为25字节,前3字节为单片机公司特征字符(:“ADI”“SST”“STC”),最后1字节为校验和。

  (3)  数据包格式(计算机单片机)

  计算机发送数据包格式:07H0EH、长度、数据、校验和(长度与数据的校验和)

  (4)  擦除命令

  计算机发送数据包,其中数据只有1字节,内容为:字符“A”“C”。单片机擦除用户程序区后返回1字节06H表示成功;05H表示失败。

  (5)  编程命令

  计算机发送数据包,其中数据内容:“W”00H,地址高字节,地址低字节,程序数据。单片机返回1字节06H表示成功;05H表示失败。

  (6)  运行用户程序

  计算机发送数据包,其中数据只有1字节,内容为:字符“U”。单片机返回1字节06H表示成功,然后跳转到用户程序运行。

  本刊网站提供了计算机下载软件的C程序源代码Download.C

  结语

  根据以上ISP程序设计思路和实例,大家可以修改ISP初始代码,或者丰富它的ISP功能(读功能、口令控制等),尝试设计自己的ISP程序,定能为自己的系统增色不少。

相关推荐

嵌入式系统的固件更新

嵌入式  Flash  RAM  缓冲区  2013-09-12

苹果再胜诉 三星特定Galaxy产品在荷兰禁售

苹果  Galaxy  blue flash  2012-11-29

把面向数字家庭的Adobe Flash引进到MIPS-Based平台

TPI  Adobe  Flash  2011-09-02

最炫Flash性能 歌美HD8900 LE拆机评测

2011-08-03

基于FAT32文件系统嵌入式软件的实现

Flash  FAT32  2011-07-21

三星、东芝NAND Flash市占差距缩减至0.3%

三星  Flash  2011-07-13
在线研讨会
焦点