1.Flash存储器结构
P89LV51RD2程序存储器包含一个64KB的块。第二个8KB块中的在系统编程(ISP)功能允许用户代码通过串行口进行在电路中编程。有三种方法来实现Flash存储器的擦除或编程。首先,利用一个公共入口来调用低级程序的方法在最终用户应用中进行Flash存储器的编程或擦除(IAP)。第二,调用片内的ISP引导装载程序;反过来,ISP引导装载程序也可通过供给最终用户应用的相同公共入口来调用低级子程序。第三,利用支持该器件的商业EPROM编程器进行Flash存储器的并行编程或擦除。
2.引导块
当微控制器要对其自身的Flash存储器进行编程时,所有细节操作都通过引导块中的代码来处理,引导块与Flash存储器各自独立。所有用户程序只需使用适当的参数调用引导块中的公共入口即可实现所需要的操作。引导块的操作包括以下内容:擦除用户代码、编程用户代码、编程保密位等。
3.上电复位代码的执行
复位后,P89LV51RD2将进入SoftICE模式(如果之前已通过ISP命令将其使能)或尝试自动执行ISP引导装载程序。如果该自动执行操作在400ms后仍未成功,器件就开始执行用户代码。
4.在系统编程(ISP)
ISP执行时不需要将微控制器从系统中移出。ISP特性包含了一系列内部的硬件资源,与内部固件相结合可实现通过串行口对P89LV51RD2的远程编程。固件由Philips公司提供并嵌入到每一个P89LV51RD2芯片当中。Philips公司的ISP特性使嵌入式应用中的在电路编程变得可行,并最大限度地减少了额外的元器件开销和电路板面积。ISP功能使用芯片的5个引脚(UDD、USS、TxD、RxD、RST),只需要一个小的连接器,就可实现通过外部电路使用该特性的应用接口。
5.使用ISP(www.daowen.com)
ISP特性可以适应用户应用中较宽的范围的波特率,而不依赖于振荡器的频率。它还可以适应较宽范围的振荡器频率。这是通过对一个接收到的字符中单个位进行位时间测量来实现的。该信息可根据设定的振荡器频率定时器值来对波特率进行编程。为此,ISP特性要求主机必须向P89LV51RD2发送一个初始化字符(大写的U),以使芯片对波特率进行设定。ISP固件提供对接收字节的自动回送。一旦波特率的设定完成之后,ISP固件将只接受Intel Hex格式的记录。Intel Hex格式的记录包含了用于表示十六进制数的美国信息交换标准码(ASCII)字符。ISP命令汇总如下:
NNAAAARRDD..DDCC<crlf>
在Intel Hex格式中,‘NN’表示记录中数据字节的个数,P89LV51RD2最多可接受32字节数据。‘AAAA’字符串表示记录中首字节的地址,如果记录中的字节数为0,则通常该区域设置为‘0000’。‘RR’表示记录的类型:‘00’表示数据类型,‘01’表示文件结束标识。在该应用中,增加额外的记录格式以指示ISP应用的命令或数据。
数据字节的最大数目限制为32(十进制)。ISP命令汇总的详细情况请见相关的技术手册和资料。P89LV51RD2收到记录后,将数据保存并计算校验和。在整个记录接收完毕后,才执行由记录类型所指示的操作。如果校验和发生错误,P89LV51RD2将从串行口发出‘X’指示校验和出错。如果校验结果与记录相符,将会执行指定的命令操作。在大多数情况下,从串行口发出‘.’字符表示正确接收。
6.使用序列号
器件的31B的序列号和序列号长度(共32B)存放在非易失性存储器空间。当器件进入ISP模式后,由其序列号长度来判断序列号是否正被使用。如果序列号长度编程为00H或FFH,认为序列号未被使用。如果序列号被使用,用户程序存储器或序列号的读、编程或擦除操作将被禁止直到用户发送一个“检查序列号”记录,该记录包含的序列号和序列号长度与原来保存在器件中的序列号和序列号长度相匹配。用户可通过发送“复位序列号”记录将序列号和序列号长度都设置成0。而且“复位序列号”记录也可擦除所有的用户代码。
7.在应用中编程的方法
通过一个应用程序对几个在应用中编程(IAP)子程序的调用,可实现有选择地对Flash存储器扇区、页、保密位、配置字节和器件ID进行擦除、读和编程。所有的调用都是通过一个公共的接口PGM_MTP来实现的。在调用位于地址1FF0H的PGM_MTP之前,通过设置微控制器的寄存器可选择编程的功能。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。