|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
摘要:在介绍PMc一16LX系列的主要特点和结构的基础上,对其CPU和中断系统进行了
" p( A. O8 M8 _# P* h$ l. K6 ]分析,描述了该系列单片机的开发工具及编程方法。0 ?! O, A. j( a. n! {0 N; K4 n
4 i0 B3 r: E$ w' `' `! NF=MC一16LX系列单片机是富土通公司推出的
' s4 @" r, {- c5 q5 I新型16位微处理器,图l为该系列的部分单片机,# a2 r1 _8 T, p1 d
针对不同应用领域该系列单片机的外围功能略有
. S; D) A8 G; e$ V3 U Z6 |% R不同,它们共同的特点是都具有大量的外围功能,7 N0 [$ \( L! _8 C" J& ~, O
(1)低电压、高速度:5V供电时,最小指令执行: v( l- k7 i5 a6 V) J
时间为62.5ns/16MHz,2.2V供电时,最小指令执行
" Y% M' S5 H& b. g2 W时间为100ns/10MHz;
/ D& ]% s4 B# {(2)嵌入PLL时钟倍频电路:工作时钟可以选9 ?9 h4 J- Q7 r/ H* b4 g0 d V# A
择晶体时钟的1/2、1、2,3、4倍频。大大减小了EMI
1 W2 f# U$ x6 `# y( Q噪声,同时还提供32kHz的子系统时钟;
. o( h1 O% J% h6 [& P: x(3)优化的指令集:位、字节、字、长字等数据类
4 a) F: K2 o h. P型,多达23种的寻址方式,带符号的乘、除法指令,
. h6 w; G0 ^* ]% b z, n' c# f大大提高了代码的效率,32位的累加器保证了算术 K8 d w- H b, _1 x) t: ?4 V
运算的高精度;支持C语言与多任务处理,提供丰- x$ Q% G( \5 z7 W6 Y( J5 W7 w- I
富的指针;
p) ?: b9 v [& e6 x(4)采用4字节指令预取队列的流水线技术,0 Y6 m# J9 y9 L* k1 R# _
最小指令周期为62.5ns(16MHz);1 K9 C C) C" P7 Y8 c' i
(5)强大的中断功能:8个可编程中断优先级。
1 D6 K# \ P9 e; B支持近40个中断源;
* y1 p4 k0 R2 Z' A/ H" I(6)独立于CPU的自动传输功能:扩充智能I/
7 a. l9 M- @# [. v! [$ b0服务完成I/O口与存储器之间自动数据传输,减8 R% g7 S' M H8 C# T v
少了用户编程,提高了数据的传输速度;/ K/ Q% e$ U# l4 G2 h# U) V8 h$ O6 e
(7)灵活的I/O口编程:每个I/O均可根据需" X9 ~( g4 ~- R& ~4 T
要设置为输入口、输出口或专用[J;8 o4 W4 [& {' `: j( J# c8 f3 r: K
(8)程序补丁功能:提供两个程序补丁地址指) l( |. ?# j# o8 B% ^
针,可对掩模后程序中出现的错误进行修改,以减$ g0 l5 c8 x/ [7 t" k1 _0 N
少损失,节约成本;
8 {3 T5 F, D0 s* b(9)电路进行了噪声保护优化,所有引脚均有! |' A" R) ~* M7 R& T! s i$ @
噪声滤波器;1 W& t. F$ [: L. U
(10)低功耗的能量管理:待机、睡眠、停机、CPu% e8 V. S2 }) ^( I, }7 ^
间歇工作、子时钟的工作和睡眠等多种低功耗模* C0 a3 ^5 G7 j& ?2 N! k
式;6 q5 G! j+ _+ ]
(11)多种ROM大小和类型:掩模ROM(最大! q+ S9 N. Z7 y# v& S4 U! G- p- s
256Kbytes),nASH ROM(64K/128K/256K bytes).( @' s3 g) @: t0 @: F+ I' A
内部RAM(4 K/6 K/8 Kbytes);
4 p3 j* _! |, g7 k r. l) W/ h(12)支持16M寻址空间内的字、字节寻址;- ]2 R4 {) `: M L& `
(13)地址、数据总线的复用或非复用可通过软
* ~$ K7 x* G. q% n$ Q! P件进行设置;2 k- y7 k" m" H2 y7 X1 K+ E9 }. F/ q q
(14)FLAsH ROM编程:支持自动编程,具备可
; @. i3 H. V. o+ j. c8 d a" J擦写、可恢复和自动保护功能,擦写次数大于lO万
, U, o( W' o* f$ C2 | ]次,数据可靠存储10年以上,可设置加密位;
4 Q2 B- Q' G8 K/ v E& d(15)7-作温度_40—105℃;存储温度一55—150℃。6 _- n: K' t8 j' \# G
2 CPU结构分析! t, G& t+ N. x# X7 P1 u& J
FFMC一16LX系列单片机的CPU内含11个专
7 y8 z- P4 `8 k4 a0 J: U K用寄存器。通用寄存器位于RAMl80H一37FH的地
4 v6 y2 G# E# d址区内,分为32区,每个区可用作8位寄存器、16- V H! J+ R0 f8 R
位寄存器或32位寄存器,寄存器指针指向当前通
0 H# _) ]1 Q/ ?/ X+ f1 |用寄存器工作区,寄存器的结构如图3所示。
. ^8 q8 U9 b5 c( m2.1专用寄存嚣
+ g O; d7 P9 }3 [8 j(1)累加器(A):由两个16位累加器AH和AL
& N* k( D' C9 j" B1 I组成,可以作为32位、16位或8位寄存器使用;) V3 B4 h% ~& c: a' u1 [9 d' z
(2)堆栈指针(USP,ssP):堆栈指针有用户堆栈
2 \8 G/ o/ L- ~8 O# ]. C指针(usP)和系统堆栈指针(ssP)两种,堆栈指针的高
' U* t% v5 G+ g# r! F4 I8位地址由用户堆栈段寄存器(USB)或系统堆栈段
8 s% [+ m- A2 X8 Z6 ^寄存器(ssB)确定;
1 W3 p2 E1 q8 [(3)程序状态字(Ps):由中断级别屏蔽寄存器5 n$ `' M. `) |3 ~: P+ b" V; H
(ILM,3位,表明CPU当前接受中断响应的级别)、通1 n& m `8 t* Z2 e! ?3 z
用寄存器指针(RP,5位,指向当前通用寄存器区的
: R0 `: a, Q! r% m5 g首址)、条件码寄存器(ccR,8位,包括反映算术运算
. }5 i% M Y) \3 ~1 |结果和传输数据的状态位)等组成;$ N* Y4 R0 _( e" Y1 G% y0 B
(4)程序计数器(PC):指定CPU将要执行的指, p* \* Q. D- ?' S7 Z$ }
令代码存放地址的低16位;
2 }" P$ z. m& l(5)直接分页寄存器(DPR):指定直接寻址指令, w* x% `/ e8 c. K# i, d+ E& M
操作数地址的8-15位;. ?9 N5 o# L: T0 l7 ?
(6)段寄存器(PCB,DTB,USB,SSB,ADB):五个
4 e8 y5 n3 u% n段寄存器是程序段寄存器(PCB)、数据段寄存器
. c/ R" L- |# I ~9 x0 b0 V(DTB)、用户堆栈段寄存器(usB)、系统堆栈段寄存器3 U$ M, R2 g+ T; S1 z9 x: n
(SSB)、附加段寄存器(ADB),分别用于指定相应段寻
' P/ L( ?' K% E址的高8位地址。
# l, x8 q1 B7 a2 L, }2 u5 f. h0 b2.2通用寄存器
- }9 x, J5 X+ O0 u5 k9 ^( a通用寄存器是位于RAM中的180H到37FH, Z3 F3 p7 o' ]' j) |
的内存块,分为32个区,每区8个字。同一时刻只1 L) ]) e% u/ Q) R8 O: h F' j+ \
能有一个区工作,可以用作通用8位寄存器(R0到! ^+ h9 k% Z# R6 Z
R7)、16位寄存器(Rwo到Rw7)或32位寄存器(Rm
! r; m0 I% p: u$ F2 m到Rm)。通用寄存器的用法如表1所示。* N, b1 r% u4 |. ]4 F& N
3中断系统, i, |% |3 j! ^% i
FFMC一16LX系列单片机共有8个可编程中断
' C1 x/ ]6 n7 S* M优先级,0级中断优先级最高,6级中断优先级最
; ]1 S1 V7 {* c, K( o5 h低,7级无中断.通过设置程序状态字(Ps)的中断级
8 }7 }6 e$ I, k别屏蔽寄存器(ILM)可以改变当前CPU接受中断响* N4 G& j# ~8 [9 t B7 }& U
应的级别,低于该设置中断级别的中断源将被屏$ b9 |4 D; i' h$ C
蔽。" {0 C7 R8 z& {) I- T* M* y8 C
FFMC一16LX系列单片机支持近4J0个中断源,
' T. y4 W& ~5 B" l9 [6 S可以分为硬件中断、软件中断和扩充智能I/O服务
+ _5 y) c: L2 [4 @(E120s)和异常中断等4种类型。每个中断源都拥有
' ^# q( ], {/ h o5 P唯一的中断向量(包括中断号和中断地址),除复位# B' k+ U+ o- `) b' l: V
(Reset)、异常(ExceptioN)以及软件中断(1NT 9 in—
1 }& P* e! Y v) ?struction)外,每个中断源都受~个中断控制寄存器
+ B. T- b; G" ^: U6 J的控制,该系列单片机共有16个中断控制寄存器(ICR),! S0 ]) S0 d+ N4 ` ~2 X l; j/ _
它们位于中断控制器中。中断控制寄存器负责$ j2 L Y! a- P3 i
管理相应的中断源,其主要功能有:设置相应中断
, i6 i p: D3 \2 q. v& @- D源的中断等级、选择响应中断作为一般中断来使用
& j; a1 ~- Z4 T% y还是用作扩充智能I/O服务、选择扩充智能L/O服
$ b; B7 [) F5 a% K务通道,共有16个扩充智能I/O服务通道。与16
) ]* q7 }! E. I$ ^, n1 [个扩充智能I/O服务通道相对应有16个扩充智能
- H; \7 g4 w' L& R& U, z0 [I/O服务描述符(ISD),每个描述符占用8个字的% [; b2 s# o# D4 w0 d
RAM空间,用于完成扩充智能I/0服务时I/O口与
1 t, Z( J/ l7 y! ~( s- L存储器之间自动传输数据的管理。
( L5 `0 e# |9 u8 j# N扩充智能I/O服务描述符由数据计数器、指向, v8 l# F6 }9 u9 \& h) l+ _0 Z# `
I/O寄存器的指针、指向RAM缓冲区的指针以及状
" b- w8 R# `/ ~. e b' |/ X. ^8 S态寄存器组成。状态寄存器用来指明指向缓冲区地8 A, @/ _2 `7 k2 a
址指针和I/O寄存器的地址指针是固定还是更新、' V& s P+ M$ }; q2 T
传输数据格式(字节还是字)、传送方向(从I/O到缓" c- E- @; l; y- A9 Y% b# e
冲区还是从缓冲区到I/o)等。
: l! W& A6 X3 m! ?3 i! ?; n# rFFMC一16LX系列单片机提供的扩充智能I/03 G, W1 q0 ]2 c' `
服务事实上是一种硬件中断操作。中断允许发生7 a7 x2 J+ d8 K4 n
时,中断控制器决定申请的中断是否有效,并选择4 ~6 V/ i( L7 y
相应的扩充智能I/O服务操作,扩充智能I/O服务
b! P* t* T3 M: r( t3 Q3 r根据扩充智能I/O服务描述符来进行I/O口与存/ _! t; @2 n1 C; i1 [! u! y
储器之间的自动数据传输,完成后返回CPU操作。
5 ~( D- a$ P- c( a& q8 D# P W与传统的I/O口与存储器之间的数据传输方式不% G1 h6 g1 W8 j+ Q+ J0 _
同,采用扩充智能I/O服务后,由于采用内部微代' n* `# z% t8 m' K
码不需要编写中断处理程卒,数据传输既不用内部
& Z% c9 J5 Y2 T% b' S寄存器也无就需保存寄存器的值,与DMA功能相
- @. O4 P# A* m8 g/ j1 J似,因此不但可以减少编程工作,而且提高了运行& E& h' t) T: Q$ t7 n
速度。- G3 o. i! y7 a* _9 w
图4描述了硬件中断的处理过程,当外围硬件
" b4 \7 C, _$ p- @$ ]& M发生中断且中断使能①时,外围硬件发送一个中断! ]: C% o1 f- [6 y
请求到中断控制器②,中断控制器决定同时到来中8 W2 U6 [5 F" w
断的中断优先级并将优先级高的中断送到CPU③,
; L9 D( ^6 v& e! GCPU比较请求中断优先级和中断屏蔽寄存器(IS:6 p; y. _! w) m; W' _% \# {
ILM)的值④,若请求中断优先级高,检测中断使能标
' [) k9 T3 J* W: y- w! M6 y( o6 `5 I志位(PS:I)⑤,若中断使能标志位为使能状态,则被
5 V' T# f" @8 u+ g请求中断级写入指令寄存器,在完成当前指令后,
# P4 U& z2 l' X w; h0 KCPU响应中断请求⑥,若为一般的中断请求,程序
4 {4 w% A# v' n- y4 G% M跳转到用户中断服务程序,若为扩充智能L/O服务. E* c3 L$ L5 h/ W. Z. _
程序,内部微代码根据扩充智能I/O服务描述符执- D% r: s3 A' Q" X8 Q: E# G- w2 M
行相应操作.当中断源在中断例程中被清除后,本1 l6 P$ u: H# ?2 g
次中断结束⑦。
2 D. n/ ]9 j3 ]; o3 Z
: E1 U9 Y; h6 V2 \6 i1 L) K; x1 [附件下载:
, I X# X1 s* F, I( v# L) y: x% G- }6 G
: a9 {% \7 }" r0 Z8 @8 C) s" W |
|