当前位置:首页 > 单片机 > 单片机
[导读] 本文针对单片机下载程序时需要重复机械式复位产生的一系列调试繁琐的问题,提出了一种用软件引导代替单片机硬件复位写入ROM的方法。该方法通过检测串口数据流是否合法,来判断是否执行ISP引导程序,从

本文针对单片机下载程序时需要重复机械式复位产生的一系列调试繁琐的问题,提出了一种用软件引导代替单片机硬件复位写入ROM的方法。该方法通过检测串口数据流是否合法,来判断是否执行ISP引导程序,从而利用软件方式复位,可以让STC单片机复位后从ISP引导程序处执行,利用该特性可以模拟单片机上电复位状态,实现单片机的不断电下载。

随着单片机技术的发展,单片机片内存储器的容量越来越大,可以容纳越来越大的程序。由于程序越来越复杂,在程序调试过程中需要不断进行硬件复位来下载程序,虽然在线下载程序的方法已经普遍应用,但在现实调试实现中还是比较繁琐,因此人们在寻求一种用软件代替硬件的复位方法来调试下载程序,近而在工程实际中更加快捷方便地进行程序实现。因此,文中提出了一种软件复位单片机的方法,即利用STC单片机独有的ISP引导区,用特殊的指令使调试好的程序从ISP引导区执行,避免频繁地硬件复位,而且简单实用。

1 软件复位单片机的工作原理
1.1 STC单片机复位方法简介
STC单片机的复位方法分为热启动和冷启动两种:冷启动是系统断电后再上电的硬件复位;热启动分为3种:一种是reset引脚复位,一种是内部看门狗复位,一种是ISP引导区复位。热启动中的reset复位是reset引脚接受到复位信号直接从用户区执行,内部看门狗是在外界电磁干扰致使程序跑飞时发出一个复位信号,使程序地址指针移动到00H,产生和reset复位相同的效果,ISP引导区复位是一种只有在系统上电时才执行的程序存储区,当程序执行到ISP引导区时,如果系统没有检测到合法的数据流,则直接执行用户程序区;如果系统检测到合法的数据流,则先下载程序,再执行用户程序区。单片机启动的过程为:先给断电的单片机通电,进行STCISP下载,然后执行用户程序,或者没有检测到合法的数据流,然后直接执行用户程序区。其流程图如图1所示。


1.2 软件实现不断电下载的工作原理
STC单片机ISP_CONTR是单片机进行软复位的控制寄存器,其地址为E7H,进行ISP_CONTR定义后,再自定义串口接受的数据流。然后进行串口初始化和定时器初始化,串口初始化的波特率和具体工作方式要与下载软件一致,定时器设置初值任意,在软件中保证1 s即可。串口中断子程序设计,具体过程为:当串口接受数据后,把SBUF中的数据和用户自定义数据进行比较。如果一致,赋值给ISP_CONTR使单片机复位;如果没有接受到合法数据流,则继续执行用户程序。具体流程如图2所示。



2 在线下载接口电路
图3为STC89C52与RS232串口的连接电路图,RS232为负逻辑电平,所以单片机在与上位机进行通信时需要逻辑转换,图3所使用的转换芯片为MAXIM公司生产的MAX232标准RS-232接口芯片,使用+5 V供电,内部为爽组驱动器/接收器,每个接收器将RS-232电平转换为5 VTTL/CM OS电平。其中,RS-232在现代应用中由标准的25线简化为发送线、接收线、地线三线传输。串口的发送和接收线分别与RS-232的R1IN和T1OUT相连,MAX-232的R1OUT和T1IN分别与单片机的P3.0和P3.1相连,实现上位机、转换芯片、单片机的相互通信。



3 不断电下载程序设计
在单片机和PC机通讯并实现不断电下载,首先要设置好串口通信协议,例如串口接受与发送数据的波特率,串行口的工作方式,串行口接收与发送的数据帧格式;其次是定义自定义下载命令,并与实际发送命令一致;再次是设置串口发送命令等待时间,这可以通过单片机内部定时器来实现;最后为下位机接收发送自定义指令判断,实现软复位。
3.1 串口通讯协议初始化
首先设置波特率,根据STC单片机的晶振频率和STC芯片性能,设波特率为9 600 bit·s-1,波特率由定时器的溢出率控制。然后设置串行口的通信协议,如数据位位数、停止位位数以及是否奇偶校验,具体设置如图4所示。


3.2 定时器的设置
波特率为9 600 bit·s-1,在串口工作方式2的情况下,根据方式2的波特率=(2SMOD/32)*(T1溢出率)。假设单片机的晶振频率为11.0 59 2 MHz,经12分频后得到计数器记—个数的时间为12/11.059 2 MHz,定时器T1溢出一次的时间为(256-X)×12/11 059 200,所以T1的溢出率为11 059 200/[12×(256-X)],因为波特率不需要加倍,所以SMOD=0。根据公式得,9 600=(1/32)×11 059 200/[(256-X)×12],解得X=253,转换成16进制数为0Xfd。减少了程序的冗余性,定时器的工作方式设定为2,定时器自动重装,不必写定时器中断子程序。
3.3 初始化子程序

3.4 用户自定义下载命令
定义语句为:#define seffdecide_download_commond0x8E。0x8E是用户任意定义的下载指令,但最多不能超过0xFF,因为ISP_CONTR寄存器只有8位。接着进行ISP_CONTR的地址定义,通过查STC89C52的用户手册,其语句为sfr ISP_CONTR=0xE7。
3.5 串口接收合法数据程序
单片机的工作原理是循环扫描,即使不加大循环while语句,用户程序也总是一遍一遍地执行,所以用户程序需要时时刻刻扫描是否是合法数据流的出现。
串口中断的编号为4,首先要检验中断标志位RI,如果RI置1,说明上位机向单片机的串口发送指令;随后指令内容被传送到单片机的SBUF中,判断SBUF中的命令内容是否和用户自定义的命令一致。如果一致,直接向ISP_CONTR中赋特定的值使程序指针指到ISP引导区,实现程序的软复位;如果不一致,使TI清零,以便下一次中断申请。
3.6 延时子函数
串口接收数据有1 s的延时时间,所以需要加延时子函数,代码如下:
Void delayl s()
{
Int p,q;
For(p=1000;p>0;p--)
For(q=100;q>0;q--);
}

4 结束语
介绍了STC系列单片机不断电下载程序的程序设计思路及方法,运用STC单片机独有的ISP引导区对软件模拟硬件复位实现单片机的不断电下载程序,省去了编程器的频繁插拔件或者频繁的手动复位硬件开关。此方法在大的程序编写调试过程中能节省大量时间,但也降低了串行口的使用效率。本例适合运用在使用串行口较低的情况下,并且在调试的情况下可以省去手动频繁的复位操作,减少工作量。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

在现代电子技术的快速发展中,单片机以其高度的集成性、稳定性和可靠性,在工业自动化、智能家居、医疗设备、航空航天等诸多领域得到了广泛应用。S32单片机,作为其中的佼佼者,其引脚功能丰富多样,是实现与外部设备通信、控制、数据...

关键字: s32单片机引脚 单片机

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

在当前的科技浪潮中,单片机作为嵌入式系统的重要组成部分,正以其强大的功能和广泛的应用领域受到越来越多行业的青睐。在众多单片机中,W79E2051以其卓越的性能和稳定的工作特性,成为市场上的明星产品。本文将深入探讨W79E...

关键字: 单片机 w79e2051单片机

单片机,又称为微控制器或微处理器,是现代电子设备中的核心部件之一。它集成了中央处理器、存储器、输入输出接口等电路,通过外部信号引脚与外部设备进行通信,实现对设备的控制和管理。本文将详细介绍单片机的外部信号引脚名称及其功能...

关键字: 单片机 微控制器 中央处理器

随着科技的飞速发展,单片机和嵌入式系统在现代电子设备中的应用越来越广泛。它们不仅提高了设备的智能化水平,还推动了各行各业的创新与发展。在单片机和嵌入式系统的开发中,编程语言的选择至关重要。本文将深入探讨单片机和嵌入式系统...

关键字: 单片机 嵌入式系统 电子设备
关闭
关闭