一种基于ATmega8单片机的串行编程器

发布者:快乐的成长最新更新时间:2013-12-09 来源: eefocus关键字:ATmega8  单片机  串行编程器 手机看文章 扫描二维码
随时随地手机看文章
通常进行单片机实验和开发,编程器是必不可少的。仿真、调试完的程序要借助编程器写入单片机的存储器中,随着单片机技术的发展出现了MTP(可多次编程)存储器技术和ISP(在系统可编程)技术,这样就可以省去昂贵的仿真器,只要通过计算机接口和一条串行下载线就可直接在目标芯片上编程。ATmega8就是一种具有MTP与ISP功能的单片机,他也是AVR单片机中价格性能比最高的单片机,因此研究他的串行编程特性对利用他的上述功能来开发应用单片机有很高的实用价值。

1 ATmega8的体系结构与主要性能特点
ATmega8是ATMEL公司在2002年推出的一款新型的AVR高档单片机,他的芯片内部集成了较大容量的存储器和丰富强大的硬件接口电路,具备AVR高档单片机MEGE系列的全部性能和特点。但由于采用了小引脚封装(为 DIP28和TQFP/MLF32),所以价格仅和低档单片机相当,再加上AVR单片机的系统内在可编程特性,使得无需购买昂贵的仿真器,只需要一条具有编程器功能的串行下载线就可以进行单片机嵌入式系统的设计和开发。
ATmega8是一款采用低功耗CMOS工艺生产的基于AVR RISC(精简指令集)结构的8 b单片机。AVR单片机的核心是将32个工作寄存器和丰富的指令集连接在一起,所有的工作寄存器都与ALU(算术逻辑单元)直接相连,实现了在一个时钟周期内执行的一条指令同时访问(读写)2个独立寄存器的操作。这种结构提高了代码效率,使得大部分指令的执行时间仅为一个时钟周期。因此,ATmega8可以达到将近1 MIPS/MHz的性能,运行速度比普通的单片机高出10倍。
ATmega8的主要性能特点如下:
(1)高性能、低功耗的8 b AVR微控制器,先进的RISC精简指令集结构,130条功能强大的指令,大多数为单周期指令,32个8 b的通用工作寄存器,工作在16 MHz时具有16 MIPS的性能。
(2)片内集成了较大容量的非易失性程序和数据存储器
8 kB的Flash程序存储器,可擦写次数大于10 000次;512 B的E2RROM,擦写次数至少100 000次;支持可在线编程(ISP)和可应用自编程(IAP);可编程的程序加密位。
(3)丰富强大的外部接口性能
3个PWM通道,可实现任意16 b以内的、相位和频率可调的PWM脉宽调制输出;6通道A/D转换;一个I2C的串行接口,一个可编程的USART接口;一个支持主/从、收/发的SPI同步串行接口;2个带预分频的8 b定时/计数器,1个带预分频的16 b定时/计数(4)特殊的微控制器性能
可控制的上电复位延时电路和可编程的欠电压检测电路;内部和外部共18个中断源;5种休眠模式(空闲,ADC噪声抑制,省电,掉电,待命)。
2 串行编程器的设计
从上面的描述我们就对ATmega8有了一个总体的认识,ATmega8的在线可编程功能为单片机的设计和开发提供了极大的方便,工程人员可以编译完程序后直接通过编程器将程序写入Flash存储器(而无需昂贵的仿真器)。并且可以自己来设计编程器,下面就以ATmega8作为处理芯片来设计一个串行编程器,也通过这个应用的例子来介绍一下ATmega8的具体应用。
(1)硬件电路,串行编程器的电路原理图如图1所示。
从PC机的串行口通过RS232引出3条线:RXD,TXD,GND用于PC机与ATmega8的通信。最右端的5条线分别与要写入程序的芯片相连。
        (2)串行编程器的工作原理
ATmega8的同步串行接口SPI允许在几个AVR单片机之间,以与SPI接口协议兼容的方式进行高速的同步数据传输。因此可以把串行编程器的处理芯片设计为主机,目标芯片就作为从机,这样就可以实现2个单片机的数据传输,从而实现程序的烧写过程。数据由主机发送从机接收。向主机的SPI数据寄存器 SPDR装入待发送数据的写操作,自动启动SPI时钟发生器,于是该数据便在时钟脉冲的控制下开始逐位左移或右移。若设定最高位MSB先传送,主机的 MSB将自MOSI(PB3)引脚输出,经从机的MOSI引脚进入其8 b移位寄存器中,占据最低位LSB的位置。同时,从机的MSB由MISO(PB4)引脚移出,通过主机的MISO引脚进入到主机移位寄存器中,作为他的 LSB位。这样8个时钟脉冲后,主机SPI移位寄存器中的内容就完全送给了从机。图2为主从机通信流程图。  
         (3)具体的工作过程
把图2的ATmega8设为主机,PB3(MOSI),PB4(MISO),PB6(SCK),PB1管脚用于控制对目标芯片的写入。PB1引脚控制单片机的Reset,只有当Reset被拉为低时单片机才进入串行编程模式。从机的所有I/O引脚都处于输入状态且上拉电阻被禁止。PB6(SCK)引脚用于提供串行编程的时钟,他在上电期间必须为低电平,这样才能保证主机芯片和从机芯片的87时钟同步,因此上电期间给Reset一个正脉冲(至少2个 XTAL1时钟周期)以保证SCK的低电平,这可以通过软件来实现。PB3(MOSI)引脚用于将程序送入从机中。数据在SCK的上升沿被输入,从机的 Reset被拉低后,总是将他的MOSI设为上拉禁止的输入状态,用于从主机接收数据。当从从机中读取数据时,数据在SCK的下降沿输出。设计硬件时要保证从机的Reset,SCK,MOSI,MISO这4根线能被编程器自由地置高置低,否则不可能进行在片编程。具体的命令字格格式可参照ATmega8 manual中所给出的串行编程命令表。
       (4)软件设计
编程器的软件分为两部分,即上层程序和下层程序。上层程序在PC机上运行,用VB编写,来完成HEX文件的发送。下层程序用C语言编写,可通过下载线下载到ATmega8(主机)中;完成接收HEX文件和写入、读及擦除功能。
写芯片 下层程序将HEX文件传送给ATmega8。HEX文件的文件结构是由汇编程序的指令并用ASCII码表示的文本文件,他由若干数据帧组成,每帧的结构顺序为:数据长度、高位地址、低位地址、数据属性、数据及校验和。因为ASCII码是一个4位的二进制数,每2个ASCII码合起来才能用1 B表示,所以要先把HEX文件转换后,再发送。发送过程中对数据的校验和是由每一帧的校验和与该帧的最后两位相比较完成的。下层程序完成接收HEX文件和写目标芯片,其过程为先接收HEX文件存储于数据缓冲区,根据地址将数据写入目标芯片的存储器中,数据存放以高位地址、低位地址和数据为顺序存放,所以在读取时要严格按顺序读取。写程序的流程图如图3所示。
读芯片 读芯片的过程是通过编程器将目标芯片中的数据送PC机,PC机收到数据后保存在一个文件里。下层用C编写控制主机从从机读取数据,上层用VB实现,调用MSCOMM和COMMDIAL即可完成对数据的接收及存储。读芯片的流程图如图4所示。
在数据的传送过程中,要绝对保证数据不丢失。通常采用2种方法:一种是延时,即写入数据后等待一段时间再写入下一个数据;另一种是采用数据校验技术,就是在写入数据后再读数据然后判断是否正确写入。但是这两种方法都存在缺陷,第1种时间太长并且不能保证写入数据的完全正确,第2种方法当要写入的数据和程序存储器的原始数据相同时就判断失效。可以把这两种方法有机地结合起来,从而保证数据不丢失。具体的过程如下:
当向Flash的某一地址写入数据时,当一个数据写入完毕,允许写下一个数据时,读取这一地址的数据,如果读到的数据不是0xFF(程序被擦除后,存储单元里的数据都为0xFF),就再继续接着向存储器里写数据,如果读到的数据是0xFF,就再重新写数据再校验。但是当要向存储器里写的数据正好是 0xFF时,用这种方法就出错,这时可以通过程序控制在检验到读出数据为0xFF时,再连续实行2次这样的操作,如果读出数据还是0xFF,就采取延时的方法处理后,再接着进行对Flash的操作。

擦除芯片 对芯片擦除就是对芯片重新固化。可以通过控制编程引脚高低电平来实现,但是加控制信号时间太短的话,无法擦除干净,如果过长就容易烧坏芯片。
其实擦除的结果是所有地址里的数据都为0xFF,这样也就是说可以通过向存储器里写0xFF操作来实现擦除,本设计采取这种方法就避免了因为选择控制信号时间不合适而导致的一些问题。

3 结 语
本文介绍了ATmega8这款AVR高档单片机,并论述了他的串行下载特性和串行编程器的工作原理;同时提出了新的串行编程数据校验方法和程序擦除方法。MTP(可多次编程)和ISP(在系统编程)技术给单片机应用系统开发提供了很大的方便和灵活性,利用这两种技术可以直接在电路板上反复进行下载调试,甚至可以实现远程在线升级,因此对单片机编程特性的研究有很高的实用价值。

参考文献

[1] 马潮,詹卫前,耿德根.ATmega8原理及应用手册[M].北京:清华大学出版社,2003.
[2] 李勋,耿德根.AVR单片机应用技术[M].北京:北京航空航天大学出版社,2002.
[3] 石东海.单片机数据通信技术从入门到精通[M].西安:西安电子科技大学出版社,2002.
[4] 张俊涛.具有ISP功能的单片AT89S8252[J].现代电子技术,2001,(8).
[5] 马书雷.AVR单片机编程特性的应用研究[J].微型机与应用,2000,(9).

关键字:ATmega8  单片机  串行编程器 引用地址:一种基于ATmega8单片机的串行编程器

上一篇:达芬奇视频处理器如何为智能安防系统带来差异化?
下一篇:如何优化单片机C语言代码

推荐阅读最新更新时间:2024-03-16 13:31

ARM核颠覆MCU传统模式 升级换代不受内核困扰
嵌入式系统的出现彻底改变了整个电子技术行业,在全球范围内形成了从高校教育和科学研究、电子元件生产厂和电子产品生产厂全方位产业链。因MCU的市场容量大,MCU厂家为了获得更多的市场份额,不断地加大MCU的开发力度,自Intel在1980年发布MCU标志性产品MCS-51开始,到现在的30多年中出现了近100种MCU内核,涉及MCU型号超过3000种。在世界电子元件史上,除了MCU外,还没有一种功能相近,涉及型号如此之多的电子元件,自MCU一出世就进入了战火纷飞的战国时代。但ARM核的出现使MCU领域产生了巨大的变革。 天下一统 ARM核MCU性能价格优势明显 ARM7TDMI模式的出现,使嵌入式系统开发逐渐统一到相同MCU内
[单片机]
从零开始学单片机(九)串口通信
串口通信是单片机一个重要的部分,单片机和PC,单片机和单片机之间的通信大都用串口。单片机的串口是全双工异步串口通信方式。通过TXD(P3.1)发送,RXD(P3.0)引脚接收输入。串口传送数据是一帧一帧发送的,它有四种工作方式,同时也可以做并行I/O的扩展。 图上是串口的结构图。 SBUF是数据缓冲寄存器,发送和接收用的是一个地址,但是不用担心冲突,读只能从接收缓冲区,写只能在发送缓冲区里。 寄存器SCON(SM0 SM1 SM2 REN TB8 RB8 TI RI) SM0和SM1: 工作方式选择(0-3),方式1和方式3使用T1产生波特率,方式0和方式2是固定速率。 SM2 :在方式2和方式3的多级通信控制位 RE
[单片机]
从零开始学<font color='red'>单片机</font>(九)串口通信
MCS51单片机数制转换程序
;BCD小数转换为二进制小数(2位) ;入口 :R0(低位首址),R7 ;占用资源:ACC,B,R5 ;堆栈需求:2字节 ;出口 :R3,R4 PDTB :CLR A MOV R3,A MOV R4,A PDB1 :MOV A,R3 MOV B,#9AH MUL AB MOV R5,B XCH A,R4 MOV B,#19H MUL AB ADD A,R4 MOV A,R5 ADDC A,B MOV R5,A MOV A,@R0 MOV B,#9
[单片机]
51单片机4种工作方式及应用示例
一、方式0: 二、方式1 三、方式2 四、方式3
[单片机]
51<font color='red'>单片机</font>4种工作方式及应用示例
基于AT89C51应用系统的串行通信设计
1 引 言 在红外成像技术的电力设备状态检测系统中,基于AT89C51单片机的应用系统,采用美国雷态公司的型号为3iLRL3的非接触式红外测温仪.该测温仪采用的是RS232C串行通信标准接口,该接口在很多通信设备中通用,目前与PC机的直接串行通信也是RS 232C接口。尽管RS232C性能指标并非很好,但还是有广泛的市场支持。串行通信技术在测控系统中占有很重要的地位,只用三根线.就可以方便的在2个数字设备之间进行信息的交换,实现全双工的传送数据,硬件成本低.而且通用性好。 2 串行通信的硬件设计 在所开发的系统中.红外测温仪将检测电力没备的工作和环境温度,通过RS 232C串口传给单片机,同时由单片机控制检测装置的在线工作组态
[工业控制]
单片机常用功能模块的使用 Part6. 中断
1、单片机中断: 用度娘找了一张 80C51 单片机的图如下: 其中,在 P3.2、P3.3 的位置,即 12 ,13 引脚处,标有 INT0 和 INT1,那两个引脚就是外部中断的输入。上面一个横杠代表低电平有效,给 P3.2、P3.3 赋值 0,就可以运行已经写好的中断服务程序。具体怎么用,还要熟悉一些中断寄存器的使用。 2、中断寄存器: (1)、IE (Interrupt Enable):中断允许控制寄存器 EA (IE.7):EA=0 时,所有中断禁止(即不允许中断)       EA=1 时,各中断的产生由个别的允许位决定 ET2 (IE.5):定时器 2 溢出中断允许(8052 用,博主用的 S
[单片机]
<font color='red'>单片机</font>常用功能模块的使用 Part6. 中断
基于串行通信的智能家居上位机设计
  0引言   上位机设计是智能家居系统的一个重要组成部分,担负着管理、控制、维护和用户界面操作的重任,高效可靠的上位机设计是整个系统正常运作的重要保障。上位机与系统的通信实际上是与下端单片机的通信。单片机或单片机系统是智能家居控制的核心,当计算机作为单片系统的一个角色时,通常被称为“工控机”或“上位机”,各独立的单片机是系统中实现功能的一个模块,所以有时也称单片机为模块。   计算机与单片机是通过串口来实现通信的,本文着重讨论计算机与单片机的串口通信的实现方法和MSComm控件技术。   1上位机在智能家居系统的角色   首先,必须认识计算机在智能家居系统的作用,可以概括为以下几个方面:   1.1通信测试工具   
[单片机]
在处理PIC单片机的中断服务程序时需要注意哪些问题
单片机中的中断系统对电子工程师来说是解决突发事件和多任务实时处理的最好方法,熟练掌握中断技术的应用是一个合格电子工程师必备的能力。 PIC与51系列单片机一个显著的区别就是:PIC只有一个中断入口地址(为04H),而51有多个中断源。这样对PIC来说,无论发生何种中断程序将自动转移执行04H处的程序语句,为了区分到底是哪种中断发生就必须在中断服务程序中通过判断中断标志位来确定并转移到相应的中断服务程序中。在发生中断时,断点地址被首先压入硬件堆栈,而现场的一些参数须用户通过软件保存,必须保存的寄存器包括W寄存器、程序寄存器的高位字节PCLATH及状态标志寄存器STATUS等,另外一些在中断服务程序和主程序中均使用到的寄存器也必须
[单片机]
在处理PIC<font color='red'>单片机</font>的中断服务程序时需要注意哪些问题
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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