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

本文设计了一种基于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有128kb的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。主设备可以在线体上对从设备进行批量编程,值得在一线工厂推广使用。
探讨华为芯片发家史
米家新风机高清图赏
5G智能网关实现连锁店铺的远程管理
华为申请新商标,或为研发新无线耳机产品做准备
JEDEC宣布计划制定非易失性无线存储器标准
基于MTV412微控制器的1对8的ISP系统
联想折叠平板再现:连续两年展出 有望变成量产产品
rk3566相当于骁龙
北斗芯片最新一代将用上22nm工艺
基于工业互联网平台的工厂生产数据采集系统有何功能
解析车规级芯片的重要性
汽车遭遇30年来最严重供应短缺,汽车缺芯何时能缓解?
128GB皇帝版三星S8同步上市, 价格有惊喜?
虚拟内存不足的原因
苹果2019财年第一财季大中华区营收下滑27%
中兴加强在印网络建设与扩容,将推动5G合作
关于元宇宙你们准备干点什么呢?
英特尔、苹果、高通、AMD的CPU有什么重大Bug吗?
富勒X300游戏鼠标功耗实测 全速运转的状态下能使用147小时之久
微雪电子SOP8 SOIC8测试座简介