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

发布者:dadigt最新更新时间:2012-01-14 关键字:ISP  Bank  I2C  CRC  MTV412 手机看文章 扫描二维码
随时随地手机看文章

引 言
   随着微控制器应用领域的不断扩展和深入,越来越多种类的微控制器具有ISP(In Systern Programming,在系统编程)功能。使用ISP可以使工厂在产品设计、制造过程中不必把微控制器从目标板中拔出,通过I2C实现在线体上程序升级。目前,在国内一线工厂,主设备(上位机)一般都用PC,这样不仅浪费资源,而且灵活性较差;同时由于在线体上只能对单个从设备进行程序更新,严重影响了工厂的生产效率。为此,本文设计了一种基于MTV412微控制器的l对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公司出品的5l系列兼容单片机C语言软件开发系统。它是一种专门为8051单片机设计的高效率的C语言编译器,符合ANSI标准,生产的程序代码运行速度极高,所需要的存储空间极小,完全可以和汇编语言相媲美。Cx51已被完全集成到一个功能强大的全新集成开发环境uVision2中。 uVision2提供了强大的项目管理功能,可以十分方便地进行结构化多模块程序设计。本系统主设备的源代码通过Keil C5l编译获得烧写所需的HEX或者BIN文档。
1.3 切换Bank原理
   
传统的5l系列单片机是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 C51生成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。Common区域放置与从设备通信的程序,模拟ISP过程。在main 函数中通过调用func0和fund,把对应的Bank0和Bankl从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 1s→发送I2C stop。
    ③清除CRC寄存器:发送I2Cstart→发送0x7C→发送0xD0→发送I2C stop。
    ④Flash编程:发送I2C start→发送0x7C→发送0xA0,block起始地址(0x00~0xff)→发送I2C stop→循环256次(发送I2C start→发送地址O x00→发送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模式:


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

关键字:ISP  Bank  I2C  CRC  MTV412 引用地址:基于MTV412微控制器1对8的ISP系统

上一篇:基于HCSl2的小车智能控制系统设计
下一篇:单片机系统的常用输入/输出电路设计

推荐阅读最新更新时间:2024-03-16 12:50

MPU6050使用I2C协议读出X轴原始数据的51单片机程序
主:STC89C54 下面代码 #include reg51.h #define uchar unsigned char //#define addr_x 0xae // 写 //#define addr_d 0xaf // 读 sbit sda = P2^1; //数据管脚 sbit scl = P2^0; //时钟管脚 bit ack; //**************************************** // 定义MPU6050内部地址 //**************************************** #define SMPLRT_DIV 0x19 //陀螺
[单片机]
51单片机普通IO口模拟IIC(I2C)接口通讯的程序代码
I2C总线是Philips公司提出的一种集成电路IC器件之间相连接的总线协议,其目的是使电子系统(不只 限于单片机系统)各个IC器件之间的连线变得容易。因为使用传统的并行总线在IC器件之间连接,往往会使得IC之间连线较多,显得非常复杂。而I2C总线 则使IC器件之间只需SDA、SCL两条连线就可以传送数据,因而十分方便。由于I2C在印刷体中不容易书写(需要上标),所以实际书写时,还常见到 IIC、I2C等书写方法,本文采用IIC的写法,敬请注意。关于IIC总线的知识,请参阅相关书籍,此处不再做进一步介绍。 I2C总线是Philips公司提出的一种集成电路IC器件之间相连接的总线协议,其目的是使电子系统(不只 限于单片机系统)
[单片机]
51单片机普通IO口模拟IIC(<font color='red'>I2C</font>)接口通讯的程序代码
单片机I2C寻址模式
上一节介绍的是 I2C 每一位信号的时序流程,而 I2C 通信在字节级的传输中,也有固定的时序要求。I2C 通信的起始信号(Start)后,首先要发送一个从机的地址,这个地址一共有 7位,紧跟着的第 8 位是数据方向位(R/W),“0”表示接下来要发送数据(写),‘“1”表示接下来是请求数据(读)。 我们知道,打电话的时候,当拨通电话,接听方捡起电话肯定要回一个“喂”,这就是告诉拨电话的人,这边有人了。同理,这个第九位 ACK 实际上起到的就是这样一个作用。当我们发送完了这 7 位地址和 1 位方向后,如果发送的这个地址确实存在,那么这个地址的器件应该回应一个 ACK(拉低 SDA 即输出“0”),如果不存在,就没“人”回应 AC
[单片机]
单片机<font color='red'>I2C</font>寻址模式
51单片机i2c存储器24c02驱动程序
这是 电路图 ,这是从这个项目中取得的文件里面有电路图和仿真文件: http://www.51hei.com/bbs/dpj-22586-1.html 下面是 i2c.c文件: #include reg52.h #include i2c.h #include delay_ms.h void delay() { ;; } void i2cinit()// 总线 初始化 { SDA = 1; delay(); SCL = 1; delay(); } void start()//启动信号 { SDA = 1; SCL = 1; delay(); SDA = 0; delay(); } void sto
[单片机]
51单片机<font color='red'>i2c</font>存储器24c02驱动程序
基于STM32 I2C的TMP101温度传感器的C源码
搞这个历程差不多花了我一个周末的时间,一片小小的TMP101确实让我破费脑筋。最后甚至使用了示波器直接观察SDA SCL 的波形。不过示波器的使用确实纠正我一个严重且低级的错误。这期间也在网上搜过STM32 的I2C 应用 大多都是在说 STM32 的I2C固件库写的烂、STM32的硬件有问题、I2C接口没法用等等,最后解决方式都是用软件像51那样用IO口软件模拟IIC时序。但我看了STM32最新的勘误表,根本没有所谓STM32的IIC硬件设计缺陷。我可不想把STM32用的像8051一样。我要用高效的硬件I2C而且要用ST官方库来实现~! 心得: 函数 I2C_CheckEvent () 这个典型的用法是 while(!
[单片机]
基于STM32 <font color='red'>I2C</font>的TMP101温度传感器的C源码
DSP虚拟I2C总线软件包的设计及应用实例
引言 数字信号处理器(DSP)在各领域中的应用已日趋广泛,其中TI(TEXAS INSTRUMENT)公司的TMS320系列芯片占据了主导地位。TMS320F206(简称F206)由于具有片内32K字的Flash,支持JTAG扫描端口的仿真调试,并支持程序的串行下载,便于开发设计及产品的软件升级,因而在中高档仪器开发中受到青睐。 DSP的处理速度虽然较高,但直接支持的I/O口线较少,控制能力相对较弱,因而与外部器件接口采用串行方式较为适合。常用的串行接口和串行总线有UART、I2C总线,由于I2C总线提供了较完善的总线协议,且接口电路简单,因而得到广泛的应用。目前,已有很多外围器件支持I2C接口,但多数MCU并不直接支持I2C
[嵌入式]
51单片机的ISP下载电路设计
51单片机可以通过ISP下载方式烧写程序,常用的工具为USB/TTL,常用的芯片有MAX232、CH340G等。下面介绍以CH340G芯片设计的ISP下载电路。 1.51单片机程序下载原理 51单片机程序烧写接口为RXD和TXD,即UART口,这两个接口是通信口,配合不同的芯片可以实现不同的通讯方式。如果连接MAX232即可实现232通信,如果连接MAX3082即可实现RS485通讯。下载程序正是通过这两个接口来实现的。下载方式如下图所示。单片机的RXD和TXD要与USB/TTL设备的TXD和RXD交叉连接才能实现下载。 2.CH340G芯片介绍 CH340是一个USB总线的转接芯片,实现USB转串口、USB转IrDA红外
[单片机]
51单片机的<font color='red'>ISP</font>下载电路设计
基于VHDL的I2C总线控制核设计
摘要:从状态机的角度,介绍一种I2C控制核的VHDL设计方法。将其嵌入到FPGA中,用于实现与TMS320C6000系列DSP的接口,并配合DSP的软件完成对视频采集与显示处理系统中数字视频编、解码器工作模式寄存器的配置及其状态查询。着重介绍I2C控制核的总体设计方案,详细描述其内部命令状态机和时序状态机的工作原理及相应的VHDL代码。此外,介绍I2C控制核与DSP相互通信中断处理机制的VHDL实现方法。最后,给出在Xilinx公司的ISE6.1+ModelSimXE5.7c软件平台中进行EDA的综合结果与时序仿真图。 关键词:I2C总线 状态机FPGA VHDL DSP 控制器核 引言 I2C总线是双向、两线、串行、多主
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved