基于MTV412微控制器1对8的ISP系统

2007-04-10 10:37:19来源: 单片机及嵌入式系统应用

引 言

随着微控制器应用领域的不断扩展和深入,越来越多种类的微控制器具有ISP(In System Programming,在系统编程)功能。使用ISP可以使工厂在产品设计、制造过程中不必把微控制器从目标板中拔出,通过I2C实现在线体上程序升级。目前,在国内一线工厂,主设备(上位机)一般都用PC,这样不仅浪费资源,而且灵活性较差;同时由于在线体上只能对单个从设备进行程序更新,严重影响了工厂的生产效率。为此,本文设计了一种基于MTV412微控制器的1对8的ISP系统,主设备采用Myson公司的MTV412,可以同时对8台从设备进行在线程序更新。

目前,51内核的微控制器ISP模式一般分为两大类:一类是使用JTAG协议的ISP模式;另一类:ISP模式是使用一条特殊的指令,使单片机进入ISP。在进入ISP模式后,要自己控制对单片机的擦除写入逻辑。这一类模式又可细分为2种不同的模式:①进入ISP模式后,单片机只提供一个接口,不再运行从设备的程序,擦写逻辑全由主设备提供,本系统中MTV412和MTV312就属于这种模式;②进入ISP模式以后,从设备会运行在某一区域已经编写的程序,芯片的编程逻辑都由芯片中这段程序控制,主设备只是作为单片机的一个数据源,向单片机传输要擦写的数据,如Winbond公司的W79E632。

1 背景介绍

1.1 MTV412和MTV312

MTV412和MTV312是台湾Myson公司的产品,主要是面向LCD Monitor和LCD TV的视频控制IC。该款芯片可以满足视频应用中的控制需求,因而被广泛应用于视频类产品中,在本系统中,主设备采用的是128 KBMTV412微控制器。从设备采用MTV312,是64 KB的带有ISP功能的51系列8位微控制器。

1.2 编译环境Keil C51

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。它是一种专门为805l单片机设计的高效率的C语言编译器,符合ANSI标准,生产的程序代码运行速度极高,所需要的存储空间极小,完全可以和汇编语言相媲美。Cx51已被完全集成到一个功能强大的全新集成开发环境uVision2中。uVision2提供了强大的项目管理功能,可以十分方便地进行结构化多模块程序设计。本系统主设备的源代码通过Keil C51编译获得烧写所需的HEX或者BIN文档。

1.3 切换Bank原理

传统的51系列单片机是8位的,因此它最多可以访问64 KB地址空间,如果要用51系列的单片机访问128KB的空间,那么就必须用切换Bank的方法。一个Bank是64 KB,通过外部的硬件来选择对应的Bank。本系统中,MTV412就是通过切换Bank的方法来在线升级ISP从设备程序的。MTV412切换Bank是通过P3.5完成的。通过设置P3.5不同的电平,切换到不同的Bank区域,如果要进行4个Bank的切换,必须要由2个端口来控制。图1为MTV412的128 KB的存储空间分配。其中:Common区域用于存放上电复位程序、中断向量、全局变量、中断函数、切换Bank程序和库函数等;Bank区域用于存放一些不同的应用函数。

如图2所示,本系统把MTV412的128 KB Falsh分为Bank0和Bankl,大小各40 KB。在Keil C51编辑器中,必须加入L51_BANK.A51汇编文件,它包含系统的Bank数目和切换Bank调用的函数和端口。


2 系统构架

系统架构如图3所示。首先,将从设备MTV312的文件通过Keil C51生成64 KB的HEX或者BIN文档;然后,再把主设备MTV412的文件通过Keil C5l生成128 KB的HEX或者BIN文档;最后,把从设备MTV312的BIN或者HEX分成两个32 KB,分别放在主设备MTV412 128 KB的8000H和18000H开始的位置。文件的地址空间分配如图4所示。



通过PC或者烧录器直接把程序烧录到MTV412上。这样MTV412就可以脱离PC,通过I2C直接对从设备在生产线体上进行ISP。

2.1 硬件实现

主设备MTV412的硬件电路如图5所示。P6口作为SCL,P1作为SDA。因为P6是单向口,P1是双向口,SDA不仅要输出数据,还要接收ACK。P1对应8个从设备的SDA,P6对应8个从设备的SCL。MTV412的多功能口P3.0和P3.1既可以作为普通的I/O口,也可以作为I2C的SCL和SDA,或者串口RXD和TXD。本系统设为I2C端口,可以通过PC直接更新MTV412上的程序。

2.2 软件实现

主设备MTV412有128 KB的Flash空间。其中,Bank0(32 KB)和Bankl(32 KB)存储对应的从设备MTV312的程序数据和调用函数func0和funcl。Com- mon区域放置与从设备通信的程序,模拟ISP过程。在main函数中通过调用func0和func1,把对应的Bank0和Bank1从8000H开始的内容放入缓存区,每次读取256字节,然后在Common区中进行ISP。

ISP时,从设备64 KB程序数据分成256个block,每个block为256字节。

ISP过程如图6所示。

 

①进入ISP:发送I2C start→发送0x4C→发送0x77→发送I2C stop。

②清除Flash(硬件清除Flash):发送I2C start→发送0x7C→发送0x68和0x00→发送0x7C→发送0x00,0x00→delay 1 s→发送I2C stop。

③清除CRC寄存器:发送I2Cstart→发送0x7c→发送0xD0→发送I2C stop。

④Flash编程:发送I2C start→发送0x7C→发送0xA0,block起始地址(0x00~0xff)→发送I2C stop→循环256次(发送I2C start→发送地址0x00→发送256字节数据→发送I2C stop)。

⑤校验CRC:发送I2C start→发送0x7C→接收4字节CRC校验值→与软计算的CRC值比较。若相等,则发送I2C stop;否则,重新Flash编程。

⑥复位:发送I2C start→发送0x7C→发送0x48和0x00→发送I2C stop。

要使从设备MTV312具有ISP的功能,须添加一段程序在从设备的主应用程序中。该程序用来响应多功能口SCL和SDA(RXD,TXD)的电平变化。在执行以下程序后,MTV312进入ISP模式:

void Intlsp(void)interrupt 2{//从设备MTV312外部中断1

结 语

该系统的实现方法比较简单,可以脱离PC独立运行,同时给工厂提供更为简单、方便的在线ISP。主设备可以在线体上对从设备进行批量编程,值得在一线工厂推广使用。

关键字:逻辑  模式  编程  擦写

编辑: 引用地址:http://www.eeworld.com.cn/gykz/CDYZX/200704/3981.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
逻辑
模式
编程
擦写

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved