首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
S12系列MCU通用编程系统的改进设计
来源:本站整理  作者:佚名  2009-07-08 10:23:00




    ①PC发送进入BDM命令,目标芯片进入BDM模式;
    ②PC发送完全擦除命令,擦除目标芯片Flash并进行空白校验,返回校验码;
    ③PC发送命令将写入子程序的目标代码发送到目标芯片内存中,写入子程序的功能是将存放在目标芯片内存上的用户目标代码写入Flash中;
    ④PC分析S19文件,提取需要发送的目标代码,以512字节组合成一页,分页发送到目标芯片内存中,然后运行已发送目标芯片中的写入子程序,将用户目标代码写入目标芯片Flash中;
    ⑤PC判断是否需要发送下一页,并接收校验码判断一页数据发送是否正确。
    PC发送一页数据到目标芯片内存之前,先将数据发送到编程调试器内存,和一次向S12系列芯片Flash写入512字节相比较。JB8的RAM只有有限的 256字节,并且堆栈也在RAM区域,可用于接收一页数据的RAM缓存太小,因而每次写入的数据量就会受到限制,要分多次写入。这就增加了PC和编程调试器之间的通信次数以及编程调试器和目标芯片的通信次数,从而影响了编程的速度。图3中,JB8以串行的方式接收和发送数据,先从PC方接收一页128字节用户目标代码(1,3,5,7过程),然后将数据发送到目标芯片内存(2,4,6,8过程)。经过4次的接收之后,目标芯片将RAM空间的512字节数据一次写入Flash空间,返回校验码。

    而JM60作为编程调试器则拥有4 KB的RAM,可以直接开辟512字节作为缓冲。在整个编程系统通信流程的设计上,就可以借鉴指令流水线操作的思想,充分考虑可作预取的操作,利用编程调试器和目标芯片之间通信的时间完成PC方单独的操作,以及利用目标芯片自身进行操作的时间来完成PC方和编程调试器之间的操作,提高编程系统的运行速率,尽量减少空等待操作。
    在图4所示的以JM60作为编程调试器的编程系统通信流程中,首先PC发送第1页用户目标代码到JM60内存(过程1),然后发送到目标芯片内存(过程 2),目标芯片执行写入子程序将数据写入Flash。写入子程序执行过程中,字写入命令时间t=9×(1÷fNMVOP)+25×(1÷fbus)。 fNMVOP指Flash操作频率,fbus指总线频率。S12系列芯片Flash的操作频率范围限制在150~200 kHz,取fNMVOP=200 kHz,fbus=40 MHz,计算得1个字写入时间在最小情况下为t=0.045 625 ms,写入512字节需要时间为11.68 ms,而PC发送1页数据的时间为512×8÷12Mbps=0.341 ms。因此PC和JM60可以利用目标芯片写入1页数据的时间进行交互,将下一页数据提前发送到JM60,完成从PC→JM60内存,如图5所示。 JM60和目标芯片也可以在PC对前一页数据进行校验的同时,将1页数据从JM60发送到目标芯片,如图6所示。

    在实现以上思想的同时也充分考虑了写入过程出错的情况,如图4在JM60内存区域开辟了可存放2页数据的缓冲区用于接收用户目标代码。若前一页数据写入错误,则将这页数据在Flash的块写入首地址传递给块擦除程序,重新进行擦除,等待当前页发送完毕,作为下一页数据参与整个流程进行写入。

上一页  [1] [2] [3] [4] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:288,828.10000 毫秒