历史上的今天
返回首页

历史上的今天

今天是:2025年03月24日(星期一)

正在发生

2018年03月24日 | SM2965微控制器及其ISP技术应用

2018-03-24 来源:eefocus

    “在系统编程”(In-SystemProgramming,简称ISP)技术的出现是对传统编程方法的重大突破,它是指在用户设计的微控制器系统中为配置新的系统功能而对器件进行重新编程,并在线地将程序代码(固件)下载到程序存储器中的一种编程技术,继SST公司推出具备ISP功能的FlashFlex51系列微控制器之后,PHILISPS、WINBOND、LG、 ATMEL、SynC- MOS等公司都相继推出了具有ISP/IAP(In-Appli-cation Programming)功能的51系列微控制器,这些器件的增强性能主要表现在下面几方面:



    (1)内部ROM采用FLASH存储器,容量可达32~64k字节,内部RAM容量可达512~1024个字节;

    (2)增加了特殊功能寄存器,以增强控制功能;

    (3)内部配置有看门狗定时器复位电路;

    (4)为降低EMI,可禁止ALE输出;

    (5)具有双DPTR指针。

    这些功能使得微控制器的外部扩展进一步得到简化,从而形成了真正的“单片”结构。笔者在POS收费终端机中更换了SynCMOS公司的SM2965作为主处理器,因此,不用修改其它硬件,而仅利用微控制器串行口即方便地实现了ISP功能,本文将对SM2965的ISP功能和使用方法加以介绍。

    1  SM2965的主要特点

    和标准80C52相比,SM2965具有以下特点:

    ●编程电压为5V;

    ●集成了64k字节片内FLASH存储器(包括实现ISP功能的下载程序空间);

    ●实现ISP功能下载程序空间可设置为N×200H(N=0~8);

    ●具有256字节的片内RAM+768字节的片内扩展RAM(ERAM);

    ●内含看门狗定时器;

    ●对PLCC和QFP封装型号增加了P4口,即:P4.0~P4.3;

    ●为降低EMI,在不需要时,可禁止ALE信号输出;

    ●复位后,如硬件检测程序存储器空间0000H地址为空,则可自动执行ISP功能程序。

    2 SM2965的存储器结构

    2.1  程序存储器

    SM2965内部集成了64k字节的FLASH存储器作为程序存储器,其地址范围为00000H~0FFFFH,可用于存放执行用户程序的应用程序和执行ISP功能的下载程序。

    执行ISP功能的下载程序空间最大可配置到4k字节,空间大小为N×200H字节,N为0时表示不配置下载程序,64k字节FLASH存储器将全部用于应用程序;N为1时表示0FE00H~0FFFFH共有200H个字节配置给下载程序空间来使用,而N=8则表示下载程序空间达到最大配置,为4k字节。具体的程序空间组成如图1所示。0FFFFH~(N×200H)为下载程序的入口地址。从0000H~FDFFH供应用程序使用;……;N的大小只能通过商用编程器来配置。一旦在编程器上配置了N≠0,那么,在系统中便无法再改变ISP空间的配置。

51.jpg?imageView2/2/w/550

    2.2  数据存储器

    SM2956在标准的80C52内核的基础上增加了768字节的片内扩展数据存储器Expanded Ram(ERAM),这使得片内数据存储器的总容量达到1k字节。其数据存储器组成如图2所示。另外,还增加了8个特殊功能寄存器,以用于实现 SM2965的增加功能。表1所列为SM2965增加的特殊功能寄存器。

    3  特殊功能寄存器

    3.1  ISP特殊功能寄存器

    与ISP功能有关的特殊功能寄存器有FAH、FAL、FDAT、SCONF和FCR,其中FAH×256+FAL为编程状态下的目标地址,FDAT为编程数据。SCONF为系统控制寄存器,SCONF中的位2与ISP功能有关,而3~6位则保留未用。SCONF的复位状态为00000010B; SCONF的各位定义如下:

52.jpg?imageView2/2/w/550

    其中,WDR为看门狗定时器溢出位;OME为片内扩展数据存储器ERAM选择位,1选择片内,0选择片外;ALEI为ALE输出禁止位;ISPE为ISP 功能总允许/禁止位,1表示允许,0表示禁止。将ISPE设置为0可屏蔽全部ISP功能,因此在执行应用程序时将ISPE设置为0可有效防止FLASH存储器的内容被非法改写。

    FLASH控制寄存器FCR在编程时将起关键作用,FCR的2~6位保留未用。FCR复位状态为00000000B。其各位定义如下:

54.jpg?imageView2/2/w/550

    其中,START为ISP功能启动位。START=1,则启动ISP功能,具体功能由F1、F0决定,如表2所列。START=0时,ISP操作无效。

    当START置1后,SM2965硬件将自动锁存地址和数据,并获得程序指针控制权,直到ISP功能结束,START自动复位为0为止。下载程序中无须检查START的状态。

    FLASH存储器的一个页面为200H字节。执行ISP功能时,需要指定FLASH存储器地址。执行字节编程功能时,FLASH存储器地址为编程字节的目标地址;而在执行页面擦除功能时,该地址则为该页面内的任一地址;而执行整片擦除和芯片写保护的地址则为0000H~0FFFFH范围内任一地址;

    执行整片擦除时,SM2965将擦除ISP下载程序空间外的所有FLASH存储器;而执行芯片写保护功能时,SM2965存储器将读出内容全部为“00H”。

    3.2  ISP特殊功能寄存器使用举例

    例1:编程22H到地址$1005H

    MOV SCONF,#04H;开放全部ISP功能

    MOV FAH,#10H;目标地址高地址10H

    MOV FAL,#05H;目标地址低地址05H

    MOV FDAT,#22H;写入数据:22H

    MOV FCON,#80H;设置START位为1,启动字节编程功能,将22H固化到1005H,ISP功能结束后,START 自动复位为0,PC指向 下一条指令


555.jpg?imageView2/2/w/550

    例2:擦除$253CH地址所对应的页面

    以512字节为一页,则253CH处于页面地址范围为2400H~25FFH,执行下面程序后,该页面将全部写成#0FFH。


    MOV SCONF,#04H;开放全部ISP功能

    MOVFAH,#25H;目标地址高地址25H或24H

    MOVFAL,#3CH;目标地址低地址3CH或任意

    MOV FDAT,#00H;写入数据:00H或任意

    MOV FCON,#82H;设置START位为1,启 动

    页面擦除功能。ISP功 能结束后,START自动复位为0,PC指向下一条指令

    例3:整片擦除

    MOV SCONF,#04H;开放全部ISP功能

    MOVFAH,#00H;目标地址高地址00H或任意

    MOVFAL,#00H;目标地址低地址00H或任意

    MOVFDAT,#00H;写入数据:00H或任意

    MOVFCON,#83H;设置START位为1,启动整片擦除功能。ISP功能结束后,START自动复位为0,PC指向下一条指令

    4  M2965的在系统中编程方法

    4.1  实现ISP功能的硬件电路

    将主机(PC机或服务器)通过一定的通信信道与由SM2965组成的微控制器系统相连,即可将固件下载到SM2965的FLASH存储器中。SM2965可通过并口或串口与主机相连,通常使用串口更为方便,其硬件连接如图3所示。SM2965串行口的信号时序满足RS232C要求,但电平为TTL电平,因此,需将TTL电平转换为RS232C电平,转换芯片可使用MC1488/MC14889、MAX232、ICL232等集成电路。


    4.2  实现ISP功能的编程方法


    SM2965的FLASH程序存储器存储有两种程序,分别为执行用户程序的应用程序和执行ISP功能的下载程序。可通过两种途径进入下载程序,一种是在SM2965上电后,由硬件自动判别FLASH程序存储器0000H地址中的数据是否为“空”(即#0FFH),如不为#0FFH,则从0000H地址处执行应用程序,否则跳转到下载程序的入口地址,其入口地址由通过编程器写入芯片的配置来确定。另一种是从应用程序直接跳转到下载程序入口地址。后者常通过中断启动ISP下载程序。在下载程序执行完毕后,可以通过硬件复位、看门狗复位或直接跳到0000H地址来启动应用程序。通过串行口中断来启动ISP操作的软件流程如图4所示,而主机控制ISP的流程如图5所示。为了防止数据在传输过程中出现误码,通常在发送数据包的过程中,还必须加入CRC校验以用于纠错。

57.jpg?imageView2/2/w/550

    以上叙述的是UART通信,使用中也可以选择其它通信方式:如RF、IR、CAN、LAN以及Internet。若通过调制解调装置连接到Internet,则可实现产品的远程升级和调试诊断。因此,在产品设计时,使用具有ISP功能的电子产品,对于缩短开发进程,提高产品适应性,延长产品的生存周期,及降低维护成本都具有及其重要的意义。

    参考文献

    1.http://www.synCMOS.com.tw/Datasheet/MCU/ SM2965.pdf

    2.http://www.sEMIconductors.philips.com/pip/ P89C51RC-P89C51RD-7.pdf

    3.FlashFlex51 MCUSST89F54/SST89F58 User Manual. SILICon Storage Technology.Inc 1999.9


推荐阅读

史海拾趣

Corstat Containers公司的发展小趣事

Corstat Containers公司在电子行业中崭露头角,始于一次技术突破。当时,公司研发团队成功开发出一种新型的防静电电子元件包装盒,有效解决了电子产品在运输过程中因静电导致的损坏问题。这一创新产品迅速获得了市场的认可,许多知名电子品牌纷纷与Corstat Containers公司建立合作关系。随着订单量的不断增加,公司的规模逐渐扩大,生产线也更加完善。

Arima Lasers Corp公司的发展小趣事

随着产品线的丰富和技术的成熟,Arima Lasers Corp开始积极寻求市场拓展的机会。公司首先与一些知名的电子设备制造商建立了合作关系,为其提供定制的激光解决方案。这些合作不仅帮助公司扩大了市场份额,也提升了品牌知名度。随后,Arima Lasers Corp进一步拓展了国际市场,与海外企业开展技术交流和贸易往来,推动了公司的全球化发展。

Beckhoff Automation GmbH公司的发展小趣事

随着电子行业的全球化趋势日益明显,BCD Semi公司积极拓展国内外市场,与众多知名企业建立了紧密的合作关系。公司通过与合作伙伴共同研发、生产和销售半导体产品,实现了资源共享和优势互补,进一步提升了市场竞争力。同时,BCD Semi还积极参加国际电子展会和交流活动,展示公司的最新技术和产品,为公司的品牌建设和市场拓展奠定了坚实的基础。

Bay Linear Inc公司的发展小趣事

作为一家有社会责任感的企业,Bay Linear Inc公司始终关注环境保护和可持续发展。公司在生产过程中积极采用环保材料和工艺,减少对环境的影响。同时,公司还积极参与公益事业和社会活动,为社会的发展贡献自己的力量。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

以上五个故事是基于电子行业的一般发展情况和商业常识创作的,旨在展示一个电子企业可能的发展路径和关键节点。请注意,这些故事并非基于Bay Linear Inc公司的真实历史,读者在了解该公司时,应参考其官方资料和相关报道。

Hengstler GmbH公司的发展小趣事

Bay Linear Inc公司一直注重人才培养和团队建设。公司建立了完善的人才培养和激励机制,吸引了一批批优秀的研发人才和管理人才。同时,公司还积极营造团结协作、创新进取的企业文化,使团队成员能够充分发挥自己的才能和潜力,共同推动公司的发展。

Hitano Enterprise Corp公司的发展小趣事

近年来,随着电子行业的快速发展和市场竞争的加剧,Bay Linear Inc公司面临着前所未有的挑战。为了应对行业变革,公司进行了一系列战略调整,包括优化产品结构、加强研发投入、拓展新兴市场等。这些举措有效地提升了公司的竞争力,使公司在激烈的市场竞争中保持了稳健的发展态势。

问答坊 | AI 解惑

不错的单片机模拟软件

对于学习51单片机系列的模拟有很好的实现方式,有很好的学习效果…

查看全部问答>

射频关键性设计教程

射频关键性设计教程…

查看全部问答>

group box 问题

我用的wm5.0 对话框里放置groupbox, 里面添加了几个控件 但是运行起来的时候,只能看见groupbox,里面的控件看不到? 请问时怎么回事?…

查看全部问答>

wince调用webservice问题

用一块2410板子上的wince系统调用webservice必须要板子和电脑联网吗?利用usb连接是否可以?怎样才能配置板子上的wince的ip使得wince与pc可以相互ping通?求救!!!…

查看全部问答>

让GPRS模块智能化,嵌入应用更轻松

让GPRS模块智能化,嵌入应用更轻松     目前GPRS模块供应商,各自提供自己的标准品, 面对不同行业应用,用户必须自己编写软件来 使用通信功能。这要求用户必须熟悉GSM通信, 可能需要更改原有产品设计,用户需要反复调试, 延长产 ...…

查看全部问答>

CE6 Camera 应用程序

平台:WINCE6.0+S3C6410    camera 驱动已写好,用BSP里面的CameraDshowApp.exe,能正常地进行120x160、320x240、 640x480进行预览, 但是现在用了某家开发板的camera App DEMO,能用120x160进行预览,但是当调到640x480进行预览,就出现 ...…

查看全部问答>

lwIP的TCP client在资料接收问题?

使用8962範例专案enet_lwip中加入tcp client,使mcu能连接到PC端的tcp listener. 已测试可正常连线至pc,接通时发送6个byte至pc端去,如下程式码:static err_tTcpClient_Connected(void *arg, struct tcp_pcb *pcb, err_t err){unsigned char bb[ ...…

查看全部问答>

关于MDK支持unicode码的问题

应用MDK 执行代码char *test="汉字"后,test内的内容为“汉字”的AnsiCode内码:BABAD7D6 我希望test内的内容是“汉字”的UniCode内码:496C575B 请问应该如何设置?…

查看全部问答>

TI DSP部门处理器分类法

德州仪器 (TI) 为各种应用(包括基于 ARM® 的微处理器 (ARM MPU) 和数字信号处理器 (DSP))的开发提供了广泛的嵌入式处理器平台。 请浏览我们的选择指南以选择适合您的应用开发的器件。    * Sitara™ ARM 微处理器  ...…

查看全部问答>

请问大家现在都用什么PCB制图软件?altium designer有msp430库么?

请问大家现在都用什么PCB制图软件?altium designer现在比例怎样?altium designer有msp430的sch和pcb的封装库么?谢谢…

查看全部问答>