Hoe kan ik Bus Contention-problemen oplossen in mijn geval?

De volgende afbeelding beschrijft het probleem:

Bus Contention

Processor 1 heeft geen RS232-kanaal, maar heeft een SPI-een, dus we hebben een UART-stuurprogramma en een level translator-IC's gebruikt.

De twee processors staan ​​op afzonderlijke kaarten en de RS232-ontvanger zal hierop worden aangesloten met één kabel die in tweeën gedeeld zal worden om op elk bord te worden aangesloten.

Hoe kunnen we dit busstrijdprobleem oplossen?

Bewerken # 1

Helaas kan ik de hardware niet wijzigen. Is er een software-oplossing?

Bewerken # 2

Ik dacht aan een oplossing, maar weet niet of het van toepassing is of niet. Ik heb de MAX3223-chip voor niveau-vertalers gelezen en ontdekte dat als het ingangsniveau naar de IC ongedefinieerd is "Irrelevant", de uitvoer een hoge impedantie heeft. Ik vond de volgende functietabel in zijn datasheet:

enter image description here

In mijn circuit zijn FORCEON en EN ~ signalen laag en FORCEOFF ~ is hoog.

Hoe kan ik een niet-geïdentificeerd niveau ernaar verzenden?

2
Kun je de uitvoer op Processor 2 besturen? Is het mogelijk om de RS232-pinnen in hoge impedantie te zetten of alleen modi in te voeren en deze pinnen te negeren? Als je die pinnen in een inactieve modus kunt zetten op het moment dat de forceoff inactief is op de niveauverschuiver, dan kun je dit waarschijnlijk laten werken. Hoewel het niet de beste oplossing is, maar soms moet je met slechte beperkingen werken.
toegevoegd de auteur Bemmu, de bron
Ik betwijfel het, ik hoopte dat computer 2 een ingebed apparaat was dat je iets kon doen met de pinconfiguraties. Joby's RS232-multiplexer is misschien de beste optie.
toegevoegd de auteur Bemmu, de bron
@ MikeJ-UK, er is geen onderhandeling. Processor 1 wordt eerst gebruikt en vervolgens processor 2. Ze zijn beide gescheiden en de gebruiker zal ze niet parallel gebruiken. Maar zelfs dit zal het probleem niet oplossen, er zal altijd een uitvoer op de RS232-link zijn. Ik moet een van hen in de staat met hoge impedantie zetten.
toegevoegd de auteur Shitikanth, de bron
@MarkSmith, Processor 2 is een computerprocessor met Windows of Linux, het moederbord bevat RS232 COM-poort. Is het mogelijk om deze PC RS232-poort in hoge impedantie of invoermodus te plaatsen?
toegevoegd de auteur Shitikanth, de bron
@Abdella - Het gegevensblad zegt dat als/FORCEOFF laag wordt gehouden, de uitvoer een hoge impedantie heeft, ongeacht de staat van DIN . Maar omdat je zegt dat/FORCEOFF hoog in je circuit ligt, zal dit je niet helpen. Hoe zouden Processor 1 en Processor 2 hoe dan ook onderhandelen wie de besturing van de bus heeft?
toegevoegd de auteur MikeJ-UK, de bron
Je hebt een fundamenteel gebrekkige architectuur.
toegevoegd de auteur Olin Lathrop, de bron

2 antwoord

Dit is geen busstrijd - er is geen bus. RS-232 werkt gewoon niet zoals u het wilt. Periode. Einde verhaal. Het is punt-naar-punt en geen bus. Ik heb gezien dat seriële kaarten in laptops worden vernietigd vanwege 'slimme' bedradingsschema's.

U spreekt over het toepassen van een onbepaald niveau en vraagt ​​hoe u dat kunt doen. Het kan ook niet worden gedaan. Het heeft geen zin om een ​​'ongedefinieerde' spanning te produceren - wanneer de elektronen het andere uiteinde raken, wordt de spanning gedefinieerd, periode. U kunt er geen ongedefinieerd spanningsniveau naartoe sturen.

Je zult waarschijnlijk antwoorden met een reactie op dit bericht waarin je vraagt ​​of dit antwoord echt is. Het is. Je kunt niets doen om dit op te lossen zonder een soort van scheidsrechter te plaatsen waar de twee rode draden samenkomen. En zoals je zei - dat gaat om nieuwe hardware. Dus game over.

RS-232 werkt simpelweg niet op deze manier en je zult waarschijnlijk dingen beschadigen die proberen het te laten werken.

4
toegevoegd
Bedankt voor het verduidelijken van uitdrukkingen. Fundamenteel heb je gelijk. Het is de ontwerpfout van het circuit. Ik ben een PCB-ontwerper en ik probeer een trucje te vinden!
toegevoegd de auteur Shitikanth, de bron

You could use an RS232 multiplexer. Eg. http://www.maxim-ic.com/app-notes/index.mvp/id/588

Het is echter mogelijk dat u de software op uw RS232-ontvanger moet aanpassen om het signaal te demultiplexen.

2
toegevoegd
Helaas kan ik de hardware niet wijzigen. Is er een software-oplossing?
toegevoegd de auteur Shitikanth, de bron
Controleer alstublieft Bewerken # 2
toegevoegd de auteur Shitikanth, de bron
Niets voor de hand liggend, nee.
toegevoegd de auteur Gangnus, de bron