DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 355|回复: 0
打印 上一主题 下一主题

基于PIC单片机的应用程序升级方法

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 18:23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
0 引言    dsPIC33F系列单片机是美国微芯公司(Microchip)推出的一款高性能单片机,它将数字信号处理器(Digital Signal Processor,DSP)的高速运算能力与单片机的控制特性无缝地集成在一起,为嵌入式系统设计提供了高性价比的单芯片、单指令流的解决方案,在音频处理、视频处理及工业控制等方面得到了广泛应用。但是在实际应用中,由于客户需求变化或程序BUG修改等原因,经常出现需要使单片机应用程序升级的情况,本文利用dsPIC33F单片机运行时的自编程(Run-Time Serf-Programming,RTSP)特性,实现了基于该单片机应用程序的升级功能。1 基本原理    dsPIC33F系列单片机提供了两种方式用于对其内部程序存储器进行编程:在线串行编程(In-Circuit Serial Programming,ICSP)和运行时自编程(Run-TimeSelf-Programming,RTSP)。ICSP使用5根线对单片机编程,主要用于产品调试或生产过程中,显然不适合用于产品运行时的程序升级。RTSP是通过使用TBLRD(表读)和TBLWT(表写)指令来完成的,使用RTSP可以一次将64条指令(192 B)的块(或“行”)或单个程序存储字写入程序存储器,也可以一次擦除512条指令(1 536 B)的块(或“页”),由于该方法采用程序指令实现了自编程,可应用于产品运行时的程序升级,因此本文采用RTSP方法实现基于dsPIC33F系列单片机的应用程序升级功能。程序升级的实质是对程序存储器内容的更新,所以有必要先了解一下dsPIC33F单片机的程序存储器内部结构。1.1 dsPIC33F单片机的程序存储器内部结构    dsPIC33F单片机的程序存储器结构如图1所示。一般情况下,“复位地址”的内容为全0,单片机复位后均从程序存储器地址0的位置上开始执行,即从图1中的“GOTO指令”位置开始执行。在这里存放了一个跳转指令,直接指向用户程序的首址,默认情况下该位置的指令为“GOTO 0x200”,即默认跳转到首址为0x200的用户程序(图1中的“用户程序存储空间”)开始执行。dsPIC33F单片机具有2个中断向量表,即“中断向量表”和“备用中断向量表”,地址分别从0x000004~0x0000FF和0x000100~0x0001FF这两个中断向量表允许使用不同的中断服务程序来处理每个中断源。程序升级功能正是基于程序存储器内部结构的以上特性而实现。



1.2 程序升级功能的实现流程    将图1中的“用户程序存储空间”分为引导程序和应用程序2部分,如图2(a)所示。引导程序用于引导用户程序是进入升级状态,还是进入正常运行状态,若进入升级状态则接收新的程序数据,并更新程序存储器的内容;若进入正常运行状态则程序跳转到应用程序区。应用程序是为了实现产品功能而编写的程序,也就是本文所谓“程序升级”的对象。
                                
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-22 04:53 , 耗时 0.095776 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表