Jag har en styrenhet (fn baserad på en mega128) med en ledig serieport.
Problemet är att jag har behov av flera kommunikationskanaler tex en för kommandon, en för debug/log och en för kontinuerlig loggning av processvärden. Jag vet att det kan lösas med att tex tagga datat på serieporten och sen dela isär detta i ett program hos mottagaren (linuxdator) men innan jag uppfinner hjulet tänkte jag kolla om det redan finns en lösning. Att få ut datat på en egen ttyx skulle vara värt mycket då man kan använda diverse standardprylar för loggning och kommunikation.
Jag undrar nu om det finns något "standard"-protokoll för att MUXa flera logiska serieförbindelser över en fysisk serieport, det får gärna finnas implementerat i linux i form av en /dev device för varje endpoint.
Jag vill inte implementera en till serieport i styrenheten (extern mux,extern uart,byta mcu) då det blir krångligt med kablage, serieporten ansluter mot en enports terminalserver. Det blir också en återvändsgränd då det kan komma behov för fler logiska kanaler.
MUX-protokoll
Re: MUX-protokoll
Aldrig hört att det skulle finnas någon generell standard för detta
däremot tror jag att jag har sett olika leverantörer som har
hittat på sina egna lösningar för liknande behov. Jag vet inte
hur det ser ut i Linux, men risken/chansen är väl att RS232 är
tillräckligt gammalt föt att inte dra till sig intresse från de
som eventuellt skulle skriva ihop detta för Linux.
Jag tror att du har två vägar.
- Tagga datat så att mottagare kan dela på det.
- Implementera flera fysiska RS232 linjer.
däremot tror jag att jag har sett olika leverantörer som har
hittat på sina egna lösningar för liknande behov. Jag vet inte
hur det ser ut i Linux, men risken/chansen är väl att RS232 är
tillräckligt gammalt föt att inte dra till sig intresse från de
som eventuellt skulle skriva ihop detta för Linux.
Jag tror att du har två vägar.
- Tagga datat så att mottagare kan dela på det.
- Implementera flera fysiska RS232 linjer.
Re: MUX-protokoll
Jag var rädd för det, å andra sidan har ju linux stöd för en del obskyra saker som populärt operativsystem i glättiga färger saknar så jag hade hopp i alla fall.
Re: MUX-protokoll
Om det är vanlig text som ska överföras kan det ju vara så enkelt som att reservera ett antal tecken för att bestämma destinationen.
T.ex. kan char 0xFF betyda att det är debug-info, 0xFE kan betyda att det är skärmvärde osv.
Man ska bara välja teckenvärden som aldrig används ändå.
Självklart måste det finnas ett program i den mottagande ända som kan sortera det inkommande baserat på dessa värden men det skulle väl knappast vara ett problem.
T.ex. kan char 0xFF betyda att det är debug-info, 0xFE kan betyda att det är skärmvärde osv.
Man ska bara välja teckenvärden som aldrig används ändå.
Självklart måste det finnas ett program i den mottagande ända som kan sortera det inkommande baserat på dessa värden men det skulle väl knappast vara ett problem.
Re: MUX-protokoll
> Man ska bara välja teckenvärden som aldrig används ändå.
Det är inte alls nödvändigt (och tecken utanför det "skrivbara" som FF FE
är att bjuda in till strul och problem med felsökning m.m). Det räcker med
att ha tecken i någon speciell position som ger transaktions-typ (eller vad
man nu vill kalla det) men för övrigt hålla sig till skrivbara ASCII tecken.
Avsluta allt med ett CR (och ev LF) så går allt att debugga enkelt
med vanliga terminalemulatorer, värt hur mycket som som helst
när det strular...
Det är inte alls nödvändigt (och tecken utanför det "skrivbara" som FF FE
är att bjuda in till strul och problem med felsökning m.m). Det räcker med
att ha tecken i någon speciell position som ger transaktions-typ (eller vad
man nu vill kalla det) men för övrigt hålla sig till skrivbara ASCII tecken.
Avsluta allt med ett CR (och ev LF) så går allt att debugga enkelt
med vanliga terminalemulatorer, värt hur mycket som som helst
när det strular...
Re: MUX-protokoll
Jodå, det finns ett standardiserat MUX protokoll för serieport. Finns dokumenterat i GSM 7.10
(numera 3GPP 07.10).
Det finns ett antal varianter/klasser med avseende på omsändningar och liknande.
På de flesta GSM telefoner slår man på det med AT+CMUX=1 -
därmed kan man både skicka data och övervaka signalstyrka/ta emot SMS/... samtidigt.
Ett antal implementationer finns här http://git.freesmartphone.org/
/devlin
(numera 3GPP 07.10).
Det finns ett antal varianter/klasser med avseende på omsändningar och liknande.
På de flesta GSM telefoner slår man på det med AT+CMUX=1 -
därmed kan man både skicka data och övervaka signalstyrka/ta emot SMS/... samtidigt.
Ett antal implementationer finns här http://git.freesmartphone.org/
/devlin
Re: MUX-protokoll
Tackar så mycket för infon devlin, det verkar vara ungefär det jag letade efter, dock var det lite si och så med vettiga implementationer.
Jag har dock hittat en som var lämplig och har lyckats få två sådana (den ena modifierad att agera modemsidan) att kommunicera. Nu återstår att se om jag kan "skohorna" in det i en mega128 också
Jag har dock hittat en som var lämplig och har lyckats få två sådana (den ena modifierad att agera modemsidan) att kommunicera. Nu återstår att se om jag kan "skohorna" in det i en mega128 också
