Tổng quan về vi điều khiển PIC - Pdf 12

BàiviếtnàyviếtchoIRF.
Grenoble,12/05/2005

Chàocácbạn,

Cóthểnói,hiệnnayviđiềukhiểnđãrấtphổbiếnởViệtNam,vàđượcứng
dụngrấtnhiều.NhữngsinhviênngànhĐiện,ĐiệnTử,CơĐiện
Tử,TinHọc,
ViễnThông hầunhưaicũngbiếtcáchđểlàmviệcvớiviđiềukhiển.Tuy
nhiên,đểviếtmộtbàiviếttổngquátvềviđiềukhiểnvàviệclậptrình
chovi
điềukhiển,quảthậtlàquákhókhănđốivớitôi.

Dovậy,tôiđặtngayvấnđềlàbàiviếtnàysẽhướngvàonhữngbạnsinhviên
mớibắtđầutiếpcận
vớiviđiềukhiển.Bàiviếtsẽđượcchiathành3nộidung
chính.Nộidungthứnhất,tôitrìnhbàykháiquátvềviđiềukhiển.Nộidung
nàyđượcđềcậptrongrấtnhi ềutàiliệ
u,vàdườngnhưlàvấnđềcơbản,do
vậy,tôichỉtrìnhbàynhữngýkiếncánhâncủatôisaochothậtphùhợpvới
cácbạnsinhviênmớitiếpcậnvớivi
điềukhiển.Nộidungthứhai,tôitrình
bàyvềcáchtiếpcậnmộthọviđiềukhiển,haycụthểhơnlàcácbạncầngìđể
bắtđầuhọcviđiềukhiển.Nội
dungcuốicùng,tôisẽliệtkêcácbướchọcvi
điềukhiểnmộtcáchtươngđốirõràng,màcánhântôichorằngnóhữuích
cho các bạn. Bởi vì những bước này
tôi cũng tham khảoởmột số tài liệu
hướngdẫn,vàkhihọcthìtôicũngphảilầnmòvàđitheoconđườngđó.



 Von Ne umann làđường
truyềnchung.Trongkhiđó,kiếntrúcHarvardtá chrờibộnhớdữliệuvàbộ
nhớchươngtrình.

Mỗi kiến trúc này có m ột lợiđiểm riêng rẽ khác nhau. Kiến trúc Von
Neumann
tậndụngđượctàinguyênbộnhớ,trongkhiđókiếntrúcHarvard
sẽđạttốcđộxửlýcaohơn,mặtkhácđườngtruyềndữliệuvàđườngtruyền
lệnhđiềukhiển(chươngtrình)cóthể
códunglượngkhácnhau.

b)Tậplệnh


Tậplệnhởđâyđượccoilàtậpmãlệnhnhịphân,vàchúngtachưanênvộiđề
cậpđếnngônngữlậptrình.Bảnchấtcủatậplệnhlàmộttậphợpcácmã
nhị
phân,màtừđócácđơnvịxửlýtrungtâm(CPU)nhậnbiếtvàthựchiện.Dữ
liệuđượcCPUxửlýlàcácsốnhịphân.Chínhvìvậy,tậplệnhdùthếnàođi
nữacũng
sẽthựchiệnmấyviệcchínhsauđây:

‐tínhtoáncácconsốnhịphân.
‐cáclệnhđểchuyểncácgiátrịrathànhtínhiệuđiệntửởchânlinhkiện
‐cáclệnhdichuyểncácgiátrịgi
ữacácthanhghi
‐cáclệnhđiềukhiểncontrỏchươngtrình

Nhữngđiềunàytưởngchừngđơngiản,nhưngthiếtnghĩnósẽgiúpíchcho
cácbạnkhihọcvàhiểumộttậplệnh,cácbạncóthểphânloạichúngđúng

luậnnàysâucũngkhôngsâu,mànôngcũngkhôngnông,nhưngnólại
làcơsởđểnhữngnhàsảnxuấttungracácsảnphẩmviđiềukhiểncủamình.
Vàcũngtừđó,các
bạncũngdễphânloạiđểlựachọnviđiềukhiểnchomình
dùng.Ngoạitrừhailoạinày,thìnhữngloạikhácchúngtacứxemlàloạithứ
ba.

Chúngtacầnnhómloạiđểlàmgì?
Bởivìtínhnăngcủaviđiềukhiển,cóliên
quantrựctiếpđếnsốchâncủaviđiềukhiển.Chonênviệcphânloạivàhình
dungramộtbảnđồđầyđủcácloại,các
chứcnăngcủaviđiềukhiển,sẽgiúp
cácbạnlựachọnviđiềukhiểntốthơn.Mộtngườimớihọc,đểcómộttầm
nhìnrộngvềviđiềukhiển
màlựachọncũngthậtlàkhó,nhưngnếutìmtòi,
hiểuvàphânloạiđượcmộtsốloạiviđiềukhiển,tựnhiênsẽhiểurõđượccái
bảnđồtươngđốiphứctạpnày.

Làmthếnàođểbiết?Đơngiảnthôi,trongtấtcảcácdatasheetđượ
ccungcấp
chotừngloạiviđiềukhiển,đềucómôtảrõtínhnăngcủatừngloại.Cácbạn
tựmìnhtìmhiểuvàphânloạimộtsốviđiềukhiểnthôngdụng
(màcácbạn
cóthểmua)rồitựđánhgiáchúngvềmặttínhnăngquacácdatasheet.Vàđể
đọchiểuđượccáctínhnăngnày,thìcácbạnphảicómộtkiếnthứcnền,vd
nhưtimerlà
gì?pwmlà gì?capturelà gì?i2clàgì?usartlàgì?giaotiếpCAN
là gì?  Những cáiđó, bạn không cần học từ nhiều con viđiều khiển, vì
nhữngtínhnăngđóhoàntoàngiống
nhau,chỉcócáchđểlàmchonóhoạt

Tôinóirằngchúngtaphảibiếtrằngchúngtacóthểmuađượcnó,chứđừng
đimuanóvội,màhãyxemnhữngvấnđềtiếptheo.

b)Lậptrình


Tấtnhiêncôngviệccủa bạnlàcông việclập trình,đểlàmcho conviđiều
khiểnđóhoạtđộngtheoýbạnmuốntronggiớihạncáctínhnăngcủanó.Ở
đâycó
mộtđiểmrấtvuiđólànếubạnxétlạitừthưởʺkhaisinhlậpđịaʺcủa
conviđiềukhiển,chứcnăngvàtậplệnhcủanóthậtđơngiản,nhưngnh
ững
côngviệcnhưbâygiờnóvẫnhoàntoànlàmđược.Đólàvisao?Làvìbản
chấtcủanóvẫnchỉlàthaotácvớinhữngconsốnhịphân.Dovậy,nếumột
conviđ
iềukhiểnkhông hỗtrợmộttínhnăngnàođó,thìchúngtacũngđều
cóthểthựchiệntínhnăngđóbằngphầnmềmvàmộtvàiphầncứnghỗtrợ
bênngoài.

Nhưng
tạmd ừngchuyệnđólại,cácbạnmuốnconviđiềukhiểnhiểuđược
nhữngchữlàchữmàcácbạnsẽdùngđểlậptrình,thìcácbạnphảibiếnđổi
cácchữđóthànhra
cácconsốnhịphân,thểhiệndướidạngfile.HEX

Muốnlàmđượcđiềunày,cácbạncầncómộtchươngtrìnhdịch.

Việcsauđólàbạnphảibiếtngônngữlập
trìnhnàođó,thôngthườngkhimới
bắtđầu,ngườitadùngASM

viđiềukhiển.Thạchanhthường dùngtừ 38KHzchođến40MHztuỳtheo
từngloạiviđiềukhiển.

Chínhvìnhữngđặcđiểmnày,nếuchúngtakhôngtínhđến
tấtcảcácthiếtbị
ngoạivicầnđiềukhiển,chúngtahãymạnhdạnthiếtkếmộtmạchchuẩncho
viđiềukhiển, cungcấpđiệnáp5V,dòng300mA,mạch reset
vàmạchdao
động.Khidùngbấtkỳloạiviđiềukhiểnnào,cũngcóthểdùngmạchnày.

Nguồnchothiếtbịngoạivi,tôikhuyênrằngnênthiếtkếriêngchotừngthiết
b
ịngoạivi,vàchorằngthiếtbịngoạivilàbấtkỳthiếtbịnàonốitrựctiếpvới
mạchviđiềukhiểnnêutrên.

Ngoàira,cầnlưuýrằng,viđiều
khiểnnhậnvàxuấttínhiệuđiệntrêncác
chântừ2.5Vđến5.5V(phụthuộcvàonguồn),vàtừ12mAđến20mA(tuỳ
loại).Vìvậy,cácthiếtbịngoạiviphảiđượcthiếtkếsao
chokhigiaotiếpvới
viđiềukhiển,trựctiếpnốivàocácchânviđiềukhiển,vàcódòngxuấtnhập,
cũngnhưđiệnáplogicnhưtrên.

e)Kếtluận


Trongtấtcảnhữngvấnđềcầncónày,chúngtathấyrằngcácmạchnguồn,
resetvàdaođộnglàkháđơngiản,vàhầunhưđượccungcấpmộtcáchchi
tiếtbởinhàsả
nxuất.Chínhvìthế,chỉcầnlậtdatasheetravàthiếtkếgiống

dịchtừngônngữcấpcaoC,Pascal,Basic, thườngđượcbánvớigiákhácao.
Tuynhiên,ởViệt Nam, th
ựctế làchúng ta dùng rấtnhiều nhữngchương
trìnhkhôngcóbảnquyền.Tôikhôngcổvũchoviệcdùngtrìnhdịchkhôngcó
bảnquyền,nhưngthựctếlàthựctế,bâygiờ
hầunhưcácchươngtrìnhdịch
ngônngữcấpcaochohầuhếtcácloạiviđiềukhiểnđềuđượccungcấpđầy
đủtrêncácdiễnđàncủa cảViệtNamlẫnnướcngoài.Vì
vậy,vềphầnchương
trìnhdịch,cácbạncũngchẳngphảilolắnggìnữa.

Vậyđiềuquantrọngnhất,cácbạncầnphảihọc,đólàhọccáchviết
chương
trình. Tôiđã phân tích vấnđềnàyởdiễnđànđiện tử
www.diendandientu.comvàsẽđănglạibàiviếtnàytạiwww.picvietnam.com
(diễnđànmàtôisắpmởra).Đểviếtđượcchươngtrình,cácbạnphảihiểu

rằng,bạnviếtchươngtrìnhchom ộtviđiềukhiển,tứclàsửdụngcáctính
năngcủaviđiềukhiển.Vậycácbạnphảitheocácbướcsau:

‐tínhnăngđóhoạtđộngnhưthếnào?tạisaochúngtadùngtínhnăngđó?
‐làmsaođểkíchhoạtchoviđiềukhiểnhiểurằngchúngtacầndùngtính
năngđó?
‐khilàmviệcvớ
imộttínhnăngbấtkỳ,chúngtaphảitươngtácvớinhững
thanhghiđặcbiệtnàotrongviđiềukhiển?
‐mộtsốthuậttoánđểthựchiệncôngviệc

Nhưvậy,các
bạnsẽnắmngay đượcrằng,đểđiềukhiểnmộtthiếtbịngoạivi

khác.Cánhântôikhuyêncácsinhviênmớib
ắtđầulàmviệcvớiviđiềukhiển
mộtlờikhuyênchânthànhlàcácbạnhãytheonhữngbướctôitrìnhbày,học
tậpvàtựmìnhđánhgiácácvấnđề,hìnhthànhmộtbả
nđồkiếnthức,rồitự
thựchiệnmộtđềtàibấtkỳ.Saukhilàmxongmộtđềtàibấtkỳ,kểcảđềtàiđó
chỉlàlàmnhấpnháymộtcáiđènled,cá cbạnsẽthấy
rằng,cácđềtàikhácrồi
cũngtươngtự.Nhưngvấnđềquantrọnglàphảixácđịnhđượcnhữngbước
thựchiệnnhưtôiđềcậptrênkiavàtiếpsauđây.


3)Cácbướcthựchiệnmộtđềtàivớ
iviđiềukhiển

Tôiviếtrađâycácbướcđểmộtngườimớihọccóthểtheovàtiếpcậnngay
đượcvớiviđiềukhiển

a)Tìmhiểumộtsốkháiniệmcầnthiết:


‐Hiệnnaycó3họ viđiềukhiểnnổi tiếng là8051(baogồm AVR),PICvà
Motorola.Nếubắtđầuhọc,chọnmộttrong3loạinàyđểbắtđầu.
‐Tìmhiểuvềkiến
trúcmáytính,hiểucơbảnvềkiếntrúcHarvardvàkiến
trúcVonNeumann
‐TìmhiểukháiniệmRISCvàCISC
‐Kháiniệmthanhghi
‐KháiniệmStack
‐Kháiniệmcontrỏ(pointer)


Vd:
ChỉcầnhiểuADC(AnalogtoDigitalConverter)dùngđểbiếnđổimộttín
hiệuđiệnápAnalogvàomộtchânnàođócủaviđiềukhiển,biếnđổinóqua
giátrịsố(Digital)bằngcáchsosánh
vớim ộtđiệnápthamchiếu(Reference
Voltage).Điệnáp thamchiếu cóthể làđiệnápVDD(điện áp nguồn)hoặc 
điệnáp thamchiếuđượcđưa vàomộtchân khác.Nguyênlý biếnđổ
inày 
đượcthựchiệnnhưthếnào?ThếnàolàADC10bit,12bit,8bit 

Chỉcầnnhưvậythôi,cácbạnkhôngcầnhiểunhiềuhơnnữa.

Nóiđiềunàycũngthậtbu
ồncườichocácbạnđãhọclâurồi,nhưngđâylà
cácbạnmớihọc,thìviệcnàyvôcùngquantrọng.Vìrấtnhiềubạnlênmạng
vàhỏirằngPWMlà
cáigì?ThếnàolàDutycycle?

Dovậy,nhữngkháiniệmnày,nếucácbạnnắmvàhiểuđượcrồi,thìvấnđề
chỉcònlàứngdụngsửdụngnóthôngquaviệclậptrìnhtrên
viđiềukhiển
màbạnchọnnữathôi.Màcáctínhnăngnàythìviđiềukhiểnnàocũnggiống
nhau,chonênchỉcầnđọcmộtdatasheetthìsẽbiếthết.

c)Tìmdụng
cụhọctập

Tấtnhiên,đihọcphảicódụngcụhọctập.BạnmuốnhọcconviđiềukhiểnA,
thời buổi này không phải là thời buổi bao cấp, phát phiếuđi l

điềukhiển củamình,các bạnnhanh chónglàmngaymạ
ch nạp.Loadmột
chươngtrìnhmẫubấtkỳđơngiảnvàoviđiềukhiểnđểkiểmtramạchnạp
hoạtđộngtốthaykhông.Nếutốtthìoki,nếukhôngthìlạibòlên
cácdiễn
đànđểhỏi.Nhữngthằngrảnhrỗinhưtôisẵnsàngtrảlờichocácbạn.

d)Họcviếtchươngtrình


Họcviếtchươngtrìnhcóthểchiacụthểlàm2cáchhọc,họcđểviếtchovi
điềukhiểnchạyđượcthìnhảythẳngvàohọcngônngữcấpcao,họccấptốc
đểđốiphóvớimộtđồánnàođó.Thậmchívàidònglệnhbanđầuviếtsai,
nhảylêndiễnđànhỏi,tìmthầyhướngdẫnhỏi,tìmbạnhỏi cuốicùngrồi
cũng
viếtxongchonóchạyđược.Cáinàothấykhókhăn,khôngbiếtlàmthì
tìmcodemẫubằngngônngữcấpcao,thếlàxong.

Cáchthứhairườmrahơn,đólàhọcviếtASM.Họ
cASMkhácôngph u,phải
hiểuchitiếtcấutrúcviđiềukhiển,phảiđiềukhiểntừngthanhghi 

Tuynhiên,tôikhuyênkhimớihọc,cácbạnnênbắtđầubằngviệchọcASM.
KhinắmvữngcáchviếtASMchomộtconviđiềukhiểnnàođó,chuyểnsang
conviđiềukhi
ểnkháckhôngmấykhókhăn,vàcácbạnsẽgiốngnhưmột
chuyêngiavềnómộtkhicácbạnđãhiểutườngtậnmọivấnđề.

Banđầucóvẻsẽhơikhóxơi
vàmệtmỏi,nhưngsaunàythìcácbạnsẽthấy

nhưngcácbạnthiếtkếđượcmộtm
ạchngoạivi,cắmvàoviđiềukhiểnđể
điềukhiểnnó,thìbạnchỉviệccắmnóvàocácchânđượcđưarangoàicủa
mạchtest(cácsocket,châncắm ).NhớrằngMassphảiđược
nốichungtrong
tấtcảcácmạchđiệntử.Mộtsốmạchđiệntửphứctạpdùngnhiềumasskhác
nhau,thìítnhấtcũngphảicómộtmasschungvớimasscủa
viđiềukhiển.

f)Cácbướchọctínhnăngviđiềukhiển

Saukhiùùcạccạclàmnhấpnháycáiđènled,theomộtsựhướngdẫnnào
đó,thậmchílàcopyandpaste,nhưngcáiđènnónhấpnháy,chứngtỏbạn
làmtốtmọ
iviệctừđầuđếnkhichínhthứcbắtđầuhọcviđiềukhiển.

Hãytiếnhànhcácbàitậpsau:

‐Họccácthanhghiđặcbiệt,bảnđồbộnhớ(memorymap)(họclýthuyết)
‐Họ
ccáchxuấttrêntừngchânviđiềukhiển(bàitậptắtmởđènled)
‐Họcviếthàmdelay(làmđènnhấpnháy)
‐Đènnhấpnháydùngtimer
‐Bấmmộtnút,đènbật/tắt(nhập
port,nhậptrêntừngchân,dùngngắtngoài)
‐Điềukhiểnđộngcơ(PWM)
‐Đọcencoder(Capture/Comparator)
‐ĐọcADCbằngcáchxoaybiếntrở
‐GiaotiếpRS232
‐GiaotiếpI2C

4)Kết
luận:

Tôidànhthờigianviết bàiviếtnày,khôngmongmuốngìhơnlàgiúpcácbạn
sinhviênmớihọc,mớibắttaylàmquenvớiviđiềukhiểncóm ộtcáinhìn
tổng
quátbanđầuvàcómộtđịnhhướngrõràngchoviệchọctậpcủamình.
Cánhântôicũngtừnglàngườimớihọc,vàbấtquáthìtôichỉhọctr ướccác
bạn
mộtvàinăm.Đếnbâygiờtôikhôngcòndùngviđiềukhiểnvàlậptrình
cho viđiều khiển nhiều nữa, nhưng tôi cũng muốn chia sẻ những kinh
nghiệmcủatôikhibắt
đầuhọcđếnkhilàmđượcmộtsốviệchữuíchbằngvi
điềukhiển,đếnchocácbạn.Hyvọngcácbạnbắtđầuhọc,vàhọctậpmau
tiếnbộ.

Nếu
cácbạncónhữngthắcmắcgìvềviđiềukhiểnMicrochipPIC,cácbạncó
thểemailtheođịachỉ




hoặcthamdựvàodiễnđàn

www.picvietnam.com


Chúcmọiđiềutốtlành!


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status