Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai kar Méréstechnika és Információs Rendszerek Tanszéke Holcsik Tamás Növényházi adatgyűjtő- és vezérlőrendszer tervezése Önálló laboratórium 2 KONZULENS EREDICS PÉTER BUDAPEST, 2012
Tartalomjegyzék To be filled
Bevezetés Az előző félévben megalkotott rendszerterv alapján álltam neki a konkrét modulok megtervezésének.. FELIRATOT KIVENNI A KÉPBŐL A rendszer három féle alapvető modulból áll, az IO modulból, a vezérlő modulból és a szenzormodulokból, A szenzormodulok feladata a különféle szenzorok által szolgáltatott jelek kiolvasásáa és a közös buszon való továbbítása. A szenzormodulokra azért van szükség, mert az egyes szenzormodulok interfésze teljesen másféle lehet, illetve a nagy távolságot nem lehet a saját interfészükkel áthidalni. A vezérlőmodul szolgál a szenzormoduloktól való adatok begyűjtésével, és a különféle beállított feltételek alapján vezérelni az IO modult. A vezérlőmodul rendelkezik egy LCD kijelzővel, amelyen futó grafikus felületen lehet a beállításokat elvégezni. Az IO modulok szerepe lesz a fizikai beavatkozók kapcsolása a buszon érkező parancsok szerint. Ebből a modulból is lehet több a rendszerben, ha az alkalmazás megköveteli, például több, vagy nagyméretű üvegház esetén Mikrovezérlőcsalád kiválasztása A megfelelő mikrovezérlő kiválasztása során néhány fontos szempontot figyelembe vettem ( stbstb) Egy alapvető döntési kérdés volt, hogy 8bites vagy 32bites mikrovezérlő kerüljön beépítésre. 8bites mikroezérlők jellemzően maximum 20MHz-es sebességgel működnek, amely itt a szenzor modulnál bőven elegendő lett volna, viszont általában CAN interfészt nem tartalmaznak, vagy amelyekben megtalálható, az jellemzően olyan áron van mint egy 32bites mikrovezérlő. További szempont volt az hogy a jövőre gondolva célszerű, ha ugyanaz a fejlesztőkörnyezet van használva és ugyanaz a szoftveres stack (library?), abban az esetben a később debuggolni kell, akkor nem kell két teljesen különböző család sajátosságait fejben tartani, mert ez nagyon zavaró lehet Továbbá mivel egy LCD kijelző is kerül a vezérlőmodulba, ezért szükséges az hogy lehetőleg minél gyorsabban frissíteni lehessen a kijelző tartalmát, ezzel a felhasználói élményt nem rontja el. Egy gyors reszponzív készülék benyomását kelti. A kijelző megköveteli hogy valamilyen párhuzamos 16bites adatbusszt kell előállítani, tehát olyan vezérlő kell amely erre képes. A 32bites mikrovezérlők közül egyre jobban terjednek a
Cortex-M mag alapú mikrovezérlők, ebből jelenleg a legkönnyebben a Cortex M3 mikrovezérlővel lehet megbarátkozni, mert sok dokumentéció fellelhető hozzá. Fejlesztőkörnyezetből létezik hozzá open source alapú, illetve programozó/debuggerből is hasonló a helyzet. A jelenleg beszerezhető családok közül az NXP, ST, illetve az ATMEL jöhet szóba. Ebből kiesnek az NXP gyértmányúak mert azokon nincs párhuzamos kimenet, emiatt a kijelző frissítési sebessége nagyon klassú lenne. JTAG A 8bites mikrovezérlők utánnézve e általában csak az alpvető perifériákat tartalmazzák beépítve (I2C, ADC, SPI, timerek) Modulok részletes bemutatása Mivel a modulok kapcsolási rajza A4-es méretű, ezért ezek a jelen beszámoló függelékében találhatóak meg, itt alább csak a modulokra jellemző lényeges kapcsolási részleteket emelem ki és mutatom be. Vezérlőmodul. A vezérlőmodul szolgál a szenzormoduloktól való adat lekérdezésére, illetve ezek alapján az IO modul vezérlésére, tartalmaznia kell ethernet interfészt hogy távolról menedzselhető lehessen, illetve megfelelő memóriával, hogy akár lehessen tárolni mérési eredményeket. Tápegység A tápegységnek biztosítania kell a mikrovezérlő illetve a különféle egyéb perifériák 3.3V-os tápfeszültségét az egész rendszer 24V-os feszültségéből. Ismerve azt, hogy a kijelző háttérvilágítása illetve az ethernetvezérlő fogyasztja a legtöbbet összesen (300mA) ezért csakis valamilyen kapcsolóüzem feszültsgszabályzó jöhet szóba, hogy kicsi legyen a veszteség. Erre a célra a microchip MCP16301-es viszonylag új integrált áramkörét használtam fel. A dokumentációja szerint képes akár 96%-os hatásfokkal működni, kis méretű SOT23-6 tokozással rendelkezik, magas a kapcsolási frekvenciája, emiatt kis méretű és értékű induktivitást lehet beépíteni. 600mA áram leadására képes, tehát így az áramkör céljait teljes mértékben kielégíti.
A tápegység sorkapcsokon kapja meg a 24V-os bemenőfeszültséget, ezen ttalálató egy SMJ33A típusú 33V-os túlfeszültséglevezető, az IC védelme céljából... Ethernet illesztő A specifikáció szerint az áramkörnek rendelkeznie kell ethernet interfésszel, a távoli számítógépes kapcsolat biztosítására. A mikrovezérlő kiválasztásánál az egyik nagy dilemma a beépített ethernet vezérlő, vagy a kijelzőhöz való memória interfész, mivel ebben a családban nem volt olyan típus amelyik mindegyiket támogatta volna. Végül az a típus lett felhasználva amelyikben nincs ethernet interfész, így ezt egy külső megoldással kell megvalósítani. Ennek összesen annyi hátránya van, hogy valamennyivel lassabb mintha beépített vezérlő lenne, de mivel ez a felhasználás nem kritikus sebességre, és árban körülbelül ugyanannyiba kerül az ethernet vezérlő, mint maga az ARM-hoz való fizikai interfész IC. Választásom a microchip ENC28J60-as típusára esett. Ezt elterjedten használják beágyazott rendszerekben, így kellő támogatás rendelkezésre fog állni a szoftverfejlesztés során. [KÉP] Az ethernet vezérlő SPI buszon kommunikál a mikrovezérlővel, ugyanarra a buszra van kötve mint az SD kártya, továbbá rendelkezik egy interrupt kimenettel a mikrovezérlő felé [ami csomagok érkezésekor jelez] Magjack stb Kijelző illesztés A kijelzőben található egy SSD1289-es vezérlő IC aminek köszönhetően a kijelző saját memóriával rendelkezik, elegendő csak akkor képet feltölteni a kijelzőre amikor valami változás történt, nem kell egyfolytában frssíteni. A kijelzővezérlő párhuzamos 16bites buszon kommunikál a mikrovezérlővel. A mikrovezérlő rendelkezik párhuzamos kimenettel is, ezért akár közvetlenül is meg lehetne oldani a vezérlést, de ennél sokkal kifinomultabb, ha a beépíett FSMC (flexible simple memory controller) modulon keresztül kommunikálunk a kijelzővel. Ennek köszönhetően a kijelző egy bizonyos memóriacímen lesz elérhető, így DMA műveletekkel gyorsan és automatikusan lehet frissíteni a képernyő tartalmát... REZISZTÍV
A vezérlőmodul kezelését alapértelmezetten a kijelzőbe beépített érintőképernyővel lehet végezni. Lényegét tekintve két elektromosan vezető műanyag rétegből áll, amelyek alaphelyzetben egymástó elszigetelve vannak egymástól. Érintés esetén ezek egy ponton érintkeznek, így egy-egy ellenállásosztó alakul ki. Ha erre a két.két ellenállásosztóra feszütséget kapcsulnk és a másikból olvasunk, majd megfordítva ugyanezt végigcsinéljuk, akkor megkapunk két feszültséget, amelyek az X és az Y koordinátával arányos. Ezt a műveletet a mikrovezérlő GPIO kimeneteivel, illetve AD konverterével meg lehet oldani, de maga a kijelzőmodul a jelen esetben tartalmaz egy ADS7843 típusú érintőkijelző vezérlő IC-t. Ez önmagában elvégzi a mérést, így csak az ADC értékeket kell kiolvasni. Rendelkezik egy TP_IRQ kimenettel, amely abban az esetben aktív, ha éppen meg van érintve a kijelző, ezt így megszakítással le lehet kezelni, és a megfelelő koordinátákat ismerve műveleteket lehet végezni a grafikus felületen SD kártya illesztés Mérési adatok tárolására, illetve a kijelzőn és a weblapon használandó grafikák tárolására szükség van valamilyen nagyobb kapacitású memóriára. Ez lehet valamilyen Flash alapú memória IC, vagy lehet használni SD kártyát. Manapság az SD kártyák ára nagyon alacsony, illetve könnyű őket kezelni, valamint cserélhető, ezért ezt terveztem bele. KEP Az SD kártyákat lehet az egyszerű SPI interfészen keresztül kezelni, illetve létezik egy gyorsabb, 4bites párhuzamos kommunikációs módja is, de annak nincsen hozzáférhető dokumentációja, így a jelenlegi alkalmazásban SPI módos kezelés szerint van bekötve. A mikrovezérlőhöz a MISO, MOSI, SCK jeleken csatlakozik, illetve még az M_CS kiválasztó jellel. Ezen a buszon található meg az ethernet vezérlő is így ezen osztozkodva egyszerre csak az egyik eszközzel lehet kommunikálni. CAN busz illesztés A CAN buszhoz való vezérlőt beépítve tartalmazza a mikrovezérlő, így csak a buszmeghajtót, a fizikai réteget kell hozzátervezni. Ilyen meghajtó, a Microchip MCP2551-es integrált áramköre, amely biztosítja a megfelelő teljesítményt a busz meghajtásához, illetve a sebessége is elegendő jelen alkalmazáshoz. Rendelkezik a felfutási idő korlátozó áramkörrel amivel
Az IC mikrovezérlővel a TXD és az RXD lábon csatlakozik. Küldés során ha a TXD alacsony szinten van, akkor a kimeneten a CANH és CANL vezeték domináns állapotban van(miaz?), magas TXD szint esetén recesszív állapotban. Az RXD láb ehhez megfelelően, akkor van magas szinten, ha recesszív szint van a CAN buszon. Bár a meghajtó IC a dokumentáció szerint rendelkezik busz felőli túlfeszültségvédelemmel, a biztonság kedvéért beépítésre került egy NXP gyártmányú PESD1CAN típusú, kifejezetten CAN buszra kifejlesztett túlfeszültség levezető dióda. Szenzormodul A szenzormodulok kis méretű áramkörök, feladatuk jellemzően a különbőző interfésszel rendelkező szenzorok illesztése a CAN buszra, és továbbításuk a vezérlőmodul számára. Így újabb szenzortípus esetén csak el kell készíteni egy kisméretű adapterpanelt, amelyet rá kel dugni a szenzormodulra. Továbbá rendelkezik annyi IO lábbal a modul amely alkalmas még kis méretű LCD vagy LED-ek vezérléséhez, vagy nyomógombok kezelésére, abban az esetben ha szükség van rá. <<ez nem jól kapcsolódik ide
A szenzormodulba egy STM32F103[XXXX] típusú mikrovezérlő van beépítve, ez rendelkezik 32kbyte FLASH memóriával 8kbyte RAM-mal, CAN, SPI, I2C interfésszel, illetve AD konverterrel, így a célnak tökéletesen megfelel, könnye beszerezhető és olcsó mikrovezérlő. A modult tápfeszültséggel a fentebb megismert MCP16301-el felépített tápegység látja el. Ide szükséges szintén szükséges volt a kapcsolóüzemű tápegység, a hatásfok és a hőtermelés miatt. A szenzormodul a fentiekben megismert CAN illesztővel tart kapcsolatot a vezérlővel, itt is megtalálható a túlfeszültség védelem. [KÉP] A modul csatlakozó kiosztása itt látható, rendelkezik I2C és SPI lábakkal, illetve mindegyik láb használható analóg bemenetnek, így csak a szükséges kis méretű NYÁK lemezt kell elkészíteni és hozzácsatlakoztatni. IO modul Az IO modul szerepe az rendszerben a különféle végrehajtóegyégek kapcsolgatása, illtve néhány általános IO kimenetet biztosítani a külvilág irányába, későbbi fejlesztések esetén lehessen ezeket felhasználni, kipróbálni, mielőtt új modul lenne tervezve vagy a jelenegi ált lenne tervezve. Felépítését tekintve a mikroezérlő ugyanaz mint a szenzormodulban, mivel itt sincs túl nagy követelmény a beépített perifériákkal szemben, tartalmaznia kell CAN modult, illetve mivel
szükséges mérnie a 24V-os tápfeszültséget, ezért tartalmaznia kell egy ADC modult, ezért jó lesz ide az [STM32..] Motorok vezérlése A fóliasátor ajtajait 24V-os DC motorral rendelkező lineáris egységek mozgatják. A mozgás irányát a motorokra adott feszültség polaritásával lehet megváltoztatni, a lineáris egység mozgási tartományait végálláskapcsolók érzékelik, amelyek megszakítják a motor áramellátását végálláshoz érés esetén. Az irányváltást a jelenlegi felépítésben nagyáramú relék végzik, mivel ezek az eddigi évek során bizonyították alkalmasságukat, ezért ezek továbbra is beépítve maradnak, tehát az áramkörnek ezeknek a vezérlését kell megoldania. A relék az autóelektronikában használatos szabványos váltórelék, 12V és maximum 200mA-t vesznek fel működtető tekercsenként. Mivel biztosítani kell azt, hogy a jelenlegi felépítéssel kompatibilis legyen az új áramkör, ezért a reléket felülről kell meghajtani, tehát +12V-ot kell szolgáltatni a kimeneten a relék kapcsolásához. Ezt áramköri szempontból P csatornás FET-ekkel lehet a legkönnyebben megvalósítani. A kapcsolás szerint a mikrovezérlő az SW vezetéken keresztül hajtja az N csatornás FET-et, aminek hatására, ha H szintet kapcsol, akkor a P csatornás FET Gate-jét lehúzza a földre, így az vezetni kezd és megjelenik a kimeneten a 12V. Az alkalmazott FET IRFR5505 típusú, amely képes leadni 18A-t így a feladat szempontjából többszörösen túl van biztosítva, de cserébe olcsón beszerezhető típus. A kimenet üvegcsöves biztosítóval túláram ellen védve van, illetve a kimeneten még található egy védődióda, amely a relé kikapcsolásakor keletkező feszültséglökés ellen véd a megfelelő polaritással. A modul tápegysége Mivel az egész rendszer 24V feszültségről működik, és a relék 12V működtető feszültségűek, biztosítani kell működtető feszültséget a megfelelő terhelhetőséggel, ezért kapcsolóüzemű
tápegységet építettem az áramkörbe. A tápegység egy LM2576-12 típusú IC-vel van felépítve, ez akár 3A-rel is terhelhető, ha a megfelelő terhelhetőségű induktivitás van mellé építve, a jelenlegi alkalmazásban maximum 1A-es terhelhetőség alatt kell teljesítenie, ezért ide tökéletesen megfelel. KÉPET KICSERÉLNI nem szép Az IO modulba, mivel a mikrovezérlőn kívül csak a CAN transceiver van a 3.3V-on, ezért az adatlapok szerint maximum kb 15mA fogyasztásra kell számolni 3.3V-on. Mivel itt rendelkezésre áll már 12V-os feszültség, ezért ide költséghatékonyság szempontjából egy egyszerű lineáris feszültségszabályzó lett beépítve a 3.3V-os ágra, figyelembevéve az létrejövő disszipiációt is az eszközön. A nyomtatott áramköri lapok megtervezése A kapcsolási rajzok megrajzolása után lehetett nekiállni a NYÁK lapok megtervezésének, a fő szempont az volt, hogy csak a szükséges legkisebb méretűek, és könnyen szerelhetőek legyenek az elkészült áramkörök. A felhasznált tervező szoftver az elterjedtem használt Altium Designer 10-es verziója volt. Az alkatrészekből amit csak lehett SMD kivitelben terveztem a modulokra, passzív alkatrészek a szenzor és az IO modulon 1206-os méretűek, a vezérlő modulon a nagyobb alkatrészsűrűség miatt 0805-ös méretűek, így kényelmesen elférnek. A huzalozás és a furatátmérőket úgy választottam meg, hogy ne szémoljanak fel rajzolatfinomsági felárat az áramkör legyártása során. A legvékonyabb vezetősáv szélesség 10mil és a legkisebb furatátmérő 0.6mm. Az egyes moduloknál a kapcsolóüzemű tápegyégeknél figyelmbe vettem az alkatrészek elhelyezsénél és a vezetősávok rajzolásánál a fontosabb irányelve betartására. Az alkatrészek elhelyezésénél figyelmbe vettem, hogy a magasabb alkatrészek a felső rétegre kerüljenek, így később a dobozolás egyszerűsödik, és az áramkörök kultúrált megjelenésűek. Az áramkörök tervezése során hasznosnak bizoyult a NYÁK tervező 3D megjelenítési képessége, így kpet lehett kapni arról, hogy minden alkatrész megfelelően elfér-e. Összeszerelés -> valahova még képeket, lefényképezni a modulokat, vagy 3d nézet. Összefoglalás A mostani munkám során az előzőekben megalkotott rendszerterv alapján a konkrét áramkörök megtervezésre kerültek, az ott felállított követelményeknek megfelelően. Konklúzió
Irodalomjegyzék ST honlapja ST adatlapok ST segédletek Mcp adatlap Enc adatlap ST memóriaillezstés
Függelék -> az a 4 oldalnyi kapcsolási rajz