Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i) 1. DS1821 1-WIRE KOMMUNIKATION (HERUNDER TIMING KRAV) ------------------------ 2 2. DS1821 SOFTWARE (OPBYGNING AF STYREPROGRAM I SYSTEM51 C) ----------- 6 3. CAN232 INTERFACEMODUL (HARDWAREOPSÆTNING OG RS232 KOMMUNIKATION MED MODULET)------------------------------------------------------------------- 8 4. CAN-BUS STYREPROGRAM1 (OPBYGNING AF STYREPROGRAM I C-KODE PÅ 80535 KIT)-----------------------------------------------------------------------------------------------------13 5. CAN-BUS STYREPROGRAM2 (OPBYGNING AF STYREPROGRAM I JAVA KODE PÅ EN PC)-----------------------------------------------------------------------------------------------------14 Side 1 af 14
1. DS1821 1-wire kommunikation (herunder timing krav) -55 ºC - + 125º C, 0º C - + 85º C er der 1º C fejlmargin. µp 1. Stand alone termostat 2. Alm. tempmåler 1. bit = One shot 2. bit = Polaritet 3. bit = Termostat (1) Termometermode (0) 4. bit = TLF 5. bit = THF 6. bit = NUB 7. bit = (1) altid høj 8. bit = done Configurations/status register NVB = Non Volatile bit I temp.register, hvis bit 7 er 0 er det positiv temp, hvis 1 er det minus. Side 2 af 14
0000 0001 11111110 1. complement 0000 0001 11111111 1000 0000 128 01111111 1. complement 0000 0001 1 1000 0000 2. complement (128) Timing krav µp Master DS1821 er trukket høj hele tiden ved hjælp af pull-up modstanden. Side 3 af 14
Når der bliver sendt et lavt signal til DS1821, er det tegn til at, nu vil master i kontakt med DS1821. Denne sekvens for at finde ud af om DS1821 er der. Reset-presence 480 µs 480 µs Write 1 Max 15 µs 1 µs 1 60 µs Write 0 60 µs 0 ;Assemblerprogram til DS1821 temperaturmåler public public public vent5 vent60 vent500 org 80h vent5: nop nop nop nop ret Side 4 af 14
vent60: push acc mov a,#26 igen: djnz acc,igen pop acc ret vent500: push acc mov a,#230 igen2: djnz acc,igen2 pop acc ret Side 5 af 14
2. DS1821 software (Opbygning af styreprogram i System51 C) På microplan enkelt bit: P1.6 = 0; Vent500(); P1.6 = 1; While (P1.6 = = 1) {} Vent500; Navn: Søren Guldbrand Pedersen //--------------------------------- Temperaturføler - Termostat ------------------------- void presence() { temp = 0; vent500(); temp = 1; // Sætter P5.4 lav // Starter ekstern tæller i 500 microsek. // Sætter P5.4 høj } while (temp==1) // Gør det så længe "temp er lig 1 {} vent500(); // Kalder funktion "vent500" Forsinkelse som venter 500 // msek //--------------------------------- Skriv 1 til DS1821 - Termostat ---------------------- void wr1temp() { temp = 0; // Sætter P5.4 lav vent5(); // Kalder funktion "vent5" Forsinkelse som venter 5 msek temp = 1; // Sætter P5.4 høj vent60(); // Kalder funktion "vent60" Forsinkelse som venter 60 // msek } //--------------------------------- Skriv 0 til DS1821 - Termostat ---------------------- void wr0temp() { temp = 0; // Sætter P5.4 lav vent60(); // Kalder funktion "vent60" Forsinkelse som venter 60 msek temp = 1; // Sætter P5.4 høj vent5(); // Kalder funktion "vent5" Forsinkelse som venter 5 msek } Side 6 af 14
Skrive til config skriv (0x0C) Data? skriv (0x01) ---------------------------------------------------- start ADV skriv (0xee) vent 1 sek ---------------------------------------------------- læs temp fra DS1821 skriv (0xaa) læser temp.! ---------------------------------------------------- indlæs temp. Til LCD Side 7 af 14
3. CAN232 interfacemodul (Hardwareopsætning og RS232 kommunikation med modulet) Side 8 af 14
Jeg vil starte med en illustration af den del af opstillingen. Det bliver her brugt til at udtage/udlæse temperatur-data fra føleren, og sende det til RS232 port, og displayet. 80C535 kittet bliver så forbundet et CAN-Bus-kabel med CAN232-moduler i hver ende, for at modstanden skal være samme i hver ende pga. støj. CAN232 er lille dongle som tilsluttes enhver Com-port, eller anden RS232 port i et indesluttet system, for at give en umiddelbar CAN forbindelse.dette betyder at den, af softwaren, bliver behandlet som en standart COM-port (seriel-port) som fjerner behovet for ekstra drivere. Transmission og modtagelse af data foregår i standart ASCII-format. CAN232 modulet bliver forsynet med 8 15 V ifølge producenten. I CAN232 er der en buffer, kaldet FiFo-buffer hvor opsamlet data ligger indtil de bliver hentet ud. DS1821 Temperatur-føler Denne temperatur føler, er et meget simpelt, programmerbart komponent. Den har kun 3 ben, plus stel, og så kommunikations-forbindelse. Derudover har en et meget stort span at måle over -55 C til +125 C. Man kan bruge den både som termostat og som temperatur-føler som den er blevet brugt til her. DS1821 har en nøjagtighed på ± 1 C over et span fra 0 C til +85 C. Den er derudover max. 1 sekund om at konverterer temperatur til digital word. Side 9 af 14
Kommunikation med Hyperterminal. Det skulle derudover være muligt at kunne teste / aflæse temperaturen ved at bruge Hyperterminal, og dermed Telnet. Det skal gøres vedførst at sætte en forbindelse op til sin COM-port på PC en, derefter sende de samme kommandoer som bliver brugt i C og Java; C Enter Lukker porten S3 Enter Sætter bushastigheden O Enter Åbner porten P Enter Henter data i CAN232 bufferen. Se andre kommandoer i Bilag næste side. Men dette fik vi slet ikke til at virke, selv ikke med mange lærer-forsøg. Vi kunne dog hente versions-nummeret fra CAN232, ved blot at sende et V, men så var det ligesom at det gik dødt. V.1013 Kommunikation Lawisel. På Lawicels hjemmeside er det muligt at hente et lille stykke software, CAN232 Monitor, som man kan teste sine CAN232 ere med, og som man også kan bruge til at teste om der er forbindelse fra 80C535 kittet og igennem CAN232 CAN-Bus CAN232 og til PC en. Jeg vil her vise hvordan det er sat op, og hvad det viser under test af aflæsning af temperature. Side 10 af 14
Det første man gør, når man har forbundet kit, CAN-Bus og CAN232, er sættet monitoren op, og der Bit rate op til 100Kbit, den serielle Baud rate, og den sidste lader man stå på default, 100, så klikkes på Accept, og denne menu kommer frem: Her fortælles programmet, hvilekn COM-port man bruger, og da det er en bærbar med kun én COM, skal den stå på COM1, dernæst fortælles Baud rate for COM-porten, hvor mange data-bit og stop-bit. Og Parity og flow control sættes til None. Klik på OK : Side 11 af 14
Når dette er sat op, er man klar til at aflæse fra CAN232, så der klikkes på Open Com port, så vil på skærmen først vise et O for åben, så vises versionen af den software der er i CAN232 modulet, og derefter vises tekststreng, og de sidste 2 cifre er den temperatur der aflæses, og den skulle så gerne vise det samme som displayet og det var den. Side 12 af 14
4. CAN-Bus styreprogram1 (Opbygning af styreprogram i C-kode på 80535 kit) Må være denne: TEMPMAAL.C Se bilag næste side. Side 13 af 14
5. CAN-Bus styreprogram2 (Opbygning af styreprogram i JAVA kode på en PC) Enten denne: Brugerflade 80C535 Eller denne: Brugerflade Temperatur Se Bilag I JAVA-Noter.. Side 14 af 14