sexta-feira, 14 de janeiro de 2011

Noções sobre microcontroladores




Os microcontroladores (uC ou MCU) são pequenos dispositivos dotados de inteligência, basicamente constituídos de CPU (Central Processing Unit), memória de dados, memória de programas e periféricos como portas de entrada e saída, I2C, SPI, USART, etc. Suas dimensões reduzidas são resultantes da alta capacidade de integração, na qual milhões de componentes são inseridos em uma única pastilha de silício pela técnica de circuitos integrados. Eles estão presentes na maioria dos componentes digitais como celulares, MP3 player, impressoras, robótica, instrumentação, entre outros.
Esse conceito de microcontrolador se espalhou rapidamente e hoje em dia existe uma grande diversidade de produtos para solucionar os mais diferentes problemas de controle. O primeiro microcontrolador foi lançado pela Intel em 1978 e recebeu a sigla 8048; que depois evoluiu, dando origem à família 8051, em 1983. A Intel ainda oferece a família 8096, que trabalha em 16 bits, possibilitando maior capacidade de processamento. Hoje em dia, uma grande quantidade de fábricas de semicondutores oferece microcontroladores. Dentre elas, citamos a Zilog com sua família Z8, a National com o COP8, a Motorola com o 6811 e a Microchip com seus PICs.
As duas principais arquiteturas de microcontroladores são Harvard e Von-Neumann. A arquitetura Harvard é caracterizada pela existência de um barramento de acesso à memória de dados e outro para a memória de programa, resultando em um aumento de fluxo de dados, enquanto na arquitetura Von-Neumann as memórias de dados e de programa compartilham um mesmo barramento, limitando a banda de operação.
Em geral, as memórias de programa presentes nos microcontroladores são do tipo FLASH (EEPROM – Electrically Erasable Programmable Read Only Memory), ROM (Read Only Memory), EPROM (Erasable Programmable Read Only Memory) ou OTP (One Time Programmable). Elas são responsáveis pelo armazenamento do programa, o que significa que sua capacidade deve ser suficiente para armazenar todo código desejado. Essas memórias são do tipo não volátil, portanto o código de programa armazenado não é perdido, caso o circuito não esteja sendo alimentado. Vejamos as principais características das memórias supracitadas:
·         ROM – não permite que o conteúdo seja alterado pelo usuário. Ela aceita somente a leitura do conteúdo, o qual foi gravado pelo fabricante. Microcontroladores dotados de memória de programa do tipo ROM normalmente apresentam um baixo custo com relação às demais memórias e são recomendados quando o código do programa não apresenta erros e há necessidade de grande quantidade.
·         EPROM – pode ser apagada e/ou programada muitas vezes, porém o conteúdo da memória é apagado através da exposição da janela de quartzo à luz ultravioleta, cujo processo de fabricação apresenta um custo elevado, se comparado com os demais dispositivos de memória.
·         OTP – tolera somente uma gravação. Este tipo de memória apresenta o menor custo se for comparado com as memórias programáveis EPROM e FLASH.
·         FLASH – é a memória mais flexível entre todos os outros tipos de memória de programa, pois pode ser apagada eletricamente e reprogramada 100.000 à 1.000.000 de vezes, dependendo da tecnologia empregada na fabricação deste componente.
Outro tipo de memória existente é a de dados, definida como memória RAM (Random Access Memory). Ela é volátil e armazena as constantes e variáveis do sistema. O conteúdo presente neste tipo de memória é perdido sempre que a alimentação é cortada. Isso implica que os valores das variáveis devem ser carregados sempre que o sistema for iniciado.
Pinos I/O (input/output) digitais estão presentes em todos os microcontroladores. Por meio deles o MCU se comunica com o mundo exterior, ou seja, é por intermédio destes que o MCU aciona um relé, lâmpada, motor, etc. O sentido do fluxo de dados de um pino I/O pode ser definido como entrada ou saída. Se o pino for definido com saída, então ele normalmente será utilizado para controlar periféricos; caso contrário, se for definido como entrada, o dispositivo passa a ler o sinal presente no pino. Chamamos de porta um conjunto de pinos relacionados a ela. Por exemplo, os pinos x.1, x.2, x.3, x.4, x.5, x.6, x.7 e x.8 formam a porta X.
Alguns periféricos como conversores A/D, USART (Universal Synchronous Asynchronous Receiver Transmitter), TIMER, SPI (Serial Peripheral Interface) e I2C (Inter-Intergrated Circuit) são muito comuns nos microcontroladores, no entanto existem MCUs mais robustos que, além dos periféricos supracitados, também apresentam outros mais específicos, como controladores de LCD, USB (Universal Serial Bus), RTC (Real-Time Clack), CAN, etc.
A velocidade de processamento do microcontrolador está diretamente relacionada com a freqüência de clock. Quanto maior a freqüência de trabalho maior será a capacidade de processamento, assim como o consumo de energia. Essa freqüência pode ser gerada por um oscilador interno, que normalmente é um circuito RC, ou então por um cristal de quartzo ou um ressonador conectado externamente. Osciladores internos do tipo RC são normalmente utilizados quando não há uma necessidade de precisão de clock; caso contrário, utiliza-se o cristal. Por exemplo, se uma comunicação serial for necessária, é desejável que um cristal de quartzo seja empregado para garantir a fidelidade do sinal de clock, resultando maior confiabilidade na transmissão/recepção dos dados.   

Nenhum comentário:

Postar um comentário