CAN Użyłeś transceivera TJA1050, a gdybyś jeszcze dorzucił controler CAN-a choćby MCP 2515 - to on wszystko zrobi za Ciebie.
Na tutejszym forum Sun spinał MCP z M8; wszystko jasno opisane
http://forum.atnel.pl/topic1183.html#p8706...,a może jakiś AVR z wbudowanym controlemem CAN-a. Np AT90CAN...
RS485 - magistrala w wielu truckach (J1708) po dziś dzień - informacja, oraz diagnostyka. Poza tym hula tam CAN.
A J1708 network uses a bus topology with “random” access to the bus. Random access means that any node can transmit when it desires, unless the bus is not already busy. The bus must have been in idle mode (logical high level) for at least a bus access time before a node may access it.
The time counting is based on the bit time which, at 9600 bps, is about 104.2 microseconds. Every message has a priority between 1 and 8, where 1 has highest priority. A bus access time is determined as the shortest idle time (at least 10 bit times) plus two times the priority of the message.
If two messages is sent at exactly the same time a collision occurs on the bus. When this happens both sending nodes have to release control of the bus, i.e. deactivate their transmitters. Both nodes then have to wait for a bus access time before they can start sending again. Consequently the node with highest priority will gain access to the bus first and can start to transmit its message.
Jeśli dobrze rozumiem dostęp do nadawania rozwiązano w taki sposób:
1. Każdy ma własne ID (wartość ID ściśle określa priorytet w nadawaniu wiadomości).
2. Min czas bezczynności t=10bit
3. Jeśli chcę nadawać, a wartość mojego priorytetu to powiedzmy t=5bit to sprawdzam dostępność po upływie t= 10+2x5 = 20bit i zaczynam nadawanie.. ?
Jeśli tak to problem może być tylko wtedy, gdy urządzenia zaczną nadawanie w tym samym czasie... (to nie powinno mieć miejsca jeśli każdy odczeka odpowiedni czas nim zacznie nadawać, czyli ID zostaną odpowiednio rozstawione w czasie, by zdążyć skontrolować dostęp i przełączyć się na nadawanie)...
Widzę wszystkie rameczki w czasie rzeczywistym i jeśli skrętka jest ok to ramki fruwają bezbłędnie.
Korzystając z okazji zapytuję, czy dobrze zrozumiałem powyższe

W trucku:
Silnik - ID(128)
Hamulce - ID(136)
Licznik - ID(140)
Sterownik pojazdu - ID(144)
itd..
Jest taki fajny fail safe MAX3444EESA+ ......
Pozdrawiam