
§å ¸n tèt nghiÖp NguyÔn Th¸i Häc - Líp T§H 46
Khoa C¬ §iÖn Tr−êng §HNN I - Hμ Néi
- 56 -
5 §Çu ra logic cung cÊp dßng 25mA víi ®iÖn trë treo cao hoÆc thÊp bªn
trong.
5 Thay ®æi d−îc ng¾t trªn tõng ch©n.
5 §Çu ra t−¬ng tù cã thÓ cung cÊp dßng tíi 40mA.
5 §−êng ra ®a chøc n¨ng cã tõ 6 ®Õn 44 tuú thuéc vµo tõng lo¹i chip.
5). Xung nhÞp cña chip cã thÓ lËp tr×nh ®−îc
5 Bé t¹o dao ®éng 24/48 MHz bªn trong( §é chÝnh x¸c lµ 2,5%).
5 Cã thÓ lùa chän bé dao ®éng ngoµi lªn tíi 24MHz.
5 Bé t¹o dao ®éng th¹ch anh 32,768 kHz bªn trong.
5 Bé t¹o dao ®éng tèc ®é thÊp bªn trong sö dông cho Watchdog vµ Sleep.
6). Ngo¹i vi ®−îc thiÕt lËp s½n
5 Bé ®Þnh thêi Watch dog vµ sleep phôc vô chÕ ®é an toµn vµ chÕ ®é
nghØ.
5 Module truyÒn th«ng I2C Master vµ I2C Slave tèc ®é lªn tíi 400kHz.
5 Module ph¸t hiÖn ®iÖn ¸p thÊp ®−îc cÊu h×nh bëi ng−êi sö dông.
7). C«ng cô ph¸t triÓn
5 PhÇn mÒm ph¸t triÓn miÔn phÝ (PSoCCTM Designer).
5 Bé lËp tr×nh vµ bé m« pháng víi ®Çy ®ñ tÝnh n¨ng.
5 M« pháng ë tèc ®é cao.
3.3 T×m hiÓu cÊu tróc phÇn cøng chip PSoC
A. CÊu tróc vi xö lý
1.Bé xö lý trung t©m - CPU
Trong chip PSoC bé xö lý trung t©m CPU ®−îc gäi víi tªn lµ M8C. Bé
xö lý nµy kiÓm so¸t c¸c thanh ghi néi t¹i, kh«ng gian ®Þa chØ tËp lÖnh còng
nh− c¸c chÕ ®é ®Þa chØ. C¸c hä chÝp cña PSoC dùa trªn bé vi xö lý m¹nh mÏ 8
bit víi cÊu tróc Harvard (CÊu tróc Harvard lµ cÊu tróc mµ bus d÷ liÖu, bus ®Þa
chØ vµ tÝn hiÖu ®iÒu khiÓn cña bé nhí ch−¬ng tr×nh vµ bé nhí d÷ liÖu ®éc lËp

§å ¸n tèt nghiÖp NguyÔn Th¸i Häc - Líp T§H 46
Khoa C¬ §iÖn Tr−êng §HNN I - Hμ Néi
- 57 -
víi nhau). Nã cã 5 thanh ghi ®iÒu khiÓn ho¹t ®éng chÝnh cña CPU. Nh÷ng
thanh ghi nµy bÞ t¸c ®éng bëi nh÷ng lÖnh kh¸c nhau. Ng−êi sö dông kh«ng thÓ
truy cËp trùc tiÕp vµo c¸c thanh ghi nµy th«ng qua kh«ng gian bé nhí c¸c
thanh ghi. C¸c thanh ghi cña CPU ®−îc cho trong b¶ng sau:
Bé ®Õm ch−¬ng tr×nh lµ mét thanh ghi16 bit (CPU_PC), nã cho phÐp
ng−êi lËp tr×nh truy cËp trùc tiÕp vµo toµn bé kh«ng gian bé nhí ch−¬ng tr×nh
trªn chÝp (16 Kbytes ®èi víi thµnh viªn lín nhÊt). §©y lµ mét kh«ng gian nhí
liªn tôc vµ kh«ng cÇn ph¶i t¹o thµnh trang (no paging).
- Thanh ghi chøa (Accumulator) lµ mét thanh ghi ®a môc ®Ých, nã th−êng
®−îc sö dông ®Ó l−u gi÷ kÕt qu¶ cña bÊt cø mét lÖnh nµo sö dông chÕ ®é ®Þa
chØ nguån.
- Thanh ghi chØ sè ®−îc dïng ®Ó l−u gi÷ gi¸ trÞ Offset (®é lÖch) trong chÕ
®é ®Þa chØ chØ sè. Tiªu biÓu lµ nã ®−îc dïng ®Ó ®Þa chØ mét khèi d÷ liÖu bªn
trong kh«ng gian nhí d÷ liÖu.
- Thanh ghi Con trá Stack (Stack Pointer) l−u gi÷ ®Þa chØ cña ®Ønh Stack
trong kh«ng gian nhí d÷ liÖu. Nã bÞ t¸c ®éng bëi nh÷ng lÖnh nh− PUSH, POP,
LCALL, RETI vµ RET. Nãi chung lµ tÊt c¶ nh÷ng lÖnh cã liªn quan ®Õn stack
cña phÇn mÒm. Nã còng cã thÓ bÞ ¶nh h−ëng bëi lÖnh SWAP vµ lÖnh ADD.
- Thanh ghi cê (Flags) cã ba bit tr¹ng th¸i, bit cê kh«ng - Zero Flag
bit[1]; bit cê nhí - Carry Flag bit[2]; bit Supervisory State[3]. Bit cho phÐp
ng¾t toµn côc- Global Interrupt enable bit[0] ®−îc dïng ®Ó cho phÐp hoÆc

§å ¸n tèt nghiÖp NguyÔn Th¸i Häc - Líp T§H 46
Khoa C¬ §iÖn Tr−êng §HNN I - Hμ Néi
- 58 -
cÊm toµn bé c¸c ng¾t. C¸c cê trªn bÞ ¶nh h−ëng bëi nh÷ng lÖnh to¸n häc,
nh÷ng lÖnh logic.
2.Ng¾t vµ bé ®iÒu khiÓn ng¾t
Bé ®iÒu khiÓn ng¾t cho phÐp mét ®o¹n m· cña ng−êi lËp tr×nh ®−îc thùc
hiÖn mçi khi cã mét ng¾t sinh ra tõ c¸c khèi chøc n¨ng trong chip PSoC. Mçi
mét khèi sè cã mét ng¾t riªng vµ mçi mét cét khèi t−¬ng tù còng cã mét ng¾t
riªng. Mçi mét ng¾t cho nguån cÊp, chÕ ®é ngñ, xung nhÞp thay ®æi, vµ mét
ng¾t toµn côc cho c¸c ch©n vµo ra ®a chøc n¨ng.
B¶ng 4-20: C¸c thanh ghi cña bé ®iÒu khiÓn ng¾t
Bé ®iÒu khiÓn ng¾t cïng víi nh÷ng thanh ghi cña nã cho phÐp c¸c ng¾t
cã thÓ bÞ v« hiÖu hãa ®ång thêi hoÆc ®éc lËp víi nhau. C¸c thanh ghi cung cÊp
mét c¸ch thøc ®Ó ng−êi sö dông cã thÓ xãa tÊt c¶ nh÷ng ng¾t ®ang chê vµ
th«ng b¸o ng¾t, hoÆc cã thÓ xãa mét c¸ch ®éc lËp hay riªng biÖt th«ng b¸o
ng¾t vµ ng¾t chê. Mét kü thuËt phÇn mÒm ®−îc cung cÊp ®Ó cho phÐp ng−êi
lËp tr×nh thiÕt lËp ng¾t mét c¸ch riªng biÖt. ThiÕt lËp mét ng¾t b»ng kü thuËt
nµy rÊt m¹nh mÏ vµ h÷u Ých cho viÖc ph¸t triÓn m· nguån, khi mµ nã kh«ng cã

§å ¸n tèt nghiÖp NguyÔn Th¸i Häc - Líp T§H 46
Khoa C¬ §iÖn Tr−êng §HNN I - Hμ Néi
- 59 -
®ñ hÖ thèng phÇn cøng hoµn chØnh ®Ó sinh ra mét ng¾t thùc.
B¶ng 4-21 : B¶ng vector ng¾t cña CY8C27xxx
3. C¸c cæng vµo ra ®a chøc n¨ng
Cæng vµo ra ®a chøc n¨ng cung cÊp cho CPU mét giao diÖn víi bªn ngoµi.
Chóng ®ßi hái mét sè l−îng lín thanh ghi cÊu h×nh ®Ó hç trî cho nhiÒu chÕ
®é ho¹t ®éng vµo / ra bao gåm c¶ sè vµ t−¬ng tù.
B¶ng 4-22: C¸c thanh ghi vµo ra ®a chøc n¨ng.
Chó ý: kÝ tù “x” sau dÊu phÈy trong tr−êng ®Þa chØ cã nghÜa lµ c¸c cæng
vµo ra ®Òu cã riªng biÖt c¸c thanh ghi trªn. Mçi mét cæng th× c¸c thanh ghi sÏ
cã mét ®Þa chØ riªng. Nh−ng ®Ó dÔ hiÓu th× ta chØ xÐt chung cho tr−êng hîp
tæng qu¸t. C¸c cæng vµo ra ®a chøc n¨ng ®Òu cã ®é réng lµ 8 bit/ 1 cæng. Mçi
mét cæng vµo/ra bao gåm 8 khèi GPIO gièng hÖt nhau. Mçi mét khèi GPIO

§å ¸n tèt nghiÖp NguyÔn Th¸i Häc - Líp T§H 46
Khoa C¬ §iÖn Tr−êng §HNN I - Hμ Néi
- 60 -
®Òu ®−îc kÕt nèi víi bit cã sè thø tù t−¬ng øng trong ®Þa chØ vµ thanh ghi. Bëi
vËy, nh÷ng thanh ghi trong b¶ng c¸c thanh ghi trªn thùc sù chØ dµnh cho mét
cæng (bao gåm 8 khèi GPIO). Trong ®ã th× vÞ trÝ cña bit sÏ chØ râ lµ khèi GPIO
nµo trong 8 khèi ®−îc ®iÒu khiÓn víi cæng vµo ra. Mçi mét khèi GPIO cã thÓ
®−îc sö dông cho nh÷ng kiÓu vµo ra sau:
- Vµo ra sè (Vµo ra sè ®iÒu khiÓn bëi phÇn mÒm)
- Vµo ra toµn côc (Vµo ra cho c¸c khèi PSoC sè)
- Vµo ra t−¬ng tù (Vµo ra cho c¸c khèi PSoC t−¬ng tù) mçi mét ch©n vµo
ra ®Òu cã vµi chÕ ®é ho¹t ®éng còng nh− lµ kh¶ n¨ng t¹o ng¾t. Trong khi tÊt c¶
c¸c ch©n ®Òu ®−îc nèi ®−êng vµo ra sè th× mét vµi ch©n l¹i kh«ng ®−îc kÕt nèi
víi chøc n¨ng vµo ra cña khèi t−¬ng tù hoÆc bus toµn côc.
* Vµo ra sè:
Mét trong nh÷ng chøc n¨ng ho¹t ®éng c¬ b¶n cña cæng vµo ra ®a chøc
n¨ng lµ cho phÐp CPU göi th«ng tin ra ngoµi chip vµ lÊy th«ng tin tõ bªn ngoµi
vµo. §iÒu nµy ®−îc thùc hiÖn nhê thanh ghi d÷ liÖu cæng (Port Data Register
PRTxDR). ViÖc viÕt d÷ liÖu vµo thanh ghi PRTxDR sÏ l−u l¹i tr¹ng th¸i d÷
liÖu, mçi bit cho mét ch©n GPIO. Trong chÕ ®é th−êng (standard non-bypass)
th× mçi ch©n GPIO sÏ lÆp l¹i bit d÷ liÖu ®ã. NghÜa lµ khi ta viÕt mét gi¸ trÞ vµo
trong thanh ghi d÷ liÖu PRTxDR th× ë ®Çu ra cña cæng t−¬ng øng sÏ cã gi¸ trÞ
gièng nh− trong thanh ghi d÷ liÖu. §iÖn ¸p thùc ë ch©n ra phô thuéc vµo chÕ
®é ho¹t ®éng cña ch©n vµ t¶i bªn ngoµi ®−îc nèi vµo ch©n ®ã. (Xem cÊu tróc
cña 1 ch©n vµo ra ®Ó hiÓu râ thªm) CPU cã thÓ ®äc gi¸ trÞ cña mét cæng b»ng
c¸ch ®äc gi¸ trÞ cña thanh ghi PRTxDR. Khi CPU ®äc gi¸ trÞ cña PRTxDR th×
gi¸ trÞ ®iÖn ¸p hiÖn thêi cña ch©n vµo ra sÏ ®−îc chuyÓn ®æi sang gi¸ trÞ logic
vµ ®−îc tr¶ vÒ cho CPU. Ho¹t ®éng nµy sÏ ®äc gi¸ trÞ ®iÖn ¸p cña ch©n vµo ra
chø kh«ng ph¶i lµ ®äc vÒ gi¸ trÞ chèt cña thanh ghi PRTxDR.
* Vµo ra toµn côc (Global IO) C¸c cæng vµo ra ®a chøc n¨ng còng ®−îc
nèi liÒn víi c¸c khèi sè th«ng qua c¸c vµo ra toµn côc. TÝnh n¨ng vµo ra toµn

