首页 » 业界动态 » 单片机的ISP在线编程设计

单片机的ISP在线编程设计

作者:  时间:2009-05-10 13:05  来源:

  
随着电子技术的日益发展,芯片的规模越来越大,封装日趋小型化,相应地对系统板级调试的困难也在加大。在传统的调试方式中,频繁的调试和更换程序需要频繁地插拔芯片,开发效率极低。

AT89S
系列单片机提供的ISP在线编程技术彻底地改变了传统的开发模式,开发单片机系统时不会损坏芯片的引脚,加速了产品的上市并降低了研发成本,缩短了从设计、制造到现场调试的时间,简化了生产流程,大大提高了工作效率,因此它是对市场定型产品进行现场升级和维护的经济、有效的方式,极大地促进了PLD产品的发展。

1 PC
机并行口

1
1 并行口硬件接口简介
  
标准并行口有25个引脚,其中数据端口引脚为29,状态端口引脚为151013,控制端口引脚1141617用于连接器件,其他引脚1825是接地引脚GND25针并行口如图1所示。



并行口工作在SPP模式下,PC机是通过对38位端口寄存器的读或写来实现对它们的控制。端口寄存器分别是:
    
数据端口(地址0x378)D7D0,对应引脚P9P2
    
状态端口(地址0x379)S7S3,对应引脚P11P10P12P13P15
    
控制端口(地址0x37A)C3C0,对应引脚P17P16P14P1
    
注意:S7COC1C3信号的逻辑状态在连接器处是与相应寄存器位相反的。对这些位进行写操作时,写入的值应该与连接器处设置的值相反;同样,进行读操作时,读取的值也与连接器处设置的值相反。

1
2 并行口编程简介
    
WindOWS
对系统底层操作采取了屏蔽的策略,但是在硬件或系统软件开发中只要涉及系统底层的操作,就不得不深人到Windows的内核去编写属于系统级的设备驱动程序。对并行口的读/写操作就是如此。为了绕过WindOWS安全保护机制,需要允许32Windows程序直接对IO口进行操作。这里使用由Yariv Kaplan编写的WinIo库中的几个函数来实现对IO口的读/写。

1)初始化与终止

对端口读/写前后要分别初始化和终止



GetPortVal
函数从指定端口读取一个BYTEWORDDW0RD类型的值;SetPortVal函数向指定端口写入一个BYTEWORDDWORD类型的值;wPortAddr是指定一个端口地址值;pdwPortVal为指向一双字节型变量的指针,该变量存储从wPortAddr端口读取的值;dwPortVal为一双字节型变量写到wPortAddr端口中;bSize指定读取字节数,值可以为124

2 AT89S5X
系列单片机

2
1 AT89S51简介    

AT89S51
是一个低功耗、高性能CMOS 8位单片机,片内含4 KB ISP(In-System Programming)的可反复擦写1 000次的Flash只读程序存储器。该器件采用Atmel公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。功能强大的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

2
2 AT89S51串行编程时序及指令

2
21 串行编程模式下的时序分析



2
22 串行编程指令
   
串行编程使用4字节协议,指令如表1所列。



3
并行口与AT89S5X单片机的硬件设计
    

通过对并行口和编程时序的分析,我们制作了AT89S5X单片机的ISP下载线。下面对并行口与单片机的连线作一简单介绍:并行口P2引脚连接单片机的P15引脚(MOSI);并行口P10引脚连接单片机的P16引脚(MISO);并行口P1引脚连接单片机的P17引脚(SCK);并行口P17引脚连接单片机的RST引脚,如图2所示。



4 ISP
下载线的软件设计
    
在硬件设计的基础上,通过对ISP时序和串行编程指令的分析,采用Visual C++ 60编写了下载线程序。其主要关键编程函数略——编者注。


    
以下是作者在调试中获取的一些参数,希望对大家有所帮助。

参考资料:
    
晶体振荡器的频率为33 MHz(MAX),所以周期T=1F=133 MHz=30 ns(MIN)SCK正脉冲宽度为8×30 ns=240ns(MIN)SCK负脉冲宽度为8×30 ns=240ns(MIN)MOSI建立到SCK变高时间为30ns(MIN)SCK变高后MOSI保持时间为2×30 ns(MIN)SCK变低到MISO有效时间为10 ns(MIN)32 ns(MAX)(一般取16ns);芯片檫除指令周期为500 ms;串行字节写周期为64×30 ns+400 ns

实验数据:   
晶体震荡器的频率为33 MHz(MAX),所以周期T=1F=133 MHz=30 ns(MIN);芯片擦除指令周期为200msSCK变高后MOSI保持时间为1 ms(MIN)

相关推荐

飞思卡尔CEO:新战略初现成效 未来更关注中国市场

飞思卡尔  单片机  2013-04-28

飞思卡尔携手周立功单片机 共同拓展中国MCU市场

飞思卡尔  MCU  单片机  2012-12-19

英飞凌为提高XMC4000单片机生产率免费提供DAVE 3

英飞凌  单片机  2012-04-20

英飞凌XMC4500工业单片机现已量产供货

英飞凌  单片机  XMC4500  2012-03-19

ZLG成为Energy Micro中国区合作伙伴

周立功  Energy  Micro  单片机  2011-12-19

Microchip第100亿颗PIC单片机交付三星电子

微芯科技  单片机  PIC32  2011-09-21
在线研讨会
焦点