Keresés

Címkék

2025-05-02

Soros és párhuzamos portok

VIGYÁZAT! Jelen oldalt a tömörség miat szakszavakkal tömködtem tele, így megértése nem könnyű. Javaslom továbbá, hogy olvass utána a soros port működésének, mivel nem garantálom, hogy minden pontosan van itt leírva.

Elektromos eszközök között történő adatok közlésére lehet a portokat használni. Összesen 5 port található a processzor tüskéin: P0, P1, P2, P3, és a soros port.

A P0-P3-on lehet párhuzamos elrendezésben küldeni adatot. Ez annyit jelent, hogy az elküldött byte mind a 8 bitje egyszerre jelenik meg a porton. Hátránya, hogy ez sok vezetéket igényel.
P0 @ 80h
    0@80h
    1@81h
    2@82h
    3@83h
    4@84h
    5@85h
    6@86h
    7@87h

P1 @ 90h
    0@90h
    1@91h
    2@92h
    3@93h
    4@94h
    5@95h
    6@96h
    7@97h

P2 @ 0a0h
    0@a0h
    1@a1h
    2@a2h
    3@a3h
    4@a4h
    5@a5h
    6@a6h
    7@a7h

P3 @ 0b0h
    0@b0h
    1@b1h
    2@b2h
    3@b3h
    4@b4h
    5@b5h
    6@b6h
    7
@b7h
A P0, P2 és P3 nem mindig használható, mivel a processzor tüskekiosztásán néhány fontos funkciót ellátó tüske egyebeesik ezen portok helyével. Ha külső memóriával akarunk kommunikálni (prog. vagy RAM), vagy megszakításokkal kapcsolatos műveleteket akarunk végezni (INT¤, T¤, soros), akkor csak a P1 áll rendelkezésünkre teljes egészében.

A soros porton ellenben üzenetet "lassan" lehet közölni; minden bit egymás után jön. Emiatt szükség van egy órajelre, ami metronómként üzemel, vagyis jelzi, hogy új bit lett közölve. Előnye, hogy nem igényel sok kábelt, viszont viszonylag sokat kell az adatra várni.
Az adat bájtonként küldhető el. Mindig a byte legkisebb helyiértékű bitjével kezdődik az adatátvitel.
A 99h címen lakó SBUF regiszter olvasásakor lehet megtekinteni a fogadott bájtot, amikor beleírunk, akkor meg a beírt bájtot tudjuk továbbítani. Az SCON@98h kezelésével állítható be a soros port működése.

SCON felboncolva bitekre:

  • 7@9fh: működési üzemmód 0. bit
  • 6@9eh: működési üzemmód 1. bit
  • 5@9dh: 0-s bit viselkedése
  • 4@9ch: fogadhatunk adatot?
  • 3@9bh: 9. bit küldéskor
  • 2@9ah: 9. bit fogadáskor
  • 1@99h: adat teljesen elküldve?
  • 0@98h: adat teljesen fogadva?

Adat csak akkor küldhető/fogadható, ha az SCON.1-es vagy SCON.0s bit ki van kapcsolva, a műveletnek megfelelően. Mindig a szoftvernek kell erről gondoskodni. Továbbá fogadás esetén az SCON.4-nek bekapcsolva kell lennie.

Az SCON.5-ös bit megmondja, hogy SCON.0 mikor kapcsolhat be:

  • 01-es módban:
    • 1: csak 1 lehet a megállító bit
    • 0: bármilyen lehet a megállító bit (1 és 0)
  • 10 és 11 módban:
    • 1: csak 1es lehet a paritásbit
    • 0: bármilyen lehet a paritásbit
4 működési üzemmód áll rendelkezésünkre:
  • 00: 8 bites shift regiszter (fix sebesség)
  • 01: 8 bites start+stop (állítható sebesség)
  • 10: 9 bites s+s+paritás (fix sebesség)
  • 11: 9 bites s+s+paritás (állítható sebesség)
00-s módban az SBUF-ba írt szám a processzor órajelének 12-edével történő sebességgel küld adatot, mindenféle "fűszerezés" nélkül (csak 8 bitet küldünk, semmi mást); ugyanez elmondható az adatfogadásról is. Az RXD tüskén történik az összes kommunikáció: küldés és fogadás. A TXD tüskén található meg az órajel, amit a processzor ad ki, és a küldő berendezésnek is ezt kell használni órajelként.
A küldési órajel a kristály-órajel 12-ede.

01-s módban az SBUF-ban található adat 2 extra bittel társul: az elején egy 0, a végén pedig 1-es bittel. A TXD az jel küldésére, RXD pedig annak fogadására alkalmas. A küldés órajele az 1-es, vagy 2-es időzítő lejártához kötött; ezért állítható a sebesség.
A fogadás megkezdéséhez az RXD tüskén lévő feszültségnek 1-ről 0-ra kell váltani, mivel a 0-s jel jelenti a kommunikáció megkezdését.

10-s módban az adatküldés/-fogadás egy 0-s indító bittel, majd az SBUF tartalmával, egy paritásbittel, majd végül egy 1-es bittel zárásként történik. A paritásbittel van alkalmunk ellenőrizni a fogadott adat helyességét; egyébként ez akármi lehet, az SCON.3-as bit mutatja meg. A fogadás hasonlóképpen zajlik, csak a paritásbit az SCON.2-be kerül be.
Ebben a módban a küldési órajel a kristály-órajel 64-ede.

A 11-es mód megegyezik a 10-essel, kivéve abban, hogy ennek állítható a küldési sebessége.

Nincsenek megjegyzések:

Megjegyzés küldése

Mit gondolsz?