Chế đụ EUSART khụng đồng bộ.

Một phần của tài liệu Thiết kế bộ điều khiển PID số trên nền vi điều khiển PIC năm 2014 (Trang 66)

Chế độ khụng đồng bộ được chon bằng cỏch xúa bit SYNC (TXSTA<4>).

Trong

chếđộnày ,EUSARTsử dụngkhungdữ liệuchuẩn Non-Return-to-Zero

(NRZ)(một

bitStart,tỏm hoặcchớnbitdữliệuvà mộtbitStop).Thụngthườngkhungdữ liệ uđược

dựng phổ biến nhất là 8 bits. Trờn một chip, một bộ phỏt tốc độ 8-bit/16- bit Baud

đượcsửdụngđểtạotốcđộchuẩn từbộdaođộng.

Trong EUSART thỡ bit truyền hoặc nhận đầu tiờn là bit cú trọng số thấp n hất. Sự

truyền và nhậntrong EUSART làchức năngđộc lậpnhưng sửdụng khung dữ

liệu và

tốcđộbaudlàgiốngnhau.Bộphỏt tốcđộbaudsinhratốc độxungnhịpgấp x

16 hoặc

x64 tốc độ thay đổi bit phụ thuộc vào bit BRGHvà bit BRG16 (TXSTA<

BAUDCON<3>). Bit chẵn lẻ khụng được cung cấp bởi phần cứng nhưng cú thể cài

đặttrongphầnmềmvàđượclưunhưbitdữliệuthứ9.

Khi chế độ khụng đồng bộ hoạt động, module EUSART bao gồm nhữn

g thành phầnquantrọngsau: •Bộphỏttốcđộbaud. •Mạchtạomẫu. •Truyềnkhụngđồngbộ. •Nhậnkhụngđồngbộ. •Tựđộngkớchhoạtkớtựngắtđồngbộ. •Truyền12bitkớtựngắt. •Tựđộngdũtốcđộbaud. CHẾĐỘTRUYỀNKHễNGĐỒNGBỘEUSART.

Sơ đồ khốitruyềnEUSART trong hỡnh 18-3.Trung tõm của khốitruyền

là thanh

ghidịch truyền (nối tiếp)(TSR).Thanhghi dịch chứadữ liệutừ thanhghi đệm truyền

đọc /ghi TXREG. Thanh ghi TXREG nạp dữ liệu từ phần mềm.Thanh ghi dị

ch TSR

sẽkhụngnạpdữ liệuchođếnkhibitStopcủa lầnvừanạpđượctruyềnxong.N gaykhi

bitStopđượctruyềnxong, thanhghidịch TSRđượcnạpgiỏ trịmớitừ thanhg hiđệm

TXREG(nếuđượcchophộp).

Khi thanh ghi đờm truyền TXREG truyền dữ liệu cho thanh ghi dịch TSR

(xảy ra

trong TCY), thỡ thanh khi TXREG sẽ trống và cờ ngắt truyền TXIF (PIR1<4 >) được

set. Đõy là ngắtcú thể cho phộphoặc khụngcho phộpbằng cỏchset hoặcxúa bitcho

phộp ngắt TXIE (PIE1<4>).bit TXIF will besẽ được set dự cho trạng thỏi của bit

TXIE như thế nào; nú khụng thể xúa trong phần mềm. bit TXIF cũng khụng t

hể xúa

ngay lập tức khi dữ liệu đang nạp trờn thanh ghi TXREG, nhưng nú trở nờn

hợp lệ

trongchukỡ lệnhthứhaisaulệnhvừa nạp.Kiểmtrabit TXIFngay saukhinạp lạigiỏ

trichothanhghiTXREG.

Trongkhi TXIFxỏc địnhtrạng thỏi thanh ghi TXREG,một bitkhỏc làbit TRMT

(TXSTA<1>),chỉratrạngthỏi củathanhghidịch TSR.bitTRMTlàbitchỉđư ợcđọc

và núđược setkhi thanh ghi TSRtrống rỗng. Khụngcú ngắt logic từ bit này vỡ vậy

người sử dụng phảikiểm tra bit này để xỏc địnhtrạng thỏi của thanh ghi TSR nếu nú

trống.

Đểđặtchếđộtruyềnkhụngđồngbộcúcỏcbướcsau:

1. Khởi tạo cho thanh khi SPBRGH:SPBRG để cú tốc độ baud tương ứn

g . Đặt

hoặc xúa bit BRGH và bit BRG16, cần thiết , để đạt được tốc độ bau

d mong

muốn.

PhạmVănCường- HồngVănQũn.Lớp ĐKTĐ1-K49

43

ViđiềukhiểnPic iểnPic

2. Cho phộp cổng khụng đồng bộ nối tiếp bằng cỏch xúa bit SYNC, và

đặt bit SPEN.

3.Nếumuốncú ngắt,setbitchophộpTXIE.

4.Nếu truyền khungdữ liệu 9 bit, set bittruyền TX9. Cúthể được sử dụ

ngnhư

bitđịachỉhoặcdữliệu.

5.ChophộptruyềnbằngcỏchsetbitTXEN, VàbitTXIFcũngsẽđượcset.

6. Nếu chọn truyền 9 bit trong khung dữ liệu ,thỡ bit thứ 9 sẽ được nạp vào bit

TX9D.

7.NạpdữliệutừthanhghiTXREG(bắt đầuquỏtrỡnhtruyền). 8.Nếusửdụngngắt,thỡphảiđảmbảorằnghaibit GIEvàPEIE trongthanhghi INTCON(INTCON<7:6>)đĩđượcset.

CHẾĐỘNHẬNKHễNGĐỒNGBỘEUSART.

Sơđồkhốinhậnlàkhốitronghỡnh18-6.Dữliệuđượcnhậntrờn chõn RX

đưa tớikhối khụiphụcdữ liệu. Khốikhụi phụcdữ liệu thực tếcú tốc độdịch c ao gấp

16lầntốcđộbaud,vỡvậy khốinhậnhoạt độngở tốcđộbithoặctầnsốdao độn g.Chế

độnàythườngđượcsửdụngtronghệthốngRS232. Cỏcbướcthiếtlậpchếđộnhậnkhụngđồngbộ:

1.Khởitạochothanh ghi SPBRGH:SPBRG để cútốcđộbaudthớchhợp.s

ethoặc

xúabitBRGHvà BRG16đểcú đượctốcđộbaudmongmuốn.

2. Cho phộp cổng khụng đồng bộ nối tiếp bằng cỏch xúa bit SYNC, và

set bit SPEN.

3.Nếumuốncúngắt,thỡsetbitchophộpngắt RCIE. 4.Nếumuốnnhõnkhungdữliệu9bitthỡsetbit RX9. 5.Chophộpquỏtrỡnhnhậnbằngcỏchset bitCREN.

6. Cờ bỏo nhõn RCIFsẽ được set khi quỏ trỡnh nhận hồn thành và sẽ xu

ất hiện

mộtngắt nếunhưbitchophộpngắtnhậnRCIEđĩđượcset.

7.Đọcthanh ghiRCSTAđểlấy bitthứ9(nếunhậnlà9bit)và xỏcđịnhlỗi đĩ xảy

ratronglỳcnhõn.

8.Lấy8bitdữliệucũnlạibằngcỏchđọcthanhghiRCREGregister.

9. Nếu cú lỗi trong quỏ trỡnh nhận thỡ xúa lỗi bằng cỏch xúa bit cho phộ

p nhận

CREN.

10. Nếu sử dụng ngắt thỡ phải đảm bảo rằng cỏc bit GIEvà PEIE trong th

anh ghi

INTCON(INTCON<7:6>)phảiđượcset.

PhạmVănCường-Hồng VănQũn.Lớp ĐKTĐ1-K49

44

ViđiềukhiểnPic iểnPic

THIẾTLẬPCHẾĐỘ9BITDềĐỊACHỈ.

Chếđộnàythườngđượcsửdụngtronghệthống RS-485.

Thiếtlậpchochếđộnhõnkhụngđồngbộcú dũđịachỉ:

1.Khởitạochothanhghi SPBRGH:SPBRGđểcú tốcđộbaudthớchhợp.seth

oặcxúa

bitBRGHvà BRG16đểcúđượctốcđộbaudmongmuốn.

2. Cho phộp cổng truyền khụng đồng bộ nối tiếp bằng cỏch xúa bit SYNC và

set bit SPEN.

3.Nếu cầnsửdụngngắtthỡsetbitRCENvà chọnmứcđộưutiờnmongmuốnb

ằngbit RCIP.

4.SetbitRX9đểchophộpnhận9bit. 5.Setbit ADDENđểchophộpdũđịachỉ.

6.Chophộpnhõnbằngcỏchset bitCREN.

7.BitRCIF sẽđượcsetkhikhiquỏ trỡnhnhậnhồnthành. Ngắtsẽđượcxỏcn

hậnnếu

bitRCIEvàbitGIE bitsareseđượcset.

8.Đọcthanh ghiRCSTAđểxỏcđịnhlỗitrongquỏtrỡnhnhận,hoặcđọcbitdữ l iệuthứ

9(nếucúthểdựng).

9.Đọcthanhghi RCREGđểxỏcnếuthiếtbịlàđịachỉ. 10.Nếucú lỗithỡxúabitCREN.

11. Nếuthiết bịđĩ xỏc địnhđượcđịa chỉ,xúa bitADDENvàcho phộpnhõntấ t cả dữ

liệuvàođệmvàngắt CPU.

TỰĐỘNGKÍCHHOẠTKÍTỰNGẮTĐỒNGBỘ.

Trongsuốtchếđộsleep,tấtcả cỏcxungcủa chếđộEUSARTbịtreo.Bởi vỡvậy ,

bộphỏttốcđộbaudkhụnghoạtđộngvànhõnmột bytekhụngthểthựchiệnđư ợc.Đặc

điểm của chế độ kớch hoạt tự động cho phộp kớch hoạt hoạt động trở lại trờn đường

RX/DTtrongkhiEUSARThoạtđộngtrongchếđộkhụngđồngbộ.

Đặc điểm của kớch hoạt tự động được cho phộp hoạtđộng bằng việc set bi

t WUE

(BAUDCON<1>). Một khi set bit này, thụng thường nhận liờn tiếp trờn R

X/DT là

khụngthểvà EUSARTcũn lạitrong trạngthỏi Idle,sự kiện kớchhoạtđộc lập vớichế

độcủaCPU.Sự kiệnkớchhoạtbaogồmkhixuấthiệnsườnxuốngtrờnđườngR

(Nútrựngvớikớtựngắtđồngbộvà kớtựkớch hoạtgiaothứcLIN)

PhạmVănCường- HồngVănQũn.Lớp ĐKTĐ1-K49

45

ViđiềukhiểnPic iểnPic

Sausự kiệnkớchhoạt,modulesẽ phỏtramột ngắtRCIF.Ngắtnàyđượcph ỏtđồng

bộvớixungQtrongchếđộhoạtđộngbỡnhthường.

(hỡnh 18-8) vàchế độkhụngđồng bộ, nếuchớphoạtđộng trongchế độ sleep(hỡnh

18-9).ĐiờukiệnxảyrangắtlàphảixúabằngcỏchđọcthanhghiRCREG.

Bit WUE đượctựđộngxúamộtkhitrờn đườngRXxuấthiệnsườn lờnsau

sựkiện

kớch hoạt ngắt. Vào thời điểmđú, module EUSART trong chế độIdle và trở l

ại hoạt

độngbỡnhthường.Tớnhiệusửdụngtrongsựkiệnngắtđồngbộlàsựkiềntràn.

Phảithõntrọngkhisửdụng Auto-Wake-up

Khimàchứcnăngtựđộngkớchhoạtđượcnhậnbiếtbởisườnlờntrờnchõn RX/DT,

thụng tin về thay đổi trạng thỏi trước khi bit Stop là tớn hiệu lỗi End-of- Character

(EOC)vànguyờn nhõnlàlỗidữliệuhoặclỗikhungtruyền.Đểlàmviệcđỳngt hỡkớtự

truyềnbanđầuphảilà ‘0’s.Đõy cúthểlà00h(8bits) theiochuẩnthiếtbịRS-

232hoặc

000h(12bits)theochuẩn LIN.

Bộdaođộngbắtđầu hoạtđộngcũngphảiđược xemxột,đặcbiệtlàứngdụn gtrong

việc sử dụng bộdao độngbắt đầu ngưnghoạtđộng (i.e.,XT or HS mode).Kớ tự ngắt

đồngbộ(tớn hiệukớch hoạt) phải đủ dài vàsau đúphảichophộpđủ thờigian để cho

phộpbộdaođộngbắtđầuvàcungcấpgiỏtrịkhởitạochoEUSART.

Cầnphảiđặcbiệtthậntrọngkhisửdụngbit WUE.

Thời giancủa sự kiệnbit WUE và bitRCIF cú thểbịrối loạn khinúxỏc đ ịnhgiỏ

trịcủadữliệunhậnwhenitcomestodetermining thevalidity of

received data.Như đĩ lưuý,setbit WUE khisử dụngEUSART .Bit WU

Eđược

xúa sau khi trờn chõn RX/DT xuất hiện sườn lờn.Điều kiện của ngắt là núph ải được

xúa bằng cỏchđọc thanh ghi RCREG. Thụngthường ,dữ liệu trong RCREG s ẽlà dữ

liờugiảvànờnđượcbỏ.

Thực tế là bit WUE đĩ được xúa (hoặc vẫn được set) và cờ RCIF được s

et nờn

khụngđượcsử dụngnhưdữ liệubanđầu trongthanhghiRCREG.Ngườisử dụ

ngnờn

xem xộtcỏctriểnkhaiphươngphỏpsongsongtrong firmware(làphần mềmnh ớtrong

bộnhớchỉđọc)để nhậndữliệunguyờn vẹn.

Đểđảm bảo rằngkhụngbị mấtdữ liệu, kiểmtra bit RCIDL đểxỏc nhậnrằ

ng một

hoạtđộngnhậndữliệulàkhụngxảyratrongquỏtrỡnhnày.Nếuhoạtđộngnhận khụng

xảyrathỡbitWUEcúthểsauđúđượcđặttrướckhi vàochếđộ Sleep

KÍTỰNGẮT LIấNTIẾP

Module EUSART cú thể gửikớ tự ngắt liờn tiếp đặc biệt . Kớ tự ngắt này c ần cho

chuẩn LIN. Kớ tự ngắt truyền bao gồm bit Start theo sau là 12 bit và một b

it Stop.

Khung kớ tự ngắt được gửi bất cứ khi nào bit SENDB và bit TXEN (TXSTA

<3> và

TXSTA<5>) được set trong khi thanh ghi dịch truyền được nạp dữ liệu . Chỳ ý rằng

giỏtrịdữ liệughivàothanh TXREGsẽđược bỏqua vàtấtcảcỏcbit ‘0’s(kớh iệucho

cỏc bit) sẽ được truyền. Bit SENDB sẽ được tự động reset bởi phần cứng b

it Stop

tươngứng đượcgửi. Điềunày chophộpngười sửdụng nạplạigiỏ trị truyềnFI

FOvới

bytetruyềntiếptheosaukớtựngắt(thụngthườngkớtựđồngbộchỉrừtrongLI

N).Chỳ

ýrằnggiỏ trị dữ liệughivào TXREG chokớ tựngắtđược bỏqua.Cỏch viếtđ ơngiản

chỉphụcvụchocỏcmụcđớch khởiđộngđơngiản.

Bit TRMT để chỉ ra rằng khi quỏ trỡnh truyền là khụng hoạt động hoặc

chế độ

Idle,giốngnhưquỏ trỡnhtruyềnbỡnhthường .Xemhỡnh18-10cho thờigian củachuỗi

kớtựngắt.

Ngắtvàtruyềnđồngbộliờntiếp.

PhạmVănCường- HồngVănQũn.Lớp ĐKTĐ1-K49

ViđiềukhiểnPic iểnPic

Sau khicúngắtthỡ chuỗiliờn tiếpsẽđược gửibắtđầubằngkhungthụngđi ệp,sau

đú là byte n Auto-Baud Sync . Đõy một số thành phần chớnh thụng thường c

ủa một

LINbus.

1.CấuhỡnhEUSARTđểcúchếđộmongmuốn.

2.SetbitTXENvàbitSENDBđểđặtchếđộkớtựngắt.

3.NạpvàoTXREGmộtkớtựgiảđểbắtđầutruyền(giỏtrịnàysẽđượcloạibỏ) .

4.Ghi ‘55h’vàoTXREGđểnạpkớtựđồngbộvàođệmtruyềnFIFO.

5.Saukhingắtđượcgửi,bitSENDBđượcresetbởiphầncứng.Kớtựđồngbộ bõygiờ

đượctruyềntrongchếđộcấuhỡnhsẵnrồi.

Khi thanh ghiTXREG trở nờn rỗng, đượcbiết bởibit TXIF, byte dữ liệu tiếp t heo cú

thểghivàoTXREG.

NHẬNMỘTKÍTỰNGẮT.

Module USART mở rộng cú thể nhận một kớ tự ngắt bằng haicỏch. Phươn

g phỏp

đầu tiờn là cấu hỡnhtốc độbaudbằng 9/13 tần số bỡnhthường. Điều này cho p hộp bit

Stop truyềnđỳng vị trớ lấy mẫu(13 bits cho bitStart chốngngắt và 8 bitdữ l iệu cho

dữliệubỡnhthường).

Phươngphỏpthứ2sửdụngđặcđiểmcủatựđộngkớch hoạt( auto-wake-up)

mụtả

trong mục 18.2.4 “Auto-Wake-up on Sync Break Character”. Bởi việc cho

phộp đặc

điểm này, EUSART sẽ lấy mẫu ở hai lần truyền tiếp theo trờn RX/DT,bởi

vỡ ngắt

RCIFvànhậndữliệuởbytetiếptheosaumột ngắtkhỏc.

Một phần của tài liệu Thiết kế bộ điều khiển PID số trên nền vi điều khiển PIC năm 2014 (Trang 66)

Tải bản đầy đủ (DOCX)

(159 trang)
w