[50pts] Rete RS485 con 1 master e 2 slave PIC

M

mouzid

Guest
Ciao, ho appena disegnato una rete RS485. La rete è stata testata con successo collegando due PC alla rete utilizzando il Hyperterminal. Nella seconda fase della mia ork, il mio obiettivo è quello di controllare due led visualizzatore Matrix dal PC. Il 2 Displayer matrice di LED sono collegati al Netwok tramite un'interfaccia RS232/485 e visualizza i dati provenienti dal PC. Un pic 16F876 viene utilizzato per la comunicazione con il PC e anche per controllando la matrice led. Se invio un dato dal PC, saranno i due matrice di LED visualizzarlo? Come inviare i dati destinazione diversa fo, voglio dire inviare un testo da visualizzare in una Displayer e un altro visualizzatore di dati per il secondo? Danke.
 
e spero ci sia qualche micropoccesor alla fine diplay, anche. in modo che può convertire RS485/RS232 nel diplay formato comprendere. Siate specifici quando u fare domande
 
utilizzare un controller come un filtro ad ogni estremità e progettare il proprio formato cornice che contiene un certo tipo di indirizzamento (es. 1 byte)
 
Grazie per la risposta che i miei amici. [Quote = sau_sol] utilizzare un controller come un filtro ad ogni estremità e progettare il proprio formato cornice che contiene un certo tipo di indirizzamento (es. 1 byte) [/quote] Secondo la risposta, questo significa che quando il PC invia i dati al due microcontrollori riceverà e controllare la matrice portato rendendo lo stesso messaggio leggibile. Mi è piaciuto il tuo sau_sol idea ma non riesco a vedere come per la sua attuazione. In realtà il PIC utilizza il USART che legge i dati in modo serilal. Supponiamo che mi riguarda un indirizzo a ciascun PIC diciamo 00 Hexa per PIC1 e FF per PIC2. Il modo migliore e più semplice per selezionare il PIC comunicare sia di scegliere il formato di frame in modo tale che si seleziona prima il PIC e poi inviare i dati su di esso. Per Esempio, supponiamo che il telaio è di 5 byte di dati ad esempio 11 00 22 33 44 hexa. Quindi, per visualizzare un messaggio nel Display2 (contoled dal PIC2) il telaio è: 11 00 22 33 44 FF. Il problema in questo exemple è il 5 ° byte (00). Una volta rilevato, il PIC prima considerazione questo byte di un indirizzo e di conseguenza leggerà il byte successivo e attendere il reste del telaio. Sapete come risolvere il problema?
 
[Quote = mouzid] Grazie per la risposta che i miei amici. Sapete come risolvere il problema? [/Quote] il modo più semplice per selezionare un byte come carattere di escape, ad esempio se 0xAA MCU vede questo byte significa byte successivo sarebbe byte di comando. byte di comando può essere per esempio: 0x00 - switch sul ricevitore MCU1, 0x01 - accendere il ricevitore MCU2, 0x02 - spegnimento ricevitore MCU1, 0x03 - spegnere il ricevitore MCU2, 0xAA - ricevere carattere 0xAA. spegnere significa non ricevere ed elaborare qualsiasi carattere ma 0xAA, (essere in grado di accendere). ma meglio inviare frame del tipo: [sync byte / addr byte] [dat len] [dati byte0] .. [Byte di dati N] [CRC].
 
Quello che uso è un formato di semplice cornice [indirizzo] [dati] 1B qualsiasi negozio di tutto questo in un array (perché sai che la dimensione massima del frame di dati) e confronta il primo byte con l'indirizzo se corrisponde quindi utilizzare il telaio altro reimpostare l'indice dell'array a 0 (cioè scartare il telaio) ora il tuo problema è come conoscere il telaio in modo che il metodo standard è in attesa per 5 carattere di spazio cioè ogni volta che si riceve un timer di avvio byte per un tempo pari a 5 caratteri ricezione tempo e se si riceve un altro byte entro tale termine, reimpostare il timer a 0 o quello che io uso è il timeout di circa 60ms
 
Potrebbe o chiunque altro per favore mi spieghi come si fa PIC possibile scorrere la matrice e ricevere dati dal PC allo stesso tempo? Per quanto ne so la funzione di ricezione è un ciclo infinito che fermerà quando un byte viene rilevato. Dal momento che la ricezione RS232 è basata su interrupt / Loop il PIC non sarà più scorrere la matrice durante l'attesa per i nuovi dati dal PC. Come hai fatto a risolvere il problema?
 

Welcome to EDABoard.com

Sponsor

Back
Top