202694. lajstromszámú szabadalom • Kapcsolási elrendezés infravörös adó és vevő egységeken keresztül adatforgalom lebonyolítására
1 HU 202694 B 2 feltételezve, redundanciák átvitelével együtt, kb. IMbit/sec adatátviteli sebesség adódik, ha az átviendő adatmennyiség őOkbyte. További jellegzetesség, hogy a kétirányú adatátviteli sebesség nem egyforma, tekintettel arra, hogy a két irányba különböző mennyiségű adatot kell küldeni. Ezért a megoldást csak techográftól a táska felé vezető irányban alkalmaztuk. Tekintettel arra, hogy a kiolvasó táska hordozható kivitelű, a kapcsolási elrendezés kialakításánál igen nagy súllyal esik a latba a felhasználandó integrált áramkörök mennyisége és fagyasztása is. Ez az az ok, ami miatt az adatátviteli egységet szinte végletekig le kellett egyszerűsíteni. Csak olyan nagyintegráltságú áramköröket alkalmazhattunk, amelyek CMOS változatban is kaphatók. Most az 1. és 2. ábrára hivatkozunk, amelyen az itt vázolt feltételeket is kielégítő hardware elrendezés látható. A készülék a Z80-as típusú processzor család egyes egységeit használja fel. A soros adatátvitelhez szükséges komplex integrált áramkör a SIÓ soros bemeneti egység, amely a soros adatfolyamot 8 bites párhuzamosan kiolvasható egységekre tördeli. A SIÓ soros bemeneti egység egy négyes mélységű átmeneti tárral is rendelkezik, ami a beérkezett adatbyte-ok átmeneti tárolására szolgál, arra az esetre, ha a processzor nem tudná időben elvenni az adatokat. A SIÓ soros bemeneti egység programozható olyan üzemmódba, hogy az adatok megérkezését egy, az erre a célra felhasználható, kimenetén jelezze. Ez az RxRDY jel. Ezen a lábon egy L szint jelenik meg akkor, ha van vett adat az átmeneti tárolók egyikében. Ez a jel mindaddig L szintű, ameddig az adatot a processzor ki nem olvassa. A SIÓ soros bemeneti egység két független adatcsatornával rendelkezik. Ezek közül az egyiket egy szabványos RS232 interface csatornának programozzuk, és ez szolgál a hordtáska- számítógép összeköttetés kialakítására. A másik csatornát az infravörös adatátvitel számára tartjuk fenn. Ez a csatorna IV infravörös vevőt és IA infravörös adót tartalmaz. Az IV infravörös vevőhöz az RxRDY jelet előállító DKD dekódoló és RXC vételi órajelet előállító CKV órajel visszaállító egységek csatlakoznak. Az adatátviteli sebességet a SIÓ soros bemeneti egységhez kapcsolt programozható CTC időzítő és számláló egység kimenetei állítják be, mégpedig külön-külön a két soros adatcsatorna számára. A gyors kiolvasás biztosítására a CPU processzor olyan speciális utasításkészlettel rendelkezik, amely képessé teszi arra, hogy 21 órajelperiódus alatt elvegyen egy byte-ot a kijelölt perifériás egységtől és a memória egy meghatározott területén egy adott címtől kezdve folytonosan elhelyezze. Ezek az INIR és INDR utasítások, amelyek a CPU processzor C regiszterében megadott című perifériából kiolvassák a B regiszterben megadott darabszámú byte-ot a HL regiszterben megadott kezdőcímtől kezdve. Az INIR regiszternél növekvő címek irányába, az INDR regiszternél csökkenő irányban történik az adatok mentése. A fenti sebesség 4MHz órajel esetén kb. 2Mbit/sec-os adatsebességet jelent, abban az esetben, ha össze tudjuk szinkronizálni a RxRDY jelet a kiolvasással és az elmentéssel. Ezt a feladatot a CPU processzor WAIT jelének felhasználásával oldjuk meg egy WAIT-L logikai áramkör közbeiktatásával. A CPU processzort a WAIT jellel vezérelt várakozás bemenetére adott L szintű jellel korlátlan ideig meg lehet állítani. Tekintettel arra, hogy a byte számláló csak egy byte szélességű (B regiszter), ezért célszerű az adatátviteli blokkok hosszát is 256 byte-ra választani, amihez jön még a két ellenőrző byte. A szinkronizálást biztosító WAIT-L logikai áramkör rajza a 2. ábrán látható, amelyet tulajdonképpen egy időzítő-byteszámláló áramkör képez. A kapcsolás Ul, U2 tárolókból és U3 számlálóból áll, amelyek a rajzon vázolt módon kapcsolódnak egymással. A kapcsolási elrendezés működése a következő. Az adatok átolvasása a START jel kiadásával kezdődik, a regiszterek és a SIÓ soros bemeneti egység inicializálása után, valamint a tachográfnak átküldött parancsot követően. A START jel kiadásának hatására a D típusú U2 tároló Q kimenete H szintű lesz, amelynek hatására a CPU processzor WAIT bemenete L szintűvé válik (RxRDY jel H szintű, hiszen még nem étkezett adat). A CPU processzor tehát megáll a következő utasítás végrehajtása közben és azon belül is az első utasítás lehívásnál. Ebben a ciklusban történik meg az INIR utasításon belül az első byte átvitele. A START jel továbbá kitörli az U3 számlálót. Ez a 12 bites számláló, - amelyből csak az első 8 bitet használjuk - az átvitt byte-okat számlálja (RxRDY jel). Amikor a beolvasott adatok száma 256, altkor az U3 számláló H kimenetén egy lefutó ág negáltja törli a D típusú U2 tárolót, azaz a WAIT jel H szintű lesz függetlenül a RxRDY jel állapotától. A két ellenőrző byte pedig a SIÓ soros bemeneti egység pufferregiszterjeiben van, ahonnan kiolvashatók. A viszonyokat a 3. ábra idődiagramja mutatja. A fenti megoldásnál két lehetséges hiba léphet fel, de az áramkör ezekre is megfelelő válasszal reagál:- az előírt 256+2 byte-nál több adatbyte érkezett. Ezt onnan tudjuk meg, hogy a SIÓ soros bemeneti egység státuszában overrun hibajelzés keletkezik, mivel az adatok nem fémek el az átmeneti tárolásra szolgáló belső regiszterekben.- az előírt byteszámnál kevesebb adat érkezik. Ez az eddig ismertetett megoldásokban katasztrofális meghibásodást eredményezne, mivel a processzor befagyna egy ilyen várakozási állapotban. Ennek elkerülése érdekében felhasználtuk a CTC időzítő-számláló egység még meglevő egyik csatornáját. Ezt a csatornát a 256 byte átviteléhez szükséges idő másfélszeresére programozzuk. Ez a time-out jel. Amikor az ennek megfelelő idő eltelik, a blokk adatátvitelét befejezzük és ismétlést kérünk. Az itt vázoltakból látható, hogy a kapcsolási elrendezés tulajdonképpen az U3 számláló nélkül is üzemképes lenne, de a time-out jelbe beépített másfélszeres időtöbblet jelentősen megnövelné a hibás blokkok ismétlésének idejét. Ennek a problémának a megoldása azért volt ilyen fontos, az adatátviteli hibák túlnyomó többsége ilyen, megszakadás jellegű. Az itt vázolt működésnek megfelelő algoritmus folyamatábrát a 4. ábrán adtuk meg. A folyamatábra külön magyarázatra nem szorul, az eddig ismertetett működést tömören, algoritmus formájában foglalja össze. Az algoritmus egyes döntési állapotaihoz az alábbi rövid megjegyzések tartoznak: 5 10 15 20 25 30 35 40 45 50 55 60 65 3