|
|
|
|
|
|
基于串并口的51单片机的在线编程 |
|
日期:2009-6-5 9:55:17 |
使用并口模拟I2C程序可以方便地对板上的MTV230芯片进行在线编程,使用串口为W78E516B提供数据源也可方便地对其进行编程,两者均经过实践检验,程序完全达到预期目的。使用芯片的在线编程技术,方便了芯片程序的更新,降低了产品的维护成本。 51内核的单片机在线编程模式一般分为两大类。一类是使用JTAG协议的在线编程模式。这类模式一般由厂家提供在线编程工具,使用方便。使用这一类模式的单片机价格往往较高,使用的厂商也不多,故不在本文的讨论之列。另一类在线编程模式是使用一条特殊的指令,使单片机进入在线编程模式。在进入在线编程模式后,要自己控制对单片机的擦除写入逻辑。这一类模式又可细分为两种不同的模式:一是进入在线编程模式后,单片机只是提供一个接口,不再运行用户的程序,擦写逻辑全由上位机(PC)提供,如以下要讨论的MTV230就属于这种模式;另一类是进入在线编程模式以后,芯片会运行在某一区域的用户编写的程序,芯片的编程逻辑都由芯片中这段程序控制,上位机(PC)只是作为单片机的一个数据源,向单片机传输要擦写的数据。 MTV230是由Myson公司出品的一块集成OSD功能的基于51内核的芯片。它使用12MHz晶振时可以设置为倍频工作,同时还集成了4路A/D和4路PWM DAC。其中最具竞争力的便是它使用了Flash OSD字库。与一般的OSD芯片不同,它的字库不是掩膜在芯片中,用户可以自己定制。该款芯片可以满足视频应用中的控制需求,因而被广泛应用于视频类产品中。要使MTV230具有在线编程的功能,可以添加一段程序在主应用程序中。该程序用来响应特定的单片机状态,如某一特定引脚的电平变化,或是串口接收到特定的字符以确定是否要进入在线编程模式。在执行以下程序后,MTV230可以进入在线编程模式清看门狗,以防止在编程期间单片机被复位;单片机的在线编程模式是在空闲状态下进行的,所以要关闭所有中断,防止单片机被唤醒;由于MTV230在线编程时是作为I2C的从设备,因而要配置单片机的I2C从地址;向ISPEN写入0x93,使能在线编程功能;进入51的空闲模式,在线编程开始。 对MTV230进行在线编程,就要实现I2C通信协议。作为对MTV230进行编程的上位机PC来说,实现I2C有三种方法:使用串口与单片机通信,再由单片机模拟I2C协议,成本高,I2C速度视使用的单片机而定;对计算机的并口编程,模拟I2C协议,成本低,I2C速度一般;使用USB接口实现I2C协议,成本高,I2C速度快市场上可以买到。由于MTV230进行编程时,I2C时钟速度最高为140kHz,速度要求不高,同时考虑到成本。 由于并口的每个引脚都是单向的,只能单向输出或者单向输入;而I2C又是一个双向协议,SDA与SCL都要求既能输入又能输出,所以,SDA与SCL要分别各由一个输出引脚与一个输入引脚构成。
|
|
|
|
|
|
|