访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
IAP技术如何实现?
内容导读:

问:IAP技术如何实现?

答:具备在应用中编程IAP功能的单片机,其程序存储器必须是可以重复烧写编程的版本(比如FLASH)。可以用于具备远程遥控软件版本升级或者参数修改的产品项目之中(比如远程抄表、用户端电话计费等系统的远程费率参数和算法程序修改);也可以应用于具备自编程功能(免用微机和烧写器)的单片机学习机、单片机单板机、实验板、演示板、教学模块等各种学习和实验工具之中。对于处在同一个存储器空间的FLASH程序存储器,不能同时扮演“被烧写存储器”和“取指令存储器”的双重角色。为了解决这个矛盾,不同厂家的单片机采用了不同的解决方案,比如:

  ①  可以将FLASH程序存储器分成地址有映射关系的两个区,分别由各自的电荷泵提供烧写电压。当烧写一个区时,该区的电荷泵工作,同时执行存放在另一个区的指令。例如,SST(Silicon Storage Technology)公司利用他的SuperFlash技术研制的FlashFlex51单片机系列,各个型号片内分别带有20KB、36KB或68KB可多次编程的程序存储器。该存储器又分为主存储区和次存储区。各个型号的主存储区分别为16KB、32KB或64KB,次存储区则统一为4KB。

  ②  可以将单片机的程序存储器地址空间分为ROM区和FLASH区,ROM区在出厂之前就已经固化有烧写专用程序,FLASH区作用户程序存放区,这样一来,即使在烧写FLASH的同时,也不会影响对于ROM中程序的执行。MOTOROLA公司推出的MC68HC908系列单片机中采用的就是这种解决方案。

  ③  PIC16F87X系列单片机中,采用了不同的解决方案。FLASH程序存储器并不分区,在对其进行烧写并且电源自动切换到电荷泵供电时,CPU自动停顿而等待。在一个单元烧写操作完毕,FLASH工作电压自动切换到正常值时,CPU才继续执行FLASH中的烧写专用程序或用户程序。

  ④  在数据存储器RAM和程序存储器FLASH两种存储器统一编址的单片机中,还可以采用的另一种方案是,在准备修改FLASH区中的用户程序之前,先把烧写专用程序拷贝到RAM区,然后跳转到RAM区去执行该程序,实现对FLASH程序存储器的烧写操作。在烧写完成之后再跳回到FLASH存储器执行正常的用户程序。微芯公司新近推出的高性能PIC18C601/801单片机采用的就是这种解决方案。MOTOROLA公司推出的MC68HC908系列单片机的某些型号,也可以采用这种解决方案。

问:CPU为Intel 80C196,如果程序区大于64 KB,采用分页技术,用C语言如何编程?

答:C196系统与8051的结构不同,它是冯诺依曼结构即程序区和数据区统一编址。对于大于64 KB的C196程序和数据空间有两种扩展的方法。

  ①  使用指令INST引脚:大部分的C196都有INST引脚,当INST引脚为高电平时,196访问程序存储区;当INST引脚为低电平时,C196访问数据存储区,这样可以产生类似8051的程序和数据区重叠的结构。C196最大的扩展为112KB(56KB ROM, 56KB RAM),因为INST引脚不能译码2080H以前的单元。在Tasking的连接器中有INST控制项,它允许ROM和RAM空间重叠。

  ②  使用ROM控制项:使用Tasking的连接器RL196进行程序连接时可以定义大约1M的空间,即2000H ~FFFFFFH,这是因为C196系列中一些芯片如NT、CB的寻址空间是24位的。如果定义芯片类型,则连接器自动定义为24位空间;如果定义了ROM控制项,则依据ROM来定位存储器空间,但要注意C196系列的空间2000H~FFFFFFH不是连续的,要根据具体的单片机来定义。

标签:
来源:单片机与嵌入式系统应用 作者: 时间:2006/2/12 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐