Quero fazer uma comunicação entre meu PIC18F4550 e meu PC, mas estou ficando paralisado se devo usar o UART ou o USART para longas distâncias. Quando é mais vantajoso usar um em vez do outro?
Quero fazer uma comunicação entre meu PIC18F4550 e meu PC, mas estou ficando paralisado se devo usar o UART ou o USART para longas distâncias. Quando é mais vantajoso usar um em vez do outro?
Respostas:
Para seus propósitos, o UART e o USART são a mesma coisa. UART significa receptor / transmissor assíncrono universal . O S adicional no USART significa síncrono . É apenas um recurso adicional que a Microchip forneceu ao módulo para torná-lo mais útil em alguns casos. Essa capacidade extra não se aplica ao seu caso.
A porta COM do PC leva apenas um UART para conversar. O fato de o USART poder ter sido usado de maneira diferente é irrelevante para você, exceto pelo fato de que talvez você tenha alguns bits de configuração adicionais que precisam ser definidos da maneira certa.
Resposta curta: Use o chip que tiver
Para examinar completamente a questão, é necessário decodificar os acrônimos:
Um U niversal A síncrona R eceiver T RANSMISSOR é a sua "porta serial" tradicional. É assíncrono no sentido de que apenas um único sinal está envolvido - nenhum relógio é transmitido e, em vez disso, o receptor deve recuperar um relógio, normalmente por superamostragem.
Em contraste, um L niversal S ynchronous Um síncrono R eceiver T RANSMISSOR é uma mais versátil com dispositivo UART-estilo assíncronos modos, mas que podem também opcionalmente ser configurado para operar em síncronos modos em que um relógio é enviado juntamente com os dados. Dependendo da capacidade, isso pode incluir interoperação com formatos seriais síncronos conhecidos, por exemplo SPI ou I2S.
Alguns MCUs podem oferecer os dois tipos de periféricos. Para uma necessidade serial assíncrona básica, você pode escolher qualquer um. No entanto, sua escolha pode ser influenciada pelos pinos nos quais um determinado periférico pode operar, outras necessidades do sistema, etc. Um gerenciador de inicialização ROM de fábrica pode operar apenas em alguns periféricos e não em outros. Também pode haver diferenças no suporte a buffer, tamanho das palavras, suporte à paridade, sinais de controle associados, etc. E a interface do software pode ser completamente diferente entre os dois.
Eles são basicamente a mesma coisa para o seu microcontrolador.
USART significa receptor / transmissor assíncrono e síncrono universal. UART significa receptor / transmissor assíncrono universal.
A transmissão de dados assíncrona costumava ser usada neste protocolo de comunicação. A transmissão de dados síncronos raramente é usada porque você tem um protocolo de comunicação síncrona muito melhor, como SPI e I2C.
Seu microcontrolador (MCU) possui um receptor / transmissor síncrono / assíncrono universal (USART). Esta unidade funcional suporta um modo de comunicação síncrona e um modo de comunicação assíncrona.
No modo síncrono, o transmissor Tx é conectado ao receptor Rx por um fio CLOCK e um fio DATA. Uma vez por período de RELÓGIO, Tx envia outro bit em DATA e Rx retira outro bit de DATA. O tempo de transferência é regido pelo CLOCK e, portanto, é conhecido por Tx e Rx. Portanto, Tx e Rx podem usar taxas de bits mais altas do que no modo assíncrono.
No entanto, são necessários dois fios / pinos do conector em vez de um, e a inclinação excessiva ou instabilidade entre CLOCK e DATA leva à recepção de dados corrompidos. O tempo entre os controladores e receptores de linha que transportam CLOCK e DATA deve ser correspondido de perto para reduzir esse desvio. Tanto a interface quanto os fatores de dois fios se tornam mais proeminentes em distâncias mais longas, com cabos longos e / ou vários saltos de conexão.
No modo assíncrono, o transmissor Tx é conectado ao receptor Rx por um fio DATA. Uma vez por período de tempo cronometrado, Tx envia outro bit em DATA e Rx retira outro bit de DATA. O tempo de transferência é regido pelos osciladores separados por frequência em Tx e Rx, cada um dos quais é desconhecido pelo outro e será ligeiramente diferente. Portanto, a taxa de bits máxima confiável é menor do que no modo síncrono.
No início de cada novo byte, o Rx usa a transição de bits STOP-START inicial para ressincronizar com o tempo de sequência de bits recebido. Isso torna os atrasos dos drivers / receptores, cabos e conectores de linha irrelevantes para o período do período de bits, embora não para a qualidade dos bits. Apenas um fio é necessário por sinal de comunicação em vez de dois, reduzindo o custo em cabos, conectores e drivers / receptores de linha.
Portanto, depende de seus custos aceitáveis, das distâncias que você está viajando e dos recursos de Tx e Rx. É provável que o seu PC ofereça suporte apenas ao modo assíncrono em uma porta COM padrão, exigindo uma porta especial (PCIe ou USB, provavelmente USB) para o modo síncrono.