Anong mga dokumento ang kailangan para sa pagpaparehistro 2. Pagrehistro (digital technology)

2.3.3. Nagrerehistro

Ang mga microcircuits 564IR1 at K176IR10 ay labing-walong bit na shift register (Larawan 228), na nahahati sa apat na seksyon na may karaniwang input C para sa pagbibigay ng mga pulso ng orasan.

Ang seksyon na may input D1 ay apat na bit at may output lamang sa huling, ikaapat na bit. Ang seksyon na may input D5 ay limang-bit, may mga output sa ikaapat (8) at ikalimang (9) na digit. Ang mga seksyon na may mga input na D10 at D14 ay katulad ng mga tinalakay sa itaas. Ang impormasyon ay naitala mula sa mga input D1, D5, D10, D14 at ang paglilipat nito ay nangyayari ayon sa pagbaba ng mga pulso ng positibong polarity na ibinibigay sa input C. Ang mga tampok ng disenyo ng mga trigger ng K176IR10 microcircuit ay nangangailangan na ang tagal ng mga pulso ng orasan ay hindi lalampas 30 μs.

Chip K176IR2 (Larawan 228) - rehistro ng shift. Mayroon itong dalawang magkaparehong independiyenteng seksyon ng apat na digit. Ang bawat seksyon ay may tatlong input - input R para sa pagtatakda ng mga trigger sa zero


estado, ang pag-install ay nangyayari kapag ang log ay isinumite. 1 sa input na ito, input C, ayon sa mga pagtanggi ng mga pulso ng negatibong polarity sa input na ito, ang impormasyon ay isinulat mula sa input D hanggang sa unang bit ng rehistro at ang impormasyon ay inililipat patungo sa pagtaas ng mga numero. Upang makakuha ng isang shift register na may malaking bilang ng mga bit, maaari mong ikonekta ang mga input ng mga seksyon ng D ng mga rehistro sa mga output ng 4 na nakaraang mga bit at pagsamahin ang mga input ng parehong pangalan na C at R sa bawat isa.

Ang Microcircuit K176IRZ (Fig. 228) ay isang four-bit shift register. Ang pagtatala ng impormasyon mula sa input D0 at ang paglilipat nito ay nagaganap ayon sa pagbaba ng mga negatibong polarity pulse na ibinibigay sa input ng C1 sa log. 0 sa input S. Ang parallel na pagtatala ng impormasyon mula sa mga input D1 - D4 ay nangyayari ayon sa pagbaba ng mga pulso ng negatibong polarity sa input C2 sa log. 1 sa input S. Kapag pinagsama ang input C1 at C2, pipiliin ang shift o write mode gamit ang input S. Kung pinagsama ang input C1 at S, walang espesyal na control signal ang kailangan.

Ang pagkonekta ng mga input D1 - D3 na may mga output 2-4 ay ginagawang isang reversible shift register ang chip.

Microcircuit K561IR6 - multifunctional na eight-bit shift register (Fig. 228). Ang microcircuit ay may dalawang grupo ng mga output ng impormasyon - A1 - A8 at B1 - B8, ang bawat isa ay maaaring maging input o output para sa parallel na pagsulat at pagbabasa, isang input para sa sequential recording ng impormasyon D, control input P/S, A/S, A/B, EA, input para sa pagbibigay ng mga pulso ng orasan C. Ang mga signal sa mga input na P/S, A/S, A/B, EA ay piliin ang operating mode ng microcircuit. Ang P/S (parallel/serial) input ay nangingibabaw. Sa log. 0 sa input na ito, anuman ang estado ng iba pang mga input, ang rehistro ay napupunta sa mode ng sequential recording ng impormasyon mula sa input D ayon sa pagbaba ng mga negatibong polarity pulse sa input C at inililipat ito sa kanan (pababa sa Fig. 228 ). Sa log. 1 sa P/S input, ang rehistro ay napupunta sa parallel recording mode. Ang pag-record ay isinasagawa alinman sa pamamagitan ng pagbaba ng mga pulso ng negatibong polarity sa input C (kasabay na pag-record), habang sa input A/S (asynchronous/synchronous) dapat mayroong isang log. 0, o sa pamamagitan ng mga pulso ng positibong polarity sa A/S input (asynchronous recording), habang sa C input ay dapat mayroong log. 0 o log. 1, ngunit ang signal ay dapat na maayos. Alin sa mga input group A o B ang input at alin ang output ay tinutukoy ng signal sa input A/B -

kung ang input na ito ay log. 1, ang mga input ay mga pin A1 - A8, mga output B1 - B8, na may log. 0 sa input A/B input - B1 - B8, output A1 - A8. Anuman ang signal sa input A/V log. 0 sa input EA disconnects pin group A mula sa register flip-flops. Kung sa input A/V log. 0, ang parallel recording ay posible sa grupo B, ngunit ang pagbabasa sa grupo A ay imposible kung ang A/B input ay log. 1 - ang pagbabasa mula sa B ay ginaganap, ngunit ang pagsusulat mula sa pangkat A ay hindi posible, at kapag ang mga signal sa A/S at C input ay nagbago, ang estado ng rehistro ay nag-trigger ay hindi nagbabago.

Ang pagpili ng mga output kapag sunud-sunod na nagre-record ng impormasyon mula sa input D ay ginagawa din ng mga signal sa input A/B at EA - na may log. 1 sa input A/B at isang arbitrary na signal sa input EA, ang mga output ay pangkat B, na may log. 0 sa input A/B at log. 1 sa input EA outputs - pangkat A, na may log. 0 sa mga input na A/B at EA, ang parehong mga grupo A at B ay nasa mataas na impedance na estado, ang pagbabasa mula sa rehistro ay imposible.

Kapag kumokonekta ng ilang K561IR6 microcircuits, upang madagdagan ang bilang ng mga bit, dapat pagsamahin ang mga control input ng parehong pangalan at input C ng microcircuits. Kung kinakailangan upang patakbuhin ang ilang mga microcircuits sa shift mode, ang mga input D ng kasunod na microcircuits ay dapat na konektado sa mga output A8 o B8 ng mga nauna, habang sa panahon ng shift kinakailangan na ilipat ang kaukulang mga grupo ng mga pin sa output mode ; kapag gumagamit ng isang microcircuit, hindi ito kinakailangan.

Ang K561IR6 microcircuit ay maaaring malawakang magamit sa mga kagamitan sa iba't ibang uri ng mga opsyon - mula sa pinakasimpleng unidirectional buffer hanggang sa isang unit para sa pag-iimbak at paglipat ng data na darating sa serial o parallel code mula sa dalawang direksyon. Ang ilang mga halimbawa ng paggamit ng microcircuit na ito ay ibinigay sa talahanayan. 8, ipinapahiwatig nito ang mode ng aplikasyon, mga input at signal na dapat ayusin upang matiyak ang mode na ito, ang direksyon ng paghahatid ng signal at ang mga signal na ibinibigay sa mga ginamit na control input ng microcircuit. Tanda<<Х>>nagsasaad na ang isang arbitrary na signal ay maaaring ibigay sa input na ito, ang sign na "P" - upang magbigay ng isang pulso ng positibong polarity, ang sign na "1" - na-trigger ng isang pagbaba sa isang pulso ng negatibong polarity. Tanda ay nagpapahiwatig ng mataas na estado ng output ng impedance.

Chip K561IR9 - four-bit shift register (Fig. 228). Mayroon itong apat na output at ang mga sumusunod na input: i-reset ang input R,

input para sa pagbibigay ng clock pulses C, input para sa pagpili ng mode S, input para sa pagpili ng signal polarity P, input para sa pagbibigay ng impormasyon para sa sequential recording J at K at mga input para sa pagbibigay ng impormasyon para sa parallel recording Dl, D2, D3, D4.

Ang input R ay nangingibabaw - kapag ang isang log ay inilapat dito. 1, anuman ang estado ng iba pang mga input, ang lahat ng mga flip-flop ng microcircuit ay nakatakda sa 0. Kung ang input R ay isang log. Oh, posibleng magsulat ng impormasyon sa mga nag-trigger ng microcircuit. Sa log. 1 sa mode selection input S, sa pagbaba ng isang pulso ng negatibong polarity sa input C, ang impormasyon ay isusulat nang kahanay sa register flip-flops mula sa inputs Dl - D4. Kung ang input S ay log. Oh, habang bumababa ang pulso ng negatibong polarity sa input C, ang impormasyon mula sa mga input na J at K ay isusulat sa isang trigger na may output 1 at ang impormasyon sa natitirang mga trigger ay lilipat patungo sa pagtaas ng mga numero ng output. Ang impormasyong isusulat sa unang trigger ay tinutukoy ng estado ng J at K input bago ilapat ang decay pulse ng negatibong polarity sa C input. Kung pagsasamahin mo ang J at K input, ang impormasyong makukuha sa pinagsamang input na ito ay itatala. Kung ang isang log ay inilapat sa input J. 0, upang ipasok ang K - log. 1, ang impormasyon sa unang trigger ay hindi magbabago sa pagbaba ng negatibong polarity pulse sa input C. Sa log. 1 sa input J at log. 0 sa input K, ang unang trigger ng microcircuit ay napupunta sa counting mode at binabago ang estado nito sa kabaligtaran para sa bawat pagbaba sa negatibong polarity pulse sa input C.

Ang polarity ng mga signal sa mga output 1-4 ng rehistro ay maaaring kontrolin sa pamamagitan ng paglalapat ng control signal sa input ng P - sa log. 1 sa input na ito, ang mga output signal ay ibinibigay sa direktang code, na may log. 0 - baligtad.

Upang bumuo ng isang shift register na may higit sa apat na bits, ito ay sapat na upang ikonekta ang mga output ng 4 microcircuits ng pinakamababang bits na may pinagsamang input J at K ng microcircuits ng susunod na bits (Fig. 229). Ang mga input C, R, S ng iba't ibang microcircuits ay dapat na konektado sa isa't isa, at isang log ay dapat ilapat sa mga P input. 1.

Upang bumuo ng isang reversible shift register, ang mga input ng impormasyon ng microcircuits J, K, Dl - D4 ay dapat na konektado sa mga output alinsunod sa Fig. 230, mga input C, R, S, P - alinsunod sa Fig. 229. Sa log. 0 sa pinagsamang input S magkakaroon ng paglilipat ng impormasyon patungo sa pagtaas ng mga numero ng output (mula sa itaas hanggang sa ibaba ayon sa diagram sa Fig. 230), na may log. 1 - pababa (mula sa ibaba hanggang sa itaas). Imposible ang parallel recording ng impormasyon sa naturang rehistro.

Microcircuit operating mode

Mga nakapirming signal

Kontrolin ang mga signal

Direksyon ng paghahatid ng signal, katayuan ng output

Unidirectional buffer

EA=1, A/B=1. A/S=1, P/S=1, C=X

EA=1, A/B=0, A/S=1, P/S=1, C=X

Unidirectional buffer na may mataas na impedance output

A/B=0, A/S=1, P/S=1, C=X

Bidirectional Buffer

Storage register na may asynchronous na pagsulat at mga output na lumilipat sa mataas na impedance na estado

EA=A/B=1.A/S=P

Ang rehistro ng imbakan na may kasabay na pagsusulat at pagpapalit ng output sa mataas na estado ng impedance

EA=A/B=1.C=I

EA=A/B=0. С=I

A/B=0, A/S=0,P/S=1

Shift register na may sequential write, parallel read

EA=1, A/B=0, A/S=X, P/S=0

EA=X, A/B=1, A/S=X, P/S=0

Magrehistro gamit ang asynchronous parallel writing at sequential reading

A/S=P/S= P, S=X

Magrehistro gamit ang magkasabay na parallel writing at sequential reading

EA=1,A/B=1,A/S=0

P/S=1¦ P/S=0¦ C=I P/S=1¦ P/S=0¦

EA=1,A/B=0,A/S=0





Ang Microcircuit 564IR13 (Fig. 231) ay isang espesyal na rehistro na idinisenyo para sa pagbuo ng mga analog-to-digital converter na tumatakbo sa prinsipyo ng sunud-sunod na approximation, na may bilang ng mga bits hanggang 12. Ang logic ng microcircuit ay ganap na naaayon sa pagpapatakbo ng K155IR17 microcircuit (tingnan ang Fig. 60-63).

Ang KR1561IR14 microcircuit (Fig. 228) ay isang four-bit information storage register na may kakayahang ilipat ang mga output sa isang high-impedance na estado. Ang lohika ng operasyon nito ay kasabay ng pagpapatakbo ng K155IR15 microcircuit (tingnan ang Fig. 57,58).

Ang Microcircuit KR1561IR15 (Fig. 228) ay isang unibersal na four-bit shifting relay

hyster, na nagbibigay-daan sa parehong parallel recording ng impormasyon at paglipat nito sa kanan at kaliwa, ito ay gumagana sa parehong paraan tulad ng K555IR11 (tingnan ang Fig. 50, 51).

Kapag ang isang cashier ay nagbebenta ng isang bote ng malakas na alak, sa EGAIS ito ay kinuha mula sa balanse ng pangalawang rehistro. Ang panuntunang ito ay may bisa mula noong Oktubre 1, 2016. Bilang isang resulta, kung ang dami ng mga produkto sa pangalawang rehistro ay zero, ang balanse nito ay napupunta sa negatibo, iyon ay, sa pagtatapos ng araw ng trabaho, ang cashier ay may negatibong balanse sa pangalawang rehistro. Upang maiwasan ito, kailangan mong ilipat ang mga produkto mula sa unang rehistro hanggang sa pangalawa.

Paano maglipat ng mga kalakal

Sa seksyong "Aking Mga Produkto", piliin ang "Ilipat sa 2nd Register", pagkatapos ay "Ilipat ang Mga Produkto". Kung ang balanse ay hindi na-update sa loob ng mahabang panahon, awtomatiko itong gagawin ng serbisyo. Bilang resulta, makikita ng user ang isang listahan ng mga produkto kung saan may negatibong balanse ang register No. 2.

Kapag nagsasagawa ng paglilipat, ipapakita ang mga invoice kung saan natanggap ang mga kalakal. Awtomatikong pinipili ng system ang pinakamaagang mga dokumento, dahil ang mga kalakal mula sa kanila ay malamang na naibenta na.

Dapat suriin ng user ang listahan at i-click ang button na Ilipat. Ipoproseso ng EGAIS ang data at kumpirmahin ang paglilipat - isasara ang negatibong balanse sa pangalawang rehistro.

Sa ngayon, pinahihintulutan ka ng serbisyo na maglipat ng eksaktong dami ng mga kalakal na kinakailangan upang masakop ang negatibong balanse. Sa ibang pagkakataon, plano ng mga developer na magdagdag ng kakayahang maglipat ng di-makatwirang halaga ng mga kalakal.


7.2 Mga rehistro ng paglilipat

7.2.1 FIFO Violation Event Register (FWEV)

bit 7
RXFIFO3
bit 6
RXFIFO2
bit 5
RXFIFO1
bit 4
-
bit 3
TXFIFO3
bit 2
TXFIFO2
bit 1
TXFIFO1
bit 0
-
RXWARN3-1 Reserve TXWARN3-1 Reserve
0 0 0 - 0 0 0 -
r - r -

TXWARN. Babala sa pagkagambala sa paghahatid. Itakda sa "1" kapag ang katumbas na pagpapadala ng FIFO endpoint ay lumampas sa limitasyon na tinukoy ng TFWL bit sa TXCx register at ang paghahatid mula sa kaukulang endpoint ay pinagana. Ang bit na ito ay na-clear kapag ang kondisyon ng babala ng paglabag ay na-clear, alinman sa pamamagitan ng pagsulat ng bagong data sa FIFO kapag ang FIFO ay na-clear, o sa pagkumpleto ng paglipat, tulad ng ipinahiwatig ng TX_DONE bit sa TXSx register.

RXWARN. Babala sa pagtanggap. Itakda sa "1" kapag ang katumbas na pagpapadala ng FIFO endpoint ay lumampas sa limitasyon na tinukoy ng RFWL bit sa rehistro ng EPCx. Na-clear ang bit na ito kapag na-clear ang kundisyon ng babala ng paglabag, alinman sa pamamagitan ng pagbabasa ng data mula sa FIFO o kapag na-clear ang FIFO.

7.2.2 FIFO Violation Mask Register (FWMSK)

Kapag ang katumbas na bit sa rehistro ng FWEV ay nakatakda, WARN sa rehistro ng MAEV ay nakatakda. Kapag na-clear, ang kaukulang bit sa rehistro ng FWEV ay hindi nagiging sanhi ng WARN na itakda.

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
Parehong bit na paglalarawan tulad ng sa FWEV register
0 0 0 0 0 0 0 0
r/w

7.2.3 Frame Number Significant Register (FNH)

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
M.F. UL RFC Nakareserba FN10-8
1 1 0 - 0 0 0
r r w/r - r

FN. Numero ng frame. Ito ang kasalukuyang natanggap na frame number sa huling SOF packet. Kung ang tamang numero ng frame ay hindi natanggap sa panahon ng 12060 bits (maximum na haba ng frame, FLMAX) ng nakaraang palitan, kung gayon ang numero ng frame ay artipisyal na tumaas. Kung ang dalawang magkasunod na frame ay napalampas o mali, ang kasalukuyang FN ay naka-freeze at ni-load ang numero ng frame mula sa SOF packet.

Kung ang mababang byte ng frame number ay binasa ng firmware bago basahin ang FNH register, kung gayon ang user ay aktwal na nagbabasa ng mga nilalaman ng buffer register, na naglalaman ng halaga ng tatlong frame number bits ng register na iyon noong ang mababang byte ay basahin. Ang tamang sequence para basahin ang frame number ay: FNL, FNH. Basahin ang mga operasyon para sa rehistro ng FNH, nang hindi muna binabasa ang rehistro ng Frame Number Low Byte (FNL), basahin ang aktwal na halaga ng tatlong hindi bababa sa makabuluhang bit sa numero ng frame. Sa pag-reset, ang FN ay nakatakda sa "0".

RFC. I-reset ang frame counter. Ang pagtatakda ng bit na ito ay nire-reset ang numero ng frame sa 0x0000, pagkatapos nito ay na-clear ng bit na ito ang sarili nito. Ang bit na ito ay palaging binabasa bilang "0".

UL. I-unlock ang bandila. Ang bit na ito ay nagpapahiwatig na hindi bababa sa dalawang frame ang natanggap nang walang inaasahang numero ng frame, o ang isang wastong SOF ay hindi natanggap sa loob ng 12060 bits ng oras ng pagdating. Kung nakatakda ang bit na ito, ang numero ng frame mula sa susunod na wastong packet ay mai-load sa FN. Kapag na-reset, nakatakda ang flag na ito sa "1".

M.F. Nawala ang bandila ng SOF. Ang bit na ito ay nakatakda kapag ang numero ng frame sa natanggap na SOF packet ay hindi katumbas ng inaasahang halaga, o kapag ang SOF ay hindi natanggap sa loob ng 12060 bits ng oras ng pagdating. Kapag na-reset, nakatakda ang flag na ito sa "1".

7.2.4 Frame Number Low Byte Register (FNL)

Ang rehistrong ito ay naglalaman ng mababang byte ng numero ng frame, tulad ng inilarawan sa itaas. Upang matiyak ang pare-pareho, ang pagbabasa ng mababang byte na ito ay nagiging sanhi ng tatlong frame number bits sa rehistro ng FNH na nakakabit habang binabasa ang rehistro. Ang tamang sequence para sa pagbabasa ng frame number ay: FNL, FNH. Sa pag-reset, ang FN ay nakatakda sa "0".

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
FN7-0
0 0 0 0 0 0 0 0
r

7.2.5 Functional Address Register (FAR)

Itinatakda ng rehistrong ito ang functional address ng device. Ang iba't ibang numero ng endpoint ay itinatakda nang paisa-isa sa pamamagitan ng endpoint control register.

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
AD_EN AD6-0
0 0 0 0 0 0 0 0
r/w r/w

AD. Address. Ang field na ito ay naglalaman ng 7-bit na functional na address na ginamit upang ipadala at matanggap ang lahat ng mga character na naka-address sa device.

AD_EN. Pagtugon sa resolusyon. Kapag ang bit ay nakatakda sa "1", ang mga bit AD6-0 ay ginagamit sa paghahambing ng address (tingnan ang Seksyon 6.2 para sa mga detalye). Kapag na-clear, hindi tumutugon ang device sa anumang karakter sa bus.

Tandaan: Kung ang DEF bit sa checkpoint 0 control register ay nakatakda, ang endpoint 0 ay tutugon sa default na address nito.

7.2.6 DMA Control Register (DMACNTRL)

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
DEN IGNRXTGL DTGL ADMA DMOD DSRC2-0
0 0 0 0 0 0 - 0
r/w r/w r/w r/w r/w r/w

D.S.R.C. Pinagmulan ng DMA. Ang field ng DMA Source bits ay naglalaman ng binary value na tumutukoy kung alin sa mga endpoint, 1...6, ang available upang suportahan ang DMA. Ang mga DSRC bit ay na-clear sa pag-reset. Ipinapakita ng talahanayan 7 ang mga setting ng bit ng DSRC.

Talahanayan 7. Paglalarawan ng DSRC bits

DSRC Numero ng endpoint
2 1 0
0 0 0 1
0 0 1 2
0 1 0 3
0 1 1 4
1 0 0 5
1 0 1 6
1 1 x Nakareserba

DMOD. DMA mode. Tinutukoy ng bit na ito kung kailan nangyari ang isang kahilingan sa DMA. Kung na-clear ito, lalabas ang kahilingan sa DMA kapag nakumpleto na ang paglipat. Para sa pagpapadala ng mga endpoint na EP1, EP3 at EP5, ang data ay ganap na naipadala, gaya ng ipinahiwatig ng TX_DONE bit (upang punan ang FIFO ng bagong ipinadalang data). Para sa pagtanggap ng mga endpoint na EP2, EP4 at EP6, ito ay ipinapakita ng RX_LAST bit. Kapag ang DMOD bit ay itinakda, ang isang DMA na kahilingan ay magaganap kapag ang katumbas na FIFO violation warning bit ay nakatakda. Ang DMOD bit ay na-clear sa pag-reset.

Ang kahilingan sa DMA mula sa endpoint ng pagpapadala ay isinaaktibo hanggang sa ma-clear ang estado ng kahilingan. Kung ang DMOD ay nakatakda sa "0", kung gayon ang mga kahilingan sa DMA ay magaganap hanggang sa mabasa ng firmware ang kaukulang rehistro ng status ng pagpapadala (TXSx), sa gayon ay na-clear ang TX_DONE bit, o kung ang TX_LAST bit sa transmit command register (TXCx) na naka-install ng hardware- ipinatupad na software. Kung ang DMOD bit ay nakatakda sa "1", pagkatapos ay ang mga kahilingan sa DMA ay magaganap hanggang sa mga estado ng babala ng paglabag sa FIFO na sanhi ng alinman sa pagpapadala ng sapat na byte sa endpoint o kung ang TX_DONE bit ay nakatakda dahil sa isang paglilipat ay na-clear.

Ang kahilingan sa DMA mula sa endpoint ng pagpapadala ay isinaaktibo hanggang sa ma-clear ang estado ng kahilingan. Kung ang DMOD ay nakatakda sa "0", ang mga kahilingan sa DMA ay magaganap hanggang sa mabasa ng firmware ang katumbas na receive status register (RXSx), at sa gayon ay na-clear ang RX_LAST bit, o kung ang FIFO ay nagiging walang laman dahil sa sapat na mga cycle ng pagbabasa. Kung ang DMOD bit ay nakatakda sa "1", pagkatapos ay ang mga kahilingan sa DMA ay magaganap hanggang sa ma-clear ang mga estado ng babala ng paglabag sa FIFO, o kung ang FIFO endpoint ay magiging walang laman dahil sa sapat na mga siklo ng pagbasa.

Kung ang DMOD ay nakatakda sa "0" at ang endpoint at DMA ay pinagana, ang isang kahilingan sa DMA ay magaganap hangga't ang firmware ay nagbabasa ng kaukulang TXSx o RXSx na rehistro, sa gayon ay na-clear ang TX_DONE/RX_LAST bit. Kung ang DMOD bit ay nakatakda sa "1" at ang endpoint at DMA ay pinagana, ang kahilingan sa DMA ay magaganap hangga't ang FIFO violation alert ay nakasaad.

ADMA. Awtomatikong DMA. Ang pagtatakda ng bit na ito ay awtomatikong nagbibigay-daan sa napiling tumanggap o magpadala ng endpoint. Bago i-enable ang ADMA mode, dapat i-clear ang DEN bit sa DMA Control Register (DMACNTRL). Gumagana ang ADMA mode hangga't nakatakda ang anumang bit maliban sa NTGL sa DMA Event Register (DMAEV). Upang masimulan ang ADMA mode, dapat i-clear ang lahat ng bit maliban sa NTGL sa DMAEV register.

Para sa mga operasyon ng pagtanggap, awtomatikong naka-on ang receiver; Kapag natanggap ang isang packet, inililipat ito sa memorya sa pamamagitan ng DMA.

Para sa mga operasyon ng paglilipat, ang data packet ay ipinapadala sa pamamagitan ng DMA mula sa memorya; awtomatikong nag-on ang transmitter.

Kapag pumasok ang isang device sa ADMA mode, maaaring mawala ang anumang kasalukuyang endpoint state. Kung mayroon nang data sa FIFO, ito ay na-reset. Ang kasalukuyang estado ng RX_EN at TX_EN ay maaari ding magbago.

Inaalis ng pag-clear ng ADMA ang device sa ADMA mode. Maaaring mag-clear ang DEN sa parehong oras o mas bago. Kung sa parehong oras, pagkatapos ay ang lahat ng mga pagpapatakbo ng DMA ay hihinto kaagad at ang firmware ay dapat magpadala ng anumang natitirang data. Kung sa ibang pagkakataon, makukumpleto ng device ang anumang kasalukuyang operasyon ng DMA bago lumabas sa ADMA mode (tingnan ang paglalarawan ng DSHL bit sa DMAEV register).

DTGL. DMA switch. Ang bit na ito ay ginagamit upang matukoy ang katayuan ng mga pagpapatakbo ng ADMA sa pagsisimula. Sa pagsisimula, itinatakda ng firmware ang bit na ito sa "1" kung nagsisimula ito sa isang operasyon ng DATA1, at sa "0" kung nagsisimula ito sa isang operasyon ng DATA0.

Ang pagsulat ng bit na ito ay ina-update din ang NTGL bit sa DMAEV register.

IGNRXTGL. Hindi pinapansin ang RX switching. Kung ang bit na ito ay nakatakda, ang paghahambing sa pagitan ng NTGL bit sa DMAEV register at ang TOGGLE bit sa kaukulang RXSx register ay babalewalain sa panahon ng mga operasyon ng pagtanggap. Sa kasong ito, ang hindi pagkakatugma ng parehong mga bit sa panahon ng isang operasyon ng pagtanggap ay hindi titigil sa pagpapatakbo ng ADMA. Kung hindi nakatakda ang bit na ito, hihinto ang ADMA kung may kaunting mismatch. Pagkatapos ng pag-reset, ang bit na ito ay nakatakda sa "0".

7.2.7 DMA Event Register (DMAEV)

Ang mga bit sa register na ito ay ginagamit sa ADMA mode. Maaaring magdulot ng interrupt ang bits 0...3 kung hindi na-clear ang mga ito, kahit na hindi naitakda ng device ang ADMA mode. Hanggang sa ma-clear ang lahat ng mga bit na ito, hindi masisimulan ang ADMA mode. Awtomatikong natatapos ang ADMA mode kapag nakatakda ang alinman sa mga bit na ito.

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
Nakareserba NTGL Reserve DSIZ DCNT DERR DSHLT
- 0 - 0 0 - 0
- r - CoW CoW CoW CoW

DSHLT. Huminto ang software ng DMA. Ang bit na ito ay nakatakda kapag ang mga pagpapatakbo ng ADMA ay itinigil ng firmware. Ang bit na ito ay nakatakda lamang pagkatapos makumpleto ng DMA engine ang lahat ng kinakailangang operasyon sa paglilinis at bumalik sa idle state. Isinasagawa sa ilalim ng mga sumusunod na kondisyon:

  • Kung ang ADMA bit ay na-clear (at ang DEN ay nananatiling nakatakda). Sa kasong ito, ang kasalukuyang operasyon ay nakumpleto. Nangangahulugan ito na ang anumang data sa FIFO ay inililipat sa memorya sa pamamagitan ng DMA. Ang DSHLT bit ay nakatakda lamang pagkatapos nito. Tandaan na nananatiling naka-install ang DEN at maaaring kailanganin itong i-clear sa ibang pagkakataon.
  • Kung na-clear ang DEN (maaaring manatiling nakatakda ang ADMA o maaaring i-clear sa parehong oras). Ihihinto nito ang lahat ng pagpapatakbo ng DMA at itatakda kaagad ang bit ng DSHLT. Kung ang data na ito ay nasa isang FIFO, ito ay nakaimbak ngunit hindi ipinadala.
  • Kung sinubukan ng firmware na basahin, isulat ang kaukulang EPCx, TXCx, RXCx, TXCx, o RXSx registers (kapag ang DEN at ADMA sa DMACNTRL register ay parehong nakatakda). Ihihinto nito ang lahat ng pagpapatakbo ng DMA at agad na itinatakda ang bit ng DSHLT. Walang epekto ang read or write operation.

    DERR. DMA error. Ang bit na ito ay nakatakda upang ipahiwatig na ang packet ay natanggap o naipadala nang hindi tama. Itinatakda din kung ang TOGGLE bit sa RXSx/TXSx register ay hindi katumbas ng NTGL bit sa DMAEV register pagkatapos magpadala/makatanggap ng packet. (Tandaan na ang paghahambing na ito ay nangyayari bago ang NTGL bit ay magbago ng estado dahil sa packet transmission.)

    Para sa pagtanggap, ang DERR ay katumbas ng RX_ERR. Para sa paghahatid, ito ay katumbas ng TX_DONE (set) at ACK_STAT (not set). Kung ang AEH bit sa DMA Error Counter Register (DMAERR) ay nakatakda, ang DERR ay hindi itatakda hanggang sa ang DMAERRCNT sa DMAERR register ay na-clear at isa pang error ay nakita. Ang mga error ay pinangangasiwaan gaya ng tinukoy sa DMAERR register.

    DCNT. DMA counter. Ang bit na ito ay nakatakda kapag ang DMA counter register (DMACNT) ay "0" (tingnan ang DMACNT register).

    DSIZ. Laki ng DMA. Ang bit na ito ay may kaugnayan lamang para sa DMA receive operations. Ito ay nagpapahiwatig na ang natanggap na packet ay mas mababa sa buong haba ng FIFO. Karaniwang ipinapakita nito ang pagtatapos ng isang multi-packet transmission.

    NTGL. Susunod na switch. Tinutukoy ng bit na ito ang switching state kapag nagpapadala ng susunod na data packet (kung nagpapadala), o ang switching state kapag naghihintay para sa susunod na data packet (kung tumatanggap). Ang bit na ito ay sinisimulan sa pamamagitan ng pagsulat ng DTGL bit sa DMACNTRL register. Pagkatapos ay binabago nito ang estado sa bawat packet na ipinadala o natanggap sa endpoint na kasalukuyang pinili ng DSRC2-0. Kung ang isang DTGL write operation ay nangyayari kasabay ng isang bit update operation, ang write operation ay may mas mataas na priyoridad.

    Kung may paglilipat sa panahon ng mga pagpapatakbo ng ADMA, ang DTGL bit ay nag-o-overwrite sa kaukulang TOGGLE bit sa TXCx register. Tinitiyak nito na ang USB data ay inililipat nang tama.

    Tandaan na walang katumbas na mask bit para sa mga kaganapang ito dahil hindi ginagamit ang mga ito upang makabuo ng interrupt.

    7.2.8 DMA Mask Register (DMAMSK)

    Ang anumang bit na nakatakda sa "1" sa register na ito ay awtomatikong nagtatakda ng DMA bit sa ALTEV register kapag may naganap na kaugnay na kaganapan sa DMAEV register. Kung hindi, ang pagtatakda ng DMA bit ay hindi pinagana. Para sa paglalarawan ng mga bits 0…3, tingnan ang DMAEV register.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    DSIZ DCNT DERR DSHLT
    - 0 0 - 0
    - r/w r/w r/w r/w

    7.2.9 Mirror Register (MIR)

    Ang rehistrong ito ay read-only. Ang simpleng pagbabasa nito ay hindi nagbabago sa estado ng TXSx o RXSx na rehistro; ang software na ipinatupad ng hardware ay maaaring malayang suriin ang estado ng channel.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    STAT
    -
    r
  • STAT. Estado. Sinasalamin ng field na ito ang status bits ng transmitter o receiver na pinili sa DSRC2-0 field sa DMACNTRL register (DMA ay hindi kailangang maging aktibo o pinagana). Ito ay tumutugma sa TXSx o RXSx.

    7.2.10 DMA Counter Register (DMACNT)

    Tinutukoy ng rehistrong ito ang maximum na bilang na tinukoy para sa mga pagpapatakbo ng ADMA.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    AEH DMAERRCNT
    0 0 0 0 0 0 - 0
    r/w r/w

    DCOUNT. DMA counter. Binabawasan ang field na ito habang nakumpleto ang pagpapatakbo ng DMA hanggang sa maging 0. Ang bit ng DCNT sa rehistro ng kaganapan ng DMA ay itatakda lamang kapag matagumpay na nakumpleto ang susunod na pagpapatakbo ng DMA. Ang rehistrong ito ay hindi nawawalan ng kahalagahan.

    Para sa mga operasyon ng pagtanggap, ang counter na ito ay nababawasan kapag ang isang packet ay matagumpay na natanggap at pagkatapos ay inilipat sa memorya sa pamamagitan ng DMA.

    Para sa mga operasyon ng paglilipat, ang counter na ito ay nababawasan kapag ang isang packet ay inilipat mula sa memorya sa pamamagitan ng DMA at pagkatapos ay matagumpay na naipadala.

    Ang DCOUNT ay dapat itakda tulad ng sumusunod: DCOUNT = (Packet No. na ipapadala) -1

    Kung ang isang DMACNT write operation ay nangyayari kasabay ng isang decrement operation, ang write operation ay may mas mataas na priyoridad.

    7.2.11 DMA Error Register (DMAERR)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    FHT H.O.S. WKMODE Reserve ENUC ENUSB PNDUC PNDUSB
    0 0 0 - 1 1 1 1
    w/r0 w/r w/r - w/r w/r CoW CoW

    DMAERRCNT. DMA error counter. Kasabay ng kakayahan sa paghawak ng error sa arithmetic, tinutukoy ng counter na ito ang maximum na bilang ng magkakasunod na error sa bus bago ihinto ang ADMA mode. Maaaring itakda ng hardware software ang 7-bit counter sa isang preset na halaga. Kapag nagsimula na ang ADMA, ang counter ay binabawasan ng 1 mula sa isang preset na halaga sa tuwing may matukoy na error sa bus. Ang bawat matagumpay na paglipat ay nire-reset ang counter pabalik sa preset na halaga. Kapag itinigil ang ADMA mode, ibabalik din ang counter sa preset na halaga.

    Kung ang counter ay umabot sa 0 at isa pang maling packet ang nakita, ang DERR bit sa DMA event register ay nakatakda. Mga detalye sa seksyon 7.2.7. Ang rehistrong ito ay hindi nawawalan ng kahalagahan.

    Ang DMAERRCNT ay dapat itakda tulad ng sumusunod: DMAERRCNT = 3D (Maximum na bilang ng mga pagtatangka sa pagpapadala) - 1

    Ang access sa pagsulat sa rehistrong ito ay posible lamang kapag ang ADMA ay hindi aktibo. Kung hindi, ito ay hindi pinapansin. Ang pagbabasa mula sa rehistrong ito habang aktibo ang ADMA ay nagbabalik ng kasalukuyang halaga ng counter. Ang pagbabasa mula sa rehistro kapag hindi aktibo ang ADMA ay nagbabalik ng preset na halaga. Ang counter ay binabawasan lamang kung ang AEH ay nakatakda (awtomatikong paghawak ng error ay na-activate).

    Awtomatikong paghawak ng error. Ang bit na ito ay may dalawang magkaibang kahulugan depende sa kasalukuyang transition mode:

  • Non-isochronous mode

    Ginagamit ang mode na ito para maglipat ng malalaking array, interrupts at kontrol. Ang pagtatakda ng AEH sa mode na ito ay nagbibigay-daan sa awtomatikong pagproseso ng mga packet na naglalaman ng mga error sa pagtutugma ng CRC o bit.

    Kung ang bit na ito ay nakatakda sa panahon ng mga operasyon ng pagpapadala, awtomatikong nire-reload ng device ang FIFO at nire-requeu ang packet kung saan hindi nagbalik ng ACK ang host controller. Kung ang bit na ito ay na-clear, ang awtomatikong paghawak ng error ay hindi pinagana.

    Kung ang bit na ito ay nakatakda sa panahon ng mga operasyon ng pagtanggap, ang isang packet na natanggap sa error (tulad ng tinukoy ng DERR bit sa DMAEV register) ay awtomatikong iki-clear mula sa FIFO upang muling makuha ang packet. Kung ang bit na ito ay na-clear, ang awtomatikong paghawak ng error ay hindi pinagana.

  • Isochronous mode

    Ang pagtatakda ng bit na ito ay nagbibigay-daan sa device na huwag pansinin ang mga packet na natanggap sa error (tulad ng tinukoy ng DERR bit sa DMAEV register).

    Kung ang bit na ito ay itinakda sa panahon ng mga operasyon ng pagtanggap, awtomatikong ki-clear at nire-reset ng device ang FIFO upang matanggap ang susunod na packet. Ang maling packet ay binabalewala at hindi ipinadala sa pamamagitan ng DMA. Kung ang bit na ito ay na-clear, ang awtomatikong paghawak ng error ay hindi pinagana.

    7.2.12 Power-on register (WKUP)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    STALL DEF Nakareserba EP3-0
    0 0 - 0 0 0 0 0
    r/w r/w - r; hardware sa "0"

    PNDUSB. Inaasahang pagpapagana ng USB. Isinasaad ng bit na ito na ie-enable ang device na ito sa pamamagitan ng USB activity. Nagpapadala rin ito ng power-on wait interrupt request signal. Ang PNDUSB bit ay dapat i-clear ng host controller sa pamamagitan ng pagsulat ng "0". Itinatakda ng pag-reset ng hardware ang bit na ito.

    PNDUC. Hinihintay na mag-on ang microcontroller. Ang bit na ito ay nagpapahiwatig na ang aparato ay i-on kapag hiniling ng microcontroller. Nagpapadala rin ito ng power-on wait interrupt request signal. Ang PNDUC bit ay dapat i-clear ng host controller sa pamamagitan ng pagsulat ng "0". Itinatakda ng pag-reset ng hardware ang bit na ito.

    ENUSB. USB resolution. Kapag nakatakda sa "1", binibigyang-daan ng bit na ito ang device na i-on kapag may nakitang aktibidad sa USB.

    ENUC. Resolusyon ng microcontroller. Kapag nakatakda sa "1", binibigyang-daan ng bit na ito ang device na i-on kapag na-access ng microcontroller ang device.

    WKMODE. Naka-mode. Pinipili ng bit na ito ang agwat pagkatapos kung saan bumubuo ang device ng power-up interrupt (kung naka-enable) kapag may nangyaring power-up event, tulad ng ipinapakita sa ibaba:

    0 - Bumubuo ng agarang switch-on na interrupt

    1 - Bumubuo ng switch-on interrupt pagkatapos ng switch-on na pagkaantala

    HOS. Huminto sa pamamagitan ng pagsususpinde. Kapag nakatakda ang bit na ito, papasok ang device sa Halt mode sa sandaling pumasok ito sa estado ng pagsususpinde. Walang epekto ang pagsusulat ng "1" sa estadong nasuspinde.

    FHT. Pilit na huminto. Kapag ang node ay hindi naka-attach (NAT sa MCNTRL register ay nakatakda sa "0"), ang pagtatakda ng bit na ito ay naglalagay ng node sa Halt mode. Kapag ang host ay konektado (NAT sa "1"), ang "1" na entry ay binabalewala.

    7.2.13 Endpoint Control Register 0 (EPC0)

    Kinokontrol ng rehistrong ito ang endpoint 0.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    Reserve ACK_STAT TX_DONE TCOUNT4-0
    - 0 0 0 0 0 0 0
    - CoR CoR r

    EP. Ang dulong punto. Ang field na ito ay naglalaman ng 4-bit na endpoint address. Para sa endpoint 0, ang mga bit na ito ay nakatakda sa 0000b sa hardware.

    DEF. Default na address. Kapag nakatakda ang bit na ito, tutugon ang device sa default na address, anuman ang nilalaman ng mga field ng FAR6-0/EP03-0. Kapag ang isang IN character ay ipinadala para sa isang endpoint, ang DEF bit ay awtomatikong iki-clear.

    Ang bit na ito ay tumutulong sa paglipat mula sa default na address patungo sa itinalagang address. Maaaring mabigo ang paglipat mula sa default na address 00000000000b patungo sa address na tinukoy sa panahon ng pagnunumero ng bus sa gitna ng SET_ADDRESS control sequence. Ito ay kinakailangan upang makumpleto ang control sequence. Gayunpaman, ang address ay dapat magbago kaagad pagkatapos ng pagtatapos ng sequence na ito upang maiwasan ang mga error kapag ang isa pang control sequence ay agad na sumusunod sa SET_ADRESS command.

    Sa isang pag-reset ng USB, ang firmware ay may 10 ms upang i-set up, at dapat na isulat ang 0x80 sa FAR register at 0x00 sa EPC0 register. Sa pagtanggap ng utos na SET_ADRESS, ang firmware ay dapat sumulat ng 0x40 sa rehistro ng EPC0 at 0x80 sa rehistro ng FAR.

    STALL.

    1. - Ang transmit FIFO ay pinagana at ang IN simbolo ay natanggap.

    2. - Ang pagtanggap ng FIFO ay pinagana at ang isang OUT na character ay natanggap.

    Tandaan:

    Sa paghahatid ng kumpirmasyon ng STALL signal, ang RX_LAST at TX_DONE bits ay nakatakda sa kaukulang transmit/receive status registers.

    7.2.14 Rehistro ng Katayuan ng Pagpapadala 0 (TXS0)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    Nakareserba IGN_IN FLUSH I-TOGGLE Reserve TX_EN
    - 0 0 0 0 0 - 0
    - r/w r/w HW r/w - r/w HW

    TCOUNT. Transfer counter. Ang bit na ito ay nagpapahiwatig ng bilang ng mga walang laman na byte na magagamit sa FIFO. Ang field na ito ay hindi lalampas sa 8 para sa endpoint 0.

    TX_DONE. Nakumpleto ang paglipat. Kapag ang bit ay nakatakda, ito ay nagpapahiwatig na ang packet ay ganap na naipadala. Na-clear ito kapag nabasa ang rehistrong ito.

    ACK_STAT. Katayuan ng pagkilala. Ang bit na ito ay nagpapahiwatig ng katayuan na natanggap mula sa pangunahing controller na nagpapatunay sa pagtanggap ng isang naunang ipinadalang packet. Ang bit na ito ay binibigyang kahulugan kapag ang TX_DONE ay nakatakda sa "1". Ito ay nakatakda kapag natanggap ang isang pagkilala; kung hindi, ito ay nananatiling dalisay. Na-clear din ang bit na ito kapag nabasa ang rehistrong ito.

    7.2.15 Magpadala ng Command Register 0 (TXC0)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    Nakareserba IGN_IN FLUSH I-TOGGLE Reserve TX_EN
    - 0 0 0 0 0 - 0
    - r/w r/w HW r/w - r/w HW

    TX_EN. Pahintulot sa paglipat. Ang bit na ito ay nagbibigay-daan sa paglipat ng data mula sa FIFO. Na-clear ito ng chip pagkatapos magpadala ng isang packet, o isang STALL acknowledgement, bilang tugon sa simbolo ng IN. Dapat itong itakda ng firmware upang simulan ang pagpapadala ng packet. Ang RX_EN bit sa Receive Command Register 0 (RXC0) ay nangunguna sa bit na ito; kasi kung ang RX_EN ay nakatakda, ang TX_EN bit ay hindi papansinin hanggang sa RX_EN ay na-clear.

    Ang mga zero-length na packet ay ipinapakita kapag ang bit na ito ay nakatakda nang hindi nagsusulat ng anumang data ng FIFO.

    I-TOGGLE.

    FLUSH. Ang pagsusulat ng 1 sa bit na ito ay iki-clear ang lahat ng data mula sa control FIFO checkpoint, nire-reset ang endpoint sa Idle state, ki-clear ang FIFO read at write pointer, at pagkatapos ay i-clear ang sarili nito. Kung kasalukuyang gumagamit ng FIFO0 ang endpoint upang maglipat ng data sa USB, maaantala ang paglilinis hanggang sa makumpleto ang paglilipat. Na-clear ang bit na ito sa pag-reset. Ito ay katumbas ng FLUSH bit sa register RXC0.

    IGN_IN. Hindi pinapansin ang karakter na IN. Kapag nakatakda ang bit na ito, babalewalain ng endpoint ang anumang IN character na nakadirekta sa naka-configure na address nito.

    7.2.16 Magpadala ng Data Register 0 (TXD0)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    TXFD
    -
    r/w

    TXFD. FIFO data byte transfer. Para sa paglalarawan ng pagpoproseso ng data, tingnan ang "Bidirectional Operations ng FIFO0 Control Endpoint" sa Seksyon 6.2.2.

    Ang software ng hardware ay inaasahan lamang ang kapaki-pakinabang na data packet na isusulat. Awtomatikong nabuo ang PID at CRC16.

    7.2.17 Receive Status Register 0 (RXS0)

    Ito ang receive status register para sa bidirectional control endpoint 0. Upang makatanggap ng SETUP packet pagkatapos makatanggap ng zero-length na OUT/SETUP packet, mayroong dalawang hardware na kopya ng register na ito. Ang isa ay naglalaman ng estado ng pagtanggap ng isang packet na zero ang haba, at ang isa ay naglalaman ng estado ng susunod na SETUP packet na may data. Kung ang isang zero-length na packet ay sumusunod sa isang SETUP packet, ang unang pagbasa ng register na ito ay nagpapakita ng status ng zero-length na packet (na may RX_LAST na nakatakda sa 1 at RCOUNT na nakatakda sa 0), at ang pangalawa ay nagbabasa ng katayuan ng SETUP packet. .

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    Reserve SETUP I-TOGGLE RX_LAST RCOUNT3-0
    - 0 0 0 0 0 0 0
    - CoR CoR CoR r

    RCOUNT. Reception counter. Ang bit na ito ay nagpapahiwatig ng bilang ng mga byte na nasa RX FIFO. Ang field na ito ay hindi lalampas sa 8 para sa endpoint 0.

    RX_LAST.

    I-TOGGLE. Tinutukoy ng bit na ito kung ang PID ay ginagamit kapag nagpapadala ng isang packet. Ang halaga ng "0" ay bumubuo ng isang DATA0 PID, at ang isang halaga ng "1" ay bumubuo ng isang DATA1 PID. Ang bit na ito ay hindi binago ng hardware.

    SETUP. Ang bit na ito ay nagpapahiwatig na ang pakete ng pag-install ay natanggap na. Ang bit na ito ay hindi nagbabago para sa isang pakete na walang haba. Na-clear ang bit na ito kapag nabasa ang rehistrong ito.

    7.2.18 Tumanggap ng Command Register 0 (RXC0)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    Nakareserba FLUSH IGN_SETUP IGN_OUT RX_EN
    - 0 0 0 0
    - r/w r/w r/w r/w HW

    RX_EN. Pahintulot sa pagtanggap. Ang pagtanggap ng OUT na character ay hindi pinagana pagkatapos ng bawat pagtanggap ng isang data packet, o kapag ang isang STALL acknowledgement ay ibinalik bilang tugon sa OUT na character. Ang mga zero-length na packet ay ipinapakita kapag ang bit na ito ay nakatakda nang hindi nagsusulat ng anumang data ng FIFO. Ang isang "1" ay dapat na nakasulat sa bit na ito upang muling paganahin ang pagtanggap ng data. Ang pagtanggap ng SETUP packet ay palaging pinapayagan. Sa kaso ng mga round-trip na SETUP packet (para sa isang ibinigay na endpoint), kung saan ang isang wastong SETUP packet ay natanggap kasama ng iba pang mga hindi SETUP na character, ang endpoint controller ay nagtatapon ng bagong SETUP packet at nagbabalik ng ACK. Nagbibigay ito ng pagbawi mula sa isang estado kung saan ang ACK ng unang SETUP character ay nawala ng host controller.

    FLUSH. Ang pagsusulat ng 1 sa bit na ito ay iki-clear ang lahat ng data mula sa control FIFO checkpoint, nire-reset ang endpoint sa Idle state, ki-clear ang FIFO read at write pointer, at pagkatapos ay i-clear ang sarili nito. Kung kasalukuyang gumagamit ng FIFO0 ang endpoint upang maglipat ng data sa USB, maaantala ang paglilinis hanggang sa makumpleto ang paglilipat. Na-clear ang bit na ito sa pag-reset. Ito ay katumbas ng FLUSH bit sa TXC0 register.

    IGN_OUT. Hindi pinapansin ang OUT na character. Kapag naitakda ang bit na ito, babalewalain ng endpoint ang anumang OUT na character na nakadirekta sa naka-configure na address nito.

    IGN_SETUP.

    7.2.19 Paglipat ng Data Register 0 (RXD0)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    RXFD
    -
    r/w

    RXFD. Tumanggap ng FIFO data byte. Para sa paglalarawan ng pagpoproseso ng data, tingnan ang "Bidirectional Operations ng FIFO0 Control Endpoint" sa Seksyon 6.2.2.

    Inaasahan ng hardware software na basahin lamang ang kapaki-pakinabang na data packet. Awtomatikong inalis ang PID at CRC16 sa papasok na stream ng data.

    7.2.20 Endpoint Control Register 0 (EPC1…EPC6)

    Ang bawat unidirectional endpoint ay may EPCx register na may mga bit na inilarawan sa ibaba.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    STALL Reserve ISO EP_EN EP3-0
    0 - 0 0 0 0 0 0
    r/w - r/w r/w r/w

    EP. Ang dulong punto. Ang field na ito ay naglalaman ng 4-bit na endpoint address.

    EP_EN. Resolusyon ng endpoint. Kapag nakatakda ang bit na ito, ginagamit ang field na EP3-0 para sa paghahambing ng address, kasabay ng field na AD6-0 sa FAR register. Paglalarawan sa seksyon 6.2. Kapag na-clear, ang endpoint ay hindi tumutugon sa anumang character sa USB bus.

    Tandaan: Ang AD_EN sa FAR register ay nagbibigay-daan sa paghahambing ng pandaigdigang address ng device. Kung na-clear, hindi tumutugon ang device sa anumang address, anuman ang estado ng EP_EN.

    ISO. Isochronous. Kapag ang bit na ito ay nakatakda sa "1", ang endpoint ay isochronous. Ipinapalagay nito na ang isang NAK ay ipinadala kung ang endpoint ay hindi handa ngunit pinapayagan; kasi kung ang isang IN character ay natanggap at walang data na magagamit sa FIFO para sa paghahatid, o kung ang isang OUT na character ay natanggap at ang FIFO ay puno, pagkatapos ay walang USB handshake para sa isochronous transmission.

    STALL. Ang pagtatakda ng bit na ito ay nagiging sanhi ng chip na makabuo ng mga pagkilala sa signal ng STALL sa ilalim ng mga sumusunod na kundisyon:

    3. Ang transmit FIFO ay pinagana at ang IN simbolo ay natanggap.

    4. Ang pagtanggap ng FIFO ay pinagana at ang OUT na character ay natanggap.
    Tandaan: Ang SETUP character ay hindi nagiging sanhi ng STALL signal na igiit kapag ang bit na ito ay nakatakda.

    7.2.21 Ipadala ang Status Register X (TXS1, TXS2, TXS3)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    TX_URUN ACK_STAT TX_DONE TCOUNT4-0
    0 0 0 0 0 0 0 0
    CoR CoR CoR r

    TCOUNT. Transfer counter. Ang bit na ito ay nagpapahiwatig ng bilang ng mga walang laman na byte na magagamit sa FIFO. Kung ang bilang na ito ay mas malaki sa 31, ang halagang 31 ay iuulat.

    TX_DONE. Nakumpleto ang paglipat. Kapag ang bit ay nakatakda, ito ay nagpapahiwatig na ang endpoint ay tumugon sa USB packet. Tatlong kundisyon ang maaaring maging sanhi ng pag-set ng bit:

    1. Ang buong data packet ay ipinapadala bilang tugon sa simbolo ng IN na may non-ISO operation.

    2. Nagpadala ang endpoint ng isang pagkilala bilang tugon sa karakter na IN.

    3. Ang naitatag na ISO frame service queue ay ipinadala o itinapon.
    Na-clear ang bit na ito kapag nabasa ang rehistrong ito.

    ACK_STAT. Katayuan ng pagkilala. Ang bit na ito ay binibigyang kahulugan kapag nakatakda ang TX_DONE.

    Para sa mga non-ISO operations, ang bit na ito ay nagpapahiwatig ng ACK status ng isang naunang ipinadalang packet. Ang bit na ito ay mismong nakatakda kapag natanggap ang isang ACK; kung hindi, ito ay malinis.

    Para sa mga pagpapatakbo ng ISO, ang bit na ito ay nakatakda kung ang isang frame number na mababang byte na paghahambing ay naganap (tingnan ang "IGN_ISOMSK" sa Seksyon 7.2.22) at ang data ay ipinadala bilang tugon sa IN character. Kung hindi, ang bit na ito ay na-clear, ang FIFO ay na-clear, at ang TX_DONE ay nakatakda.

    Na-clear din ang bit na ito kapag nabasa ang rehistrong ito.

    TX_URUN. Maagang paghinto ng pagpapadala ng FIFO. Ang bit na ito ay nakatakda kung ang pagpapadala ng FIFO ay magiging walang laman sa panahon ng paghahatid at walang bagong data na nakasulat sa FIFO. Kung gayon, ang network architecture controller (MAC) ay naglalabas ng kaunting error sa pagtutugma kasunod ng EOP. Na-clear ang bit na ito kapag nabasa ang rehistrong ito.

    7.2.22 Magpadala ng Command Register X (TXC1, TXC2, TXC3)

    Ang bawat pagpapadala ng endpoint (1, 3 at 5) ay may isang rehistro ng command sa pagpapadala na may mga bit na inilarawan sa ibaba.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    IGN_ISOMSK TFWL1-0 RFF FLUSH I-TOGGLE HULING TX_EN
    0 0 0 0 0 0 0 0
    r/w r/w r/w HW r/w HW r/w r/w HW r/w HW

    TX_EN. Pahintulot sa paglipat. Ang bit na ito ay nagbibigay-daan sa paglipat ng data mula sa FIFO. Na-clear ito ng chip pagkatapos magpadala ng isang packet, o isang STALL acknowledgement, bilang tugon sa simbolo ng IN. Dapat itong itakda ng firmware upang simulan ang pagpapadala ng packet.

    HULING. Ang pagtatakda ng bit na ito ay nagpapahiwatig na ang input packet ay naisulat sa FIFO. Ito ay ginagamit upang magpasok ng isang stream ng data sa FIFO habang ang isang aktwal na paglilipat ay isinasagawa. Kung ang LAST bit ay hindi nakatakda at ang transmit FIFO ay nagiging walang laman sa panahon ng transmission, pagkatapos ay ang EOP ay sinusundan ng isang bus coherence error. Ang mga zero-length na packet ay ipinahiwatig sa pamamagitan ng pagtatakda ng bit na ito nang hindi nagsusulat ng data sa FIFO.

    I-TOGGLE. Ang operasyon ng bit na ito ay nag-iiba depende sa kung ISO o hindi ISO na mga operasyon ang ginagamit.

    Para sa mga non-ISO operations, tinutukoy nito ang paggamit ng PID kapag nagpapadala ng packet. Ang halaga ng "0" ay bumubuo ng isang DATA0 PID, at ang isang halaga ng "1" ay bumubuo ng isang DATA1 PID. Ang bit na ito ay hindi binago ng hardware.

    Para sa mga pagpapatakbo ng ISO, ang bit na ito at ang mababang mga bit ng frame counter (FNL0) ay nagsisilbing maximum para sa TX_EN bit upang ilapat ang packet order predetermination para sa mga espesyal na numero ng frame; kasi posible lamang ang paghahatid kung ang bit 0 sa rehistro ng FNL ay nakatakda sa TOGGLE. Kung ang IN character ay hindi natanggap habang ang kundisyong ito ay totoo, ang mga nilalaman ng FIFO ay na-clear sa susunod na SOF. Kung ang endpoint ay nakatakda sa ISO, ang data ay palaging ipinapadala gamit ang DATA0 PID.

    Ang bit na ito ay hindi binago ng hardware.

    FLUSH. Ang pagsusulat ng 1 sa bit na ito ay nililinis ang lahat ng data mula sa kaukulang pagpapadala ng FIFO, nire-reset ang endpoint sa Idle na estado, at tinatanggal ang read at write na mga FIFO pointer. Kung ang network architecture controller (MAC) ay kasalukuyang gumagamit ng FIFO0 upang maglipat ng data, ang data ay iki-clear pagkatapos makumpleto ang paglilipat. Pagkatapos i-clear ang data, ang bit na ito ay ni-reset ng hardware.

    RFF. Nire-refill ang FIFO. Ang pagtatakda ng LAST bit ay awtomatikong nag-iimbak ng transmit read pointer (TXRP) sa isang buffer. Kapag ang RFF bit ay nakatakda, ang buffered na TXRP ay nire-reload sa TXRP. Nagbibigay-daan ito sa user na ulitin ang huling paglipat kung ang isang ACK ay hindi natanggap mula sa pangunahing controller. Kung ang network architecture layer controller (MAC) ay kasalukuyang gumagamit ng FIFO transfer, ang TXRP ay nire-reload lamang pagkatapos makumpleto ang paglilipat. Pagkatapos ng pag-reboot, ang bit na ito ay ni-reset ng hardware.

    TFWL. Pagpapadala ng limitasyon sa babala ng paglabag sa FIFO. Tinutukoy ng mga bit na ito kung gaano karaming mga byte ang maaaring ilipat mula sa kaukulang FIFO bago mangyari ang isang napaaga na kondisyon ng paghinto. Kung ang bilang ng mga byte na natitira sa FIFO ay katumbas o mas mababa sa napiling limitasyon sa babala ng paglabag, kung gayon ang TXWARN bit sa rehistro ng FWEV ay nakatakda. Upang maiwasan ang mga interrupts na dulot ng pagtatakda ng bit na ito (habang pinupunan ang FIFO bago simulan ang paglipat), ang TXWARN bit ay nakatakda lamang kapag ang paglipat mula sa endpoint ay pinagana (TX_ENx sa TXCx register ay nakatakda). Tingnan ang Talahanayan 8.

    Talahanayan 8. Pagtatakda ng limitasyon sa babala ng paglabag sa pagpapadala ng FIFO

    IGN_ISOMSK. Huwag pansinin ang ISO mask. Ang bit na ito ay epektibo lamang kung ang endpoint ay nakatakdang maging isochronous. Kung ang bit ay nakatakda, hindi nito pinapagana ang pagharang ng ilang mga numero ng frame gamit ang TOGGLE bit interleaving function. Kaya, ang data ay ipinapadala sa pagtanggap ng susunod na IN character. Kung ang bit ay malinaw, pagkatapos ay ipinapadala ang data kapag ang FNL0 ay katumbas ng TOGGLE. Na-clear ang bit na ito sa pag-reset.

    7.2.23 Magpadala ng Data Register X (TXD1, TXD2, TXD3)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    TXFD
    -
    w

    TXFD. FIFO data byte transfer. Para sa paglalarawan ng pagpoproseso ng data ng endpoint ng FIFO, tingnan ang "Pagpapadala ng Endpoint Operations (TXFIFO1, TXFIFO2, TXFIFO3)" sa Seksyon 6.2.2. Ang software ng hardware ay inaasahan lamang ang kapaki-pakinabang na data packet na isusulat. Awtomatikong ipinapasok ang PID at CRC16 sa papasok na stream ng data.

    7.2.24 Tumanggap ng Status Register X (RXS1, RXS2, RXS3)

    Ang bawat receiving endpoint channel (2, 4, at 6) ay may isang receive status register na may mga bit na tinukoy sa ibaba. Para makatanggap ng SETUP packet pagkatapos makatanggap ng zero-length na OUT packet, mayroong dalawang hardware na kopya ng register na ito. Ang isa ay naglalaman ng estado ng pagtanggap ng isang packet na zero ang haba, at ang isa ay naglalaman ng estado ng susunod na SETUP packet na may data. Kung ang isang zero-length na packet ay sumusunod sa isang SETUP packet, ang unang pagbasa ng register na ito ay nagpapahiwatig ng status ng zero-length na packet, at ang pangalawa ay nagbabasa ng status ng SETUP packet.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    RE_ERR SETUP I-TOGGLE RX_LAST RCOUNT3-0
    0 0 0 0 0 0 0 0
    CoR CoR CoR HW CoR r

    RCOUNT. Reception counter. Ang bit na ito ay nagpapahiwatig ng bilang ng mga byte na naroroon sa dulong punto ng pagtanggap ng FIFO. Ang field na ito ay hindi kailanman lalampas sa halagang 15, para sa isang endpoint na 0.

    RX_LAST. Mga huling byte na natanggap. Isinasaad na ang isang ACK ay ipinadala sa pagkumpleto ng isang matagumpay na operasyon ng pagtanggap. Na-clear ito kapag nabasa ang rehistrong ito.

    I-TOGGLE. Ang operasyon ng bit na ito ay nag-iiba depende sa kung ISO o hindi ISO na operasyon ang ginagamit.

    Para sa mga non-ISO operations, ang value na "0" ay nagpapahiwatig na ang isang packet na may DATA0 PID ay matagumpay na natanggap, at ang value na "1" ay nagpapahiwatig na ang packet na ito ay may DATA1 PID.

    Para sa mga pagpapatakbo ng ISO, ang bit na ito ay ipinapahiwatig ng mga mababang bit ng frame counter (FNL0) pagkatapos ng matagumpay na pagtanggap para sa endpoint na ito.

    Ire-reset ang bit na ito sa "0" kapag nabasa ang RXSx register.

    SETUP. Ang bit na ito ay nagpapahiwatig na ang pakete ng pag-install ay natanggap na. Na-clear ang bit na ito kapag nabasa ang rehistrong ito.

    RX_ERR. Error sa pagtanggap. Kapag ang bit ay nakatakda, ito ay nagpapahiwatig ng isang network layer error tulad ng isang bit matching error o CRC. Kung nakatakda ang bit na ito, dapat i-clear ng firmware ang kaukulang FIFO.

    7.2.25 Tumanggap ng Command Register X (RXC1, RXC2, RXC3)


    Ang bawat isa sa mga tumatanggap na endpoint (2,4 at 6) ay may isang receive command register na may mga bit na inilarawan sa ibaba.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    Reserve RFWL Reserve FLUSH IGN_SETUP Reserve RX_EN
    - 0 0 - 0 0 - 0
    - r/w - r/w r/w - r/w

    RX_EN. Pahintulot sa pagtanggap. Ang pagtanggap ng OUT na character ay hindi pinagana pagkatapos ng bawat pagtanggap ng isang data packet, o kapag ang isang STALL acknowledgement ay ibinalik bilang tugon sa OUT na character. Ang isang "1" ay dapat na nakasulat sa bit na ito upang muling paganahin ang pagtanggap ng data. Ang pagtanggap ng SETUP packet ay palaging pinapayagan. Sa kaso ng mga round-trip na SETUP packet (para sa isang naibigay na endpoint), kung saan ang isang wastong SETUP packet ay natanggap kasama ng iba pang mga hindi SETUP na character, ang receiving endpoint ay nagtatapon ng bagong SETUP packet at nagbabalik ng ACK. Kung, sa anumang iba pang kaso, hindi matanggap ng receiving state machine ang SETUP packet, hindi mabubuo ang HANDSHAKE.

    IGN_SETUP. Hindi pinapansin ang simbolo ng SETUP. Kapag naitakda ang bit na ito, babalewalain ng endpoint ang anumang SETUP character na nakadirekta sa naka-configure na address nito.

    FLUSH. Ang pagsusulat ng 1 sa bit na ito ay iki-clear ang lahat ng data mula sa control FIFO checkpoint, nire-reset ang endpoint sa Idle state, at iki-clear ang FIFO read and write pointer. Kung ang network architecture controller (MAC) ay kasalukuyang gumagamit ng FIFO0 upang makatanggap ng data, pagkatapos ay maaantala ang pag-flush hanggang sa makumpleto ang pagtanggap.

    RFWL1-0. Pagtanggap ng limitasyon sa babala ng paglabag sa FIFO. Tinutukoy ng mga bit na ito kung gaano karaming mga byte ang matatanggap mula sa kaukulang FIFO bago mangyari ang isang kondisyon ng pagpapalaglag. Kung ang bilang ng mga walang laman na byte na natitira sa FIFO ay katumbas o mas mababa sa napiling limitasyon sa babala ng paglabag, kung gayon ang RXWARN bit sa rehistro ng FWEV ay nakatakda.

    Talahanayan 9: Pagtanggap ng FIFO Violation Alert Limit Setting

    7.2.26 Magpadala ng Data Register X (RXD1, RXD2, RXD3)

    Ang bawat isa sa tatlong tumatanggap na FIFO endpoints ay may isang receive data register na may mga bit na inilarawan sa ibaba.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    RXFD
    -
    r/w

    RXFD. Tumanggap ng FIFO data byte. Para sa paglalarawan ng pagpoproseso ng data ng endpoint ng FIFO, tingnan ang "Endpoint Receive Operations (RXFIFO1, RXFIFO2, RXFIFO3)" sa Seksyon 6.2.2.

    Inaasahan ng hardware software na basahin lamang ang kapaki-pakinabang na data packet. Ang PID at CRC16 ay naabala ng tumatanggap na makina ng estado.

    7.3 Magrehistro ng pagkakalagay

    Ang talahanayan 10 ay naglalaman ng isang listahan ng lahat ng mga rehistro ng device, ang kanilang mga address at ang kanilang mga pagdadaglat.

    Talahanayan 10. USBN9603/4 memory card

    Address Magrehistro ng mnemonic Magrehistro ng pangalan
    0x00 MCNTRL punong-tanggapan
    0x01 CCONF Configuration ng Orasan
    0x02 Nakareserba
    0x03 RID Modification ID
    0x04 MALAYO Functional na address
    0x05 NFSR Functional na estado ng node
    0x06 MAEV Pangunahing kaganapan
    0x07 MAMSK Pangunahing maskara
    0x08 ALTEV Alternation Event
    0x09 ALTMSK Interleaving mask
    0x0A TXEV Paglipat ng Kaganapan
    0x0B TXMSK Transmission mask
    0x0C RXEV Kaganapan ng pagtanggap
    0x0D RXMSK Mask sa pagtanggap
    0x0E NAKEV Event NAK
    0x0F NAKMSK NAK mask
    0x10 FWEV Kaganapan ng babala sa paglabag sa FIFO
    0x11 FWMSK Babala ng maskara tungkol sa mga paglabag sa FIFO
    0x12 FNH Mataas na byte ang numero ng frame
    0x13 FNL Junior bumili ng frame number
    0x14 DMACNTRL Pamamahala ng DMA
    0x15 DMAEV kaganapan sa DMA
    0x16 DMAMSK DMA mask
    0x17 MIR Salamin
    0x18 DMACNT DMA counter
    0x19 DMAERR DMA error counter
    0x1A Nakareserba
    0x1B W.K.U.P. Pagsasama
    0x1C - 0x1F Nakareserba
    0x20 EPC0 Pamamahala ng Endpoint 0
    0x21 TXD0 Paglipat ng data 0
    0x22 TXS0 Katayuan ng paglipat 0
    0x23 TXC0 Maglipat ng utos 0
    0x24 Nakareserba
    0x25 RXD0 Tumanggap ng data 0
    0x26 RXS0 Tumanggap ng estado 0
    0x27 RXC0 Tumanggap ng utos 0
    0x28 EPC1 Pamamahala ng Endpoint 1
    0x29 TXD1 Paglipat ng data 1
    0x2A TXS1 Estado ng paglipat 1
    0x2B TXC1 Utos ng paglipat 1
    0x2C EPC2 Pamamahala ng Endpoint 2
    0x2D RXD1 Tumanggap ng data 1
    0x2E RXS1 Tumanggap ng estado 1
    0x2F RXC1 Tumanggap ng utos 1
    0x30 EPC3 Pamamahala ng Endpoint 3
    0x31 TXD2 Paglipat ng data 2
    0x32 TXS2 Estado ng paglipat 2
    0x33 TXC2 Utos ng paglipat 2
    0x34 EPC4 Pamamahala ng Endpoint 4
    0x35 RXD2 Tumanggap ng datos 2
    0x36 RXS2 Tanggapin ang estado 2
    0x37 RXC2 Tumanggap ng utos 2
    0x38 EPC5 Pamamahala ng Endpoint 5
    0x39 TXD3 Paglipat ng data 3
    0x3A TXS3 Estado ng paglipat 3
    0x3B TXC3 Utos ng paglipat 3
    0x3C EPC6 Pamamahala ng Endpoint 6
  • Noong nakaraang pagkakataon ay isinasaalang-alang namin ang opsyon ng pagtaas ng mga output ng microcontroller gamit ang isang decoder chip, ngayon ay isasaalang-alang namin ang isang mas advanced na opsyon gamit ang isang 74HC595 shift register. Gamit ang isang microcircuit lang, maaari kang magkaroon ng karagdagang 8 output na magagamit mo, gamit lang ang 3 microcontroller legs. At salamat sa pagpapalawak, sa pamamagitan ng pagdaragdag ng pangalawang chip, ang bilang ng mga output ay maaaring tumaas sa 16. Kung ito ay hindi sapat, maaari kang magdagdag ng isang pangatlo at makakuha ng 24 na mga output para sa paggamit, at ang trick na ito ay maaaring ulitin nang maraming beses gusto mo. Kasabay nito, ang bilang ng mga sinasakop na mga binti ng microcontroller ay mananatiling 3, maganda!

    Kaya, tingnan natin ang layunin ng mga microcircuit pin at alamin kung paano kontrolin ang 74hc595 shift register sa Bascom-AVR.

    Una, kilalanin natin ang mga output ng microcircuit, o sa halip sa kanilang pag-andar. Nasa ibaba ang isang clipping mula sa datasheet para sa 74hc595 na may pagtatalaga ng mga pin ng microcircuit:


    • Q0…Q7– ang mga output na aming kokontrolin. Maaaring nasa tatlong estado: logical one, logical zero at high-resistance Hi-Z state
    • GND- Lupa
    • Q7′– ang output na nilayon para sa serial connection ng mga registers.
    • GINOO.– pag-reset ng rehistro.
    • SH_CP– input para sa mga pulso ng orasan
    • ST_CP– pag-input ng latching ng data
    • O.E.– input na nagko-convert ng mga output mula sa HI-Z sa operating state
    • D.S.- pag lagay ng datos
    • VCC– power supply 5 volts

    Magrehistro ng lohika

    Kapag sa input ng orasan SH_CP lilitaw ang isang lohikal, ang bit na matatagpuan sa input ng data D.S. basahin at isulat sa shift register. Ang bit na ito ay isinulat sa pinakamaliit na bahagi. Kapag ang susunod na high-level pulse ay dumating sa clock input, ang susunod na bit mula sa data input ay isusulat sa shift register. At ang bit na nakasulat kanina ay inilipat ng kaunti sa kaliwa, at ang lugar nito ay kinuha ng bagong dating na bit. Ang susunod na pulso ng orasan ay magsusulat ng ikatlong bit, at ang naunang dalawa ay lilipat pa. Kapag napuno na ang lahat ng walong bits at dumating ang pulso ng ikasiyam na orasan, magsisimulang punan muli ang rehistro mula sa hindi bababa sa makabuluhang bit at umuulit muli ang lahat. Upang ang data ay lilitaw sa mga output Q0…Q7 kailangan mong "snap" ang mga ito. Upang gawin ito, kailangan mong maglapat ng isang lohikal sa input ST_CP.

    - GINOO. nire-reset ang rehistro, itinatakda ang lahat ng mga output Q0…Q7 sa isang lohikal na zero na estado. Upang magsagawa ng pag-reset, kailangan mong maglapat ng lohikal na zero sa input na ito at maglapat ng positibong pulso sa input ST_CP. Isang napaka-kapaki-pakinabang na function, dahil kapag ang kapangyarihan ay inilapat sa microcircuit, ang isang tiyak na arbitrary na halaga ay lilitaw sa output. Kapag nagtatrabaho sa isang rehistro, ang isang lohikal na yunit ay dapat na matatagpuan sa pin na ito.

    - O.E.(output enable) kung ang isang lohikal na 1 ay inilapat dito, ang mga output ay nasa high-resistance na HI-Z na estado. Kapag inilapat namin ang lohikal na 0 sa input na ito, ang mga output ay nasa gumaganang kondisyon.

    - Q7′ dinisenyo para sa serial connection ng shift registers.

    Pero mas magandang makakita ng isang beses kaysa magbasa ng dalawang beses =) kaya tingnan natin ang animation:


    Paggawa gamit ang rehistro nang direkta

    Kapag pinagkadalubhasaan ang trabaho sa isang hindi pamilyar na microcircuit, kadalasan ay kapaki-pakinabang na magtrabaho nang direkta, iyon ay, direktang pag-twitch ng mga kontrol gamit ang iyong mga paa, pinapayagan ka nitong mas maunawaan ang mga prinsipyo ng pagtatrabaho sa paksa ng pagsubok. Kaya, kasunod ng lohika ng trabaho, sumulat ako ng isang programa na dapat mag-output ng binary number 10010010 sa output ng rehistro

    $regfile = "attiny2313.dat"
    $kristal = 1000000

    Config Portb = Output

    Sh_cpalyas Portb. 3 "binti para sa mga pulso ng orasan
    Dsalyas Portb. 2 " binti ng output ng data
    St_cpalyas Portb. 0 "binti para sa "pag-latching" ng data sa holding register


    "output sa pamamagitan ng rehistro ng numero 146 (sa binary na representasyon 10010010)

    St_cp= 0 "Ilagay ang iyong paa sa data recording mode

    Ds= 1 "itakda ang unang bit
    Sh_cp= 0 "Nagbibigay kami ng isang salpok sa output ng orasan
    Sh_cp= 1

    Ds= 0 "itakda ang pangalawang bit
    Sh_cp= 0
    Sh_cp= 1

    Ds= 0 "itakda ang pangatlong bit
    Sh_cp= 0
    Sh_cp= 1

    Ds= 1 "itakda ang ikaapat na bit
    Sh_cp= 0
    Sh_cp= 1

    Ds= 0 "itakda ang ikalimang bit
    Sh_cp= 0
    Sh_cp= 1

    Ds= 0 "itakda ang ikaanim na bit
    Sh_cp= 0
    Sh_cp= 1

    Ds= 1 "itakda ang ikapitong bit
    Sh_cp= 0
    Sh_cp= 1

    Ds= 0 "itakda ang ikawalong bit
    Sh_cp= 0
    Sh_cp= 1

    St_cp= 1 "Snap ang ipinasok na data

    Tapusin


    nag-compile kami, nag-embed sa microcontroller o tumingin sa simulator at tingnan ang aming kumbinasyon sa output.


    Gumagana ito, lumilitaw ang ipinadalang numero sa output ng rehistro!

    Ang pagtatrabaho sa isang rehistro sa ganitong paraan, bagaman posible, ay masyadong masalimuot at tumatagal ng maraming memorya ng programa. Ngunit malinaw na ipinapakita nito ang buong pamamaraan para sa pagtatrabaho sa microcircuit na ito. Isaalang-alang natin ang isang mas angkop na paraan.

    Pagkontrol sa 74HC595 register sa Bascom gamit ang ShiftOut command

    Ang Bascom-AVR ay may mahusay na koponan para sa pagtatrabaho sa lahat ng uri ng mga serial interface SHIFTOUT
    Ang utos na ito mismo ay magde-decompose ng numero sa mga bit na bahagi at sunud-sunod na ilalabas ang mga ito sa anumang pin ng microcontroller; sa parehong oras, maaari itong mag-isyu ng mga pulso ng orasan. Tamang-tama para sa pagtatrabaho sa mga shift register! Syntax ng command:

    SHIFTOUT Datapin, Clockpin, var, opsyon


    Datapin – microcontroller port para sa output ng data

    Clockpin – microcontroller port para sa outputting clock pulses

    Var – data na gusto naming ipadala sa rehistro

    Pagpipilian - isang numero mula 0 hanggang 3, pinipili ng parameter na ito ang pagkakasunud-sunod kung saan ang data ay ipapasok sa rehistro at ang aktibong antas sa linya ng Orasan kung saan nakasulat ang bit:
    option=0 – nauuna ang pinaka makabuluhang bit, orasan mababa ang aktibong antas
    opsyon=1 –
    nauuna ang pinaka makabuluhang bit, Orasan aktibong antas mataas
    opsyon=2 –
    hindi bababa sa makabuluhang bit ay mauna, Orasan mababa ang aktibong antas
    opsyon=3 –
    hindi bababa sa makabuluhang bit ay mauna, Orasan aktibong antas mataas

    Sa aming kaso, upang gumana sa rehistro ng 74HC595, ang parameter na opsyon ay dapat itakda sa 1 o 3.

    Upang i-latch ang data sa isang rehistro, gamitin ang command PulseOut. Ang command na ito ay naglalabas ng pulso sa microcontroller leg na may tinukoy na tagal. Mukhang ganito ang configuration ng command:

    Ngayon, i-output natin ang numerong 10010001 (145 sa decimal system) sa output ng rehistro na konektado sa microcontroller ayon sa diagram sa itaas:

    $regfile = "attiny2313.dat"
    $kristal = 1000000

    Dim A BilangByte
    Config Portb = Output

    A= 145

    Gosub Hc595 "pumupunta kami sa subroutine sa pagpapadala ng data

    Tapusin

    Hc595: "routine sa pagpapadala ng data

    Shiftout Portb. 2, Portb. 3, A, 1 "magpadala ng data sa rehistro
    Pulseout Portb, 0, 5 "i-lock ang data
    Bumalik

    Ang pagkakaroon ng flashed sa microcontroller, maaari mong makita ang isang katulad na larawan; ang ipinadalang kumbinasyon ng mga bit ay nakatakda sa output ng shift register.


    Tulad ng nakikita mo, ang pagkontrol sa 74HC595 shift register sa Bascom ay binubuo lamang ng dalawang linya ng code at hindi nagpapakita ng anumang mga paghihirap.

    Pagtaas ng bit depth

    Magrehistro- high-speed memory cell, minsan kinakatawan bilang isang hiwalay na device, na ginagamit upang mag-imbak ng n-bit binary data at magsagawa ng mga pagbabago dito.

    Ang isang rehistro ay isang nakaayos na hanay ng mga flip-flop, kadalasang D-, ang bilang n kung saan ay tumutugma sa bilang ng mga bit sa salita. Ang bawat rehistro ay karaniwang nauugnay sa isang kumbinasyon [ ] isang digital device na nagbibigay-daan sa iyong magsagawa ng ilang partikular na operasyon sa mga salita.

    Ang batayan para sa pagbuo ng mga rehistro ay: D-flip-flops, RS-flip-flops, JK-flip-flops.

    Encyclopedic YouTube

    • 1 / 5

      Ang mga karaniwang operasyon ay:

      • pagtanggap ng isang salita sa isang rehistro (pagtatakda ng estado);
      • paglilipat ng salita mula sa isang rehistro;
      • ilipat ang isang salita pakaliwa o pakanan sa pamamagitan ng isang tinukoy na bilang ng mga bit sa mga rehistro ng shift;
      • pag-convert ng serial word code sa parallel at vice versa;
      • pagtatakda ng rehistro sa paunang estado nito (reset).

      Pag-uuri ng pagrehistro

      Parallel registers

      Sa parallel (static) na mga rehistro, ang mga bit circuit ay hindi nakikipag-usap sa isa't isa. Karaniwan sa mga bit ay karaniwang clocking, reset/set, output enable o tumanggap ng mga circuit, iyon ay, control circuits. Isang halimbawa ng static register circuit na binuo sa type D flip-flops na may mga direktang dynamic na input, na mayroong mga reset input at third-state na output na kinokontrol ng EZ signal.

      Shift (sequential) na mga rehistro

      Ang sequential (shifting) registers ay isang chain ng bit circuits na konektado ng transfer circuits. Ang pangunahing operating mode ay ang paglilipat ng mga bit ng code mula sa isang trigger patungo sa isa pa para sa bawat pulso ng signal ng orasan. Sa single-clock registers na may one-bit right shift, ang salita ay inililipat kapag natanggap ang signal ng orasan. Ang input at output ay serial (Data Serial Right, DSR).

      Ayon sa mga kinakailangan sa pag-synchronize sa mga shift register na walang mga lohikal na elemento sa mga inter-bit na koneksyon, imposibleng gumamit ng single-stage level-controlled na mga flip-flop, dahil ang ilang mga flip-flop ay maaaring lumipat nang paulit-ulit sa panahon ng pagkilos ng antas ng pagpapagana. ng signal ng orasan, na hindi katanggap-tanggap. Ang hitsura ng mga lohikal na elemento sa mga inter-bit na koneksyon, at higit pa, ang mga lohikal na circuit na hindi lalim ng yunit, ay nagpapadali sa katuparan ng mga kondisyon ng operating ng mga rehistro at nagpapalawak ng hanay ng mga uri ng mga flip-flop na angkop para sa mga circuit na ito. Ang mga multi-cycle na shift register ay kinokontrol ng ilang sequence ng orasan. Sa mga ito, ang pinakasikat ay ang mga push-pull na may pangunahing at karagdagang mga rehistro, na binuo sa mga simpleng single-stage trigger na kinokontrol ng isang antas. Sa orasan C1, ang mga nilalaman ng pangunahing rehistro ay muling isinulat sa karagdagang rehistro, at sa orasan C2 bumalik sila sa pangunahing rehistro, ngunit sa mga katabing bit, na tumutugma sa isang paglilipat ng salita. Sa mga tuntunin ng mga gastos sa kagamitan at pagganap, ang opsyong ito ay malapit sa isang single-cycle na rehistro na may dalawang yugto na flip-flop.

      Mga rehistro ng processor

      Ayon sa kanilang layunin, ang mga rehistro ng processor ay naiiba sa:

      • accumulator - ginagamit upang mag-imbak ng mga intermediate na resulta ng mga aritmetika at lohikal na operasyon at mga tagubilin sa input/output;
      • bandila - mag-imbak ng mga palatandaan ng mga resulta ng aritmetika at lohikal na mga operasyon;
      • pangkalahatang layunin - mag-imbak ng mga operand ng aritmetika at lohikal na mga expression, mga indeks at mga address;
      • index - mag-imbak ng mga indeks ng pinagmulan at mga target na elemento ng array;
      • pointer - mag-imbak ng mga pointer sa mga espesyal na lugar ng memorya (kasalukuyang operation pointer, base pointer, stack pointer);
      • segment - mga address ng tindahan at mga tagapili ng mga segment ng memorya;
      • mga tagapamahala - mag-imbak ng impormasyon na kumokontrol sa estado ng processor, pati na rin ang mga address ng mga talahanayan ng system.

      Mga rehistro ng Ternary

      Ang mga rehistro ng ternary ay binuo sa mga ternary flip-flop. Tulad ng mga ternary flip-flop, ang mga ternary register ay maaaring may iba't ibang ternary system para sa pag-encode ng ternary data (ternary digits): three-level single-wire, two-level two-bit two-wire, two-level three-bit single-unit three -wire, two-level three-bit single-zero three-wire, atbp.

      Ang figure sa kanan ay nagpapakita ng diagram ng isang siyam na bit parallel static gated ternary data register sa tatlong three-bit parallel static gated ternary data registers sa isang three-bit single-unit system ng ternary logic elements (mga linya na may markang 3B: tatlong- wire), pagkakaroon ng capacitance sa exponential positional ternary number system 3 9 = 19683 (\displaystyle 3^(9)=19683) mga numero (code).

      Tingnan din

      Mga Tala

      1. http://wiki.miem.edu.ru/index.php/Circuit design:Mga Lektura Kabanata 11 Seksyon 1.1 11.1.Pag-uuri ng mga rehistro
      2. http://www.intuit.ru/department/hardware/archhard2/2/2.html Internet University of Information Technologies. Arkitektura at organisasyon ng mga kompyuter. V. V. Gurov, V. O. Chukanov. 2. Lecture: Basic functional elements ng isang computer, part 2. Storage register. Fig.2.5. Istraktura ng isang four-bit holding register na may asynchronous set input 0 . Fig.2.6. Simbolikong graphic na pagtatalaga ng isang four-bit storage register na may asynchronous installation input sa 0
      3. http://www.bashedu.ru/perspage/wsap/posobie/chapter3/6.htm Mga batayan ng digital electronics. 3.6. Nagrerehistro. Mga rehistro ng imbakan. Fig.3.25. Mga functional na diagram ng mga pangunahing uri ng mga rehistro. kanin. 3.26. Mga rehistro ng imbakan, sa mga D-flip-flop na naka-synchronize ng antas ng pulso ng orasan (a), gilid (b) at sa mga RS-flip-flop na naka-synchronize ng gilid (c)
      4. http://www.gsm-guard.net/glossary/_r.htm Glossary. Shift register
      5. http://kpe.hww.ru/spravka_circuitry/rs.htm Mga rehistro ng Shift
      6. http://dssp.karelia.ru/~ivash/ims/t12/TEMA6.HTM Shift registers. Fig.1. Shift registers sa JK flip-flops
      7. http://www.airalania.ru/airm/147/53/index.shtml 6.1. Mga Shift Register at Ring Counter
      8. http://www.intuit.ru/department/hardware/archhard2/2/2.html Internet University of Information Technologies. Arkitektura at organisasyon ng mga kompyuter. V. V. Gurov, V. O. Chukanov. 2. Lecture: Basic functional elements ng isang computer, part 2. Shift register. Fig.2.7. Istruktura ng pagpaparehistro ng shift. Fig.2.8. Symbolic graphic designation ng isang four-bit shift register na may asynchronous installation input 0
      9. http://dfe3300.karelia.ru/koi/posob/log_basis/registr2.html Mga lohikal na pundasyon ng mga computer. Parallel shift registers. Fig.9.1 Block diagram ng isang 4-bit parallel ring register. Fig.9.2. Logic circuit ng 4-bit ring register
      10. http://www.bashedu.ru/perspage/wsap/posobie/chapter3/6.htm Mga Batayan ng digital electronics. 3.6. Nagrerehistro. Mga rehistro ng shift. kanin. 3.27. Shift registers sa D-flip-flops a), RS-flip-flops b) at isang pinagsamang register sa D-flip-flops
      11. http://www.texnic.ru/tools/cif_ms/7.html 7. MGA REGISTERS. 7.1. Mga rehistro ng shift. kanin. 248. Twelve-bit shift register
    Ibahagi