Laboratórium 1 - 11. Mérés: Programozható perifériák mérése

A VIK Wikiből
A lap korábbi változatát látod, amilyen (vitalap) 2012. október 22., 11:55-kor történt szerkesztése után volt. (Új oldal, tartalma: „{{GlobalTemplate|Villanyalap|LaborI11esMérés}} ==Fontos megjegyzés== '''Ez a mérés tavaly óta egészen más. Az ide föltett segédanyagoknak közük nincs hoz…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor kérlek javíts rajta egy rövid szerkesztéssel.

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót



Fontos megjegyzés

Ez a mérés tavaly óta egészen más. Az ide föltett segédanyagoknak közük nincs hozzá. Csak hogy ne lepődjetek meg.


Többen jelezték hogy a Beugró kidolgozás 1. kérdésre rossz a válasz

a helyes válasz elvileg ez: Az órajel 2O ns -os de a mintavételezés 4 ns-onként történik az órajel váltása így csak 4ns-onként lehetséges. Ezért létrejöhet 16ns-os periódusidő is ekkor természetesen a következő periódus 24 ns-os. A két órajelre ezek a mintavételi időpontok ráadásul eltérőek lehetnek, így ezért láthatunk két különböző órajelet.


A mérésről

Beugró

A beugró 2 kérdésből állt.

  • Az egyik az ellkérdésekből volt, a 13 -mas (_Mekkora átviteli sebesség érhető el EPP módban? Hasonlítsa össze a PC-n található külső interfészek átviteli kapacitásait (soros,párhuzamos,USB,Firewire)_.
  • A másik kérdés pedig: adott volt egy átviteli sebesség bps -ben és, hogy 8N1 kódolású. Mennyi idő alatt lehet átvinni 10byte-ot.

A mérés nem volt olyan érthetetlen, mint pl. a 3-mas bemutató mérés. Az anyagot érdemes alaposan átnézni, de sztem nem kell elveszni a részletekben. A mérés nagyjából megoldható, mi a 2. feladat elejéig jutottunk.

PicoBLaze-hez letöltés

Ellenőrző kérdésekre a válaszok:

Szilágyi Tamás ill. Nedi válaszai az villanysite-ról

  1. Az analizátor max. 3ns csatorna-csatorna eltérési tűréssel dolgozik. Az 50MHz-es jel 20ns-os periódusidejéhez képest ez jelentős hibforrás. (Mert a hozzávezetések induktív és kapacitív tulajdonságai miatt különböző késleltetéseket szenved az órajel.)
  2. Az eltérés az analizátor mintavételezési hibájából fakad, a 4ns mintavételi sebesség esetén a számláló állapotait is megfigyelhetjük.
  3. A 32 bites számláló ciklusideje f=50MHz-es órajelet feltételezve: T = 2^32/50e6 = 85,988s. A "szívhang" kb másodpercenként villog, ezért 2^32/85 = 2^26, tehát a 26. bitről üzemelhet a szívhang.
  4. 85,988s. (lásd előző)
  5. Csak a bemeneti nyomógombok vannak pergésmentesítve, ezért a kapcsolóknál lehetséges pergés.
  6. HW üzemmódban, ha csak a BTN5 van megnyomva: 16 lassabb bittel változik: T = 2^16 * 20ns = 1,31ms a leggyorsabban változó szegmens periódusideje.
  7. Ha a PC kész az adatok küldésére, küld egy RTS (Request To Send) jelet a kártyának. Ha a kártya kész a fogadásra, akkor válaszol egy CTS (Clear To Send) jellel, ekkor megkezdődik a soros átvitel.
    • ha van hardveres átvitelkezelés, akkor a CTS aktív állapotának hiányában a PC felfüggeszti az átvitelt addig, amíg a kártya újra kész nem lesz.
    • ha nincs engedélyezve a hardveres átvitelkezelés, akkor a CTS jel értéke közömbös.
    Hatásuk akkor érvényesül, ha az adó gyorsabban ad, és így a lassú vevő túlcsordul.
    • sebesség (bps)
    • 8N1 (adatbitek száma:8/7/6/5, paritás:nincs/van, stopbitek száma: 1,1.5,2)
    • átvitelvezérlés (hardveres, szoftveres, nincs)
  8. 100B = 800b, Byte-onként 1 stopbittel + 1 startbit 1000b. t = 1000/115200 s
  9.  ??? 115200 bps vagy 19200 bps
  10. A vevőoldali puffer szerepe: ha a kártyya foglalt, a küldött adatok nem vesznek el, hanem beíródnak a 16bites FIFO pufferbe. Az állapotjelző bitek (half/full) révén a szoftveres megvalósítás ezekkel tudja vezérelni az átvitelt a CTS változtatásával.
    • Standard Paralell Port
      • csak kimenő irányú adatátvitel
      • egyetlen 8bites kimeneti adatregiszter
    • Extended Paralell Port
      • a cím és az adatkivitel mellett e paraméterek visszaolvasása is lehetséges
      • 8bites címregiszter, 256 egyedileg címezhető adatregiszter, az első 4 címhez egy-egy 8bites írható/olvasható adatregiszter van (a nem használt címekre írt adatok elvesznek, hiba nincs).
    • Soros port: ~56 kbit/s
    • EPP: ~2 Mbit/s
    • USB 1.0,1.1: 12 Mbit/s
    • USB 2.0: 480Mbit/s
    • Firewire: 400Mbit/s
  11. kb 40MIPS a segédlet szerint. Egy utasítás 2 órajel alatt megy végbe, tehát 25MIPS
  12. a Picoblaze processzor
    • memóriája 256B (programtár) és 16B univerzális regiszter
    • I/O tartománya 256B (8bites I/O-busz)
    • utasításcsoportjai: vezérlő, interrupt, logikai, aritmetikai, shiftelés/forgatás, I/O
    • 8bites ALU, egyszintű INT, 15szintű stack
    • beágyazott vezérlőként vagy oktatási célú processzorként használható
  13. A végrehajtás minden utasítás után megáll. A regiszterek tartalma ekkor kiolvasható, megváltoztatható. Utána a program továbbléptethető.
  14. A töréspontoknál a program futása megszakítás hatására megáll. Így előre kijelölhetjük, hogy meddig fusson a program, majd leállás után kiolvashatjuk a memóriatartalmat és a regisztereket debugolás céljából.
  15. Csak olyanoknál, ahol a program megszakítható. Pl. hardveres adatkapcsolatok megvalósításakot egy-egy csomag vagy byte elküldése közben nincs értelme megállítani a programot. A belső számítások, feltételes elágazások helyessége viszont ellenőrizhető.
  16. Egyszintű, szintérzékeny: ha engedélyezve van, akkor a Picoblaze minden újabb utasítás elővétele előtt megvizsgálja az interrupt bemenet értékét. A megszakítási vektor: FF (ide általában egy ugró utasítást szokás tenni). Nem túl bonyolult feladatok megoldására való, mert nagyszámú interrupt kérés különválasztása már problémát jelenthet.
  17. A Picoblaze egy nagyon alapszintű processzor, melynél kisebbet semmihez nem érdemes használni. Microchip PIC mikrovezérlők gyártanak jóval nagyobb memóriával és hasznos portokkal, I/O egységekkel. Motorola ipari vezérlők is széles körben elterjedtek. Egyes helyeken még i386-ot is használnak beágyazott vezérlőként.

Házik:

4-es

nekem ez volt, rövid, ezért leírom, meg azért, mert a villanysite-on több megoldást láttam, de mindegyikben volt vmi apró hiba. Ez nem jelenti, hogy az enyémben nem lesz. Készítsen egy számlálót felhasználva az f1~1Hz frekvenciájú jelet. A számláló állapotát a LED-eken jelenítse meg.

-------------------------------------------------------------------------------------
					 LOAD	  s1, 00
					 OUTPUT	s1, 02		 ; a ledek törlése

zero:											; itt nulla (lett) az f1 jel
					 INPUT	 s0, 01		 ; nyomógombsor beolvasása
					 AND		s0, 04		 ; f1 kimaszkolása
					 JUMP	  Z , zero	  ; f1 még mindig nulla

					 ADD		s1, 01		 ; f1 felfutott, a számláló inkrementálódik
					 OUTPUT	s1, 02		 ; új értékét ki is küldjük a led-sorra

notzero:										; itt egy (lett) az f1 jel
					 INPUT	 s0, 01		 ; nyomógombsor beolvasása
					 AND		s0, 04		 ; f1 kimaszkolása
					 JUMP	  NZ, notzero  ; f1 még mindig nulla

; ha a maszkolás után "nemnullát" kapunk (azaz f1 még mindig magas) akkor folytatja a lefutó él ellenőrzését

					 JUMP	zero

; különben meg f1 lefutó éle megjött, kezdhetjük előlről az egészet (feltétel nélkül)
-------------------------------------------------------------------------------------

-- Ger****** - 2007.10.08.

2-es

Itt van a 2. házi feladat is, ami tesztelve volt mérésen, és jó!

-------------------------------------------------------------------------------------
; Bagi Tamás Zoltán
; DBREBY
; 2007.10.07.
;
; Labor I. 11. mérés heti felkészülési feladata
; Egy nyomógomb megnyomására a LED-ekre kiírja a gomb sorszámát (1-5)


; Konstans definíciók:

					 CONSTANT	 bt,	 01		; Nyomógombok
					 CONSTANT	 ld,	 02		; LED-ek
					 CONSTANT	bt1,	 80		; 1-es gomb-maszk (1000 0000)
					 CONSTANT	bt2,	 40		; 2-es gomb-maszk (0100 0000)
					 CONSTANT	bt3,	 20		; 3-es gomb-maszk (0010 0000)
					 CONSTANT	bt4,	 10		; 4-es gomb-maszk (0001 0000)
					 CONSTANT	bt5,	 08		; 5-es gomb-maszk (0000 1000)
					 CONSTANT	btm,	 F8		; Nyomógomb-maszk (1111 1000)

; Regiszter elnevezések:

					 NAMEREG		s0,	w		 ; Munkaregiszter
					 NAMEREG		s1,	tmp	  ; Segédregiszter


; Programtörzs:

					 LOAD			 w,  00		 ; A LED kijelzo törlése
					 OUTPUT		  w,  ld		 ;


Hurok:			 INPUT			w,	bt		; A gombok állapotának beolvasása
					 AND			  w,	btm	  ; f1, f50, f1k eltüntetése
					 LOAD		  tmp,	w		 ; Tisztázott (fxy nélküli) gombállapotok elmentése

					 XOR			  w,	bt1	  ; Az 1-es gomb van-e lenyomva (kizárólag)?
					 JUMP			 Z,	Gomb1	; Ugrás, ha igen.

					 LOAD			 w,	tmp	  ; A munkaregiszter helyreállítása
					 XOR			  w,	bt2	  ; Az 2-es gomb van-e lenyomva (kizárólag)?
					 JUMP			 Z,	Gomb2	; Ugrás, ha igen.

					 LOAD			 w,	tmp	  ; A munkaregiszter helyreállítása
					 XOR			  w,	bt3	  ; Az 3-as gomb van-e lenyomva (kizárólag)?
					 JUMP			 Z,	Gomb3	; Ugrás, ha igen.

					 LOAD			 w,	tmp	  ; A munkaregiszter helyreállítása
					 XOR			  w,	bt4	  ; Az 4-es gomb van-e lenyomva (kizárólag)?
					 JUMP			 Z,	Gomb4	; Ugrás, ha igen.

					 LOAD			 w,	tmp	  ; A munkaregiszter helyreállítása
					 XOR			  w,	bt5	  ; Az 5-ös gomb van-e lenyomva (kizárólag)?
					 JUMP			 Z,	Gomb5	; Ugrás, ha igen.

					 LOAD			 w,	00		; Vagy nincs lenyomva gomb, vagy több gomb van lenyomva ->
					 OUTPUT		  w,	ld		; -> A LED kijelzo törlése.
					 JUMP		Hurok

Gomb1:			 LOAD			 w,	01		; A LED kijelzon: 1 (0000 0001)
					 OUTPUT		  w,	ld		;
					 JUMP		Hurok				; Vizsgálat kezdete elölrol.

Gomb2:			 LOAD			 w,	02		; A LED kijelzon: 2 (0000 0010)
					 OUTPUT		  w,	ld		;
					 JUMP		Hurok				; Vizsgálat kezdete elölrol.

Gomb3:			 LOAD			 w,	03		; A LED kijelzon: 3 (0000 0011)
					 OUTPUT		  w,	ld		;
					 JUMP		Hurok				; Vizsgálat kezdete elölrol.

Gomb4:			 LOAD			 w,	04		; A LED kijelzon: 4 (0000 0100)
					 OUTPUT		  w,	ld		;
					 JUMP		Hurok				; Vizsgálat kezdete elölrol.

Gomb5:			 LOAD			 w,	05		; A LED kijelzon: 5 (0000 0101)
					 OUTPUT		  w,	ld		;
					 JUMP		Hurok				; Vizsgálat kezdete elölrol.
-------------------------------------------------------------------------------------