一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

单片机端是如何实现下载程序的?

来源:网络整理 发布时间:2018-07-10

摘要: 本文详细介绍了单片机端下载程序的方法和电脑端(SEC_ISP)下载程序的方法。

这个问题我们分两部分来说,一部分是单片机端是如何实现的,另一部分是电脑端是如何实现的。

一、单片机端是如何实现下载程序的?

              单片机端下载程序的方法

要说清这个问题,就需要说说STC单片机的存储器,STC单片机的存储器包含数据存储器SRAM,程序存储区ROM,EEPROM和ISP程序监控区,以下以STC15w448s4为例说明:

A. 数据存储器SRAM:4K大小,内部RAM256字节<idata>,内部扩展的3840字节<xdata>,这部分就是用来给我定义变量,常量的区域。

B. 程序存储区ROM:48K大小,今天的重点,程序下载后就是存在这部分区域里了。

C. EEPROM:13K大小,此部分就是类似于24C02这样的芯片,掉电存储区,用于保存密码等一些掉电后不能丢失的数据。

D. ISP程序监控区:STC官方在芯片出厂前就通过特殊方式固化了程序在内部,我们用户是没法操作和使用本区域的。

ISP程序监控区的作用:

在ISP监控区里,STC官方出厂芯片的时候就已经烧写进去一段特殊的代码,我们用户是没法修改和查看的,这里说的烧写也不是我们给单片机下载程序这样简单的烧写,是通过特殊的方式特殊的接口写进特殊的程序,总之不要想着去搞懂它,要懂的接下来我们慢慢说。

STC单片机在上电的很短一段时间内是不去执行我们用户的程序的,单片机是首选去执行ISP监控区域的代码,此时这里面的代码只干一件事,就是不断去检测P30引脚上的数据。

a、如果P30引脚上的数据是连续的合法的下载命令,那ISP监控区域内的程序就去擦除程序存储区ROM内的我们上一次烧写进去的代码,再把我们当前这次需要下载的程序存储到程序存储区ROM内,最后在复位PC指针,使得PC=0000H。完成这些后,CPU就不断的通过PC指针去读取我们刚才烧写进去程序存储区ROM内的代码来执行,到这里一次完整的程序下载(烧写)就完成了。

b、如果P30引脚上没有连续的合法的下载命令,那ISP监控区域的程序就去复位PC指针,使得PC=0000H,CPU就不断的通过PC指针去读取程序存储区ROM内的代码来执行。

二、电脑端(STC_ISP软件端)是如何实现程序下载的?

              电脑端(SEC_ISP)下载程序的方法

如上图所示,当我们点击STC_ISP软件中的下载/编程按钮(上图中红圈部分)后,电脑就不断发送下载命令到CH 340G,芯片内部转换电平后得到标准的串口信号,再发送给单片机的P30口。此时,单片机是不会执行下载程序的,需要我们给单片机断电一下,再上电实现冷启动,冷启动后,上面我们说到ISP监控区域就起作用了,上面我们说了,在单片机上电的很短一段时间里,单片机是去执行ISP监控区域的程序的。

ISP识别出此时单片机P30引脚上的信号是电脑发送的下载命令,那ISP监控程序就在单片机P31引脚上返回一个信号,信号再通过CH340G转换后传输到STC_ISP软件,软件识别出返回的信号是单片机给的,此说说明电脑端STC_ISP软件和单片机之间通过“密码”连接成功,也就是下载时候STC_ISP右侧监控区域里显示的“握手成功”。接下来通信就正常化了,STC_ISP不断的发送我们要下载的程序到单片机的P30引脚,单片机从P31引脚不断返回“接收正常”,不断的这样重复下去,直到程序下载完。

程序下载完后,单片机ISP监控区域代码还在一直识别,但是STC_ISP 软件已经不再发送数据,此时单片机ISP区域代码检测不到下载命令后,直接使PC复位,使得PC=0000H,CPU就不断的从程序存储区ROM里读取程序来执行,此时我们直观看到的就是单片机程序下载成功了,而已单片机已经在执行我们的程序,只要程序没问题,那自然能看到我们想要的效果啦。

下面,简单总结下载程序的全过程:

1、电脑端点击“下载”按钮,STC_ISP 软件发送下载命令到单片机P30引脚,此时单片机需要冷启动

2、单片机冷启动后,P30引脚收到下载命令,再从P31引脚返回自身的基本信息,此时单片机和STC_ISP已经捂手成功

3、STC_ISP发送程序数据到单片机P30引脚

4,、单片机接收程序数据并保存在程序存储区ROM里,并从P31引脚返回“接收成功”信号到STC_ISP

5、STC_ISP接收到单片机返回的“接收成功”后,重复第3步,知道需要下载的程序数据发送完毕

6、程序数据发送完毕后,单片机P30引脚不再收到下载数据,过一小段时间后,ISP监控区域复位PC指针,使得PC=0000H,单片机开始从程序存储区ROM里读取程序来执行。

最后我们来总结一下,STC单片机下载程序的几个关键点:

1、单片机要和电脑采用串口方式建立连接

2、电脑端串口要能正常通讯

3、单片机要能断电冷启动

4、单片机要能返回自身的一些基本信息回到电脑端。

声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: