„Laboratórium 1 - 11. Mérés: Programozható perifériák mérése” változatai közötti eltérés

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
(Ú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…”)
 
6. sor: 6. sor:
 
'''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.'''
 
'''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.'''
  
 +
==Érdeklődőknek==
  
=====Többen jelezték hogy a Beugró kidolgozás 1. kérdésre rossz a válasz =====
+
Ha felkeltette az érdeklődésedet az FPGA programozás, ezeket a tárgyakat érdemes lehet hallgatni:
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.
 
  
 +
[http://www.mit.bme.hu/oktatas/targyak/vimim286 Logikai tervezés]: bővebben FPGA-ról, hardvertervezésről, perifériákról.
  
==A mérésről==
+
[http://www.mit.bme.hu/oktatas/targyak/vimim363 Mikrorendszerek tervezése]: mikroprocesszoros rendszerek tervezése FPGA-n belü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.
+
==Házi feladatok==
  
[http://www.mediatronix.com/pBlazeIDE.htm PicoBLaze-hez letöltés]
+
Megváltozott, nincs információ róla. [http://wiki.test.sch.bme.hu/index.php?title=LaboRI_11._m%C3%A9r%C3%A9s&action=edit Írd meg te]!
  
==Ellenőrző kérdésekre a válaszok:==
 
Szilágyi Tamás ill. Nedi válaszai az [http://villany.sch.bme.hu/document.php?doc_id=9182 villanysite]-ról
 
<ol>
 
<li> 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.)
 
<li> 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.
 
<li> 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.
 
<li> 85,988s. (lásd előző)
 
<li> Csak a bemeneti nyomógombok vannak pergésmentesítve, ezért a kapcsolóknál lehetséges pergés.
 
<li> 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.
 
<li> 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. 
 
<ul>
 
<li> 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.
 
<li> ha nincs engedélyezve a hardveres átvitelkezelés, akkor a CTS jel értéke közömbös.
 
</ul> Hatásuk akkor érvényesül, ha az adó gyorsabban ad, és így a lassú vevő túlcsordul.
 
<li>
 
<ul>
 
<li> sebesség (bps)
 
<li> 8N1 (adatbitek száma:8/7/6/5, paritás:nincs/van, stopbitek száma: 1,1.5,2)
 
<li> átvitelvezérlés (hardveres, szoftveres, nincs)
 
</ul>
 
<li> 100B = 800b, Byte-onként 1 stopbittel + 1 startbit 1000b. t = 1000/115200 s
 
<li> ??? 115200 bps vagy 19200 bps
 
<li> 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.
 
<li>
 
<ul>
 
<li> Standard Paralell Port
 
  <ul>
 
  <li> csak kimenő irányú adatátvitel
 
  <li> egyetlen 8bites kimeneti adatregiszter
 
  </ul>
 
<li> Extended Paralell Port
 
  <ul>
 
  <li> a cím és az adatkivitel mellett e paraméterek visszaolvasása is lehetséges
 
  <li> 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).
 
  </ul>
 
</ul>
 
<li>
 
<ul>
 
<li> Soros port: ~56 kbit/s
 
<li> EPP: ~2 Mbit/s
 
<li> USB 1.0,1.1: 12 Mbit/s
 
<li> USB 2.0: 480Mbit/s
 
<li> Firewire: 400Mbit/s
 
</ul>
 
<li> kb 40MIPS a segédlet szerint. Egy utasítás 2 órajel alatt megy végbe, tehát 25MIPS
 
<li> a Picoblaze processzor
 
<ul>
 
<li> memóriája 256B (programtár) és 16B univerzális regiszter
 
<li> I/O tartománya 256B (8bites I/O-busz)
 
<li> utasításcsoportjai: vezérlő, interrupt, logikai, aritmetikai, shiftelés/forgatás, I/O
 
<li> 8bites ALU, egyszintű INT, 15szintű stack
 
<li> beágyazott vezérlőként vagy oktatási célú processzorként használható
 
</ul>
 
<li> 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ő.
 
<li> 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.
 
<li> 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ő.
 
<li> 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.
 
 
<li> 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.
 
</ol> 
 
 
==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.
 
 
<pre>
 
-------------------------------------------------------------------------------------
 
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)
 
-------------------------------------------------------------------------------------
 
</pre>
 
 
-- [[KissGergely|Ger******]] - 2007.10.08.
 
 
====2-es====
 
Itt van a 2. házi feladat is, ami tesztelve volt mérésen, és jó!
 
 
<pre>
 
-------------------------------------------------------------------------------------
 
; 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.
 
-------------------------------------------------------------------------------------
 
</pre>
 
  
 +
==A mérésről==
  
[[Category:Villanyalap]]
+
Megváltozott, nincs információ róla. [http://wiki.test.sch.bme.hu/index.php?title=LaboRI_11._m%C3%A9r%C3%A9s&action=edit Írd meg te]!

A lap 2012. november 5., 20:15-kori változata

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.

Érdeklődőknek

Ha felkeltette az érdeklődésedet az FPGA programozás, ezeket a tárgyakat érdemes lehet hallgatni:

Logikai tervezés: bővebben FPGA-ról, hardvertervezésről, perifériákról.

Mikrorendszerek tervezése: mikroprocesszoros rendszerek tervezése FPGA-n belül.

Házi feladatok

Megváltozott, nincs információ róla. Írd meg te!


A mérésről

Megváltozott, nincs információ róla. Írd meg te!