历史上的今天
今天是:2025年01月26日(星期日)
2019年01月26日 | STC51烧录程序时序分析
2019-01-26 来源:eefocus
Note1:关于STC51的冷启动下载和复位
STC51单片机里面有一段出厂时固化的程序,这段程序的作用是检测串口是否要下载程序,不需要则执行单片机内的用户程序。每次启动时运行这端程序,这就是为什么每次下载时要冷启动。而复位后单片机是从地址0X0000H处开始执行,地址0X0000H又会指向主程序入口,即主函数处,即片内下载的用户程序而不会执行前面已经固化的检测串口那段程序。这就是为什么单片机每次下载要冷启动,而复位不行。注意,程序前面的宏定义什么的东西不占用系统时间,所以主程序即主函数处。
有一个办法可以给那些需要加电立刻启动的用户,STC单片机可以设置为加电时只有P1.0/P1.1为低电平时开始下载程序,否则直接执行用户程序。这种办法快,不用等前面检测串口的那段时间。STC51单片机冷启动是必须的而复位电路不是必须的,不管是冷启动还是手动启动。也就是想下载程序必须冷启动,而有没有复位电路无所谓。但是最小系统板上必须有复位电路,无论是上电复位,还是上电加手动复位,虽然在一些简单的程序中看不出区别,但是因为复位操作会对一些特殊寄存器产生影响,这样没有复位操作的话再次执行函数的时候会出现错误。单片机断电后在通电也会从主函数处继续执行,可能是单片机断电后地址自动回到0X0000H,但是那些特殊寄存器里的值不会改变。
单片机的上电复位和手动复位是比较简单的电路,只要是根据单片机手册要求的复位时间TRESET要小于复位电路中的RC常数。
单片机下载程序一般都是通过串口,即上位机(STC-ISP)与单片机的底层通信都是通过串口协议实现的,两者之间更为高级的通信协议是建立在串口协议上的。
Note2:上位机(STC-ISP)检测单片机时序
波特率即为串口发送每比特所占用的时间,此处为2400,即每比特所占用的时间为1/2400=4.167*E-4 (S);可以点击检测MCU选项,上位机开始与单片机握手。整个握手过程可以从图2.2中获得,图中橙色为上位机发送的询问脉冲,蓝色为单片机的响应脉冲

图2.1 STC-ISP软件

图2.2 握手过程
由图2.2可知,上位机先发送检测信号,此时单片机需要冷启动,检测信号可以参看图2.3。在单片机冷启动后,单片机会运行内部固化程序,自行检测串口是否有上位机检测信号。一旦发现检测信号,单片机回复响应信息,响应信息波形可见图2.4,内容则可见图2.5。

图2.3 检测信号

图2.4 响应信号

图2.5 回复内容
上位机接收到单片机响应后的回复信号,波特率为2400,每比特所占时间大约为416us,可以根据图2.7对上位机的回复进行数据解析。

图2.6 上位机回复内容

图2.7 上位机回复内容
Note3:上位机(STC-ISP)程序烧录
总的烧录过程为:上位机先检测单片机,再通知单片机开始烧录程序,每次发一小段程序,单片机会有一个ACK,之后再发结束指令,图3.2接图3.1。

图3.1 程序烧录

图3.2 程序烧录
Note4:总结

图4.1 汇总
史海拾趣
|
基于单片机频率合成器设计矿业大学99毕业论文频率合成和锁相技术是近年来发展起来的新兴技术。它们在雷达、通信、遥控遥测、电视广播和电子测量仪器等领域已得到广泛的应用。 频率合成器的应用之所以广泛,大概主要归因于两种趋向:一是由于通信频 ...… 查看全部问答> |
|
想求求各位大虾帮帮忙 看看用单片机控制步进电机正反转 调速 怎么弄 步进电机驱动是 用tb6560做的 我买了 步进驱动器--tb6560ahq-v2.0(0.5-3A ,2、8、1 ...… 查看全部问答> |
|
最近在做一个项目是关于串口通信的 要从外部接收大量的一个字节一个字节的数据 想把接收的某一部分存在norflash中用数组该怎么声明呢??(ADS编译器) 放在ram中又该怎么声明呢??? 如果不用数组直接放(NORFLASH,RAM)的话怎么能保证自己 ...… 查看全部问答> |
|
最近学习vxworks,看的书大多是tornado的帮助文件 现在能进行vxworks上的应用程序的开发 ,在vmware上启动vxworks 对于bootloader,BSP,有些了解,了解如何在vxworks上建立http服务器(从eeworld上获得代码做的实验) 现在想深入的学习,请教各位 ...… 查看全部问答> |
|
请介绍些Windows mobile 5.0 pocket pc 平台级(操作系统的定制)开发的资料? 请介绍些Windows mobile 5.0 pocket pc 平台级开发的资料? 注意不是应用软件端的开发,是操作系统的定制。 我装了VS2005 以及一些SDK 模拟器,只找到程序端的开发的资料。 我网上找了,没找到像介绍Platformbuilder 4.2,Platformbuilder 5.0,Pl ...… 查看全部问答> |




