Monday 20 November 2017

Avr222 8 Punkt Moving Average Filteret


8-bits mikrokontroller. Applikasjonsnotat. AVR222: 8-punkts Moving Average Filter Transkripsjon 1 AVR222: 8-punkts Moving Average Filter Funksjoner 31-ords Subroutine Filters Data Arrayer opptil 256 Bytes Runable Demo Program Introduksjon Det glidende gjennomsnittlige filteret er et enkelt Low Pass FIR (Finite Impulse Response) filter vanligvis brukt for å jevne ut en rekke samplede data. Denne applikasjonen implementerer et 8-punkts filter for å forenkle gjennomsnittlig beregning. Applikasjonsnotatet gir en utmerket demonstrasjon av hvordan de kraftige adresseringsmodusene i AVR-arkitekturen kan utnyttes. 8-bits Microcontroller Application Note Theory Det bevegelige gjennomsnittlige filteret kan forestilles som et vindu av en viss størrelse (i dette tilfellet åtte) som beveger seg langs arrayet, ett element om gangen. Midtelementet i vinduet (i dette tilfellet element 4) erstattes med gjennomsnittet av alle elementene i vinduet. Se figur 1. Det er imidlertid viktig å huske verdien av nye elementer og ikke gjøre erstatning til vinduet har passert. Dette må gjøres siden alle gjennomsnitt skal være basert på de opprinnelige dataene i arrayet. Figur 1. Det 8-punkts gjennomsnittlige vinduet CURRENT WINDOW NEW VALUE () 8 20 Når enden av arrayet er filtrert og deler av vinduet ligger utenfor arrayet, må gjennomsnittet gjøres på mindre elementer enn når hele vinduet er inne matrisen. Denne implementeringen forlater endene av arrayet ufiltrert for å lagre kode. For et 8-punkts filter betyr dette at når n elementene filtreres, forblir elementene 1, 2, 3 og n-3, n-2, n-1, n uendret når filtreringen er fullført. For mange applikasjoner er dette ikke noe problem. Rev. 1 2 Implementeringsbruk Algoritme Beskrivelse Programmet definerer en 8-byte ringbuffer (R0 - R7) som alltid holder dataene i det nåværende gjennomsnittlige vinduet. Filterrutinen beregner summen av vinduet og beregner gjennomsnittet, som lagres tilbake i matrisen. AVR s tre pekere er tilordnet følgende funksjoner: Z peker på arrayelementet som skal byttes ut. Y poeng inne i ringbufferen når summen av bufferinnholdet beregnes i en programløkke. X er ringpekeren som holder posisjonen til nye verdier til bufferen. For å filtrere en matrise i SRAM, bruk følgende fremgangsmåte: 1. Legg inn ZH med den høye adressen til det første elementet i matrisen. 2. Legg inn ZL med den lave adressen til det første elementet i arrayet. 3. Legg inn registervariablen tsize med antall elementer i tabellen. 4. Ring mav8. Følgende fremgangsmåte beskriver hvordan sorteringen implementeres på AVR: Initialisering 1. Fjern X og Y-poengene (pek på R0). Fyll Ring Buffer i utgangspunktet: 1. Få SRAM innholdet til Z og øke Z. 2. Lagre i register på Y og øke Y. 3. Hvis Y ikke er åtte, gå til trinn 2. Finn gjennomsnitt 1. Fjern 16-biters registervariabelen AH: AL (gjennomsnittsverdi). 2. Fjern YL (pek på R0). 3. Få registerinnholdet til Y. 4. Legg til i AH: AL. 5. Hvis Y ikke er åtte, gå til Step Divide AH: AL ved 8. Skriv tilbake gjennomsnittlig og få neste verdi til buffer 1. Få SRAM innhold på Z5 (Neste verdi til buffer). 2. Lagre for å registrere ved X og trinn X. 3. Fjern de høyeste fem bitene av XL for å få det til å peke på starten av bufferen hvis slutten er bestått. 4. Lagre AL ved Z og øk Z. 5. Decrement tsize. 6. Hvis tsize ikke er null (slutten av array er nådd) gå til trinn 5. 2 AVR222 3 AVR222 Figur 2. mav8 Flow Chart MAV8 CLEAR X OG YZZ 1 BEREGNING AVERAGE FILL RING MAVTMP YY 1 YL 8 Y KLAR AH: AL, YL YY 1 AH: AL AH: AL MAVTMP YL 8 NY AH: AL AH: AL 8 SKRIV TILBAKE GENNEM OG FÅ NESTE VERDI TIL RINGBUFFER MAVTMP, XX AL, ZZ 1 TSIZE CLEAR X BITS 7,6,5,4,3 TSIZE TSIZE - 1 Y Retur 3 4 Ytelsestabell 1. mav8 Registrer bruk Registrering Inngang Intern Utgang R0-R7 Ringbuffer R8 mavtmp Midlertidig lagring R9 AL Gjennomsnittlig Lav Byte R10 AH Gjennomsnittlig Høy Byte R16 tsize Antall Elementer tsize Løpeteller R26 XL R27 XH R28 YL R29 YH R30 Z Adresse til første element ZL R31 Z Adresse til første element ZH Tabell 2. mav8 Ytelsesfigurer (1) Parameter Kode Størrelse (Ord) Utførelsestid (sykluser) Verdi 30 Retur x (SIZE - 7) Retur Register Bruk Lav Registerer High Registers Pointers Interrupts Bruk Peripherals Bruk Ingen Ingen: 11: 1: X, Y, Z Merk: 1. STØRRELSE Antall byte for å filtrere TestExample Program a vr222.asm inneholder et testprogram som kopierer 60 byte av tilfeldige data fra programminnet til SRAM og ringer mav8 for å filtrere dataene. Testprogrammet er velegnet til å kjøre under AVR Studio. 4 AVR222 6 Atmel Hovedkontor Hovedkontor 2325 Orchard Parkway San Jose, CA TEL 1 (408) FAX 1 (408) Europa Atmel Sarl Route des Arsenaux 41 Case Postale 80 CH-1705 Fribourg Sveits TEL (41) FAX (41) Asia Room 1219 Chinachem Golden Plaza 77 Mody Road Tsimhatsui East Kowloon Hongkong TEL (852) FAX (852) Japan 9F, Tonetsu Shinkawa Bldg Shinkawa Chuo-ku, Tokyo Japan TEL (81) FAX (81) Atmel Operations Memory 2325 Orchard Parkway San Jose, CA TEL 1 (408) FAX 1 (408) FAX 1 (408) Microcontrollers 2325 Orchard Parkway San Jose, CA TEL 1 (408) FAX 1 (408) La Chantrerie BP Nantes Cedex 3, Frankrike TEL (33) FAX (33) ASICASSPSmart Kort Zone Industrielle Rousset Cedex , Frankrike TEL (33) FAX (33) East Cheyenne Mtn. Blvd. Colorado Springs, CO TEL 1 (719) FAX 1 (719) Scottish Enterprise Technology Park Maxwell Building East Kilbride G75 0QR, Skottland TEL (44) FAX (44) RFAutomotive Theresienstrasse 2 Postfach Heilbronn, Tyskland TEL (49) FAX Cheyenne Mtn. Blvd. Colorado Springs, CO TEL 1 (719) FAX 1 (719) BiometriSkrivereHi-Rel MPU-høyhastighetsomformereRF Datacom Avenue de Rochepleine BP Saint-Egreve Cedex, Frankrike TEL (33) FAX (33) Nettsted Atmel Corporation Atmel Corporation gir ingen garanti for bruken av sine produkter, bortsett fra de som er uttrykkelig inneholdt i selskapets standardgaranti som er beskrevet i Atmels vilkår og betingelser som er plassert på selskapets nettsted. Selskapet påtar seg intet ansvar for eventuelle feil som kan oppstå i dette dokumentet, forbeholder seg retten til å endre enheter eller spesifikasjoner som er beskrevet her, når som helst uten varsel, og forplikter seg ikke til å oppdatere informasjonen i dette dokumentet. Ingen lisenser til patenter eller annen immateriell rettighet til Atmel er gitt av Selskapet i forbindelse med salg av Atmel produkter, uttrykkelig eller ved implikasjon. Atmel s produkter er ikke autorisert til bruk som kritiske komponenter i livsstøttende enheter eller systemer. ATMEL, AVR og AVR Studio er registrerte varemerker for Atmel. Andre vilkår og produktnavn kan være andres varemerker. Trykt på resirkulert papir. 0MAVR222: 8-punkts glidende gjennomsnittlig filter Hva er en mikrokontroller En mikrokontroller eller MCU er en datamaskin-på-en-chip. Det er en type mikroprosessor dedikert til å utføre en oppgave (i motsetning til generell mikroprosessor), innebygd i en annen enhet for å kontrollere funksjonene til den enheten, så navnet innebygd kontrolleren. Hva er en AVR En spenningsregulator er en elektronisk krets som brukes til å opprettholde en jevn mengde spenning i en elektrisk ledning. Det eliminerer strømforstyrrelser, pigger og brownouts, noe som kan forårsake skade på følsom elektronikk. AVR står for automatisk spenningsregulator og brukes ofte til sluttbruker equipment.8-bit Microcontroller. Applikasjonsnotat. AVR222: 8-punkts Moving Average Filter Transkripsjon 1 AVR222: 8-punkts Moving Average Filter Funksjoner 31-ords Subroutine Filters Data Arrayer opptil 256 Bytes Runable Demo Program Introduksjon Det glidende gjennomsnittlige filteret er et enkelt Low Pass FIR (Finite Impulse Response) filter vanligvis brukt for å jevne ut en rekke samplede data. Denne applikasjonen implementerer et 8-punkts filter for å forenkle gjennomsnittlig beregning. Applikasjonsnotatet gir en utmerket demonstrasjon av hvordan de kraftige adresseringsmodusene i AVR-arkitekturen kan utnyttes. 8-bits Microcontroller Application Note Theory Det bevegelige gjennomsnittlige filteret kan forestilles som et vindu av en viss størrelse (i dette tilfellet åtte) som beveger seg langs arrayet, ett element om gangen. Midtelementet i vinduet (i dette tilfellet element 4) erstattes med gjennomsnittet av alle elementene i vinduet. Se figur 1. Det er imidlertid viktig å huske verdien av nye elementer og ikke gjøre erstatning til vinduet har passert. Dette må gjøres siden alle gjennomsnitt skal være basert på de opprinnelige dataene i arrayet. Figur 1. Det 8-punkts gjennomsnittlige vinduet CURRENT WINDOW NEW VALUE () 8 20 Når enden av arrayet er filtrert og deler av vinduet ligger utenfor arrayet, må gjennomsnittet gjøres på mindre elementer enn når hele vinduet er inne matrisen. Denne implementeringen forlater endene av arrayet ufiltrert for å lagre kode. For et 8-punkts filter betyr dette at når n elementene filtreres, forblir elementene 1, 2, 3 og n-3, n-2, n-1, n uendret når filtreringen er fullført. For mange applikasjoner er dette ikke noe problem. Rev. 1 2 Implementeringsbruk Algoritme Beskrivelse Programmet definerer en 8-byte ringbuffer (R0 - R7) som alltid holder dataene i det nåværende gjennomsnittlige vinduet. Filterrutinen beregner summen av vinduet og beregner gjennomsnittet, som lagres tilbake i matrisen. AVR s tre pekere er tilordnet følgende funksjoner: Z peker på arrayelementet som skal byttes ut. Y poeng inne i ringbufferen når summen av bufferinnholdet beregnes i en programløkke. X er ringpekeren som holder posisjonen til nye verdier til bufferen. For å filtrere en matrise i SRAM, bruk følgende fremgangsmåte: 1. Legg inn ZH med den høye adressen til det første elementet i matrisen. 2. Legg inn ZL med den lave adressen til det første elementet i arrayet. 3. Legg inn registervariablen tsize med antall elementer i tabellen. 4. Ring mav8. Følgende fremgangsmåte beskriver hvordan sorteringen implementeres på AVR: Initialisering 1. Fjern X og Y-poengene (pek på R0). Fyll Ring Buffer i utgangspunktet: 1. Få SRAM innholdet til Z og øke Z. 2. Lagre i register på Y og øke Y. 3. Hvis Y ikke er åtte, gå til trinn 2. Finn gjennomsnitt 1. Fjern 16-biters registervariabelen AH: AL (gjennomsnittsverdi). 2. Fjern YL (pek på R0). 3. Få registerinnholdet til Y. 4. Legg til i AH: AL. 5. Hvis Y ikke er åtte, gå til Step Divide AH: AL ved 8. Skriv tilbake gjennomsnittlig og få neste verdi til buffer 1. Få SRAM innhold på Z5 (Neste verdi til buffer). 2. Lagre for å registrere ved X og trinn X. 3. Fjern de høyeste fem bitene av XL for å få det til å peke på starten av bufferen hvis slutten er bestått. 4. Lagre AL ved Z og øk Z. 5. Decrement tsize. 6. Hvis tsize ikke er null (slutten av array er nådd) gå til trinn 5. 2 AVR222 3 AVR222 Figur 2. mav8 Flow Chart MAV8 CLEAR X OG YZZ 1 BEREGNING AVERAGE FILL RING MAVTMP YY 1 YL 8 Y KLAR AH: AL, YL YY 1 AH: AL AH: AL MAVTMP YL 8 NY AH: AL AH: AL 8 SKRIV TILBAKE GENNEM OG FÅ NESTE VERDI TIL RINGBUFFER MAVTMP, XX AL, ZZ 1 TSIZE CLEAR X BITS 7,6,5,4,3 TSIZE TSIZE - 1 Y Retur 3 4 Ytelsestabell 1. mav8 Registrer bruk Registrering Inngang Intern Utgang R0-R7 Ringbuffer R8 mavtmp Midlertidig lagring R9 AL Gjennomsnittlig Lav Byte R10 AH Gjennomsnittlig Høy Byte R16 tsize Antall Elementer tsize Løpeteller R26 XL R27 XH R28 YL R29 YH R30 Z Adresse til første element ZL R31 Z Adresse til første element ZH Tabell 2. mav8 Ytelsesfigurer (1) Parameter Kode Størrelse (Ord) Utførelsestid (sykluser) Verdi 30 Retur x (SIZE - 7) Retur Register Bruk Lav Registerer High Registers Pointers Interrupts Bruk Peripherals Bruk Ingen Ingen: 11: 1: X, Y, Z Merk: 1. STØRRELSE Antall byte for å filtrere TestExample Program a vr222.asm inneholder et testprogram som kopierer 60 byte av tilfeldige data fra programminnet til SRAM og ringer mav8 for å filtrere dataene. Testprogrammet er velegnet til å kjøre under AVR Studio. 4 AVR222 6 Atmel Hovedkontor Hovedkontor 2325 Orchard Parkway San Jose, CA TEL 1 (408) FAX 1 (408) Europa Atmel Sarl Route des Arsenaux 41 Case Postale 80 CH-1705 Fribourg Sveits TEL (41) FAX (41) Asia Room 1219 Chinachem Golden Plaza 77 Mody Road Tsimhatsui East Kowloon Hongkong TEL (852) FAX (852) Japan 9F, Tonetsu Shinkawa Bldg Shinkawa Chuo-ku, Tokyo Japan TEL (81) FAX (81) Atmel Operations Memory 2325 Orchard Parkway San Jose, CA TEL 1 (408) FAX 1 (408) FAX 1 (408) Microcontrollers 2325 Orchard Parkway San Jose, CA TEL 1 (408) FAX 1 (408) La Chantrerie BP Nantes Cedex 3, Frankrike TEL (33) FAX (33) ASICASSPSmart Kort Zone Industrielle Rousset Cedex , Frankrike TEL (33) FAX (33) East Cheyenne Mtn. Blvd. Colorado Springs, CO TEL 1 (719) FAX 1 (719) Scottish Enterprise Technology Park Maxwell Building East Kilbride G75 0QR, Skottland TEL (44) FAX (44) RFAutomotive Theresienstrasse 2 Postfach Heilbronn, Tyskland TEL (49) FAX Cheyenne Mtn. Blvd. Colorado Springs, CO TEL 1 (719) FAX 1 (719) BiometriSkrivereHi-Rel MPU-høyhastighetsomformereRF Datacom Avenue de Rochepleine BP Saint-Egreve Cedex, Frankrike TEL (33) FAX (33) Nettsted Atmel Corporation Atmel Corporation gir ingen garanti for bruken av sine produkter, bortsett fra de som er uttrykkelig inneholdt i selskapets standardgaranti som er beskrevet i Atmels vilkår og betingelser som er plassert på selskapets nettsted. Selskapet påtar seg intet ansvar for eventuelle feil som kan oppstå i dette dokumentet, forbeholder seg retten til å endre enheter eller spesifikasjoner som er beskrevet her, når som helst uten varsel, og forplikter seg ikke til å oppdatere informasjonen i dette dokumentet. Ingen lisenser til patenter eller annen immateriell rettighet til Atmel er gitt av Selskapet i forbindelse med salg av Atmel produkter, uttrykkelig eller ved implikasjon. Atmel s produkter er ikke autorisert til bruk som kritiske komponenter i livsstøttende enheter eller systemer. ATMEL, AVR og AVR Studio er registrerte varemerker for Atmel. Andre vilkår og produktnavn kan være andres varemerker. Trykt på resirkulert papir. 0M

No comments:

Post a Comment