单片机实用技术 - 范文中心

单片机实用技术

02/25

单片机实用技术

作者:shenxq301

1 首先介绍经济使用的单片机AVR

使用学习板快速入门,尤其实用于在校学生和刚刚工作的工程技术人员。

AVR mega16学习板

单价:240 元

该学习板可以从正规途径买到正版,当然也可从旧货市场购买。

1.1 AVR器件的基本知识

下面分别对单片机芯片中所集成的各个组成部分予以简要介绍。

1.MCU单元

MCU单元部分包括了CPU、时钟系统、复位、总线控制逻辑等电路。CPU是按照面向测控对象、嵌入式应用的要求设计的,其功能有进行算术、逻辑、比较等运算和操作,并将结果和状态信息与存储器以及状态寄存器进行交换(读/写)。时钟和复位电路实现上电复位、信号控制复位,产生片内各种时钟及功耗管理等。总线控制电路则产生各类控制逻辑信号,满足MCU对内部和外部总线的控制。其中,内部总线用以实现片内各单元电路的协调操作和数据传输,而外部总线控制用于单片机外围扩展的操作管理。

2. 片内存储器

单片机的存储器一般分成程序存储器和数据存储器,它们往往构成相互独立的两个存储空间,分别寻址,互不干扰。在这一点上,与通用计算机系统的结构是不同的。通用计算机系统通常采用“Von-Neumann”结构,在这种结构体系中采用了单一的数据总线用于指令和数据的存取,因此数据和指令是存放在同一个存储空间中的,CPU使用同一条数据总线与数据和程序进行交换。而单片机的内部结构通常使用“Harvard”体系结构,在这种体系中采用分开的指令和数据总线,以及分开的指令和数据地址空间。单片机采用Harvard双(多)总线结构的优点是,指令和数据空间完全分开,分别通过专用的总线同CPU交换,可以实现对程序和数据的同时访问,提高了CPU的执行速度和数据的吞吐率。

早期的单片机,如典型的8031单片机,在片内只集成少量的数据存储器RAM(128/256字节),没有程序存储器。因此程序存储器和大容量的数据存储器需要进行片外的扩展,增加外围的存储芯片和电路,这给构成嵌入式系统带来了麻烦。后期的单片机则在片内集成了相当数量

的程序存储器,如与8031兼容的AT89S51、AT89S52在片内集成了4K/8K的Flash程序存储器。而现在新型的单片机,则在片内集成了更多数量和更多类型的存储器。如AVR系列的Atmega16在片内就集成了16K字节的Flash程序存储器,1K字节的RAM数据存储器,以及512字节的EEPROM数据存储器,这就大大方便了应用。

3.程序存储器

程序存储器用于存放嵌入式系统的应用程序。由于单片机嵌入式系统的应用程序在开发调试完成后不需要经常改变,因此单片机的程序存储器多采用只读型ROM存储器,用于永久性的存储系统的应用程序。为适应不同产品、用户和不同场合的需要,单片机的程序存储器有以下几种不同形式:

①ROMLess型。该种形式的单片机片内没有集成程序存储器,使用时必须在单片机外部扩展一定容量的EPROM器件。因此,使用这种类型的单片机就必须使用并行扩展总线,增加芯片,增加了硬件设计的工作量。

②EPROM型。单片机片内集成了一定数量的EPROM存储器用于存放系统的应用程序。这类单片机芯片的上部开有透明窗口,可通过约15分钟的紫外线照射来擦除存储器中的程序,再使用专用的写入装置写入程序代码和数据,写入次数一般为几十次。

③MaskROM型。使用种类型的单片机时,用户要将调试好的应用程序代码交给单片机的生产厂家,生产商在单片机芯片制造过程的掩膜工艺阶段将程序代码掩膜到程序存储器中。这种单片机便成为永久性专用的芯片,系统程序无法改动,适合于大批量产品的生产。

④OTPROM型。这种类型的单片机与MaskROM型的单片机有相似的特点。生产商提供新的单片机芯片中的程序存储器可由用户使用专用的写入装置一次性编程写入程序代码,写入后也无法改动了。这种类型的单片机也是适用于大批量产品的生产。

华东师范大学 电子科学技术系 马潮 2005.3.16

⑤FlashROM型。这是一种可供用户多次擦除和写入程序代码的单片机。它的程序存储器采用快闪存储器(FlashMemory),现在可实现大于1万次的写入操作。

内部集成FlashROM型单片机的出现,以及随者Flash存储器价格的下降,使得使用FlashROM的单片机正在逐步淘汰使用其它类型程序存储器的单片机。由于FlashROM可多次擦除(电擦除)和写入的特性,加上新型的单片机又采用了在线下载ISP技术(In System Program--既无需将芯片从系统板上取下,直接在线将新的程序代码写入单片机的程序存储器中。),不仅为用户在嵌入式系统的设计、开发和调试带来了极大的方便,而且也适用于大批量产品的生产,并为产品的更新换代提供了更广阔的空间。

4. 数据存储器

单片机在片内集成的数据存储器一般有两类:随机存储器RAM和电可擦除存储器EEPROM。 ①随机存储器RAM。在单片机中,随机存储器RAM是用来存储系统程序在运行期间的工作变量和临时数据的。一般在单片机内部集成一定容量(32字节至512字节或更多)的RAM。这些小容量的数据存储器以高速RAM的形式集成在单片机芯片内部,作为临时的工作存储器使用,可以提高单片机的运行速度。

在单片机中,常把内部寄存器(如工作寄存器、I/O寄存器等)在逻辑上也划分在RAM空间中,这样即可以使用专用的寄存器指令对寄存器进行操作,也可将寄存器当做RAM使用,为程序设计提供了方便和灵活性。

对一些需要使用大容量数据存储器的系统,就需要在外部扩展数据存储器。这时,单片机就必须具备并行扩展总线的功能,同时外围也要增加RAM芯片和相应的地址锁存、地址译码等电路。这不仅增加了硬件设计的工作量,产品的成本,同时降低了系统的可靠性。

②电可擦除存储器EEPROM。一些新型的单片机,在芯片中还集成了电可擦除存储器型EEPROM的数据存储器。这类数据存储器用于存放一些永久或比较固定的系统参数,如放大倍率、电

话号码、时间常数等。EEPROM的寿命大于10万次,具有掉电后不丢失数据的特点,并且通过系统程序可以随时修改,这些特性都给用户设计开发产品带来极大的方便和想象空间。

5. 输入/输出(I/O)端口

为了满足嵌入式系统“面向控制”的实际应用需要,单片机提供了数量众多、功能强、使用灵活的输入/输出端口,简称I/O。端口的类型可分为以下几种类型:

① 并行总线输入/输出端口(并型I/O口)。用于外部扩展存储器或扩充I/O等使用,包括数据总线、地址总线和读写控制信号等。

② 通用数字I/O端口。用于外部电路逻辑信号的输入和输出控制。

③ 片内功能单元的输入/输出端口。如:定时器/计数器的计数脉冲输入,外部中断源信号的输入等。

④ 串行I/O通信口。用于系统之间或与采用专用串行协议的外围芯片之间的连接和交换数据。如:UART串行接口(RS-232),I2C串行接口,SPI串行接口,USB串行口等。

⑤ 其它专用接口。一些新型的单片机还在片内集成了某些专用功能的模拟或数字的I/O端口,如A/D输入、D/A输出接口,模拟比较输入端口,脉宽调制(PWD)输出端口等。更有的单片机还将LCD液晶显示器的接口也集成到单片机芯片中了。

为了减少芯片引脚的数量,又能提供更多性能的I/O端口给用户使用,大多数的单片机都采用了I/O端口的复用技术,既某一端口,它即可作为一般通用的数字I/O端口使用,也可作为某个特殊功能的端口使用,用户可根据系统的实际需要来定义使用。这样就为设计开发提供了方便,大大拓宽了单片机的应用范围。

6. 操作管理寄存器。

华东师范大学 电子科学技术系 马潮 2005.3.16

操作管理寄存器也是单片机芯片中的重要组成部分之一。它的功能是管理、协调、控制和操作单片机芯片中的各功能单元的使用和运行。这类寄存器的种类有:状态寄存器、控制寄存器、方式寄存器、数据寄存器等等。各种寄存器的定义、功能、状态、相互之间的关系和应用相对比较复杂,而且往往同相应的功能单元的使用紧密相关,因此,用户应非常熟悉各个寄存器的作用以及如何与不同的功能单元的配合使用,这样才能通过程序指令对其编程操作,以实现对单片机芯片中各种功能的正确使用,充分发挥单片机的所有特点和性能,设计和开发出高性能、低成本的电子产品。可以这样讲,当你对某个单片机芯片中各个操作管理寄存器的作用、功能、定义非常透彻的掌握了,那么你已经完全精通和能够熟练使用该单片机了。 AVR系列产品是采用新架构生产的芯片,整个系列都具有良好的相似性,芯片结构也非常容易理解和掌握。好了,

现在我们就来开始看看AVR器件的基本知识吧。

首先,AVR系列产品可以分为3大种类:

tiny AVR(简化版芯片)

AVR (常用芯片)

mega AVR (增强型)

这3类器件的区分是很明显的,譬如tiny芯片在管脚和功能上有所裁减。但是3类器件都采用同样的结构和存储器管理

方式,如果将外围管脚以及一些特殊的模块除去,每一个AVR芯片都具有相同的内核,这样的性能保证升级芯片时

非常的便利。

有些适用于特殊领域的AVR器件带有SRAM、EEPROM、扩展SRAM接口、ADC、UART等等模块。 选择合适的AVR芯片

从上面的介绍来看3类AVR芯片是有差别的,我们可以从芯片的性能上去区分:高性能的——mega

AVR,简化版本的——tiny AVR,在两者之间的——标准AVR。

1.2 互联网上下载AVR STUDIO 4

首先,请放松,我们首先要做的只是下载AVR开发软件和相关的资料。下载前确保这些软件有效,下载的时间

取决于你连接互联网的速度。

下载以下文件到你的计算机中(如C:\Temp)

AVR STUDIO 4

(~15MB)

This file contains the AVR Studio 4 Program. This

program is a complete development suite, and contains

an editor and a simulator that we will use to write our

code, and then see how it will run on an AVR device.

Assembly Sample Code

(~1kB)

This file contains the Assembly Sample code you will

need to complete this guide.

AT90S8515 Datasheet

(~4MB)

This is the Datasheet for the AT90S8515 AVR

Microcontroller. This is a convenient "Getting Started"

device. For now you don't have to worry about the

different types of AVR micros. You'll see that they are

very much alike, and if you learn how to use one (eg.

8515), you will be able to use any other AVR without

any problems.

Instruction Set

Manual

(~2MB)

This is the Instruction Set Manual. This document is

very useful if you want detailed information about a

specific instruction.

AVR STUDIO4:这个文件是一个完整的开发工具,包括编辑、仿真功能,利用这个工具,我们可以编辑源

代码,并在AVR器件上运行。这个文件大概15MB。

代码实例:这是一个用于演示完整代码,大概1KB。

AT90S8515数据手册:这是AT90S8515芯片的完整资料。AT90S8515芯片是一款非常容易上手的AVR芯片

。现在你不用担心AVR其他型号的产品,以后你会发现AVR系列产品有非常大的相似性,你掌握了一款芯片

(比如说8515),学会其他芯片也非常容易。这个文件大概4MB。

指令说明:如果你要详细的了解各种指令的话,这个文件非常有用。这个文件大概2MB。 如果以上的文件你都下载了,下面的工作就是安装软件了。

安装AVR Studio 4

AVR Studio现在也提供版本3,不过版本4将逐步替代版本3。

使用Windows NT/2000/XP的用户请注意,安装AVR Studio软件时,必须使用管理员(Administrator)权限登陆,这

是Windows系统限定只有管理员才可以安装新器件。

安装过程:

1. 双击AVRSTUDIO.EXE文件。这是一个自解压文件,双击后系统询问将文件解压到哪个目录底下,一般情况

下是放在系统默认临时目录下,这个目录是隐藏在你的硬盘中的。为了记忆方便,一般输入指定的目录,如

C:\temp。

2. 当所有文件解压缩完成以后,打开temp目录,双击SETUP.EXE文件。好了,开始安装了,推荐适用默认的安装路径,当然,用户也可以设定自己的安装路径,但是在指南中,我们使用默认路径。

好了,开发工具安装好了,就这么简单。现在你可以开始编写代码,在AVR器件上运行了。注意,将芯片资

料和指令说明放在旁边,这些资料以后经常用到。

1.3 开始学习编写AVR代码

学习新的知识是非常有意思的,当然,也可能遇到一些小小的麻烦。对于学习AVR编程,一个可行的办法是读完全

部的资料,但是这个方法在时间和对芯片的理解上可能有不小的问题。在这里,我们通过一个简单的方法,包括:

找一些事先写好、可以工作的代码

理解这些代码是如何工作的

按照自己的需要修改代码

在这次学习中,我们采用AT90S8515芯片,现在开始花点时间把芯片的说明书看一下。 学会看AVR的芯片说明书

看AVR的芯片说明书可能是一件非常恐怖的事情,因为AVR的芯片说明书有时长达350页。将这样的说明书从头到尾

读完并且记忆下来是十分长并痛苦的。现在你不需要这样做,芯片说明书详细记录了芯片的技术资料,你只是在需要

了解某个方面的时候才需要翻阅相关的内容。

打开AVR芯片的说明书,你会发现说明书大体上分成以下几个部分

第一页讲述关键信息和列表

总体介绍芯片架构

外围设备介绍

存储器编程

芯片性能

寄存器介绍

命令总结

封装信息

这样排列有非常大的便利,当你熟悉适用AT90S8515芯片说明书以后,再看其他AVR产品的说明书也会觉得非常容

易。在这次整个学习过程中,你需要参看AT90S8515芯片数据手册中有关架构介绍部分的内容(在说明书的开始)

,这段内容包含了非常重要的信息,包括AVR芯片的存储器、地址以及其他信息。

另外一个非常重要的部分是命令总结。如果你要自己编写AVR代码的话,这部分的内容至关重要。如果你想深入了

解命令的话,那就参看芯片数据手册前面的内容。

1.4 利用AVR STUDIO 4 进行开发

好了,现在你已经安装了开发软件,也知道了AVR的基本知识,也拥有了芯片数据手册,下面,我们就开始进行AV

R芯片的开发吧。

AVR Studio 4的界面

提示:如果你还没有安装AVR Studio 4开发软件,你可以参考前面的章节来安装软件。 创建一个新的项目

启动AVR Studio 4 的方式如下:点击 开始-〉程序-

〉ATMEL AVR工具。AVR Studio启动后,你将看到一个对话框。我们需要创建一个新的项目,点击“Create New

Project”按钮。

配置项目参数

这个步骤包括选择我们要创建什么类型的项目,设定名称以及存放的路径。

这个过程包括五个步骤:

(1) 在对话框左边选中Assembly program,表明你要创建一个项目。

(2) 输入项目的名称。项目的名称可以随意定义,在例子中我们用了“Leds”。

(3)我们需要AVR Studio自动产生一个汇编文件,在例子中,我们用了“Leds”。

2 PIC单片机

2.1 如何学习PIC单片机

在产品的设计中,对于PIC单片机的选型采用的是“因地制宜”的策略——根据需要

合理选择各种系列产品,这样可以做到产品的最佳“性价比”。这也是PIC单片机的一种“优势”。如洗衣机、电冰箱或电梯控制系统等会采用从低到高不同的PIC系列

产品。

⏹ 由于PIC单片机各个档次之间存在于指令不完全兼容的特点,那么如何选择、从那

个系列入手学习呢?

1. 16FXXX:具有丰富的内部模块、完整的指令系统和良好的向下兼容性。适合初学

入门的系列;

2. 18FXXX:高效的16位指令系统、大容量的ROM和RAM结构使其更适合C语言

编程。更为丰富的内部某块和8位的硬件乘法器使其具备DSP的性能。学习的高级阶段。

2.2 PIC微控制器的历史和特征

⏹ 1989年Microchip公司开发了一种8位的微控制器:PIC(Peripheral Interface Controler ——— 外围接口控制器);

⏹ 将少量的RAM、ROM、一个定时器和一些I/O端口全部集成在一个8脚的芯片上; ⏹ 在不到10年的时间内,Microchip公司已经把这个如此简陋的产品发展成主流的8

位微控制器这是一个奇迹;

PIC微控制器的产品系列

10XXX

12XXX

14XXX

16XXX:应用最广泛的8位机产品,14位指令宽度

18XXX:8位机中的高档产品,16位指令宽度。

它们全部都是8位机系列(内部的数据总线为8位),8位机的特点:CPU每次处理数据的能力为8位,如果超过8位就必须事先将其截为8位后再分别处理。

PIC18系列单片机的特性

与其它PIC系列单片机一样,采用精简指令集RISC、流水作业、丰富的内部模块、低功耗大电流驱动等。为了更适合单片机的C语言开发,18系列设计成较大的信息存储空间。如: 2M的程序存储器空间;

4K的数据存储空间;

这种设计极大的方便了C语言的设计与编程。

(一)高性能RISC CPU

⏹ C编译器优化体系结构/指令设置;

⏹ 兼容PIC16和PIC17指令源代码;

⏹ 高达2MB的程序存储器;

⏹ 高达4KB的数据存储器;

(二)优越的外围功能模块特征

⏹ 最大拉/灌电流可达25mA;

⏹ 3个外部中断引脚;

⏹ 4个定时器TMR0、TMR1、TMR2、TMR3;

⏹ 捕捉/比较/脉宽调制(CCP)模块/增强型CCP模块;

⏹ 两种工作方式的主同步串行通讯(MSSP):

⏹ ① SPI主控方式(支持所有4种SPI工作模式);

⏹ ② I2C主控/从动方式;

⏹ 可寻址的USART模块:支持RS-485和RS-232串口,并行从动口模式,支持中断支持

位。

(三)高级模/数转换特性

⏹ 10位、8通道的模/数(A/D)转换模块:

⏹ 可利用休眠状态进行转换,以减少系统干扰、提高精度;

⏹ 模拟比较模块:可编程多路输入/输出技术;

⏹ 比较器参考电压模块;

⏹ 可编程的低电压探测模块(PLVD):支持低电压检测时产生中断;

⏹ 可编程的锁定复位(BOR);

(四)特殊的单片机特性

⏹ 增强功能的FLASH可经受100,000次擦/写操作;

⏹ EEPROM可经受1,000,000次擦/写操作;

⏹ FLASH/数据EEPROM数据保存期可超过40年;

⏹ 软件控制自动可改编程序(在线升级);

⏹ 上电复位电路(POR)、上电延迟定时器(PWRT)和振荡器起振定时器(OST); ⏹ 片内RC振荡的看门狗定时器(WDT)保证可靠运行;

⏹ 低功耗睡眠模式(Sleep);

⏹ 可选择不同的振荡器工作方式:

① 4锁相环(主振荡器);

② 2路振荡器(32KHz)时钟输入;

⏹ 通过两个引脚可进行在线串行编程(ICSP);

⏹ 通过2个脚在线调试器。

(五)CMOS芯片工艺性能

⏹ 低电压,高速度FLASH/EEPROM技术;

⏹ 全静态设计;

⏹ 宽范围的工作电压:2.0-5.5V;

⏹ 工业级和扩展级温度范围;

⏹ 低功耗:

—在5V、4MHz下典型值1.6mA;

—在3V、32KHz下典型值25uA;

—待机电流典型值0.2uA。

2.3 PIC微控制器的产品局限性

⏹ 由于历史原因:PIC单片机的产品是逐渐从低向高发展。其中最明显的特征是:随

着产品性能的提高其内部的硬件结构也在变化。如程序存储器ROM的宽度会随着产品性能的升级而加宽,且指令系统也在扩充。

1. 12XXX的指令宽度为12位,指令系统为33条;

2. 16XXX系列的指令宽度为14位,指令系统为35条;

3. 18XXX系列的指令宽度为16为,指令系统为58条。

⏹ 这种特点决定了不同系列的产品其指令系统没有很好的兼容性。

2.4 PIC微控制器的程序ROM

⏹ 与其他厂家的微控制器一样,用于存储程序代码或常数的程序ROM其结构、特点决定了其实用的环境和应用的价值。

1. 其大小决定了系统程序的容量。在广泛使用C语言编程的今天,采用大容量结构设计显得尤为重要;

1. ROM的制造工艺决定了微控制器的使用特点和制造成本,这也与半导体工艺的发展水平相关;

(一)UV—EPROM的PIC微控制器

⏹ 早期微控制器ROM的工艺结构。需配合“紫外线擦除器”和“程序烧写器”完成程序的写入;

⏹ 使用“紫外线擦除器”中的紫外线照射芯片大约20分钟,利用“光—化学”反应将芯片中的旧程序擦除;

⏹ 再使用“程序烧写器”将新程序烧写到芯片中。

⏹ 早期产品,用于产品的研制阶段。这类芯片的最大缺点是擦除时间长,目前已经被淘汰。

⏹ 芯片本身有一个明显的特征:在芯片正面的中央有一个大约直径10mm透明窗口,为紫外线照射提供一个入射的光路通道。

(二)带闪存flash的PIC18FXXX

⏹ 与UV—EPROM相比,flash闪存程序存储器采用“电擦除”技术,具有速度快,擦除次数多的优点。因此闪存ROM已经取代UV—EPROM,是当前广泛采用的模式; ⏹ PIC18FXXX系列微控制器采用闪存ROM结构。擦除程序不用外加“擦除器”,但烧写程序时需要“程序烧写器”。

⏹ 在PIC产品中是以F为来表示的,如:PIC18F458等;

⏹ 当使用程序烧写器烧写程序时,首先要擦除旧程序然后烧写新程序。擦除和写入的过程是由编程器自动进行的。

⏹ 这类芯片适用于产品的研制阶段,需要不断修改、调试程序的场合。

(三)PIC单片机的OPT版本

⏹ OPT(one time programmable)—— 一次性编程技术。

⏹ 在PIC产品中是以C为来表示OPT结构的,如:PIC16C432等;

⏹ 与闪存flash工艺结构的芯片相比,具有较低的制造成本。因此,适合当程序调试成功后进行大规模的生产的情况,这样可有效降低生产成本;

⏹ OPT芯片只能进行一次编程,一旦程序烧写进去就永远无法修改。因此此类芯片不适合开发阶段的使用。

(四)PIC单片机的掩模版本

⏹ 所谓“掩模”技术是指:将编写好并调试成功的源程序代码直接交给生产微控制器的厂家,由芯片制造厂家在制造芯片的过程中将用户程序一同烧入的模式;

⏹ 在所有ROM的制造工艺模式中,“掩模”工艺是制造成本最低的一种方式,非常适

合工厂对设备的批量生产。

⏹ 采用掩模技术制造的芯片是“专用”的芯片,不能用于其它项目。因此,掩模ROM工

艺的单片机是针对某一产品生产的。

2.5 PIC微控制器的数据RAM和E2PROM

⏹ RAM和E2PROM都是用来存储数据的。其中:

1. RAM用于存储程序的“变量”,如系统采集的输入数据、处理运算的中间结果或者是

程序的最终数据等。

RAM的大小影响着CPU处理数据的空间。一个大容量的RAM还可以使高级语言运行更为流畅。

特点:存储速度快(与指令运行的速度同步)、掉电后数据丢失。

2. E2PROM用于存储 “重要而不需经常修改的数据”。一般是结果数据,如:水表的

流量、汽车的行驶里程、远端采集的遥感数据等。

特点:掉电后数据不丢失、存储数据速度慢(ms级)。

⏹ 在PIC18XXX系列中,不同型号芯片其RAM、 E2PROM的配置是不同的;

⏹ RAM的容量从256B~4096B不等,一般是按照256B的整数倍来设置RAM的容量;

⏹ 在PIC18XXX系列产品中,都会配置一个小容量(256B)的E2PROM模块,以满

足一些需要特定环境(如掉电)的数据保存的要求。

⏹ 与RAM不同,E2PROM是以“外围模块”的方式来工作的,它需要SFR的控制来参

与“读/写”操作。

2.6 PIC微控制器的I/O引脚

1

2 PIC18XXX系列单片机的引脚为18~80不等,其中可做I/O引脚的数量为16~72不等。很明显,I/O引脚的数量受到芯片引脚的约束。 Microchip公司对产品开发采用了“面向应用”的设计理念,产品种类多而细,从8脚的

简约型到80脚高档型。这种设计使用户可以根据工程项目的需要有“针对性”的进行选型,做到系统设计的“最优性价比”。

引脚的减少意味着芯片功能的简化,降低成本。相反,80脚的产品意味着芯片内部模块的增加、功能的强大(因为许多模块都需要借助于引脚进行数据交换的)。 3

2.7 PIC微控制器的外围设备

⏹ PIC微控制器是由“核心器件”和“外围模块” 组成。

1. 由中央处理器CPU、数据存储器RAM、指令译码控制器以及时钟电路、复位电路

等控制逻辑统称为“核心器件”,它是构成微控制器的必要部分。在PIC18FXXX系列中,不论什么型号其“核心器件”都是相同的;

2. 将芯片内部所包含的ADC、定时器、同步/异步收发器、 E2PROM、看门狗WDT、I2C总线、CAN总线接口等统称为“外围模块”。外围模块有两个特征: ①都是由对应的SFR进行初始化控制; ②在PIC18XXX系列中,不同的型号其配置各不相同。

2.8 PIC单片机特性总结 PIC最大的特点是不搞单纯的功能堆积,而是从实际出发,重视产品的性能与价格比,靠发展多种型号来满足不同层次的应用要求。就实际而言,不同的应用对单片机功能和资源的需求也是不同的。比如,一个摩托车的点火器需要一个I/O较少、RAM及程序存储空间不大、可靠性较高的小型单片机,若采用40脚且功能强大的单片机,投资大不说,使用起来也不方便。PIC系列从低到高有几十个型号,可以满足各种需要。其中,PIC12C508单片机仅有8个引脚,是世界上最小的单片机。

2)精简指令使其执行效率大为提高。PIC系列8位CMOS单片机具有独特的RISC结构,数据总线和指令总线分离的哈佛总线(Harvard)结构,使指令具有单字长的特性,且允许指令码的位数可多于8位的数据位数,这与传统的采用CISC结构的8位单片机相比,可以达到2:1的代码压缩,速度提高4倍。

3) 产品上市零等待(Zero time to market)。采用PIC的低价OTP型芯片,可使单片机在其应用程序开发完成后立刻使该产品上市。

4)PIC有优越开发环境。OTP单片机开发系统的实时性是一个重要的指标,象普通51单片机的开发系统大都采用高档型号仿真低档型号,其实时性不尽理想。PIC在推出一款新型号的同时推出相应的仿真芯片,所有的开发系统由专用的仿真芯片支持,实时性非常好。就我个人的经验看,还没有出现过仿真结果与实际运行结果不同的情况。

5) 其引脚具有防瞬态能力,通过限流电阻可以接至220V交流电源,可直接与继电器控制电路相连,无须光电耦合器隔离,给应用带来极大方便。

6) 彻底的保密性。PIC以保密熔丝来保护代码,用户在烧入代码后熔断熔丝,别人再也无法读出,除非恢复熔丝。目前,PIC采用熔丝深埋工艺,恢复熔丝的可能性极小。

7) 自带看门狗定时器,可以用来提高程序运行的可靠性。

8) 睡眠和低功耗模式。虽然PIC在这方面已不能与新型的TI-MSP430相比,但在大多数应用场合还是能满足需要的。

3 高性能单片机TMS320F2812

随着电子技术的不断进步,特别是3C(计算机、通信、消费电子)的飞速发展,电子设备日趋数字化、小型化和集成化,嵌入式芯片逐渐成为设计开发人员的首选。DSP作为嵌入式芯片的典型代表之一,在信息产业领域得到了广泛应用。

DSP虽然为3C产品的开发提供了很好的硬件支撑平台,但设计者仍得花费一定的时间去掌握DSP内部各种寄存器的正确设置、软件编程方法以及控制算法设计,这必然会增大产品开发难度,延长产品开发周期,从而影响开发效率。Matlab公司最新推出的针对DSP应用控制系统而开发的嵌入式目标模块Embedded Target for TI C2000 DSP即可解决上述问题,用户通过使用该模块,不仅可以进行电路的系统级仿真,还可编译生成相应的C语言代码,并下载到目标板,直接运行程序,进行算法的探索与设计思路的验证,提高开发效率。

3.1 F2812性能及引脚简介 TMS320C2000系列是美国TI公司推出的最佳测控应用的定点DSP芯片。 其中TMS320C28X系列是TI公司最新推出的DSP芯片,是目前国际市场上最先进、功能最强大的32位定点DSP芯片。既具有数字信号处理能力,由具有强大的事件管理能力和嵌入式控制功能,特别适用于有大量数据处理的测控场合,如工业自动化控制、电力电子技术应用、职能化仪器仪表及电机、马达伺服控制系统。

• C28X系列主要芯片包括TMS320F2812和TMS2810。二者差别:F2812内含128K*16位的Flash存储器,有外部存储器接口,而F2810仅有64K*16位的片内Flash存储器,且无外部存储器接口。

C28X系列芯片主要性能

• 主频150MHz(时钟周期6.67ns)

• CPU内核电压1.8V,I/O口电压3.3V

• Flash编程电压3.3V

• 高性能的32位CPU:

16位*16位和32位*32位乘且累加操作

16位*16位的两个乘且累加

哈佛总线结构

• 功能强大的外设

看门狗定时器通过提供系统复位来解除系统软件错误和CPU故障。复位将使系统返回一个已知起点。

看门狗的两种产生系统复位的途径:

• WD计数器溢出或向WD复位的关键字写入错误

当系统正常工作时,WD计数器进行增计数,在计数器溢出前,只要给WDKEY写入一个正确值,就可以清0计数器,使计数器从0开始计数。

反之,当系统不正常时,也就不能写WDKEY正确数值从而使计数器清0,于是,计数器溢出触发系统复位。

• 使用WDCHK检查位:

WD定时器控制寄存器的WDCHK[2..0]检查位一直和一个二进制常量1012相比较,如果检查位与这个数值不匹配,就产生一个系统复位。

一旦软件执行了错误的WDCR写操作或一个外部激励干扰(如电压尖峰或其他干扰)破坏了WDCR内容,即除1012以外的内容写入WDCR,也产生系统的复位。

3.2 TMS320 F2812 的DSP 最小系统设计

我们在教学实践中成功地研制出一个电子测量与信号系统综合实验平台[1 ] 。该平采用通用化、标准化与可互换的设计思想,融入了先进的电子线路仿真设计方法、FPGA、单片机技术、DSP 技术和总线技术。平台分为EDA 实验系统、单片机实验系统及DSP 实验系统等多个子系统,可广泛用于EDA 、单片机、DSP、电子测量与信号系统的课程教学、综合实验教学、毕业设计及电子大赛等。本文讨论了综合实验平台的一个子系统—DSP 实验系统的设计。采用TMS320 F2812 作为主控芯片设计一个DSP 最小应用系统。

1 系统结构

一个典型的DSP 最小系统如图1 所示,包括DSP 芯片、电源电路、复位电路、时钟电路及JTAG接口电路。考虑到与PC 通信的需要,最小系统一般还需增添串口通信电路。TMS320 F2812 是TI 公司C2000 系列中性价比较高的一款器件[2 ] 。该器件集成了丰富而又先进的外设, 如128kB 的Flash 存储器、4kB 的引导ROM、数学运算表、电机控制外设、串口通信外设、2kB 的OTP ROM 以及16 通道高性能12 位模数转换模块,提供了两个采样保持电路可以实现双通道信号同步采样,同时具有很高的运算精度(32 位) 和系统处理能力(达到50MIPS) ,可广泛应用于电力自动化、电机控制和变频家电等领域。

系统硬件设计

(1) 电源及复位电路设计

DSP 系统一般都采用多电源系统,电源及复位电路的设计对于系统性能有重要影响。MS320

F2812 是一个较低功耗芯片,核电压为1. 8V , IO 电压为3. 3V。本文采用TI 公司的S767D318 电源芯片。该芯片属于线性降压型DC/ DC 变换芯片,可以由5V 电源同时产生两种不同的电压( 3. 3V、1. 8V 或2. 5V ) , 其最大输出电流为1000mA ,可以同时满足一片DSP 芯片和少量外围电路的供电需要,如图2 所示。该芯片自带电源监控及复位管理功能,可以方便地实现电源及复位电路设计。

(2) 时钟电路设计

TMS320 F2812 DSP 的时钟可以有两种连接方式,即外部振荡器方式和谐振器方式。如果使用内部振荡器,则必须在X1/ XCL KIN 和X2 两个引脚之间连接一个石英晶体。如果采用外部时钟,可将输入时钟信号直接连到X1/ CL KIN 引脚上,X2 悬空。本文采用的是外部有源时钟方式,直接选择一个3. 3V 供电的30MHz 有源晶振实现。系统工作是通过编程选择5 倍频的PLL 功能,可实现F2812 的最高工作频率(150MHz) 。

(3) DSP 与J TA G接口设计

DSP 仿真器通过DSP 芯片上提供的扫描仿真引脚实现仿真功能,扫描仿真消除了传统电路仿真存在的电缆过长会引起的信号失真及仿真插头的可靠性差等问题。采用扫描仿真,使得在线仿真成为可能,给调试带来极大方便。

(4) DSP 的串行接口设计

由于TMS320F2812 中SCI 接口的TTL 电平和PC 机的RS2232C 电平不兼容,所以连接时必须进行电平转换。本设计选用符合RS2232 标准的MAX232N 驱动芯片进行串行通信。MAX232 芯片功耗低,集成度高, + 5V 供电,具有两个接收和发送通道,刚好与TMS320 F2812 的两个SCI (A 和B) 接口相匹配。

(5) 通用扩展口设计

考虑到系统的通用性问题,本系统设计时将F2812所有的非空引脚全部引出,而且按照其功能模块进行有规律排列,设计了5 个双排接插件将其引出。

本文设计的TMS320 F2812 DSP 最小系统经过充分的实验验证表明具备了数据采集、与PC 通信及实时数据处理等功能,既可以满足教学要求,又可用于简单的工程研究,具有一定的实用价值。此外还可对该最小系统的功能开发验证实验进一步完善:如增加CAN 总线功能及数字信号处理功能等,尽可能结合信号系统、电子测量及电机控制等课程特点,形成较完善的典型教学案例。对于通用I/ O(如键盘、液晶) 及扩展外存的实现进一步深入研究,可将该最小系统功能升级成为通用DSP 系统,从而可更广泛地满足各类复杂工程需求。

3.3 C2000 DSP的特点及开发应用流程

作为一种专用的集成开发环境,Matlab公司最新推出的Embedded Target for TI C2000 DSP 开发平台能够让设计人员直接进行(半)实物仿真、算法的探索与研究,以及产品可靠性的验证,从而有效地减少了设计开发过程中的消耗,加快了原型开发的速度。该平台有如下几个优点:

1) 在TI C2000 DSP 上自动测试、执行Simulink仿真模型;

2) 提供模块化的系统和功能,比如PWM、ADC、CAN以及目标板载内存等;

3) 生成文档化的易读可编辑的C语言代码,并生成Code Composer Studio项目文件;

4) 在F2407 eZdsp评估板和F2812 eZdsp评估板上进行自动化实时测试;

5) 对TI推出的IQmath Library提供模块化的支持,可以用于仿真和代码生成;

6) 可以进行定点系统的设计、仿真、自动定标和代码生成工作。

Embedded Target for TI C2000 DSP提供了将MATLAB和Simulink与TI eXpressDSP工具、TI C2000 DSP控制器集成在一起进行系统开发的手段。通过Real-Time Workshop和TI的开发工具将Simulink模型转变为实时C代码,这样就可以利用这些产品在TI C2000 DSP系统上(如F2812 eZds评估板和F2407 eZdsp评估板等)实现自动代码生成、产品原型和嵌

入式系统实现,并可实时进行算法验证,极大地提高了开发效率。另外,该模块还有强大的可扩充能力,用户可以增加自己的代码、中断服务程序、IO设备驱动到CCS(Code Composer Studio)的工程项目中,这样就可以直接驱动自行开发研制的控制板卡或第三方的硬件设备板卡,完成产品的设计。采用该平台,开发人员不用编写一行代码,就可以完成几乎所有设计、仿真和编程下载的工作,整个开发流程如图1所示。

图1 DSP逆变控制器接口示意图

图2 Matlab下DSP应用模块仿真及下载示意图

Embedded Target for TI

C2000 DSP应用实例

下面以一个基于DSP TMS320F2812芯片的带CAN2.0B网络接口的数字逆变控制器的设计为例,介绍利用Embedded Target for TI C2000 DSP模块,与Matlab的Simulink产品中的其他模块结合,实现对该逆变控制器进行仿真和编程下载的应用。

数字式逆变器采用单相半桥逆变结构,逆变控制器核心芯片选用TMS320F2812,输出两路SPWM,EXB841模块作为SPWM信号的驱动放大器,控制开关采用全控器件IGBT,输入电压311V,输出电压为100V(有效值),开关频率为10kHz,逆变输出电压频率为50Hz。逆变控制器的系统原理及接口框图如图2所示,逆变系统的电流和电压通过电压霍尔传感器和电流采样电路分别检测出来,送入模拟信号处理电路中进行模拟滤波处理和幅值调整,处理后的信号送入DSP芯片之中,经过DSP片内的12位A/D转换模块,变为数字信号,DSP对信号进行数字滤波后,判断单相半桥的输出电压、电流是否过压或过流,并采取相应的保护措施;再根据控制算法进行处理,通过DSP片内的PWM输出模块,得到所需要的两路SPWM波形信号,经过EXB841驱动放大模块进行处理,最后对IGBT逆变半桥进行控制,从而实现直流-交流的逆变。同时还利用DSP片内的CAN2.0B模块,保留一个对外的CAN网络接口,便于使用网络通信对数字逆变控制器进行实时控制和监测。

图2 CCS中自动生成的

C语言项目框架图

在Matlab下输入c2000lib命令,可以显示Embedded Target for TI C2000 DSP目前所能够支持的各种DSP功能模块及相关信息。仿真时,主要利用Embedded Target for TI C2000 DSP所提供的C28X ADC、C28X PWM以及Mailbox子模块。如图3所示,系统利用A/D转换模块,将采集到的逆变电流和电压作为SPWM输出的控制源。并通过CAN通道1将A/D转换值以及PWM输出占空比输送出来,同时还可以通过CAN通道0接收来自于网络上的通信命令,执行相应的子程序。C28X ADC模块在功能上完全等同于TMS320F2812的12位A/D转换模块,可以选择合适的模拟输入通道。C28X PWM模块在功能上完全等同于TMS320F2812事件管理器中带死区的全比较单元模块,同样可以选择定时器、PWM输出单元、PWM引脚极性以及设置死区时间。

编程下载之前,先要对F2812 eZdsp模块进行编译属性、目标板和仿真器的选择设置,以及Real-Time Workshop的属性设置,具体步骤如下:

1. 打开CCS2.20,选择合适的硬件仿真器,此处选择F2812 XDS510 Emulator,打开DSP软件集成开发环境。

2.在Matlab下输入ccsboardinfo命令显示出来,查看Embedded Target for TI C2000 DSP所支持的板卡及驱动,如用户升级仿真器或更换板卡,则需安装相应的驱动程序,才能支持对应的物理设备。

3. 右键点击F2812 eZdsp,对评估板硬件链接模块进行编译、链接和运行等选项的设置。注意,在设置BuildOptions属性时,若没有连接目标板或仿真器,则BuildAction只选择Build,可编译生成C代码;若有目标板及仿真器,则可选择Build_and_execute,实现C代码的编译下载及实时运行。

4. 在DSPBoard选项中选择与目标板一致的DSP芯片类型,并更改DSP板标号,如F2812 PP Emulator等,本文改为F2812 XDS510 Emulator。

5. 设置Real-Time Workshop的相关属性,可以根据个人的习惯进行定制。

经过上述设置步骤之后,可以选择工具菜单内的Real-Time Workshop下的Build Model生成仿真模型对应的C语言代码,Matlab的Command窗口会显示后台处理的详细过程,代码的编译及链接过程在CCS中也会有显示。最后,CCS会自动打开Matlab所生成的软件项目代码,CCS中显示出来的SPWM项目的框架(F2812_SPWM.pjt)如图4所示,一共有F2812_SPWM_ main.c等14个C语言子程序、SPWM.cmd文件和一些头文件。所生成的逆变控制器C代码,保留了模型中相应的变量名,具有良好的可读性和可维护性,其中所生成CAN通信的主要源代码如下:

/* CAN 邮箱发送子程序*/

{

ECanaMboxes.MBOX1.MDL.word. LOW_WORD=F2812_SPWM_B.R eadMsgADValueDutyCycle;

ECanaMboxes.MBOX1.MSGC TRL.bit.DLC = 2;

ECanaRegs.CANTRS.bit.TRS1 = 1; // set eCAN Transmit Request Set register

while(ECanaRegs.CANTA.bit.TA1 != 1 ) {} // check eCAN Transmit Acknowledge register

ECanaRegs.CANTA.bit.TA1 = 1; // clear eCAN Transmit Acknowledge register

}

另外,用Embedded Target for TI C2000 DSP所提供的Build/Reload/Run模块,可以一步到位地将Matlab生成的C语言代码直接转为COFF文件下载到DSP逆变控制器的目标板中,不需作两个开发平台下的程序移植。如有特殊需求,还可以自行增加一些代码。这样就可以避开繁琐的编程步骤,直接进行在线算法验证,最终获取最优的控制程序实现。


相关内容

  • 自动检测技术论文
    单片机控制系统的抗干扰优化设计 摘要在单片机控制系统的设计开发过程中,不单要突出设备的自动化程度及智能性,另一方面也要重视控制系统的工作稳定性.因此,单片机控制系统必须具有较高的灵敏度,但是灵敏度越高越容易把干扰引入系统中,故而抗干扰技术己 ...
  • ARM与单片机的区别
    1.软件方面 这应该是最大的区别了.引入了操作系统.为什么引入操作系统?有什么好处嘛? 1)方便.主要体现在后期的开发,即在操作系统上直接开发应用程序.不像单片机一样一切都要重新写.前期的操作系统移植工作,还是要专业人士来做. 2)安全.这 ...
  • 短距离无线通信技术在智能交通领域中的应用
    短距离无线通信技术在智能交通领域中的应用 作者:周柏宏 摘要:本文主要论述基于无线单片机片上系统的短距离无线通信技术在智能交通领域中的应用, Abstract: This paper focuses on wireless MCU-base ...
  • 毕业设计_多亮度等级调光灯制作(终稿)
    毕业论文 毕业设计论文 设计(论文) 题目: 下 达 日 期: 月 日 开 始 日 期: 年 月 完 成 日 期: 年 月 指 导 教 师: 学 生 专 业: 班 级: 学 生 姓 名: 教 研室主任: 系 本系统基于单片机MSP430F4 ...
  • 智能红外遥控暖风机的设计
    毕 业 设 计 学生姓名: 学 号: 学 院: 信息学院 专 业: 通信工程 题 目: 智能红外遥控暖风机的设计 指导教师: 评阅教师: 2012 年 6 月 毕 业 设 计 中 文 摘 要 目 录 1 引言 . ............. ...
  • 单片机外文文献翻译
    外文文献一单片机简介单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力 的中央处理器 CPU 随机存储器 RAM.只读存储器 ROM.多种 I/O 口和中断系统.定时 器/计时器等功能(可能还包括显示驱动电路.脉宽调制 ...
  • 毕业设计火灾报警器
    毕 业 设 计 学生姓名 系 (部) 专 业 题 目 指导教师 2012 年 6 月 学 号 机电信息工程系 机电一体化技术 火灾报警器毕业设计 摘 要:随着现代家庭用火.用电量正在逐年增加,家庭火灾发生的频率越来越高,火灾烟雾报警器也随之 ...
  • [单片机技术及应用]试卷及答案
    <单片机技术及应用>试卷及答案 班级: 姓名: 得分: 一. 填空题(10分) 1.单片机只能识别是单片机编程常用的数制. 2.十进制数41转换成二进制数:( )2 3.二进制数(1101)2转换成十进制数: 13 4.二进制数 ...
  • 单片机控制红外遥控电子锁系统
    安徽职业技术学院 毕 业 论 文 单片机控制红外遥控电子锁的 系统设计 系 别 班 级 姓 名 学 号 指导教师 2011 - 2012 学年第 1学期 摘要 针对传统机械锁的各种缺点和重要部门安全性的要求,提出一种基于红外遥控的密码锁设计 ...