第2节 8FX 单片机的内部结构和原理
推荐给好友
打印
加入收藏
更新于2008-08-24 09:09:51

单片机的内部结构如图2-1 所示。

                                                             图2-1 MB95100 内部结构图

可以看出8FX 系列单片机采用了RISC 结构。地址和数据使用两个流水线操作,MCU 可以在一个时钟周期内同时获取指令和访问数据。
8FX 系列单片机包括了CPU 核,定时与控制逻辑部件,片内数据存储器(RAM),片内程序存储器(ROM),各种功能的寄存器,并行I/O 端口,定时器/计时器,各种总线接口,中断系统及复位系统等。所用部件可以总分为内核,硬件外设和特殊功能3 部分。其中,内核是芯片的基本部分,如CPU,CPU 寄存器等;硬件外设为硬件资源配置部分,如定时/计时器等。特殊功能可以使系统提高可靠性,降低功耗,如低电压扫描等。

2.2.1 单片机整体结构

8FX 系列单片机提供了多种规格不同引脚数量的系列芯片,并使用了FPT 形式的封装。在各种系列芯片中所有的引脚功能分配,复用对应都是相同的,只是针对具体型号芯片有所删减。这里以64Pin 的FPT 方形扁平式封装单片机为例,他的对外引脚有64 条,引脚分布如图2-2 所示。

                                                         图2-2 MB95100 系列引脚分布图
电源引脚
电源引脚包括了总电源引脚,A/D 转换电源引脚,A/D 转换参考电平引脚。
总电源引脚(Vcc):按说明接入3.3 或5V 电源。
A/D 转换电源引脚(AVcc):按说明接入3.3 或5V 电源。
A/D 转换参考电平(AVR):根据需要,设定A/D 的最大转换电平。

时钟引脚
通用寄存器的时钟引脚的外部连接方式有两种:一种是外接4MHz 晶体振荡器,产生内部时钟信号,称之为内部时钟方式;另一种是直接连接外部时钟信号,为单片机提供时钟信号,称之为外部时钟方式。两种时钟方式可以根据实际情况应用自由选择。由于8FX 系列内部有主时钟和子时钟两种模式,使用晶体振荡器的时钟连接电路如图2-3 所示

                                       (a)双时钟模式                (b)单时钟模式
                                                      图2-3 内部时钟连接电路图

使用外部时钟的连接电路如图2-4 所示

                               (a)双时钟模式           (b)单时钟模式
                                                       图2-4 外部时钟连接电路图
输入/输出引脚
P0,P1,P2 到P8 口的所有引脚构成了单片机的输入/输出(I/O)端口,其中P0 到P7 引脚为硬件资源专用端口,同时也可以作为通用(I/O)端口;P8 只为通用(I/O)端口。所有端口均由端口数据寄存器(PDR)和端口方向寄存器(DDR )控制,根据端口的使用不同还由上拉使能寄存器(PUL),输入级别选择寄存器(ILSR)以及高位/低位输入失效寄存器(AIDRH/AIDRL)进行特殊控制。
P0 端口:8 个引脚,为外部中断输入端口。
P1 端口:共5 个引脚,主要为UART 总线的数据输入输出以及时钟端口,此外也包括了16 位PPG 定时器0 的运行触发位和输出端口。
P3/P4 端口:共12 个引脚,为A/D 转换的模拟电平输入端口。
P5 端口:共4 个引脚,主要是I2C 的数据和时钟线以及16 位PPG 定时器1 的运行触发位和输出端口。
P6 端口:共8 个引脚,包括了LIN-UART 通信的输入,输出,时钟口;8/16 位PPG 的10 通道和11 通道输出口以及复合定时器/计时器的10 与11 计时器输出口。
P2/P7 端口为各种定时器/计时器的输入输出端口。
需要注意的是有些硬件资源的专用寄存器,在设置了输出使能后,会将该端口的方向寄存器(DDR )强制设置为输出;有些专用寄存器的输出使能位在设置后却不会对其方向寄存器(DDR )进行强制控制。故这里建议读者在专用寄存器设置了输出使能后,应同时对端口的方向寄存器也进行输出设置以免在用示波器进行观测中出现错误。

控制引脚
8FX 的控制引脚十分简洁,只有RST 和MOD。
RST:复位引脚,当对该引脚进行低电平输入时会触发复位。
MOD:单片机工作模式控制引脚。可以控制单片机是在进行程序烧写模式还是正常运行模式。
综上所述,可以归纳8FX 系列单片机的引脚特点如下:
1)单片机功能多,引脚多,但引脚复用现象并不少。使用时需要视情况设定各引脚的具体功能。
2)单片机引脚的(I/O)端口类型主要为3 种:普通类型,上拉电阻类型,开漏类型。端口电路类型多可广泛用于各种功能的硬件资源。


2.2.2 CPU 核

FFMC-8FX CPU 作为高性能8 位CPU 主要是用在机械,OA,机车系统。该CPU 主要工作在低电压低功耗环境下,同时由于支持16 位数据的运行与传输,也可以用在要求16 位控制数据的器件上面。



CPU 核优化的控制器指令系统
(1)乘法和除法指令
(2)16bit 操作
(3)位检测跳转指令
(4)位操作指令等

CPU 特点:
最短指令执行时间:400ns(在10MHz 的晶振下)
内存:64Kbyte 可操作的数据类型:bit,byte,word 。
寻址模式:9 种
16 位数据运行:累加器和临时累加器运行。
8FX 系列CPU 寄存器分为内部专用寄存器和内部RAM 通用寄存器。专用寄存器专为CPU 内部的硬件所用,而且它们的使用受CPU 的结构限制。通用寄存器和RAM 共用CPU 寻址空间。同专用寄存器一样,通用寄存器不用寻址访问。同时和普通内存一样,用户也可以指定使用寄存器。
专用寄存器包括程序运算(PC)寄存器,两个算术寄存器(A 和T),三个地址指针(IX, EP 和SP)以及程序状态(PS)寄存器。每个寄存器为16 位长。由于专用寄存器中的大多数寄存器和一般MCU 中的类似,就不再叙述。
这里主要谈一下PC 寄存器,8FX 的PC 寄存器包括了寄存器区指针(RP),直接寄存器指针(DP)以及条件码寄存器(CCR)。寄存器区指针(RP)如图2-6 所示。

                                                    图2-6 RP 寄存器区指针分布图
此指针指向RAM 区域里作为通用寄存器的内存模块的首地址。通用寄存器区有32 个区。RP 用0~31 来指向各区。寄存器区指针(RP)使用来指向当前使用的通用寄存器区首地址的寄存器。使用通用寄存器寻址时,RP 用来换算实际地址。
直接寄存器指针(DP)主要是用来划分连接的区域。具体的划分方法如表2-1 
                                                              表2-1 直接连接指针和连接区域


PC 寄存器的最低位是条件码寄存器(CCR)。该寄存器包括了半接受标志位,中断使能标志位,中断级别标志位,取否标志位,取0 标志位,溢出标志位,全接受标志位。
通用寄存器作为8 位寄存器是位于RAM 中的内存块。它总共分成了32 个区。每个寄存器可以用作通用8 位寄存器(R0~R7)。通过寄存器指针(RP)可以直接指向这些寄存器使用的区,并进行操作。其中寄存器指针(RP)的低3 位用来区分这8 位寄存器(R0~R7)。寄存器的大致地址排布入图2-7:

                                                            图2-7 寄存器区分布图
通用寄存器的优点在于可以通过一条段指令高速访问RAM。此外,由于通用寄存器被分为寄存器区,故寄存器内容保护和功能单元的划分变得很容易实现。

2.2.3 基本功能模块

1.复位
复位主要包括了外部复位,软件复位,看门狗复位和电源开启复位/低电压扫描复位。外部复位:当外部复位针脚RST 接收到低电平时,便会触发外部复位。当发生外部复
位时,所有的I/O 端口或者功能端口也将被同步复位。此外,由于外部复位对触发脉冲宽度值有标准,故在设计外围电路时一定要使脉冲宽度达到要求。
软件复位:对稳定控制寄存器中的复位标志位(STBC:SRST )写入高电平即可处罚软件复位。
看门狗复位:当看门狗计时器开始计数,如果在一定时间之内看门狗计数器的值没有被清除便会导致看门狗复位。
电源开启复位/低电压扫描复位:在电源刚开始通电时会产生复位,同时一些5V 的器件本身具有低电压扫描功能。当提供的电压低于一特定标准时也会产生复位。
复位输出:5V 单片机的复位管脚在一般的复位状态下将会输出低电平信号。但如果复位信号由外部复位触发,则不会进行输出。同时不具备复位输出功能的3/5V 芯片的复位针脚在复位状态下也不会有输出功能。

2.时钟
主时钟:4096/Fch,当Fch 为10MHz 时,PLL 振荡稳定时间为409.6us 子时钟:512/Fcl,当Fcl 为32.768kHz 时,PLL 振荡稳定时间为15ms 时钟控制器可以控制时钟晶振是否使能,对内部电路提供的时钟是否使能还可以选择
时钟模式以及控制PLL 和分频电路。
2 种时钟源,即主时钟振荡器和PLL 振荡器。
其中主时钟和PLL 时钟又可以被分别分为单时钟模式和双时钟模式,双时钟模式中包
括了子时钟和副PLL 时钟。

                                                                      图2-8 时钟控制图
3.静态模式(standby mode)
四种可用模式:

(1)睡眠模式:使CPU 和看门狗定时器的工作时钟停止其它外围功能继续工作
(2)停止模式:停止主时钟振荡,除了外部中断和低电压检测外所有功能停止
(3)时基定时器模式:主时钟只提供给时基定时器,除了时基定时器,外部中断和低电压检测外所有功能停止
(4)监测模式(watch mode):CPU 和所有外围设备的工作时钟停止,除了watch prescaler, watch counter, 外部中断和低电压检测外所有功能停止

当系统转变为时钟停止状态时(睡眠模式,停止模式,监测模式),运行开始前需要一段延时,以稳定时钟振荡。从主时钟转换到PLL 时钟时,PLL 震荡也需要震荡稳定等待时间。
陶瓷和石英振荡器开始振荡时,通常会经过几到20ms 稳定到自然频率。因为这个原因,不允许振荡已开始就允许CPU 运行,只有当振荡完全稳定后才允许CPU 运行。振荡稳定等待时间过后,时钟提供给CPU。因为振荡稳定时间取决于振荡器的种类(石英,陶瓷等), 对于振荡器要选择适当的振荡稳定等待时间。振荡稳定等待时间是通过晶振稳态等待时间设置寄存器(WATR )的设置来选择的。从主时钟转换到PLL 时钟,在PLL 振荡稳定等待时钟内,CPU 依然是以主时钟运行的。这段时间后,运行时钟转换为PLL 时钟。

4.内存
60KB 的程序空间(ROM);3.75KB 的数据空间(RAM)。
8FX 系列芯片的内存通常为64K Byte,主要划分为I/O 区,外部I/O 区,数据和程序区。
内存也包括了一些专用区如通用寄存器,中断向量表。不同的芯片可能有所区别,少数芯片的程序空间和数据空间会有所削减。图2-9 为8FX 系列的几种常用芯片的存储映射表:

                                                   图2-9 8FX 系列内存分布图

5.中断
外部中断作为专用的中断通道,可以通过专用寄存器对中断通道输入的高电平进行多
种检测来触发中断。外部中断控制寄存器:中断请求输出使能,触发中断边沿扫描,中断请求标志。外部中断控制原理:

                                                        图2-10 外部中断原理图
中断特点
中断级别设置寄存器(ILR0~ILR5)包含了最多可达到24 个由中断源发出的中断请求。每一位可以设定对应的中断级别。
最多可达14 个外部中断通道(64Pin 封装或者100Pin 封装)。
边沿检测外部中断可以选择上升沿,下降沿或两者作为中断
可用于备用模式的唤醒。
两个外部中断共享一个中断矢量。

6.I/O 端口
最多可超过80 个通用I/O(100Pin 封装)
可设置为上拉和悬浮输入口,或者数出口;
所有端口具备直接驱动LED 的能力;
P00~P07 的I/O 端口具备20mA 的驱动能力。

2.2.4 外围功能模块

1.定时器/计时器
8/16 位复合定时器/计时器
复合定时器/计时器主要是用来当其他专用计时器不够用时,保留的一个备用定时器/计时器。因为是备用定时器/计时器,所以复合定时器/计时器的最大特点在于其广泛的适用性。复合定时器/计时器有多达16 种工作模式,最主要的几种工作模式为:PWM 输出模式;PWC 捕捉模式;输入捕捉模式。
PWM 通过改变时钟和占空比可产生多种脉冲输出,适用于显示亮度的设定,如果连接到外部低通滤波器,也可以用作D/A 转换器,有可变周期模式和固定周期模式两种模式。
可变周期模式:通过设定8bit 计数器寄存器确定周期和“L”脉冲宽度,来产生任意周期和占空比的8bit PWM 信号。
固定周期模式:改变“H”脉冲宽度产生PWM 信号。
8bit 工作模式时周期设定为FFH,16bit 工作模式时周期设定为FFFFH。
PWC 测量脉冲宽度,适用于传感器的输入和远程控制器的接受。可用于测量“H”或“L”脉冲的宽度,也可以测量一个周期的宽度。
输入捕捉:测量实时周期,适用于有实时控制需要的发动机驱动的调整。
PPG 可编程脉冲发生器。
PPG 可编程脉冲发生器是专用生成可变脉冲波的定时器。其最大特定就是利用自身设定可以生成几乎各种频率的脉冲波。
工作模式:双8 位PPG,16 位PPG,8 位预分频PPG。
16bit PPG 计时器根据需要可以输出PWM 波形或者是单步方波,且输出的方波可以通过软件对占空比和周期进行设置。同时根据输出波形的边沿扫描产生中断。

特点:
外部触发(上升沿开始/下降沿停止/无效)
工作过程中可选择有效/无效重触发
占空比的设置可以从0 到100%

16bit 重载计时器
(1)工作模式
内部时钟模式
外部时钟模式
(2)特点
每种时钟模式均可选择重载或单触发模式
可选择软件或硬件触发

2.LIN-UART
LIN(Local Interconnect Network)一种可与外部设备进行同步/异步串行通信的通用接口,除了支持正常模式下双向通信功能和多处理器模式下的主从通信功能外,还支持LIN总线的特殊功能。
一个主节点,多个从节点,速度最高可达20kbps。

3.UART-SIO
全双工通信;
异步时钟或同步串行数据传输;
数据长度为5~8bit,可选校验位;
NRZ 非归零码,LSB或MSB;
错误检测(溢出,帧错误或校验位错误);
通过专用波特率发生器可设定准确的波特率;
传输或发送数据时可以获取数据寄存器的地址。
高速数据通信:
同步时钟:最大传输速率=机器时钟/8
异步时钟:最大传输速率=机器时钟/8

4.I2C
I2C:Inter-Integrated Circuit 由PHILIPS 公司开发。总线支持主从模式下数据的发送和接受,仲裁检测,从地址扫描以及全呼地址;同时还支持初始和停止状态生成和检测,总线错误扫描,以及睡眠模式下MCU 唤醒。
I2C 特点: 两线式串行总线,连接微控制器及外围设备; 每个器件根据分配的不同的地址既可以作为发送器又可以作为接收器; 支持多主控,有冲突检测以及通信控制协议防止数据丢失; 通信控制协议保证即使在有多个主控试图同时控制总线时,在任一时间点上也只能有一
个主控来控制总线; 能启动等待模式下的MCU。

5.A/D 转换模块
A/D 转换模块将模拟输入引脚上的输入电压转换为10 位或者8 位数字值。A/D 转换器具有以下特点:当A/D 转换完成时将产生对应的中断。可以使用ADTG 针脚作为A/D 转换的外部触发源。
12 通道带外部参考电压的8/10 位ADC。
使用电阻电容型的逐次比较的转换方法,并带有采样保持电路。

6.LCD 驱动模块
LCD 驱动模块主要是驱动LCD 显示管的,因此这里和我们通常所说的LCD 有很大的区别。平常所说的LCD 已经自带有驱动电路和驱动芯片,在编程时需要编程人员按照其时序控制LCD 显示。而8FX 中所用的LCD 驱动只是驱动不带驱动电路和芯片的LCD 显示管,其本质更接近于多个LED 显示管的级连。所以在使用时,所写的代码也更类似于多个LED 的控制。
LCD 控制/驱动器由显示控制器,显示RAM,端驱动器和公共端驱动器组成。显示驱动器根据需要显示的数据产生段和公共端去洞信号,段驱动器和公共端驱动器的输出可以直接驱动LCD(liquid crystal display )显示面板。LCD 控制/驱动器有如下特点:
可直接驱动LCD 面板;
具有4 个公共端(COM0~COM3)和16 个端(SEG0~SEG15);
具有8 字节显示RAM;
LCDC 可以提供二等分或三等分的LCD 运行电压;
具有两种可选择的驱动时钟源:主时钟和子时钟。

7.双操作Flash
双操作Flash 是8FX 中的一个革新的模块。其原理是将一个Flash 存储区划分为一大一小upper bank(4k×3)和lower bank(16k×2+4k×4)两个独立的存储区,能够进行半独立的读写和擦出操作。为什么说是半独立了,因为在对两个存储区进行操作时,两个区不能同时进行读写操作或者是擦出操作,而只能一个进行读写一个擦出。
不需要E2PROM
减小贴片面积
提高烧写速度
提高数据可靠性
可以在系统控制过程中对Flash 烧写程序
不需要在RAM 上执行程序
可设置小的扇区,容易使用

 

上一节                    下一节




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.