Sådan skriver pålidelig kommunikation grænseflade?

M

msmax

Guest
Jeg lavede en multiPIC system iusing F628 udstyr og bløde UART.Brugt RB0 som comms pin.

Nu kører med omkring 16 Fredsimplementeringsrådets den
1. bus med 1 mester.

Knappenålen er altid i modtager-tilstand og skifter til output for indberetter.

Skrev nogle samlevirksomhed rutiner til TX / Rx 5 bytes af data inkl.checksum og bruger afbryder for modtager.

Alle synes at fungere godt.Men ...

Kan NE1 forklare, hvad det helt rigtige måde er at programmet pålidelige comms mellem flere processorer hvor altid comms indledes senest den
1. mester?

Hvad er de skridt der skal tages i betragtning, når programmering?
Hvad er trinene for at se efter?

Tak for dit input!

 
Du kan prøve nogle software og / eller hardware-løsninger.

Tynd / tyk ledning Ethernet anvender et enkelt kabel, og gennemfører CSMA / CD - Kollision Sense Multiple Access / Colllision opdage.Det er, hvad du har brug for.

1.Første ting er, når en node ønsker at xmit, det gør sikker linje er gratis ved at tjekke inaktiv i længere tid end flere bit-perioder.Dette stopper en node hoppe ind midt i et andet gear.
2.Når den beslutter linje er gratis, det begynder at overføre en præambel,
og sørg for, hvad der er set på den linje, er, hvad det er videregivende.Du kan gennemføre dette ved at gøre hver station sende sin egen adresse (så de
er alle unikke) og xmitting station kan kontrollere den linje er, hvad det er at sende.Nødt til at sikre, max længde af gentagne 1s eller 0s i denne præambel ikke vil tillade en anden node til at tænke på linjen er inaktiv og begynde xmitting.
3.Hvis en xmitting station registrerer en kollision, det backs off for en 'tilfældig' tid og derefter starter helt forfra - så to kollisionsbeskyttelsesudstyr knudepunkter vil ikke gentagne gange kollidere ved at forsøge igen på samme tid.
4.Alle transmissioner har en CRC, så rx station kan skille pakken hvis korrupt.

H / w kan hjælpe med sammenstød opdage, Ethernet hver videregivende station lægger DC nuværende på 75-ohm henlagt linje samt AC signal, så hvis to knudepunkter fremsender samtidig DC spænding går op med det dobbelte af, hvad det normalt gør, så kollision kan afsløres ved komparator.

Alt-i-alle, ville det formentlig være lettere for føreren at meningsmåling den slaver på en eller anden måde.

Hvis du har en ekstra linje, der deler rundt, kan du få enhver slave der ønsker at trække det til at generere en afbryder på master og derefter få føreren til at scanne omkring slaver én efter én.

HTH
Barny

 
Takket Barny for dit værdifulde input.

Mit system har 1 master scanning omkring 127 slaver maksimum.
Master adresser 1 slave og venter på 1 byte periode for et svar.Hvis ikke, så prøver igen.Hvis der stadig intet svar modtaget, tjekke næste adresse.

Jeg har brug for information om, hvad den tid outs burde være (og hvordan man beregner dem) for:
Fremsendende:
- Mellem 2 bytes i 1 pakke (hvis det er nødvendigt at have en timeout)
- Mellem 2 pakker

Modtagelse:
- Mellem 2 bytes før skille byte
- Mellem 2 pakker

Jeg bruger 9600, N, 8,1 som comms parametre.

Jeg kan ikke bruge collission afsløring i vejen for at modtage tilbage og sammenligne forårsage jeg bruge den samme PIN-kode til RX som TX.

Enhver, der har nogle prøver i samlevirksomhed af, hvordan man gennemfører pakkedata modtage
og videresende for PIC processorer?

 

Welcome to EDABoard.com

Sponsor

Back
Top