Von Neuman Architecture - Naresuan University › ponpisut › Lec_03.pdf · Von Neuman...
Transcript of Von Neuman Architecture - Naresuan University › ponpisut › Lec_03.pdf · Von Neuman...
1
Von Neuman Architecture 8-bit CPU Extensive Boolean processing
(Single-bit logic) capabtilties 64K Program Memory address space 64K Data Memory address space 128 bytes of on-chip Data RAM 32 bi-directional and individually
addressable I/0 lines Two 16-bit timer/counters Full duplex UART 6-source/5-vector interrupt
structure with two priority levels On-chip clock oscillator
2
3
4
Memory Structure
Program memory Data memory
5
ต ำแหนงของ ISR
(Interrupt Service Routine)
MCS-51 ในแบบทม Program memory ภำยใน 4K, 8K และ ไมมเลย
MCS-51 with 128 bytes Internal Data memory
MCS-51 with 256 bytes Internal Data memory
FFFF
0000
64KBYTES
EXTERNAL
60KBYTES
EXTERNAL
4K BYTESINTERNAL
FFFF
0000
0FFF
1000
56KBYTES
EXTERNAL
8K BYTESINTERNAL
FFFF
0000
1FFF
2000
FFFF
0000
64KBYTES
EXTERNAL
SFRsDIRECTADDRESSINGONLY
DIRECT&INDIRECT
ADDRESSING
FF
00
7F80 +
FFFF
0000
64KBYTES
EXTERNAL
SFRsDIRECTADDRESSINGONLYDIRECT&INDIRECTADDRESSING
00
FF
7F80
FF
+
แบงออกเปน สำมสวนดวยกน คอ Lower 128, Upper 128 และ SFR Lower 128 bytes of internal data memory
6
ACCESSIBLE
BY DIRECT
AND INDIRECT
ADDRESSING
ACCESSIBLE
BY DIRECT
ADDRESSING
SPECIAL
FUNCTION
REGISTERS
ACCESSIBLE
BY INDIRECT
ADDRESSING
ONLY
FFH
80H
FFH
80H7FH
00H
LOWER
128
UPPER
128
PORTS
STATUS AND
CONTROL BITS
TIMER
REGISTERS
STRACK POINTER
ACCUMULATOR
(ECT.)4 BANKS OF
8 REGISTERS
R0-R7
7FH
1FH
2FH
17H
0FH
07H08H
10H
18H
20H
0
BIT-ADDRESSABLE SPACE
(BIT ADDRESSABLE 0-7F
RESET VALUE OF
STACK POINTER
BANK SELECT
BIT IN PSW
00
01
10
11
Upper 128 bytes of internal data memory
Upper 128 น จะมสองสวนทบซอนกนอยใน MCS-51 แบบทม Internal data memory 256 ต ำแหนงเทำนน เชน 80C52, 83C154, 83C154D กำรเขำถงขอมลทอยใน Upper 128 นจะตองท ำโดยใชวธกำรของ Indirect addressing เทำนน
7
Accumulater 0E0Hเปนรจสเตอรทใชมำก ค ำสงทจะอำนหรอเกบขอมลจำกภำยนอกจะตองกระท ำผำนรจสเตอรตวนเทำนน
B register 0F0Hใชในกำรคณและกำรหำรเทำนน
PSW (Program Status Word) 0D0H
8
Program Counter (PC)เปน register 16 bits ทไมมใน memory map เอำไวก ำหนดต ำแหนงของค ำสงทจะอำน (Fetch) ค ำสงตอไป
SP (Stack Pointer) 081Hใชชต ำแหนงหนวยควำมจ ำกอนกำรท ำงำนค ำสง CALL หรอใชเกบขอมลดวยค ำสง PUSHขอมลในรจสเตอรนจะมคำ 07H เมอมกำรรเซท
DPTR (Data Pointer Register) 082H and 083Hมขนำด 16 บต ใชชต ำแหนงในหนวยควำมจ ำ
P0, P1, P2, P3 (PORT 0, 1, 2, 3) 080H, 090H, 0A0H, 0B0Hใชอำนและเขยนขอมลตดตออปกรณภำยนอก เมอเขยน ขอมลจะคำงไว กำรอำนขอมล ตองเขยน 11111111B ไปทพอรทนนๆกอน
9
SBUF (Serial Data Buffer) 099Hแทจรงแลวมรจสเตอรสองตวทมชอเดยวกน ตวหนงส ำหรบรบขอมล อกตวหนงส ำหรบสงขอมล จงท ำใหสำมำรถท ำงำนแบบ Full Duplex ได
Control Registersไดแก PCON, SCON, TH0, TL0, TH1, TL1, TMOD, TCON, IE และ IP
10
PCON (Power Control Register) 087H
11
Power Down Modeใชกระแสนอยกวำ 10 µA หลงจำกค ำสงทท ำให PCON.1=1 แลว Oscillator จะหยดท ำงำน ดงนนจะไมมกำรท ำงำนใดๆรวมทงขอมลในรจสเตอรตำงๆไมปลยนแปลง กำรใชก ำลงจะต ำมำก กำรออกจำก Power down mode มวธเดยวคอกำร Reset แตจะท ำใหขอมลใน SFR เปลยนไป
12
Idle Modeกำรใชกระแสจะลดลงเหลอ 15 % ไมมสญญำณนำฬกำไป CPU ขอมลในรจสเตอรตำงๆไมเปลยนแปลง กำรออกจำก Idle mode มสองวธคอ1. โดยกำร Reset : กำรท ำงำนจะท ำงำนในค ำสงทตอจำกค ำสงทท ำให PCON.0=1 ไปอก 2-3 ค ำสง กอนเขำสกำร Reset
ดงนนจงตองระวงวำค ำสงเหลำนนอำจท ำใหกำรควำมผดพลำดในกำรปฏบตงำนได2. โดยกำร Interrupt: กำรท ำงำนจะกระโดดไปท ำงำนยงต ำแหนงของ Interrupt routine เมอออกจำก Interrupt
routine นนๆกจะท ำงำนในค ำสงทตอจำกค ำสง ทท ำให PCON.0=1 ดงนนอำจใชบต GF0 หรอ GF1 ชวยแสดงวำระบบเปน Idle mode กอนเขำส Interrupt routine
13
กำร reset จะเกดขนเมอม logic 1 เกดขนทขำ RST และกำร reset อยำงสมบรณจะเกดขนหลงจำกนน 1-2 machine cycles คำของหนวยควำมจ ำใน RAM จะไมไดรบผลกระทบอะไร ดงนนจงควรมกำรเคลยรคำของ RAM ในตอนตนโปรแกรมเพอปองกนกำรน ำขอมลกอนกำร reset มำประมวลผล
14
พอรตของ MCS-51 สำมำรถเปนไดทงอนพตและเอำตพต และทพอรตจะมตวตำนทำนพลอพไวภำยใน ยกเวนทพอรต0 แตละพอรตสำมำรถจำยกระแส หรอทเรยกวำ กระแสซอรซ(Source Current) ไดสงสดประมำณ 20 mA และทกขำของพอรตรวมกนจะสำมำรถจำยกระแสรวมกนไดไมเกนประมำณ 80 mAดงนนเพอไมใหเกดปญหำจงควรตอวงจรบฟเฟอรทำงเอำตพตเพอชวยในกำรขบกระแส เชน IC 74HCT245
15
การใชงานเปนพอรตอนพตพอรตสำมำรถรบกำรเปลยนแปลงระดบลอจกจำกระดบสงสระดบต ำเทำนน ดงนนจะตองเรมตนดวยกำรเขยนขอมลใหกบพอรตหรอบตนนๆใหเปนลอจก “1” กอน เพอหยดกำรท ำงำนของเฟต (FET) และท ำใหขำสญญำณของพอรตเชอมตอเขำกบวงจรพลอพภำยในโดยตรง สงผลใหขำพอรตนนมลอจกเปน “1” และสำมำรถทจะรบสญญำณจำกลอจก “0”จำกอปกรณภำยนอกได
การใชงานเปนพอรตเอาตพตกำรใชงำนเปนพอรตเอำตพตสำมำรถสงขอมลออกไปไดเลย เชน ถำตองกำรสงขอมลทเปนลอจก “0” ไปยงวงจรแลตชซงจะสงตอไปขบเฟต ท ำใหเฟตท ำงำนและทขำพอรตก ำหนดใหท ำงำนกจะเกดลอจก “0” ขน ในท ำนองเดยวกน ถำตองกำรสงขอมลทเปนลอจก “1” ออกไปกสำมำรถทเขยนขอมล “1” ไปยงวงจรแลตช วงจรขบกจะหยดกำรท ำงำนเปนผลใหทขำของพอรตเชอมตอกบวงจรพลอพภำยในเกดเปนลอจก “1”ทขำพอรตนน
16
ส ำหรบ MCS-51 Machine cycle จะประกอบดวยกำรท ำงำน 6 States (S1 –S6) ซงในแตละ State ของกำรท ำงำน จะใชเวลำ 2 Clocks ดงนน 1 Machine cycle จะใชเวลำ 12 clocks แตละ Machine cycle จะมกำร Fetch รหสค ำสง 2 ครง ถงแมวำค ำสงนนๆ จะเปนค ำสงแบบ 1 Byte กตำม
17
18
MCS-51
P0P1
P3 P2
ALE
EA
INTERNAL
ROMLATCH
OE
RAM
DATA
ADDR
WR
VCC
WR
PAGE
BITES
I/ORD
0000H
เมอ Fetch Op-code จาก External Program Memory
เมอ MCS-51 อานขอมลจาก External Data Memory เมอ MCS-51 เขยนขอมลเขา External Data Memory