随着MCU的广泛应用,其性能不断提高,集成度也日益提高。传统的MCU系统设计,在选好MC U后还要采购大量的分离器件(如地址锁存器、译码器、扩展芯片、RAM,EPROM,PLD等),使系统复杂度高、可靠性低,且调试繁琐、效率低下,造成设计复杂,印制板面积增大。还要考虑到各种干扰,总线竞争等很多因素,系统常常不稳定。
本文介绍一种基于闪烁存储器的在线可编程微处理器外围器PSD4235G2组成的MCU系统。即通过计算机串口将程序代码在线远程下载到MCU系统的存储器中,实现IAP的功能。
1PSD4235G2的性能特点
PSD4235G2( Programmable System Devices) 是ST公司设计生产的一种基于闪烁存储器的在线可编程外围器件。他将MCU系统外围器件高度集成在一起,并与MCU进行无缝连接,只需用2颗芯片MCU+PSD 即可代替众多的外围器件组成一套完整的MCU系统;他还集成了优化的“微控制器宏单元”逻辑结构,使系统地址/数据总线可以与内部寄存器直接互连,简化了控制总线的设计。PSD产品以其设计灵活、资源丰富和极高的性价比在嵌入式系统应用领域得到广泛应用。此外,PSD4235G2还具有以下特性:
(1) 采用多路复用或非多路复用的16位总线为控制器的简单接口。总线接口逻辑使用地址译码和读写时由微控制器自动产生的控制信号,可方便地与16位单片机80C196KC直接相连。
(2) 4 Mb主Flash,被分为8个大小相同的块,由用户规定的地址访问;256 kb次Flash,具有在更新闪烁存储器的同时执行代码的能力;64 kb SRAM通过连接外部电池可保护SRAM的内容使之免受电源故障的影响。
(3) 主Flash和次Flash可同时编程,即在执行来自一个存储器的代码时可同时对另一个存储器编程。
(4) 器件PSD4235G2包括2个PLD块,译码PLD(DPLD)和复合PLD(CPLD)。DPLD用于地址译码并产生内部存储器和寄存器的芯片选择信号;CPLD实现用户定义的逻辑功能。这些逻辑由16个输出宏单元和24个输入宏单元和“与”阵列构成。
(5) 52个单独可配置的I/O端口引脚,配置成MCU I/O,PLD I/O,锁存MCU地址输出、特殊功能I/O,漏极开路输出的I/O端口。
(6) 具有可编程电源管理功能(PMU),支持掉电模式的低功耗模式,使5 V待机状态的电流低至50μA;另外还具有自动检测控制器工作的功能。
(7) 内置JTAG的串行接口,使系统具有整个芯片系统内编程的能力。利用这个功能,用户可以对空的器件编程或现场对器件重新编程。
2系统设计
整个系统是由80C196KC单片机,PSD4235G2,D/A转换器和LCD显示器等构成,并通过上位机对其进行远程编程。其系统结构如图1所示。
80C196KC内部集成10位的A/D转换器,因而模拟量可以直接输入MCU。PSD4235G2具有2块大容量Flash、16个输出宏单元和24个输入宏单元,因而在与单片机组成系统时,很少需要外围分立器件,多数通过PSD4235G2中的宏单元逻辑组合产生与单片机连接的地址总线、数据总线、控制总线;同时,通过内部的逻辑译码产生3块独立存储区片选信号,即主Flash片选FS i、次Flash片选CSBOOTi和SRAM片选RS0。并且PSD4235G2与LCD、D/A电路的接口直接用其PA、PB口连接,只需在软件设计和单片机程序中相应设计为I/O模式或地址锁存模式。
系统由复位电路对80C196KC和PSD4235G2进行复位,主程序放入PSD4235G2中。程序升级时,上位机与80C196KC进行联络,联络成功后由上位机将升级程序发送下去,调制后送到该远程系统,而将数据解调后,通过80C196KC接口写到PSD4235G2的数据存储区。当接到上位PC机的切换命令后,80C196KC向PSD4235G2的寄存器中送一个状态值,由PSD4235G2的PLD对程序存储区和数据存储区进行切换,再加上其他的功能电路,就构成了一个完整的可远程程序升级的系统。80C196KC,PSD4235G2和串口的接口电路如图2所示。[page]
3IAP(在线编程)设计
PSD4235G2有2个内部寄存器:页寄存器(page)和VM寄存器。8位的页寄存器可使MCU的寻址空间扩大256倍,他的内容可以由MCU来读写。页寄存器可直接参与PSD内部存储器的地址选择,在作为页寻址时写入要访问的页地址,PSD内部地址译码逻辑就立刻选中目标存储器空间。另外,在页寄存器实现分页存储时,应该设置一个公共存储器区,即程序在任何页面位置执行时都能访问到的空间(或者说是与页不相关的地址空间),用于放置初始化程序、中断服务程序、页切换程序以及物理设备驱动程序等重要子程序。同样,重要数据也应当在任何页都可以访问,例如PSD控制寄存器、I/O、用于保存堆栈和全局变量的系统RAM等。VM寄存器用来分开程序空间和数据空间,并把PSD4235G2中主Flash、次Flash和SR AM设置在不同空间。
在进行在线编程时,首先将PSD的次Flash存储器映射到80C196KC的程序存储区,将PSD的主F lash存储器映射到80C196KC的数据存储区,系统从PSD的次Flash启动,执行引导/下载程序,如果需要的话从上位机下载程序到PSD的主Flash存储器;然后,再通过PSD中的VM寄存器,将主Flash存储器存储空间从数据存储区跳变到程序存储区,转而执行Flash存储器中的程序,从而实现对原程序的升级。
系统的运行有2个基本模式:一个是引导/下载模式;另一个是正常运行模式。系统启动时从引导/下载模式到正常运行模式转换过程中系统存储器的变化步骤为:
(1) 上电时系统存储器映射
上电时系统开始执行次Flash中的程序,检查是否要通过MCU对主Flash中的程序进行升级。此时,PSD中主Flash存储器存储空间都处于MCU的数据空间,而次Flash存储空间则处于MCU的程序空间。
(2) 主Flash存储空间从数据空间移至程序空间
在完成对Flash中程序升级或不需要升级时,写VM寄存器为06H,将主Flash的存储空间从MCU的数据空间移到程序空间。
(3) 切换主Flash和次Flash存储空间
MCU从PSD次Flash中运行程序跳到主Flash中的运行程序。在程序写1到‘swap’位(上电时‘swap’的值是0)进行地址“切换”,程序就进入主Flash中运行了。
(4) 次Flash存储空间移至数据空间
程序已经在PSD的主Flash中运行,写0CH到VM寄存器,把次Flash的存储空间从MCU的程序空间移到数据空间。并且,MCU转跳到在PSD的主Flash的复位入口地址,用户的程序开始真正执行。
用户程序启动模块的流程如图3所示。
4结语
PSD4235G2的独特结构简化了硬件接口电路,为嵌入式MCU系统提供了简单灵活的解决方案。其IAP功能使产品可以在应用中编程和测试,并远程升级程序代码,缩短了产品开发周期,降低了产品维护和升级成本,抢先占领市场。
参考文献
[1]孙涵芳.Intel 16位单片机[M].北京:北京航空航天大学出版社,1999
[2]刘复华.8*C196KX单片机及其应用系统设计[M].北京:清华大学出版社,2002
[3]孙涵芳.单片机现场可编程外围芯片PSD的原理及应用[M].北京:北京航空航天大学出版社,1998
[4]可编程单片及外围芯片技术手册.
关键字:在线编程 PSD 80C196KC MCU
引用地址:
基于80C196KC与PSD4235G2在线编程的实现 (
推荐阅读最新更新时间:2024-03-16 12:55
PIC单片机应用问答
简介:PIC单片机应用问答 1、PIC单片机振荡电路中如何选择晶体? 对于一个高可靠性的系统设计,晶体的选择非常重要,尤其设计带有睡眠唤醒(往往用低电压以求低功耗)的系统。这是因为低供电电压使提供给晶体的激励功率减少,造成晶体起振很慢或根本就不能起振。这一现象在上电复位时并不特别明显,原因时上电时电路有足够的扰动,很容易建立振荡。在睡眠唤醒时,电路的扰动要比上电时小得多,起振变得很不容易。在振荡回路中,晶体既不能过激励(容易振到高次谐波上)也不能欠激励(不容易起振)。晶体的选择至少必须考虑:谐振频点、负载电容、激励功率、温度特性、长期稳定性。 2、如何判断电路中晶振是否被过分驱动? 电阻RS常用来防止晶振被过分驱动。过分驱
[单片机]
用单片机控制LED亮灭
1.实验任务 如图所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。 2.电路原理图 3.系统板上硬件连线 (1).把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上; (2).把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域中的K1端口上; 4.程序设计内容 (1).开关状态的检测过程 单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即
[单片机]
AVR单片机用哪个编译器好
我现在用AVR STUDIO+WINavr,刚开始还行,但慢慢发现当你在程序中想看一个函数或者变量的定义时,没办法跳转过去,只能自己找到相应的定义(至少我不知道怎么跳转),这个很不方便,我用AVR STUDIO+WINavr是因为能和protues一起单步调试仿真,但无法跳转很不舒服,另外我没有仿真器,其实连个AVR的片子都没有,别说买个,暂时没这打算,我买的有51的板子,ARM9的 板子,这几天需要了解AVR但不打算买什么硬件,在这种情况下,用哪个编译软件好要,最好能和protues一起仿真。 IAR效率最高,但收费。atmel studio是atmel自己的编译器,基于gcc,免费。 不二选择:AVR Studio 4.1
[单片机]
MSP430系列单片机-读RAM数据烧写到Flash中
题目一 从RAM地址0x0200中读取一个long数据,并烧写至地址为0x1800的Flash中。 代码: #include io430.h void main(void) { //初始化RAM信息段的指针 unsigned long * RAM_ptr = (unsigned long *) 0x0200; //初始化Flash信息段的指针 unsigned long * Flash_ptr = (unsigned long *) 0x1800; //存放数据的变量 unsigned long value; WDTCTL = WDTPW + WDTHOLD; //关闭看
[单片机]
单片机AT89S51光栅系统在机床改造中的应用
电动铲运机前后机架、喷浆机减速箱体以及电机车减速箱体等矿用机械主要部件一般都需要在卧式镗床上加工。工厂的T612镗床经过近三十年的运行已老化严重,精度下降,不能满足高精度机械加工的要求。在对该设备大修时成功地对其进行了数显改造,安装了 光栅 数显系统,该系统采用 光栅 移动产生的莫尔条纹与电子电路、 单片机 相结合来完成对位移量的自动测量,并以数字显示位移量。下面介绍该系统的工作原理及实际应用情况。 一、光栅尺位移测量工作原理 光栅是由光源、透镜、标尺光栅(主光栅)、指示光栅(副光栅)和光电元件组成。当主 光栅 和副光栅呈一很小的θ角相对倾斜重叠放置时,造成两光栅尺上的线纹交叉。在光源的照射下,交叉点附近的小区域内黑线重叠形成
[电源管理]
意法半导体宣布延长车身、底盘和安全MCU生命周期
横跨多重电子应用领域的全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)宣布延长在全球汽车动力总成、底盘和车身应用中部署量达数百万的SPC56车规微控制器(MCU)的长期供货承诺。 意法半导体汽车处理器和射频技术事业部总经理Luca Rodeschini表示:“ SPC56系列在市场上经久不衰,现在仍是各种设计项目的首选汽车MCU,集运算性能、稳健性和可靠性于一身。为确保为我们客户的新应用以及市场上已有应用提供长期的支持服务,我们今天宣布将我们独有的产品生命周期计划延长至20年,这意味着2014年问市的SPC56 MCU至少可以在市场上存续到2034年。” 意法半
[汽车电子]
51单片机常用知识点
首先是定时器 定时器/计数器 定时器很重要,单片机的心脏 首先几个概念 时钟频率:fosc(晶振提供,51一般是12Mhz,11.0592Mhz这两种) 12分频:fosc/12(这里我设为fT) 机器周期:T=1/fT 定时器就配置两种, 第一是工作模式:定时器/计数器 第二是四种工作方式 然后是两个寄存器 TMOD&TCON 工作方式寄存器和控制寄存器 工作方式寄存器TMOD (1)GATE——门控位 GATE=0时,仅由控制位TRX(X=0,1)来启动定时器/计数器运行。 GATE=1时,由TRX(X=0,1)和中断引脚(INT0和INT1)上的高电平共同来启动定时器/计数器运行。 (2)M0、M1——工作方式选择位 M0、
[单片机]
单片机的结构原理详细说明
8051是MCS-51系列单片机的非常典型的产品,我们用这一个代表性的型号进行系统的单片机原理讲解。 8051单片机包含中央处理器、数据存储器(RAM)、定时/计数器、程序存储器(ROM)、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别对其原理加以说明: ·数据存储器(RAM): 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 ·中央处理器: 中央处理器(CPU)是整个单
[单片机]