单片机端是如何实现下载程序的?电脑端(STC_ISP软件端)是如何实现程序下载的?

描述

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

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

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

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

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软件端)是如何实现程序下载的?

存储器

如上图所示,当我们点击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、单片机要能返回自身的一些基本信息回到电脑端。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分