利用串口与并口实现51内核单片机的在线编程

[复制链接]
查看1999 | 回复1 | 2011-9-7 23:01:00 | 显示全部楼层 |阅读模式
<





摘要:详细说明利用并口模拟I2C总线协议,实现Myson MTV230芯片的在线编程(ISP)过程,以及利用PC机的串口通信实现Winbond W78E516B的在线编程(ISP)过程;阐述PC机的串口与并口在单片机开发中的应用。


关键词:并口编程 串口通信 在线编程 ISP MTV230 W78E516B
引 言

1 在线编程简介

  51内核的单片机在线编程模式一般分为两大类。一类是使用JTAG协议的在线编程模式。这类模式一般由厂家提供在线编程工具,使用方便。使用这一类模式的单片机价格往往较高,使用的厂商也不多,故不在本文的讨论之列。另一类在线编程模式是使用一条特殊的指令,使单片机进入在线编程模式。在进入在线编程模式后,要自己控制对单片机的擦除写入逻辑。这一类模式又可细分为两种不同的模式:一是进入在线编程模式后,单片机只是提供一个接口,不再运行用户的程序,擦写逻辑全由上位机(PC)提供,如以下要讨论的MTV230就属于这种模式;另一类是进入在线编程模式以后,芯片会运行在某一区域的用户编写的程序,芯片的编程逻辑都由芯片中这段程序控制,上位机(PC)只是作为单片机的一个数据源,向单片机传输要擦写的数据,如以下要讨论的W78E516B。

2 利用并口对MTV230在线编程的实现

2.1 MTV230简介

  MTV230是由Myson公司出品的一块集成OSD功能的基于51内核的芯片。它使用12MHz晶振时可以设置为倍频工作,同时还集成了4路A/D和4路PWM DAC。其中最具竞争力的便是它使用了Flash OSD字库。与一般的OSD芯片不同,它的字库不是掩膜在芯片中,用户可以自己定制。该款芯片可以满足视频应用中的控制需求,因而被广泛应用于视频类产品中。

2.2 MTV230在线编程模式的进入

  要使MTV230具有在线编程的功能,可以添加一段程序在主应用程序中。该程序用来响应特定的单片机状态,如某一特定引脚的电平变化,或是串口接收到特定的字符以确定是否要进入在线编程模式。在执行以下程序后,MTV230可以进入在线编程模式[1]:

① 清看门狗,以防止在编程期间单片机被复位;

② 单片机的在线编程模式是在空闲状态(idle)下进行的,所以要关闭所有中断,防止单片机被唤醒;

③ 由于MTV230在线编程时是作为I2C的从设备,因而要配置单片机的I2C从地址;

④ 向ISPEN写入0x93,使能在线编程功能;

⑤ 进入51的空闲模式,在线编程开始。

具体程序如下:
WDT=0; //1
IE=0; //2
ISPSLV=0x7C; //3
ISPEN=0x93; //4
PCON=0x01; //5

   以上程序中1~5与上述说明对应。以上将I2C地址设置为0x7C。值得注意的是,设置I2C从地址时,最低两位无效[1]。执行完以上程序,单片机已经变为一个I2C从设备,将I2C中SCL与芯片的15脚相连,SDA与芯片的16脚相连,就可以用I2C协议,按一定的命令格式对芯片进行在线编程。命令格式详见参考文献[1],在此不再赘述。

2.3 PC机I2C接口的实现

  对MTV230进行在线编程,就要实现I2C通信协议。作为对MTV230进行编程的上位机PC来说,实现I2C有三种方法:

① 使用串口与单片机通信,再由单片机模拟I2C协议,成本高,I2C速度视使用的单片机而定;

② 对计算机的并口编程,模拟I2C协议,成本低,I2C速度一般;

③ 使用USB接口实现I2C协议,成本高,I2C速度快市场上可以买到。

  由于MTV230进行编程时,I2C时钟速度最高为140kHz,速度要求不高,同时考虑到成本,决定使用方案②。

2.4 并口I2C硬件的实现

  由于并口的每个引脚都是单向的,只能单向输出或者单向输入;而I2C又是一个双向协议,SDA与SCL都要求既能输入又能输出(有时要获取SCL当前状态),所以,SDA与SCL要分别各由一个输出引脚与一个输入引脚构成。为了增加并口的驱动能力与可靠性,设计电路如图1所示。其中并口的2、12引脚构成SDA脚,并口的3、10引脚构成SCL脚。
       

2.5 并口I2C软件的实现

  在Win98中对并口的编程非常简单,通过在VC中内嵌汇编,使用IN与OUT指令访问与并口相对应的端口,设置相对应端口的值中的位就可以控制相应并口引脚的高低电平值。


热帖推荐
huangshan | 2011-9-7 23:01:02 | 显示全部楼层
本新闻共3页,当前在第1页 [1] [2] [3]




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则