Home
13 Anhang
Contents
1. rel sell E E ri wll lt lt i a Ee nazaj rn E Te C9 eu LL LLL C cu oo 02 LL co eu fur Fu A 02 EE asss EEE EEE EEE ssp HERREN pp zs EEE sssi E gt gt x gt gt gt x x gt x gt x gt gt x x gt gt gt gt gt x gt xp gt W
2. art D ledi aus Plus1 ja set y 5 41 increment nein w Display1 clear ja Display1 arbeit q1 EN q1 lt 0 qb1 lt q Plus1 reset set 1 set nein Minus1 ja 1 decrement SCH Vektor 41 Y x oi lt 7 a XP nein Minus1 reset 104 Atemschutzger te berwachung 5 7 13 auswahl 5 7 13 1 Programmbeschreibung Dieses Unterprogramm ist f r alle drei Truppmodule geeignet Bei der Ger tevariante PA 300 wird es zur Ermittlung der restlichen Arbeitszeit nach Ankunft an der Einsatzstelle aufgerufen Zun chst wird berpr ft welcher Startdruck relevant ist Dazu wurde in der Funktion ziel ermittelt welches Truppmitglied den gr ten Luftverbrauch w hrend des Hinwegs hatte Dies ist das ausschlaggebende Truppmitglied Somit ist der relevante Startdruck ermittelt und die verbleibende Arbeitszeit kann definiert werden Hierf r wird der Beh lterdruck bei der Meldung Ziel an abgefragt und anschlie end mit Hilfe der folgenden Wertungstabellen welche dem Programm zur Verf gung stehen die Zeit ermittelt Startdruck von 300 Bar
3. STEE 290 280 270 260 250 240 230 220 210 200 R ckmarsch nach 59 28 25 22 18 14 11 7 4 sofort min Startdruck von 290 Bar u 280 270 260 250 240 230 220 210 200 190 R ckmarsch nach 28 56 24 2 17 13 10 6 2 sofort min Startdruck von 280 Bar Be 270 260 250 240 230 220 210 200 190 180 R ckmarschnach 56 25 23 19 16 12 8 B 1 sofort min Startdruck von 270 Bar 260 250 240 230 220 210 200 190 180 170 R ckmarsch nach 25 54 22 18 414 11 7 4 sofort sofort Un min 105 Atemschutzger te berwachung 5 7 14 led11 5 7 14 1 Programmbeschreibung Dies Modul dient dazu einzelne LED s einzuschalten und zuvor alle anderen des jeweiligen Truppe auszuschalten Solche Module werden h ufig auch Treiber genannt Es ergeben sich somit 9 LED Treiber je Trupp 3 Da die LED s einzeln leuchten sollen werden zu Beginn alle anderen mit Hilfe des zugeh rigen Moduls ausgeschaltet Der entsprechende Port an dem sich die Diode befindet wird eingelesen mit einer Maske ODER verkn pft und im Anschluss daran wieder zur ckgegeben Folgende Masken werden f r die Treiber verwendet LED Modul Port PIO Maske __ 1
4. 114 EE 118 9 BEDIENUNGSANLEITUNG TGK3000 120 9 1 AlGEMEINES 120 9 2 Aufbau der der TGK30001 ea 120 9 3 Menustr ktur der IGK3000 iei er eebe Eege 120 9 3 Menustr kt r der TER 121 9 4 Auswahlm glichkeiten der einzelnen Abfragen 124 10 TABELLEN E 125 10 1 S1gnallisten EE 125 10 2 Steckerbelegungen E 127 10 3 STUCKIISTEN SE 130 10 3 1 280 EMUF EE 130 70 3 2 cC M OE 131 10 3 3 PIOVerteiler d E d 131 10 3 4 u uuu uuu u ana a 132 1005 PIDIN Plaine u I 132 10 36 PID SECK CP K 132 10 4 Kostenaufstellung Qu 132 11 ERKL RUNG DER PROJEKTTEILNEHMER 133 12 QUELLENNACHWEISE 134 Atemschutzger te berwachung 13 ANHANG 13 1 Quellcode 13 Atemschutzger te berwachung 1 Einleitung 1 1 Projektbeschreibung Dieses Projekt wurde im Rahmen der Weiterbildung zum staatlich gepr ften Techniker f r Elektrotechnik innerhalb einer zehnw chigen Projektp
5. 102 5 G E a A O E 104 5 7 12 1 Programmbeschreibung 202222000 00 104 5 7 12 2 Programmablaufplan 104 D Ey E EE 105 5 7 13 1 Programmbeschreibung 105 Atemschutzger te berwachung STAR MCN rr ____ 106 9 7 14 1 Programmbeschreibung rrr rte 106 5 7 14 2 Programmablaufplan led11 a 106 EE 107 5 7 15 1 ProgrammbeschreibuNg u ee een 107 5 7 15 2 Programmablaufplan 1 107 9 4 10 ee ee 108 5 7 16 1 Programmbeschreibung 200000000 01 nnn nennen 108 5 7 16 2 Programmablaufplan 1 22 22 22000000 0000000000 109 5 8 Daten bermittlung zwischen System und Pc 111 INBETRIEBNAHME geed 112 6 1 EN e E 112 6 1 1 Testprotokoll des ersten Testprogramms check1 113 6 2 Aufgetretene Probleme und Losungen
6. main gt im 2 Interruptmode 2 v v iniim 2 a2con 83 init b2con 83 ei enable interrupt 69 Atemschutzger te berwachung o Initialisierung samtlicher Variablen nein enable 1 ja set 1 i gt ncrement enablei reset v szl sz11 sz12 s13 0 Da reset truppi ja 11 pi increment nein lediaus Initialisieren s mtlicher Variablen Display1 clear 1 Display1 Frei pressul1 1 set enablei set nein 1 reset B A 70 Atemschutzger te berwachung enable2 ja set trupp2 increment nein enable2 reset sz2 sz21 sz22 sz23 0 Y rechnen2 reset trupp2 ja 11 p2 increment nein led2aus Initialisieren s mtlicher a Variablen
7. 90006090 900025010 Ald 9002 20 90 90028010 Ae ds q 9002 08 9002 20 9 90022082 9002205 LL An 900272074 1opooepssaupy DL POL POL 90022001 90002090 Bunue d USIUI 9 81 512 SH S74 91 Ge yc EI ES 292 264 ues 58 8 9002 9002 9002 2 9002 9002 324 LO N 13 Atemschutzger te berwachung 3 Allgemeines 3 1 Hardware 3 1 1 Zilog Z80 Der Z 80 z hlt zu den erfolgreichsten Prozessoren aller Zeiten Der Hersteller Zilog nahm sich Intels 8080 zum Vorbild und verbesserte ihn sowohl von der Integrierbarkeit Rechnersysteme als auch vom Maschinenbefehlssatz her Dadurch entstand ein sehr leistungsf higer Prozessor der allerdings wegen seiner ausgesprochen komplexen Befehle auch mit deutlich h herem Takt als sein spartanischerer Hauptkonkurrent 6502 betrieben werden musste um die gleiche Geschwindigkeit zu entwickeln Die typische Taktfrequenz lag bei 3 5 4 MHz Der wichtigste Meilenstein bei der Verbreitung
8. DEE 21 4 1 2 1 CPU Central Prozessing Unit aussah nn a a 22 4 1 2 2 22 41 23 CU CONTO 22 4 1 2 4 Interner Speicher AKKU 23 4 1 2 5 Ablauf einer 22 22 2 2222000111 23 4 1 2 06 9VStembUS 24 4 1 2 24 4 1 2 06 2 AGTGSSDIIS nn 24 4 1 2 6 3 St uerbus nn EN Ud EOM Na tad 25 4 1 5 Zusatzliche able 26 4 1 3 1 Jumperbelegungen f r ROM und RAM eene 27 4 1 4 Schaltplan Z80 EMUF Platine uud 28 4 1 5 Best ckungsplan ZG0 EMUE Platne 30 Atemschutzger te berwachung 41 6 31 4 1 6 1 Blockschaltbild 32 4 1 0 2 Stelier adressen un ne 33 IS nme 34 4 2 le E UE E E dE 37 4 2 1 Konstruktions berlegungen a 37 4 2 2 Ee le re EE 39 Eeer 40 42 2 2 CRAN EE 42 4 2 2 3 A
9. gesamte System in Stillstand 0 11011010 versetzt wird muss es nach der Plust B 0 01001000 48 Verarbeitung folglich auch wieder Minus A 1 11011001 D9 in Betrieb gesetzt und das 2 3 11010011 03 Ausl sen neuer Interrupts Plus2 B 3 01000001 41 erm glicht werden Dies geschieht Minus2 A 4 11001011 CB durch den Befehl enable 10011011 9B interrupt welcher unmittelbar zur USS 5 i gt Minus3 A 7 01011011 58 CPU gesendet werden muss Im Gegensatz zu anderen Modulen wird dieses Modul dem Befehl verlassen um einen direkten R cksprung in das zuvor ausgef hrte Modul zu erm glichen Die Routine iroutb ist identisch zu irouta aufgebaut Der Unterschied liegt lediglich in den Namen der Variablen sowie in den Abh ngigkeiten zwischen den Tastern und Merkern Diese Werte sind ebenso der Tabelle aufgef hrt 7 Atemschutzger te berwachung 5 6 2 Programmablaufplan irouta v delay 50 ms ini a2dat e in2 ini 2 amp DB Minus1 set Ok1 set Minus2 set Ok2 set Minus3 set set x 3 2 3 3 1 delay 100ms Y
10. wird der Schleifenz hler sz1 gesetzt Dies bedeutet die Funktion ist bereits einmal aufgerufen worden Hat time m1 den Inhalt 285 wird die Einsatzzeit in um 1 verringert Im Anschluss daran wird der maximale Hinweg berechnet und die Variable maxhin1 bergeben Es folgt die Abfrage ob time1 diesem Wert entspricht Ist das der Fall wird der Warnungsmerker warn1 gesetzt Des Weiteren wird der globale ochleifenzeiger manipuliert und auf 8 gestellt Die Variable mode1 bekommt den Inhalt 1 und der interne Z hler sz1 wird auf 0 gesetzt Unabh ngig von den vorherigen Abfragen wird das Modul blink1 aufgerufen Wurde OK1 bet tigt wird die Schleifenfreigabe erneut gesetzt und Ok1 im Anschluss daran unmittelbar zur ckgesetzt 5 7 7 2 Programmablaufplan count11 11 miss Y l timeb1 time m1 increment Displayt clear Y nein Display1 ja H time 1 x1 time m1 0 time m1 O gt o 89 Atemschutzger te berwachung 571 set ja Y time1 decrement 1 x1 3 maxhin x1 merke1 tim ei ja maxhin Y warni
11. m lt e e a M e e e e e e e B B Wei zl cen e H a SE m a CH er lo le Projekt Z80V24VG _10 Druckdatum 17 11 2003 Ing B ro W Kanis GmbH 5 29 Atemschutzger te berwachung 4 1 5 Best ckungsplan Z80 EMUF Platine Best ckungsplan Bauteilseite v3 10 280 24 1 11 11 96 22 FG lt lt I PJ Z8B0V2AVG LAY V3_10 PLOT_PS 79221 O 2021 EI 7282 ICO4 CBOS CO2 01 1 ROS 801 ICOS 204 gt LO t B8 s Ei m m mb 205 Hop 5 2 5194 S ol TE 1C1 1 12 1C09 2 m z T _ d 0 SC a m S 9 m N lt gt olo 26 gt D e Projekt Za0V24VG V3 10 Druckdatum 17 11 2003 Ing B ro W Kanis GmbH Seite 6 _ 30 Atemschutzger te berwachung 4 1 6 Adressdecoder Im Blockschaltbild kann man erkennen dass einige Adressleitungen und die Datenleitungen 00 07 zu allen Peripheriebausteinen f hren Wird nun z B von der CPU ein Datenwort auf den Datenbus und gleichzeitig die Adresse 8003 A15 AO und Ai H auf den Adressbus gelegt dann w ren
12. 3 7 5 E ET 15 8 12T E 16 9 6c 2LEDI Eg E 18 10 21 02 19 11 76 21 03 5 2 20 12 7 IK E gt 3 13 8 3T2 5 2 15 14 8 16 15 9 2 SENE 18 16 1 2 19 17 19a 3LED3 i SC 20 18 190 126 Atemschutzger te berwachung 10 2 Steckerbelegungen 5704 5V GND 5V GND 5V GND mmm 5701 5702 5703 1 ARDY 1 10 241 45V 5V 2 BRDY 2 Masse 2 1 4 0 IC4 A0 3 ASTD 3 00V IC4 B1 4 1 4 BTD 4 NC 4 1482 1C4 A2 5 B7 5 DSR V24 5 IC4 B3 IC4 A3 6 A7 6 DSR 6 1 4 4 IC4 M 7 B6 7 CTS 7 1C4B5 IC4 A5 8 8 CTS V2A 8 IC4 B6 IC4 A6 9 B5 9 RD 9 IC4 B7 IC4 A7 10 A5 10 RXD V24 10 1 4 5 B4 DIR 11 IC4 ARDY IC4 BRDY 12
13. C ende p Em Atemschutzger te berwachung 5 6 Interruptroutinen 5 6 1 Programmbeschreibung irouta und iroutb Sobald einer der Taster auf der Frontplatte bet tigt wird l st dieses einen Interrupt aus Je nachdem an welchem Port der PIO 2 dieser Aufruf erfolgt wird in die entsprechende Vektortabelle verwiesen Hierin erfolgt der Aufruf von bei Bet tigung eines Tasters an Port A und bei Ausl sen ber Port B wird iroutb angesprochen Zun chst wird hier n her auf eingegangen Die Routine startet mit einer Verz gerung von 50ms durch den Aufruf von delay Dies dient der Softwareentprellung der Taster Siehe Kapitel 6 2 Danach wird der Zustand von Port A der PIO 2 eingelesen und in der Variable mi abgespeichert Diese Daten werden nun an in2 bergeben anschlie end maskiert und in die Variable ma geschrieben Dies ist erforderlich da die PIO im Bitcontrol Modus betrieben werden Somit k nnen die als Ausgang verwendeten Bits einen Zustand haben der das Ergebnis folgender Tasterselektierung verfalschen w rde Ist die bergabe geschehen folgt eine Switch Abfrage der Variablen ina Je nach Zustand wird nun der zugeh rige Merker gesetzt Die Abh ngigkeiten zwischen den Tastern und Merkern ist in der Tabelle aufgef hrt Es folgt eine erneute Verz gerung durch das Programm DS me csse huay das Taster Bit Maske Maske ides
14. 18 MREQ 19 37 20 30 36 12 GND 29 28 27 11 1 1 1 RFSH 28 1 27 31 11 21 21 21 RES 26 33 s 21 BUSRQ 25 WAIT 24 38 BUSACK 23 EA 22 39 27 27 10 a RD 21 43 22 22 35 113 13 23 23 23 Daisy _ I _ 24 _ 16 _ _ _ Chain IEO 22 125 Atemschutzger te berwachung Signal CPU ST16 RAM ROM SIO ST6 ST14 ST8a b ST9a b ST10a b STO5 STO1 270 2Y1 He SCHE z pm TIER 273 5 JE 20 s 3Y1 EE 2 ava SUE 3Y3 3Y4 5 3Y5 gt NR 6 2 6 EE 6 avr See 6 GET SEES E 3 2 1 2 TARE dre 15 5 2 2a 13 sa 16 TE EE 18 4 I4LED2 t EC 5 19 5 4 Te 20 6 2T1
15. 1 604__ 2 72 1 ALTER 006 T7709 2 NN AGOZ MERE BEE Quarzosz 2 45704 12 2 25 U 1009 _________ 8291 2 0 ls _____ 7480393 _ ____________ L BS BON AG 12 o EE EA 2x6pol Stiftleiste 2 eeng 02 __________ exepol St fleiste 2 ee JO ___________ 2x8pol Stiftleiste 2 ee 304 J05 __ Stiftleiste 2 2 _________ EOS UM Widerstand 4 7 lt SE Widerstand 6800 ________ EE ROS ROY ______ Widerstand 47 3 STOA o s 64pol 225 ees l 5102 5103 _____ 2x10pol Stiftleiste _______ Beete 5 04 2x3pol Stiftleiste 1 130 Atemschutzger te berwachung 10 3 2 DISTAS Name Bauteil Anzahl S1 08B Wannenstecker 26pol Berri Dotmatrix Display __________ RUN E 74HC02 4fach NOR Gate _____ l NR 748008 4 fach AND Gate _____ UE LEDT LED 2 ______ LED SMM eg e EE EX P Taster Schlie er _________ QI MRNA Transistor BS170 NNNM Bo P son Widerstand 100 eurer Mein ln Widerstand 1 5 KO ee R5 R7 Widerstand 4 7 3 10 3 3 PIO Verteiler Platine Name Bauteil Anzahl SL08A ST19A Wannenstecker 26pol 5105 5706 2 Wannenstecker 200 Wannenstecker 10 _______ l S O _ 7 _ Z80 PIO 222 ____
16. 16 16 Daisychain 17 SLED2 17 2 18 3LED3 18 A6 19 LCD Bel 19 7 20 20 2Y3 ST08 A B STO9A B ST10 A B 1 GND 1 GND 1 GND 2 5V 2 5V 2 V 3 111 3 211 3 1 4 C D 4 A1 C D 4 A1 CI D 5 A0 5 A0 RI W 5 AO R W 6 275 CE 6 2 6 6 27 7 00 7 00 7 00 8 D1 8 D1 8 D1 9 D2 9 D2 02 10 10 10 11 04 11 04 11 04 12 05 12 05 12 05 13 06 13 06 13 06 14 07 14 07 14 07 15 112 15 212 15 372 16 113 16 213 16 313 17 1LED1 17 2 01 17 3LED1 18 1LED2 18 21202 18 3LED2 19 11 03 19 2LED3 19 3LED3 20 1 20 1 20 1 21 21 21 22 22 22 RD 23 23 23 24 24 24 25 25 25 26 26 26 128 Atemschutzger te berwachung STMMA B ST12A B ST13A B
17. nein Minus1 reset 82 Atemschutzger te berwachung ja ja Display1 clear fi SCH Display1 1 model 2 numb1 numi fal 2 enablei Oki reset Vektor numi Da fal 3 num 1 ja 52 Y aya fil lt reset Sa 20 30 45 92 Atemschutzger te berwachung 5 7 4 pid 5 7 4 1 Programmbeschreibung Diese Funktion wird in jedem Fall aufgerufen nachdem eine Ger tevariante ausgew hlt wurde Zu Beginn des Programms werden die 3 Variablen T1M1 T1M2 sowie T1M3 mit berschrieben Anschlie end wird der PID Stick f r das erste Truppmitglied eingelesen Direkt im Anschluss wird dieses Datenwort mit 80 maskiert Dies muss erfolgen da von den PID IN Platinen nur die ersten sieben Datenleitungen f r die Daten bertragung verwendet werden Hat die Variable nun einen Wert ungleich FFn wird die led11 aufgerufen Diese Vorgehensweise wird im Anschluss f r die brigen beiden Truppmitglieder wiederholt Im Anschluss folgt die Abfrage wie viele Truppmitglieder dem Trupp Sind es drei 1 hat den Wert
18. 115 Atemschutzger te berwachung Ein weiteres Problem zeigte sich beim Einlesen der Taster mit Hilfe der Interruptroutinen Wie bereits im Kapitel DISTAS beschrieben haben wir Taster mit einer bereits sehr geringen Prellzeit von 100 5 verwendet und somit vorerst auf eine Hardwareentprellschaltung verzichtet weil die zum Abfragen des Ports eine Zykluszeit ben tigt und somit das Prellen des Tasters im Normalfall nicht registrieren kann Jedoch traten sporadische F lle auf in denen die Interruptroutinen bei einem Tastendruck mehrmals aufgerufen wurden und in eine unvorhergesehene Programmschleife sprangen Da dieses Problem ebenfalls mit einer Entprellschaltung auftrat haben wir das geringe Prellen des Tasters hierf r ausgeschlossen Folglich kamen wir zur Annahme dass vielmehr der Zeitpunkt der Abfrage des PIO Ports daf r relevant sei denn durch das Prellen des Tasters liegt f r eine sehr kurze Zeit ein nicht definiertes Datenwort dem Port der PIO Wenn die PIO exakt zu diesem Zeitpunkt gerade das maskierte Datenwort einliest kann dies zu undefinierten Zust nden oder zum Mehrfachausl sen der Interruptroutine f hren Um dieses auf einfachste Weise zu verhindern haben wir jeweils einen definierten Zeitraum zwischen 50ms und 100ms vor und nach dem Bearbeiten der Interruptroutine als Wartezeit programmiert Somit wartet das System nach einem Tastendruck diesen Zeitraum ab so dass der Zustand am entsprechen
19. Display2 clear Display2 typ2 pid2 pressu2 start2 count21 Ok2 ja set 2 set nein Ok2 reset G s 7 Atemschutzger te berwachung 21212 count22 count23 ende2 art2 enable3 ja set trupp3 increment nein enable3 lt reset 523 5231 5232 5233 lt 0 rechnen3 lt reset trupp3 ja 2419 p3 increment nein led3aus 4 Initialisierung H s mtlicher Variablen d trupp3 trupp3 trupp3 trupp3 trupp3 1 27 32 42 52 Display3 clear 6 pid3 start3 count31 Ok3 5 5 set enable3 lt Y reset 152 E Atemschutzger te berwachung ziel3 count32 count33 ende3 art3 x delay 200ms extras
20. PIO4 PIO5 Adressdecoder 3 8 SES 74HC138 PIO7 B 3Y5 LCD1 LCD2 A2 LCD3 EE Atemschutzger te berwachung 4 1 6 2 Steueradressen Ger t Steueradresse Baustein Decoderausgang Befehl EEPROM 1Y2 ab 0000h 1Yo ab 8000h PIO 1 270 Data Port A 00h Data Port B 01 LED Control Pont A 021 Control Port B 03h PIO 2 2Y1 Data Port A 10h Data Port B 11h Taster LED Control PortA 12h Control Port B 13h SIO 2Y2 Data 20h Control 22h PIO 3 3Y0 Data Port A 30h Data Port B 31h PID 1 2 Control Port A 32h Control Port B 33h PIO4 Data Port A 34h Data Port B 35h PID 3 4 Control Port A 36h Control Port B 37h PIO 5 3Y2 Data Port A 70h Data Port B 71h PID 5 6 Control Port A 72h Control Port B 73h PIO6 Data Port A 74h Data Port B 75h PID 7 8 Control Port A 76h Control Port B 77h PIO7 3 4 Data Port Data Port B Bih PID 9 Control PotA B2h Control Port B B3h Display 3 4 Control Write B4h Control Read B5h Trupp 1 Data Write Data Read B7h Display2 3Y5 Control Write FOh Control Read Fih Trupp 2 Data Write
21. 2 013 00 013 00 013 00 013 00 013 00 013 00 013 00 013 00 LZ gt Z BB 9 6 1 o 8 x N 8 Y Y Y Y Y 38 00 25 00 25 00 128 00 25 00 25 00 gt 218 00 25 00 25 00 305 00 Trupp v O K ASG berwachung TGK 3000 Trupp 2 v OK Trupp 3 62 Atemschutzger te berwachung 5 Software 5 1 Softwarestruktur Die im Ger t verwendete und zuvor beschriebene Hardware ben tigt nun also noch eine Software um zu arbeiten Dieser so genannte Quellcode muss von der Assemblersprache in den eigentlichen OP oder Maschinencode kompiliert werden um wiederum von der CPU verstanden zu werden Da wir jedoch von vornherein davon ausgingen dass das Betriebssystem eine umfangreiche Programmierung mit sich bringen wird haben wir uns dazu entschieden den Gro teil der Programme der Programmiersprache C zu realisieren S mtliche Abfragen Verzweigungen usw lassen sich dadurch leichter und bersichtlicher programmieren Somit m ssen die von uns geschriebenen Programme jedoch zun chst in einen Assemblercode gewandelt und anschlie end mit einem Linker zusammengef gt und ausf hrbar gemacht werden So wird z B aus unserem Hauptprogramm tgk3000 c vorerst die Datei t9k3000 asm und dann verlinkt mit einigen externen Modulen zur f r das System ausf hrbaren Datei tgk3000 280 D
22. 4 27 56 Z O Z O Z 2 21 DT Atemschutzger te berwachung 4 1 4 Schaltplan Z80 EMUF Platine BUS BUS TOR 2 BUS V SHEET DATEN CONTRO 4 4 4 4 4 4 f fe bh n ux Cx I gt xXx Gu Qr WEE E Bo Ka Akafe Ee OC ree om Se HHH HH H H HHHHHHHH HH NO IC d U KE INTE si ar m m nO m s u m m m mm mama HA wi ei ei q q eieiei DO am ac m m Ki a O gt N gt gt gt m N Er lt H Ki u D H m Goal o Ei uj aj ej ol ol o Ei t o ej ei mam M px E EI sien cat sat col r of ai r d nO o lech Nj TNA m r ou sf OC OQ m u m OC ON cC m Si sie ei ED see mmm oo oo m e 000 oO 0000 Glo c vi lei m Im 1
23. Date 27 04 2006 12 31 22 Sheet 1 1 51 Atemschutzger te berwachung 4 4 3 Layout PID IN Platine 4 4 4 Best ckungsplan PID IN Platine 1 ST11B 9 9 9 9 9 9 9 9 9 9 9 9 9 9 Sr ES SE EE A _ 52 Atemschutzger te berwachung 4 5 PID Sticks Personen ID Sticks 4 5 1 Konstruktions berlegungen Unsere erste berlegung zur Realisierung eines ID Schl ssels wurde bereits in der Projektvor berlegung besprochen und sah einen analogen PID Stick vor der jedoch durch die Einfachheit eines digitalen Codes berstimmt wurde Somit war die Idee des Achtbit Code Schl ssels geboren Jedoch traten dabei schon die ersten Probleme auf denn wir brauchten einen m glichst kleinen robusten und schnell zu verriegelnden Stecker der mindestens acht Steckkontakte beinhaltet Ideal w re ein Stecker im bekannten USB Format acht Kontakten und industriellem Metallgeh use Da die meisten am Markt befindlichen Stecker mit dieser Anzahl von Kontakten aber einfach zu und zu unhandlich sind entschieden wir uns f r die naheliegendste L sung den Modularstecker RJ45 Dieser besitzt acht Kontakte ist einfach zu bedienen und sicher zu verriegeln Um jedoch die Codes mit Hilfe von Dipschaltern auf ein bestimmtes Potential einzustellen ben tigen wir einen opannungsbezugspunkt Dazu definierten wir alle ID Codes auf Low Aktiv d h die Kodierungsbit
24. 26 ST10A 26 STO9A 26 20 5 05 ZOld 2018082 9Old 9014087 SOId 9014087 7014087 Old 2018082 0 _ _ E L Kee L D Dir gt C Uh dnb 901S 26 ST13A 26 ST12A 26 ST11A 46 Atemschutzger te berwachung 4 3 CPU Extension Platine 4 3 1 Konstruktions berlegungen Normalerweise befindet sich die CPU auf der Z80 EMUF Platine Da wir jedoch das oystem um einige Elemente erweitert haben mussten wir ebenso den Systembus an die erweiterten Elemente durchleiten nur leider wurde der Systembus nicht auf einen der vielen Steckverbinder der EMUF Platine hinausgef hrt Also mussten wir den oystembus auf der Platine irgendwie abgreifen Dies konnte am einfachsten am Sockel der CPU durchgef hrt werden da s mtliche Signale zusammenf hren Urspr nglich hatten wir die CPU mit einem Sockel auf das noch freie Lochrasterfeld der Platine gel tet und ber ein 40 poliges Flachbandkabel mit dem Originalsockel verbunden sowie einen weiteren Stecker daneben gel tet der mit den entsprechenden Signalleitungen des Systembusses der CPU verl tet war Insgesamt wurde diese Verdrahtung auf der Unterseite der Platine sehr un bersichtlich und erwies sich als sehr fehlertr chtig Aus diesem Grund entschieden wir uns eine zus tzliche Erweiterungsplatine zu entwickeln 4 3 2 Aufb
25. 3 3 P 3 gt 6 WP ar er Der eigentliche Grund dieser Platine besteht also nur darin den Systembus f r die erweiterte Hardware durchzuleiten da auf dem Lochrasterfeld der EMUF Platine nicht gen gen Platz vorhanden war die Leitungen auf der R ckseite gut und fehlerfrei zu verlegen Somit haben wir wiederum eine gro e Fehlerquelle minimiert und zus tzlich eine sehr hilfreiche Diagnoseschnittstelle hinzugef gt Leider konnten wir uns aber auch auf der Erweiterungsplatine bei kompakter doppelseitiger Bauweise keine Durchkontaktierungen ersparen und mussten diese mit Hilfe eines L tdrahtes verl ten was bei hoher Anzahl von Durchkontaktierungen prinzipiell eine Fehlerquelle darstellt 48 Atemschutzger te berwachung 4 3 3 Schaltplan CPU Extension T T nasus 0300 900474840740 91 2 aiueunoo 21 5 2 082 31111 J ll8H A Old CS Ee EE i 5 Wee NEN E E por SENE EE ERBE WE 9 94 18 S e idi 776 02 2 e 7 15 ol 6 13534 8 Z 9 mi n Bo H EE e op 5 EE N 2 2 ER EE a x Ed 2 we er F Ee pump _ gt f GES 96 sef FL 52 FL 52 154 E ze ei SI 92 A 92 O QO 0852 09
26. 5712 set Da Da notfall1 ja set Display1 clear nein Display1 Notfall Da x11 rueck1 ja bz 300 nein nein nein notfalli set Y 5713 set e lediaus 571 set C ret gt 100 Atemschutzger te berwachung 5 7 11 ende1 5 7 11 1 Programmbeschreibung Das Modul ende1 wird nach der R ckkehr des Truppe verwendet Hierdurch wird die Eingabe des Beh lterdrucks nach dem Einsatz realisiert Zu Beginn wird solange lediaus ausgef hrt sowie das Display gel scht und Beendet im Display ausgegeben wie sz12 zur ckgesetzt ist 151 dies nicht mehr der Fall folgen diverse Aufrufe In Abh ngigkeit von sz11 wird beim Wert 0 das Programm led11 bei 1 das Modul led12 und bei 2 das Modul led13 aufgerufen Ist Plus1 im Anschluss gesetzt so wird w1 inkrementiert Wird dabei die Schwelle von 30 berschritten erfolgt unmittelbar die R ckstellung auf 0 Plus1 wird automatisch zur ckgesetzt Im gesetzten Zustand von Minus1 wird der Inhalt von wi um 1 verringert Bei Unterschreitung der Grenze 0 wird der Wert automatisch wieder auf 30 gesetzt Auch Minus1 wird im Anschluss zur ckgesetzt Nach diesen Schritten wird nun wenn
27. Data Read F3h Display3 3Y6 Control Write F4h Control Read F5h Trupp 3 Data Write F6h Data Read F7h 33 Atemschutzger te berwachung 4 1 7 SIO Die RS232 Schnittstelle ist eine Spannungsschnittstelle d h die Informationen werden durch eine elektrische Spannung kodiert F r die Datenleitungen TxD und RxD wird eine negative Logik verwendet wobei eine Spannung zwischen 3V und 12V eine logische 1 und eine Spannung zwischen 3V und 12V eine logische 0 darstellt Bei den Steuerleitungen DCD DSR RTS CRS wird der aktive Zustand durch eine Spannung zwischen 3V und 12V der inaktive Zustand durch eine Spannung zwischen 3V und 12V dargestellt Es gibt zwei verschiedene Verfahren der Daten bertragung die asynchrone und die synchrone bertragung Bei der asynchronen Daten bertragung wird kein zus tzliches Synchronisations Signal Clock Signal bertragen Die Synchronisation erfolgt ausschlie lich ber die Datenleitungen Das geschieht indem sich der auf die erste negative Flanke nach einer Ruhepause synchronisiert und die folgenden Bits mit der Baudrate abtastet Damit das funktioniert m ssen die Baudraten von Sender und bereinstimmen und jedes bertragene Byte muss von einer negativen Flanke eingeleitet werden Letzteres wird durch Start 0 und Stoppbits 1 sichergestellt Die Ruhepause muss ausreichend lang sei
28. RS232 Die meistverbreitete serielle Verbindung zwischen Computern und deren Peripherie ist die RS232 Schnittstelle auch bekannt unter der Bezeichnung V 24 Schnittstelle Als Steckverbindung wurden urspr nglich 25 polige Sub D Stecker verwendet Da hierbei die meisten Leitungen reine Drucker bzw Steuerleitungen sind die f r die meisten Peripherieger te nicht ben tigt werden wurde der neunpolige Sub D Stecker eingef hrt Die RS232 Schnittstelle arbeitet seriell mit je einer Datenleitung f r beide bertragungsrichtungen d h die Bits werden im Gegensatz zur parallelen Daten bertragung nacheinander auf einer Leitung bertragen Die hierf r ben tigte Seriell Parallel Wandlung geschieht in UARTs Universal Asynchronious Receiver Transmitter entweder als integriertes Modul in einem Mikrocontroller oder als Stand Alone Baustein im Folgenden SIO genannt 3 1 4 Pull Up Widerst nde Ein Pull Up Widerstand zieht die elektrische Spannung bis zum Betriebsspannungswert U Will man daf r sorgen dass der Eingangspin logisch LOW erh lt wenn die Taste gedr ckt wird liegt der Taster bzw Schalter zwischen GND und dem Logik Baustein Der Pull Up Widerstand liegt in diesem Fall zwischen dem Eingang und 0 Beim ffnen des Tasters zieht der Pull Up Widerstand die Spannung am Anschlusspin hoch bis zum Betriebsspannungswert U was logisch HIGH entspricht 3 1 5 Pull Down Widerstande Ein Pull Down Widerstand zieht die elektris
29. 1 luft1 1 ja 11 luft12 Y max12 3 11 luft13 Y max12 3 Y aufruf 1 Y wer 12 Y nr pi Y auswahl hindi x1 Y rueck1 hin hin1 x1 hin rueck1 x11 x1 3 v model reset enable set 4 2 94 Atemschutzger te berwachung 5 7 9 count12 5 7 9 1 Programmbeschreibung Der Aufruf dieses Unterprogramms erfolgt nachdem die am Einsatzort zu verbleibende Zeit ermittelt wurde Es wird die momentan restliche Einsatzzeit auf dem Display ausgegeben Da der Aufbau dieser Funktion den von counti1 angelehnt ist wird im Folgenden lediglich auf die Unterschiede eingegangen Zu Beginn erfolgt der Aufruf lediaus Dieses ist in count11 nicht erforderlich da unmittelbar zuvor keinerlei LED s angesteuert werden Ein weiterer kleiner Unterschied ist dass bei der Ausgabe der Zeit nicht ein H sondern das vorangestellt ist Wesentlichen sind 2 elementare Unterschiede der Funktionen festzustellen Hat 521 den Wert 0 wird die runterz hlende Zeit nicht mehr der gesamten Einsatzzeit sondern der zuvor errechneten an der Einsatzstell
30. 1 1A0 1 480 1 7A0 2 1A 2 481 2 7A 3 1A2 3 482 3 7 2 4 4 483 4 7 5 4 5 484 5 7A4 6 4 6 485 6 7 4 7 146 7 486 7 7A6 8 GND 8 GND 8 GND 9 2B0 9 5A0 9 880 10 281 10 10 881 11 282 11 5 2 11 882 12 283 12 5A3 12 883 13 284 13 5A4 13 884 14 285 14 5A5 14 885 15 286 15 5A6 15 886 16 GND 16 GND 16 GND 17 17 680 17 18 18 681 18 9 19 2 119 682 19 9 2 20 20 683 20 9A3 21 3A4 21 684 21 9 4 22 22 685 22 9 5 23 23 686 23 9A6 24 GND 24 GND 24 GND E LAJ 2 5114 8115 1 DO 1 Daisyhain 2 D1 2 2Y3 3 D2 3 4 03 4 5 04 5 6 05 6 7 D 7 8 07 8 9 9 10 Al 10 11 Mi 12 IOREQ 13 RD 14 15 INT 16 IEO 17 A2 18 19 A7 20 2Y3 26 129 Atemschutzger te berwachung 10 3 Stucklisten 10 3 1 280 Name Anzahl 01 0602 ______ Tantal 10W16V _________ Boo Z e Kerko 100 EEN 10p 25V 222 1___________ _ 3 ______ Kerko 1007 SEE CB08 CB09 2 10 25 __6 _ _____ _________ EC EE EPROM L 1002 SRAM 8k 1_____________
31. TE e M M Www e e e e _ 25 Atemschutzger te berwachung 4 1 3 Zus tzliche Anderungen Als eine der Vorraussetzungen unseres Projektes m ssen die im RAM gespeicherten Datens tze auch ohne Spannungsversorgung erhalten bleiben damit sie auch nach einem Einsatz mit leerem Akku auslesbar sind Dazu wurde der enthaltene Standard gegen einen gepufferten RAM ausgetauscht der die Daten bis zu zehn Jahre statisch speichert Um ein effektives Arbeiten zu erm glichen wurde kein Standard EPROM mit 8Kbyte verwendet sondern ein EEPROM mit 32Kbyte Somit ist eine schnelle Programm nderung problemlos m glich Der vorhandene SIO Baustein ben tigt in der Regel eine zus tzliche separate opannungsversorgung von 12V um das serielle Signal auf V 24 Standard zu bringen Da unser komplettes System jedoch mit einer Spannungsversorgung ber einen Akku und einen Festspannungsregler auf 5V l uft haben wir keine 12V zur Verf gung Deshalb m ssen wir diese Spannung aus den vorhandenen 45V erzeugen Am einfachsten l sst sich dies mit einem integrierten DC DC Wandaler realisieren der in dem MAX232 bereits enthalten ist Dieser Baustein ist f r die oignalerzeugung auf den V 24 Standard optimiert und liefert 10 an Pin 2 und Pin 6 zu Pin 15 als Masse Um aber wiederum diverse Verdrahtungs nderungen auf der Kanis EMUF Platine zu verhindern nderten wir nicht die Ausg nge der 510 sondern benutzen den 232 als r
32. Display weiter 9 4 Auswahlmoglichkeiten der einzelnen Abfragen Ger teart PA 300 ChemieSA Hitzesch Regen PA Filter T tigkeit Retten Loeschen Erkunden Dichten Auffange Umpumpen Funkverb 124 Atemschutzger te berwachung 10 Tabellen 10 1 Signallisten Signal CPU ST16 RAM 5100 576 ST14 ST8a b ST9a b ST10a b 0 30 25 10 10 61 1 9 Au 5 5 1 31 23 9 9 5 12 10 4 4 4 2 32 21 8 8 17 x 33 19 7 7 _ __ ___ 4 34 17 6 6 gt wwe de sx d A5 35 15 5 5 Le A 36 13 4 4 18 I db xu 7 37 11 3 3 19 wil 8 38 9 25 25 9 39 7 24 24 A10 140 5 21 21 1 40 23 23 2 14 2 2 3 6 26 26 14 4 8 1 27 A15 5 10 E NES DO 14 26 11 11 19 27 1 7 7 7 D1 15 34 12 12 20 28 2 8 8 8 D2 12 22 13 13 1 1 3 9 9 9 D3 8 35 15 15 40 2 4 10 10 10 DA 7 12 16 16 39 eS 5 11 11 11 D5 9 16 17 17 38 6 6 12 12 12 D6 10 18 18 18 3 7 7 13 13 13 D7 13 24 19 19 2 8 8 14 14 14 CLK 6 20 5 25 20 14 5V 11 42 44 28 28 26 2 2 2 ANT 16 36 23 15 17 32
33. das ein in einer Quellsprache geschriebenes Programm in semantisch quivalentes Programm einer Zielsprache umwandelt blicherweise handelt es sich dabei um die bersetzung eines von einem Programmierer in einer Programmiersprache geschriebenen Quelltextes in Assemblersprache Bytecode oder Maschinensprache Die Anwendung eines Compilers wird als Kompilierung bezeichnet 3 2 4 Linker Unter einem Linker oder Binder versteht man ein Programm das einzelne Programmmodule zu einem ausf hrbaren Programm zusammenstellt Es wird zwischen statischem und dynamischem Linken unterschieden 3 2 4 1 Statisches Linken Das statische Linken ist ein Vorgang der typischerweise w hrend der Entwicklung des Programms erfolgt so dass der Benutzer ein fertig zusammengesetztes Programm erh lt Dies besteht dann bei vollst ndig statisch gelinkten Programmen aus einer einzelnen Datei 3 2 4 2 Dynamisches Linken Es ist m glich das Aufl sen der Funktions und Variablennamen zu verschieben bis das Programm tats chlich ausgef hrt wird In diesem Falle spricht man von dynamically linked library DLL oder shared library Dies hat den Vorteil dass man die Bibliothek nachtr glich leicht austauschen kann die Programme kleiner werden und dass der Speicher nur einmal ben tigt wird wenn mehrere Programme dieselbe Bibliothek verwenden Der Nachteil besteht darin dass man irgendwie sicherstellen muss dass auch die richtige DLL in der richtigen Ver
34. ei enable interrupt Y C reti gt lt Atemschutzger te berwachung 5 6 3 Programmablaufplan iroutb e delay 50 ms ini lt b2dat Y in2 in1 v inb 2 amp 49 Plusi set Plus2 set Plus3 set v delay 100ms ei enable interrupt 4 reti SICH Atemschutzger te berwachung 5 7 Unterprogramme 5 7 1 init 5 7 1 1 Programmbeschreibung Diese Routine wird lediglich beim Einschalten des Systems ausgef hrt Dies ist erforderlich um s mtliche Peripherie Ger te zu konfigurieren Wie bereits bei der Aufbaubeschreibung der PIO Verteiler Platine erw hnt betreiben wir die PIO s in Mode 3 Man spricht auch vom Bitcontrolmode Das Steuerwort um diese Betriebsart einzurichten ergibt sich wie folgt LL X X 1 11 11 LL muss FF sein um der PIO signalisieren dass mit diesem Befehl die Wahl der Betriebsart stattfindet nicht von Bedeutung Auswahl der Betriebsart 00 Betriebsart 0 01 Betriebsart 1 10 Betriebsart 2 11 Betriebsart 3 Hat man dieses Steuerwort mit Hilfe der Funktion output an die Control Adresse der PIO bermittelt erwartet sie ein unmittelbar folgendes Steuerwort mit dem definiert wird welches Bit als Ausgang und welches als Eingang betrieben werden soll
35. und sind T1M1 T1M2 sowie T1M3 ungleich FFn so erfolgt die Schleifenfreigabe Die eingelesenen PID Stick Daten werden nun in den Vektorspeicher geschrieben Tr gt den Wert 2 so erfolgt eine identische Kontrolle der Variablen und Abspeicherung der Daten In diesem Fall werden jedoch nur die ersten beiden Variablen ber cksichtigt Ist die Schleifenfreigabe gegeben und wurde die Ger tevariante Filter ist gesetzt gew hlt wird nun automatisch der Schleifenzeiger manipuliert da im Anschluss diese Funktion keine Eingabe von Beh lterdr cken erfolgen wird Als letzte Aktion wird das Display gel scht und mit der Ausgabe PID neu beschrieben sofern keine Schleifenfreigabe erfolgt 5 7 4 2 Programmablaufplan pid C pidl D Y T1M1 T1M2 T1M3 lt T1M2 b3dat T1M2 T1M2 80 T1M1 T1M1 T1M1 80 6912 T1M1 ja RE Y T1M3 led11 nein Da T1M3 1 80 _ 84 Atemschutzger te berwachung ja led13 nein v enable1 truppi increment Display1 clear Display1 PID 85 Atemsch
36. 16 1 Programmbeschreibung Hier handelt es sich um ein zentrales Modul welches aus verschiedenen Unterprogrammen aufgerufen wird Je nach Modul aus welchem blink aufgerufen wird soll eine Blinkreihenfolge der drei Status LED s der Trupps erzeugt werden Durch jeden Aufruf des Programms wird zun chst der Merker bm1 inkrementiert Es folgt der Vergleich der Variable trupp1 Hat sie den Inhalt5 folgt eine Prozedur die ein Lauflicht nach rechts inszeniert Realisiert wird dies durch den Vergleich der Variable bm1 mit anschlie endem Aufruf der LED Steuermodule Wert bm1 5 Aktion led11 Wert bm1 gt 5 amp 10 Aktion led12 Wert bm1 gt 10 8 lt 15 Aktion led13 Wert bm1 gt 15 4 20 Aktion led1aus Wert bm1 gt 20 Aktion bmi reset Hat trupp1 den Wert 7 sollen die LED s periodisch ein und wieder ausgeschaltet werden Hierf r wird zun chst kontrolliert ob bm1 kleiner als 10 ist Trifft dies zu werden alle LED s durch led aus ausgeschaltet Ist bm1 gr er als 10 wird der Zustand von b2dat eingelesen anschlie end 06 ODER verkn pft und wieder zum Port zur ck gesendet Dies geschieht danach ebenfalls mit a2dat Sobald bm1 gleich 20 ist wird die Variable zur ck auf 0 gesetzt In den Modulen blink2 und blink3 werden die x ek x Maske Hex x Ports mit anderen Werten maskiert welche sich blink2 odat 22 aus der Hardware ergeben bl
37. A4 12 DTR V24 i3 X 13 B3 13 RTS V24 13 10V IC4 BSTD 14 14 RTS 14 ___ NMI 15 B2 15 TXD 15 ___ DES ou 16 2 16 TXD V24 17 17 17 IC3 BRDY IC3 ARDY 18 Al 18 18 IC3 BSTD IC3 ASTD 19 BO 19 Sync 19 IC3 A0 IC3 BO 20 20 NC 20 1 1 IC3 B1 381 22 10V 23 ___ 24 IC3 A2 IC3 B2 25 1 3 IC3 B3 26 1 3 4 1C3 B4 27 IC3 A5 1 3 5 28 3 1 3 6 29 1 3 7 IC3 B7 80 RES in 3 32 GND GND 127 Atemschutzger te berwachung 5105 5706 5107 11111 1 00 1 5 2 112 2 D1 2 5 3 113 3 D2 5 4 1 4 D3 4 5V 5 ILED2 5 04 5 6 1LED3 6 05 6 7 2n 7 06 7 GND 8 21712 8 07 8 GND 23 9 AO AJB 9 GND 10 2LED1 10 1 GD 10 GND 11 2LED2 211 M1 12 21 03 12 IOREQ 13 31 13 RD 14 3I2 214 CLK 151 15
38. Da der Befehl nach dem ersten Steuerwort bereits erwartet wird ist hierf r keine Kennung des Befehls erforderlich Die Ausgabe setzt sich hierf r wie folgt zusammen __ 0 gt Definition des als Ausgang PIO Port Bin rcode Hexcode 1 gt Definition des Bits als Eingang 1 A 100000000 00 1 B 00000000 00 2 111011011 2 B 01001001 49 Nach diesem Schema ergeben sich durch 3 7 11111111 FF unsere Hardware nebenstehende Ein und N 00000001 01 Ausgabedefinitionen der einzelnen PIO Ports De Atemschutzger te berwachung Nachdem nun alle 5 konfiguriert wurden m ssen auch noch die Displays initialisiert werden Die nachfolgend beschrieben Steuerw rter werden mit Hilfe des Moduls Icd bermittelt FUNCTION SET gt 30 8 Bit Daten 1 zeiliges Display 5x7 Font DISPLAY ON OFF gt Display ein Cursor aus Cursor Blinken aus CLEAR DISPLAY gt 01 Display l schen ENTRY MODE SET gt 06 Cursor auto increment Sind diese Befehle an die 3 Displays bertragen ist die eigentliche Konfiguration der Peripherie abgeschlossen Im Anschluss daran werden alle Ausg nge der 5 auf High gesetzt Dadurch erleuchten die LED s als auch die LCD Beleuchtung und der akustische Signalgeber ert nt Nach einer Zeit von einer Sekunde werden verursacht durch den Aufruf von alle zuvor e
39. Hinwegs 5 Ziel an Abbruch Auswahl der Ausgabe der Zeit Drucks des R ckwegs Ausgabe der Arbeitszeit Beendet 3 N otfall 5 Y Y Ausgabe der Zeit Tan Auswahl des des R ckwegs 9 Enddrucks 5 e Auswahl der Beendet Notfall T tigkeit Auswahl des Enae Enddrucks Standardisierte Abl ufe immer gleich Auswahl der T tigkeit Der Einsatz verl uft ohne Komplikationen Ende Komplikationen sind aufgetreten Ger tevariante Filter wurde gew hlt 121 Atemschutzger te berwachung Einschalten Schaltet man das Ger t am Hauptschalter ein so wird zun chst kompletter Selbsttest des Ger ts durchgef hrt Alle 3 Displays sowie die 9 LED s leuchten auf und der akustische Signalgeber ert nt Nach 15 werden all diese Elemente ausgeschaltet der Selbsttest ist abgeschlossen und die einzelnen Truppmodule befinden sich im Vorbereitungsmodus Nun werden alle 3 Module durch die Displays als FREI und verf gbar Abb 1 signalisiert Von diesem Punkt an erfolgt die Bedienung ber die jeweiligen 3 dem Trupp zugeh rigen Taster Ger tetypwahl Zun chst wird ber Taste die Datenaufnahme f r den Trupp begonnen Im Displ
40. Low Aktiv f r alle zus tzlichen PIO Controller sowie allen Displays 4 2 2 1 PIO Controller Die PIO Controller selbst organisieren den parallelen Datentransfer zwischen Mikrocontroller und Peripherie Die Aktivit ten des PIO Controllers werden ausschlie lich durch die CPU gesteuert Somit ist es notwendig dass beide Bausteine miteinander Signale austauschen k nnen e DO bis D7 werden mit dem System Datenbus verbunden e B A und C D werden mit den Leitungen bzw AO des System Adressbusses verbunden um nebeneinander liegende l O Adressen f r den PIO Controller zu schaffen e Port A und B dienen der Kommunikation mit der Peripherie Verbleibende Anschl sse werden mit den entsprechenden Leitungen des Systems verbunden Anschl sse Anschl sse nach nach innen Atemschutzger te berwachung Die PIO Betriebsarten werden je Port festgelegt Mode 0 Byteweise Ausgabe im Handshake Betrieb Mode 1 Byteweise Eingabe im Handshake Betrieb Mode 2 Byteweise Ein Ausgabe im Handshake Betrieb bidirektional Mode 3 Bitweise Ein Ausgabe mit Datenrichtungssteuerung bidirektional In unserem System wird mit Mode 3 gearbeitet da wir die meisten Ports bitweise als Eingabe und gleichzeitig als Ausgabe Interface benutzen wie z B PIO1 und 2 die mit den Tastern als Eingabe und den LED s als Ausgabe belegt sind Die beiden Handshakeleitungen ASTB ARDY bzw BSTB BRDY sind im Betriebsmodus 3 n
41. Vektorspeicher oder Speicherbereich genannt da hier alle zu speichernden Daten eingetragen werden 111 Atemschutzger te berwachung 6 Inbetriebnahme 6 1 Testphase Nachdem die Hardware komplett entwickelt und best ckt war konnten alle System Komponenten das erste Mal per Flachbandkabel verbunden und in Betrieb genommen werden Jedoch geschah bei der ersten Spannungsaufschaltung nicht das Geringste Demnach haben wir alle zus tzlichen Komponenten vom System abgeklemmt und somit vorerst nur eine absolut minimale Systemkonfiguration mit nur einer PIO und einem Display in Betrieb genommen Das zugeh rige Softwareprogramm war ebenfalls minimalistisch und beinhaltete nur die reine Initialisierung des einen PIO Controllers Da wir mit diesem ersten Testprogramm noch keine Displayinitialisierung vorgenommen hatten aber irgendeine Diagnose des Systembusses ben tigten bedienten wir uns einer vorhandenen Systembus Diagnoseplatine die ber einen 44 poligen Stecker mit dem Systembus unseres Mikrocontrollersystems verbunden wurde Die Diagnoseplatine signalisiert mit Hilfe von LED s auf einfachste Weise alle wichtigen Steuersignale sowie den kompletten Adressbus und Datenbus Um die Adressen Datenw rter und Steuersignale w hrend der Diagnose berhaupt aussagef hig darstellen zu k nnen ist es wichtig dass die CPU nicht mit dem systeminternen Quarz angesteuert wird sondern ber einen manuell generierten Takt von der Diagnosepl
42. Widerstand f r den definierten Zustand im Normalbetrieb welche ebenfalls direkt neben den Tasteranschl ssen auf der Displayplatine vorhanden sind _ 57 Atemschutzger te berwachung 4 6 3 Schaltplan DISTAS 28 03 62 900474840790 93 2 T T nasus aiueunoo 5 51 3710 101 2 sa vedl L Z NSOS IVrZ gO 0120 NS0S IVvZ r 9191 6051 e REH 81 90 oov y 59 _ Atemschutzger te berwachung 4 6 4 Layout DISTAS Oberseite 4 6 5 Layout DISTAS Unterseite nsd T 1ugsiN 5005 60 80 2 Ee _ 59 Atemschutzger te berwachung 4 6 6 Best ckungsplan DISTAS 60 Atemschutzger te berwachung 4 7 Gehause 4 7 1 Konstruktions berlegungen F r die gute Handhabung des Ger tes w hrend eines Einsatzes ist ein m glichst kleines handliches und portables Geh use sinnvoll Zus tzlich sollte es f r den Outdooreinsatz sto fest und Spritzwassergesch tzt nach Schutzart IP 65 sein Dementsprechend w re ein ABS Plastik Geh use mit Schutzart IP65 von der Firma BOPLA m glich jedoch sind die Komponenten dieses Systems etwas gr er als geplant ausgefallen so dass das ausg
43. Zeiger num in der Vektorvariable typ zeigt ausgegeben Die Variable numb1 wird nun mit dem Inhalt von num berschrieben Sind num und numb1 bereits zuvor identisch findet keine Ausgabe statt Jetzt wird berpr ft ob Ok1 gesetzt ist Ist dies der Fall wird die Schleifenfreigabe gesetzt die Variable zur ckgesetzt und der Inhalt von mum ausgew hlter Ger tetyp in die opeichervariable Daten geschrieben Hat num1 einen Wert 5 so wird DI zur ckgesetzt Ist der Wert gleich 5 entspricht dies der Wahl der Variante Eiter Somit wird der Merker 11 gesetzt und model auf 2 gestellt Im Folgenden wird die Anzahl der Truppmitglieder definiert Ist num gleich 1 3 5 wird mit 2 beschrieben es geh ren 2 FA zum Trupp Hat num den Wert 2 geh ren 3 FA dem Trupp an Als letzte Aktion in diesem Modul muss nun noch die maximale Einsatzzeit bestimmt werden die der Trupp im Einsatz sein darf Auch dies geschieht ber eine Abfrage der Variable num1 Beim Inhalt 2 3 wird der Grenzwert von 20 in x1 gespeichert Ist der Wert 1 so wird vi gleich 30 und bei der 4 erh lt sie den Wert 45 _ 8 Atemschutzger te berwachung 5 7 3 2 Programmablaufplan typ1 Plusi ja set Y 1 increment nein ja numi 1 gt Plus1 reset ja 1 decrement numi 5
44. alle Peripheriebausteine adressiert und k nnten die Daten bernehmen bzw w rden Datenkollisionen verursachen Damit nur ein Baustein die Daten bernehmen kann ist eine zus tzliche Selektierung notwendig Diese Aufgabe bernimmt der Adressdecoder 74 139 Die Decoderausg nge sind mit den entsprechenden Freigabe bzw Selektierungseing ngen CE CS der Peripheriebausteine verbunden Aufgrund der Ansteuerung von insgesamt elf unabh ngigen Peripheriebausteinen ben tigen wir einen Adressdecoder der 2 Bausteine adressieren kann Um jedoch nicht die vorhandene Kanis EMUF Platine zu ndern haben wir Adressdecoder kaskadiert Somit erhalten wir die Originalfunktionen auf der Platine und k nnen einen zus tzlichen Adressdecoder separat auf unserer Zusatzhardware realisieren Daf r wird nur der noch unbenutzte Decoderausgang vom vorhandenen Decoder 74HC139 Pin 9 auf der Platine umgeleitet und als Freigabesignal f r den zweiten Adressdecoder auf dem PIO Verteiler an CE angeschlossen Mit der Adressleitung A15 und dem Freigabesignal MREQ am Adressdecoder 74 139 1 wird entsprechend der zwei Zust nde der Adressleitung High LOW der RAM oder der ROM selektiert Mit den Adressleitungen 4 und A5 sowie dem Freigabesignal IORQ am Adressdecoder 74HC139 2 werden entsprechend der anliegenden Adresse die Peripheriebausteine PIO1 PIO2 510 oder der zus tzliche Adressdecoder ber den Decoderausgang 2Y3 angesteuert Die A
45. ausl sen wobei ohne besondere diese auch durch sich selbst unterbrochen werden k nnen Das ist auch der Grund warum normale Hardware Interrupts beim Sprung in die Interrupt Service Routine die Interrupts automatisch maskieren Durch R ckspeicherung des Statusregisters wird beim R cksprung immer der alte Zustand wiederhergestellt Hardware Interrupts sind gegen ber dem unterbrochenen Programm immer asynchron d h sie treten zu keinem bestimmten Zeitpunkt auf Daher d rfen Interrupts ohne besondere synchronisierende Ma nahmen keinen direkten Einfluss auf Programme aus ben Ablauf eines Interrupts gt Hardware bestimmt den Interruptvektor des IRQs mit der h chsten Priorit t 2 Hardware sichert Befehlsz hler und Statusregister auf dem Stack gt Hardware holt neuen Befehlsz hler vom Interruptvektor gt Software der Interrupt Service Routine sichert auch alle selbst benutzten Register auf dem Stack da ansonsten die Daten des unterbrochenen Tasks berschrieben w rden gt Interrupt Service Routine l uft 19 Atemschutzger te berwachung 2 Bei Bedarf kann nach Aufruf einer speziellen Betriebssystemfunktion durch die Interrupt Service Routine einen entsprechenden Task durch den ocheduler des Betriebssystems gestartet werden Da das einige Zeit dauert kann evtl zwischenzeitlich der gleiche Interrupt erneut auftreten was im Algorithmus der Interrupt Service Routine zu ber cksichtigen
46. berwachen s mtlicher Feuerwehrt tigkeiten ob Einsatz oder bung in denen Atemschutzger te verwendet werden Um die ohnehin enorme Stresssituation im Feuerwehreinsatz f r diesen Teil zu entspannen bietet dieses Ger t eine einfache Men f hrung Je Trupp dienen drei Taster zum Steuern w hrend der gesamten berwachung Es ist eine berwachung von bis zu 3 unabh ngig eingesetzten Trupps m glich Auch bei Dunkelheit ist die TGK3000 durch die Hintergrundbeleuchtung der Displays einsetzbar 9 2 Aufbau der der TGK3000 Erl uterung der einzelnen Elemente 1 gt Display je Trupp 2 gt Status LED 3 je Trupp gt Taster je Trupp 4 gt Lichttaster Trupp bergreifend 5 gt Systemhauptschalter gt der Vorderseite des Ger ts befinden sich die Buchsen f r die PID Sticks 120 Atemschutzger te berwachung 9 3 Menustruktur der TGK3000 Eine klar strukturierte und einfach verst ndliche Men f hrung begleitet den berwachenden f r die gesamte Dauer des Einsatzes Die Bedienung der einzelnen Trupp berwachungsmodule erfolgt unabh ngig und geschieht ber separate Bedienelemente Die Softwarestruktur l sst sich wie folgt visualisiert darstellen Frei Auswahl der Ger tevariante Ausgabe der Arbeitszeit Auswahl des Auswahl der Startdrucks T tigkeit Start Ende Ausgabe der Zeit des
47. fung s mtlicher Systemkomponenten und Vergleich aller Steckerbelegungen sowie komplette Signalverfolgung zu allen Bausteinen stellte sich heraus dass die Displays immer dann auf den Datenbus zugegriffen haben als sie eigentlich gesperrt waren Demnach war das Aktivierungssignal CE genau invertiert und folglich konnten wir den Fehler schnell lokalisieren 114 Atemschutzger te berwachung Im Endeffekt wurde dieser Fehler durch einen falschen Logik IC in der Displayvorschaltung welche wie in Kapitel DISTAS beschrieben ist die Verriegelung des Aktivierungssignals CE bei falscher Softwareansteuerung bernimmt verursacht Der IC3A auf der DISTAS Platine muss korrekterweise ein 7408 UND Gatter sein Bei der Entwicklung mit dem Layouteditor EAGLE wurde das Bauteil im Schaltplan auch korrekt entworfen Aufgrund eines Fehlers in der Bauteilbibliothek von EAGLE wurde dieses Bauteil jedoch im Best ckungsplan f r die Layoutansicht als 7400 NAND Gatter falsch bezeichnet Da der Best ckungsplan als Vorlage f r die Platinenfertigung diente wurde dort ein entsprechender Baustein eingebaut Nach dem Austausch dieses Logik IC s gegen den richtigen 7408 funktionierte das gesamte System mit allen angeschlossenen oystemkomponenten und ohne zwischenzeitlich eingebautem Bustreiber Leider hatte uns diese kleine Verwechselung viel Zeit und Nerven gekostet Dann ging es aber mit gro en Schritten voran denn nachdem wir alle Bauteile in ein
48. ist gt Software der Interrupt Service Routine r cksichert alle selbst gesicherten Register gt Interrupt Service Routine sichert sich durch R cksprung R ckspeichern von Befehlsz hler und Statusregister vom Stack der dadurch wieder seinen alten Stand wie vor der Unterbrechung hat so als w re nichts gewesen gt Der aufgerufene Task kann die weitere Bearbeitung der gepufferten Daten bernehmen 3 2 6 Begrifflichkeiten der Informatik In den sp teren Beschreibungen der einzelnen Module werden u a g ngige Begriffe aus der Informatik verwendet die hier zuvor noch einmal kurz erl utert werden Werden die Begriffe reset oder zur ckgesetzt verwendet so meint dies lediglich dass der Inhalt einer Variable 0 ist Treten die Ausdr cke set oder gesetzt auf wird darunter der Inhalt 1 verstanden Des Weiteren gibt es die M glichkeit Werte miteinander zu verkn pfen Das Zeichen steht f r eine ODER Verkn pfung w hrend das 8 f r eine UND Verkn pfung steht Sowohl hinter den Begrifflichkeiten Steuerwort als auch hinter Datenwort sowie Daten verbirgt sich in der Regel eine Information Hexadezimalcode 20 Atemschutzger te berwachung 4 Hardware 4 1 Z80 EMUF Platine 4 1 1 Konstruktions berlegungen Aufgrund der Entscheidung eine neue EMUF Platine mit serieller Schnittstelle der Firma Kanis zu bestellen mussten wir uns berlegen wie wir m glichst zeit un
49. kel L o je o o o lebt gt gt gt gt o gt S Jo IS IE Jo 9 ZAY N N col ele N ZAY 1381 2 1 1 ZAY LL F E _ _ E E I Ka N N N gt 5 o o JO o o o O IP L L U m o gt gt Iw Ii IND JO JO IND JO 19 LS JO gt N o o ott N gt gt 8 8 24802 WII CN LO CN CN 1 51 09 195 1 1381 2 1381 m 5 4 IS o gt o o Io IN N 5 2 gt gt gt ojo o iO Li IND JO IO IND JO x esL gt gt gt Jo 44 Atemschutzger te berwachung 4 2 6 Best ckungsplan PIO Verteiler Platine
50. mit entsprechender Kapazit t Um den Ladezustand w hrend des Betriebes zu berwachen soll eine Akkuzustandsanzeige mit Bargraphanzeige entwickelt werden Zus tzlich fehlt ein integrierter Laderegler der den Akku nach dem Einsatz kontrolliert wieder aufl dt SN ES Atemschutzger te berwachung 2 2 Blockschaltbild LCD 1 LCD2 LCD 3 Taster A LED Taster A LED Taster 4 LED ST8b 1 ST9b 1 5 57105 pm ES z N L L WP E m E 3571 KANIS EMUF 780 Extension 513 un 5716 ZER IN 4 61 ART vi MS E M Stewer Bms I 1 L N Pa 3 1 E H4 PIO2 PIO1 5 d ECH s N Z80 I H 3 k CPU LI 6 ROM s m WEE iv DE EE E E EAE A
51. nach wie vor nicht verzichtet werden Im brigen steht die Entwicklung der soeben angesprochenen Datenbank welche mit Hilfe der Programmiersprache JAVA realisiert werden soll bei unserer Projektarbeit zun chst im Hintergrund bis die gesamte Hardware einwandfrei funktioniert Atemschutzger te berwachung 2 Projektaufbau 2 1 Vor berlegungen F r die Realisierung des Projektes stand zun chst die Entscheidung aus welches Mikroprozessor System wir verwenden sollten um m glichst schnell und kosteng nstig ans Ziel zu gelangen Da es eine Vielzahl von uP Systemen gibt die wiederum mit einer Vielzahl von Funktionen und gro em Befehlsumfang aufwarten entschieden wir uns f r ein vertrautes uP System dem Zilog 280 bei dem wir den Befehlsumfang bereits kennen und dessen Funktionen und Leistung f r diese Aufgabe voll und ganz ausreichend sind Da wir aufgrund der Bedingungen f r den praktischen Einsatz entsprechend mehr Hardware ben tigen 3 Trupps 3 LCD 9 ID Sticks mussten wir entweder ein komplett neues EMUF System mit zus tzlicher Peripherie onboard entwickeln oder ein vorhandenes Standard EMUF System verwenden und dazu die fehlende Peripherie entwickeln Um das Rad nicht neu erfinden zu m ssen entschieden wir uns eine bew hrte Standard EMUF Platine der Firma Kanis zu verwenden und die fehlende Peripherie auf Zusatzplatinen selbst zu entwickeln und zu fertigen Somit haben wir bereits im Voraus e
52. set Y enable1 set wb1 wi 521 lt 10 v 5712 reset 5712 set 521 increment Ok1 ja set 5211 increment reset w 1 ja w1 1 1 0 103 Atemschutzger te berwachung 5 7 12 art1 5 7 12 1 Programmbeschreibung Dieses Modul dient der nach einem Einsatz erforderlichen Aufnahme der vom Trupp durchgef hrten T tigkeit Zu Beginn des Moduls wird led1aus aufgerufen um alle LED s auszuschalten Es wird kontrolliert ob der Merker Plus1 gesetzt ist Trifft dies zu wird die Variable ol inkrementiert Hat sie nun einen Wert gt 7 wird sie automatisch auf 0 zur ckgesetzt 151 die Variable Minus1 gesetzt wird q1 dekrementiert Ist der Inhalt nun lt 0 wird er auf 7 gesetzt Minus1 wird nach dieser berpr fung ebenfalls zur ckgesetzt Ist q1 ungleich qb1 wird das Display gel scht und es wird die T tigkeit ausgegeben auf die q1 gerade in der Vektorvariable arbeit zeigt Ist dies geschehen wird qb1 q1 angeglichen Wurde seit dem letzten Reset von Ok1 erneut die Taste bet tigt wird die Schleifenfreigabe enable1 gesetzt wird zur ckgesetzt und die gew hlte T tigkeit die Speichervariable Daten f r den gesamten Trupp bermittelt 5 7 12 2 Programmablaufplan art
53. w1 ungleich wb1 ist das Display gel scht und der gew hlte Beh lterdruckwert wird mit dem Anhang Bar ausgegeben Zus tzlich wird wb1 mit dem Inhalt von wi berschrieben Solange 521 kleiner als 10 ist wird nun sz12 zur ckgesetzt und 521 inkrementiert Ansonsten wird sz12 gesetzt Ist Taste bet tigt worden folgt die Inkrementierung von sz11 erneut resetet und die gew hlten Daten in Speichervariable Daten bertragen Au erdem erh lt wi den Inhalt 1 und wb1 die 0 Im Anschluss daran wird abschlie end kontrolliert ob fa1 gleich 5211 ist Bei Zutreffen erfolgt die Schleifenfreigabe 101 Atemschutzger te berwachung 5 7 11 2 Programmablaufplan ende1 endet 5212 MN lediaus Display1 clear Display1 Beendet led11 led12 v led13 wi increment nein Plus1 reset 102 Atemschutzger te berwachung 1 decrement nein Minus reset ja Display1 clear Display1 ziel aus w1 Bar enable1
54. wird das Ausl sen von Interrupts an der CPU freigeschaltet Dies wird in iniim2 lediglich vorbereitet Nun wird der Interruptmode 2 durch den Befehl im 2 am System eingerichtet Zu Port A und B der PIO 2 wird das Steuerwort 83 bermittelt Dadurch wird auch die PIO f r Interruptverarbeitung freigeschaltet Folgend werden s mtliche Variablen welche in diversen Unterfunktionen verwendet werden initialisiert An diesem Punkt beginnt die For Schleife welche unendlich immer wieder durchlaufen wird Es wird zu Beginn dieser Schleife kontrolliert ob die Variable enable1 im Folgenden auch Schleifenfreigabe genannt gesetzt wurde Trifft dies zu wird unmittelbar der Schleifenz hler des ersten Trupps namens trupp1 inkrementiert und Schleifenfreigabe wird unverz glich zur ckgesetzt Die Schleifeninternen Variablen 521 5211 5212 5213 sowie rechnen1 werden ebenfalls zur ckgesetzt _ 68 Atemschutzger te berwachung Dies muss gemacht werden da sie in diversen Unterfunktionen f r andere Zwecke verwendet werden Im Anschluss an die Kontrolle von enable1 wird berpr ft ob der Schleifenz hler 1 den Inhalt 11 hat Ist dies so wird p1 inkrementiert In ihr wird die Einsatznummer w hrend des Betriebs fortlaufend gez hlt Alle LED s des 1 Truppmoduls werden ausgeschaltet und somit s mtliche Variablen die im Programm durch Abarbeiten des vorherigen Einsa
55. 1 11 B 2 02 1 2 ledi2 A 2 04 3 led13 B 2 04 1 led21 B 2 10 2 2 led22 2 20 3 1 23 2 20 _ 1 led31 B 2 80 3 2 led32 B 1 01 3 led33 A 1 01 5 7 14 2 Programmablaufplan led11 Y lediaus zwischen b2dat zwischen zwischen 02 b2dat zwischen i E 106 Atemschutzger te berwachung 5 7 15 ledi1aus 5 7 15 1 Programmbeschreibung Ahnlich wie zum Einschalten der LED s wird auch eine Funktion zum Ausschalten dieser ben tigt Hierf r werden ebenfalls die Port Zust nde in die Variable eingelesen mit einer Maske UND verkn pft und wieder zum Port gesendet Je nach Modul ergeben sich auch hier verschiedene Masken und einzulesende Ports Trupp Modul Port PIO Maske Hex LED A 2 FB 2 2 Fo 1 3 2 2 2 x led2aus B 2 1 3 2 1 led3aus 1 FE 3 B 1 FE 2 5 7 15 2 Programmablaufplan led1aus lediaus Y merker a2dat merker amp merker amp FB a2dat merker _ merker b2dat Y merker lt merker amp F9 b2dat merker e C ret D 107 Atemschutzger te berwachung 5 7 16 blink1 5 7
56. 3111 L9dvd 6 95 55 5 21 4 IN 6 9L Qavd gt IN 9 0 IN co TS IN 40 0 co bed ZQvd 9d vd 4 2 5 F6 8 bi 7 Li 9 zi EU T z sf 9l L F6 8 7 Li 5 zi 7 EI Eu 2 9l L LOT ST T C NI O IN 40 co Z avd Se avd vedyd eavd 89dVd 4 99dVd 54 Atemschutzg
57. 62 281 E 5 er GC s I BE ze mar wj z 9l s 9r 1 B za o 24 waw 72 25 56 wp s s a mp 8i C 8r esp E e 5 0 gt A 82 1000 92 p ef ee 5 o GIL Z SEH NER p U d 959 53 54 G s 9 of Ehe SEI GER C L 025 LE 0 Le 91 15 2 087 1I3MI90S 43MIFLS 49 Atemschutzger te berwachung 4 3 4 Layout CPU Extension Oberseite RESET CLK EE PIO Verteiler _ 50 Atemschutzger te berwachung 4 4 PID IN Platine 4 4 1 Aufbaubeschreibung Die PID IN Platinen Personen ID Input Platinen dienen lediglich der Aufnahme der Personen ID Sticks In unserem System befinden sich drei dieser Platinen welche mit jeweils drei Modular Einbaubuchsen versehen sind Daraus ergibt sich eine rein optische Trennung der einzelnen Trupps jeweils drei Steckpl tze pro Trupp Des Weiteren befinden sich auf den Platinen 26 polige Pfostenstecker welche mit den Einbaubuchsen verbunden sind ber diese Pfostenbuchsen wird mittels Flachbandkabel die Verbindung zum PIO Platine hergestellt Wir haben die Variante mit drei einzelnen Platinen gew hlt um ein evtl Austauschen im Fehlerfall schnell und kosteng nstig zu gestalten 4 4 2 Schaltplan PID IN Platine Document Number
58. Adressbereich von dynamischen RAM 5 kann nicht unterteilt werden und erfordert dann eine Decodierlogik zum Ein Ausblenden von RAM und Festwertspeicher 3 1 7 ROM Read Only Memory Ein ROM ist ein Speicher bei dem die Daten durch eine Maske fest verdrahtet werden ROM Speicher verwendet man wenn keine nachtr glichen Anderungen mehr zu erwarten sind Sie werden vorwiegend als Programmspeicher eingesetzt opeicheraufbau und Organisation sind vergleichbar mit statischen RAM s 16 Atemschutzger te berwachung 3 2 Software 3 2 1 Assemblersprache Eine Assemblersprache ist eine spezielle Programmiersprache welche die Maschinensprache einer spezifischen Prozessorarchitektur in einer f r den Menschen lesbaren Form repr sentiert Jede Computerarchitektur hat folglich ihre eigene Assemblersprache Ein Programm in Assemblersprache wird auch als Assemblercode bezeichnet Es wird durch einen speziellen Compiler in direkt ausf hrbare Maschinensprache Maschinencode umgewandelt Die umgekehrte Umsetzung von Maschinencode in Assemblercode wird Disassemblierung genannt Allerdings lassen sich dabei wesentliche Informationen wie Bezeichner und Kommentare nicht wiederherstellen da diese bereits bei der Kompilierung unwiederbringlich verloren gingen Programme in Assemblersprache zeichnen sich dadurch aus dass man die komplette Bandbreite des Computers ausnutzen und Hardwarechips direkt programmieren kann Weil Assemblerprogramme fakti
59. Atemschutzger te berwachung Inhaltsverzeichnis KEINEEITUNG un 6 1 1 ProjektbeschreipUNnd W W aa 6 k2 7 ZIEROJERTAUFBAU i uuu u 10 2 1 VOoruberlegungen EE 10 2 2 Blockschaltbildau u uuu u u uy u u uuu 12 PARK RA RE 13 S ALEGEMEINES 14 CX Bar olli 14 9UIT ZHOQ Z80 EE 14 3 1 2 PIO arten Nee ne 14 3 1 3 SIO Seriell Input Output R8232 15 3 1 4 ROT He Ee Ee E ul TEE 15 3 1 5 Pull Down Widerst nde 22 22 00000000000000 000 15 3 1 6 RAM Random Access Memor 16 3 1 7 ROM Read Only Memory 16 3 2 ar ER 17 2 2 ee ent EE 17 32 2 Pr grammiersprache uu uu u u uuu ee 17 18 18 32 1 Statisches LINKe EE 18 3 2 4 2 Dynamisches Linken EE 18 3 25 a E RE E EE 19 3 2 6 Begrifflichkeiten der 20 HARDWARE EE 21 TUTE ET 21 4 1 1 Konstruktions berlegungen 21
60. Dies geschieht solange bis die Taste gedr ckt wird Anschlie end wird mittels if Abfrage kontrolliert ob die Ger tevariante Filter gew hlt wurde Ist dies der Fall so wird der Schleifenzeiger des jeweiligen Trupps manipuliert um anschlie end zum eigentlichen Zeitz hler f r diese Ger tevariante zu gelangen Ist dies nicht der Fall wird die Funktion beendet und beim n chsten Schleifendurchgang erfolgt der Aufruf der Funktion count11 5 7 6 2 Programmablaufplan start C start E Y lediaus Display1 Start 1 set enable1 set nein reset v truppi 7 5 88 Atemschutzger te berwachung 5 7 7 count11 5 7 7 1 Programmbeschreibung Dieses Unterprogramm ist der Einsatzzeitcounter f r den Hinweg zur Einsatzstelle Ist die intern verwendete Variable sz1 noch auf 0 so wird die Funktion im aktuellen Einsatz zum ersten Mal aufgerufen Somit muss die maximale Einsatzzeit von x1 nach time1 geschrieben werden Der Merker time ml wird zur ckgesetzt Hat 1 nun einen anderen Inhalt als timeb1 erfolgt die Ausgabe der aktuellen Zeit Dies geschieht durch L schen des Displays und anschlie ender Ausgabe von sowie dem Zeitwert Variable time aus und dem Anhang min Danach wird time ml erneut auf gesetzt und timeb1 an time1 angepasst
61. Ground Transmitt Data Leitung f r gesendete Daten Pin Out RxD Receive Data Leitung f r Datenempfang Pin Pin 2 In RTS Request To Eine logische 1 signalisiert der Gegenstelle dass sie Pin 4 Pin 7 Out Send Daten senden kann CTS Clear ToSend Eine logische 1 signalisiert der Gegenstelle dass sie Pin 5 Pin 8 In Daten annehmen kann DSH Datasetready Eine logische 1 signalisiert dem PC Einsatzbereitschaft Pin 6 Pin6 In GND Ground Signalmasse Pin7 Pin7 DCD Data Carrier Ger t signalisiert dem PC dass eingehende Daten Pin 8 Pin 1 In Detected erkannt werden DTR Data Terminal PC signalisiert Betriebsbereitschaft Dadurch kann ein Pin 20 Pin 4 Out Ready Ger t eingeschaltet oder zur ckgesetzt werden RI Ring Indicator Ger t zeigt dem PC dass ein Anruf ankommt Pin 22 Pin 9 In Namen und Bedeutungen der wichtigsten Signalleitungen Leitungsbezeichnungen immer aus Sicht des DTEs PC 26 Atemschutzger te berwachung 4 2 PIO Verteiler Platine 4 2 1 Konstruktions berlegungen Als eine Herausforderung es eine Platine zu entwickeln die f nf zus tzliche PIO Bausteine aufnehmen kann die Hauptspannungsversorgung bernimmt den kaskadierten Adressdecoder enth lt und ferner alle Verteilerstecker von den Display Platinen den PID IN Platinen dem Systembus sowie die Taster LED Signale durchleitet Dies s
62. In der folgenden Tabelle ist eine grobe bersicht von Leiterbahnst rken in Abh ngigkeit von der Umgebungstemperatur zu sehen Achtung nur Richtwerte Schicht Leiterbahn Max Strom Abh ngigkeit zur Temperaturerh hung st rke breite Thickness Track current depending on temperarature increase copper layer width 0656 wa 35 um 10 5 5 Ju SE EE ___ ____ 025mm 10A 16 20A 25A 30A 050mm 20A 28A 35A 40A 45A 100mm 35A 47A 58A 68 80 70 um 4 00 mm 38 Atemschutzger te berwachung 4 2 2 Aufbaubeschreibung Wie bereits erw hnt enthalt die PIO Verteiler Platine f nf zus tzliche PIO Bausteine zur Erweiterung des Mikroprozessorsystems f r weitere IO Peripherie In diesem Fall besteht die IO Peripherie haupts chlich aus den PID Sticks Die Hauptfunktion dieser Platine besteht also darin als Benutzereingabeschnittstelle zu agieren Zus tzlich werden alle Signalverbindungen zwischen der CPU und s mtlicher Zusatzhardware ber Flachbandkabel und Steckverbinder ber die PIO Verteiler Platine gef hrt die somit als zentraler Hauptverteiler im System dient Je 7 parallele Datenleitungen von den neun PID Sticks siehe Kapitel PID Sticks werden ber die PID IN Platine direkt an Port A und B der PIO s durchgeleitet Somit wird also jeweils ein PID Stick einem Port einer PIO zugeordnet ID Stick PID1 PID2
63. PID3 PID4 PID5 1 06 PID7 PID8 PID9 PORT PIO 48 PIO 5A PIO 5B PIO 6B PIO 7A Die letzte PIO im System PIO7 ist nur auf Port A von einem PID Stick belegt Port B ist also noch f r zus tzliche Signale frei wie z B dem des Alarmsignalgebers Buzzer und des Tasters f r die Displayhintergrundbeleuchtung Da die maximale otrombelastung der IO Ports auf ca 4 mA begrenzt ist mussten wir bei allen Ausgangskomponenten die mehr als 4 mA ben tigen einen Treiberbaustein zwischenschalten Der Buzzer hat eine Stromaufnahme von ca 10 mA folglich haben wir einen Feldeffekt Transistor BS170 als Treiber vorgeschaltet der als Schalter arbeitet Der Taster ist wie alle Anderen Low Aktiv und ben tigt somit einen Pull Up Widerstand am Eingang der um in Ruheposition einen definierten Zustand zu liefern emt RK WWW NM M E E Ex EN w w We Atemschutzger te berwachung Die Spannungsversorgung f r das komplette System von 5V wurde mit einem Low Drop Festspannungsregler verwirklicht der mit einer Dropout Spannung Differenz zwischen Eingangs und Ausgangsspannung von max 500mV minimale Verbrauchswerte aufweist Somit k nnen wir das System mit einem Akku von 6V betreiben Der bereits erw hnte kaskadierte Adressdecoder liefert von der PIO Verteiler Platine das Aktivierungssignal Chip Enable CE gt
64. UF Platine ca 350 mA laut Hersteller Somit errechneten wir einen maximalen Gesamtstromverbrauch des Systems von ca 1000mA Um nun den genauen Querschnitt zu errechnen nahmen wir uns das Programm sowie das Programm POLAR TRC 100 zur Hilfe siehe Anhang womit den Leiterbahn querschnitt in Abh ngigkeit von der max otrombelastbarkeit und der Temperatur erh hung sowie den Leiterbahnwiderstand berechnen kann Atemschutzger te berwachung Auf Basis dieser Berechnungen und einer Kupferbeschichtung von 35 um entschieden wir uns bez glich der Spannungsversorgung f r eine Leiterbahnbreite von 0 4014 mm die bei einer Temperatur nderung AT 20 C bis zu 1 55 A durchleiten kann Dies ist bei einer theoretisch max Stromaufnahme von 1 A eine ausreichende Dimensionierung Leider konnten wir keine doppelte Sicherheit im Sinne einer breiteren Leiterbahn bis zu 2 A realisieren da die Platine daf r zu komplex ist und die Leiterbahnen sehr kompakt geroutet wurden Bei unserem Praxistest haben wir eine maximale Stromaufnahme inklusive der Displayhintergrundbeleuchtung die etwa die H lfte des Gesamtsromverbrauches ausmacht von ca 650 mA gemessen Somit erreichen wir im durchschnittlichen Normalbetrieb gerade die H lfte des maximal m glichen Stromes der berechneten Leiterbahn Dies kommt daher dass niemals alle vorhandenen Komponenten ihre maximal m gliche Stromaufnahme zur gleichen Zeit anfordern
65. _________ Adressdecoder 7480138_______ MN Spannungsregler L4940V5 _____ l JKIRUP K9RUP 9 fach Parallel Widerstand 4 7 KQ 9 _RIUP RSRUP _____ Widerstand 4 7 2 Q2RUP Widerstand 4 7 KQ eet D Widerstand 90 Q _________ ege Ew DEN Taster Schlie er Ee QI 2 2 2Q Transistor BS170 2 1 2 BUZZER Miniatur Piezo Summer 1 131 Atemschutzger te berwachung 10 3 4 CPU Extension Platine Name Anzahl E Wannenstecker 20 ee SI REN Wannenstecker 10pol Mer E Wannenstecker 44pol RES Z80 CPU Z80 CPU 10 3 5 PID IN Platine Name Anzahl Etat 8 fach Modularstrecker RJ45 _ ee ST 11B Wannenstecker 26pol 1 10 3 6 PID Stick Name _Bauteil Anzahl S 1 _Mini Dip Schalter B TEKO 10006 1 10 4 Kostenaufstellung Baugruppe Anzahl Einzelpreis Gesamtpreis Kanis EMUF 1 110 37 110 37 PIO Platine 1 69 22 71 47 PID Sticks 2 15 19 35 PID IN 3 1 12 3 36 DISTAS 3 22 25 66 75 CPU Extension 1 1 54 1 54 Geh use 1 17 70 17 70 Kabel amp Stecker dv 8 61 8 61 Platinen etc 34 76 34 76 333 91 132 Atemschutzger te berwachung 11 Erkl rung der Projektteilnehmer Hiermit erkl
66. atenleitung in Form einer Kette miteinander verbunden sind sodass der Ausgang einer Hardwarekomponente mit dem Eingang der N chsten verbunden ist Die erste Komponente ist direkt mit der CPU verbunden Wird nun ein Interrupt von einer beliebigen Komponente angefordert wird dieser Interrupt erst dann von der CPU bearbeitet wenn ein evtl angeforderter Interrupt eines vorigen Interrupt Requestors beendet wurde Denn w hrend der Bearbeitung eines Interrupts werden alle nachfolgenden Interruptanforderungen gesperrt also von allen Komponenten die in der Daisy Chain hardwarem ig nachgeschaltet sind Wichtig ist auch hier dass die Daisy Chain zwischen jeder Komponente auch mit einem Pull Up Widerstand versehen wird da die IEl Anschl sse als Eing nge definiert sind 1 Daisy Chain vor Interrupt Ausl sung HI HI HI HI HI IEI PIO1 IEI PIO2 IEI IEI PIO4 2 Daisy Chain nach Interrupt Ausl sung HI HI LO LO LO IEI IEI PIO2 IEI IEI PIO4 4 2 2 3 Adressierung der PIO Register Der PIO Controller ist in den l O Adressraum des Mikroprozessorsystems eingebunden und wird mit den Adressleitungen 0 an B A zur Auswahl von Port A oder B und A1 an C D zur Auswahl des Steuer oder Datenregisters angesteuert B A CID RD adressiertes PIO Register 0 0 0 Eingaberegister Port A 0 O 1 Ausgaberegister Port A 0 1 steuerr
67. atine Der so genannte Single Step Betrieb Dazu ist es jedoch notwendig den Systemtakt zu unterbrechen In unserem Fall haben wir diesbez glich bei der nachtr glichen Entwicklung der CPU Extension Platine einen Jumper eingebaut womit man den Systemtakt unterbrechen kann Somit waren nun alle Vorbereitungen f r einen vern nftigen Testbetrieb get tigt Folglich konnten wir eindeutige Zust nde auf dem Systembus Datenbus und Steuerbus Schritt f r Schritt ablesen und die Befehle sowie die Datenw rter mit unserem Testprogramm check1 in der folgenden Tabelle verifizieren 112 Atemschutzger te berwachung 6 1 1 Testprotokoll des ersten Testprogramms check1 Angezeigter Dual Code Dual Code E w wll w rei irel re E w ri lt lt lt u l
68. atine 555 52 4 4 4 Best ckungsplan PID IN Platine r 52 4 5 PID Sticks Personen ID StIGKS L L u u ra EENS 53 4 5 1 Konstruktionsuberlequngeh rette EHI eei o t 2 53 4 9 2 Autba beschreiDUng uuu EUM EE um EI 53 45 95 Schaltplan IR 54 bayout PID e 55 4 5 5 Bestuckungsplan PID Sticks en tn ena ea ro a 55 4 6 DISTAS Display und Taster Platine 56 4 6 1 4 56 4 02 Autbaubeschreibung BE 57 4 6 3 ScHallplan DISTAS se 58 4 6 4 Layout DISTAS Oberseite nennen 59 4 6 5 Layout DISTAS 59 4 6 6 Best uckungsplan DISTAS d ertt Ee susanne 60 ET 61 4 7 1 Konstruktions berlegungen 61 4 7 2 Aufbaubeschrebung 61 41 3 eat Ee EE 62 9 Essi a sum 63 2 1 Soliwarestii TEE 63 5 1 1 Visuelle Struktur der Software 64 5 2 Heade
69. aubeschreibung Die CPU Erweiterungsplatine beinhaltet lediglich die CPU selbst einen Sockel f r das 40 polige Flachbandkabel zur Verbindung zur EMUF Platine einen Stecker f r die Weiterleitung der ben tigten Signale vom Systembus zu den PIO s und Displays sowie einen 44 poligen Diagnosestecker mit allen Signalen des Systembusses An dem Diagnosestecker kann man eine Bus Test Platine anschlie en um den kompletten Systembus und somit das Programm im Single Step Betrieb ohne angeschlossenem Systemtakt des Quarzes zu testen Der Systemtakt des Quarzes und das Reset Signal wurden beide jeweils ber einen externen Jumper auf der Erweiterungsplatine hinausgef hrt Der Jumper CLK ist nur f r die Inbetriebnahme und Testphase in Zusammenhang mit der Bus Test Platine im Single Step Betrieb zu im Normalbetrieb immer geschlossen zu halten Mit dem Reset Jumper 1051 man bei Kurzschluss einen Systemreset aus Die CPU ist 1 1 mit dem Originalsockel verbunden Zus tzlich wurden noch zwei wichtige Signale von der EMUF Platine f r die erweiterte Hardware angezapft und ber einen extra Stecker weitergeleitet Das Ausgangssignal 2Y3 des Adressdecoders zum kaskadieren des zweiten Adressdecoders auf der PIO Verteiler Platine siehe Kapitel Adressdecoder und die Daisy Chain von PIO2 zu PIO3 durchzuleiten _ 47 Atemschutzger te berwachung siehe Kapitel Daisy Chain HR 180 CPU 914 a KS 3 5 gt P
70. aufplan od 84 NESCIT i u 96 2 7 2 1 222 25009 E Coro oto in Po ai Pa ra te e I 86 5 7 5 2 Programmablaufplan 2 22 22000000 200000000000 96 9 1 0 SIAH ME Inde 98 5 7 6 1 Programmbeschreibung nase 68 5 7 6 2 Programmablaufplan 98 E 89 5 7 7 1 Programmbeschreibung EE 89 5 7 7 2 Programmablaufplan 411 7 222222 22000000 000000000 89 ET TEE 91 5 7 8 1 Programmbeschreibung 22 000000000 000000222 91 5 7 8 2 Programmablaufplan elt 92 D EE 95 5 7 9 1 Programmbeschreibung 95 5 7 9 2 Programmablaufplan 12 95 HN ucc ________ 96 5 7 10 1 Rrogrammbeschrebung 96 5 7 10 2 Programmablaufplan 13 98 DL ENdel 101 5 7 11 1 Programmbeschreibung 101 5 7 11 2 Programmablaufplan 1
71. ay erscheint der erste zur Verf gung stehende Ger tetyp Abb 2 ber die Auswahltasten Pfeiltasten ist es nun m glich die tats chlich verwendete Ger tevariante zu w hlen Die Best tigung der Auswahl _ 588 erfolgt schlie lich ber OR und wird durch ein akustisches Signal quittiert PID Stick einlesen Nun wird der Bediener des Ger tes aufgefordert die PID Sticks der Truppmitglieder in die PID Buchsen einzusetzen Ist dies erfolgt oder bereits zuvor geschehen so wird der Men punkt akustisch quittiert und ohne weitere Best tigungen verlassen Eingeben der Beh lterdr cke Als n chstes folgt die Eingabe der Beh lterdr cke dem Einsatz Dies geschieht f r die einzelnen Truppmitglieder nacheinander Durch die LED s 1 bis 3 wird angezeigt von welchem Truppmitglied der Druck abgefragt wird Eingestellt werden die Dr cke mittels der Pfeiltasten und anschlie end mit OK ausgew hlt Sind f r alle Truppmitglieder die Werte gespeichert erfolgt die akustische Best tigung und die Vorbereitungsphase ist beendet Einsatzmodus Der vorbereitete Trupp ist nun vollst ndig Einsatzbereit Dies wird im Display durch Start signalisiert 122 Atemschutzger te berwachung Einsatzbeginn Beginnt schlie lich der Einsatz so ist nur die Best tigung durch die Taste OK erforderlich und die H 3 amp min Einsatzzeit f r den Hinweg wird vom Maximalwert ergibt sich durch die Ger tetypauswahl heru
72. bfrage ob die Variable warn1 gesetzt wurde Ist dies der Fall und sz11 hat den Inhalt O sowie mode1 ist gesetzt wird das Display gel scht und es folgt die Displayausgabe Abbruch Au erdem wird der global verwendete Merker sz mit 300 beschrieben Ist 1 gesetzt und sowie 5211 als auch model sind auf 0 wird dies ebenfalls gel scht und die Ausgabe folgt Anschlie end wird timeb1 auf 0 gesetzt und der globale Merker 52 mit 300 berschrieben Nach beiden Varianten wird anschlie end sz11 gesetzt sowie 2 mit 2 beschrieben Wurde in der Zwischenzeit bereits bet tigt setzt das Programm warn1 sowie Ok1 unmittelbar zur ck Damit ist die Verarbeitung von warn1 abgeschlossen Folgend wird wie in der Funktion count11 beschrieben m1 je Funktionsaufruf inkrementiert Im ersten Durchgang erfolgt das Setzen von time1 sowie das R cksetzen von time mi Hat m1 den Wert 285 erreicht wird automatisch inkrementiert Ist warn1 sowie notfall1 bereits zur ckgesetzt oder die Variable 1 gesetzt folgen die n chsten Abfragen Bei Ungleichheit von time1 und timeb1 wird zun chst entschieden welches Vorzeichen f r die Zeit auf dem Display ausgegeben wird Die Anzeige von Fi erfolgt wenn 11 gesetzt wurde Ist dies jedoch nicht der Fall h ngt das Vorzeichen von model ab Bei dessen Inhalt 0 wird R ansonsten ausgegeben Unabh ngi
73. che Spannung auf GND oder im Falle einer symmetrischen Betriebsspannung von auf Us hinunter Will man daf r sorgen dass der Eingangspin logisch HIGH erh lt wenn die Taste gedr ckt wird liegt der Taster bzw Schalter zwischen dem Eingang des Gatters und Der Pull Down Widerstand liegt zwischen dem Eingang und GND Beim ffnen des Kontaktes zieht der Pull Down Widerstand die _ 15 Atemschutzger te berwachung opannung am Eingang hinunter auf GND was logisch LOW entspricht Bei der Anwendung von Pull Up und Pull Down Widerst nden geht es immer darum dass bei einem offenen Kontakt der korrekte logische Eingangspegel garantiert ist 3 1 6 RAM Random Access Memory Ein RAM ist ein Schreib Lesespeicher In Speicherschaltungen gr erer Kapazit t verwendet man heute fast ausschlie lich dynamische RAM Sie sind meistens bitorganisiert und m ssen zum Erreichen der geforderten Wortbreite in entsprechender Anzahl zusammengeschaltet sein Durch den gro en zusammenh ngenden Adressbereich kann die Kaskadierung mehrerer Bausteine ber Moduladressen in vielen F llen entfallen F r kleinere Systeme bevorzugt man statische RAM da diese kein Refresh ben tigen und bei einem Ausfall der Versorgungsspannung mit Akkus kleiner Kapazit t gepuffert werden k nnen Bei gemischtem Betrieb mit Festwertspeichern muss Zentralspeicher funktionsbedingt aus Modulen bestehen Der gro e zusammenh ngende
74. d kosteng nstig diese Platine f r unsere zus tzlich ben tigte Peripherie modifizieren ohne die Platine oder Bausteine zu ndern Das Hauptproblem war die Adressierung unserer Zusatzperipherie Da unser System mit ber elf Peripheriebausteinen relativ komplex ist br uchte man einen Adressdecoder der von vier auf sechzehn kodieren kann Gl cklicherweise war aber noch eine Ausgangsleitung des vorhandenen Adressdecoders frei die wir zum Kaskadieren eines zweiten Adressdecoders nur f r unsere Zusatzperipherie nutzen konnten Somit haben wir wiederum den Originalzustand der EMUF Platine erhalten und nur ein einzelnes Signal umgeleitet siehe Kapitel Adressdecoder 4 1 2 Aufbaubeschreibung Ein Mikroprozessorsystem besteht immer aus der Prozessoreinheit hier der Zilog Z80 dem ROM als Festwertspeicher f r das Programm dem RAM als dynamischer Zwischenspeicher dem Adressdecoder zum Ansteuern der Peripheriebausteine und meistens zus tzlich mindestens einem Ein Ausgabebaustein der PIO sowie einer SIO als serielle Schnittstelle Ale Komponenten sind mit dem Systembus verbunden wor ber die Komponenten mit der Prozessoreinheit kommunizieren k nnen In unserem Fall verf gt die Kanis EMUF Platine ber zwei PIO Bausteine und eine universelle 510 CPU Data Bus CTC Control from CPU Daisy Cha n Interrupt Control Channel Signals sie Atemschutzger te berwachung DATABUS Control Sec
75. den PIO Port nach der Prellzeit eindeutig ist und erst dann die Interruptroutine ausgef hrt wird Durch diese Methode konnten wir dieses Problem einfach und zuverl ssig umgehen 116 Atemschutzger te berwachung 7 Schlussbetrachtung Abschlie end kann man die Arbeit diesem Projekt als Berg und Tal Fahrt bezeichnen Aufgrund einiger Probleme Hard sowie Software deren L sungsfindung mehr Zeit in Anspruch nahm als erwartet mussten wir feststellen dass die uns zur Verf gung stehende Zeit f r unser Vorhaben nicht ausreichend war Somit waren wir gezwungen ein paar kleinere Ver nderungen in Form von Einsparungen vorzunehmen Wir entschieden uns die Ladeelektronik die Akkuzustandsanzeige und die serielle Daten bertragung softwareseitig innerhalb dieses Zeitraumes nicht zu verwirklichen und richteten unser Hauptaugenmerk auf die eigentliche Funktion des Ger tes Dennoch lie en wir uns zu keiner Zeit entmutigen denn jedes noch so kleine Erfolgserlebnis gab uns neuen Ansporn Viele Probleme wurden in Eigeninitiative gel st dennoch sind Probleme aufgetreten bei deren L sung wir nicht weiter kamen und somit die projektbetreuenden Lehrer um Rat baten Im Gro en und Ganzen war die Arbeit an dem Projekt sehr interessant und lehrreich Die Arbeit im Team verlief in der Regel reibungslos obwohl man an einigen Diskussionen einfach nicht vorbei kam Des Weiteren haben sich die verschiedenen Teams auch untereinander gehol
76. des Z 80 war wohl das Betriebssystem CP M von Digital Research Ahnlich wie heute Windows 95 98 nur auf Intel CPU s und Kompatiblen l uft war CP M lange Zeit nur f r den Z 80 zu bekommen Dadurch entstand eine monopol hnliche Position f r den Z 80 bei B rocomputern der sp ten 70 und fr hen 80er Jahre Sp ter kamen auch etliche Homecomputer dazu angefangen vom Sinclair ZX 80 ZX 81 und Spektrum den Amstrad Computern bis hin zu den Rechnern des in Europa wenig erfolgreichen MSX Standards 3 1 2 PIO Parallel Input Output Der Z80 PIO Controller ist eine frei programmierbare parallele Ein Ausgabe Schnittstelle zwischen System und Peripherie welche bei der Z80 Familie meistens als externer Baustein ausgef hrt ist Er hat zwei Kan le Ports zu je 8 Bit die wahlfrei auch bitweise und unabh ngig voneinander angesteuert und programmiert werden k nnen Es ist m glich mehrere PIO Bausteine Adress Logik zu kaskadieren maximal jedoch 128 Bausteine im Gesamtsystem Jeder Kanal verf gt ber eine separate Interrupt Logik wobei Kanal A jedoch grunds tzlich die h here Priorit t besitzt Die Interrupt Priorit ten bei mehreren PIO Controllern werden mit Hilfe der so genannten Daisy Chain geregelt eine art Ablaufkette die alle nachfolgenden Komponenten in der Kette sperrt wenn eine Komponente einen Interrupt ausl st siehe Kapitel Hardware PIO 14 Atemschutzger te berwachung 3 1 3 SIO Seriell Input Output
77. dress Bus Je 4 Jesse Adress KZ 1 W EMUF m E m E x EE j Besen ME PME t Adress I n T I Decoder 2 577 4 PIO5 PIO6 PIO7 Power ST1la gt ST13a 2 E _____ nm ERR o NM PID IN 1 PID4IN 2 PID4IN 3 x PID 1 PID 2 PID 3 PID 4 PID5 PID 6 PID 7 PID 8 PID 9 125 Atemschutzger te berwachung 2 3 Zeitplan 9002 S0SL 9002 SO SL 9000502 900245080 OAJOSOM 9002 GO S0 9002 YO 7 9002 0 8 9006 YO vc 4 9007 vYO vC 9002 70 2 9002 vO Oc 9002 VOCI SJEMYOS euonsJe ue J 9002 70 2 9002700 euonsuJe ue J 3 21 eseudisas 9002 7020 9002 0 vC sAejds qg 59 SIEMPJIEH 191 5 9002 0 vc 900 0 SL 9000604 9002 u s SJN usunnondneH 9000606 9006 CD 90 9002 20 2 9002 20 90 u yoms q
78. dressierung der biO Regotster 42 4 2 2 4 Initialisierung des PIO Controllers 43 4 2 3 Schaltplan 44 4 2 4 Layout PIO Verteiler Platine Obersetel 45 4 2 5 Layout PIO Verteiler Platine Untersetel 45 4 2 6 Best ckungsplan PIO Verteiler Platines 46 4 3 CPU EXxtension A TEE 47 4 3 1 Konstruktions berlegungen 47 4 3 2 Autbaubeschreibung uu u Use do ER INCUN 47 4 3 3 Schaltplan CPU ExXtension Semi Vupk 49 4 3 4 Layout CPU Extension Obersetel 50 4 3 5 Layout CPU Extension 50 4 3 6 Best ckungsplan 50 el E EE 51 4 4 1 2 000000000 0000 enses 51 4 4 2 Schaltplan PID IN Platine 2 22002120000000 51 4 4 3 Layout PID IN Pl
79. dressleitungen A2 und die Freigabeleitung 273 steuern den kaskadierten Adressdecoder 74HC138 dessen Ausg nge die PIO 3 7 sowie die LCD 1 3 ansteuern NUN Atemschutzger te berwachung Im Folgenden ist die komplette Funktionstabelle der kaskadierten Decoder abgebildet INPUTS OUTPUTS INPUTS OUTPUTS 74 139 2 74 139 2 74 138 74 138 A5 4 2 0 2Y1 272 2 3 A7 2 3 0 3Y1 3Y2 3Y4 3Y5 3Y6 397 IH X X HI H H HI H x j x x H H TH TE H HI H H X X X HI H H H L bo BO L IC X SX TI NE XR CU ER RU n L HI L H H L H HI X X X H H H H H H H H L H BLEI EEE EEE EEE TE H H H IER CHO L T Bp e H H L L H H L H H H LO H Ho H H H L L L H H H H H L H H H u SA SEK WS R ER WE S K R SEK OREN H HI HI H H H HI H L H H L H H H H H H H L H H H H H H L H L H H H H H H L 4 1 6 1 Blockschaltbild Adressdecoder MREQ ROM 1Y1 NC A15 Adressdecoder 2 4 74HC139 1 1Y2 RAM IORQ PIO1 2 1 2 5 Adressdecoder 2 4 74 139 2 510 4
80. e zu verbleibenden Zeit angeglichen Des Weiteren wird in dieser Funktion nicht kontrolliert ob time1 gleich maxhin1 ist Hier wird berpr ft ob der Inhalt 0 ist Die Schleifenfreigabe sowie der Merker warn1 werden automatisch gesetzt wenn der Inhalt von time1 gleich 0 ist 5 7 9 2 Programmablaufplan count12 gt N C counti 2 lediaus time m1 increment ja enable1 set tmel warni set time m1 0 5 Oki ja Ime Ja a eto l timeb1 I es Display1 clear nein 105 se nein Y Y Display1 warni set A time d reset time m1 0 Sc Y blink 1 ret 521 set C P 95 Atemschutzger te berwachung 5 7 10 count13 5 7 10 1 Programmbeschreibung Diese Funktion ist dazu dienlich die Zeit des normalen sowie die des R ckwegs durch Abbruch zu bemessen und auszugeben Wurde die Ger tevariante Filter selektiert l uft die eigentliche Arbeitszeitbemessung hier ber ab Ebenfalls wird bei Bedarf der zuvor gesetzte Warnmerker warm abgefangen und verarbeitet Erste Aktion in dieser Routine ist die A
81. efinition dieses Worts geschieht hnlich der Definition des Bitsteuerworts bei der PIO Betriebsart Bitcontrol Tr gt das entsprechende Bit eine 0 so signalisiert dies ein Interruptaufruf ist m glich Man spricht auch vom Monitoren berwachen des Bits Eine 1 bedeutet wiederum dass ber das Bit kein Aufruf erfolgen kann Somit ergeben sich folgende Interruptmasken f r unser System 2 Port A gt 24 PIO 2 Port B gt Ist die Maskierung erfolgt muss der PIO 2 das Low Byte der Vektoradresse zugeteilt werden Die Vektoradresse ist diejenige zu der im Falle eines Interrupts gesprungen wird Es ist eine Routine die h ufig Interrupt Routine betitelt wird In unserem Fall hei t sie irouta f r Port A F r Port wurde sie jroutb genannt Die Vorbereitung des PIO Ports ist damit abgeschlossen Allerdings muss f r eine einwandfreie Verarbeitung eines Interrupts auch noch das High Byte der zuvor erl uterten Vektoradresse im Indexregister 1 abgespeichert werden Die gleiche Prozedur erfolgt anschlie end mit den oben erl uterten Steuerw rtern f r Port B der PIO 2 Die Zeile intseg segment privat code para bedeutet folgendes Das erste Wort intseg dient lediglich als Layer Name f r das folgende Codesegment welches ausschlie lich vom eigenen Programm verwendet werden kann Das Segment ist vom Charaktertyp das bedeutet es wird im Speicher ein zusammenh ngender Bereich mit 16 Speicherpl
82. egister Port 1 0 0 Eingaberegister Port B 1 O 1 Ausgaberegister Port 1 1 X Steuerregister Port B 42 Atemschutzger te berwachung 4 2 2 4 Initialisierung des PIO Controllers In der Initialisierungsphase wird der PIO Controller auf die zu bernehmenden Aufgaben vorbereitet Zur Initialisierung des PIO Controllers muss die Steuerleitung C D HIGH Pegel f hren Es m ssen immer 3 PIO Modi 0 bis 2 4 oder 5 PIO Mode 3 Steuerw rter bergeben werden Die Steuerwortfolge ist festgelegt 1 Betriebsarten Steuerwort B Im PIO Mode 3 Datenrichtungs Steuerwort D obligatorisch 2 Interrupt Vektor V f r IM2 der CPU 3 Interrupt Steuerwort 8 S Im PIO Mode 3 Masken Steuerwort M optional Die Steuerw rter B V und S besitzen Kennungsbits um Verwechslungen auszuschlie en Ad Atemschutzger te berwachung 3 Schaltplan PIO Verteiler Platine 4 2 L L 39945 N e ul zz Vi H 092219 CH bei NI al kel Ka 82 27 00 9002 8070 929 002 LOZLSSM i LO 01188 SE 43Zzng LL T3SLNOO 7 5140 18987 ZAY ojl S o cN ZAY Je eueA Old JALIL lt Q O 1384 195 1 N co 1 0 Gel
83. eine Spannungsquelle f r die Versorgung der beiden der SIO nachgeschalteten IC s IC11 IC12 die die V 24 Signale erzeugen Die Hauptspannungsversorgung des gesamten Mikroprozessorsystems wurde mit einem Festspannungsregler auf der PIO Verteiler Platine realisiert und ber den Stecker 5104 auf der KANIS EMUF Platine r ckw rts eingespeist 26 Atemschutzger te berwachung Als Hauptfunktion bernimmt die Z80 EMUF 2 Platine die kompletten Programm und DisTast Taster 1 A0 LED 1 B1 Steuerfunktionen f r das ganze System Taster 2 LED 2 A2 Taster 3 1 LED 3 B2 inklusive der Peripheriebausteine Die beiden bereits vorhandenen PIO s sind cum LED 1 B4 haupts chlich f r die Tasten und LED Tees Ai 1502 45 Ansteuerung zust ndig und sind wie nebenstehend belegt Zus tzlich ist noch ein us 21 Ausgang f r die LCD Hintergrundbeleuchtung 7 belegt Alle Taster sind hardwareseitig Low an Aktiv definiert Alle Anderen Eing nge oder 02 80 i Ausg nge sind hardwareseitig High Aktiv definiert gt Low Aktiv gt High Aktiv gt High Aktiv Buzzer gt High Aktiv 4 1 3 1 Jumperbelegungen f r ROM und RAM EPROM JID RAM J2A J2B 2716 O Z O Z O Z 2322 O O O ZZ O 2 2764 O Z O O Z O 27128 O Z Z
84. em Testprogramm initialisieren konnten fingen wir an das eigentliche Hauptprogramm zu entwickeln und die bereits vorentwickelten Routinen zu implementieren Bei der Ansteuerung der Displayhintergrundbeleuchtung trat ein weiterer seltsamer Fehler auf denn bereits bevor die Hintergrundbeleuchtung ber die Software angesteuert wurde flackerte die Displaybeleuchtung sporadisch und wurde heller und dunkler obwohl sie nur EIN oder AUS geschaltet werden kann Aufgrund des begrenzten Ausgangsstromes der 5 mussten wir die Hintergrundbeleuchtung jeweils ber einen FET Transistor BS170 ansteuern Wie bereits bekannt war musste generell jeder Eingang einer PIO einen Pull Up oder Pull Down Widerstand f r ein definiertes Signal besitzen bei Ausg ngen war dies jedoch nicht notwendig Somit haben wir am Ausgang der PIO f r die Hintergrundbeleuchtung keinen Widerstand gesetzt Dabei haben wir nicht bedacht dass wir mit dem Ausgang der PIO direkt den FET BS170 ansteuern der einen Eingang darstellt Da der FET am Eingang sehr hochohmig ist und somit bereits sehr geringe Str me ausreichen ihn durchzusteuern beobachteten wir das Ph nomen dass unsere Anschlussleitung zum eine Antennenwirkung zeigte und somit die Helligkeit der Hintergrundbeleuchtung mit dem berschweben der blo en Hand analog zum mehr oder minder durchgesteuerten FET variierte Durch das einl ten eines Pull down Widerstandes konnten wir diesen Fehler schnell beheben
85. en Bedienkomfort da wir mit den Tasten auf das komplette Displaymen bedienen k nnen Die LED s sind direkt unter dem Display auf der gleichen Platine untergebracht damit sie den Status auff llig signalisieren k nnen Urspr nglich sollten die LEDs aufgrund des begrenzten Ausgangsstroms der PIO Ausg nge von max 4 ber einen Treiberbaustein Eu angesteuert werden Da wir aber y 2 T Busch Low Curren LED s mit einer 52527 7 Stromaufnahme von 2mA lt Eee verwendet haben wurde der Treiberbaustein berfl ssig und durch einen IC Sockel mit 1 1 Verdrahtung ersetzt Die LED s sind jeweils mit einem Vorwiderstand beschaltet der sich wie folgt berechnet High Aktiv Ausgang der PIO f hrt 5V die LED e ben tigen 2V mit 2mA somit ergibt sich ein Vorwiderstand von R 15000 Gleiches gilt f r die Hintergrundbeleuchtung der Displays die ber einen Vorwiderstand von 90 Ohm an einem Feldeffekt Transistor BS170 als Treiber angesteuert wird Die oben beschriebene Displayzusatzlogik zur Freigabe des Displays wurde durch zwei Logik IC s direkt auf der Platine realisiert Aufgrund der m glichst geringen Geh usema e sollte die Display Platine sehr kompakt auf einer doppelseitigen Platine entwickelt werden Somit ergab sich dass der Hauptanschlussstecker auf der entgegengesetzten Seite der Best ckungsseite liegt Die low aktiven Taster ben tigen je einen Pull Up
86. end wird kontrolliert ob der interne Schleifenz hler 521 dem Wert von Anzahl der Truppmitglieder entspricht Ist dem so wird die Schleifenfreigabe gesetzt und das Modul wird beendet 5 7 5 2 Programmablaufplan pressu C pressu1 ja Y d 6912 lediaus ja led13 led1 1 86 Atemschutzger te berwachung increment ja nein druck1 1 nein Wb Plus1 reset druck1 decrement druck1 6 Minus1 reset druck1 l druckb1 Display1 clear nein Display1 p ausgabe 1 druckb1 druck1 set nein 571 increment 1 reset Vektor druck1 druck1 4 enable1 set enable1 set C ret _ 87 Atemschutzger te berwachung 5 7 6 start 5 7 6 1 Programmbeschreibung Die Funktion start dient der Signalisierung dass die Vorbereitung f r einen nachfolgenden Einsatz beendet ist Um dies zu realisieren wird auf dem Display Start ausgegeben
87. er te berwachung 4 5 4 Layout PID Sticks ti 1 4 5 5 Best ckungsplan PID Sticks _ 55 Atemschutzger te berwachung 4 6 DISTAS Display und Taster Platine 4 6 1 Konstruktions berlegungen Die Benutzerschnittstelle zwischen Ger t und Bediener sollte m glichst einfach und kompakt auf der Frontplatte des Geh uses verwirklicht werden Dementsprechend sollten alle Bedienelemente wie Taster und Leuchtdioden in der N he des Displays angeordnet sein Alle drei Displays werden bersichtlich nebeneinander angeordnet und k nnen somit auch gleichzeitig bedient werden Da fast alle Taster ein gewisses Prellverhalten haben welches f r die digitale Signalverarbeitung letal sein kann hatten wir uns eine einfache Entprellschaltung berlegt die jedoch nicht das erzielte Ergebnis lieferte Somit wurde die Entprellschaltung vorerst vernachl ssigt da das Verhalten der digitalen Eing nge mit oder ohne Entprellschaltung offensichtlich nicht relevant zu sein schien Zudem haben wir sehr prellarme Taster verwendet die bereits eine sehr geringe Prellzeit von max 100us aufweisen Damit wir von dem Z80 System m glichst einfach Zeichen auf einem Display darstellen k nnen w hlten wir ein Display das bereits einen integrierten ASCII Controller onboard hat und somit kein Grafikdisplay f r eine ansprechendere Optik Der Vorteil dieser Displays liegt darin dass man nur den entsp
88. er Empf nger Signal Pin Pin Signa 2 852 Atemschutzger te berwachung Das synchrone Verfahren ist im Prinzip eine Optimierung des asynchronen Verfahrens Bei der synchronen bertragung f gt man zur Synchronisation eine bestimmte Bitfolge Synchronwort ein die sonst nicht auftreten kann Auf diese Weise kann der Empf nger den Beginn eines Datenblocks erkennen Wenn keine Daten vorliegen werden nur Synchronworte gesendet somit Taktgenerator im immer auf das ankommende Signal synchronisieren Beginning Message Flow Character WA CRC Character 15 1 8 7 SYNC CRC Data Field Character 2 0 Beginning A MONOSYN Message Format Internal SYNC Detected 0 1 SYNC Character SYNC Character 2 7 CRC Character 15 1 8 7 Dara 710 CRC Character 2 0 B BISYNC Message Format Internal SYNC Detected Beginning CRC CRC Data Field Character Character 15 1 8 7 2 0 External SYNC Detect Format kann sich der Eine Auflistung und Kurzbeschreibung der wichtigsten vorhandenen Signale einer RS232 Schnittstelle sind im Folgenden aufgelistet Abk rzung Name Beschreibung Pin Nr Pin Nr Input Outp 25 pol 9 pol ut vom Common Gemeinsame Abschirmmasse nicht Datenmasse Pin 1
89. ew hlte BOPLA Geh use bereits zu klein wurde Somit fiel die Entscheidung auf ein Pultgeh use von Teko das etwas breiter als das BOPLA Geh use ist und zus tzlich eine Pultschr ge zur besseren Bedienung bietet Jedoch ist es nicht spritzwassergesch tzt und sto fest und somit als Prototyp nur begrenzt im Au enbereich einsetzbar 4 7 2 Aufbaubeschreibung F r die diversen Bedienelemente und Schnittstellen musste das Geh use individuell angepasst werden F r die Displays Taster und die LED s wurden die Aussparungen in die Aluminiumfrontplatte gefr st sowie die rechteckigen Aussparungen f r die PID Stick Schnittstellen an der vorderen L ngsseite Die zus tzlichen Bohrungen f r die serielle Schnittstelle Lichttaster Hauptschalter und DC Buchse f r die Ladespannung wurden manuell an den Stirnseiten gefertigt Zur Beschriftung der Elemente wurde eine spezielle Klebefolie bedruckt und auf die Frontplatte aufgeklebt Die Platinen wurden auf eine zus tzlich eingebaute Bodenplatte montiert wobei einige davon aus Platzgr nden bereinander montiert wurden 61 Atemschutzger te berwachung 4 7 3 Frontplatte 92 5 278 00 272 50 212 50 l 207 00 188 00 l 182 50 L 122 50 1 117 00 98 00 92 50 9 5 8 A
90. fen was die gesamte Projektarbeit positiv beeinflusst hat 117 Atemschutzger te berwachung 8 Projekttagebuch Woche Gruppenaufteilung Software Hardware Problemdiskussion ber Hard und Softwarerealisierungen Ermittlung der Steuerw rter sowie Basisadressen f r s mtliche PlOs Erstellung der ersten Materialliste Erstellung eines Blockschaltbildes der vorl ufigen L sung Woche Erstellung der ersten Einkaufsliste Dauer ca 2 Stunden Informationen Eigenschaften sowie Belegung ber RAM und ROM gesammelt erste PID IN Platinen ge tzt leider Fehlerhaft da L tpunkte zu klein Diverse Bibliotheken in Eagle optimiert Bearbeitung des Layouts der PIO Platine Woche Bearbeitung der Platinen Layouts PIO Platine PIDS DISTAS Softwareentwicklung Erstellen von Testprogrammen erneutes Atzen und Bohren der PID IN Platinen Layout f r beidseitige PIO Platine fertig gestellt PIO Platine ge tzt festgestellt dass es mit Schulmitteln zu riskant ist Woche PID IN Platinen best ckt Layout der PIO Platine Entprellschaltung entwickelt Zusatzschaltung f r Displays entwickelt um Kollisionen auszuschlie en Taster mit Oszilloskop getestet festgestellt dass diese teilweise entprellt sind PIO Platinenlayout zum tzen geschickt Woche DISTAS Platine entwickelt DISTAS Platine ge tzt und gebohrt PIDS ge tzt und gebohrt Einarbeit
91. g vom angezeigten Vorzeichen folgt die Ausgabe der bisher ben tigten R ckzugszeit Anschlie end wird wie gewohnt m1 auf 0 gesetzt sowie timeb1 an time1 angeglichen Nach diesen Ausgaben erfolgt zun chst der Aufruf von blink1 Danach wird Ok1 abgefragt Ist die Variable gesetzt wird die Schleifenfreigabe erteilt und unmittelbar zur ckgesetzt Ist die Schleifenfreigabe sowie Jl gesetzt wird erneut der Schleifenzeiger trupp1 manipuliert um die n chste Funktion zu berspringen Unabh ngig von warn1 folgt nun die Kontrolle ob sz12 sowie gesetzt sind Trifft dies zu wird erneut die Schleifenfreigabe gesetzt und Ok1 zur ckgesetzt Sind notfall1 und gesetzt wird automatisch der Merker 2 akustisches Warnsignal sowie zur ckgesetzt Au erdem wird der interne Schleifenmerker 96 Atemschutzger te berwachung 5212 gesetzt Anschlie end wird berpr ft ob notfall1 eine 1 beinhaltet um in diesem Fall unmittelbar das Display zu l schen und die Displayausgabe Notfall zu veranlassen Danach wird im Programm die maximale R ckzugszeit ermittelt Hat der aktuelle Zeitz hler diesen Wert berschritten und sind au erdem 5213 sowie 1 zur ckgesetzt wird 62 mit 300 und notfall1 sowie sz13 0 beschrieben Der Aufruf von lediaus erfolgt Abschlie end wird nun noch die Variable sz1 auf 1 gestellt 97 Atemschutzger te berwac
92. ger te berwachung steckt anschlie end die PID Sticks in die daf r vorgesehenen Buchsen Er wird nun vom System aufgefordert die Beh lterdr cke in das System einzugeben Beginnt der Trupp seinen Einsatz erfolgt eine Start Best tigung im System Automatisch beginnt die anhand der Ger tevariante vom System ermittelte maximale Einsatzzeit herunter zu z hlen Kommt der Trupp an der Einsatzstelle an meldet dieser sich ebenfalls ber ein Funkger t bei der berwachung Die Beh lterdr cke werden durchgesagt und erneut in das System eingegeben Automatisch wird nun die noch verbleibende Arbeitszeit ermittelt und erneut auf dem Display herunter gezahlt Ist diese Zeit abgelaufen wird der berwachende durch ein akustisches Signal aufgefordert den Trupp zur ckzuordern Dieses wird am Ger t best tigt und von diesem Zeitpunkt an wird die tats chlich ben tigte Zeit f r den R ckweg angezeigt Ist der Einsatz beendet gibt der berwachende den Restdruck der Beh lter ein und auch die verrichtete T tigkeit wird digital aufgenommen Im Feuerwehrhaus angekommen ist nun lediglich das System an einen bereits vorhandenen PC anzuschlie en und alle relevanten Einsatzdaten werden automatisch an eine Datenbank bermittelt Aus dieser Erl uterung soll hervorgehen dass unsere Entwicklung einige Schritte im Einsatzgeschehen erleichtern wird Auf die Verwendung von Funkger ten sowie bereitstellen von geeignetem berwachungspersonal kann
93. hase erstellt Die Projektgruppe setzte sich aus den Sch lern Eike Gr nhagen Esmail Kiapur sowie Carsten T ben zusammen Bei unseren ersten Vor berlegungen stand schnell fest dass es sich nicht um ein von der Schule vorgegebenes Projekt handeln solle Wir hatten das Bestreben etwas mit praktischem Bezug und sp terem Nutzwert zu erarbeiten Wir einigten uns darauf eine automatische und digitalisierte Version von bereits bestehenden Atemschutzger te berwachungen zu entwickeln Dies sind Ger te welche im Alltag von Feuerwehren der berwachung der eigenen Kameraden im Atemschutzeinsatz dienen Die schon existierenden Ger te von namhaften Herstellern sind meistens analoger Natur oder k nnen aus finanziellen Gr nden f r kleinere Feuerwehren nicht beschafft werden Ein anderer Hintergrund war f r uns jedoch das berzeugende Argument Bei den Feuerwehren steigt wie in vielen anderen Bereichen auch der Verwaltungsaufwand immer mehr an Dies steht schwindenden Mitgliederzahlen entgegen Somit sollte unser System s mtliche Einsatzdaten welche ohnehin im Nachhinein dokumentiert und festgehalten werden m ssen speichern k nnen Diese gespeicherten Daten sowie evtl zus tzlich resultierende Daten sollen im Anschluss an den Einsatz mittels serieller Datenschnittstelle an einen PC bertragen werden k nnen Eine weitere Herausforderung war es dieses Ger t mit einer simplen Men steuerung sowie wenigen Tasten bedienbar zu machen Die
94. hung 5 7 10 2 Programmablaufplan count13 C counti3 Display1 clear Y nein nein nein Display1 Abbruch sz 300 Display1 clear Display Rueckweg timeb1 O sz 300 Da 5711 262 warni reset reset time m1 increment ja Y lediaus 1 time m1 0 ja Y time1 increment nein 98 Atemschutzger te berwachung warn 1 reset d 5 nein ja Display1 clear Display1 lt ja Display1 R 7 ja Display1 Display1 time aus timelt min time m1 0 timeb1 Da blink 1 Ok1 ja set enablei i reset RW truppi increment 99 Atemschutzger te berwachung enable1 set Y Ok1 reset bz reset nein nein T reset Y
95. icht relevant und somit in unserem System nicht belegt Da alle Anschl sse der der Z80 Familie zugeh rigen Bausteine tristatef hig sind k nnen unbenutzte Leitungen einfach in der Luft h ngen es sei denn sie sind als Eing nge deklariert und brauchen somit einen definierten Zustand also einen Pull Up oder Pull Down Widerstand In unserem Fall sind die Digitalcodes der PID Sticks als Low Aktiv definiert so dass wir je einen Pull Up Widerstand pro Eingang ben tigen Diese wurden durch Widerstandsdekaden direkt an den jeweiligen Ports der PlO s realisiert und nicht sichtbar unter den PIO Bausteinen eingebaut Da der Prozessor f r mehrere periphere Ger te zust ndig ist empf ngt er auch mehrere Interrupt Signale kann allerdings immer nur eines pro Zeiteinheit abarbeiten Somit muss eine Priorisierung gew hrleistet sein Der Interrupt Requestor das den Interrupt anfordernde Ger t muss dem System sowohl Beginn als auch Ende seiner CPU Inanspruchnahme signalisieren IE1 Interrupt Enable High PIO wird berechtigt Interruptvektor INT an die CPU zu senden IEO Interrupt Enable Low Aussendung des Interruptvektors wird in Anspruch genommen Wie bereits zuvor erw hnt wird die Priorisierung der Interrupt Requestor durch die so genannte Daisy Chain realisiert 4 Atemschutzger te berwachung 4 2 2 2 Daisy Chain Als Daisy Chain wird eine Anzahl an Hardware Komponenten bezeichnet welche durch eine D
96. ie man dem obigen Protokoll entnehmen kann gab es bereits im ersten Testdurchlauf mit minimaler Hardware diverse Zust nde auf dem Datenbus die nicht Es traten nach und nach sporadische die Hardware als auch die Software verschiedenster Weise in diversen Varianten nderten um einzelne Funktionen und dem Programmablauf entsprachen Bausteine als Fehlerquelle auszuschlie en wir obwohl Fehlerzust nde auf 113 Atemschutzger te berwachung 6 2 Aufgetretene Probleme und Losungen Ein grundlegendes Problem war bereits das angesprochene Problem mit den Fehlerzust nden auf dem Datenbus welches uns einiges Kopfzerbrechen bereitete Zun chst hatten wir s mtliche Hardwarekomponenten auf Kurzschl sse etwaiger Leiterbahnen sowie falsche oder fehlerhafte Kabelverbindungen berpr ft Nachdem diese Suche erfolglos war tauschten wir identische Komponenten Displays untereinander aus denn zwischenzeitlich hatten wir festgestellt dass die Fehlerzust nde des Datenbusses nur in Zusammenhang mit den angeschlossenen Displays immer an den gleichen Datenleitungen D2 und D5 auftraten Da sich der Fehler systematisch auf den ganzen Systembus auswirkte lag die Vermutung nahe dass evtl die CPU mit der Vielzahl von Komponenten am Systembus berlastet w re und die Str me des Datenbusses nicht mehr treiben k nnte Jedoch hatten wir bereits ein minimales System mit nur einer PIO und einem Display also musste der Feh
97. ieadressen ist es von Vorteil eine Headerdatei anzulegen In dieser Datei werden Makros f r die gesamte Peripherie definiert welche von allen Unterfunktionen verwendet werden k nnen Somit kann bersichtlicher programmiert werden da zur Ansteuerung s mtlicher Ger te nun keine hexadezimalen Adressen mehr ben tigt werden sondern hierf r verwendete Makros Die Makronamen sind von den Ger ten und Verwendungszwecken abgeleitet und somit in jedem Unterprogramm zuzuordnen Somit wird z B aus der nichts aussagenden Adresse 0x00 das Makro a1dat gt Datenwort Neben den Hardwareadressen werden einige Systemmodule ebenfalls durch Makros ersetzt Auch diese sind somit leicht mit ihrer eigentlichen Funktion in Verbindung zu bringen 5 3 Systemmodule 5 3 1 Systemmodul delay Diese Funktion ist eine universelle Zeitschleife Ihre Basis ist auf Millisekunden bemessen Der gew nschte Wert wird dem Programm als Konstruktor zugeteilt Mit dem Befehl delay 2000 wird zum Beispiel eine Verz gerung von 2000ns also 2sec erzielt 5 3 2 Systemmodul busy1 Dieses Modul dient der Kommunikation mit den Displaymodulen Soll sowohl ein Datenwort als auch ein Steuerwort an eines gesendet werden so muss sichergestellt werden dass der Displaycontroller empfangsbereit ist und alle vorherigen Befehle erfolgreich abgearbeitet hat F r jedes Display ist eine Busy Schleife inkludiert Der Aufruf der Module erfo
98. iese kann dann mit einem Programmierger t f r EPROM s auf den verwendeten ROM unseres Systems gebrannt werden Diverse Programmteile welche im Folgenden n her beschrieben werden h tten durchaus simpler oder anders gestaltet werden k nnen Darauf haben wir allerdings bewusst verzichtet um evtl Programm nderungen leichter zu erm glichen Diese nderungen werden sich erst in der realen Testphase des Ger tes aufzeigen da viele Feuerwehren eigene Standards gesetzt haben Die gesamte Software ist unterteilt Zum einen haben wir den eigentlichen Aufruf des Hauptprogramms durch akemain dies ist f r den Betrieb eines solchen Programms auf einer CPU unbedingt erforderlich Des Weiteren existiert nat rlich das Hauptprogramm aus welchem heraus Initialisierungsschleifen sowie s mtliche Unterprogramme aufgerufen werden Diverse Programmteile inkludieren so genannte Systemmodule mit welchen z B Ein und Ausgaben zu einzelnen Ports standardisiert und realisiert werden MN Atemschutzger te berwachung 5 1 1 Visuelle Struktur der Software Um den Ablauf der Software zu veranschaulichen sei hier einmal ein Programmablauf mit allen m glichen Verzweigungen aufgezeigt Frei Auswahl der Ger tevariante Ausgabe der are Arbeitszeit Auswahl des Auswahl der Startdrucks T tigkeit Start Ende Ausgabe der Zeit des Hi
99. ingeschalteten Bauteile wieder ausgeschaltet Die Initialisierungsschleife ist somit beendet 5 7 1 2 Programmablaufplan init FF h 4 init D Y Initialisierung von PIO1 bis PIO7 TC delay 1000ms aldat lt 00 Initialisierung von d Display1 bis Display3 bidat 00 FF BS 00 bidat FF b2dat 00 a2dat FF b7dat 00 b2dat FF uS Atemschutzger te berwachung 5 7 2 iniim2 5 7 2 1 Programmbeschreibung In dieser Funktion wird die PIO 2 f r die Interruptverarbeitung initiiert Dies ist ein unerl sslicher Schritt der vor dem Anwenderprogramm erfolgen muss da das Bet tigen s mtlicher Taster auf der Frontplatte des Ger ts sonst keine Aktionen ausl sen w rde Zun chst wird die Interruptverarbeitung generell abgeschaltet Dies erfolgt mit dem Befehl di disable interrupt Nun muss im ersten Schritt das Interruptsteuerwort an die Control Adresse von Port A gesendet werden Dieses oteuerwort setzt sich nach unseren Bed rfnissen wie folgt zusammen Nach der bertragung des Interruptsteuerworts wie bereits bei der Erl uterung des vorherigen oteuerworts angegeben muss unmittelbar die Interruptmaske folgen Hiermit wird der PIO mitgeteilt welche Bits des angesprochenen Ports in der Lage sein sollen einen Interrupt auszul sen Die D
100. ink3 sind b2dat 80 hardwarebedingt auch andere Ports einzulesen blinkS bidat 01 aldat 01 Beim Wert 8 von trupp1 hat eine Lauflichtfolge nach links zu erscheinen hnlich wie zuvor beschrieben erfolgt nun Kontrollprozedur von mit daraus resultierenden Aktionen Wert bm1 5 Aktion led13 gt 5 amp 10 Aktion led12 Wert gt 10 amp 15 Aktion led12 Wert bm1 gt 15 8 20 Aktion led1aus Wert bm1 gt 20 Aktion bm1 reset 108 Atemschutzger te berwachung 5 7 16 2 Programmablaufplan blink1 blinkt D v bm1 increment truppi ja 5 nein D 4 nein ja led12 E A 5 nei nein led13 E A 5 D nein nein lediaus bmi reset nein truppi ja 7 nein ja lediaus nein e 109 Atemschutzger te berwachung Y _ merke b2dat nein merke1 merke1 06 merke1 Y merke1 a2dat Y merke1 lt 1 04 a2dat merke 1 Es v bmi reset 5 5 D trupp 1 8 To nein
101. itglied welches den h chsten Luftverbrauch auf dem Hinweg hatte erh lt zunachst die logische 1 0 Atemschutzger te berwachung Nun wird kontrolliert ob Iuft12 einen gr eren Wert als luft11 hat In diesem Fall w rden die soeben genannten Variablen mit den Werten des zweiten Truppmitgliedes berschrieben Ist gleich so findet dieses Verfahren in gleicher Weise ein drittes Mal statt Handelt es sich nun um einen Einsatz 300 so erh lt aufruf die 1 Die Variable wer verwendet in Modul auswahl bekommt den Zustand von max12 Au erdem wird ur mit p1 beschrieben und das Modul auswahl wird verwendet Unabh ngig vom Zustand der Variable rechnen wird nun noch num1 auf Gleichheit mit 2 3 und 4 berpr ft Tritt der Fall ein finden folgende Berechnungen statt Die Zeit f r den Hinweg wird berechnet indem die restliche Einsatzzeit time1 von der gesamtem Einsatzzeit vi subtrahiert und in gespeichert wird Die doppelte Zeit des Hinwegs wird als Maximum f r den R ckweg in rueck1 festgehalten Die maximale Einsatzzeit an der Einsatzstelle wird in back1 gespeichert und ergibt von hin1 und rueck1 von x1 Die h chstzul ssige Zeit f r den R ckweg wird ebenfalls an dieser Stelle berechnet und in 11 festgehalten indem x1 durch dividiert wird Abschlie end wird mode zur ckgesetzt es erfolgt die Schleifenfreigabe und das Modul ist abgeschlossen 5 7 8 2 Pr
102. kzugsmodus erreicht 123 Atemschutzger te berwachung R ckzugszeit In diesem Modus gekennzeichnet durch ein gro es H im Display wird die Zeit von 1 an aufw rts gezahlt damit der berwachende immer im Blick hat wie lange sich der Trupp bereits auf dem R ckweg befindet Meldet sich dieser nun bei der Atemschutz berwachung vollz hlig zur ck so wird der Einsatz mit der Taste beendet Beh lterdruck bei Einsatzende Im Anschluss an den Einsatz sind f r die sp tere Einsatzdokumentation zun chst noch die Beh lterdr cke der einzelnen Truppmitglieder wie zuvor einzugeben Angabe der durchgef hrten T tigkeit Als letzte Eingabe f r den soeben beendeten Einsatz ist die zuvor durchgef hrte T tigkeit aufzunehmen Die Auswahl erfolgt erneut ber die beiden Pfeiltasten Durch Bet tigen der von wird die durchgef hrte Arbeit in den Speicher bernommen und der Einsatz ist beendet Im Anschluss wird wieder der Betriebszustand Vorbereitung erreicht und der n chste Trupp kann f r seinen Einsatz vorbereitet werden Sonderfall Dauer f r den Hinweg macht Arbeiten unmoglich Tritt der Fall ein dass der Hinweg so lange dauert bis eine gesicherte R ckzugszeit nicht mehr gew hrleistet werden kann so ert nt akustisches Warnsignal und im Display erscheint Abbruch Diese Signalisierung wird durch OR zur ckgesetzt und das Programm l uft im R ckzug Modus jedoch mit der Signalisierung im
103. led13 nein i nein nein led12 D nein nein led 1 5 D RV e o nein nein bmi reset nein a 110 Atemschutzger te berwachung 5 8 Daten bermittlung zwischen System und PC Aufgrund der Zeitknappheit durch die aufgetretenen Probleme entschieden wir uns die Entwicklung der Software f r die gesamte Daten bertragung vom System zum PC au er Acht zu lassen Jedoch haben wir s mtliche Unterprogramme so gestaltet dass in einer sp ter zu entwickelnden bertragungsroutine lediglich die Daten bermittelt und nicht zuvor noch aufbereitet werden m ssen Alle relevanten Daten stehen nach einem Einsatz in der Variable des Typs Vektorvariable Daten bereit und werden durch den gepufferten RAM Baustein auf lange Zeit gespeichert Der Inhalt ist nach folgendem System abgespeichert Daten WI XJ Y Z gt Einsatznummer fortlaufend Truppmitglied W X Truppnummer fortlaufend Y Z Einsatzrelevante Daten PID Nummer Ger teart Druck vor dem Einsatz Druck bei Ankunft der Einsatzstelle Druck bei Ende des Einsatzes verrichtete T tigkeit In den vorherigen Modulbeschreibungen wurde diese Vektorvariable auch
104. ler definitiv mit der Displayplatine zusammenh ngen Konstruktionsfehler der Displayplatine konnten wir nach einer sorgf ltigen Pr fung ebenfalls ausschlie en Da wir Displays mit integriertem Controller verwendet haben wussten wir nicht genau wie der Datenbus intern vom Hersteller verschaltet wurde Nach einem Anruf beim Displayhersteller Electronic Assembly erfuhren wir dass die Displays intern je einen Pull Up Widerstand am Datenbus besitzen Das st tzte wiederum unsere Annahme dass die Ausg nge der CPU nicht in der Lage w ren die Str me des Datenbusses zu treiben also z B einen Pegel von High auf Low zu ziehen wenn die internen Pull Up Widerst nde des Displaycontrollers am Datenbus evtl zu klein w ren Aufgrund dieser Annahme erweiterten wir unser Systembus testweise mit einem Bustreiber der die Datenbussignale zwischen der CPU und den Displays bidirektional verst rkte Dabei mussten wir zu jedem Taktzyklus darauf achten in welche Richtung der Datenfluss verst rkt werden sollte und nutzten das Signal RD Read von der CPU welches signalisiert ob die CPU gerade lesen oder schreiben will um die Richtung des Bustreibers umzuschalten Leider hatten wir durch diese Ma nahme nur m igen Erfolg denn wir konnten mit diesem Aufbau nur ein Display ansteuern Sobald ein zweites oder drittes Display angeschlossen wurde gab es wieder Kollisionen auf dem Datenbus Nach diversen nderungsversuchen und wiederholter genauer Pr
105. lgt ber den call Befehl aus allen Funktionen die mit dem Display kommunizieren 66 Atemschutzger te berwachung 5 3 3 Systemmodul output Zum bermitteln verschiedenster Daten an beliebige Hardwareadressen kann diese Funktion verwendet werden Der Aufruf erfolgt ber output X Y In Y stehen die zu bermittelnden Daten welche an die Adresse X gesendet werden sollen 5 3 4 Systemmodul in Hiermit ist es m glich den Inhalt verschiedenster Peripherieger te einzulesen und in eine beliebige Variable einzutragen Mit dem Befehl X input Y wird also der Zustand der Adresse Y unmittelbar in die Variable X eingetragen 5 3 5 Systemmodul put1 Wird ein einzelnes Zeichen vom Typ char zum Display bertragen so wird dieses Modul verwendet Aufgerufen wird es aus einer beliebigen C Routine mit dem Befehl put1 X In diesem Fall w rde der Inhalt von X an das Display 1 gesendet Diese Funktion ist aufgrund der Kommunikation mit den Displays auf das Modul busy1 angewiesen 5 3 6 Systemmodul outstr1 Will man Zeichenketten zum Display bertragen ist dies nicht ohne weiteres moglich Dieses Modul zerlegt visuell die Zeichenkette in einzelne Zeichen und bermittelt diese dann nacheinander mit Hilfe des Moduls put1 an das Display Da wir ein ASCII taugliches Display verwendeten werden auch die auf dem Display LET vermeintlichen Zahlen als reine Zeichenkette also al
106. mim o a m mm ma m vd ra x Ob EECH 2 o D Oo dads isis ii m m GU e a Se 1 m aL Qua m olo H H H Cen m gt la o H H H 24 22 IORQ EMI o eo ot On al N N N Nja E N e e e bel 7 EIST EST m QN 5 T Qu Cm onf a es dde mudo m DO on on Oh oC bh m GQ EE m ei Im MT er ero QU fV e s m Di WO s Q O EE ei ei ei ei ei ei ei ei ei ei m le e le al Projekt Z80V24VG V3 10 Druckdatum 17 11 2003 Ing B ro W Kanis GmbH Seite 4 28 Atemschutzger te berwachung N o SS D m mo Sea Ka o SE o E El P iuo v gt i st a gt CIRCUIT 280 4 5 m E H
107. n um zu gew hrleisten dass die erste negative Flanke von einem Startbit kommt Zwischen den Start und Stoppbits werden die Daten unver ndert bertragen Asynchronous Format Marking Line Stop Marking Line All Transactions Occur on a Falling Edge of TxC T d May be present or not Even or Odd Message Flow 1 1 1 2 or 2 Bits Atemschutzger te berwachung Um einen Datenverlust zu vermeiden muss der Empf nger die Daten bertragung anhalten k nnen wenn eine Verarbeitung weiterer Daten nicht moglich ist Das geschieht ber so genannte Handshakes von denen es zwei unterschiedliche Arten gibt den Software und den Hardwarehandshake Beim Softwarehandshake sendet der Empf nger zur Steuerung des Datenflusses spezielle Zeichen an den Sender Dementsprechend werden f r die Daten bertragung lediglich drei Leitungen RxD Txd Gnd ben tigt Im Stecker m ssen daf r RTS und CTS DTR mit DSR und DCD gebr ckt werden weil sonst die Hardware wartet da die Handshakeleitungen nicht richtig bedient werden 3 Leiter Kabel Experi menlierboard Signal Pin Signa Beim Hardwarehandshake steuert der RxD Empf nger ber Steuerleitungen die Handshake Eing nge CTS DSR und DCD des TxD Senders mit seinen Handshake Ausg ngen RTS auf CTS und DTR auf DSR und DCD Ein Hardwarehandshake besteht demzufolge aus 5 Leitungen TxD RxD Gnd RTS und CTS send
108. ntergez hlt im Display angezeigt und im Minutentakt aktualisiert Der Einsatzstatus Hinweg ist durch ein gro es H im Display erkennbar Meldung Einsatzort an Beim eintreffen des Trupps an der eigentlichen Einsatzstelle meldet sich dieser ber sein noe e Cia und gibt die Beh lterdr cke der einzelnen Mitglieder durch Diese werden nun vom berwachenden wie zuvor eingegeben und best tigt Arbeiten an der Einsatzstelle Automatisch wird anschlie end die noch verbleibende Zeit zum Arbeiten an der Einsatzstelle vom System berechnet im Display angezeigt und im Minutentakt aktualisiert hnlich wie bei der Zeit auf dem Weg wird F auch die Zeit des Arbeitens durch ein gro es A im Display kenntlich gemacht Ende der Arbeitszeit ohne vorherigen R ckzugsantritt Ist die errechnete Arbeitszeit abgelaufen ohne das zuvor weitere Eingriffe durch den Bediener am Modul durchgef hrt wurden ert nt ein akustisches Dauerwarnsignal und im Display erscheint die Aufforderung Rueckzug Das Warnsignal sowie die R ckzugsanordnung werden durch die Taste OK beendet wenn der berwachende dem Trupp den R ckzugsbefehl gegeben hat und der R ckzugsmodus wird erreicht R ckzugsantritt vor Ende der Arbeitszeit Ist vor Ablauf der Arbeitszeit der R ckzug angetreten worden dies geschieht ber mit folgender akustischer Signalisierung bleibt die akustische und optische Warnung aus und auch hier wird der R c
109. nwegs 5 Ziel an Abbruch Auswahl der Ausgabe der Zeit Drucks des R ckwegs Ausgabe der Arbeitszeit Beendet 4 Notfall Ausgabe der Zeit Auswahl des des R ckwegs 9 Enddrucks Auswahl der Beendet 4 Notfall T tigkeit Auswahl des Ende Enddrucks Standardisierte Abl ufe immer gleich Auswahlder T tigkeit Der Einsatz verl uft ohne Komplikationen GER Komplikationen sind aufgetreten Ger tevariante Filter wurde gew hlt 64 Atemschutzger te berwachung In den mit Auswahl gekennzeichneten Men feldern stehen folgende M glichkeiten zur Verf gung Men punkt M glichkeiten 300 ChemieSA Ger tevariante Hitzesch Regen Filter Beh lterdruck vor Einsatz 2 0 bis 320 Bar Beh lterdruck bei Ziel 0 bis 300 Bar Beh lterdruck bei Einsatzende 0 bis 300 Bar Retten Loeschen Erkunden T tigkeit Dichten Auffange Umpumpen Funkverb _ 65 Atemschutzger te berwachung 5 2 Headerdatei io h Aufgrund der Hardwarekomplexit t und der damit verbunden Vielzahl von Peripher
110. ogrammablaufplan ziel C zielt D sz12 ja reset set 21 increment lediaus nei Displayi clear S 21 12 Display1 Ziel Plusi reset Minusi ja set 21 2 1 lt 12 21 30 nein Minus reset 92 Atemschutzger te berwachung Display1 clear 74 Display1 ziel aus z1 Bar 251 21 5712 reset 5712 set szi increment Oki ja set 5211 increment reset Vektor 21 N 21 lt 25 2016 0 Y rechnen 1 lt rechnen set Y luft11 p start TM1 ziel TM 1 nein luft12 p start TM2 ziel TM2 93 Atemschutzger te berwachung ja nein luft13 p start TM3 ziel TM3 11 luft1 1 Y max12
111. ollte m glichst kompakt auf einer doppelseitigen Euroformat Platine realisiert werden Da diese Platine von vornherein sehr komplex werden w rde stand die Entscheidung fest diese Platine nicht selbst zu tzen und zu best cken Wir haben zwar eine doppelseitige Musterplatine erfolgreich geatzt jedoch w re das Fehlerrisiko sowie der Zeitfaktor beim Erstellen einer doppelseitigen Platine mit ber 350 Durchkontaktierungen zu gro so dass wir die Platine in einem professionellen PCB Produktionslabor erstellen lie en Somit konnten wir wiederum Fertigungsfehler und Probleme bei der sp teren Inbetriebnahme minimieren vorausgesetzt dass das Layout korrekt war Denn aufgrund dieser Entscheidung hatten wir keine M glichkeit eventuelle Layoutfehler anhand einer Musterplatine zu beheben Bei der Platinenentwicklung mit dem Layouteditor EAGLE mussten wir besonders darauf achten dass die Leiterbahnen f r die Spannungsversorgung zu den einzelnen Komponenten vom Querschnitt gro genug ausgelegt werden da wir insgesamt ber elf Hauptkomponenten verwenden Um eine aussagef hige Querschnittsberechnung durchf hren zu k nnen mussten wir zun chst den Gesamtstromverbrauch des Systems ermitteln Daf r entnahmen wir den Datenbl ttern jeweils die max Stromaufnahme der Hauptkomponenten und erlangten somit folgendes Ergebnis Je Display Platine ca 120 mA f r die gesamten f nf PIO s auf der Verteiler Platine insgesamt 300 mA und f r die Za0 EM
112. raus resultierend automatisch entschieden werden dass eine berwachung des Truppe stattfinden muss Diesen Auftrag erh lt ein ausgebildeter Feuerwehrangeh riger FA der anschlie end w hrend des gesamten Einsatzgeschehens daf r zust ndig ist Ein Einsatz unter bisherigen Umst nden l uft wie folgt ab Der berwachende bereitet die Datenaufnahme vor indem er von den vorgehenden Truppmitgliedern die Personenplaketten mit dem sich daran befindlichen Karabinerhaken in die berwachungstafel einh ngt Die FA geben ihre Beh lterdr cke welche von an den Ger ten montierten Manometern abgelesen werden k nnen an Diese werden in Verbindung mit den Namen notiert Beginnt nun der Einsatz zwischen Vorbereitung und Einsatzbeginn k nnen durchaus mehrere Minuten liegen wird dies dem berwachenden mitgeteilt Dieser zieht nun eine am Ger t angebrachte handels bliche Eieruhr auf eine vordefinierte maximale Einsatzzeit auf Diese Zeit richtet sich nach der eingesetzten Ger teart aTa Atemschutzger te berwachung Der Trupp macht sich auf den Weg zur unmittelbaren Einsatzstelle Dies kann in einigen F llen z B bei einem Zimmerbrand in einem verrauchten Mehrfamilienhaus durchaus einige Minuten in Anspruch nehmen Dort angekommen meldet er sich als erstes mit einem Handsprechfunkger t bei der Atemschutzger te berwachung Der Truppf hrer gibt die einzelnen Beh lterdr cke durch und der Trupp beginnt mit seiner A
113. rbeit Der berwachende notiert diese und ermittelt nun anhand mehrerer Tabellen abh ngig vom Startdruck Truppmitglieder die am Einsatzort maximal zu verbleibende Arbeitszeit Dieser Schritt erfordert viel Konzentration und wird in der Realit t leider nicht immer durchgef hrt Die Eieruhr wird nun auf die neu ermittelte Restzeit gestellt Sp testens wenn diese abgelaufen ist muss der Trupp vom berwachenden ber Funk aufgefordert werden unverz glich den R ckzug anzutreten Ist der Trupp au erhalb der Einsatzstelle meldet er sich umgehend bei der Atemschutz berwachung zur ck und gibt den Druck an der sich nun noch in den Atemluftflaschen befindet Auch diese Werte werden vom zust ndigen FA aufgenommen Au erdem notiert dieser nun die gesamte Einsatzzeit und die verrichtete T tigkeit des Trupps Im Anschluss an den Einsatz m ssen die gesamten notierten Daten nun wiederum von der berwachungstafel in so genannte Dokumentationshefte bertragen und ggf ausgewertet werden Unsere Absicht ist es nicht dieses Vorgehen stark zu ver ndern sondern lediglich ein wenig zu erleichtern Jeder FA erh lt im Vorfeld f r seine gesamte Dienstzeit einen eigenen Personen Identit ts Stick auf dem ein pers nlicher Code gespeichert ist R stet sich nun ein Trupp aus geben die Truppmitglieder ihren ID Stick an der berwachung ab Der zust ndige FA w hlt die zu verwendende Ger tevariante und WER Atemschutz
114. rdatel TON _ ___ 66 Atemschutzger te berwachung 9 9 SVSleMMNO e TEE 66 5 3 1 5ystemmodul delayl su 66 5 292 Systemimodul DUsyT 0 2 66 5 3 3 Systemimodul OUMU a 67 5 2 4 Systemmodul E Lu NEE 67 5 3 5 SyStemimodul ea HR 67 lee TEE A EE 67 5 2 7 Systemmodul Icd A EE 67 5 4 Startmodul EE 68 5 5 Hauptprogramm esse ee 68 5 5 1 Programmbeschreibung u a in 68 5 5 2 Programmablaufplan 2254400 a a 69 5 0 ah Ted ge dl EE 74 5 6 1 Programmbeschreibung irouta und iroutb 74 5 6 2 Programmablaufplan 75 5 6 3 Programmablaufplan 2222 22 2220000000 00 76 2 7 IESELEN 77 5 Aa DT A E 71 5 7 1 1 Programmbeschreibung 71 5 7 1 2 Programmablaufplan mmm 78 elen E EE 79 5 7 2 1 Programmbeschreibung 222 00000000000000 00 annees 19 5 7 2 2 Programmablaufplan 2 2 22 22000000 000000000 80 9 3 e WEE 81 5 7 3 1 Programmbeschreibung 81 5 7 3 2 Programmablaufplan 82 NE E uuu t u 84 5 7 4 1 Programmbeschreibung 84 5 7 4 2 Programmabl
115. rechenden Hex Code eines ASCII Zeichens als Datenwort auf den Datenbus geben muss Um das Display auch bei schlechten Sichtverh ltnissen gut lesen zu k nnen w hlten wir ein einzeiliges Display mit m glichst gro en Zeichen welches zus tzlich durch eine Hintergrundbeleuchtung illuminiert werden kann Um die Displays anzusteuern ben tigt man das Chipenable Signal CE Die Displays besitzen Readregister womit man den Busy Status oder auch den angezeigten Displayinhalt auslesen kann Eine fehlerhafte Software k nnte nun bei einem einfachen Display Interface zur Zerst rung der Hardware f hren indem versucht wird mit Hilfe des Ausgabebefehls OUT ein Readregister des Displays anzusteuern In diesem Falle w rden beide Busteilnehmer auf dieselben Busleitungen schreiben wollen und es w rde zu einer Kollision kommen Um diesen m glichen Softwarefehler auszuschlie en gibt es eine hardwareseitige Zusatzlogik die die Freigabe des Displays mit Hilfe der Auswertung des Read Signals RD bei einer Ausgabe auf das Readregister der Displays verhindert 56 Atemschutzger te berwachung RD ou 7402 0 EA 0 gt 1 Fa 7402 7402 d c EN LCD AO RW 7402 7408 M1 Displayzusatzlogik 4 6 2 Aufbaubeschreibung Mit einer minimalen Anzahl von drei Bedientastern pro Displayeinheit erreichten wir einen maximal
116. ren wir dass wir das Projekt Atemschutzger te berwachung in der Zeit von Februar 2006 bis Mai 2006 eigenst ndig geplant und entwickelt haben Ansprechpartner waren in dieser Zeit lediglich die projektbetreuenden Lehrer Eike Gr nhagen Carsten T ben Esmail Kiapur 133 Atemschutzger te berwachung 12 Quellennachweise Internet gt www elektronik kompendium de gt www kanis de 2 www computerlexikon com gt www reichelt de 2 www conrad de Literatur gt Technical Manual Z80 Microprocessor Family 4th Edition SGS gt Helmut M ller Lothar Walz Mikroprozessortechnik Vogel Fachbuchverlag gt Ulla Kirch Prinz Peter Prinz C f r PCs IWT Verlag gt Ulla Kirch Prinz Peter Prinz C Einf hrung und professionelle Anwendung mitp Verlag 52 Unterrichtskolleg 134 Atemschutzger te berwachung 13 Anhang 13 1 Quellcode 135 Atemschutzger te berwachung 13 Anhang 13 2 Datenblatter 136
117. s String s bermittelt 5 3 7 Systemmodul Icd1 Zum Initialisieren der Displays wird diese Routine verwendet Man ist dadurch in der Lage Steuerw rter die an ein Display gesendet werden sollen mit einem einfachen Befehl an das Control Register der Anzeige zu senden Atemschutzger te berwachung 5 4 Startmodul akemain Diese Funktion dient der Vorbereitung f r alle anderen kommenden Module Um mit dem Stackpointer arbeiten zu k nnen muss dieser zun chst auf eine Adresse Stack gesetzt werden Aus der Speicherplatzadressierung in Kapitel 4 1 6 2 ergibt sich ein Adressenbereich von 8000 bis A000 f r den RAM Da der Stack ein LIFO opeicher Last In First Out ist muss die Stackpointeradresse im oberen RAM Bereich sein Daraus l sst sich die Adresse 8EFF ableiten Nachdem der Stackpointer gesetzt ist kann nun das Hauptprogramm aufgerufen werden Ist das Programm main beendet folgt der Programmaufruf halt und das System bleibt an dieser Adresse stehen 5 5 Hauptprogramm main 5 5 1 Programmbeschreibung Bei dieser Funktion handelt es sich um das Hauptprogramm Aufgrund der Bedingung drei Truppe gleichzeitig und vor allem unabh ngig voneinander berwachen zu k nnen ist dieses Programm sinnbildlich dreigeteilt Zun chst werden bei Inbetriebnahme des Systems durch Aufruf von main die Initialisierungsschleifen iniim2 sowie init ausgef hrt Im Anschluss daran
118. s ergab sich aus der Tatsache dass bei Eins tzen mit Atemschutz immer zus tzlicher Stress entsteht Somit hat der Bediener des berwachungsger tes nicht die M glichkeit und vor allem nicht die Zeit sich durch s mtliche Men s k mpfen zu m ssen um eine korrekte Atemschutz berwachung zu gew hrleisten Es ergab sich eine ehrgeizige Herausforderung der wir uns gerne stellten Atemschutzger te berwachung 1 2 Rahmenbedingungen Zum besseren Verst ndnis einer Einsatzsituation in der solches berwachungsger t verwendet wird bedarf es f r Personen die nichts oder wenig mit dem Feuerl schwesen zu tun haben einer kurzen Erl uterung Atemschutzger te in den unterschiedlichsten Ausf hrungen werden immer dann eingesetzt wenn in der Umgebungsluft der sich Feuerwehrleute aussetzen m ssen Atemgifte vorhanden sind Au erdem kann es vorkommen dass nicht gen gend Sauerstoff in der Atemluft enthalten ist Auch dies erfordert den Einsatz von Atemschutzger ten In der Vergangenheit kam es leider immer wieder zu Unf llen mit schlimmen Folgen so dass an dieser Stelle geeignete Ausbildungs und berwachungsverfahren eingef hrt werden mussten Unser System soll zu einer besseren und effizienteren Kontrolle der vorgehenden Trupps beitragen R stet sich Trupp der sich je nach Atemschutzger teart aus zwei oder drei Feuerwehrleuten zusammensetzt aufgrund der og Umst nde mit Atemschutz aus muss da
119. s werden im Aktiv Status mit dem Schalter auf Masse und alle anderen Datenleitungen durch die direkt am PIO Port liegenden Pull Up Widerst nde auf High Level gezogen Allerdings muss ein Schalter immer die Masseleitung als Bezugspotenzial durchschalten so dass wir insgesamt nur noch sieben Schalter f r die Kodierung zur Verf gung haben Durch das Masse bezugspotenzial beugen wir zudem eventuellen Kurzschl ssen an der offenen Modular RJ45 Buchse vor da keine Spannung an der Buchse bertragen wird 4 5 2 Aufbaubeschreibung Die Personen ID Sticks sind recht einfach aufgebaut Mittels eines achtfachen Dipschalters wird je nach Stellung von Schalter 1 7 eine individuelle pers nliche ID erstellt Schalter acht muss immer in Stellung ONT sein da dieser mit der Masseleitung verbunden ist und das achte Bit intern an Masse liegt Dadurch ergibt sich ein Siebenbit Codewort also insgesamt maximal 2 128 verschiedene ID s die an dieses System angeschlossen werden konnen Der Dipschalter ist auf einer kleinen Platine befestigt und diese ist wiederum ber ein kurzes Kabel mit einem achtfachen Modularstecker RJ45 verbunden welcher extern an die PID IN Platine gesteckt wird 2753 Atemschutzger te berwachung 21 C rorsrerTr ro Ka kass 4 5 3 Schaltplan PID Sticks T T 6 IN 4 IN 4 97 88 60 900470772 94e A9QUNN aiueunoo 533915 01 5
120. sch auf Maschinencode Ebene arbeiten sind sie immer ganz erheblich kleiner und deshalb schneller als Programme die einen hnlichen Grad an Komplexit t aufweisen aber Hochsprachen als Basis haben Die Nachteile von Assemblerprogrammen sind u a h here Fehleranf lligkeit durch erh hte Komplexit t damit verbunden ein sehr gro er Programmieraufwand bei umfangreichen Projekten 3 2 2 Programmiersprache C ist eine prozedurale Programmiersprache die auf fast allen Computersystemen zur Verf gung steht Im Gegensatz zu z B BASIC gibt es seit der Definition von ANSI relativ einheitliche Implementierungen auf den verschiedenen Plattformen In jedem C System mit Laufzeitumgebung steht auch die genormte Standard C Library zur Verf gung Konzeptionell ist C auf einfache Kompilierbarkeit angelegt die Sprache wird daher manchmal auch als high level assembler language bezeichnet In geschriebene Programme zeichnen sich im Vergleich zu manchen anderen Hochsprachen durch eine sehr gute Performance aus Obwohl nicht objektorientiert ist und mit C Java oder C auf C basierende objektorientierte Weiterentwicklungen mit ungleich umfangreicheren Bibliotheken zur Verf gung stehen ist C nach wie vor weit verbreitet Die Kerne fast aller heute verbreiteten Betriebssysteme wurden in C implementiert zl Atemschutzger te berwachung 3 2 3 Compiler Ein Compiler auch Kompilierer oder bersetzer ist ein Computerprogramm
121. set nein truppi 8 1 lt 1 x 571 reset v blink1 1 set enablei set nein H reset ret C 90 Atemschutzger te berwachung 5 7 8 ziel 5 7 8 1 Programmbeschreibung Bei Meldung des vorgehenden Truppe dass er den tats chlichen Einsatzort erreicht hat erfolgt zun chst die Eingabe der Beh lterdr cke Daraus resultierend wird in diesem Unterprogramm die am Einsatzort zu verbleibende Zeit ermittelt Zu Beginn dieses Moduls erfolgt der Aufruf von Jled1aus sowie das L schen des Displays mit anschlie ender Ausgabe Ziel an solange die Variable sz12 zur ckgesetzt bleibt Ist dies nicht mehr zutreffend schlie t sich eine Reihe von Vergleichen und resultierenden Abfragen an Zun chst erfolgt die Kontrolle der Variable 5211 Je nach Wert wird die dementsprechende Unterfunktion 11 led12 led13 angesprochen Im Anschluss daran wird die Variable Plus1 ausgewertet Ist diese gesetzt so wird z1 inkrementiert beim berschreiben des Grenzwertes 30 wird die Variable automatisch mit 12 beschrieben Plus1 wird jetzt wieder zur ckgesetzt Es folgt die Kontrolle von Minus1 Bei gesetztem Status wird 21 dekrementiert Unterschreitet 21 dabei den Wert 12 folgt automatisch die Korrektur auf 30 Minus1 erh lt nun wieder den Wert 0 Bei Ungleichheit zwischen zb1 und 21 erfolgt nun die Ausgabe des Dr
122. sion installiert ist 18 Atemschutzger te berwachung 3 2 5 Interrupt Unter Interrupt versteht man die kurzfristige Unterbrechung eines Programms durch eine von der CPU abzuarbeitende Befehlssequenz die Interrupt Service Routine ISR Anschlie end wird das Programm an der unterbrochenen Stelle fortgesetzt Sinn eines Interrupts ist es schnell auf Ein Ausgabe Signale z B Tastatur etc oder Zeitgeber Timer zu reagieren Interrupts sind notwendig um auf zeitkritische Ereignisse reagieren zu k nnen Ausgel st werden Interrupts durch so genannte Interrupt Controller mittels eines Interruptrequests IRQ einer Signalisierung an die CPU Wird ein Interrupt von der CPU angenommen wird in einer festen Sequenz dem Interruptzyklus die ausl sende Quelle des Interrupts ber den Datenbus identifiziert dadurch der zugeh rige Interruptvektor gefunden und der Sprung in die Interrupt Service Routine ausgel st Stehen zu diesem Zeitpunkt mehrere IRQs von unterschiedlichen Quellen an so wird durch den Interrupt Controller der Vektor des wichtigsten Interrupts durch Priorit tsverfahren bestimmt und angenommen Hardware Interrupts sind normalerweise maskierbare Interrupts deren Ausl sung durch spezielle Instruktionen unterbunden maskiert werden kann F r Sonderf lle wie z B Stromausfall werden zus tzlich auch nicht maskierbare Interrupts NMI implementiert die immer einen Sprung des Prozessors in die Interrupt Routine
123. ster geladen Der Befehlsz hler wird erh ht Der Befehl wird decodiert Wenn n tig bei Mehrbytebefehlen werden weitere Bytes des Befehls in das Befehlsregister geholt Der Befehl wird ausgef hrt Quellcode x gt x Assembler Programmspeicher IN 01 1000 1110 INC A 0110 1100 OUT 02 Quellcode in mnemonischer Programm in Maschinensprache Schreibweise einzelne Bits Programmierung eines Mikroprozessors m Atemschutzger te berwachung 4 1 2 6 Systembus Aur egbus Datenkus Der Systembus eines Mikroprozessorsystems teilt sich in Datenbus Adressbus und Steuerbus auf 4 1 2 6 1 Datenbus Zur bertragung von Daten zwischen Prozessor Arbeitsspeicher und Peripherie steht der Datenbus zu Verf gung Die Anzahl der Datenbusleitungen bestimmt die Anzahl der Bits die pro Takt bertragen werden k nnen Alle Baugruppen die Daten an den Datenbus bernehmen oder bergeben k nnen Prozessor Speicher 1 0 sind dem Datenbus verbunden Die Datenfreigabe erfolgt durch den Prozessor jeweils nur f r eine Baugruppe ber einen Adressdecoder 4 1 2 6 2 Adressbus Der Adressbus ist f r die bertragung von Speicheradressen zust ndig ber den Adressbus wird jedoch nicht nur der Speicher sondern auch die Peripherie Ger te angesprochen Die Anzahl der Adressleitungen ist ein entscheidender Faktor f r die Anzahl der maximal zu adressierenden Speicherpl tze bzw Peripherieba
124. tion H ch mz Ze 0 GE G du e mcg Aufbau der Z80 CPU 4 1 2 1 CPU Central Prozessing Unit Die Central Prozessing Unit kurz CPU besteht grob gesehen aus dem Rechenwerk dem Befehlswerk und dem internen Speicher ber das Bus Interface greift die CPU auf den Systembus zu 4 1 2 2 ALU Arithmetic Logic Unit Die ALU ist der eigentliche Rechner In ihr werden alle arithmetischen und logischen Funktionen und Berechnungen ausgef hrt Zur ALU geh ren auch der Akku Speicher und die Flags Ereignisspeicher 4 1 2 3 CU Control Unit In der Control Unit befindet sich das Befehlsregister das alle Befehle enth lt die der Mikroprozessor ausf hren kann Hier werden auch die Befehle dekodiert Dann gibt Atemschutzger te berwachung es noch eine zeitliche und logische Steuerung die auf die ALU bei Rechenoperationen zugreift Von hier werden auch der Steuerbus die Interrupts und die Serielle Ein und Ausgabe gesteuert 4 1 2 4 Interner Speicher Akku Zum internen Speicher geh ren zum einen wichtige Register die als Zwischenspeicher dienen als auch der Befehlsz hler in welchem die Speicherzelle steht aus welcher der n chste Befehl geladen wird 4 1 2 5 Ablauf einer Befehlsausf hrung Der Befehlsz hlerinhalt wird auf den Adressbus gelegt ber den Datenbus wird der Operations Code des Befehls ins Befehlsregi
125. tzen einger umt Dies ist notwendig da die Interruptroutinen mit demselben Speicherplatzanfang beginnen m ssen Die Initialisierung der interruptausl senden PIO ist hiermit abgeschlossen 79 Atemschutzger te berwachung 5 7 2 2 Programmablaufplan iniim2 C init p Y di disable interrupt Y a2con Interruptsteuerwort PortA a2con Interruptmaske PortA a2con Lowbyte von vektabA Highbyte von vektabA b2con PortB lt aske PortB xt 57 von PortB d Highbyte von PortB e 4 p 80 Atemschutzger te berwachung 5 7 3 typ1 5 7 3 1 Programmbeschreibung In dieser Funktion kann gew hlt werden welche Ger tevariante verwendet wird Die Wahl ist bindend f r den gesamten Trupp Zu Beginn wird berpr ft ob die Taste Plus1 bet tigt wurde Ist dies der Fall so wird der Funktionsinterne Zeiger num inkrementiert Ist dieser nun gr er als 5 wird er zur ck auf den Wert 1 gesetzt Ist dies geschehen oder wurde die Taste nicht bet tigt erfolgt die gleiche Abfrage mit Minus1 In diesem Fall wird num1 jedoch dekrementiert Ist er unter 1 so wird er auf den Wert 5 gesetzt Anschlie end wird kontrolliert ob der Zeiger num ungleich der Variable numb1 ist Trifft dies zu wird auf dem Display der entsprechende Ger tetyp auf den der
126. tzes ver ndert 1 Aktion wurden Nun folgt der eigentliche Einstieg dem 0 Ausgabe Frei diverse Unterprogramme bzw Aktionen aufgerufen typ1O werden um die berwachung eines Trupps zu 3 n erm glichen Hierf r wird mit Hilfe einer Switch Abfrage 3 10 ress der Inhalt der Variable trupp1 berpr ft und dann P 4 start1 dementsprechend reagiert Nebenstehende Reaktionen Se 5 count1 1 sind m glich 6 zie Hiermit ist die Bearbeitungsroutine f r den ersten Trupp 7 t120 coun abgeschlossen Diese Prozedur wird nun f r die beiden coun brigen Truppmodule wiederholt Lediglich die Variablen 9 endel bzw Unterprogrammnamen ndern sich Ist die 10 art1 Bearbeitung aller Truppe abgeschlossen erfolgt noch der Aufruf des Zeitmoduls delay um eine Verz gerung von 200ms zu erreichen sowie das Modul extras wird ausgef hrt Hiernach wird bedingt durch die For Schleife zum Beginn der Trupp Abfrage gesprungen In den folgenden Beschreibungen werden die Module die je Trupp aufgerufen werden und somit dreifach vorhanden sind lediglich einmal beschrieben Markante Unterschiede der truppspezifischen Module werden erl utert Auf Variablen deren Namen sich lediglich wird nicht eingegangen da die Zugeh rigkeit zu den Truppe am Namen ersichtlich wird 5 5 2 Programmablaufplan main
127. ucks ziel aus auf welchen der Zeiger 21 zeigt Zuvor wird das Display gel scht Nach der Ausgabe wird die Einheit Bar hinzugef gt und der Abgleich von 261 an 21 wird durchgef hrt An dieser Stelle im Programm ist die Abh ngigkeit von sz1L beendet Es wird nun verglichen ob 521 kleiner 5 ist So lange bleibt sz12 zur ckgesetzt und sz1 wird inkrementiert Bei berschreiben des Schwellwerts 5 wird sz12 gesetzt Bei gesetztem Zustand von Ok1 wird sz11 inkrementiert und unmittelbar auf 0 gesetzt Die momentane Druckauswahl wird im Vektorspeicher eingetragen und z1 auf den Startwert 25 sowie zb1 auf 0 gesetzt Zun chst werden jetzt 1 und sz11 auf Gleichheit kontrolliert und bei Zutreffen wird rechnen1 gesetzt Dadurch wird der Teil der Funktion beendet in welchem die Beh lterdr cke eingegeben werden und es folgt die Ermittlung der Zeiten In Abh ngigkeit vom gesetzten Zustand der Variable rechnen wird nun zu Beginn der reale Luftverbrauch der Truppmitglieder berechnet und den Variablen luft11 und luft12 eingetragen Dies geschieht durch Subtraktion des Drucks bei Zielankunft Gziel von Startdruck start Sind drei Mitglieder dem Trupp angeh rig 1 1 3 findet diese Berechnung auch ein drittes Mal statt Die Variable max11 in der zum Ende dieser Funktion der gr te Luftverbrauch steht wird nun vorerst mit luft11 beschrieben In max12 steht letztlich das Truppm
128. ung in die bertragung per serieller Schnittstelle SIO in JAVA Woche PIO Platine eingetroffen durchmessen der Verbindungen und Leiterbahnen DISTAS Platinen ge tzt und gebohrt Best ckung der PIO Platine und DISTAS Platinen JAVA Programmierung f r SIO Berechnung von Vor Pull Up und Pull Down Widerst nden Woche Adressierung neu erstellt Vorl ufige Restarbeiten der Hardware Kabel gefertigt Taster angel tet etc Vorbereitung f r ersten Hardwaretest Erstellung eines Assemblerprogramms zum Testen der Hardware 118 Atemschutzger te berwachung 8 Woche Erster Hardwaretest Weitere Hardwaretests folgen Erste Fehler auf dem Datenbus treten auf Fehlersuche 9 Woche 22 Fehlersuche 10 Woche Fehlersuche Am Ende der Woche Fehler in der Hardware gefunden Displayvorschaltung 41 Woche Weitere Softwaretests folgen Erste Darstellung von Zeichen auf allen drei Displays Einlesen der PIDS Erste Softwareprobleme treten auf 12 Woche Weitere Softwareentwicklung Softwareprobleme werden gel st neue entstehen Beginn der Dokumentation 13 Woche Softwareentwicklung Geh useeinbau vorbereiten Vermessen Zeichen Bohren Fr sen Dokumentation 119 Atemschutzger te berwachung 9 Bedienungsanleitung TGK3000 9 1 Allgemeines Die TGK3000 ist eine mobile Einheit zum
129. usteine Anzahl der Adressleitungen maximal adressierbare Speicherpl tze 2 9 Diese Formel dient zur Ermittlung der maximal nutzbaren Speichergr e die ein Prozessor ansprechen kann in Byte 24 Atemschutzger te berwachung 4 1 2 6 3 Steuerbus Der Steuerbus dient der bertragung bestimmter Steuersignale an die einzelnen Komponenten Auf diese Weise wird der auf dem Adressbus angesprochenen Komponente mitgeteilt was sie zu tun hat so z B die Daten vom Datenbus aufzunehmen oder an den Datenbus zu bergeben Der Steuerbus beinhaltet auch die Interrupt Leitungen ber die die Peripherie Ger te dem Prozessor eine Unterbrechungsanforderung signalisieren K nnen E AN m Map DV ki OU wd Ms WM vd Mi Jolo 2 2 3l 3 si Ai 7199191999099 J J J E 2 2 2 2 2 gt ga p gt 9555555 5 55 O O O O O O 2 i RK R EUR K QUU CO O DD um wm u ei kd UD bd I II 2 Q 2 I II SH SH S HS HSH S OS HS HS OS OS kd kd 2 2 HT A Lef J 2 Lef FE SR 5 lt 5 Q Fa s EI E E EI EJ D T P
130. utzger te berwachung 5 7 5 pressu 5 7 5 1 Programmbeschreibung Au er bei der Ger tevariante Filter wird dieses Modul nach dem Einlesen der PID Sticks ben tigt Die Beh lterdr cke der FA werden aufgenommen Im ersten Aufruf dieser Funktion wird das Unterprogramm lediaus aufgerufen da 5211 zur ckgesetzt ist Anschlie end wird der interne Schleifenz hler sz1 berpr ft Tr gt er die 0 wird led11 aufgerufen bei der 1 die Funktion led12 und beim Wert 2 das Modul led12 Dadurch wird gew hrleistet dass vom Bediener permanent eingelesen werden kann wessen Druck gerade abgefragt wird Nun erfolgt die Frage ob Plus1 bereits gesetzt wurde Ist dies der Fall so wird die Variable druck1 inkrementiert Tr gt diese nun einen Wert gr er 6 so wird druck1 mit 1 beschrieben Der Merker Plus1 wird gel scht und die Abfrage ist beendet Sollte nun druck1 einen anderen Inhalt als druck1 aufweisen so wird das Display gel scht und mit dem aktuellen Wert des Zeigers druck1 auf der Variable D ausgabe ausgegeben Die Einheit Bar wird unmittelbar angehangen und druckb1 wird druck1 angeglichen Wurde bis zum jetzigen Zeitpunkt ORT gesetzt wird zun chst sz1 inkrementiert Abfrage dieser Variable zu Beginn des Moduls und OK1 unmittelbar zur ckgesetzt Der momentane Zustand von druck1 wird in den Vektorspeicher geschrieben und anschlie end mit dem Startwert 4 geladen Abschlie
131. ventuelle Fehlerquellen bei der Entwicklung eines neuen pgP EMUF oystems vermieden Zum Einlesen der PID Sticks gab es viele verschiedene M glichkeiten Um uns einen erheblichen Hardwareaufwand zu ersparen wollten wir einen analogen PID Stick entwickeln der die Kodierung der ID s durch festgelegte Widerstandswerte vornimmt Dazu ben tigten wir jedoch einen analogen Eingang mit AD Wandler pro PID Stick oder man w rde nur einen analogen Eingang mit nur einem AD Wandler verwenden der dann gemultiplext w rde Eine weitere berlegung war die PID Sticks digital zu codieren Dazu w ren jedoch entsprechend der Anzahl der PID Sticks mehrere Datenleitungen pro PID Stick n tig die dann ber einen parallelen Port einer PIO einzulesen w ren Dann stellt sich wiederum die Frage ob man daf r nur eine PIO benutzt die wiederum auf neunfach gemultiplext wird oder man w rde pro PID Stick einen kompletten Port einer PIO verwenden und das uP System um entsprechend PIO s erg nzen Um der Problematik des analogen Einlesens und externen Multiplexens zu entgehen entschieden wir uns f r den komplett parallelen Aufbau der PID Sticks ber eine digitale Kodierung und somit f r die Erweiterung des Systems um f nf PIO s 10 Atemschutzger te berwachung F r den praktischen Einsatz des Ger tes ist es notwendig eine spannungsversorgungsfreie Betriebslaufzeit von mind zwei Stunden zu erreichen Dementsprechend ben tigen wir einen Akku
Download Pdf Manuals
Related Search
Related Contents
Manual do Utilizador da Câmara 寸法図の変更 Firmware User Manual v5.07.05 European countries, Pays Européens, Paises Europeos Integrated Power Console (IPC™) Copyright © All rights reserved.
Failed to retrieve file