Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pt:examples:communication:uart [2015/12/11 17:57] – Criação deste novo documento. articapt:examples:communication:uart [2020/07/20 12:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +<pagebreak>
 +====== UART ======
  
 +//Conhecimento prévio: 
 +[HW] [[et:hardware:homelab:controller]], [HW] [[et:hardware:homelab:combo]], 
 +[AVR] [[et:avr:usart]], 
 +[LIB] [[et:software:homelab:library:usart]], \\
 +[LIB] [[et:software:homelab:library:module:lcd_graphic]] //
 +
 +===== Teoria =====
 +
 +UART é um receptor/transmissor assíncrono universal. USART é quase a mesma coisa, com a diferença de que os dados são transmitidos com o sinal de relógio. Também podem ser chamados interfaces de série. A interface série é um mecanismo de transferência de dados em que cada bit é transmitido, um a um. Por exemplo, para transmitir um byte tem de ser transmitido 8 bits durante um intervalo de tempo fixo. Pode ser alteração numa linha física com um pino de microcontrolador, em que a tensão do pino em intervalos muda de valor alto ou baixo. A interface de série é geralmente ligada a dois dispositivos, um das quais transmite informação (mudando o valor na ligação), e outro que recebe informação (lendo o valor na ligação). Abreviatura do terminal de transmissão TX, de recepção RX. Informações na ligação movem sempre numa direção. Quando os dados são movidos em duas linhas ao mesmo tempo, é um bus full-duplex.
 +
 +[{{  :examples:communication:comm_uart_frame.png?319|Quadro UART, onde S é o bit de inicio, 0-7 bits de dados, bit de paridade P (se houver) e o bit de paragem T (ou 2)}}]
 +
 +A transmissão de dados UART pode ocorrer em quadro (em Inglês //frame//) através da qual os bits de dados, dependendo da configuração de 5 a 9. A peça mais comum de dados é de 8 bits, ou um byte. Além disso, bits adicionais de bits de dados transmitidos para o quadro, que é o de dados de chegada e de expirar o reconhecimento atual do lado do receptor. O primeiro deles é chamado bit de inicio (startbit), que é sempre 0, e outra bit (ou bits) de paragem, que é sempre o primeiro bit de paragem antes do bit de paridade, que é usado para verificar a precisão dos dados. O bit de paridade indica se o número de bits de dados entre o número de uns é par ou ímpar.
 +
 +Além da estrutura do quadro, outro parâmetro importante é a taxa de transmissão (em inglês //baudrate//), que fixa o número de símbolos transmitidos por segundo. A transferência de dados pode ser usado para qualquer taxa de transmissão. Por exemplo, 9600 bps, 19.200 bps, 38.400 bps, 57.600 bps, 115.200 bps.
 +
 +[{{ :et:examples:communication:rs232:usb-serial_tn.jpg?200|conversor USB - RS-232}}]
 +
 +Existe em quase todos os microcontroladores uma interface UART. Padrão UART não especifica a tensão dos sinais, que depende da tensão do microcontrolador, o qual é, tipicamente, quer a 3.3 V ou 5.0 V. A tensão de 5.0 V para os sinais de micro-controlador de trabalho correspondentes ao padrão TTL / CMOS fonte de alimentação. O protocolo UART necessita ligar os dispositivos físicos através da norma RS-232, que usa tensões de até 15 V e -15 V, determinada pelo tipo de ficha, usado principalmente em portas série, chamados coloquialmente as portas "COM". Para se conectar a um computador usando o microcontrolador que converte os sinais de TTL / CMOS para tensão RS-232 e vice-versa, RS-232 é substituída em grande parte pela porta USB. Há vários conversores USB - RS-232. Uma vantagem da RS-23 sobre o USB é poder usar cabos mais longos.
 +
 +===== Prática =====
 +
 +Módulo de comunicação HomeLab inclui uma interface UART externa. Para esta porta se conectar ao PC é necessário usar um cabo de transferência TTL UART <-> RS232 ou TTL UART <-> USB.
 +
 +Exemplo do programa para testar o terminal de alguns tipos de software, tais como o HyperTerminal (Windows XP). Em computadores Linux pode ser usado no funcionamento do programa //minicom//. Se o terminal é um microcontrolador com um diálogo aberto, haverá uma mensagem de boas vindas na tela. Na janela, introduza as letras que aparecem no ecrã LCD.
 +
 +<code c>
 +// Kodulabori UART liidese näidisprogramm
 +// Arvutist või mõnest teisest seadmest saadetud tekst kuvatakse LCD ekraanil
 +#include <homelab/usart.h>
 +#include <homelab/module/lcd_gfx.h>
 +
 +// USART liidese määramine
 +usart port = USART(0);
 +
 +// Põhiprogramm
 +int main(void)
 +{
 + char c;
 + unsigned char row = 1;
 +
 + // USART liidese seadistamine
 + usart_init_async(port,
 + USART_DATABITS_8,
 + USART_STOPBITS_ONE,
 + USART_PARITY_NONE,
 + USART_BAUDRATE_ASYNC(9600));
 +
 + // LCD ekraani seadistamine ja tervitusteksti kuvamine
 + lcd_gfx_init();
 + lcd_gfx_write_string("Ootan teadet");
 + lcd_gfx_goto_char_xy(0, row);
 + // Arvutile tere ütlemine
 + usart_send_string(port, "Tere, kirjuta midagi!\r\n");
 +
 + // Lõputu tsükkel
 + while (1)
 + {
 + if (usart_try_read_char(port, &c)) // Jadaliidesest märgi lugemine
 + {
 + if (c == '\r') // Kas tegu on reavahetuse märgiga?
 + {
 + // Rea vahetamine
 + row = 1 - row;
 + // Rea tühjendamine eelmisest teatest
 + lcd_gfx_clear_line(row);
 + }
 + else
 + {
 + // Märgi otse ekraanile väljastamine
 + lcd_gfx_write_char(c);
 + }
 + }
 + }
 +}
 +</code>
 +
 +/*
 +[[et:examples:communication:rs232:alpha|O exemplo de código do texto no LCD]]
 +*/
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0