Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sensor #18

Closed
wants to merge 35 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
bb9f8d2
fix
IsseBisse Mar 2, 2016
778a4d9
Merge branch 'master' of https://github.com/ollehu/TSEA56-Grupp-4
IsseBisse Mar 2, 2016
3b168cf
Merge branch 'master' of https://github.com/ollehu/TSEA56-Grupp-4
IsseBisse Mar 2, 2016
f30e9a7
förstudie
ElenaTronje Mar 3, 2016
53ee475
Merge branch 'master' of github.com:ollehu/TSEA56-Grupp-4
ElenaTronje Mar 3, 2016
6c3f264
Omstrukturering förstudie
ElenaTronje Mar 3, 2016
ed54702
debuggverktyg
ElenaTronje Mar 3, 2016
e2a02c6
Gyro
Wasteson92 Mar 3, 2016
b6216f3
Merge pull request #15 from ollehu/zimon
ZiInge Mar 3, 2016
540be0f
Update
Wasteson92 Mar 3, 2016
6c29895
smågrejs
Lovvan Mar 3, 2016
e1a4699
Merge branch 'master' of github.com:ollehu/TSEA56-Grupp-4
Lovvan Mar 3, 2016
81666f2
referenser förstudie
ElenaTronje Mar 3, 2016
1ab8882
Merge branch 'master' of github.com:ollehu/TSEA56-Grupp-4
ElenaTronje Mar 3, 2016
39dd19a
reglering0.1 färdig
IsseBisse Mar 3, 2016
75f9797
Merge branch 'master' of https://github.com/ollehu/TSEA56-Grupp-4
IsseBisse Mar 3, 2016
c695f96
småfix förstudie
ElenaTronje Mar 3, 2016
559f9db
huvudmodul designspec
ElenaTronje Mar 3, 2016
c08627d
Merge branch 'master' of github.com:ollehu/TSEA56-Grupp-4
ElenaTronje Mar 3, 2016
5d14408
avbrottsingångar designspec
ElenaTronje Mar 3, 2016
a70d00b
LP-filter
ollehu Mar 3, 2016
86a592c
ändrat lite reglering
IsseBisse Mar 4, 2016
6cc1653
Merge branch 'master' of https://github.com/ollehu/TSEA56-Grupp-4
IsseBisse Mar 4, 2016
7fbf2dc
Källfix
Wasteson92 Mar 4, 2016
f34b5e2
Avbrott
ollehu Mar 4, 2016
4dcd6db
Avbrott
ollehu Mar 4, 2016
553d140
Stavning
ollehu Mar 4, 2016
190ac27
avbrott designspec
ElenaTronje Mar 4, 2016
1a435d3
Merge branch 'master' of github.com:ollehu/TSEA56-Grupp-4
ElenaTronje Mar 4, 2016
7517cc2
Stavning
ollehu Mar 4, 2016
cd90c9e
Stavning
ollehu Mar 4, 2016
378f1a8
smågrejs
Lovvan Mar 4, 2016
fe9cc66
Merge branch 'master' of github.com:ollehu/TSEA56-Grupp-4
Lovvan Mar 4, 2016
8ccecd8
fixat reglerbild i ds0.1
IsseBisse Mar 4, 2016
45c3d0a
löst konflikt
IsseBisse Mar 4, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
smågrejs
  • Loading branch information
Lovvan committed Mar 3, 2016

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
commit 6c298956bc68d9ac9103121d8642511b86547709
23 changes: 6 additions & 17 deletions Dokumentation/Förstudie/Kommunikation/kommunikation0.1.tex
Original file line number Diff line number Diff line change
@@ -104,7 +104,6 @@ \subsection{Syfte}
\pagebreak

\section{Problemformulering}
\textit{Frågeställningar som rapporten ska behandla}

Rapporten tar avstamp i frågor som berör integration och kommunikation. De generella frågeställningarna är:

@@ -150,18 +149,7 @@ \subsection{I\textsuperscript{2}C}

Ett alternativ till att trigga avslut är att trigga en ny start, dvs att master-enheten har fortsatt kommunikation över bussen. Är inte slaven redo för överföring då den är kallad på kan den sätta master-enheten i vänteläge.

\subsection{?}
Enligt \cite{GenoM} finns det tre aspekter att ha i åtanke vid uppbyggnad av en robots funktionsnivå: Realtidssystem, kontrollerat system och öppet system.

\textit{Realtidssystem}- Denna nivå beskriver processerna mellan roboten och dess omgivning genom sensorer exempelvis. Denna nivå behöver kunna utföra alla delar som behöver ske i realtid så som exempelvis kontroll av styrservo och behöver därför kunna utföra synkronisering och kommunicera mellan "uppgifter" för att nämna några saker.

\textit{Kontrollerat system}- ?

\textit{Öppet system}- Roboten borde vara modifierbar, det ska var lätt att integrera eller ändra olika funktioners utformning efter tilltänkt tillämpning. För att göra detta behövs ett stegvis uppbyggt system med vanlig integrationsmetodologi.

Alltså behövs en modulärt uppbyggd robot både vad gäller funktionsnivå, standard-uppbyggnad och gränsnitt för modulerna.

\cite{IRS} beskriver faktorer att tänka på vid design av en " open- architecture target environment". Det måste finnas en synkronisering av uppgifter då exempelvis alla sensorer kanske inte jobbar i samma hastighet och därför behöver olika frekvens. Det blir också problem om två uppgifter med samma frekvens skär sig vid integration av moduler vilket medför att integrationen ej ska bero på frekvens eller systemklockor vid synkronisering. Vid kommunikation mellan två moduler måste ett helt set av data skickas, inte lite från den föregående cykeln och lite från den senaste. Det är också viktigt att förutspå hur lång tid utförandet som sämst kommer ta så att hänsyn kan tas det det, särskilt viktigt i realtidsystem. När alla moduler delar databuss är det fördelaktigt att designa kommunikationen mellan dessa så att det tar så lite tid som möjligt för att inte trafikera bussen för länge.

\subsection{Assembler och C för programmering av mikroprocessorer}

@@ -181,7 +169,6 @@ \subsubsection{Logikanalysator}
\pagebreak

\section{Rapportens huvuddel, byt rubriknamn}
\textit{Modeller, beräkningar, analyser och ev experiment. Dela gärna upp efter vad förstudien handlar om.}

\subsection{Konfiguration av I\textsuperscript{2}C-bussen}
%https://retrosnob.files.wordpress.com/2013/03/ib-cs-java-enabled.pdf
@@ -209,14 +196,16 @@ \subsection{Konfiguration av I\textsuperscript{2}C-bussen}

\subsection{Assembler eller C}

I \cite{RWD} anses Assembler vara ett snabbare alternativ än högnivå språk som C i enklare konstruktioner av realtidssystem. Nackdelen är dock att framtida användare av koden får svårare att läsa den och måste sätta sig in i hur processorn fungerar. Dessutom ju mer komplext projektet blir desto mer tid går till att avsöka koden och att inte behöva lära sig nytt språk för varje processor blir också viktigt. Alltså bli Assembler inte lägre så attraktivt. Även \cite{CPM} säger att Assembler blir för knutet till den specifika hårdvaran som används medan C kan funger på olika processorer vilket kan vara fördelaktigt. Koden blir även mer lättförståelig och visar koncepten av vad processorn ska göra på ett logiskt
I \cite{RWD} anses Assembler vara ett snabbare alternativ än högnivå språk som C i enklare konstruktioner av realtidssystem. Nackdelen är dock att framtida användare av koden får svårare att läsa den och måste sätta sig in i hur processorn fungerar. Dessutom ju mer komplext projektet blir desto mer tid går till att avsöka koden och att inte behöva lära sig nytt språk för varje processor blir också viktigt. Alltså bli Assembler inte lägre så attraktivt. Även \cite{CPM} säger att Assembler blir för knutet till den specifika hårdvaran som används medan C kan funger på olika processorer vilket kan vara fördelaktigt. Koden blir även mer lättförståelig och visar koncepten av vad processorn ska göra på ett logiskt sätt.

Det finns alltså fördelar och nackdelar med med båda språken. Även om Assembler ger snabbare utfall gör dess hårdvaruberoende det onödigt krångligt. En så detaljinsikt i hårdvaran är i många fall inte nödvändig. Sett till projektet som ska utföras är det så pass litet så att den snabbhet Assembler ger kanske inte är av största betydelse. Dessutom finns inte tid till att på detaljnivå förstå hårdvaran. I det avseendet skulle C pga. dess smidighet vara ett mer fördelaktigt språk att programera i.

Vissa funktioner som avbrott blir mycket tydligar i Assembler men det kasnke inte är avgörande utan blir smidigare för programmeraren om det som med C- kompilatorn fixas av sig självt.
Det finns alltså fördelar och nackdelar med med båda språken. Även om Assembler ger snabbare utfall gör dess hårdvaruberoende det onödigt krångligt. En så detaljinsikt i hårdvaran är i många fall inte nödvändig. Sett till projektet som ska utföras är det så pass litet så att den snabbhet Assembler ger kanske inte är av största betydelse. Dessutom finns inte tid till att på detaljnivå förstå hårdvaran. I det avseendet skulle C pga. dess smidighet vara ett mer fördelaktigt språk att programera i. Är något tidskritiskt kan det var en ide att överväga att skriva detta i Assembler.

Som nämnt går det också att mixa C och Assembler om så önskas. Då projektgruppen har tidigare erfarenhet av Assembler skulle detta kunna användas i vissa syften för att tydliggöra vissa steg i koden.

\subsection{Att utveckla ett realtidssystem med fler moduler}

\cite{IRS} beskriver faktorer att tänka på vid design av en ``open- architecture target environment''. Det måste finnas en synkronisering av uppgifter då exempelvis alla sensorer kanske inte jobbar i samma hastighet och därför behöver olika frekvens. Det blir också problem om två uppgifter med samma frekvens skär sig vid integration av moduler vilket medför att integrationen ej ska bero på frekvens eller systemklockor vid synkronisering. Vid kommunikation mellan två moduler måste ett helt set av data skickas, inte lite från den föregående cykeln och lite från den senaste. Det är också viktigt att förutspå hur lång tid utförandet som sämst kommer ta så att hänsyn kan tas det det, särskilt viktigt i realtidssystem. När alla moduler delar databuss är det fördelaktigt att designa kommunikationen mellan dessa så att det tar så lite tid som möjligt för att inte trafikera bussen för länge.

\subsection{Design av tester}
En simulator är ett enkelt val för testning av kod då de flesta microprocesorerna har en egen sådan. Simulatorer brister dock i att det är svårt att förutse allt som kommer hända i verkligheten vilket gör att den som programmerar måste vara extremt medveten om alla situationer som kan uppstå annars missas saker. Avbrott försvårar detta.\cite{RWD}

10 changes: 5 additions & 5 deletions Dokumentation/Förstudie/Kommunikation/references.bib
Original file line number Diff line number Diff line change
@@ -26,14 +26,14 @@ @BOOK{AssC
URL={http://www.atmel.com/images/doc42055.pdf},
}
@book{RWD,
author={S. Ball},
year={2002},
author={Stuart R. Ball},
year={2000},
title={Embedded Microprocessor Systems: Real World Design},
edition={second},
publisher={Elsevier},
publisher={Newnes},
address={Burlington, MA},
pages={620},
isbn={0750677236}
pages={327},
isbn={075067234X}
}

@BOOK{CPM,