Download presentation
Presentation is loading. Please wait.
1
嵌入式系统与单片机 北京科技大学电子信息系
2
学习单片机的必要性 单片机的应用领域日益广泛,遍及电信、家用电器、计算机外设、办公自动化、工业控制、商用电子、玩具、仪器仪表、汽车电子、军用电子等。 2000年,一般美国家用系统中应用单片机的数量达到226个;自动化办公室内有42个;典型的汽车电子系统中装有35个。所有这些应用主要是8位单片机。
3
学习单片机的必要性 时至今日,许多汽车中都使用了多达70个单片机,一些高档车型中用量甚至多达近100个,其具体应用产品涉及到汽车门锁、停车传感器、安全气囊、ABS、牵引控制、HID灯、导航控制、遥控启动、电子罗盘、电子消音器、翻车传感器、防盗控制与监视、“驾驶习惯”控制与监视、雨水传感器/刮水控制器、座椅控制器、无源及远程无匙开锁、温度控制等。
4
学习单片机的必要性 据专家的统计和预测,2006年全球的单片机产量达90亿件,产值为200亿美元。
5
学习单片机的必要性 以8位单片机见长的美国微芯科技(MICROCHIP TECHNOLOGY)公司,日前就在香港以“生活中的PIC单片机(PIC Microcontrollers in Your Life)”为主题,举办了一场专门的媒体交流会。在此次会议上,微芯科技的安全、微控制器及技术开发部副总裁Steve Drehobl及刚刚由新加坡转战香港、司职亚太区销售总监的Joe Krawczyk等高管,分享了该公司的PIC系列单片机在个人生活中各个场景的应用,其中不乏一些颇有新意的应用。
6
学习单片机的必要性 国际计算机专家预测,2020年一种生物芯片,有把握实现产业化,而其运行速度达20亿次,最近,美国伊利诺斯大学研究出一种硅半导体膜,实际是应用纳米技术生物芯片,这种薄膜只有12纳米厚。研究人员说,应用这种半导体技术为DNA分子测序,既省时又省钱。
7
学习单片机的必要性 还有超导芯片,量子芯片,纳米芯片,神经芯片,光膜芯片等等,实际上已使人类世界进入人与机器融合的智能化进化年代,一方面将不断增强自己的机器智能的“体力”,另一方面技术演变为人性化,可以使信息技术和人类意识交融,这涵盖着人类社会各个领域,如科学、商业、教育、军事、空间,以至哲学方面,现在已进入人类宏观空间活动,又可以进入极为微小的微观空间活动,可以帮助人们在意识方面更加增强,精密和自动化上拓展,这是很现实的问题了。总之,单片机的科技仍按“摩尔定律” 在运动,在无止境的发展,老式单片机不断淘汰,新型的单片机不断问世。
8
图2-1 遥控彩电电路方块图
9
PIC单片机部分主要内容 PIC单片机微处理器体系结构 PIC单片机存储器组织与寻址方式 PIC单片机指令系统与汇编语言
集成开发环境MPLAB_IDE PIC单片机常用的周边功能模块
10
参考书 1 刘和平主编,单片机原理及应用,重庆大 学出版社 ,2002年(www.toopoo.com)
2 刘和平等编著,PIC16F87X单片机实用 软件与接口技术,北航出版社,2002年 3 刘笃仁著. PIC软硬件系统设计. 北京:电 子工业出版社,2004年 4 李学海编,PIC单片机实用教程(基础 篇、提高篇),北航出版社,2002年
11
第二讲 PIC单片机微处理器体系结构 PIC系列单片机的发展 PIC系列 MCU 体系结构及特点 PIC16F87X单片机的引脚
12
一、PIC系列单片机的发展 16 bit MCU 14 bits 16 bits 24 bits 12 bits dsPIC PIC18
Data Memory Width Program Memory Width 8 bit MCU PIC16 PIC12F PIC16C5X PIC12C5XX
13
一、PIC系列单片机的发展 PIC最大的特点是不搞单纯的功能堆积,而是从实际出发,重视产品的性能与价格比,靠发展多种型号来满足不同层次的应用要求。 初档8位单片机:PIC12C5XXX/16C5X系列 PIC16C5X系列是最早在市场上得到发展的系列,因其价格较低,且有较完善的开发手段,因此在国内应用最为广泛;而PIC12C5XX是世界第一个八脚低价位单片机可用于简单的智能控制等一些对单片机体积要求较高的地方,前景十分广阔。
15
一、PIC系列单片机的发展 中档8位单片机:PIC12F/PIC16系列
PIC中档产品是Microchip近年来重点发展的系列产品,品种最为丰富,其性能比低档产品有所提高,增加了中断功能,指令周期可达到200ns,带A/D,内部E2PROM数据存储器,双时钟工作,比较输出,捕捉输入,PWM输出,I2C和SPI接口,异步串行通讯(USART),模拟电压比较器及LCD驱动等等,其封装从8脚到68脚,可用于高、中、低档的电子产品设计中,价格适中,广泛应用在各类电子产品中。 PIC16F676: $1.00 PIC16F877A: $3.71 PIC12F508: $0.47
16
一、PIC系列单片机的发展 高档8位单片机:PIC18系列
PIC18XX是适合高级复杂系统开发的系列产品,其性能在中档位单片机的基础上增加了硬件乘法器,指令周期可达成160ns,它是目前世界上8位单片机中性价比最高的机种,可用于高、中档产品的开发,如马达控制、音调合成。 PIC18F8680: $6.98 PIC18F2580: $3.98
17
高档16位单片机:dsPIC系列 dsPIC的核心是16位(数据)非流水线增强 Harvard RISC器件,它具有高性能16位单芯片的控制优势和已实现数字信号处理器(DSP)的高运算速度,可为嵌入式系统设计制造紧密耦合的单芯片独立指令流解决方案。 该结构提供完整的DSP引擎、基于C编译器优化设计、熟知的类似单片机开发平台和为PIC18单片机用户设计的现有代码简易转移功能。 该结构具有30MIPS非流水线性能,可支持高达4兆字节x24 Flash代码导地空间和高达32Kx16的数据空间。对比普通DSP的最大供电电压为3.3伏,其 操作电压适用于多种5伏单片机应用。器件封装预计为28到100管脚。 dsPIC器件订购10000件的每件价格为3美元到9美元不等。
18
dsPIC器件适用于以下应用领域: 电机控制--如非传感无刷直流电机、磁阻转换和感应电机;
因特网接入设备和汽车产品--如安全气囊、车载(body)计算机、线传控制、降低噪音和有源振动控制等; 电话功能--包括来电显示、回声/噪音消除、双音多频、数字应答机(话音压缩)、低速软调制解调器和线卡(回波消除); POS终端和自动售货机(加密、拨号软调制解调器和识别任务); 生物特徵检测保护--如指纹识别;不间断电源、电源管理和话音开关(话音识别系统)。
19
dsPIC30F2023: $4.25 dsPIC33FJ128GP206: $3.70 dsPIC33FJ256MC510: $4.98
20
二、PIC系列 MCU 体系结构及特点
21
二、PIC系列 MCU 体系结构及特点
22
二、PIC系列 MCU 体系结构及特点
23
二、PIC系列 MCU 体系结构及特点 哈佛结构 寄存器文件结构 绝大多数为单字/ 单周期指令 两级指令流水线 长字指令
精简指令集(RISC)
24
二、PIC系列 MCU 体系结构及特点 1 采用高性能的哈佛(Harvard)结构
哈佛结构的芯片中,程序存储器与数据存储器设置在不同的存储区,分别通过不同宽度的总线与CPU相连,因此,CPU在访问程序存储器的同时,可通过独立的总线对数据存储器进行读写操作。与冯·诺依曼结构相比,哈佛结构有更宽的数据带宽,大大提高了CPU的工作速度。
25
哈佛(Harvard)结构 程序存储器和数据存储器合二为一 数据总线十分繁忙,数据带宽受限 程序存储器和数据存储器相互独立 更大的数据吞吐量
程序总线和数据总线宽度可不同 程序和 数据存储器 冯.诺依曼结构 8-Bits CPU CPU 数据 存储器 8-Bits 12/14/16-Bits 哈佛结构 程序
26
2 两级指令流水线 PIC16F87X系列单片机独立的总线使得在执行一条指令的同时,可以取下一条指令,即采用两级指令流水线结构,加快了指令执行速度,如果指令的执行结果要修改程序指针PC,那么完成指令可能需要2 个周期(有一个周期的延迟),因为此时流水线会作废一条指令并重新取指,因此,除程序分支指令需要两个指令周期外,其他均为单周期指令。
27
程序分支 (例如: GOTO, CALL or Write to PC) 占用两个指令周期
两级指令流水线 两级流水线 允许取指操作和指令执行同时进行 绝大多数指令是单周期指令 程序分支 (例如: GOTO, CALL or Write to PC) 占用两个指令周期 Tcy0 Tcy1 Tcy2 Tcy3 Tcy4 1. MOVLW 55h 2. MOVWF PORTB 3. CALL SUB_1 4. BSF PORTA,3 Fetch 1 Execute 1 Fetch 2 Execute 2 Fetch 3 Execute 3 Fetch 4 Flush Fetch 4 Fetch SUB_1
28
3 文件寄存器结构 文件寄存器/数据寄存器可以通过直接或间接寻址方式来访问。所有特殊功能寄存器,包括程序指针PC,都映射到数据存储器空间。
29
Direct data addr <7>
文件寄存器结构 General Purpose Registers (RAM) Other SFRs PORTA FSR STATUS PCL TMR0 INDF W Register ALU Data Memory 通用寄存器GPR(general Purpose registers )、特 殊功能寄存SFR(special function registers) 、 外围I/O存储器 所有指令都可以访问任意 一个寄存器. 寄存器文件(Register File) Direct data addr <7> 14-bit Instruction Format Example: Opcode <7> 长字指令允许在一条指令中进行寄存器直接寻址
30
4 长字指令 长字指令的指令总线宽度比8位数据存储器的数据总线宽(位数更多)。PIC16F87X使用相互独立的总线,数据总线为8位,指令总线为14位,在对程序存储器做优化后,程序存储器的使用效率会更高。
31
PICmicro Architecture 指令格式
PIC MCU 指令由操作码和操作数组成 一条指令占用一个字 Instruction for Literal Instructions OP CODE k k k k k k k k
32
5 绝大多数为单字/单周期指令 因为数据总线和指令总线是分离的,并且采用了不同的宽度,所以程序存储器ROM和数据存储器RAM的寻址空间(即地址编码空间)是互相独立的,而且两种存储器宽度也不同。这样设计不仅可以确保数据的安全性,还能提高运行速度和实现全部指令的单字节化。 PIC16F87X系列的指令字节为14位。 MCS-51系列单片机的ROM和RAM宽度都是8位,指令长度从1个字节(8位)到3个字节长短不一。
33
PIC MCU 振荡器 外部输入振荡器频率 定义为fosc1= 4 MHz 内部指令时钟频率 fosc1
fosc2为fosc1的4分频,即1 MHz 指令周期定义为 Tcy= 1 us PIC MCU fosc1 4 MHz (250 ns) Tcy 1 MHz (1 us)
34
由OSC1引脚输入的时钟信号,在器件内部经过4分频后,产生非重叠的4个正交时钟节拍,分别命名为Q1、Q2、Q3和Q4。
35
6 精简指令集(RISC)技术 PIC系列单片机的指令系统只有35条指令。
这对指令的学习、记忆、理解有很大好处,也给程序的编写和调试带来便利,真可谓“易学好用”。 相比之下,MCS-51单片机指令系统共有111条指令;MC68HC05单片机指令系统共有89条指令。
36
PIC系列单片机的优点 代码压缩率高 驱动能力强 品种丰富 寻址方式简单 功耗低 外接电路简洁
37
PIC系列单片机的优点 寻址方式简单 PIC系列单片机只有4种寻址方式。 针对程序存储器有两种寻址方式:即绝对寻址和相对寻址;
针对数据存储器也有两种寻址方式,即直接寻址和间接寻址。 而MCS-51单片机有7种寻址方式,68HC05单片机有6种寻址方式。
38
PIC系列单片机的优点 代码压缩率高 1KB MCS-51: 只能存放600条指令 PIC系列: 能存放1024条指令
39
PIC系列单片机的优点 功耗低 PIC系列单片机的功耗极低,是目前世界上最低的单片机品种之一。其中有些型号在4MHz时钟下工作时耗电不超过2mW,在睡眠模式下可以降低到1μ W以下。
40
PIC系列单片机的优点 驱动能力强 驱动能力:I/O端口驱动负载的能力。
PIC系列单片机每个I/O引脚吸入和输出电流的最大值可分别达到25mA和20mA,能够直接驱动发光二极管LED、光电耦合器及微型机电器。
41
PIC系列单片机的优点 外接电路简洁 PIC系列单片机内集成了上电复位电路、I/O引脚上拉电路、看门狗定时器及多种接口控制器,可以最大限度地减少或免用外接器件,以便实现“纯单片”应用。这样不仅方便于开发,而且还可以节省产品的制造成本。
42
PIC系列单片机的优点 品种丰富 PIC系列单片机目前已形成3个层次、50多个型号。片内功能从简单到复杂,封装形式从8脚到68脚,可以满足各种不同的应用需求。 此外,Microchip公司最先开发出世界上第一片最小的8脚封装的单片机PIC12C5XX 。
43
三、PIC16F87X单片机的内部结构 核心区域 外围模块区域 PIC16F874/877内部结构简化图
44
三、PIC16F87X单片机的内部结构 (一)PIC16F87X的核心区域 1 程序存储器 2 程序计数器
用来存放由用户编写的程序和一些固定不变的数据。 2 程序计数器 提供13位程序存储器地址,初始状态为0,每执行一条指令,地址自动加1。
45
(一)PIC16F87X的核心区域 三、PIC16F87X单片机的内部结构 3 堆栈 4 指令寄存器 用来保存程序断点地址。
应用场合:调子程序 中断 4 指令寄存器 用来暂存从程序存储器中取出的指令,并将指令按不同的字段分解为操作码和操作数。
46
三、PIC16F87X单片机的内部结构 5 RAM数据存储器 用来存放CPU在执行程序过程中所产生的中间数据。
47
三、PIC16F87X单片机的内部结构 6 地址复用器 7 间接寻址寄存器FSR
用来选择和传递RAM数据存储器地址。该地址既可以来源于间接寻址寄存器FSR(间接地址),也可以来源于指令码(直接地址)。 7 间接寻址寄存器FSR 用来存储间接地址。在使用之前,应先将欲访问数据所在的RAM单元地址存入该寄存器。
48
三、PIC16F87X单片机的内部结构 (一)PIC16F87X的核心区域 8 指令译码和控制器 9 算术逻辑单元ALU
将指令的操作码部分翻译成一系列的细微操作,并控制各功能电路协调动作。 9 算术逻辑单元ALU 用来实现算术和逻辑运算操作。
49
(一)PIC16F87X的核心区域 三、PIC16F87X单片机的内部结构 10 工作寄存器W
这是一个很重要的工作寄存器,常用作中转寄存器。在运算之前,W用来存放源操作数;在运算之后, W用来存放目的操作数。 W寄存器不可寻址,相当于其他单片机中的“累加器A”。
50
(一)PIC16F87X的核心区域 三、PIC16F87X单片机的内部结构 11 状态寄存器STATUS
及时反映运算结果的一些算术状态,如:进位、借位、全零等。相当于标志寄存器。
51
三、PIC16F87X单片机的内部结构 11 状态寄存器STATUS
及时反映运算结果的一些算术状态,如:进位、借位、全零等。相当于标志寄存器。 因为数据存储区的选择是由状态寄存器控制的,所以各存储区里都有状态寄存器的映射。而且这些映射在每个存储区的相对位置(偏移位置)都相同。 状态寄存器和其它寄存器一样,可以作为任何指令的目标寄存器。
52
三、PIC16F87X单片机的内部结构 11 状态寄存器STATUS bit7 IRP:寄存器组选择位(用于间接寻址)
1:选择Bank2,Bank3(100H~1FFH) 0:选择Bank0,Bank1(00H~FFH) 对于只有Bank0和Bank1的器件,保留IRP位,且应始终保 持为0。 bit6:5 RP1:RP0:寄存器组选择位(用于直接寻址) 11:Bank3(180H~1FFH) ;01:Bank1(80H~FFH) 10:Bank2(100H~17FH) ;00:Bank0(00H~7FH) 每组128个字节。对于只有Bank0和Bank1的器件,保留 IRP位,且应始终保持为0。
53
三、PIC16F87X单片机的内部结构 TO bit4 :超时位 1:上电、执行CLRWDT或SLEEP指令后 0:发生看门狗定时器超时
PD bit :低功耗标志位 1:上电或执行CLRWDT指令后 0:执行SLEEP指令后 bit2 Z :零标志位 1:算术或逻辑运算结果为0 0:算术或逻辑运算结果不为0
54
三、PIC16F87X单片机的内部结构 bit1 DC :辅助进位/借位标志位 1:结果的低4位向高4位有进位/(低4位向高4位无借位)
0:结果的低4位向高4位无进位/(低4位向高4位有借位) bit0 C :进位/借位标志位 1:结果的最高位有进位/(最高位无借位) 0:结果的最高位无进位/(最高位有借位)
55
三、PIC16F87X单片机的内部结构 (一)PIC16F87X的核心区域 12 数据复用器
经复用器选择和传递参加运算的另一个源操作数。该操作数既可以来源于RAM数据存储器,也可以来源于指令码中。
56
三、PIC16F87X单片机的内部结构 (一)PIC16F87X的核心区域 13 时基发生器 14 上电复位电路
用来产生芯片内部各功能电路工作所需要的时钟脉冲信号。 14 上电复位电路 当芯片加电后VDD上升到一定值(一般在1.6~1.8V),该电路产生一个复位脉冲使单片机复位。
57
三、PIC16F87X单片机的内部结构 (一)PIC16F87X的核心区域 15 上电延时电路 16 起振延时电路
为了使VDD有足够时间上升到一个合适的电压值,该电路提供一个固定的72ms的上电定时延时。 16 起振延时电路 在上电延时之后,该电路再提供1024个时钟周期的延时,目的是让振荡电路有足够的时间产生稳定的时钟信号。
58
三、PIC16F87X单片机的内部结构 (一)PIC16F87X的核心区域 17 看门狗定时器WDT
是一个自带RC式振荡器时钟源的定时器,用来监视程序的运行状态。一旦发生意外,导致CPU跑出正常程序之外而出现“死机”,WDT将强行把CPU复位,使其返回到正常的程序中来。
59
(一)PIC16F87X的核心区域 三、PIC16F87X单片机的内部结构 18 欠压复位电路
当电源电压VDD下降到4V以下时,该电路产生一个复位信号,使CPU进入并保持复位状态,直到VDD恢复到正常范围,之后,再延时72ms,CPU才从复位状态返回到运行状态。
60
(一)PIC16F87X的核心区域 三、PIC16F87X单片机的内部结构 19 在线调试电路 20 低电压编程电路
用于实现对焊接在电路板上的PIC16F87X直接进行程序调试,需要综合开发环境MPLAB和仿真板的支持。 20 低电压编程电路 在对PIC16F87X进行在线串行编程时,该电路允许使用芯片工作电压VDD作为烧写电压,而不需要外加高电压。
61
(一)PIC16F87X的核心区域 三、PIC16F87X单片机的内部结构 21 数据总线 22 程序总线
8位宽,是数据传输的专用通道。作用是将各个外围模块和核心部分的PC、FSR、STATUS、W、ALU、RAM等功能部件联系起来。 22 程序总线 14位宽,是传输指令的高速通道。作用是从程序存储器到指令寄存器快速及时地输送每一条指令。
62
(二)PIC16F87X的外围模块区域 三、PIC16F87X单片机的内部结构 1 端口RA模块 2 端口RB模块 3 端口RC模块
6位宽的可编程双向输入/输出端口。 2 端口RB模块 8位宽的可编程双向输入/输出端口。 3 端口RC模块 8位宽的可编程双向输入/输出端口。 4 端口RD模块 8位宽的可编程双向输入/输出端口,只有40脚封装的PIC16F87X单片机才有。
63
(二)PIC16F87X的外围模块区域 三、PIC16F87X单片机的内部结构 5 端口RE模块 6 定时器0模块 7 定时器1模块
8位宽的可编程定时器,也可作为计数器使用。 7 定时器1模块 16位宽的可编程定时器/计数器,也可以与捕捉/比较/脉宽调制CCP模块配合实现捕捉和比较功能。 8 定时器2模块 8位宽的可编程定时器,也可以与捕捉/比较/脉宽调制CCP模块配合实现脉宽调制输出功能。
64
(二)PIC16F87X的外围模块区域 三、PIC16F87X单片机的内部结构 9 EEPROM数据存储器模块 10 A/D转换器
电可擦除的存储器,存储的内容掉电不会丢失。 对于PIC16F874,其容量是128×8位; 对于PIC16F877,其容量是256×8位。 10 A/D转换器 PIC16F87X内部ADC的分辨率是10位,28脚封装的有5个‘模拟通道;40脚封装的有8个模拟通道。
65
(二)PIC16F87X的外围模块区域 三、PIC16F87X单片机的内部结构 11 捕捉/比较/脉宽调制CCP1和CCP2模块
这是两个几乎完全相同的CCP模块,与TMR1和TMR2配合可以实现输入捕捉、输出比较和脉宽调制输出功能。 输入捕捉功能可以用于测量信号周期、频率、脉宽等; 输出比较功能可以用于产生宽度不同的正、负方波脉冲信号,以驱动可控硅、继电器等; 脉宽调制输出功能用来产生周期和脉宽可调的周期性方波信号,以驱动可控硅、步进电机等。
66
(二)PIC16F87X的外围模块区域 三、PIC16F87X单片机的内部结构 12 主同步串行端口MSSP模块
具有SPI和I2C2种工作模式,用来与具有SPI或I2C串行端口的外接器件或者其他单片机进行通信。 13 通用同步/异步收发器USART模块 用于实现二线式串行通信,可以定义为2种工作方式: 全双工异步方式:用于和微机或其他单片机系统进 行通信; 半双工同步方式:用于和ADC、DAC、串行 EEPROM等器件进行通信。
67
(二)PIC16F87X的外围模块区域 三、PIC16F87X单片机的内部结构 14 并行从动端口PSP模块
用来与其他具有开放总线的单片机、DSP或微处理器的并行数据总线连接,进行高速的数据传输和交换。并行数据总线的控制权由与PIC单片机通信的另一方掌握,故称之为并行从动端口。 PSP模块需要11条外接引脚,一般与RD和RE引脚合用,而28脚封装的PIC16F87X单片机没有RD和RE端口。因此,只有具备RD和RE端口的40脚封装的PIC16F87X单片机,才配置有PSP模块。
68
三、PIC16F87X单片机的内部结构 以上是以PIC16F877单片机为例。其他各款PIC16F87X单片机都是在此基础上,裁剪掉部分外设模块的种类或数量,或者减少FLASH程序存储器、RAM数据存储器或EEPROM数据存储器的容量得来的。 例如: PIC16F874比PIC16F877减少了4K×14的程序存储器、176×8的RAM数据存储器、128×8的EEPROM数据存储器。 PIC16F876比PIC16F877减少了一个8位双向I/O口RD口、一个3位双向I/O口RE口、一个8位从动并行端口。 PIC16F873比PIC16F877减少了4K×14的程序存储器、176×8的RAM数据存储器、128×8的EEPROM数据存储器、一个8位双向I/O口RD口、一个3位双向I/O口RE口、一个8位从动并行端口。
69
四、PIC16F87X单片机的引脚 40脚封装的PIC16F874/877
70
四、PIC16F87X单片机的引脚 28脚封装的PIC16F873/876
71
作业题 1.简述PIC系列单片机微处理器体系结构的 特点。 2.PIC系列单片机采用哈佛总线结构,其根本意义是什么?
3.简述PIC16F877单片机的内部结构。 4.在PIC单片机中,作为数据流通和传输的桥梁,使用最频繁的寄存器是哪一个? 5.(选做)请将PIC16F87X芯片与你所了解的其他任意一款单片机芯片在结构、特点、应用及价格等方面做比较。
72
Thank You !
Similar presentations