• Leonardo Ritter

O Passado - Barramento ISA


Esta série de artigos é exclusiva para detalhar o funcionamento de interfaces de comunicação muito antigas, aparelhos antigos e componentes eletrônicos que foram muito importantes durante a evolução do computador!

Nos anos 1980 já estava ficando extremamente necessário uma interface para conectar placas de vídeo, placas de som e diversos outros periféricos ao PC, foi quando surgiu uma das interfaces mais populares da história do computador pessoal: a ISA.

A interface ISA, abreviação para Industry Standard Architeture (Arquitetura Padrão da Indústria), foi o primeiro barramento para conexão de placas de expansão incorporado em placas de PC. O primeiro computador a utiliza-la foi o IBM PC, de 1981, e o último à usa-la não se sabe, pois virou uma interface extremamente popular apesar dos problemas de desempenho. No início dos anos 2000 ainda era possível encontrar placas-mãe para Athlon de socket 462 e até mesmo para LGA775 da Intel que incluíam suporte ao barramento ISA.

Abaixo, uma placa-mãe para processadores Intel de socket mPGA478 e com suporte à memória RAM DDR1 400:

A interface ISA, nas suas primeiras versões, também era chamada de XT Bus, devido a ela ter sido incorporada no PC XT, que veio logo após o PC original (conhecido como IBM PC).

Em sua versão original, que foi utilizada em placas com suporte à processador 8088, a interface ISA foi implementada diretamente no barramento do processador, que tinha apenas apenas 8 bits de largura e operava com um clock de 4,77 Mhz.

No PC XT o barramento ISA (ou XT Bus) passou a trabalhar com um clock de 8,33 Mhz, também tendo o mesmo clock do processador. A interface também manteve os 8 bits de largura. Veja abaixo, a imagem de um XT com Intel 8088:

Com a chegada dos processadores 286, a interface ISA foi revisada e passou à usar um barramento de 16 bits, mas mantendo a compatibilidade com as placas de expansão que trabalhavam com apenas 8 bits. Para que isso acontecesse, o conector antigo foi mantido e a nova revisão apenas incluiu algumas linhas a mais, passando de 62 para 98 pinos no conector.

Veja um cartão ISA com interface de 8 bits e um cartão ISA com interface de 16 bits abaixo:

Veja o conector ISA de 16 bits abaixo:

O conector ISA de 8 bits possui 62 contatos (62 pinos no slot), enquanto o cartão de 16 bits possui 98 contatos (98 pinos no slot).

Veja que, como foi dito acima, o slot ISA de 16 bits possui apenas um conector extra de 36 contatos, tornando todos os cartões de 8 e 16 bits retro-compatíveis.

Veja uma placa-mãe com slot's ISA abaixo:

O controlador ISA era fácil de programar (como eu havia dito acima, era mesmo barramento oferecido pelo processador), sendo muito utilizado por programadores que trabalhavam com automação e robótica. Tão popular que quando o seu fim estava chegando, alguns começaram a fazer estoque de dispositivos compatíveis com ISA.

Por volta de 1988, a AST, Epson, Hewlett-Packard, NEC, Olivetti, Tandy, Wyse e a Zenith, todas elas lideradas pela Compaq, desenvolveram a eISA, abreviação para Extended Industry Standard Interface (Arquitetura Padrão da Indústria Estendida), uma opção ao recém lançado barramento Micro Channel Architeture (MCA) da IBM. O eISA vinha com barramento de 32 bits, mas mesmo assim mantinha a compatibilidade com as revisões anteriores desta interface. Ele foi utilizado em placas mãe com suporte à processadores 386 e 486 por volta do ano 1995, mas logo perdeu espaço para o moderno barramento PCI.

O conector eISA possui o mesmo tamanho do conector ISA comum, só que ele é mais alto e abriga um total de 4 linhas de pinos, divididas em duas camadas, sendo que as duas faixas superiores são para manter a compatibilidade com as versões anteriores da interface, e as duas faixas inferiores são para a interface eISA. Veja abaixo o esquema do slot:

Veja a imagem de slot's eISA numa placa-mãe abaixo:

Os slot's eISA possuem cor marrom em 99% das placas-mãe. Assim, pela imagem, é fácil de confundi-los com o slot AGP, só que ao ver de perto, a diferença de tamanho entre o AGP e o eISA é enorme.

Compare um slot ISA de 16 bits com um slot eISA:

Veja uma placa de vídeo eISA abaixo:

Estas placas de vídeo utilizavam interfaces VGA muito primitivas, tanto que a interface ISA vinha com uma linha de clock de 14,318 Mhz para sincronismo de vídeo CGA, sendo que os chips gráficos eram limitados apenas à formação de 256 cores, já que não havia largura de banda suficiente para transferir dados de vídeo com qualidade muito alta.

Em todas as revisões da na interface ISA permaneceu os jumpers nos cartões de expansão para que o usuário configurasse manualmente os endereços de DMA, IRQ e I/O. Quando o PC tinha vários periféricos instalados, a configuração dos jumpers deveria ser feita com muito cuidado, pois caso duas placas utilizassem o mesmo endereço elas entrariam em conflito e não iriam funcionar corretamente.

Somente em 1993, uma especificação criada pela Microsoft e pela Intel permitiu que os cartões ISA fossem Plug and Play (Conectar e Usar), poupando o usuário de ter que configurar tudo ao instalar um periférico ISA, já que o BIOS configurava os endereços ao ligar o computador. Com a colocação desta nova tecnologia, os cartões que utilizavam jumpers passaram a ser chamados de placas Legacy ISA (placas ISA Legado).

CURIOSIDADE: Após a chegada do Plug and Play, os cartões Legacy ISA ainda populares eram os antigos modems, que trabalhavam via hardware e ofereciam vantagens em relação aos softmodems avançados lançados em meados de 1990.

Abaixo, a tabela com as principais características de todas as versões da interface ISA:

TABELA 0

Como você pode ver, apesar da interface ISA de 16 bits trabalhar com 8,33 Mhz, ela requer 2 pulsos de clock para enviar um único bit.

Apesar da interface eISA ter uma taxa de transferência teórica de 33,3 MB/s, na realidade não passa dos 16,6 MB/s devido natureza lenta da interface, às limitações de implementação dos projetos e evitar interferências.

Em todas as revisões da interface ISA, é necessário tempos de espera entre uma atividade e outra, o que torna a comunicação ainda mais lenta.

Abaixo, você vê a pinagem do slot ISA de 8 bits e a sua extensão, de 16 bits.

TABELA 1

Veja abaixo, os pinos extras adicionados à interface eISA:

TABELA 2

Agora, a explicação de cada pino:

Pinos A1 / B1 ao A31 / B31:

> A0 ao A19: Barramento de endereços (apenas A0 ao A15 são utilizados - endereçamento de 16 bits);

> AES / AEN: Quando ativo, este sinal indica que a operação executada no barramento é de DMA. Este sinal deve ser utilizado para que o decodificador não capture um dado erroneamente durante uma operação de DMA do computador;

> BALE / ALE: Indica que há um endereço válido no barramento de endereços (A0 ao A19). Esta linha é desativada durante operações de DMA. O endereço vindo pelo barramento de endereços é válido a partir da borda descendente de "BALE" até o final do ciclo de barramento. Dispositivos de memória devem travar o barramento "LA" na borda descendente de "BALE";

> CLOCK / BCLK: Sinal de sincronismo do barramento ISA, podendo ser de 4,77 Mhz ou de 8,33 MHz. Ele não é simétrico, pois possui um ciclo de carga de 33%, ou seja, 1/3 em nível alto e 2/3 em nível baixo;

> D0 ao D7: Barramento de dados;

> DRQ1: Faz um pedido de DMA nível 1 ao controlador de DMA;

> /DACK1: Indica que o pedido de DMA 1 foi aceito e que o controlador de interrupção irá iniciá-lo;

> DRQ2: Faz um pedido de DMA nível 1 ao controlador de DMA;

> /DACK2: Indica que o pedido de DMA 2 foi aceito e que o controlador de interrupção irá iniciá-lo;

> DRQ3: Faz um pedido de DMA nível 1 ao controlador de DMA;

> /DACK3: Indica que o pedido de DMA 3 foi aceito e que o controlador de interrupção irá iniciá-lo;

> /I/O CH CK: Quando este sinal está ativo, gera-se uma interrupção não-mascarável (NMI). É ativado em situações de erro, como erro de paridade. Este sinal deve ser utilizado com um circuito de coletor aberto;

> /I/O CH RDY: Gera Wait States para operações de Entrada e Saída ou de memória. Se o circuito necessitar de Wait States, basta ativar esta linha após a decodificação do endereço e dos sinais "/MEMR", "/MEMW", "/IOR" ou "/IOW". Esta linha deve ser temporizada com muito cuidado, para que não seja inserido Wait States desnecessários. Manter essa linha em nível LOW por muito tempo pode causar problemas em alguns sistemas. "/I/O CH RDY" e "/NOWS" não devem ser usados ​​simultaneamente, pois isso pode causar problemas com alguns controladores de barramento. Este sinal também deve ser utilizado com um circuito de coletor aberto;

> IRQ3: Pedido de interrupção nível 3 ao controlador de interrupções;

> IRQ4: Pedido de interrupção nível 4 ao controlador de interrupções;

> IRQ5: Pedido de interrupção nível 5 ao controlador de interrupções;

> IRQ6: Pedido de interrupção nível 6 ao controlador de interrupções;

> IRQ7: Pedido de interrupção nível 7 ao controlador de interrupções;

> IRQ8: Pedido de interrupção nível 8 ao controlador de interrupções;

> IRQ9: Pedido de interrupção nível 9 ao controlador de interrupções;

> /IOR: Indica que uma leitura em I/O está sendo executada. Também é ativado durante ciclos de DMA. Tem um funcionamento análogo à linha "Strobe" da porta paralela (aquela porta rosada, utilizada principalmente para conectar impressoras antigas);

> /IOW: Indica que uma escrita em I/O está sendo executada. Também é ativado durante operações de DMA. Tem um funcionamento análogo à linha "Strobe" da porta paralela (aquela porta rosada, utilizada principalmente para conectar impressoras antigas);

> /MEMR: Indica que está sendo executada uma operação de leitura em memória. Também é ativado durante operações de DMA;

> /MEMW: Indica que está sendo executada uma operação de escrita em memória. Também é ativado durante operações de DMA;

> OSC: Sinal de sincronismo com frequência de 14, 31818 MHz, utilizado para a sincronização de vídeo CGA. Não tem nada a ver com o clock da interface ISA;

> T/C: Indica que um dos canais de DMA acabou de realizar a transferência de DMA programada;

> RESET: Indica inicialização ou reinicialização do sistema;

> REFRESH: Atualizar;

> /NOWS: Nenhum estado de espera. Usado para encurtar o número de estados de espera gerados pelo timer padrão. Isso faz com que o ciclo do barramento termine mais rapidamente, pois os estados de espera não serão inseridos. A maioria dos sistemas irá ignorar o "/NOW" se o "/I/O CH RDY" estiver em nível LOW, só que isso pode causar problemas com alguns controladores de barramento se ambos estes sinais estiverem ativos simultaneamente.

Pinos C1 / D1 ao C18 / D18:

> LA17 ao LA23: Barramento de endereços da parte alta, ou seja, dos 8 bits extras adicionados à interface ISA. Estas linhas não são válidas durante todo o ciclo do barramento, desta forma deve ser utilizado um Latch para armazenar seus valores;

> D8 ao D15: Barramento de dados;

> DRQ0: Faz um pedido de DMA nível 0 ao controlador de DMA;

> /DACK0: Indica que o pedido de DMA 0 foi aceito e que o controlador de interrupção irá iniciá-lo;

> DRQ5: Faz um pedido de DMA nível 5 ao controlador de DMA;

> /DACK5: Indica que o pedido de DMA 5 foi aceito e que o controlador de interrupção irá iniciá-lo;

> DRQ6: Faz um pedido de DMA nível 6 ao controlador de DMA;

> /DACK6: Indica que o pedido de DMA 6 foi aceito e que o controlador de interrupção irá iniciá-lo;

> DRQ7: Faz um pedido de DMA nível 7 ao controlador de DMA;

> /DACK7: Indica que o pedido de DMA 7 foi aceito e que o controlador de interrupção irá iniciá-lo;

> IRQ10: Pedido de interrupção nível 10 ao controlador de interrupções;

> IRQ11: Pedido de interrupção nível 10 ao controlador de interrupções;

> IRQ12: Pedido de interrupção nível 10 ao controlador de interrupções;

> IRQ14: Pedido de interrupção nível 10 ao controlador de interrupções;

> IRQ15: Pedido de interrupção nível 10 ao controlador de interrupções;

> DRQ7: Faz um pedido de DMA nível 7 ao controlador de DMA;

> IOCS16: Indica que haverá uma transferência de 16 bits no barramento de dados, utilizando endereçamento em I/O. Para que uma transferência de 16 bits ocorra, este sinal deve ser mantido em nível LOW. Para este sinal deve ser utilizado com um circuito de coletor aberto;

> MEMCS16: Indica que haverá uma transferência de 16 bits no barramento de dados, utilizando endereçamento em memória. Este sinal deve ser utilizado com um circuito de coletor aberto;

> /MASTER / MREQx: Este sinal é ativado quando algum outro dispositivo deve assumir o controle do barramento ISA. Deve ser acionado em conjunto com o sinal "DRQ". Quando o sinal "/DACK" correspondente for devolvido, todos os circuitos conectados ao barramento são colocados em Tri-State, permitindo que o dispositivo que mandou o sinal "/MASTER" manipule o barramento do jeito que quiser. O novo mestre de barramento deverá obedecer aos sinais de temporização e devolver o controle no máximo em 15 milissegundos;

> MEMR: É ativado quando é feita uma leitura em uma posição de memória acima de 1 MB;

> MEMW: É ativado quando é feita uma escrita em uma posição de memória acima de 1 MB;

> SBHE: Sigla para System Bus High Enable. Indica que a transferência de dados utilizará a parte alta do barramento de dados, isto é, da linha D8 a linha D15. Este sinal "SBHE" e o "A0" são decodificados para informar que tipo de transferência será efetuada. Abaixo, a tabela com os tipos de transferência:

TABELA 3

Lembrando que, a parte alta do barramento de dados é os 8 bits extras, e a parte baixa do barramento de dados é os primeiros 8 bits, do pino D0 ao D7.

As linhas "TENSÃO" são para alimentação elétrica do cartão conectado. É utilizado tensões de +5 Volts, -5 Volts, +12 Volts e -12 Volts.

Agora, a descrição dos pinos exclusivos da interface eISA:

> BE0# ao BE3#: Ativar Byte. 32 bits é igual à 4 Bytes. 1 Byte é enviado através de 8 linhas de dados, sendo que cada grupo de 8 linhas possui um "BEx#" para indicar ao receptor se o Byte enviado é válido ou não;

> EX16#: Isso é usado pelo dispositivo escravo para informar ao mestre de barramento que ele é capaz de transferências de 16 bits;

> EX32#: Isso é usado pelo dispositivo escravo para informar ao mestre de barramento que ele é capaz de transferências de 32 bits;

> EXRDY: Pronto para EISA. Se este sinal for declarado, o ciclo terminará na próxima borda de subida do BCLK. O dispositivo escravo reduz este sinal para inserir estados de espera (os mesmos Walt States inseridos pelo "/I/O CH RDY");

> D17 ao D31: Barramento de dados;

> LA2 ao LA16: Barramento de endereços eISA. Estas linhas não são válidas durante todo o ciclo do barramento, desta forma deve ser utilizado um Latch para armazenar seus valores;

> L24# ao L31#: Barramento de endereços eISA. Estas linhas não são válidas durante todo o ciclo do barramento, desta forma deve ser utilizado um Latch para armazenar seus valores. Perceba que está faltando as linhas que vão do "LA17" ao "LA23", mas lembre-se de que elas estão na interface ISA 16 bits;

> START#: Este sinal é em nível LOW quando o ciclo atual do barramento está na fase inicial. Os sinais de endereço e "M / IO#" são decodificados durante esta fase. Os dados são transferidos durante a fase de comando (indicada pelo "CMD#");

> CMD#: Este sinal indica que o ciclo de barramento atual está na fase de comando. Após a fase de início ("START#"), os dados são transferidos durante a fase de "CMD#". O "CMD#" permanece firme desde a borda descendente do "START#" até o final do ciclo do barramento;

> W/R#: Escrever ou ler. Usado para indicar se o ciclo de barramento atual é uma operação de leitura ou gravação;

> M/IO#: Isso é usado para indicar se o ciclo de barramento atual é uma operação de leitura / escrita ("/MEMR" / "/MEMW") ou uma operação de Entrada / Saída ("/IOR" / "/IOW");

> SLBURST#: O dispositivo escravo utiliza desta linha para indicar que é capaz de estourar ciclos;

> MSBURST#: O mestre de barramento responderá com este sinal se também for capaz de estourar ciclos;

> MAKx: Indica que a solicitação do barramento mestre ("/MREQx" ou "/MASTER") foi concedida para o cartão inserido no slot "x".

> LOCK#: Ativar este sinal impede que outros dispositivos solicitem o controle do barramento via "/MASTER" ou /MREQx";

Agora, será explicado os principais pontos que definem o funcionamento da interface ISA e eISA:

A interface ISA de 8 bits utiliza apenas um ciclo de barramento para efetuar uma leitura ou uma escrita, da mesma forma que ocorre com a interface ISA de 16 e de 32 bits. Repare que, quando digo "ciclo", não estou me referindo aos ciclos de clock na linha "CLOCK", mas sim a quantidade de ciclos de clock necessárias para efetuar uma operação ("/MEMR", "/MEMW", "/IOR" ou "/IOW") pelo barramento.

A interface eISA possui duas linhas extras para indicar que uma transferência vai extrapolar o ciclo de barramento. Estes pinos são o "SLBURST#" e "MSBURST#". Assim, o emissor envia os dados para o receptor numa espécie de "rajada", sem necessitar de tempos de espera entre as atividades, como você verá mais baixo.

AS "QUATRO OPERAÇÕES"

Utilizei os termo "quatro operações" para se referir às atividades executadas no barramento, que podem ser sinalizadas pelas linhas "/MEMR", "/MEMW", "/IOR" e "/IOW".

Caso seja utilizada a interface de 16 bits, também são utilizadas as linhas "MEMW" e "MEMR", com funcionamento análogo à "/MEMW" e "/MEMR", mas exclusivas para sinalizar uma leitura ou escrita em memória acima de 1 MB de capacidade.

Na interface eISA, de 32 bits, é utilizado a linha "W/R#" para informar uma escrita ou gravação e a linha "M/IO#" para informar se é uma atividade envolvendo memória (Leitura / Escrita) ou uma atividade envolvendo transferência de dados (Entrada / Saída).

TRANSFERÊNCIAS ACIMA DE 8 BITS

Na interface de 16 bits, 2 Bytes podem ser transferidos simultaneamente, sendo que o Byte mais significativo (também chamado de Byte alto) é transferido pelas linhas "D8" a "D15", e o Byte menos significativo (também chamado de Byte baixo) é transferido pelas linhas "D0" a "D8".

Para que a transferência de 16 bits seja permitida, um sinal em nível LOW deve ser mandado pela linha "IOCS16". Após isso, a linha "SBHE" e "A0" servem para informar o receptor dos dados a forma com que o barramento de 16 bits será utilizado (ver tabela 3). A transferência de 16 bits só é permitida se "SBHE" = 1 e "A0" = 0, caso contrário será feita a transferência de 8 bits normal.

Ao utilizar um cartão eISA, apenas as linhas de endereço "A0" e "A1" da interface ISA de 8 bits são ativadas. Anteriormente vimos que, para a transferência de dados em modo 16 bits acontecer, deve ser utilizado as linhas "SBHE" e "A1" para mostrar a forma com que os 2 Bytes devem ser enviados pelo barramento. No barramento de 32 bits ocorre a mesma coisa: As linhas "SBHE", "A0" e "A1" devem mostrar ao receptor a forma com que 4 Bytes podem ser transmitidos pelo barramento.

ENDEREÇAMENTO

Outra peculiaridade é que, apesar do slot de 8 bits possuir 19 linhas de endereço (A0 ao A19), apenas 16 delas são utilizadas.

Na versão de 16 bits, foi adicionado mais algumas linhas (LA17 ao LA23), permitindo o endereçamento de 24 bits.

No slot eISA, que possui 32 bits, caso for utilizado um cartão eISA, as 19 linhas de endereço da interface de 8 bits são desabilitadas (exceto A0 e A1), restando apenas LA17 ao LA23 da interface de 16 bits e as linhas LA2 ao LA16 e LA24 ao LA31 da interface de 32 bits.

OS TEMPOS DE ESPERA

A linha "/I/O CH RDY" serve para adicionar tempos de espera entre os ciclos de atividade ("/MEMR", "/MEMW", "/IOR" ou "/IOW") dos dispositivos inseridos no barramento. Manter a linha "/I/O CH RDY" em nível baixo durante muitos ciclos de clock pode gerar problemas no sistema e, principalmente, lentidões ainda maiores. Perceba que a linha "/NOW serve justamente para fazer o contrário, isto é, diminuir o tempo de espera entre as atividades do barramento. Manter os dois sinais ativos pode gerar problemas, apesar de o sistema ignorar o "/NOW" enquanto o "/I/O CH RDY" estiver em nível LOW.

A RELAÇÃO COM A MEMÓRIA RAM

Perceba que a interface de 16 bits possui os pinos "MEMR" e "MEMW", presente nos 36 pinos extras do slot de 16 bits, que servem para indicar leitura ou escrita em memória maior que 1 MB. Mas acessar a memória diretamente? Exatamente!

Na época em que o barramento ISA foi lançado, ele era ligado diretamente ao barramento do processador, que na época tinha uma largura de apenas 8 bits e um clock de 4,77 Mhz.

A memória RAM também era ligada ao barramento do processador, obviamente, portanto todos os periféricos poderiam trocar dados, fazer interrupções na CPU, gravar e ler na memória RAM, fazer tudo pelo mesmo caminho. Veja o diagrama de blocos de uma placa-mãe para processador 8088 abaixo:

Perceba o bloco "RAM Dinâmica" e os slot's ISA de 8 bits.

Para o processador 286, com um barramento de 16 bits e endereçamento de 24 bits, foi incorporada a interface ISA de 16 bits. Veja o diagrama de uma placa-mãe para CPU 286 abaixo:

Perceba que nos dois diagramas apresentados, todos os circuitos da placa-mãe eram ligados ao mesmo barramento de dados fornecido pelo processador. Este barramento continha as linhas de endereço, as linhas de dados e as linhas de controle. O que os engenheiros fizeram foi colocar slot's na placa-mãe para que o usuário adicionasse mais circuitos ao PC.

Os clock's dos processadores de gerações seguintes (o 386, 486 e etc) foram aumentando, passando dos 10 Mhz, e a interface ISA foi ficando para trás, já que não dava pra fazer aumento do clock devido a manter a compatibilidade com placas antigas e também devido as limitações do barramento, desta forma, foi implementado um controlador idêntico ao barramento do processador no chipset Ponte Sul das placas-mãe, permitindo que a interface ISA continuasse a ser utilizada.

Um detalhe bastante interessante é que a interface ISA já foi utilizada até para conectar o chip do BIOS da placa-mãe. Placas de vídeo antigas também vinham com uma interface ISA para conectar o chip do BIOS.

Se você pegar um cartão ISA, verá que nem todos os contatos do conector estão presentes. Isso porque nem todos os circuitos utilizavam todas as linhas do barramento. Observe o cartão para Joystick abaixo:

Esta placa possui uma porta GAME para a conexão de um Joystick. Repare no conector ISA de apenas 8 bits.

Observe a placa de som abaixo:

Esta é uma placa de som da Creative Labs. Além de ter os conectores P2, vem com uma interface GAME. Repare no conector ISA de 16 bits, sendo que está faltando vários contatos.

A interface ISA deixou um descendente, que foi criado pela Intel: é a interface LPC, abreviação para Low Pin Count. É um barramento com largura de 4 bits e que utiliza o clock da interface PCI e parte da lógica de funcionamento da interface ISA. Para saber mais sobre o funcionamento da interface LPC, CLIQUE AQUI!

Ficou com alguma dúvida? Achou que falta alguma coisa? Mande um e-mail para hardwarecentrallr@gmail.com

Gostou do artigo? É só curtir e compartilhar nas redes sociais! Ajude a espalhar conteúdo de qualidade!

FONTES e CRÉDITOS

Imagens: Leonardo Ritter, Google Imagens;

Tabelas e diagramas: Leonardo Ritter;

Fontes: Clube do Hardware; Hardware.com; Universidade Federal do Rio Grande do Sul; Pinouts.ru.


303 visualizações

© 2020 Hardware Central Tecnologia Entretenimento e Comunicação do Brasil Ltda. Todos os direitos reservados.

Wix Editor / Revisão da web page: 3.1/2020 (16/07/20)