+ All Categories
Home > Documents > Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips...

Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips...

Date post: 19-Apr-2018
Category:
Upload: truongxuyen
View: 225 times
Download: 9 times
Share this document with a friend
124
Mälardalens högskola Institutionen för Datavetenskap och Elektronik Anders Karlström [email protected] 070-978 19 02 Examinator: Lennart Lind Västerås 2005-04-27 Datainsamlingskort för anslutning till USB
Transcript
Page 1: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Mälardalens högskolaInstitutionen för Datavetenskap och ElektronikAnders Karlströ[email protected] 070-978 19 02Examinator: Lennart LindVästerås 2005-04-27

Datainsamlingskort för anslutning till USB

Page 2: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Sammanfattning

Denna rapport behandlar konstruktion och programmering av ett datainsamlingskort för USB. Stor tonvikt är lagd på att få ett lågt pris på konstruktionen. Konkurrerande produkter har undersökts och en egen nisch har identifierats. Denna nisch är billiga datainsamlingsenheter för USB med ett pris till slutkund som understiger 960kr + moms. För att kunna sälja produkten billigt har konstruktionen gjorts mycket enkel. Trots detta visar det sig i kostnadskalkylen att det krävs serier om minst 1000 enheter för att priset per kort ska bli konkurrenskraftigt. Två programvaror har utvecklats, en för datainsamlingskortet och en för PC.

Abstract

This report describes the design and programming of a Data Acquisition Board for USB. It has been stressed to keep a low price of the design. Competing products has been examined and an own niche has been discovered. The niche is low price Data Acquisition Units with a price to the costumer below 960kr + VAT. To be able to sell the product for a low price the design is very simple. Even with a simple design the cost estimate show that the unit must be produced in series of at least 1000 units to get a competitive price. Two soft wares have been developed, one for the Data Acquisition Board itself and one for a PC.

Förord

Ett stort tack riktas till examinator Lennart Lind för god handledning. Tack även till Joakim Adomat, IDE som har varit ett gott stöd vid tillverkning av kretskort. Anna Petersson vid företaget JAPS Elektronik har tagit fram priser för tillverkning av kortet och kommit med värdefulla idéer.

2

Page 3: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Innehållsförteckning

1 BAKGRUND 5

2 PROBLEMBESKRIVNING 5

3 MARKNADSUNDERSÖKNING 6

3.1 ALLMÄNT 63.2 UNDERSÖKNING AV DATAINSAMLINGSENHETER 6

3.2.1 Kommunikation 63.2.2 Analoga ingångar 63.2.3 Analoga utgångar 73.2.4 Digitala I/O 73.2.5 Timers 73.2.6 Extrafunktioner 73.2.7 Synkronisering 73.2.8 Strömförsörjning 73.2.9 Isolation 73.2.10 Ethernet 8

3.3 UNDERSÖKTA TEKNIKER 93.3.1 Allmänt 93.3.2 RS232 93.3.3 Power-over-Ethernet 93.3.4 Radio 9

3.4 SLUTSATS 9

4 USB 10

4.1 MÅLSÄTTNING MED USB 104.2 ALLMÄNT OM USB 11

4.2.1 Host Controller/Root Hub 114.2.2 Hub 114.2.3 Device 114.2.4 Compound device 12

4.3 TRANSFERTYPER 124.3.1 Isochronous Transfers 124.3.2 Bulk Transfers 124.3.3 Interrupt Transfers 134.3.4 Control Transfers 13

4.4 USB DRIVER, IRP, OCH FRAMES 144.5 USB 1.X 144.6 USB 2.0 154.7 STRÖMFÖRSÖRJNING 164.8 HUMAN INTERFACE DEVICE CLASS (HID) 17

4.8.1 Enumeration och descriptors 17

5 A/D-OMVANDLARE OCH ANTIVIKNINGSFILTER 19

6 PULSE WIDTH MODULATION 21

7 LÖSNING 22

3

Page 4: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1 KRETSKORTET 227.1.1 Kravspecifikation 1 227.1.2 Designförslag 1 237.1.3 Problem med kravspecifikation 1 och designförslag 1 267.1.4 Kravspecifikation 2 277.1.5 Designförslag 2 277.1.6 Problem med kravspecifikation 2 och designförslag 2 317.1.7 Kravspecifikation 3 327.1.8 Designförslag 3 32

7.2 PROGRAMVARORNA 427.2.1 Allmänt 427.2.2 Reports 427.2.3 Programvaran för mikrokontrollern 437.2.4 Programvaran för datorn 50

7.3 TESTNING 557.3.1 Verktyg 557.3.2 Överföringshastighet 557.3.3 Problem med referensspänningen 567.3.4 Mätonoggrannhet 567.3.5 Avvikelse från börvärde för PWM 57

8 RÄTTELSER 58

9 FÖRBÄTTRINGAR 58

10 SLUTSATSER 58

11 REFERENSFÖRTECKNING 59

12 Bilageförteckning 61

4

Page 5: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

1 Bakgrund

Examensarbetet ”USB Interface for Embedded Systems” (ref. 1) på Mälardalens högskola gick ut på att byta ut parallellportsinterfacet mot ett USB-interface på ett monitorsystem kallat MAMon. Detta examensarbete resulterade i en verifierad IP-kärna för USB avsedd att användas i en produkt (t.ex. MAMon), och kunskap om drivrutiner för USB-interfacet i en PC. Då det inte är ovanligt att ett examensarbete är grunden till ett annat undersöktes om inte även denna kunskap skulle kunna generera ett nytt examensarbete. Då datainsamlingskort behövdes i examinators växthus var detta en lämplig tillämpning. Syftet med detta examensarbete var därmed att konstruera och tillverka ett kretskort som kunde samla in data från olika givare och styra olika styrdon i ett växthus.

2 Problembeskrivning

Uppgiften var att bygga ett billigt I/O-kort som kunde mäta storheter från olika typer av givare och ge utsignaler till olika styrdon. Kortet skulle ha funktioner som A/D- & D/A-omvandling, digitala in- och utgångar. Det fanns ett färdigt IP-block skrivet i Verilog för USB-kommunikation. Detta block skulle utgöra grunden i koden för den FPGA som skulle vara huvudkrets på kortet. Första delen av examensarbetet bestod i att undersöka vilka lösningar som redan fanns på marknaden samt hur en lösning kunde implementeras mha en FPGA och ett minimalt antal kringkretsar. Andra delen bestod i att tillverka ett kretskort med en fräsmaskin och skapa ett roligt demonstrationsprogram som styrde kortet. Då kortet skulle användas för mätning av temperatur, fuktighet etc. i ett växthus behövdes endast låga prestanda på mät/styrdel och kommunikation mot dator.

5

Page 6: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

3 Marknadsundersökning

3.1 AllmäntFör att produkten skulle bli kommersiellt gångbar undersöktes vilka produkter som redan fanns på marknaden. Målet med undersökningen var att hitta en nisch med få konkurrerande produkter. De undersökta produkterna använder sig av tre olika gränssnitt mot datorn, USB, Ethernet och RS232. Tyngdpunkten i undersökningen ligger på USB-gränssnittet. En sammanfattning av de undersökta enheternas egenskaper återfinns i bilaga 1.

3.2 Undersökning av datainsamlingsenheter

3.2.1 KommunikationNär det gäller USB-enheterna tycks de flesta kommunicera med hastigheten Full Speed. Den enda enheten som kommunicerar med High Speed är Goldammers MultiChoice USB. Att inte fler utnyttjar hastighetsresurserna som USB 2.0 erbjuder är förvånande. Kanske enheterna är några år gamla och därför inte konstruerats för USB 2.0. Ett annat alternativ är att man inte anser att kretsen behöver högre överföringshastighet än vad Full Speed kan erbjuda med tanke på de låga frekvenser som givare oftast genererar.

3.2.2 Analoga ingångarDe undersökta enheterna har 2-16 ingångar med 8-24 bitars upplösning. Vissa modeller har FIFO-minne för att kunna mellanlagra informationen från A/D-omvandlaren innan den skickas vidare till datorn. Denna lösning gör att det går att sampla med en högre hastighet än vad det går att överföra informationen till datorn. Att samplingshastigheten överstiger överföringshastigheten gör att FIFO-minnet fylls, därefter måste mätningen avbrytas och innehållet i minnet föras över till datorn. För att möjliggöra exakt mätning av olika stora spänningar har flera modeller ett förstärkarsteg som anpassar signalen till den efterföljande A/D-omvandlarens mätområde. Denna förstärkare kallas för PGA (Programmable Gain Amplifier) i blockdiagrammen.

3.2.2.1 SamplingsfrekvensSamplingsfrekvensen är något som varierar väldigt mycket mellan enheterna. Det kan vara svårt att tyda siffrorna som fabrikanten angett. Ibland anges samplingsfrekvensen vid vilken enheten kan sampla samtliga kanaler, ibland anges samplingsfrekvensen vid vilken den kan sampla en kanal. Då hastigheten på USB är begränsande går det att använda en högre samplingsfrekvens om bara en kanal används för mätningen, då en kanal genererar en mindre mängd data än vad flera gör. Det verkar som om en vanlig sampelhastighet för modulerna är 100 kS/s. I manualen för Adlink-modulen anges 800 kbyte/s som den maximala USB hastigheten. Vid denna hastighet samplas fyra 12-bitars ingångar vid 100 kS/s.

6

Page 7: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

3.2.3 Analoga utgångarDe undersökta enheterna har 0-4 ingångar med 10-16 bitars upplösning. Även här används ett FIFO-minne i vissa av enheterna för att kunna generera en signal som är oberoende av dataöverföringen på USB. Med denna lösning laddas data ner i minnet varefter D/A-omvandlaren förses med data ur FIFO-minnet. Om FIFO-minnet konfigureras som en ringbuffert kan en kontinuerlig signal genereras. På flera modeller går det att ställa om området för utgångsspänningen. Uppdateringsfrekvensen varierar, från 20 S/s till 200kS/s, men även här är det svårt att utläsa ur databladen om det gäller för alla signaler samtidigt eller endast för en i taget.

3.2.4 Digitala I/OAlla modeller har digitala in- och utgångar. På vissa modeller går det att fritt konfigurera en I/O till antingen in- eller utgång, medan andra modeller har fasta in- och utgångar som inte går att förändra. Ett krav på utgångarna är att de ska kunna driva ett relä utan yttre förstärkning.

3.2.5 TimersEtt flertal av modellerna erbjuder timeringångar. Ingångarna kan användas för frekvensmätningar, duty-cycle-mätningar etc.

3.2.6 ExtrafunktionerVissa modeller har DSP för att kunna erbjuda avancerade beräkningar direkt på kortet. DSP:n kan även användas för att förbättra tidssynkroniseringen. Labjack har en wachdog-funktion som träder in och sätter utgångarna i definierade lägen om kommunikationen med datorn bryts.

3.2.7 SynkroniseringStart of Frame (SOF) är den enda synkroniseringssignal som USB-interfacet sänder, och denna signal sänds med 1 ms mellanrum. Detta gör att tidsstämplingen av signaler blir mycket inexakt. Detta gäller särskilt mellan signaler som är anslutna till olika USB-enheter. Firebyte har löst detta problem med ett system de kallar USB-inSync. Med hjälp av USB-inSync kan signaler mätas med så liten upplösning som 10 ns. Med detta system kan upp till 100 USB-enheter stackas.

3.2.8 StrömförsörjningDe flesta USB-enheterna kan strömförsörjas via USB. För vissa modeller har fabrikanten dock valt att ha en egen strömförsörjning för att kunna använda enheten även om datorn inte kan försörja enheten med 500 mA, eller om enheten ska köras utan kontakt med en dator.

3.2.9 IsolationFör att undvika att jordströmmar uppkommer i USB-kabeln har vissa modeller isolation mellan USB-gränssnittet och övriga anslutningar. Isolationen åstadkoms med optokopplare och galvanisk isolation av strömförsörjningen. I figur 3.1 visas blockdiagrammet för datainsamlingsenheten Personal Daq Model 56 från IOtech. Figuren visar ett sätt att åstadkomma isolation. På denna modell är kontrollogiken uppdelad på två kretsar som är åtskilda med optokopplare; en mikroprocessor och en kontrollogikkrets med en isolerad dataväg mellan.

7

Page 8: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Figur 3.1 Blockdiagram för datainsamlingsenheten Personal Daq Model 56 från IOtech.

3.2.10 EthernetModellerna med Ethernet-anslutning innehåller även en liten webbserver. Detta gör att man kan ansluta enheten direkt till nätverkskontakten på en dator och med hjälp av datorns webbläsare se värdena som enheten mäter. Det går även att ge enheterna en ip-adress och ansluta dem till Internet, därmed kan mätvärdena läsas av var man än befinner sig. Enheterna har också funktioner som FTP och e-mail. Tyvärr är inte samplingsfrekvenserna för dessa enheter vidare imponerande.

8

Page 9: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

3.3 Undersökta tekniker

3.3.1 Allmänt De vanligaste sätten att ansluta I/O-enheter till en dator är RS232, PCI, GPIB, PXI, Ethernet, PCMCIA, Firewire och USB. Företaget Fiberbyte har gjort en jämförelse mellan dessa plattformar (bilaga 2). Att Fiberbyte förordar sin egen lösning som den bästa är inte något som överraskar, men jämförelsen säger ändå en del om de olika plattformarnas lämplighet för datainsamlingsenheter.

3.3.2 RS232RS232-gränssnittet är mycket gammalt och håller på att ersättas helt av USB. Detta gränssnitt bör inte användas i en nykonstruktion då allt färre nya datorer har denna port. Att gränssnittet fortfarande är väldigt vanligt för datainsamlingsenheter råder det inget tvivel om.

3.3.3 Power-over-EthernetEn fördel med att använda sig av USB är att USB strömförsörjer kretsen. Nu finns det även speciella Ethernet-switchar som möjliggör strömförsörjning via Ethernet. Orsaken till att dessa switchar kommer ut på marknaden just nu är att tekniken för IP-telefoni börjar mogna. Strömförsörjningen sker genom de två paren i kabeln som inte används för dataöverföring. Switcharna ger 15.4 W per port vid 48 V. Ännu finns endast ett fåtal switchar som erbjuder Power-over-Ethernet, en av dessa är 3Com SuperStack 3 Switch 4400 PWR. Denna switch kostar 12 495 kr (exkl. moms, ref. 2). Priset kan jämföras med samma switch utan power-funktionen, 3Com SuperStack 3 Switch 4400 24-port som kostar 7995 kr (exkl. moms, ref. 2). Om alla portarna används blir kostnaden för strömförsörjningen 188 kr (exkl. moms) per port.

3.3.4 RadioDet tycks inte finnas många enheter som använder sig av radio. En anledning till detta kan vara att en I/O-enhet kräver rätt stor bandbredd mot datorn, vilket förhindrar lösningar med enkla, billiga radiointerface. En möjlighet kan vara att använda Bluetooth. Bluetooth har en överföringshastighet på upp till 723.2 kb/s och en räckvidd på 10 eller 100 meter beroende på version.

3.4 SlutsatsI det insamlade materialet kan tre nischer med få konkurrerande produkter identifieras:

Mycket billiga/enkla USB-insamlingsenheter med ett pris till slutkund under 960 kr + moms.

Enheter med inbyggd webbserver som strömförsörjs via Ethernet med hjälp av Power-over-Ethernet.

Enheter som är anslutna via radio.

Den sista kategorin kan lätt åstadkommas genom att en USB eller Ethernet-enhet kopplas till en gateway som jobbar med något slags radiointerface.

9

Page 10: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

4 USB

4.1 Målsättning med USBMålsättningen när USB utvecklades var att skapa ett gränssnitt som gjorde anslutning av externa enheter till datorn enklare och billigare än förut. Några av målen var (ref. 3):

en kontakttyp för alla sorts kringutrustningar. möjlighet att ansluta flera kringutrustningar till samma kontakt. en metod för att undvika systemresurskonflikter. anslutning av kringutrustning utan att datorn behöver stängas av. automatisk avkänning och konfiguration av kringutrustning. att hålla nere kostnaderna för både system och kringutrustning. att öka prestanda. stöd för anslutning av ny kringutrustning. låg strömförbrukning.

Anledningen till att USB har blivit så populärt och finns på varje dator idag är att standarden uppfyller dessa mål. Med hjälp av USB-hubbar kan upp till 127 enheter anslutas till en USB-kontakt på en dator. USB-kringutrustning har inga resurskrav när det gäller I/O-adressområde, IRQ-adresser eller DMA-kanaler. Kringutrustning kan anslutas utan att datorn behöver stängas av. Datorn känner direkt av om någon utrustning ansluts och installerar automatiskt rätt drivrutin för kringutrustningen.USB bygger på master/slave-principen, därmed har kretsarna för kringutrustningar kunnat göras så enkla som möjligt, allt för att pressa kostnaden. Kretsar för USB Host Controller som sitter i datorer blir också de billiga pga. de stora tillverkningsvolymerna på datorer. USB har tre olika överföringshastigheter low-speed (LS 1,5 Mb/s), full-speed (FS 12 Mb/s), och high-speed (HS 480 Mb/s). Olika tillämpningar använder sig av olika överföringshastigheter. Låg strömförbrukning uppnås bland annat genom att enheter sätts i suspend state automatiskt om de inte tar emot busstrafik under 3 ms. I suspend state får inte enheten förbruka mer än 500 µA ström från USB.

10

Page 11: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

4.2 Allmänt om USBEtt USB-system kan innehålla några olika enheter:

Host Controller/Root Hub Hub Device Compound Device

4.2.1 Host Controller/Root HubHost Controller/Root Hub är de delar som sitter i datorn.

4.2.1.1 Host ControllerDenna del kontrollerar all trafik på USB. Ingen datatrafik sker på bussen utan att den är initierad av Host Controller. Drivrutinen för Host Controller skapar en länkad lista av datastrukturer i minnet som definierar de transaktioner som ska utföras under en given tidsram. Dessa datastrukturer, kallade transfer descriptors, innehåller information som:

USB-enhetens adress. typ av transaktion. transaktionens riktning. adressen för enhetens drivrutins minnesområde.

4.2.1.2 Root HubTransaktioner från Host Controller passerar Root Hub innan de skickas ut på USB. Root Hub har följande uppgifter:

kontrollera strömförsörjningen till dess USB-portar. koppla till och från portar. känna av om enheter är anslutna till portarna. rapportera portstatus till Host Controller.

4.2.2 HubEn hub är en enhet som har en eller flera portar för anslutning av device eller andra hubbar. Det finns två typer av hubbar, de som är strömförsörjer sig själva och alla anslutna enheter från USB (bus-powered hubs), och de som har egen strömförsörjning (self-powered hubs). Bus-powered hubs är begränsade av att de är strömförsörjda via USB och kan därför maximalt ha 4 portar.

4.2.3 DeviceDevice är själva kringutrustningen som mus, scanner, skrivare etc. Enheterna innehåller ett antal beskrivningar (descriptors) som datorn bland annat använder för att ladda rätt drivrutin till enheten. Varje device har ett antal endponits som är ett adresserbart register som tar hand om dataöverföringar antingen i riktning mot datorn eller från datorn. Varje endpoint får en unik identifierare som identifierar den, kallat endpoint number. En endpoint har ett antal egenskaper:

hur ofta den behöver tillgång till bussen. krav på bandbredd. endpoint nummer. felhanteringskrav. maximal paketstorlek som endpointen kan sända eller ta emot. endpointens transfertyp (se kapitel 4.3)

11

Page 12: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

vilken riktning som överföringen mellan endpointen och datorn sker.I varje device är endpoint nummer 0 reserverad för konfiguration av device. Alla övriga endpoint måste konfigureras innan de får någon funktion.

4.2.4 Compound deviceEn compound device är en enhet som innehåller både en hub och en device i samma hölje.

4.3 TransfertyperEn drivrutin har en uppsättning endpoints som den kommunicerar med. Varje endpoint har sina specifika överföringsegenskaper. Om data tex ska skickas till en högtalare krävs att dataöverföringen är jämn för att undvika att ljudet avbryts. Andra tillämpningar har andra krav på överföringen. De olika transfertyperna (även kallade överföringstyper i fortsättningen) i USB är:

Isochronous transfers Bulk transfers Interrupt transfers Control transfers

4.3.1 Isochronous TransfersIsochronous transfers används huvudsakligen av realtidsapplikationer som behöver en synkron anslutning till datorn. Audioapplikationer tex behöver överföra information synkront för att undvika distorsion i ljudet. Isochronous transfers används när det är viktigt att data överförs i en jämn ström och där jämnheten i överföringen är viktigare än verifiering av överförd data. Av denna anledning finns det inte någon garanti för att korrekt data överförs med isochronous transfer.

4.3.2 Bulk TransfersBulk transfers används av device som inte har något speciellt krav på överföringshastighet. Skrivare använder denna överföringstyp. Om det tar ett tag innan en skrivare får data påverkar detta inte skrivarens funktion på annat sätt än att användaren får vänta ett tag innan utskriften blir färdig. Bulk transfers är den överföringstyp som har lägst prioritet på bussen. Detta innebär att bulk transfers kan utnyttja den bandbredd som finns över när de andra överföringstyperna har fått den bandbredd de behöver. Därmed kommer bulk transfers vara mycket snabba på en buss med liten övrig trafik och mycket långsamma på en buss med mycket annan trafik. Verifiering och felkorrigering används för överförd data.

12

Page 13: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

4.3.3 Interrupt TransfersInterrupt transfers används för att polla devices för att kontrollera om de har data som behöver sändas. En mus är ett exempel på en device som använder sig av interrupt transfer. Om inga data behöver överföras returnerar device ”no acknowledge”. Denna överföringstyp har verifiering av överförda data och garanterad överföring av data varje pollningsintervall. I figur 4.1 beskrivs pollningsintervall och paketstorlek för olika devices.

Device överföringshastighet

Kortaste pollningsintervall

Längsta pollningsintervall

Paketstorlek (bytes)

LS 10ms 255ms 8 FS 1ms 255ms 64HS 125us 4,096s 1024

Figur 4.2 Pollintervall och paketstorlek för interrupt transfer.

4.3.4 Control TransfersControl transfer används för att konfigurera en device och för att kontrollera hur en device fungerar. En device måste alltid ha endpoint 0 som endast används för konfiguration och styrning av device tillstånd. När en device ansluts till USB läses descriptors av med denna överföringstyp. Det finns även många kommandon till hubbar som överförs med control transfer. Specifika kommandon för en viss klass av device förstås endast av device och dess drivrutin. Control transfers består av två eller eventuellt tre olika delar:

Setup stage - control transfers börjar alltid med setup stage som beskriver vilken förfrågan som görs till device

Data stage - denna del används endast för förfrågningar som behöver den. Status stage - denna del används alltid för att rapportera om förfrågan lyckades eller

misslyckades.

13

Page 14: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

1.x Host Controller(inkl. Root Hub)

PCI

LS device

FS device

FS device Hub

LS device

4.4 USB Driver, IRP, och Frames När en drivrutin vill överföra data till eller från en given endpoint, skickar den en förfrågan till USB driver (en speciell drivrutin för USB) som initierar överföringen. Förfrågan kallas för en I/O Request Package (IRP). Om det är en stor mängd data som ska överföras delas den upp i flera delar som överförs en i taget. Detta för att även överföringar från andra enheter på bussen ska få dela på bandbredden. Överföringen på USB är indelad i regelbundna intervall på vardera 1 ms. Dessa intervall kallas för frames. Under ett sådant intervall tilldelas varje device en del av tiden. Vissa device behöver inte ha tillgång till bussen så ofta och får därför tex. bara tid var 8e frame tilldelad. I USB 2.0 delas varje frame upp i microframes på vardera 125 us. Om en device ansluts till bussen som behöver mer bandbredd än vad som finns tillgängligt kommer den inte att bli konfigurerad. Ett meddelande kommer då att visas för användaren om att enheten inte gick att ansluta till bussen.

4.5 USB 1.xDet finns för närvarande 3 versioner av USB-standarden 1.0, 1.1, och 2.0. USB 1.0 och 1.1 stödjer hastigheterna ”low-speed” (LS 1.5 Mb/s) och ”full-speed” (FS 12 Mb/s). Host controller väljer LS eller HS beroende på vilken device den för tillfället kommunicerar med. Ett system baserat på 1.x kan se ut som i figur 4.2.

Figur 4.2 Ett USB 1.x system.

I systemet i figur 4.2 förhindras FS-transaktioner att nå LS-devices, detta då de inte kan tolka FS-transaktioner. LS-transaktionerna når däremot alla devices. Två devices som bygger på 1.x kan aldrig kommunicera direkt med varandra i USB.

14

Page 15: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

4.6 USB 2.0System som är baserade på USB 2.0 stödjer hastigheterna ”low-speed” (LS 1.5 Mb/s), ”full-speed” (FS 12 Mb/s) och ”high-speed” (HS 480 Mb/s). För att inte kommunikation med LS- och FS-kringutrustning ska sänka kommunikationshastigheten på bussen är en 2.0-hub mer intelligent än vad en 1.x-hub är. 2.0-hubben packar informationen så att trafiken mot datorn alltid sker med HS oavsett vilken hastighet den aktuella enheten kommunicerar med. För att en HS-enhet ska kunna kommunicera med HS krävs att den är ansluten till en 2.0 Host Controller eller en 2.0-hub. Figur 4.3 visar ett USB 2.0-system.

Figur 4.3 Ett USB 2.0-system.

15

2.0 Host Controller(inkl. Root Hub)

PCI

LS device

FS device

FS device1.x Hub

LS device

LS device

FS device

2.0 Hub HS device

HS device

Page 16: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

4.7 StrömförsörjningEnheter anslutna till USB kan strömförsörjas från hubben eller datorn som de är anslutna till. USB förser enheterna med den nominella spänningen 5 V. När enheten ansluts till USB får den maximalt förbruka 100 mA. Enheten identifierar sedan sig för USB Host Controller och talar samtidigt om hur mycket ström de förbrukar. En lågeffektsenhet får förbruka maximalt 100 mA medan en högeffektsenhet får förbruka 500 mA. För att spara ström har USB ett specellt tillstånd, suspend state, där enheterna får förbruka maximalt 500 µA. En enhet ska automatiskt anta detta state om den inte tar emot datatrafik på USB under 3 ms. Figur 4.4 hämtad ur USB-specifikationen (ref. 4), beskriver hur spänningsfallet på bussen blir i värsta fallet. Vid device kan spänningen sjunka så lågt som till

4,350 V.Figur 4.4 ”Worst case” spänningsfallsberäkning.

I figuren kan man även utläsa att vid transienter kan spänningsmatningen från huben sjunka till 4,070 V. Om de spänningsfall för kablaget som anges i figuren används får man då en spänning vid device på endast 4,020 V. I specifikationen anges den maximala spänningen på porten från en self-powered hub eller en dator till 5,25 V. Spänningsregulatorer i device brukar ofta dimensioneras för att klara en spänning som varierar mellan 4,0 V och 5,5 V.

16

Page 17: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

4.8 Human Interface Device Class (HID)I USB-standarden finns flera olika s.k. Device Classes, dessa är avsedda att underlätta utformningen av device drivers. En sådan klass är Human Interface Device Class (HID). Denna klass är som namnet anger avsedd att användas av devices som kommunicerar med användaren. Några typiska device som använder denna klass är möss, tangentbord och joysticks. Då dessa enheter är mycket vanliga finns det device drivers för HID devices inkluderade i Windows.

4.8.1 Enumeration och descriptorsMjukvaran i datorn ska detektera och konfigurera alla device som är anslutna till datorn. Processen att identifiera och konfigurera en USB device brukar kallas för en enumeration. Två viktiga delar av enumerationen är att device får en specifik adress och att device descriptors skickas från device till datorn. Device descriptors är en samling tabeller som innehåller information om devicens funktion och olika konfigureringar. En device har alltid följande descriptors:

Device Configuration Interface Endpoint String

En HID device har dessutom de två descriptors HID och Report.

En device kan ha en eller flera olika konfigurationer. Varje konfiguration har sedan en eller flera interface som består av en eller flera enpoints. Ett interface är en samling enpoints som en viss class driver arbetar med.

4.8.1.1 Device descriptorBeskriver hur många olika konfigurationer som device har och innehåller information om tillverkare av device. Vilken device class som device tillhör anges också i denna tabell.

4.8.1.2 Configuration descriptorDenna descriptor innehåller information om en specifik konfiguration. Om device kan konfigureras på flera olika sätt finns flera configuration descriptors. Ett värde i denna descriptor specificerar hur många interface konfigurationen har.

4.8.1.3 Interface descriptorDenna descriptor beskriver ett interface i en konfiguration. Descriptorn innehåller information om hur många enpoints som tillhör interfacet, endpointen med adress 0 räknas inte med i detta nummer. Annan information är class och subclass som används i datorn för att identifiera rätt drivrutiner för interfacet.

17

Page 18: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

4.8.1.4 Endpoint descriptorDenna descriptor definierar de faktiska registren som är implementerade i en viss device. Då det ofta finns flera enpoint i ett interface är finns det ofta flera descriptorer också, det behövs en per endpoint. Data i dessa descriptors innehåller information om sådant som:

transfertyp som används för denna endpoint överföringsriktningen (IN eller OUT) hur stor bandbredd som behövs pollningsintervall

4.8.1.5 String descriptorString descriptors är inte nödvändiga, men ofta använda för att i klartext beskriva device eller dess konfigurering.

4.8.1.6 HID descriptorHuvudsyftet med denna descriptor är att identifiera andra descriptors som behövs för HID-klassen. Den anger också vilken HID specifikation som device och dess descriptors är anpassade för.

4.8.1.7 Report descriptorDenna descriptor definierar formatet på data som sänds från och till device och hur dessa data är avsett att användas. Om device tex. är en mus är det data som innehåller information om musrörelser och knapptryckningar som överförs. Report descriptor måste kunna beskriva väldigt många olika typer av data då det finns oändligt många olika tänkbara applikationer.

18

Page 19: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

5 A/D-omvandlare och antivikningsfilter

Samplingsteoremet säger att: ”All information i ursprungssignalen finns med i den med sampel beskrivna signalen, om samplingsfrekvensen är större än dubbla högsta frekvensen i ursprungssignalen” (ref. 5). I fallet med en A/D-omvandlare är ursprungssignalen den analoga signalen och den med sampel beskrivna signalen den digitala. För att garantera att samplingsfrekvensen alltid är större än dubbla högsta frekvensen i den analoga signalen används ofta ett lågpassfilter som filtrerar bort frekvenser som inte uppfyller detta villkor (figur 5.1).Lågpassfiltret kallas ofta för antivikningsfilter då det förhindrar att fenomenet vikning uppstår vid samplingen. Vikning innebär att signaler med högre frekvens än halva samplingsfrekvensen kommer att återges inkorrekt efter samplingen. Ett annat vanligt namn på filtret är anti-aliasfilter.

Figur 5.1 Inkoppling av antivikningsfiltret.

För att undvika vikningsfenomenet måste lågpassfiltret uppfylla vissa krav (ref. 6). Kraven på filtret är kopplade till hur hög upplösning som A/D-omvandlaren har. Filtret ska vara konstruerat så att dämpningen i spärrbandet är minst det ideala SNR-värde A/D-omvandlaren har. Uttryckt som formel:

(ekv. 5.1)

Det ideala SNR-värdet för A/D-omvandlaren beror på hur många bitars upplösning den har (ref. 7) och uttrycks som:

(ekv. 5.2)

där n är antal bitar. För en 8-bitars A/D-omvandlare blir det ideala SNR 50 dB.

19

Lågpassfilter (Antivikningsfilter)

A/D-omvandlare

Analog signal

Digital signal

Page 20: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Kraven på ett antivikningsfilter för en 8-bitars A/D-omvandlare sammanfattas i figur 5.2.

Figur 5.2 Krav på ett antivikningsfilter för en 8-bitars A/D-omvandlare.

Ett lågpassfilters gränsfrekvens fc kan beräknas med följande formel:

(ekv. 5.3)

20

fc fs/2

0dB

-50dB

Page 21: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

6 Pulse Width Modulation

Då analoga spänningar är svåra att överföra längre sträckor utan att de påverkas av brus och spänningsfall har mikrokontrollers ofta en PWM-modul istället för en D/A-omvandlare. PWM-modulen är inte analog alls utan arbetar bara med digitala signalnivåer. PWM-signalen har oftast en fast frekvens, sedan ändras signalens duty-cycle för att representera den analoga signalen. Desto högre värde på duty-cycle som signalen har desto högre effektivvärde har den motsvarande analoga signalen. Ett enkelt sätt att omvandla PWM-signalen till en analog signal är att filtrera PWM-signalen i ett lågpassfilter (figur 6.1). Utsignalen från filtret blir en analog likspänning (figur 6.2).

Figur 6.1 Inkoppling av lågpassfiltret för PWM-signalen.

Figur 6.2 En PWM-signal och den motsvarande filtrerade utsignalen.

Pulsens bredd ta är proportionellt mot det digitala värdet. Det analoga värdet blir i sin tur proportionellt mot pulsens bredd. Pulsens bredd kan beräknas med:

(ekv. 6.1)

där x är det digitala värdet, n är antalet bitar och T är periodtiden. Om spänningen för en logisk etta är 5 V kan den analoga spänningen beräknas med:

(ekv. 6.2)

21

Mikrokontroller

PWM-modul

R

C

V

5V

V

T

ta

t

U

Page 22: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7 Lösning

Marknadsundersökningen resulterade i tre olika alternativ (se kap 3.4). Det alternativ som valdes var att utveckla en mycket billig USB-insamlingsenhet. Hade projektet haft större resurser hade alternativet med webbserver och Power-over-Ethernet varit mycket intressant att utveckla.

7.1 Kretskortet

7.1.1 Kravspecifikation 1Kortet ska minst ha följande I/Os:

4 analoga ingångar med 8 bitars upplösning och mätområde 0-5 V. 2 analoga utgångar med 8 bitars upplösning och utspänning 0-5 V. 8 digitala ingångar 5 V CMOS-logik. 8 digitala utgångar 5 V CMOS-logik.

Överföringshastigheten från kortet ska vara FS och överföringstypen interrupt transfer, då denna är den enda överföringstyp med verifiering av överfört data och garanti för att data kommer fram. Med en paketstorlek på 64 byte och ett pollningsintervall på 1ms fås en maximal överföringshastighet på 64 kbyte/s eller 512 kbit/s med denna överföringstyp.

Övriga krav:

isolation mellan USB och mätkretsarna.

kortet ska vara billigt att tillverka.

en FPGA med tillhörande USB-tranceiver ska kommunicera med USB.

22

Page 23: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1.2 Designförslag 1Det första förslaget var designat för att ha in- och utgångarna isolerade från USB och därmed datorns nätdel. Detta medförde att kretskortet blev relativt komplext (se blockschema i figur 7.1). För att inte alltför många ledare skulle behöva isoleras användes den seriella 2-trådsbussen I2C för överföring av data mellan mätdel och FPGA.

Figur 7.1 Blockschema designförslag 1.

7.1.2.1 Strömförsörjning FPGA-delenI detta förslag har samma USB-tranceiver använts som sitter på labbkortet som användes i examensarbetet ”USB Interface for Embedded Systems” (ref. 1). Denna krets är USB1T11A från Fairchild Semiconductor (ref. 8). Kretsen kräver en matningsspänning mellan 3,0 V och3,6 V, den är därmed inte anpassad för att matas direkt från USB. Förslaget innehåller därför en spänningsregulator för att förse FPGA-delen med 3,3 V.

7.1.2.2 Strömförsörjning för mätdelen För att förse mätdelen med en matningsspänning som är isolerad från USB-gränssnittet och dessutom mycket lågbrusig blev strömförsörjningen till denna del mycket komplex. Anledningen till att bruset på matningsspänningen måste vara mycket lågt är att annars kommer bruset att påverka de minst signifikanta bitarna i A/D-omvandlaren (ref. 9).

7.1.2.2.1 Den switchade flybackregulatornFör att isolera mätdelens matningsspänning från matningsspänningen från USB krävdes en switchad spänningsregulator. Om flyback-topologin används fås isolation genom den transformator som används i denna topologi. Ett problem med topologin är att den kräver en återkoppling som även den måste isoleras. Traditionellt har en optokopplare används i återkopplingen. Tyvärr finns det vissa problem med att använda optokopplare, de tar effekt från utgången, och de komponenter som tillkommer kostar pengar och tar plats på kortet. Andra problem kan vara problem med icke-linjäritet, variation mellan olika exemplar och

23

I2C

Lin jär spännings-regulatorU

SB-kontakt

Switchadflyback-regulator

LDO

I2CI/O

I2CADC/DAC

Mät

kont

akt

USB-tranceiver

I2C

Signal

Strömförsörjning

Isolations-gränssnitt

ROM

Isolation

FPGA

Page 24: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

åldrande (ref. 10). Om regulatorn LT1425 från Linear Technology används kan dessa fallgropar undvikas då denna regulator inte behöver någon återkoppling. Den mäter istället pulsformen på transformatorns primärsida för att få information om spänningen på den isolerade sekundärsidan. Man kan räkna med att inspänningen från USB kan variera mellan 4 och 5,5 V och med LDO på utgången bör utspänningen sättas till minst 5,5 V för att LDOn ska kunna leverera en stabil 5 V-spänning på utgången. Regulatorn har en pinne med vilken man kan stänga av den (shutdown). När regulatorn är avstängd förbrukar den maximalt 40 µA.

7.1.2.2.2 LDO (Low Drop-out regulator) Ett problem med switchade nätaggregat är att deras utspänning innehåller mycket brus. Tyvärr var det svårt att utläsa ur switchregulatorns datablad (ref. 10) hur mycket brus den genererar. Om man läser databladet för mätkretsen (ref. 11) kan man se i diagrammet TPC22 att PSRR (undertryckning av brus på spänningsmatningen) är störst för låga frekvenser och minskar vid högre frekvenser. Den använda switchregulatorns arbetar vid frekvensen 285 kHz. Extrapoleras kurvan i TPC22 visar det sig att undertryckningen inte alls är bra vid denna frekvens. För att få mindre brus på matningsspänningen har en LDO placerats på switchregulatorns utgång. En LDO är en linjär regulator som endast behöver en liten spänningsskillnad mellan regulatorns ingång och utgång. National Semiconductor rekommenderar denna typ av linjär regulator för reglering av oreglerade utgångar i en flybacktopologi (ref. 12). En lämplig regulator kan vara LP2980 från National Semiconductor (ref. 13).

7.1.2.3 I2C ADC/DACDetta är kretsen som gör analoga mätningar och analoga utspänningar. Kretsen ADT7518 från Analog Devices (ref. 11) innehåller en 10-bitars 4-kanalig A/D-omvandlare, fyra 8-bitars D/A-omvandlare, och en 10-bitars temperatursensor. Den kan kommunicera med I2C®, SPI®, QSPI™, MICROWIRE™ och DSP-kompatibel 4-tråds seriellt interface. Kretsen stödjer I2C fast-mode vilket betyder att den kommunicerar med upp till 400 kbit/s på I2C-bussen.

7.1.2.4 I2C I/OFör att förse kortet med I/O kan t.ex. kretsen PCA9555 från Philips Semiconductors användas (ref. 14). Kretsen har 16 konfigurerbara I/O som har no-glitch när spänningen slås på. Polariteten på I/O kan vändas med ett speciellt register i kretsen. Kretsen klarar kommunikation med upp till 400 kbit/s.

7.1.2.5 FPGAFPGA laddas med koden i ROM när den spänningssätts. FPGA kommunicerar med datorn via USB-transceivern och med mätkretsarna via I2C.

7.1.2.6 USB-tranceivernFör att omvandla de differentiella signalerna på USB till logiksignaler och omvänt används kretsen USB1T11A från Fairchild Semiconductor (ref. 8).

24

Page 25: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1.2.7 IsolationIsolationen var tillsammans med strömförsörjningen för mätdelen de svåraste delarna att konstruera. För att få ned kostnaden och komplexiteten för isolationen valdes kretsar i mätdelen som kunde kommunicera med en seriell buss. Två sådana bussar är I2C och SPI. I2C behöver två trådar och SPI behöver 3+N stycken där N är antalet slavkretsar på bussen. Vilken av bussarna som lämpar sig bäst för denna applikation blev inte riktigt utrett, men I2C valdes för att hålla ner antalet trådar till ett minimum. Isolationsblocket i figur 7.1 innehåller i själva verket flera kretsar. Enligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96 I2C-buffer (ref. 16) och två 6N137 opptokopplare (ref. 17) enligt figur 7.2. Bussfrekvensen 100 kHz ger en maximal teoretisk överföringshastighet på 100 kbit/s. Denna hastighet är väl låg då mätkretsen stödjer kommunikation upp till 400 kbit/s och överföringshastigheten på USB är maximalt 512 kbit/s med vald överföringstyp.

Figur 7.2 Opto-isolation av I2C-noder med 6N137.

För att undvika optokopplarna i Philips lösning borde det vara möjligt att använda två P82B96 I2C-buffrar från Philips Semiconductors och en isolatorkrets ADuM1402BRW från Analog Devices (ref. 18). Dessa kretsar kopplas enligt figur 7.3.

Figur 7.3 Alternativ lösning för isolationsblocket.

Kretsen från ADuM1402BRW bygger på Analog Devices iCoupler-teknik, som använder sig av transformator-teknik på chipsnivå. Fördelen med denna teknik är enligt Analog Devices högre överföringshastighet, bättre tidsnoggranhet, och undertryckning av transienta

25

I2C I2CCMOS CMOSP82B96 ADuM1402BRW P82B96

Page 26: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

commonmode-störningar. ADuM1402BRW är specificerad för överföringshastigheter på maximalt 10 MHz och P82B96 för hastigheter upp till 400 kHz, så denna konstruktion borde kunna arbeta med en bussfrekvens på 400 kHz.

7.1.3 Problem med kravspecifikation 1 och designförslag 1Vid närmare undersökning av olika FPGA-kretsars strömförbrukning visade det sig att det var omöjligt att hitta en krets som i aktivt tillstånd förbrukade mindre än 500 µA. Enligt USB-specifikationen får hela kortet maximalt förbruka 500 µA när det är i tillståndet suspend. För att kortet ska kunna startas upp med resume-signalering måste FPGA hela tiden vara aktiv. Då det inte fanns någon FPGA som var tillräckligt strömsnål på marknaden konstaterades att FPGA-kretsar endast kunde användas i self-powered devices. Eftersom detta kort skulle vara strömförsörjt från USB måste alla lösningar som bygger på FPGA–kretsar förkastas. Därmed blev designförslag 1 också förkastat och även kravspecifikation 1 måste revideras.

På grund av isolationen mellan mätdelen och FPGA-delen i designförslag 1 blev konstruktionen mycket komplex. Den komplexa konstruktionen resulterade i att designförslaget inte gav ett kort som var billigt att tillverka. Det bestämdes därför att kravet på isolation skulle strykas ur kravspecifikation 2.

26

Page 27: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1.4 Kravspecifikation 2Kortet ska minst ha följande I/Os:

4 analoga ingångar med 8 bitars upplösning och mätområde 0-5 V. 2 analoga utgångar med 8 bitars upplösning och utspänning 0-5 V. 8 digitala ingångar 5 V CMOS-logik. 8 digitala utgångar 5 V CMOS-logik.

Överföringshastigheten från kortet ska vara FS och överföringstypen interrupt transfer, då denna är den enda överföringstyp med verifiering av överfört data och garanti för att data kommer fram. Med en paketstorlek på 64 byte och ett pollningsintervall på 1ms fås en maximal överföringshastighet på 64 kbyte/s eller 512 kbit/s med denna överföringstyp.

Övriga krav: kortet ska vara billigt att tillverka. en krets som klarar att arbeta i suspend state ska användas för kommunikationen med

USB.

7.1.5 Designförslag 2För att klara det tuffa strömförbrukningskravet i USB-specifikationen behövdes en kontrollkrets speciellt konstruerad för USB. En s.k. USB-mikrokontroller innehåller oftast en mikroprocessor, en USB-transceiver, en spänningsregulator, och digitala in- och utgångar. I vissa mikrokontrollers finns även A/D-omvandlare och PWM. Vid undersökning av marknaden hittades tre olika USB-mikrokontrollers som innehöll alla dessa funktioner:

PIC16C745 (ref. 19) AT43USB351M (ref. 20) / AT43USB355 (ref. 21) ST72F651 (ref. 22)

7.1.5.1 PIC16C745Denna krets är en variant av den kända PIC-familjen från Microchip. Kretsen är lätt att få tag på och innehåller en 8-bitars A/D-omvandlare med 5 ingångar och två separata 10-bitars PWM-utgångar. Kretsen är kompatibel med USB 1.1, men klarar inte att kommunicera med FS, vilket gör att den inte uppfyllde kravspecifikation 2 och därmed inte var aktuell för konstruktionen.

7.1.5.2 AT43USB351M / AT43USB355AT43USB351M bygger på Atmels 8-bitars AVR-kärna och har en 12-kanalig 10-bitars A/D-omvandlare och två 10-bitars PWM-enheter. Referensspänningen till A/D-omvanlaren tas från en intern 3.3 V-regulator. Kretsen kan kommunicera med både LS och FS. Denna krets verkade till en början vara den ultimata tills Atmel informerade om att den minsta beställningsvolymen var 100 000 kretsar då programminnet i kretsen är ett ROM. Atmel föreslog istället kretsen AT43USB355 som har ett SRAM som laddas från ett externt seriellt EEPROM. Denna krets klarade dock inte kravet på en maximal strömförbrukning på 500 µA i suspend state och lämpar sig därmed bara i device som är self-powered och inte i denna konstruktion.

27

Page 28: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1.5.3 ST72F651Denna krets innehåller all funktionalitet för att ansluta olika typer av FLASH-kort till USB. Den innehåller även en 8-kanalig 8-bitars A/D-omvandlare och har två 10-bitars PWM-utgångar. Kretsen tillhör 8-bitars ST7-familjen från STMicroelectronics. Programminnet är ett 32 kB Flash-minne. Kretsen är kompatibel med USB 2.0, och kommunicerar med FS.

Kretsen ST72F651AR6T1 valdes för konstruktionen och den har följande funktioner: Minnen:

o 32 kB Flasho In-Application Programming (IAP) och In-Circuit Programming (ICP) o 5 kB RAM

Klock, reset och spänningsförsörjningshanteringo PLL som genererar 48 kHz från en 12 kHz-kristallo Reset vid för låg matningsspänningo Programmerbar intern spänningsregulator för minneskort (2,8 till 3,5 V) som

matar I/O-anslutningarna på ett flashkort Flashkortets spänningsanslutning med upp till 50 mA

47 programmerbara I/O-signalero 15 högströms-I/Os (8 mA @0.6 V / 20 mA @1.3 V)o 5 äkta open-drain utgångaro 24 ingångar programmerbara som interrupt-ingångar.

USB-interfaceo Med DMA för FS bulk tillämpningaro 3,3 V USB regulator och transceivrar med mjukvaru-lågeffektsläge.o 5 endpoints:

1 control endpoint 2 IN endpoints som stödjer interrupt- och bulk-överföringar. 2 UT endpoints som stödjer interrupt och bulk-överföringar.

o Hårdvarukonvertering mellan bulk-paket och 512-bitarsblock. Gränssnitt för lagring av stora volymer data

o DTC (Data Transfer Coprocessor): Universellt gränssnitt för seriell/parallell-kommunikation med plug-ins för de vanligaste flashkorten.

2 Timerso Konfigurerbar watchdog för bättre tillförlitlighet på systemet.o 16-bitarstimer med 2 jämförelseutgångar.

2 Kommunikationsinterfaceo SPIo I2C med överföringsfrekvens upp till 400 kHz.

D/A- och A/D-omvandlareo PWM/BRM-generator (med två 10-bitars PWM/BRM-utgång)o 8-bitars A/D-omvandlare med 8 kanaler.

Insturktionsuppsättningo 8-bitars datamanipulation.o 63 basinstruktioner.o 17 grundläggande adresseringsmetoder.o 8 x 8 unsigned-multiplikator.

28

Page 29: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

o Äkta bitmanipulation.

Figur 7.4 Blockdiagram för ST7265x.

7.1.5.4 Problem med matningsspänningenEtt stort problem vid konstruktionen var referensnivån för A/D-omvandlaren. Då spänningen från USB kan variera mellan 4,0 V och 5,25 V är inspänningen ingen bra referensspänning.

På PIC16C745 kan referensspänningen till A/D-omvandlaren sättas till ett värde mellan 2.5 V och (Vdd+0.3) V. Tyvärr finns det ingen intern spänningsreferens som kan användas för att mata denna ingång. Då denna krets endast förbrukar 140 µA i suspend state skulle det vara möjligt att koppla in en spänningsreferens som matas direkt från USB-spänningen och fortfarande klara kravet på maximal total strömförbrukning på 500 µA i suspend state. I/O-portarna arbetar med 5 V-nivåer (matning direkt från USB).

På AT43USB355 tas referensspänningen från en intern 3.3 V-regulator. Tyvärr finns inga värden i databladet för hur exakt denna regulator är.I/O-portarna på denna krets arbetar med 3,3 V-nivåer.

Referensspänningen på ST72F651 måste vara ansluten till USB-spänningen.I/O-portarna arbetar med 5 V-nivåer (matning direkt från USB).

29

Page 30: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Då denna konstruktion skulle kunna mäta spänningsområdet 0-5 V skulle den bästa lösningen vara att kretsen innehöll en spänningsreferens på 3,3 V eller 2,5 V och inspänningen delades ned med en extern spänningsdelare enligt figur 7.5.

Figur 7.5 Spänningsdelning av inspänningen till en A/D-omvandlare.

Eftersom kretsarna inte innehåller några D/A-omvandlare utan endast PWM-utgångar som filtreras med lågpass-filter är spänningarna för nollor och ettor på PWM-signalen kritiska Eftersom inspänningen kan variera mellan 4,0 V och 5,25 V hade det varit bäst om det fanns en up/down regulator i kretsen som gav I/O-pinnarna 5,0 V. Hur en PWM-signal från en PWM-utgång filtreras för att bli en analog signal visas i figur 7.6.

Figur 7.6 Filtrering av spänningen från en PWM-utgång

30

VAIN AINx

Page 31: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1.6 KretslösningenDå kretsen från Atmel inte klarade strömförbrukningskravet i suspend state och den från Microchip inte klarade att kommunicera över USB med FS valdes kretsen ST72F651 för konstruktionen.

Schema för kretsen finns i bilaga 3. IC1 är USB-mikrokontrollern och den är uppdelad på flera symboler. Strömställaren S1 används för att jorda resetsignalen och resetta IC1. Kondensatorn C4 förhindrar gnistbildning i S1. SV5 är en kontakt för att ansluta en programmeringsutrustning för ICP (In-Circuit Programming). Programmeringsutrustningen måste kunna styra resetsignalen oberoende läget på strömställaren S1, därför finns R1. Med hjälp av kortslutningsbygeln JP1 kan kretsen ställas in för olika typer av programmeringsutrustningar, de som behöver matning från kortet och de som inte behöver det.

Enligt databladet (ref. 22) ska VPP anslutas till jord via ett motstånd, detta åstadkoms med ett av motstånden i RN2. De övriga motstånden i RN2 och RN1 används för att jorda oanvända I/O:s för att undvika störningar. Q1 är en kvartskristall, C1 och C2 de tillhörande kondensatorerna. C3 används för att stabilisera den interna 3,3 V-regulatorn. C3 stabiliserar den interna 3,3 V-regulatorn för matning av motståndet R3 som talar om för datorn att kretsen arbetar med FS. C5 stabiliserar den inkommande spänningen från USB. X1 är kontakten som USB-kabeln ansluts till. Till kontakten SV1 är både de analoga insignalerna och utsignalerna kopplade. Varje stift med jämt nummer har jordats för att varannan ledare i en bandkabel ska vara jord. Detta för att skärma de analoga signalerna. Kondensatorerna C12-C18 filtrerar bort högfrekvent brus från de analoga insignalerna (ref. 23). Sju analoga insignaler kan mätas på ingångarna AIN0-AIN6. Utgångarna PWM0 och PWM1 genererar varsin pulsviddsmodulerad signal som filtreras till analoga signaler av lågpassfiltren R4/C19 respektive R5/C11.

Kontakterna SV2, SV3 och SV4 används för att ansluta digitala in-och utsignaler till portarna A, B, C, och D på kretsen. Anledningen till att PD4 och PD5 på kretsen har använts istället för PC6 och PC7 är de alternativa funktionerna ”Timer Out Compare” som finns på PD4 och PD5. Kondensatorerna C6, C8, C9 och C10 används för avkoppling. J1 och J2 är stiftlister som kan användas för att tex fästa en prob från ett oscilloskop.

Komponentlistan för kretsen finns i bilaga 4.

7.1.7 Problem med kravspecifikation 2 och designförslag 2Främsta anledningen till att även designförslag 2 förkastades var att kostnaden för kortet skulle bli för hög.

31

Page 32: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1.8 Kravspecifikation 3För att få ned kostnaden för konstruktionen har kravspecifikation 3 anpassats till kretsen PIC16C745 från Microchip.

Kortet ska minst ha följande I/Os:

4 analoga ingångar med 8 bitars upplösning och mätområde 0-5 V. 2 analoga utgångar med 8 bitars upplösning och utspänning 0-5 V. 4 digitala ingångar 5 V CMOS-logik. 4 digitala utgångar 5 V CMOS-logik.

Överföringshastigheten från kortet ska vara LS och överföringstypen interrupt transfer, då denna är den enda överföringstyp med verifiering av överfört data och garanti för att data kommer fram. Med en paketstorlek på 8 byte och ett pollningsintervall på 1 ms* fås en maximal överföringshastighet på 8 kbyte/s eller 64 kbit/s med denna överföringstyp.

Övriga krav: kortet ska vara billigt att tillverka. en krets som klarar att arbeta i suspend state ska användas för kommunikationen med

USB.

7.1.9 Designförslag 3Då kravspecifikation 3 är anpassad för att passa kretsen PIC16C745 är det givetvis den som har använts i konstruktionen.

7.1.9.1 PIC16C745En översiktlig presentation av denna krets finns i kapitel 7.1.5.1. PIC16C745 har följande funktioner:Kärnan:

RISC CPU med 35 instruktioner. Alla instruktioner kräver en klockcykel förutom programhopp som kräver två

klockcyklar. 12 interruptvektorer. 8 nivåers hårdvarustack. Direkta, indirekta och relativa adressangivelser. Power-on Reset (POR) Power-up Timer (PWRT) och Oscillator Start-up Timer (OST) Watchdog Timer (WDT) med egen RC oscillator på chipet för högre tillförlitlighet. Automatisk reset vid för låg matningsspänning (Brown-out Reset BOR) Programmerbart kodskydd. Effektbesparande SLEEP-läge. Olika oscillatorval:

o EC – Extern klocka (24 MHz)o E4 – Extern klocka med PLL (6 MHz)o HS – Kristall/Resonator (24 MHz)o H4 – Kristall/Resonator med PLL (6 MHz)

In-Circuit Serial Programming (ICSP) för programmering av kretsen i applikationen. Matningsspänningen får variera mellan 4,35 till 5,25 V. I/O-portarna kan mata/sänka 25 mA.

* Se rättelser i kapitel 8.

32

Page 33: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Låg strömförbrukning:o ~16 mA @ 5 V, 24 MHzo 100 µA standby-ström.

Periferi: USB 1.1 64 byte dubbelportsminne för USB. 22 I/O-pinnar

o Individuell inställning av riktning.o En högvolts open-drain (RA4)o 8 PORTB pinnar med:

Interrupt vid ändring. Weak pull-up kontroll.

o 3 dedikerade USB-pinnar. Timer 0: 8-bitars timer/räknare med 8-bitars prescaler. Timer 1: 16-bitars timer/räknare med prescaler som kan räknas upp även när kretsen är

i SLEEP-läge via extern kristall/klocka. Timer 2: 8-bitars timer/räknare med 8-bitars periodregister, prescaler och postscaler. Två Capture, Compare och PWM-moduler

o Capture är 16-bitars, med maximal upplösning på 10,4 s.o Compare är 16-bitars, med maximal upplösning på 167 ns.o PWM har maximal upplösning på 10 bitar.

Åtta bitars femkanalig A/D-omvandlare. Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI).

33

Page 34: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Figur 7.7 Blockdiagram för PIC16C745.

34

Page 35: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1.9.2 In-Circuit Serial Programming (ICSP)Mikrokontrollern är utrustad med en funktion kallad ICSP som gör att kretsen kan programmeras utan att den behöver demonteras. I en Application Note (ref. 24) anger Microchip hur kretsen ska utformas för att det ska gå att programmera den med ICSP. Figur 7.8 är hämtad ur denna Application Note.

Figur 7.8 Typisk applikationskrets för ICSP

Tyvärr har Microchip inte specificerat vilken kontakttyp som ska användas för ICSP, därmed finns det programmerare med olika kontakter på marknaden. Företaget Olimex tillverkar flera olika modeller av programmeringsutrustningar för PIC (ref. 25). De har valt att använda en 6-polig Molexkontakt, och samma typ av kontakt har använts i denna konstruktion. Då Chris Schroeder på Beyond Designs påstår att mikrokontrollern lätt resettas av brus på MCLR-pinnen har han presenterat en alternativ koppling. Figur 7.9 är hämtad ur artikeln ” Microchip PIC® Microcontrollers” (ref. 26).

Figur 7.9 Alternativ applikationskrets för ICSP från Beyond Designs.

Denna alternativa lösning har använts i denna konstruktion med undantag att en 6-polig kontakt har använts istället för en 5-polig.

35

Page 36: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1.9.3 A/D-omvandlaren

7.1.9.3.1 ReferensspänningenDå mikrokontrollern har en ingång för referensspänning har denna använts för att förbättra kretsens mätprestanda. Om denna spänningsreferens kopplas direkt mellan matningsspänningen och jord skulle strömförbrukningen öka, och kortet får bara dra 500 µA i Suspend state. Därför föreslår Microchip kopplingen i figur 7.10 (ref. 27)

Figur 7.10 Inkoppling av spänningsreferens för strömsnåla applikationer.

I denna konstruktion har spänningsreferensen TL1431 (ref. 28) från ST Microelectronics använts. Denna krets genererar 2,5 V och detta blir därmed den maximala spänning A/D-omvandlaren kan mäta.

7.1.9.3.2 Spänningsdelare/AntivikningsfilterDå den högsta spänningen som A/D-omvandlaren kan mäta blir 2,5 V med spänningsreferensen behövs spänningsdelare för att kunna mäta högre spänningar. Eftersom AD3 används som ingång för referensspänningen finns 4 analoga ingångar kvar. Spänningsdelaren på en ingång har konstruerats för en maximal inspänning på ca 10 V. De övriga har konstruerats för inspänningen 5 V. Enligt databladet (ref. 19) får inimpedansen till AD-ingångarna inte överstiga 10 kΩ. Spänningsdelarna har därför konstruerats enligt figur 7.11 med värden enligt figur 7.12.

Figur 7.11 Spänningsdelare för A/D-ingångar.

36

VAIN ANxR1

R2

Page 37: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Ingång R1 (kΩ) R2 (kΩ) VMAX (V)AN0, AN1, AN2 2,2 2,2 5,000AN3 6,8 2,2 10,227

Figur 7.12 Resistorvärden för spänningsdelare.

Enligt databladet finns det bara en enda möjlig klockkälla för A/D-omvandlaren, det är den interna RC-oscillatorn. Denna oscillator har en nominell periodtid (TAD) på 4us. För en komplett 8-bitars A/D-omvandling krävs 9.5 TAD. Detta ger en samplingsfrekvens på 26316 Hz. Eftersom kretsen inte klarar av högre överföringshastigheter på USB än 8 kbyte/s* kommer endast data för ett av fyra sampel hinna överföras. Detta gör att A/D-omvandlaren kommer att uppfattas av datorn som en omvandlare med maximal samplingsfrekvens på 6579 Hz. Enligt kapitel 5 ska antivikningsfiltrets dämpning vid halva samplingsfrekvensen (3289 Hz) vara minst 50 dB om A/D-omvandlaren är 8-bitars som i detta fall. För att begränsa antalet komponenter och därmed hålla nere kostnaden för kortet valdes ett filter av första ordningen, dvs att endast lägga till en kondensator till spänningsdelaren (figur 7.13).

Figur 7.13 Spänningsdelare och antivikningsfilter för A/D-ingångar.

Nackdelen med att välja ett filter av första ordningen är att lutningen på filtret blir mycket flack, vilket gör att det dämpar en stor del av frekvenserna mellan likspänning och halva samplingsfrekvensen. Beräkningar av filtret redovisas i bilaga 5. Resultaten* anges i figur 7.14.

Figur 7.14 Värden för spänningsdelare/antivikningsfilter.

* Se rättelser i kapitel 8.

37

VAIN ANxR1

R2 C

VAIN R1 (Ω) R2 (kΩ) C (µF) fC (Hz) fS (Hz)5 2200 2200 22,0 6,58 2080

10 6800 2200 10,0 9,57 3028

Page 38: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1.9.4 Filtret till D/A-omvandlarenFör att skapa likspänningar av PWM-signalerna används två lågpassfilter som kopplas enligt figur 7.6. För att hålla nere strömförbrukningen har resistorerna i detta filter dimensionerats så att den maximala strömmen på utgången blir 5 mA. Värdet på kondensatorerna är inte kritiskt, bara filtrets gränsfrekvens understiger PWM-signalernas frekvens. Programmet till kortet sätter PWM-signalernas frekvens till 5859 Hz. För att minska antalet olika komponenter på kortet har samma modell av kondensator som används i antivikningsfiltren till A/D-omvandlaren använts till PWM-filtret. Kondensatorvärdet sattes till 22uF. Gränsfrekvensen för filtret har beräknats med ekvation 5.3 som finns i kapitel 5.Värdena för PWM-filtret anges i figur 7.15

R (kΩ) C (µF) fC (Hz)1,0 22 45,5

Figur 7.15 Värden för PWM-filter.

7.1.9.5 KretsschematSchema för kretsen finns i bilaga 6. IC1 är USB-mikrokontrollern och strömställaren S1 används för att jorda resetsignalen och resetta IC1. Kondensatorn C3 förhindrar gnistbildning i S1. Resistorn R2 förhindrar kortslutning om S1 skulle tryckas ned då IC1 håller på att programmmeras via ICSP-kontakten J1, motståndet skyddar därmed programmeringsutrustningen. L1 motsvarar L1 i figur 7.9, R3 motsvarar R1, och C8 motsvarar C2. Motståndet R5 ska monteras om ICSP-kretsen inte monteras. C6 är avkopplingskondensator för IC1. Q1 är kvartskristallen och C4 och C5 de tillhörande kondensatorerna.

R1 förser USB-kontakten med spänningen från VUSB, och ser till att hastigheten blir LS på USB-kommunikationen. C1 glättar utspänningen på VUSB. C2 är en bulkkondensator för hela kortet. X1 är USB-kontakten. J2 är en kontakt för seriekommunikation, till denna kan t.ex. en extern RS232-krets kopplas. X2 är en kontakt för digitala I/O-signaler. X3 är kontakten för de analoga signalerna. Resistornäten RN1, RN2, och RN3 utgör tillsammans med C9-C13 spänningsdelare/antivikningsfilter för de analoga ingångarna. RN4, C14, och C15 filtrerar PWM-signalerna från IC1 till analoga utspänningar. PWM-signalerna finns också ofiltrerade i kontakten. IC2 är en spänningsreferens och motsvarar zenerdioden i figur 7.10. D1 och R4 motsvarar D och R i figuren. C7 motsvarar C i figuren och glättar utspänningen från spänningsreferensen.

För att hålla nere kortkostnaden har två olika varianter av konstruktionen tagits fram, ett fullbestyckat kort för utveckling och ett med reducerad komponentuppsättning. Komponentlistan för det kompletta kortet finns i bilaga 8 och den reducerade listan i bilaga 9. Komponentplaceringsritningen för båda komponentlistorna återfinns i bilaga 7.

Symbolerna för kontakterna X2 och X3 är felaktiga. Numreringen på de inköpta kontakterna stämmer inte med numreringen på symbolerna i schemat. Detta gör att pinne nummer X2-1 i schemat motsvarar pinne 10 och X2-2 i schemat motsvarar pinne 9 på den verkliga kontakten.

38

Page 39: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1.9.6 KretskortetKomponenterna på kretskortet har placerats så tätt som möjligt för att få kortytan så liten som möjligt. Analoga och digitala signaler har i så stor utsträckning som möjligt hållits åtskilda för att undvika störningar på de analoga signalerna från de snabba flankerna på de digitala signalerna. För att göra kortet möjligt att tillverka i en fräsmaskin bestämdes att det skulle ha två lager. Därmed fick inte några dedikerade jord- och spänningslager plats. De områden på kortet som inte har använts till signaler har istället fyllts ut med jord. Intentionen var att fylla den ena sidan med jord och den andra med matningsspänning. När kortet krymptes blev inte matningslagret så täckande att alla pinnar som skulle ha spänning kunde anslutas till fyllningen. Då anslöts pinnarna med ledare och även undersidan fylldes med jord. Ytmonterade komponenter undveks om möjligt för att göra kortet lättare att montera för hand.

7.1.9.7 CAD / Tillverkning Schemaritning och kortlayout är gjorda i programmet Eagle som finns i en freeware-version, ”Light Edition” (ref. 29), som visade sig vara tillräcklig för detta projekt. Programmet är mycket lättarbetat och lätt att förstå. När layoutarbetet var klart skapades filerna i figur 7.16. Samtliga filer är i formatet Gerber.

Filnamn Beskriver

Data Acquisition Board.cmp Kortets komponentsida

Data Acquisition Board.sol Kortets lödsida

Data Acquisition Board.out Kortets kantlinjer

Data Acquisition Board.drd Borrhålens placering

Data Acquisition Board.dri Borrarnas storlek

Figur 7.16 Filer i Gerberformat som beskriver kortet.

Dessa filer användes i den fräsmaskin som finns på institutionen för att fräsa bort kopparlagret på laminatet och därmed skapa ett mönsterkort. Att löda fast komponenterna på kortet var något besvärligt. Vissa komponentben måste lödas på båda sidorna av kortet då kortets hål inte var pläterade. Ibland var det riktigt svårt att komma åt att löda på komponentsidan.

7.1.9.8 InkapslingKortet är inte anpassat för att passa i en speciell låda. Kortet har nu kontakter på tre kanter som behövs för dess grundläggande funktion. Om kortet skulle sitta i en låda vore det önskvärt att X1 och X2 placerades efter samma sida på kortet, då skulle lådan bli billigare att tillverka då den endast skulle behöva fräsas på två gavlar.

39

Page 40: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1.9.9 KostnadskalkylAtt få fram exakta prisuppgifter är ett svårt jobb. Priset beror till stor del på vilken leverantör man väljer och vilken kvantitet som köps in. Om kortet skulle tillverkas i serie är givetvis priser på komponenter etc. förhandlingsbara, därför är kalkylen i figur 7.17 bara en indikation på var prisnivån kommer att hamna vid en viss kvantitet.

Produkt / Tjänst 1 kort 100 kort 1000 kortKomponenter 169,03 6 820,00 63 744,00Laminat / mönsterkort 32,60 2 853,00 14 083,00Plastlåda Elfa 50-362-23 29,00 2 420,00 24 200,00Montering 100,00 7 600,00 68 000,00Totalt 321,16 19 693,00 167 590,00Pris/enhet 321,16 196,93 167,59Pris/enhet (inkl moms) 401,45 246,16 209,49

Figur 7.17 Kostnadskalkyl för tillverkning av enheter.

7.1.9.9.1 KomponenterKomponentkostnaden är beräknad för ett kort med reducerad komponentuppsättning. Beräkningen av värdena finns i bilaga 9.

7.1.9.9.2 Lamint / mönsterkortVid tillverkning av 1 kort förutsätts att kortet tillverkas i en fräsmaskin på samma sätt som prototypkortet. För 1 kort har därmed kostnaden för ett laminat köpt av Elfa artikelnr 49-553-24 använts. För 100/1000 kort har priserna tagits från hemsidan för företaget ExpressPCB (ref. 30). De har en tjänst som de kallar för ”Production Service” och priserna är beräknade för 10-dagarsleverans. Beräkning av totalkostnaden för en order kan beräknas med formeln i figur 7.18.

Figur 7.18 Formel för beräkning av kostnaden för mönsterkort.

Företaget ger 15 % mängdrabatt för 100 kort och 24 % för 1000 kort. Kostnaden för frakt har inte räknats med i kostnadskalkylen. Vid beräkningstillfället var 1 USD värd 7,22 SEK.

7.1.9.9.3 LådaKortet har inte måttsatts för att passa i en speciell låda. Den angivna lådan är endast ett exempel för att få en uppfattning om hur mycket en låda i rätt storleksordning kostar. Om kortet gjorts mindre hade kostnaden för lådan sjunkit.

7.1.9.9.4 MonteringFör att få uppgifter om kostnad för montering av kortet har företaget JAPS Elektronik i Västerås kontaktats. Kostnaderna som är angivna i figur 7.17 avser hålmonterade kort. Om fler än 1000 kort ska tillverkas blir det billigare att ytmontera kortet. I sådana fall bör alla komponenter ytmonteras, även kontakter, för att hålla nere kostnaden för monteringen. Anteckningar från mötet med JAPS finns i bilaga 10.

40

Cost = $233 + ($0.27 * NumberOfBoards * BoardAreaInSquareInches) + ($0.50 * NumberOfBoards) - QuantityDiscount + Shipping

Page 41: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.1.9.10FörsäljningsprisFörsäljningspriset på produkten bör hamna betydligt under 960kr + moms som är priset för LabJack U12. LabJack har fler funktioner och gott om tillhörande programvara. Enligt examinator är ett sätt att räkna ut försäljningspriset att helt enkelt ta tillverkningskostnaden och multiplicera den med fyra. Om denna konstant används på styckepriserna utan moms i kostnadskalkylen i figur 7.17 fås försäljningspriserna i figur 7.19

1 kort 100 kort 1000 kortTillverkningskostnad/enhet 321,16 196,93 167,59Försäljningspris/enhet 1 284,64 787,72 670,36Försäljningspris/enhet (inkl moms)

1 605,80 984,65 837,95

Figur 7.19 Beräkning av försäljningspriset med hjälp av konstanten 4

Ett försäljningspris som ligger betydligt under 960kr + moms kan enligt figur 7.19 endast uppnås vid serier om minst 1000 kort. Vilken typ av kund som ska köpa kortet avgör också hur försäljningspriset ska sättas. En privatperson är oftast inte beredd att betala lika mycket som en företagskund.

41

Page 42: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.2 Programvarorna

7.2.1 AllmäntSom grund för programvarorna har Jan Axelssons kod för HID devices (ref. 31) använts. Jan har skrivit program både för datorn och för mikrokontrollern. Dessa kommunicerar med varandra genom att skicka två bytes från datorn som räknas upp i mikrokontrollern och skickas tillbaka till datorn igen.

7.2.2 ReportsFör att överföra data på USB används s.k. reports. Det går att ha flera olika reports i en riktning, tex två olika in report. Detta kan används när olika data behöver skickas vid olika tidpunkter. I denna applikation skickas samma typ av data hela tiden, vilket gör att det räcker med en in report och en out report. In reports skickas från mikrokontrollern till datorn och out reports i motsatt riktning. Enligt referens 32 ska alla reports som skickas i Windows börja med en Report ID. Varje rapport ges ett unikt nummer, och är det bara en rapport som ska skickas kan värdet på Report ID lämpligen sättas till 0.

7.2.2.1 In reportData som ska överföras från mikrokontrollern till datorn är mätresultaten från A/D-omvandlarens olika kanaler och värdena på de digitala ingångarna. I figur 7.20 visas hur in report är utformad. Då A/D-omvandlaren har 8 bitars upplösning passar resultaten precis i en Byte. Kortet har 8 digitala I/Os där fyra har valts att sättas som ingångar och fyra som utgångar. Data för de fyra ingångarna överförs i byte fem. Övriga fyra bitar i byte fem är s.k. padding, det vill säga bitar som inte används för att överföra någon data.

Byte 0 1 2 3 4 5Innehåll Report ID=0 AD0(8) AD1(8) AD2(8) AD4(8) PAD(4) DI(4)

Figur 7.20 Utformning av in report

7.2.2.2 Out reportData som ska överföras från datorn till mikrokontrollern är duty-cycle värdena för de två PWM-modulerna och data för de fyra digitala utgångarna. I figur 7.21 visas hur out report är utformad. Då värdena för duty-cycle för PWM-modulerna består av 10 bitar behövs två bytes för att överföra dessa. Att de 8 MSB har placerats i en byte och de 2 LSB i nästa byte beror på hur duty-cycle-värdena lagras i mikrokontrollern. I byte fem skickas värdena för de fyra digitala utgångarna. De övriga fyra bitarna i byte fem är padding och används inte för att överföra någon data.

Byte 0 1 2 3 4 5Innehåll Report ID=0 PWM0(8)

MSBPWM0(2)

LSBPAD(6) PWM1(8)

MSBPWM1(2)

LSBPAD(6) PAD(4) DO(4)

Figur 7.21 Utformning av out report

42

Page 43: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.2.3 Programvaran för mikrokontrollernSom angivits tidigare har Jan Axelsons kod för mikrokontrollern använts som grund för programvaran. Denna programvara bygger i sin tur på Microchips firmware för USB (ref 33). Två stora förändringar av programmet har gjorts. Den första är att descriptorerna i programmet har skrivits om för att kunna överföra in och out report som beskrivits ovan. I originalkoden användes endpoint 0 för överföring av out report från datorn till mikrokontrollern, detta är ändrat så att det finns en dedikerad endpoint för out reports, och en för in reports. Den andra stora förändringen är att kod för att hantera A/D-omvandling, PWM och de digitala in- och utgångarna har lagts till. Att ändra descriptorerna var det absolut mest krävande av all programmering som gjorts i detta projekt.

Programmet innehåller en initieringsdel där AD-omvandlare, PWM-moduler och USB initieras. När detta är gjort går programmet in i en evig loop. I denna loop tas först out report emot via USB. Data i denna rapport används sedan för att sätta analoga och digitala utgångar. Därefter hämtas data in från A/D-omvandlarens olika kanaler och de digitala ingångarna. Dessa data skickas sedan i in report till datorn via USB. Därpå hoppar programmet till början av loopen och en ny out report tas emot. USB-kommunikationen sköts av funktionen USBServiceInt som startas direkt då något av USB-interrupten aktiveras (ref. 34).

7.2.3.1 VerktygFör programmeringen användes Microchips utvecklingsmiljö MPLAB v 7.00 (ref. 35). Denna miljö innehåller även en simulator. Tyvärr fanns inte en riktig debugger tillgänglig vilket hade varit till stor nytta i projektet. För att kontrollera att report descriptor är korrekt har programmet HID Descriptor Tool v2.4 (ref. 36) använts. För att testa device kompabilitet med USB-standarderna användes programvaran USB Command Verifier R1.2.1 (ref. 37). För att denna programvara ska fungera korrekt krävs att datorn har en EHCI kompatibel USB 2.0 host controller. Även en extern USB 2.0 hub behövs. För att kontrollera att string descriptors i device var korrekta användes programmet HID Test (ref. 38).

7.2.3.2 DescriptorerDescriptorerna skulle ändras så att device överförde fem bytes i vardera riktningen (in och out) istället för två. En extra endpoint skulle också införas för att få en mera kontrollerad överföring från datorn till mikrokontrollern. I Jan Axelsons kod överförs out report med control transfer via endpoint 0. Om descriptorerna är felaktiga enumererar inte device. Tyvärr hade inte USB Implementers Forum Inc. något verktyg som det gick att testa descriptorerna i, utan det enda sättet att testa att descriptorerna var korrekta var att kompilera koden och ladda den till mikrokontrollen. Enumerationen testades sedan med USB Command Verifier. Detta var mycket tidsödande då alla värden i de olika descriptorerna måste vara anpassade till varandra för att skapa en fungerande helhet. Som mall för report descriptor (figur 7.31) har listing 13-2 i ref. 32 använts. För att komma fram till värdena i de övriga descriptorerna (figur 7.22-7.30) har ref. 4, ref. 32 och ref. 39 använts.

43

Page 44: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Device Descriptor

Offset Field Size Value Description

0 bLength 1 0x12 Längden på denna descriptor i bytes.1 bDescriptorType 1 0x01 Typ av descriptor. Alltid 0x01 för device descriptors.2 bcdUSB 2 0x0110 USB version 1.1 i binärkodat decimalformat.4 bDeviceClass 1 0x00 0x00 indikerar att varje interface i konfiguraitonen

specifierar sin egen klassinformation och att de olika interfacen är oberoende av varandra. (HID class är specifierad i interface descriptor)

5 bDeviceSubClass 1 0x00 Ska alltid sättas till noll om bDeviceClass är satt till noll. 6 bDeviceProtocol 1 0x00 Indikerar att denna device inte använder sig av ett

klasspecifierat protokoll på device-basis. 7 bMaxPacketSize0 1 0x08 Specifierar maximal paketstorlek för endpoint 0 till 8 bytes.8 idVendor 2 0x0925 LakeView Research företags ID.

Vendor ID används tillsammans med product ID av applikationen i datorn för att identifiera device. Om produkten ska användas kommersiellt måste ett unikt Vendor ID köpas av USB Implementers Forum Inc.

10 idProduct 2 0x1234 Samma Product ID som i orginalkoden har använts.Product ID identifierar en specifik produkt från tillverkaren specifierad i idVendor.

12 bcdDevice 2 0x0001 Versionsnummer för device i binärkodat decimalformat. 14 iManufacturer 1 0x01 Index för den string descriptor som beskriver tillverkaren. 15 iProduct 1 0x02 Index för den string descriptor som beskriver produkten.16 iSerialNumber 1 0x00 Index för den string descriptor som innehåller serienumret.

Då denna device inte använder sig av något serienumer är värdet satt till 0 för att indikera detta.

17 bNumConfigurations 1 0x01 Anger att denna device har en konfiguration.

Figur 7.22 Utformning av device descriptor

44

Page 45: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Configuration Descriptor

Offset Field Size Value Description

0 bLength 1 0x09 Längden på denna descriptor i bytes.1 bDescriptorType 1 0x02 Typ av descriptor. Alltid 0x02 för configuration descriptors.2 wTotalLength 2 0x0029 Total längd på data returnerad av denna konfiguration. Detta

är totala längden på kombinationen av configuration, interface, HID och endpoint descriptors.

4 bNumInterfaces 1 0x01 Anger att det finns ett interface i denna konfiguration. 5 bConfigurationValue 1 0x01 Värde som identifierar denna konfiguration. När datorn vill

välja en specifik konfiguration använder den detta värde för att skilja på de olika konfigurationerna.

6 iConfiguration 1 0x00 Index för den string descriptor som beskriver konfigurationen. Ingen string descriptor används för detta så värdet är satt till noll.

7 bmAttributes 1 0x80 Bitfält som beskriver konfigurationens egenskaper. Bit 7: Reserverad och ska alltid vara satt till 1.Bit 6: indikerar om device är har egen

strömförsörjning eller behöver strömförsörjning från bussen. 0 = från bussen.

Bit 5: indikerar om konfigurationen stödjer remote wakeup. 0 = stödjer inte remote wakeup.

Bit 4-0: reserverade och ska alltid vara satta till 08 MaxPower 1 0x32 Om device är strömförsörjd via bussen indikerar detta värde

hur mycet ström som konfigurationen kräver i 2 mA-enheter. (0x01 = 2 mA, 0x02 = 4 mA och så vidare). 0x32 = 100 mA.

Figur 7.23 Utformning av configuration descriptor

Interface Descriptor

Offset Field Size Value Description

0 bLength 1 0x09 Längden på denna descriptor i bytes.1 bDescriptorType 1 0x04 Typ av descriptor. Alltid 0x04 för interface descriptors.2 bInterfaceNumber 1 0x00 Nummer för att identifiera ett specifikt interface i en

konfiguration.3 bAlternateSetting 1 0x00 Nummer för att identifierar en specifik setting i ett interface.

Endast en setting används i detta interface.4 bNumEndpoints 1 0x02 Antal endpoints som används i detta interface. 5 bInterfaceClass 1 0x03 Värde för interfacets klasskod.

Anger att detta interface är ett HID-klass interface.6 bInterfaceSubClass 1 0x00 Anger en subclass inom en specific klass. 7 bInterfaceProtocol 1 0x00 Anger ett protokoll inom en specifik klass. 8 iInterface 1 0x00 Index för den string descriptor som beskriver interfacet.

Figur 7.24 Utformning av interface descriptor

45

Page 46: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

HID Class Descriptor

Offset Field Size Value Description

0 bLength 1 0x09 Längden på denna descriptor i bytes.1 bDescriptorType 1 0x21 Typ av descriptor. Alltid 0x21 för HID class descriptors.2 bcdHID 2 0x010B Indikerar att device stödjer HID version 1.11.4 bCountryCode 1 0x00 Identifierar landskod för device. Används inte, därför satt

till 0x00.5 bNumDescriptors 1 0x01 Anger hur många ytterligare class descriptors som finns. I

detta fall finns endast report descriptor.Ett värde för bDescriptorType och ett för wDescriptorLength läggs till denna descriptor för varje class descriptor.

6 bDescriptorType 1 0x22 Beskriver typen av class descriptor , i detta fall en report descriptor.

7 wDescriptorLength 2 0x0022 Anger längden på class descriptor. I detta fall på report descriptor. (34 bytes).

Figur 7.25 Utformning av HID class descriptor

Endpoint 1 Descriptor

Offset Field Size Value Description

0 bLength 1 0x07 Längden på denna descriptor i bytes.1 bDescriptorType 1 0x05 Typ av descriptor. Alltid 0x05 för endpoint descriptors.2 bEndpointAddress 1 0x81 Denna endpoints adress. Adressen är kodad enligt följande:

Bit 3-0: Enpoint nummer (0001 i detta fall)Bit 4-6: Reserverade, alltid noll.Bit 7: Riktining, 0 = OUT, 1 = IN (in i detta fall)

3 bmAttributes 1 0x03 Attribut för endpoint. Bit 1-0: Överföringstyp 00 = Control 01 = Isochronous 10 = Bulk 11 = InterruptDå överföringstypen är satt till interrupt (11) är övriga bitar reserverade (sätts till noll).

4 wMaxPacketSize 2 0x0008 Maximal paketstorlek som denna endpoint kan sända eller ta emot i denna konfiguration. Maximal paketstorlek satt till 8 bytes.

6 bInterval 1 0x0A Anger pollningsintervallet i millisekunder. Värdet är satt till mista möjliga, 10 ms.

Figur 7.26 Utformning av endpoint 1 descriptor

46

Page 47: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Endpoint 2 Descriptor

Offset Field Size Value Description

0 bLength 1 0x07 Längden på denna descriptor i bytes.1 bDescriptorType 1 0x05 Typ av descriptor. Alltid 0x05 för endpoint descriptors.2 bEndpointAddress 1 0x01 Denna endpoints adress. Adressen är kodad enligt följande:

Bit 3-0: Enpoint nummer (0001 i detta fall)Bit 4-6: Reserverade, alltid noll.Bit 7: Riktining, 0 = OUT, 1 = IN (out i detta fall)

3 bmAttributes 1 0x03 Attribut för endpoint. Bit 1-0: Överföringstyp 00 = Control 01 = Isochronous 10 = Bulk 11 = InterruptDå överföringstypen är satt till interrupt (11) är övriga bitar reserverade (sätts till noll).

4 wMaxPacketSize 2 0x0008 Maximal paketstorlek som denna endpoint kan sända eller ta emot i denna konfiguration. Maximal paketstorlek satt till 8 bytes.

6 bInterval 1 0x0A Anger pollningsintervallet i millisekunder. Värdet är satt till mista möjliga, 10 ms.

Figur 7.27 Utformning av endpoint 2 descriptor

String Descriptor 0 (Lang ID)

Offset Field Size Value Description

0 bLength 1 0x04 Längden på denna descriptor i bytes.1 bDescriptorType 1 0x03 Typ av descriptor. Alltid 0x03 för string descriptors.2 wLANGID[0] 2 0x0409 Språket i följande strängar är amerikansk engelska.

Figur 7.28 Utformning av string descriptor 0

String Descriptor 1 (Manufacturer)

Offset Field Size Value Description

0 bLength 1 0x38 Längden på denna descriptor i bytes.1 bDescriptorType 1 0x03 Typ av descriptor. Alltid 0x03 för string descriptors.2 bString 54 UNICODE-sträng (I Unicode är varje tecken 2 bytes):

”Malardalen University (IDE)”

Figur 7.29 Utformning av string descriptor 1

String Descriptor 2 (Product)Offset Field Size Value Description0 bLength 1 0x28 Längden på denna descriptor i bytes.1 bDescriptorType 1 0x03 Typ av descriptor. Alltid 0x03 för string descriptors.2 bString 40 UNICODE-sträng (I Unicode är varje tecken 2 bytes):

”PIC16C745 I/O Board”

Figur 7.30 Utformning av string descriptor 2

47

Page 48: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Report DescriptorVärde Item0x06 (0xFF00)0x09 (0x01)0xA1 (0x01)0x09 (0x01)0x15 (0x00)0x26 (0x00FF)0x75 (0x08)0x95 (0x05)0x81 (0x02)0x09 (0x01)0x15 (0x00)0x26 (0x00FF)0x75 (0x08)0x95 (0x05)0x91 (0x02)0xC0

Usage Page (Vendor defined)Usage (Vendor defined) Collection (Application) Usage (Vendor defined) Local minimum (0) Local maximum (255) Report Size (8) Report Count (5) Input (Data, Variable, Absolute) Usage (Vendor defined) Local minimum (0) Local maximum (255) Report Size (8) Report Count (5) Output (Data, Variable, Absolute) End Collection

Figur 7.31 Utformning av report descriptor

7.2.3.3 I/O

7.2.3.3.1 Analoga utgångarFör de analoga utgångarna användes de två PWM-modulerna som finns i mikrocontrollern. Dessa ger utsignaler på utgångarna CCP1 och CCP2. PWM-modulernas frekvens och duty-cycle kan ställas in med hjälp av ett antal register. PWM-signalens period kan beräknas med ekvation 7.1 som finns i databladet för mikrocontrollern (ref. 19).

PWM period = [(PR2) + 1] • 4 • TOSC •(TMR2 prescale value) (ekv 7.1)

Parameter VärdePR2 255Tosc 166,67 ns (1/ 6 MHz)TMR2 prescale value 1

Figur 7.32 Inparametrar till ekv 7.1

I programmet användes inparametrarna i figur 7.32 till ekvation 7.1 vilket gav periodtiden 170,67 us, vilket gav en frekvens på 5859 Hz. Denna frekvens var den högsta som gick att välja med 10 bitars upplösning. Väljs en högre frekvens minskar upplösningen. PWM-signalen filtreras i ett lågpassfilter för att skapa en analog utspänning från kortet. Fördelen med att välja en hög frekvens på PWM-signalen är att lägre värden på komponenterna i lågpassfiltret behövs. Detta gör att filtret blir fysiskt mindre. För att reglera utspänningen justeras PWM-signalens duty-cycle. Detta sker genom att registren för duty-cycle laddas med de värden som skickas från datorn i out report (se kap 7.2.2.2). Mer information om PWM finns i ref. 40.

48

Page 49: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.2.3.3.2 Digitala utgångarRB4, RB3, RB2 och RB1 i mikrocontrollern har använts för de digitala utgångarna. RB4 är MSB och RB1 LSB. Värdena för utgångarna skickas från datorn i out report (se kap 7.2.2.2).

7.2.3.3.3 Analoga ingångarProgrammet mäter inspänningen på fyra ingångar, AN0, AN1, AN2 och AN4. Ingången AN3 används som ingång för spänningen från spänningsreferensen på 2,5 V. För att korrekta mätningar ska kunna utföras av A/D-omvandlaren måste programmet vänta på att den interna kapacitansen CHOLD laddas upp innan mätningen utförs. Den tid programmet måste vänta kallas aquisition time och enligt databladet (ref. 19) överstiger denna inte 16 us.

Mikrocontrollern arbetar internt med frekvensen 24 MHz. A/D-omvandlaren behöver en lägre frekvens än denna för att mäta korrekt. Denna frekvens kan skapas antingen genom att dela ner 24 MHz-klockan eller genom att använda en speciell RC-oscillator som finns i kretsen. Enligt databladet (ref 19) måste periodtiden för klockan överstiga 2,0 us för att korrekta mätningar ska kunna utföras om referensspänningen är 2,5 V. För att kunna tillmötesgå detta krav måste RC-klockan användas. När den interna klockans frekvens överstiger 1MHz måste mikrocontrollern vara i SLEEP mode under hela konverteringen, annars kommer onoggrannheten överstiga i databladet specificerade värden. När mikrocontrollern är i SLEEP mode stängs 24 MHz-klockan av och endast A/D-omvandlaren är aktiv. Detta för att undvika att brus från andra delar i kretsen stör omvandlingen. Tyvärr fungerar inte USB-kommunikationen om kretsen sätts i SLEEP mode. Därför har RC-klockan använts, men kravet på att kretsen ska vara i SLEEP mode under konverteringen har ignorerats. Konverteringen sker för en kanal i taget och resultaten är placerade i in report (se kap 7.2.2.1).

7.2.3.3.4 Digitala ingångarSom digitala ingångar användes RC7, RC6, RC0, och RB5 där RC7 är MSB och RB5 LSB. Värdena för ingångarna placeras i in report (se kap 7.2.2.1) och skickas till datorn.

7.2.3.4 FilerProgrammet består av 5 filer, vars funktion och namn visas i figur 7.33.

Filnamn Innehållusb_main.asm Huvudfil, innehåller all applikationsspecifik kod.usb_ch9.asm Kod för att implementera funktioner som finns

definierade i kapitel 9 i USB standarden (ref. 4)usb_defs.inc USB-specifika konstanter och makron. 16c745.lkr Information om minnesområden som används av

länkaren.

Figur 7.33 Filer för mikrokontrollerprogrammet.

49

Page 50: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.2.4 Programvaran för datornSom angivits tidigare har Jan Axelsons kod använts som grund för programvaran för datorn. Programmet har ändrats så att det kan sända och ta emot de reports som beskrivs i kap 7.2.2. Det har också ändrats för att kunna presentera resultaten från A/D-omvandlaren och de digitala ingångarna i mikrocontrollern. Två skjutreglage är lagts till för att möjliggöra reglering av duty-cycle värdena till PWM-modulerna. Med hjälp av fyra kryssrutor kan värdena på de digitala utgångarna ändras. En kryssruta för att sätta på/stänga av debugtexten har lagts till. Detta för att debugtexten ska kunna stängas av, vilket gör att programfönstret inte behöver uppdateras lika ofta. Figur 7.34 visar hur programmet såg ut före uppdatering och figur 7.35 hur det ser ut efter uppdatering.

Figur 7.34 Datorprogramvaran före uppdatering

50

Page 51: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Figur 7.35 Datorprogramvaran efter uppdatering

7.2.4.1 VerktygDet verktyg som använts för utveckling av programvaran för datorn är Microsoft Visual C++ 6.0 (ref. 41). Dessutom behövs ett antal *.h och *.lib filer som finns i Windows XP Service Pack 1 DDK (ref. 42). Windows DDK är ett programpaket för utveckling av drivrutiner.

7.2.4.2 InitieringNär programmet startar körs funtionen OnInitDialog() i filen usbhidocDlg.c. I denna funktion nollställs alla mätvärden i fönstret och min/maxvärden sätts för de fyra förloppsindikatorerna. Min/maxvärden sätts även för skjutreglagen. Det anges även var de små skalstrecken ska placeras och vilket värde som skjutreglagen ska stå på. Alla dessa värden återfinns i figur 7.36. Tyvärr gick inte skjutreglagen att vända så att maxvärdet hamnade uppåt och minvärdet nedåt. Att ha maximalt utslag på skjutreglagen nedåt skulle verka mycket konstigt bland annat för att maxvärdet på förloppsindikatorerna är uppåt. Utvärdet från skjutreglagen räknas därför om, detta är anledningen till att skjutreglagens initieringsvärde är 1023 och inte 0. Mer om beräkningen i kapitel 7.2.4.3.3.

51

Page 52: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Parameter VärdeFörloppsindikatorernas minvärde 0Förloppsindikatorernas maxvärde 255Skjutreglagens minvärde 0Skjutreglagens maxvärde 1023Skjutreglagens skalstrecksvärde 204Skjutreglagens initieringsvärde 1023

Figur 7.36 Initieringsvärden i funktionen OnInitDialog()

7.2.4.3 HändelseförloppI programmet finns 8 kontroller som användaren kan påverka, i detta kapitel förklaras översiktligt vad som händer när någon av dessa kontroller påverkas. De funktioner som anges återfinns i filen usbhidocDlg.c.

7.2.4.3.1 Knappen Start/StopNär knappen Start/Stop trycks ned när den har texten Start sker följande:

Knappens text ändras till Stop. FindTheHID(): Letar igenom en lista över anslutna HID-class devices efter en device

som har rätt vendor & product ID. Om rätt device hittas körs funktionerna GetDeviceCapabilities() och

PrepareForOverlappedTransfer(). Funktionen GetDeviceCapabilities() hämtar information om tex vilken usage page som device använder, och storlek på in och out report. Denna information används inte till något annat än att den skrivs ut som debug text, om debug text är aktiverad. Funktionen PrepareForOverlappedTransfer() skapar ett extra handtag till device för att möjliggöra överlappande läsning av device. Mer om detta i kapitel 7.2.4.4.

Device är nu redo för kommunikation och funktionen WriteReport() skickar out report till device. ReadReport() läser sedan en rapport från device.

Två timers startas, den ena för att skapa periodiska läsningar och skrivningar till device med 10 ms mellanrum. Den andra timern kör funktionen DisplayInputReport() som uppdaterar kontrollerna i fönstret enligt data i in report. Uppdateringen sker med 0,5 s mellanrum. Beräkningen av värdena för de analoga ingångarna är utförda med hjälp av ekvationer. Ekvation 7.2 visar hur denna ekvation ser ut för ingångarna med maximal inspänning 5 V. Inparametrarna till denna ekvation finns i figur 7.37. Vid benämning av konstanterna för resistorerna i spänningsdelarna har nomenklaturen Rx_inspänning använts. Numreringen (x) är densamma som i figur 7.11.

InputReport[x] * ((R1_5+R2_5)/R2_5) * REFERENCE_VOLTAGE/AD_MAX (ekv 7.2)

Variabel / konstant Parameter VärdeInputReport[x] Värde från A/D-omvandlaren 0-255R1_5 Värde på resistor i spänningsdelare 2200 ΩR2_5 Värde på resistor i spänningsdelare 2200 ΩREFERENCE_VOLTAGE Referensspänning 2,5 VAD_MAX Maxvärde för A/D-omvandlare 255

Figur 7.37 Variabler och konstanter i ekv 7.2

52

Page 53: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Om knappen trycks ned då den har texten Stop startas detta händelseförlopp: Knappens text ändras till Start. De båda timrarna stängs av.

7.2.4.3.2 Kryssrutan Text OnKryssrutan Text On påverkar den boolska variabeln m_boolTextOn. Om Text On är ikryssad är denna variabel sann och debug texten skrivs ut i de båda rutorna. I annat fall skrivs ingen text ut.

7.2.4.3.3 Skjutreglagen för D/A-omvandlingenNär ett skjutreglage ändras körs funktionen OnReleasedcaptureSliderCcpx(). Denna funktion startar GetSliderCcpxValue som beräknar om värdet enligt ekvation 7.3. I ekvationen är m_intCCPx värdet som fås från kontollen och DA_MAX är kontrollens maxvärde (1023).

SliderValue = -(m_intCCPx - DA_MAX); (ekv 7.3)

Denna ekvation gör att maximalt utslag på skjutreglaget fås då det står så högt som möjligt. Den ”vänder på” skjutreglaget. I OnReleasedcaptureSliderCcpx() placeras sedan data rätt i out report och börvärdet under skjutreglaget uppdateras.

7.2.4.3.4 Kryssrutorna Digital OutputNär någon av kryssrutorna för de digitala utgångarna ändras körs funktionen OnCheckDox(). Denna funktion ändrar endast tillhörande bit i out report.

7.2.4.4 Överlappande I/O (Overlapping I/O)Asynkron I/O är ett sätt för operativsystemet att låta I/O-instuktioner att exekveras i bakgrunden. Med denna metod returnerar funktionerna ReadFile() och WriteFile() omedelbart och I/O-operationen och den anropande tråden arbetar sedan överlappande (ref. 43). Applikationen anropar sedan WaitForSingleObject() som returnerar antingen när datat har tagits emot eller när den specificerade väntetiden har passerat. En fördel med denna metod är att programmet inte hänger sig om device inte returnerar den förutsedda mängden data. I denna applikation är väntetiden är satt till 20 ms.

53

Page 54: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.2.4.5 FilerProgrammet består av 19 filer, vilka dessa är och vad de har för funktion visas i figur 7.38.

Filnamn Innehållusbhidioc.dsp Information om projektetusbhidioc.dsw Information om arbetsytan (workspace)usbhidioc.clw Information som används av ClassWizard för att

editera existerande klasser eller skapa nya. usbhidioc.aps Binärversion av resursfilen usbhidioc.rc,

möjliggör snabbare laddning av projektet.usbhidioc.plg Loggfil för den senaste kompileringen.StdAfx.cpp Används för att bygga en förkompilerad headerfil

(usbhidioc.phc) och en förkompilerad typfil (StdAfx.obj).

usbhidioc.cpp Huvudfil för applikationen, inkluderar klassen CUsbhidiocApp.

usbhidioc.rc Lista över alla Microsoft Windows-resurser som programmet använder. Inkluderar ikoner, bitmappar, och cursors som är lagrade i underbiblioteket RES. Kan editeras grafiskt i Microsoft Visual C++.

usbhidiocDlg.cpp Information om dialogklassen CUsbhidiocDlg. Klassen definierar beteendet för programmets huvud-dialogfönster.

resource.h Definierar resursernas ID, uppdateras av Microsoft Visual C++.

StdAfx.h Används för att bygga en förkompilerad headerfil (usbhidioc.phc) och en förkompilerad typfil (StdAfx.obj).

usbhidioc.h Huvud-headerfil för applikationen. Inkluderar andra projektspecifika headerfiler och deklarerar applikationsklassen CUsbhidiocApp.

usbhidiocDlg.h Information om dialogklassen CUsbhidiocDlg. Klassen definierar beteendet för programmets huvud-dialogfönster.

usbhidioc.ico Information om programmets ikon, inkluderas i usbhidioc.rc.

usbhidioc.rc2 Information om resurser som inte editeras av Microsoft Visual C++ om sådana förekommer.

hidpi.h* Ett interface för HID parsing libraryhidsdi.h* De publika definitionerna för koden som

implementerar HID dll.hidusage.h* Publika definitioner av HID usageshid.lib* Biblioteksfil för hid-funktionerna. Måste vara

versionen i386 för en vanlig persondator.*Microsoft Windows XP Service Pack 1 DDK

Figur 7.38 Filer för datorprogrammet

Den exekverbara filen heter usbhidioc.exe och finns i katalogen release.

54

Page 55: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

7.3 Testning

7.3.1 VerktygFör att kunna övervaka kommunikationen via USB har programmet WDM Sniffer (ref. 44) använts. I detta kan man se alla händelser på USB och när de inträffade.

7.3.2 ÖverföringshastighetWDM Sniffer tidsstämplar alla överföringar till och från en device. Detta gör att det går att beräkna tiden mellan två konsekutiva överföringar. Som endpoint descriptorerna är skrivna (figur 7.26 och figur 7.27) ska en överföring per 10 ms ske. I bilaga 11 finns en ögonblicksbild av programmet VDM Sniffer när det övervakar överföringen till kortet.Figur 7.39 sammanställer in reports ur bilaga 11. In reports sänds endast då överföringsriktningen är in och överföringstypen IRP_MJ_READ. Figur 7.40 sammanställer in reports ur bilaga 11. Out reports sänds endast då överföringsriktningen är out och överföringstypen IRP_MJ_WRITE.

Id TimeStamp(h:min:sec.ms)

Tid från föregåendeöverföring (ms)

978237 00:41:25.844 -978241 00:41:25.852 8978245 00:41:25.860 8978249 00:41:25.868 8978253 00:41:25.884 16978257 00:41:25.892 8978261 00:41:25.900 8978265 00:41:25.908 8978269 00:41:25.924 16

Figur 7.39 Sammanfattning av in reports i bilaga 11.

Id TimeStamp (h:min:sec.ms)

Tid från föregående överföring (ms)

978238 00:41:25.845 -978242 00:41:25.853 8978246 00:41:25.863 10978250 00:41:25.873 10978254 00:41:25.885 12978258 00:41:25.893 8978262 00:41:25.903 10978266 00:41:25.908 8978270 00:41:25.925 17

Figur 7.40 Sammanfattning av out reports i bilaga 11.

Figur 7.39 och figur 7.40 visar att tiden mellan två konsekutiva överföringar kan variera ganska mycket. Det kan finnas två möjliga orsaker till detta, antingen är överföringen oregelbunden, eller är det WDM Sniffer som inte ger korrekta tidsstämplingar. Att ett

55

Page 56: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

program som undersöker trafiken på en buss exekveras på samma processor som det program som ska undersökas kan innebära problem. Med en så kallad protokollanalysator skulle en noggrannare underökning kunna utföras. Det är en extern utrustning som kopplas mellan datorn och device. Denna arbetar oberoende av datorn och kan därmed utföra övervakning av överföringen utan att störas av andra program som exekveras på värddatorn. Då denna device endast är avsedd för att mäta likspänningar gör det inget om överföringarna är oregelbundna. Om device vore avsedd för att mäta signaler med högre frekvens skulle oregelbundna överföringar innebära att den samplade signalen inte kunde återskapas. När 1000 överföringar genomfördes visade det sig att medeltiden för en överföring närmade sig 10 ms.

7.3.3 Problem med referensspänningenBilaga 12 visar en mätning med oscilloskop av referensspänningen då kondensatorn C7 är monterad. Denna kondensator som var avsedd att stabilisera referensspänningen visade sig ha motsatt effekt. Då kondensatorn var monterad fick referensspänningen en överlagrad sågtandsform med peak-peakvärde på 540 mV. Eftersom sågtandsformen helt försvann när kondensatorn C7 demonterades beslutades att kondensatorn skulle tas bort ur komponentlistorna (bilaga 8 & 9).

7.3.4 MätonoggrannhetFör att kontrollera mätnoggrannheten har en likspänning mätts med kortet och en multimeter av modellen APPA 97RMS. Då multimetern inte var kalibrerad bör dess mätvärden ses som ungefärliga. Multimeterns onoggrannhet har beräknats med ekvation 7.4 som finns i multimeterns manual (ref. 45).

±(0.4% + 2dgt) (ekv 7.4)

Dgt i ekvation 7.4 är multimeterns upplösning på det aktuella mätområdet. Två mätområden har använts, 0,3-3V och 3-30V. I mätområdet 0,3-3V är upplösningen 1 mV och i mätområdet 3-30V är den 10 mV. Resultaten av undersökningen finns i figur 7.41.

Ingång Mätvärde från multimeter

(V)

Mätvärde från program

(V)

Avvikelse

(mV)

Multimeterns onnoggranhet

(± mV)

Multimeterns mätområde

(V)AN0 1,001 0,96 -41 5,004 0,3-3

2,005 1,96 -45 9,020 0,3-32,998 2,94 -58 12,992 0,3-33,98 3,96 -20 35,92 3-304,96 4,94 0 39,76 3-30

AN1 1,002 0,96 -42 5,008 0,3-32,008 1,96 -48 9,032 0,3-33,00 2,98 -20 32,00 3-304,01 4,00 -10 36,04 3-304,99 4,98 -10 39,96 3-30

AN2 1,000 0,96 -40 5,000 0,3-32,008 1,96 -48 9,032 0,3-33,000 2,94 -60 13,000 0,3-34,00 3,98 -20 36,00 3-305,01 4,98 -30 40,04 3-30

AN4 2,010 1,93 -80 9,040 0,3-33,99 3,89 -100 35,96 3-306,00 5,94 -60 44,00 3-308,00 7,94 -60 52,00 3-3010,08 10,03 -50 60,32 3-30

56

Page 57: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Figur 7.41 Mät onoggrannhet för AD-ingångarna.

I figur 7.41 kan ses att de största säkerställda avvikelserna är -60 ± 13 mV för ingångarna AN0-AN2 och -80 ± 9,040 mV för AN4. Upplösningen för kortets ingångar AN0-AN2 är 19,53 mV och för AN4 39,06 mV. Med tanke på att avvikelserna är i storleksordningen några få MSB får de betraktas som acceptabla.

7.3.5 Avvikelse från börvärde för PWMFör att undersöka om börvärdena som anges i programmet överrensstämmer med de likspänningar som fås när PWM-signalerna filtreras har dessa likspänningar mätts vid ett antal börvärden. Resultaten finns i figur 7.42

Utgång Börvärde i program (V)

Mätvärde från multimeter

(V)

Avvikelse

(mV)

Multimeterns onnoggranhet (±

mV)

Multimeterns mätområde (V)

CCP1 0,997 0,942 -55 5,768 0,3-32,009 1,915 -94 9,660 0,3-33,006 2,888 -118 13,552 0,3-34,003 3,86 -143 35,44 3-305,000 4,85 -150 39,40 3-30

CCP2 1,001 0,948 -53 5,792 0,3-32,003 1,920 -83 9,680 0,3-33,001 2,903 -98 13,612 0,3-34,006 3,87 -136 35,48 3-305,000 4,85 -150 39,40 3-30

Figur 7.42 Onoggrannhet för PWM-utgångarna.

Figur 7.42 visar att avvikelserna mellan börvärdena och likspänningens effektivvärde är stora, som mest 150 mV. Att maxvärdet endast blir 4,85 V beror på att matningsspänningen från USB endast var 4,86 V vid provtillfället. Att matningsspänningen varierar på USB är inget som det går att göra något åt, men önskas bättre kontroll över utspänningen bör den mätas med någon av ingångarna AN0-AN2. PWM-utgångarna bör inte belastas då avvikelserna mellan börvärde och ärvärde ökar när spänningsfallen över motstånden RN4A och RN4B ökar med ökande ström genom motstånden.

57

Page 58: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

8 Rättelser

När Interrupt Transfers används vid Low Speed är det kortaste pollningsintervallet 10 ms, inte 1 ms som anges i Kravspecifikation 3 i kapitel 7.1.7. Detta medför att maximal överföringshastighet blir 800 byte/s eller 6400 bit/s. Då överföringshastigheten på USB minskar kan inte lika många sampel överföras och då minskar sampelfrekvensen på A/D-omvandlaren. När in report i kapitel 7.2.2.1 används samplas fås samplen med 10 ms mellanrum, vilket ger samplingsfrekvensen 100 Hz. Detta i sin tur medför spärrfrekvensen för antivikningsfiltren minskar och värdena måste beräknas om. Spärrfrekvensen blir då 50 Hz. När beräkningar enligt bilaga 5 görs fås värden enligt figur 8.1.

R1 (Ω) R2 (Ω) fS (Hz) C (µF)2200 2200 50 9156800 2200 50 606

Figur 8.1 Värden för spänningsdelare/antivikningsfilter.

Närmaste högre standardvärden på kondensatorer är 1000 µF. Om detta värde används i beräkningen fås värdena i figur 8.2. Dessa värden ersätter värdena i figur 7.14.

Figur 8.2 Värden för spänningsdelare/antivikningsfilter.

Då gränsfrekvenserna för antivikningsfiltren är under 1 Hz kommer inga frekvenserkomponenter utom ren likspänning dämpas. Detta medför att endast likspänning kommer att mätas korrekt. De stora kondensatorvärden som behövs i filtren medför dyra kondensatorer som är fysiskt stora. Den bästa lösningen på detta problem var att ta bort kondensatorerna och endast tillåta likspänning på ingångarna. Detta medförde också att kortet blev något billigare.

9 Förbättringar

Som angavs i kravspecifikationerna i kapitel 7 hade det varit önskvärt att överföringshastigheten från kortet varit full speed. Tyvärr fanns det inte någon billig mikrokontroller som innehöll alla I/O-funktioner som behövdes på marknaden när projektet startades. Nu har Microchip lanserat en mikrokontroller PIC18F2455 (ref. 46) som är pinnkompatibel med PIC16C745. Denna klarar att kommunicera med full speed och har ett FLASH-minne som programminne. Då den tillhör en annan processorfamilj är den dock inte kodkompatibel. Kod finns även för denna processor på Jan Axelssons hemsida (ref. 31). En annan förändring som skulle behövas är att se till att numreringen på kontakterna och schemat överrensstämde. Resetknappen hade kunnat tagits bort för att få ett billigare kort.När det gäller datorns programvara skulle den kunna kompletteras för att möjliggöra loggning av mätvärden. Att automatiskt kunna lägga ut signaler vid bestämda tidpunkter kan vara en annan önskvärd funktion.

58

VAIN R1 (Ω) R2 (kΩ) C (µF) fC (Hz) fS (Hz)5 2200 2200 1000 0,14 45,810 6800 2200 1000 0,10 30,3

Page 59: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

10 Slutsatser

Att konstruera ett kort som är billigt att tillverka i små serier är svårt. Om produkten ska säljas som konsumentprodukt krävs mycket stora serier för att få ned priset till acceptabel nivå. En större del av projekttiden än väntat har gått åt till att undersöka andra produkter och sätta rätt teknisk nivå på projektet. Det är lätt att sikta alltför högt när kravspecifikationen för kortet skrivs vilket resulterar i ett kort med för högt pris. Att vara öppen för andra tekniker än den som var tänkt från början är viktigt. I detta projekt fick en mikrokontroller väljas istället för en FPGA som det först var tänkt. En FPGA-lösning skulle aldrig kunna konkurrera prismässigt med mikrokontroller-lösningen då det idag inte finns FPGA med inbyggda A/D-omvandlare. Det var svårt att hitta en mikrokontroller för USB som var helt optimal för projektet. Det hade varit önskvärt med en mikrokontroller som klarade av att kommunicera med Full Speed över USB. Att skriva descriptorerna för device kräver erfarenhet då verktygen för detta inte verkar helt färdigutvecklade ännu.

59

Page 60: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

11 Referensförteckning

I de fall där det varit möjligt har en kopia av referensen sparats som fil. Denna fil finnas i anslutning till rapportfilen. Detta för att undvika att referensen försvinner om tex hemsidor förändras.

[1] Andreas Malmquist, Erik Käll, ”USB Interface for Embedded Systems”, 2003-09-08 Examensarbete med titel ”USB drivare i VHDL för inbyggda system”, Datainstitutionen, Mälardalens högskola, www.mdh.se

[2] www.dustin.se

[3] Don Anderson, Dave Dzatko ”Universal Serial Bus System Architecture”, MindShare Inc., Second Edition, ISBN 0-201-30975-0, 2001.

[4] “Universal Serial Bus Specification”, Compaq, Intel, Microsoft, NEC, Revision 1.1, September 23, 1998. www.usb.org

[5] Lars-Hugo Hemert, Digitala kretsar, sida 14, Studentlitteratur, Andra upplagan, Lund, Sverige, ISBN 91-44-00099-5, 1996.

[6] Bonnie C. Baker, ”AN699, Application Note, Anti-Aliasing, Analog Filters for Data Acquisition Systems”, 1999, Microchip Technology Inc., www.microchip.com

[7] Tony Girard, “Application Note, Understanding Effective Bits”, Signatec, Horizon Technologies, www.horizon-tech.fr/articles/data/enob/enob_us.htm

[8] “USB1T11A, Universal Serial Bus Tranceiver”, November 1999, Revised January 2004, Fairchild Semiconductor, www.fairchildsemi.com

[9] “Guidelines to Keep ADC Resolution within Specification”, Rev. 4278B-8051-08/03, Atmel, www.atmel.com

[10] “LT1425, Isolated Flyback Switching Regulator”, Rev. A, 1997, Linear Technology, www.linear-tech.com

[11] “ADT7516/ADT7517/ADT7518 SPI/I2C Compatible, Temperature Sensor, 4-Channel ADC and Quad Voltage Output DAC”, Rev. 0, 2003, Analog Devices, www.analog.com

[12] “Linear and Switching Voltage Regulator Fundamentals-Part 1”, National Semiconductor, power.national.com

[13] “LP2980, Micropower SOT, 50 mA Ultra Low-Dropout Regulator”, National Semiconductor, power.national.com

[14] “PCA9555 16-bit I2C and SMBus I/O port with interrupt”, 2004 Jul 27, Philips Semiconductors, www.philipssemiconductors.com

[15] “Application Note, AN460, Using P82B96 for bus interface”, 2001 Feb 14, Philips Semiconductors, www.semiconductors.philips.com

[16] “Data Sheet, P82B96 Dual bi-directional bus buffer”, 2003 Apr 02, Philips Semiconductors, www.semiconductors.philips.com

[17] “High CMR, High Speed TTL Compatible Optocouplers, Technical Data”, December 29, 2004, Aglient Technologies, www.agilent.com/semiconductors

60

Page 61: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

[18] “Dual-Channel digital isolators ADuM1200/ADuM1201, Rev. PrF, 2004, Analog Devices, www.analog.com

[19] “PIC16C745/765, 8-bit CMOS Microcontrollers with USB”, DS41124C, 2000, Microchip Technology Inc., www.microchip.com

[20] “Full-speed, Low-speed USB Microcontroller with ADC and PWM, AT43USB351M”, Rev. 3302C–USB–2/04, Atmel, www.atmel.com

[21] “Full-speed USB Microcontroller with Embedded Hub, ADC and PWM, AT43USB355”, Rev. 2603D–USB–2/03, Atmel, www.atmel.com

[22] “ST7265x, LOW-POWER, FULL-SPEED USB 8-BIT MCU WITH 32K FLASH, 5K RAM, FLASH CARD I/F, TIMER, PWM, ADC, I2C, SPI”, Rev 2.3, June 2003, STMicroelectronics, www.st.com

[23] “AN1636, Application Note, Understanding and Minimising ADC Conversion Errors”, 2003, STMicroelectronics, www.stmcu.com

[24] Rodger Richey, “TB013, How to Implement ICSP™ Using PIC16CXXX OTP MCUs”, 1997, Microchip Technology Inc., www.microchip.com

[25] www.olimex.com

[26] Chris Schroeder, ”Microchip PIC® Microcontrollers”, 2001, Beyond Designs, www.beyond-designs.com

[27] Sumit Mitra, Stan D’Souza, och Russ Cooper, ”AN 546 Using the Analog-to-Digital (A/D) Converter”, 1997 , Microchip Technology Inc., www.microchip.com

[28] “TL1431, Programmable Voltage Reference”, Mars 2002, ST Microelectronics, www.st.com

[29] EAGLE, version 4.11 r2 for Windows, Light Edition, www.cadsoft.de

[30] www.expresspcb.com

[31] www.lvr.com

[32] Jan Axelson, “USB Complete”, Second Edition, 2001, ISBN 0-9650819-5-8, Lakeview Research

[33] USB Firmware (Assembly Version 1.20), www.microchip.com

[34] “USB Firmware Users Guide – Assembly version V1.20”, 26 April 2001, Microchip Technology Inc., www.microchip.com

[35] MPLAB v7.00, Microchip Technology Inc, www.microchip.com

[36] HID Descriptor Tool v2.4, USB Implementers Forum Inc, www.usb.org

[37] USB Command Verifier R1.2.1, USB Implementers Forum Inc, www.usb.org

[38] HID Test (HID Device Exerciser), Lakeview Research, www.lvr.com

[39] “TB 055, PS/2® to USB Mouse Translator”, DS91055C, Microchip Technology Inc., www.microchip.com

[40] “Mid-Range MCU Family Reference Manual”, DS33023A, December 1997, Microchip Technology Inc., www.microchip.com

[41] Microsoft Visual C++ 6.0, Microsoft Corporation, www.microsoft.com

[42] Windows XP Service Pack 1 DDK, Microsoft Corporation, www.microsoft.com

61

Page 62: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

[43] Ruediger R. Asche, "Multithreading for Rookies", Microsoft Developer Network Technology Group, September 24, 1993, msdn.microsoft.com

[44] WDM Sniffer 3.0.0, Compuware, 2003, frontline.compuware.com

[45] “Digital multimeter, Operator’s manual, APPA 97/97RMS”, 1993, Appa Technology Corp., www.appatech.com

[46] “PIC18F2455/2550/4455/4550 Data Sheet”, DS39632A, 2004, Microchip Technology Inc., www.microchip.com

62

Page 63: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

12 Bilageförteckning

[1] Marknadsundersökning av datainsamlingsenheter.

[2] Plattformsjämförelse från Fiberbyte.

[3] Schema för kretslösningen med ST72F651.

[4] Komponentlista för schemat i bilaga 3.

[5] Beräkning av antivikningsfilter.

[6] Schema för kretslösningen med PIC16C745.

[7] Komponentplaceringsritning för schemat i bilaga 6.

[8] Komplett komponentlista för schemat i bilaga 6.

[9] Reducerad komponentlista för schemat i bilaga 6.

[10] Mötesanteckningar från möte med Anna Petterson, JAPS Elektronik.

[11] Övervakning av USB-kommunikation med WDM Sniffer.

[12] Mätning av referensspänningen med C7 monterad.

[13] Specifikation för kretslösningen med PIC16C745.

63

Page 64: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Nummer 1 2 3 4 5 6 7

Bilaga 1: M

arknadsundersökning av datainsamlingsenheter.

Page 65: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Tillverkare Adlink Ontrack Control Systems

Allt om elektronik

Dataq Instruments

Data Translation Fiberbyte Goldammer

Modell USBDAQ-9100-MS

ADU100 DI-700-PGH DT9802 USB-inSync DAQ-16-4-32

MultiChoice USB

Kommunikation USB 1.1 USB USB 1.1 USB USB 2.0 USB 1.1 USB 2.0AI 8 * 12bit 3 * 16bit 2 * 8bit 16 * 16bit 16 * 12bit 16 * 16bit 16 * 12bit

FIFO 4096samplesFörstärkning *0,5 *1 *2 *4 *8 *1 *2 *4 *8 *1 *2 *4 *8 *1 *2 *4 *8Mätområden Ingång 1&2:

20mV till ±2,5VIngång 3:0-5, +/-5, 0-10, and +/-10VDC

Max +/-10VDC

±1.25V, ±2.5V, ±5V, and ±10V.

±5V, 10V. ±1,25V, ±2,5V, ±5V, ±10V, 0-1,25V, 0-2,5V, 0-5V, 0-10V

Samplingsfrekvens 100kS/s (500kS/s med fifo)

975S/s 100kS/s 3.125kS/s 500kHz

AO 2 * 12bit 2 * 12bit 4 * 16bit 4 * 12bitFIFO 511samples/ch 512 samplesSpänningsområde ±5V, 0-5V,

±10V, 0-10V.±5V, 10V 0-10V, ±10V

Uppdatering 500kS/s (med fifo)

50Hz 5kS/s 200kHz

DI/DO 8/8 4 I/O + 1 relä 0/4 8/8 8/8 (Sink 12mA source 1mA)

32 I/O 24 I/O

Timers 2 * 16bit 4 * 16bit 2 2 * 24bit 2 * 24bitIsolation 1500V för DI &

DO3000V 500V alla

anslutningarReferensutgångar 2,5V, 5VExtrafunktioner - RS232 ”output” USB-inSync,

synkronisering av signaler med 10ns exakthet

DSP för bättre tidssynkronisering, filterfunktioner, beräkning av FFT, och triggning på analoga nivåer. PWM output.

Effektförbrukning 500mA @ 12V 180mA @ 5V 500mA @ 5VPris 5 629kr 1409kr 2825kr 21178kr

Page 66: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Nummer 8 9 10 11 12

Page 67: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Tillverkare LabJack Lawson Labs Inc.

National Instruments IoTech B&B Electronics

Bilaga 1: M

arknadsundersökning av datainsamlingsenheter.

Page 68: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Modell U12 Model 301 NI DAQPad-6020E Personal Daqs Model 55

UD128A8D 

Kommunikation USB USB USB USB USB 1.1AI 8 * 12bit 2 * 24bit 16 * 12bit 10 * 24bit 8 * 12bit

FIFO 4096 samplesFörstärkning *1 *2 *4 *5 *8 *10 *16

*20Mätområden ±10V ±5V ±0.05V, ±0.1V, ±0.25V,

±0.5V, ±1V, ±2.5V, ±5V, ±10V, 0.1V, 0.2V, 0.5V, 1V, 2V, 5V, 10V

5V

Samplingsfrekvens 300S/s 100Hz vid 20 bit

100kS/s 8S/s

AO 2 * 10bit 2 * 12bit 4 * 10bitFIFO -Spänningsområde 5V 10V, ±10V 5VUppdatering 50Hz 20S/s

DI/DO 20 8/8 8 8 8Timers 1 * 32bit 2 * 24bit

1 * 4bit freq scalerIsolation 500VReferensutgångarExtrafunktioner watchdog timer for control

of DO:sEffektförbrukning <500mA @ 5VFörsäljare Lawicel HBPris 960kr 2532kr 10400kr 6505kr 1953kr

Page 69: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Nummer 13 14 15

Page 70: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Tillverkare Ontrack Control Systems Capital Equipment Corporation Measurement Systems Ltd

Bilaga 1: M

arknadsundersökning av datainsamlingsenheter.

Page 71: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Modell ADR101 webDAQ/100 DataWeb 4000Kommunikation RS232 Ethernet/

RS232 38400baudEthernet/RS232

AI 2 * 8bit 32 * 1bit 8FIFOFörstärkning *1 *4 *10 *40 *100 *400Mätområden 10V, 2.5V, 1V, 250mV, 100mV, 25mVSamplingsfrekvens 5-10kS/s, 500kHz 100Hz/kanal

AO 8 * 10bitFIFOSpänningsområde ± 10VUppdatering 33kHz/kanal

DI/DO 8 I/O (Sink 25mA/Source 20mA) 4/4 4/4TimersIsolationReferensutgångar 5VExtrafunktioner Limit alarms on AI:s, DI:s or DO:s, Email och FTP. Email, FTP, CSVEffektförbrukning 15mA @ 5V 500mA @ 12VFörsäljare MicroDAQ Omni InstrumentsPris 716kr 7201kr 15907kr

Källförteckning:1 www.adlinktech.com 9 www.lawsonlabs.com2 www.ontrak.net 10 sine.ni.com3 E. Brador ”Analog omvandlare på USB-porten”, Allt om

elektronik, Nr 231, 10-11/2003.11 www.iotech.com

4 www.dataq.com 12 www.bb-elec.com5 www.datatranslation.com 13 www.ontrak.net6 www.fiberbyte.com 14 www.microdaq.com7 www.goldammer.de 15 www.omniinstruments.co.uk8 www.labjack.com, www.lawicel.com

Page 72: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 2: Plattformsjämförelse från Fiberbyte.

Källa: www.fiberbyte.com

To compare how our USB-inSync platform performs against other synchronous / real time platform options we have rated each platform from 1 (poor) to 5 (excellent) in nine key performance criteria:

1 - Resolution2 - Throughput and speed3 - Expandability4 - Synchronous Sampling 5 - Real time Measurement & Control 6 - Multi-device Synchronization7 - Distributed Processing8 - Time to first measurement9 - Cost

In the comparison results above are the relative performance ratings of USB-inSync and competitive platforms. Note the performance criteria reads left to right for each platform result. The rating on the left of each platform refers to 1 - Resolution whilst the rating on the right refers to 9- Cost. It can be seen that USB-inSync rates extremely well in all critical performance criteria. The only criteria where USB-inSync does not dominate is in total throughput compared to expensive platforms like PXI that are capable of gigabit throughput for up to 18 channels. USB has a total throughput speed of 12Mbps which can support say 75 channels at 10kHz sampling rate and 16-bit resolution. Importantly this corresponds to the maximum throughput requirements for 85% of all real-time industrial applications. Note that PCMCIA, USB, Firewire, Ethernet and Fieldbus are not synchronized platforms that operate in a time deterministic manner, but are included for comparison because they are common hardware interface options for manufacturers. Note that all performance data is based on assumptions / interpretations of published platform specifications. Consequently Fiberbyte takes no responsibility for the validity or accuracy of performance ratings as stated above.

Page 73: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 3: Schem

a för kretslösningen med ST72F651.

Page 74: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 4: Komponentlista för schemat i bilaga 3.

Betäckning Komponent Leverantör bestnr pris

C1 Kerkond 22pF/100V NP0 elfa 65-848-58 0,87C2 Kerkond 22pF/100V NP0 elfa 65-848-58 0,87C3 Kond 100nF/63VDC 5mm elfa 65-505-29 1,32C4 Kerkond 10pF/100V NP0 elfa 65-848-17 0,87C5 Rad ellyt 4,7uF/50V 2mm elfa 67-013-46 1,65C6 Kond 100nF/63VDC 5mm elfa 65-505-29 1,32C7 Kond 100nF/63VDC 5mm elfa 65-505-29 1,32C8 Kond 100nF/63VDC 5mm elfa 65-505-29 1,32C9 Kond 100nF/63VDC 5mm elfa 65-505-29 1,32

C10 Kond 100nF/63VDC 5mm elfa 65-505-29 1,32C11 Rad ellyt 10uF/25V 2mm elfa 67-008-01 1,63C12 Kerkond 10pF/100V NP0 elfa 65-848-17 0,87C13 Kerkond 10pF/100V NP0 elfa 65-848-17 0,87C14 Kerkond 10pF/100V NP0 elfa 65-848-17 0,87C15 Kerkond 10pF/100V NP0 elfa 65-848-17 0,87C16 Kerkond 10pF/100V NP0 elfa 65-848-17 0,87C17 Kerkond 10pF/100V NP0 elfa 65-848-17 0,87C18 Kerkond 10pF/100V NP0 elfa 65-848-17 0,87C19 Rad ellyt 10uF/25V 2mm elfa 67-008-01 1,63IC1 ST72F651AR6T1 arrow 68,88J1 Stiftlist 1x2 poler rak Au elfa 43-716-05 1,21J2 Stiftlist 1x2 poler rak Au elfa 43-716-05 1,21

JP1 Stiftlist 1x2 poler rak Au elfa 43-716-05 1,21JP1 Kortslutn bygel grå tenn elfa 43-710-01 1,71Q1 12,0 MHz kristall par elfa 74-516-69 11,90R1 Motst 10,0kohm 1% 0,6W elfa 60-734-23 2,41R3 Motst 10,0kohm 1% 0,6W elfa 60-724-66 2,41R4 Motst 1,00kohm 1% 0,6W elfa 60-722-84 2,41R5 Motst 1,00kohm 1% 0,6W elfa 60-722-84 2,41

RN1 SIL-nät 10kohm 8p/7m elfa 60-375-35 3,74RN2 SIL-nät 10kohm 8p/7m elfa 60-375-35 3,74S1 Tang bordsomk 4,3M elfa 35-655-46 9,73

SV1 Header lågprofil 20p. elfa 43-155-37 4,12SV2 Header lågprofil 16p. elfa 43-155-29 3,21SV3 Header lågprofil 16p. elfa 43-155-29 3,21SV4 Header lågprofil 16p. elfa 43-155-29 3,21SV5 Header lågprofil 10p. elfa 43-155-03 3,11X1 Hylsdon USB typ B pcb elfa 42-708-98 6,62

FR-4 Laminat 2x100x160 Obe elfa 49-553-24 32,60

Totalt: 190,58(inkl moms) 238,23

Page 75: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 5: Beräkning av antivikningsfilter.

(1)

(2)

(3)

(4)

Filtret ska ge utsignalen 50 dB dämpning vid 3289Hz, detta relativt dämpningen vid 0 Hz. Detta innebär att 0 dB-nivån är satt vid den spänning som uppkommer efter spänningsdelaren R1/R2

(5)

där

(6)

UIN

R1

R2 C UUT

Page 76: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 5: Beräkning av antivikningsfilter.

Om UIN(f=0) normeras (till 1) och uttrycket sätts in i det första fås:

(7)

Om G sätts till -50 dB kan den önskade utspänningen UUT(f=3289) beräknas med:

(8)

Då insignalen kan antas ha samma absolutvärde hela tiden gäller:

(9)

därmed kan följande ekvation tecknas:

(10)

För att beräkna värdet på kondensatorn i filtret sätts detta högerled in som vänsterled i ekvation 4:

(11)

(12)

(13)

Den negativa roten kan förkastas då det inte finns negativa kapacitanser. Insättning av värden ger följande kapacitansvärden:

R1 (Ω) R2 (Ω) fS (Hz) C (µF)

Page 77: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 5: Beräkning av antivikningsfilter.

2200 2200 3289 13,96800 2200 3289 9,21

Då det inte finns kondensatorer med dessa värden bör kondensatorer med närmast högre värde användas. Ett högre kapacitansvärde ger en lägre gränsfrekvens. Närmast högre värden hittade på Elfas hemsida, www.elfa.se, är 10 µF och 22 µF. Gränsfrekvensen fås då:

(14)

Om högerledet i ekvation 14 sätts som vänsterled i ekvation 4 kan följande uttryck för gränsfrekvensen lösas ut (man kan bortse från den negativa roten):

(15)

Om f bryts ut ur ekvation 13 fås ett uttryck för spärrfrekvensen:

(16)

Följande värden erhölls:

R1 (Ω) R2 (kΩ) C (µF) fC (Hz) fS (Hz)2200 2200 22,0 6,58 20806800 2200 10,0 9,57 3028

Page 78: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 6: Schem

a för kretslösningen med PIC

16C745.

Page 79: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 7: Komponentplaceringsritning för schemat i bilaga 6.

Page 80: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 8: Komplett komponentlista för schemat i bilaga 6.

Betäckning Komponent Bestnr PrisElfa

C1 Kond 220nF/63VDC 5mm 65-505-45 1,35 C2 Rad ellyt 4,7uF/50V 2mm 67-013-46 1,65 C3 Kerkond 10pF/100V NP0 65-848-17 0,87 C4 Kerkond 33pF/100V NP0 65-848-82 0,87 C5 Kerkond 33pF/100V NP0 65-848-82 0,87 C6 Kond 100nF/63VDC 5mm 65-505-29 1,32 C7 Kond 100nF/63VDC 5mm 65-505-29 1,32 C8 Kond 100nF/63VDC 5mm 65-505-29 1,32 C9 Rad ellyt 22uF/25V 2mm 67-008-27 1,63 C10 Rad ellyt 22uF/25V 2mm 67-008-27 1,63 C11 Rad ellyt 22uF/25V 2mm 67-008-27 1,63 C12 Rad ellyt 10uF/25V 2mm 67-008-01 1,63 C13 Rad ellyt 10uF/25V 2mm 67-008-01 1,63 C14 Rad ellyt 22uF/25V 2mm 67-008-27 1,63 C15 Rad ellyt 22uF/25V 2mm 67-008-27 1,63 D1 1N4148 switchdiod 4ns 70-005-57 1,82 IC1 PIC16C745-I/SP uC DIL28 73-347-41 56,50 IC1 IC-sockel 28-pol 48-137-21 14,60 IC2 TL1431CD V-ref SO8 73-053-37 12,90 J1 Stiftlist rak 6-pol 6410 43-808-38 12,60 J2 Stiftlist 1x3 poler rak Au 43-716-13 1,61 L1 Drossel doppad 33 uH 58-466-54 6,32 Q1 6,0 MHz kristall par 74-515-94 10,20 R1 Motst 1,50kohm 1% 0,6W 60-724-66 2,41 R2 Motst 110ohm 1% 0,6W 60-711-87 2,41 R3 Motst 1,00kohm 1% 0,6W 60-722-84 2,41 R4 Motst 240ohm 1% 0,6W 60-715-59 2,40

RN1 SIL-nät 2,2kohm 8p/4m 60-024-30 1,91 RN2 SIL-nät 6,8kohm 8p/4m 60-024-63  1,91 RN3 SIL-nät 2,2kohm 6p/5m 60-020-59  1,41 RN4 SIL-nät 1,0kohm 8p/4m 60-024-14 1,91 S1 Tang bordsomk 4,3M 35-655-46 9,73 X1 Hylsdon USB typ B pcb 42-708-98 6,62 X2 Koppl plint 10-pol 48-375-71 15,50 X3 Koppl plint 12-pol 48-375-89 18,70

Totalt: 195,38 Inkl moms 244,23

Gråmarkerade komponenter ska ej monteras och är inte inkluderade i totalkostnaden.

Page 81: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 9: Reducerad komponentlista för schemat i bilaga 6.

Betäckning Komponent Bestnr Pris 1 kortPris 100

kortPris 1000

kort

Pris 100/1000

kortElfa hämtade från

C1 Kond 220nF/63VDC 5mm 65-505-45 1,97 83,30 833,00 ElfaC2 Rad ellyt 4,7uF/50V 2mm 67-013-46 1,65 113,00 378,00 ElfaC3 Kerkond 10pF/100V NP0 65-848-17 0,87 43,20 145,00 ElfaC4 Kerkond 33pF/100V NP0 65-848-82 0,87 43,20 145,00 ElfaC5 Kerkond 33pF/100V NP0 65-848-82 0,87 43,20 145,00 ElfaC6 Kond 100nF/63VDC 5mm 65-505-29 1,32 54,70 547,00 ElfaC7 Kond 100nF/63VDC 5mm 65-505-29 1,32 54,70 547,00 ElfaC9 Rad ellyt 22uF/25V 2mm 67-008-27 1,63 113,00 378,00 Elfa

C10 Rad ellyt 22uF/25V 2mm 67-008-27 1,63 113,00 378,00 ElfaC11 Rad ellyt 22uF/25V 2mm 67-008-27 1,63 113,00 378,00 ElfaC12 Rad ellyt 10uF/25V 2mm 67-008-01 1,63 113,00 378,00 ElfaC13 Rad ellyt 10uF/25V 2mm 67-008-01 1,63 113,00 378,00 ElfaC14 Rad ellyt 22uF/25V 2mm 67-008-27 1,63 113,00 378,00 ElfaC15 Rad ellyt 22uF/25V 2mm 67-008-27 1,63 113,00 378,00 ElfaD1 1N4148 switchdiod 4ns 70-005-57 1,82 16,40 164,00 ElfaIC1 PIC16C745-I/SP uC DIL28 73-347-41 56,50 2 300,00 23 000,00 ArrowIC2 TL1431CD V-ref SO8 73-053-37 12,90 290,00 2 900,00 ArrowQ1 6,0 MHz kristall par 74-515-94 10,20 512,00 5 120,00 ElfaR1 Motst 1,50kohm 1% 0,6W 60-724-66 2,41 55,50 161,00 ElfaR2 Motst 110ohm 1% 0,6W 60-711-87 2,41 55,50 161,00 ElfaR4 Motst 240ohm 1% 0,6W 60-715-59 2,41 55,50 161,00 ElfaR5 Motst 1,00kohm 1% 0,6W 60-722-84 2,41 55,50 161,00 Elfa

RN1 SIL-nät 2,2kohm 8p/4m 60-024-30 1,91 81,00 410,00 ElfaRN2 SIL-nät 6,8kohm 8p/4m 60-024-63  1,91 81,00 410,00 ElfaRN3 SIL-nät 2,2kohm 6p/5m 60-020-59  1,41 61,00 310,00 ElfaRN4 SIL-nät 1,0kohm 8p/4m 60-024-14 1,91 81,00 410,00 ElfaS1 Tang bordsomk 4,3M 35-655-46 9,73 341,00 3 410,00 ElfaX1 Hylsdon USB typ B pcb 42-708-98 6,62 512,00 4 420,00 ElfaX2 Koppl plint 10-pol 48-375-71 15,50 783,00 7 830,00 ElfaX3 Koppl plint 12-pol 48-375-89 18,70 933,00 9 330,00 Elfa

Totalt: 159,56 6 820,00 61 307,00Inkl moms 199,45 8 525,00 76 633,75

Gråmarkerade komponenter ska ej monteras och är inte inkluderade i totalkostnaden.

Page 82: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 10: Mötesanteckningar från möte med Anna Petterson, JAPS Elektronik

Möte med Anna Petersson, JAPS Elektronik Västerås

Hur ska kortet konstrueras för att bli billigt att tillverka?

Om möjligt med endast en monteringsmetod, dvs. antingen med hålmonterade eller ytmonterade komponenter. Alla komponenter ska placeras på samma sida av kortet om inte storleken på kortet är kritiskt.

Är komponenterna på kortet placerade så att det går lätt att tillverka?

Elektrolytkondensatorerna C9-C12 sitter väl nära varandra.

Hur ska korten placeras på panel?

Det beror på vilka maskiner den valda tillverkaren har.

Skulle det vara lönsamt att tillverka produkten i Asien istället för i Sverige?

Nej, vid så här små serier blir kostnaderna för sämre överblick av produktionen och kommunikationssvårigheter större än vinsten med lägre produktionskostnad.

Har ni några synpunkter på hur en låda ska utformas?

Phoenix har speciella DIN-skenelådor som är anpassade för kort med två skruvplintar. OKW har också bra lådor.

Övriga synpunkter?

Om kortet ska tillverkas blyfritt krävs speciella komponenter som är blyfria. De måste dessutom klara högre lödtemperaturer. Om produkten ska säljas till konsument måste den EMC-testas.Kortet borde ha bättre skydd för överspänning.

Page 83: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 11: Övervakning av USB-kommunikation med WDM Sniffer

Page 84: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Bilaga 12: Mätning av referensspänningen med C7 monterad.

Page 85: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Egenskaper

8 digitala I/O 2 analoga utgångar/ 2 PWM-utgångar 5 analoga ingångar Spänningsreferens för mer exakta spänningsmätningar Kommunikation via USB Förberedd för kommunikation med RS232 Programmering av microcontroller med ICSP Matningsspänning via USB

Användningsområden

Mätning av likspänningar från givare Styrning av motorer etc. med likspänning eller PWM-signal Styrning av reläer etc. med digitala signaler Digitalingångar för externa strömställare etc.

2005-04-26

Datainsamlingskort för USB

Bilaga 13: Specifikation för kretslösningen med PIC16C745.

Page 86: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Figur 1: Blockdiagram

Beskrivning

Kortet har en enda integrerad krets PIC16C745 som har alla I/O-funktioner som kortet behöver. Analoga insignaler ansluts till SV1 och passerar en spänningsdelare innan signalen mäts med en 8-bitars A/D-omvandlare. Kortet har en spänningsreferens som används av A/D-omvandlaren för mer exakta mätningar.För att generera analoga utsignaler filtreras signalerna från PWM-modulen i mikrocontrollern i lågpassfilter. Signalerna är anslutna till kontakt SV1 dit även ofiltrerade PWM-signaler är kopplade. SV2 innehåller alla digitala signaler och är kopplade direkt till mikrocontrollerns I/O-portar. PIC-kretsen innehåller en komplett USB-transceiver och USB ansluts till X1. Till J2 kan en yttre RS232-krets anslutas om kommunikation via detta gränssnitt önskas. När mikrocontrollern ska programmeras kan det göras med ett speciellt seriegränssnitt kallat ICSP. Denna programmerare ansluts till J1.

2005-04-26

Spänningsdelare

LP-filter

SV1-A

naloga signaler

A/D-omvandlare

PWM

SV2-D

igitala signaler

I/O-portar

X1-U

SBJ2-Serial

J1-ICSP

ICSP- krets

USB- krets

Reset- krets

Spännings- referens

PIC16C745

USB

USART

Datainsamlingskort för USB

Bilaga 13: Specifikation för kretslösningen med PIC16C745.

Page 87: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Specifikationer

Analoga ingångarParameter Ingång SpecifikationerTyp av A/D-omvandlare Successiv approximation Absolut maximal inspänning +5V 9,3V

+10V 19VRekommenderat inspänningsområde

+5V 0-5,0V

+10V 0-10,2VInström (DC) +5V 1,14 mA

+10V 1,13 mAAntal kanaler +5V 3

+10V 1Samplingshastighet 100 Hz

Analoga utgångarParameter Förutsättningar SpecifikationerTyp av D/A-omvandlare Lågpassfiltrerad PWM-signal Upplösning 10 bitarAntal kanaler 2Maximal utspänningAnmärkning 1

Ingen belastning VUSB

0,1 mA belastning VUSB - 0,1 1 mA belastning VUSB - 1

Kortslutningsström 5 mAAnmärkning 1: VUSB är kortets matningsspänning från USB. Den analoga utspänningen är lika stor som VUSB om utgången är obelastad.

PWM-utgångarParameter SpecifikationerUpplösning 10 bitarFrekvens 5859 HzAntal kanaler 2Kortslutningsström 25 mAAnmärkning: PWM-signalerna används också för att generera spänningar till de analoga utgångarna.

2005-04-26

Datainsamlingskort för USB

Bilaga 13: Specifikation för kretslösningen med PIC16C745.

Page 88: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Digitala ingångarParameter Förutsättningar SpecifikationerAntal kanaler 4Låg inspänning (max) [V] DI 1 0,8

DI 2-4 0,8*VUSB

Hög inspänning (min) [V] DI 1 2,0DI 2-4 0,8*VUSB

Läckström ±1,0 µA

Digitala utgångarParameter Förutsättningar SpecifikationerAntal kanaler 4Låg utspänning (max) [V] DO 1-4 0,6

IOL=8,5 mA, VUSB=4,35 VHög utspänning (min) [V] DO 1-4 VUSB-0,7

IOH=-3,0 mA, VUSB=4,35 VKortslutningsström 25 mA

StrömförsörjningParameter Förutsättningar SpecifikationerStrömförbrukning I/O obelastade,

A/D-omvandlare aktiv28 mA

Maximal tillåten utströmAnmärkning 1

Ansluten till en Bus-Powered Hub, A/D-omvandlare aktiv

72 mA

Anmärkning 1: Summan av all utström från samtliga utgångar, analoga som digitala.

AllmäntParameter Förutsättningar SpecifikationerKlockfel för intern mikrokontroller

+25 ºC ±30 ppm-10 till 60 ºC ±50 ppm

Omgivningstemperatur -20 till 70 ºCDimensioner 68*63*17 mm

2005-04-26

Datainsamlingskort för USB

Bilaga 13: Specifikation för kretslösningen med PIC16C745.

Page 89: Mälardalens högskola - Research in Innovation, Design … · Web viewEnligt Philips Semiconductors (ref. 15) kan ett isolationsgränssnitt för 100 kHz konstrueras med en P82B96

Kontakt X3-Analoga signaler + PWMPinne Signalnamn1 AD kanal 02 AD kanal 13 AD kanal 24 Inte ansluten5 AD kanal 46 GND7 DA kanal 18 DA kanal 29 GND10 PWM 111 PWM 212 GND

Kontakt X2-Digitala signalerPinne Signalnamn1 GND2 GND3 DO 14 DO 25 DO 36 DO 47 DI 18 DI 29 DI 310 DI 4

Kontakt J1-ICSPPinne Signalnamn1 MCLR/VPP2 VDD3 GND4 RB75 RB66 Inte ansluten

Kontakt J2-SeriellPinne Signalnamn1 RX2 TX3 GND

Kontakt X1-USBPinne Signalnamn1 VBUS

2 D-3 D+4 GND

2005-04-26

Datainsamlingskort för USB

Bilaga 13: Specifikation för kretslösningen med PIC16C745.


Recommended