基于STM32的PIC单片机程序烧录器设计

2017-06-22 18:45郑洁霁秦国栋
无线互联科技 2017年10期

郑洁霁+秦国栋

摘 要:针对PIC单片机的程序烧录,文章实现了以ARM芯片STM32F103VCT6为核心的程序烧录器的设计。文章首先介绍了STM32F103VCT6的特点以及ICSP下载方式,然后给出了系统设计框图和程序设计流程图。编程实验表明,该烧录器能够可靠、高效地实现对PIC单片机的编程下载功能。

关键词:STM32;PIC单片机;程序烧录器

PIC单片机是Microchip公司的产品,其采用精简指令集的RISC结构。同时采用哈佛双总线结构,能并行处理程序存储器和数据存储器的访问,这种指令流水线结构能在一个周期内完成两部分工作,极大地提升了执行效率[1]。因此,PIC单片机在工业界得到了大量的应用,占据了一定的市场份额。在工业的批量烧录生产过程中,主要使用PicKit等脱机烧录器,其功能比较单一,无法满足扩展功能等需求。随着PIC单片机产品的增多和自动烧录机台等设备的应用,根据生产的实际需求,人们设计了一种基于STM32的PIC程序烧录器,其具有工作稳定、界面直观、操作方便等特点,取得了良好的效果。

1 ICSP协议简介

Microchip公司是最先生产能够在线编程的微控制器生产商之一。这个功能首先是在中档PICmicro微控制器中提供的,但从那以后已经成为所有新的PICmicro微控制器的一个特性[2]。

电路系列编程中(In Circuit Serial Programming,ICSP)需使用5根线,分别为时钟、数据线、电源、接地以及编程电压线。利用ICSP功能,可以很方便地构建一个PIC单片机的串行编程器,将编好的单片机程序固化到芯片中[3]。保持编程时钟和编程数据引脚为低电平,并将VPP引脚电压从VIL增加到VIHH,器件便进入编程模式。此时通过数据引脚即可将数据送入单片机或者从单片机中读出数据。

2 烧录器的硬件设计

烧录器的主控芯片采用ST公司的32位单片机STM32F103VCT6,配有3.2寸彩色TFT液晶触摸屏提供人机交互功能,且具有可调节的电压输出功能以及EEPROM掉电记忆功能。

STM32F103VCT6是由ST公司出品的基于ARM内核的32位微控制器,包括256 K字节Flash存储器、2个12位的ADC、3个通用16位定时器和1个PWM定时器[4]。

系统使用12 V直流电源作为供电电源,通过稳压芯片LM2576,MC78M05和LM1117-3.3分别输出7 V,5 V和3.3 V作为系统内部使用的电源。为了输出13 V左右的VPP编程电压,在系统中使用了PWM波控制的升压电路来完成此功能,如图1所示。

系统通过3.2寸彩色TFT液晶屏提供显示功能,用户可以通过触摸屏来进行对编程器的操作。并通过JTAG接口进行程序的调试和下载。为了实现掉电记忆功能,系统配有EEPROM芯片。连接电路如图2所示。

3 烧录器的软件设计

烧录器的软件设计是整个系统的重点,程序使用C语言开发。在开发中使用ST公司提供的库函数,具有高效、易用的特点。库函数中封装了对底层硬件的控制功能,它可以让开发者无需直接操作硬件,只需调用库函数中提供的功能函数即可完成相应的功能,方便了开发者的使用。

系统使用运行于STM32之上的uC/OSII嵌入式实时操作系统。uC/OSII它是一个源代码公开、可裁减、移植性好、占先式实时多任务操作系统,目前已广泛移植在DSP,ARM单片机等处理器上[5]。

系统通过uC/GUI创建友好易用的图形用户界面,能够完成的功能有:对PIC芯片进行编程、提供LCD的显示、触摸屏功能、自动电压调节、掉电记忆等。在基于实时操作系统的应用编程中,任务设计是整个应用编程的基础。当任务被创建之后进入就绪状态,然后按照优先权的高低依次获得运行权,进入运行状态。在应用编程的设计中,主函数可以简化,只负责跟操作系统有关的事项,而与具体的应用无关,即初始化系统、创建主任务以及启动操作系统。

PIC系列单片机程序下载需遵循ICSP编程规范,其使用数据、时钟两个引脚进行通信,并遵循时序来进行编程。进入编程模式后,通过向芯片发送操作命令和烧录数据进行编程。在本烧录器的信息显示区会有进度条显示烧录进度,并显示烧录成功/失败的提示信息。程序设计的流程如圖3所示。

4 结语

本文介绍了一种基于STM32的PIC单片机程序烧录器的设计方案,阐述了硬件设计的相关功能,给出了控制软件的流程设计。该程序烧录器具有工作稳定、界面直观友好、操作方便等特点。实际应用表明,其具有一定的实用性。

[参考文献]

[1]谢锋然. PIC单片机原理及程序设计[M].北京:清华大学出版社,2013.

[2](加)迈克·普雷多克. PICmicro微控制器编程与自主开发[M].姜汉龙,译.北京:电子工业出版社,2001.

[3]汤竞南.PIC单片机基础与应用[M].北京:北京邮电出版社,2006.

[4]谷峰.一种可输出预置序列的新型程控电源设计[J].重庆理工大学学报(自然科学版),2015 (2):86-90.

[5]程凤兰.一种嵌入式多工位压力机送料机构控制系统[J].制造业自动化,2011(33):20-21.