PAINEL ELETRÔNICO SONYTECH Nathalio M. de A. Santos, Osamu Saotome Departamento de Eletrônica Aplicada, Instituto Tecnológico de Aeronáutica Resumo O presente artigo mostra o desenvolvimento do Painel Eletrônico, um dispositivo de exibição de imagens rotativo, feito em conjunto com a empresa Sonytech, que produziu o protótipo e a interface com o kit de desenvolvimento ADSP-BF533 EZ-KIT Lite da Analog Devices, utilizando o processador ADSP-BF533 (Blackfin). Os autores trabalharam no software para o controle do hardware e exibição das imagens, além de outros softwares para testes e visualizações. Os softwares foram feitos em VisualDSP++, um compilador da Analog Devices para o Blackfin, e o C++Builder 6, exclusivamente para testes com o protótipo. O Painel Eletrônico Sonytech, nesta versão protótipo, é capaz de exibir aproximadamente 1500 telas, em oito cores (azul, verde, vermelho e combinações), com possibilidade de rotação. Abstract This article shows the development of the Electronic Panel, a rotative device of image exhibition, done together with the company Sonytech, who created the prototype and the interface with the development kit ADSP-BF533 EZ-KIT Lite of Analog Devices, using the processor ADSP-BF533 (Blackfin). The authors developed the software for the control of the hardware and exhibition of the images, beside other softwares for tests and visualizations. The softwares were made in VisualDSP++, a compiler of Analog Devices for Blackfin, and C++Builder 6, exclusively for tests with the prototype. The Electronic Panel Sonytech, in this prototype version, can exhibit 1500 screens approximately, in eight colors (blue, green, red and combinations), with rotation effects. 1. INTRODUÇÃO O Painel Eletrônico Sonytech é um dispositivo capaz de exibir imagens de 8 cores através da rotação de LEDs, aproveitando a permanência de imagens na retina do observador. Para o desenvolvimento deste painel, um protótipo foi construído para testar os softwares e estabelecer os limites do equipamento. O Painel Eletrônico é constituído de três partes principais: - um computador com o software de acesso ao equipamento; - as torres, o motor e seus acessórios, desenvolvido pela empresa Sonytech; - o processador ADSP-BF533 Blackfin e seus acessórios. Computador Arquivos PNL Blackfin Porta Paralela PPI Torres de Exibição Componentes acoplados ao protótipo Figura 1: Diagrama em Blocos do Painel Eletrônico O computador é o responsável pelo desenvolvimento das propagandas desejadas para exibição. Tais propagandas são enviadas para o Blackfin organizar e transmiti-las para as torres, que exibem a mensagem 1
através de LEDs de três cores (vermelho, azul e verde). O motor faz as torres transladarem rapidamente em sua volta, e o software gerenciador do Blackfin possibilita as torres piscarem de forma a criar a imagem desejada. 2. DESCRIÇÃO DO HARDWARE 2.1 Computador O computador é o componente necessário para a criação de imagens e transmissão destas ao painel. Para isso, o computador contém um software capaz de converter as imagens para o formato de exibição do painel (chamado Arquivo PNL) e enviar estes arquivos para o Blackfin, através de uma comunicação serial. O formato PNL foi desenvolvido especialmente para este dispositivo. Cada byte equivale a 8 pixels na vertical, começando do pixel superior esquerdo. As imagens desejadas para utilização devem estar em formato BMP 24 bits (Windows Bitmap). Através deste um software transforma o arquivo BMP para o formato PNL, baseado nas características do painel. Para o protótipo há três cores (azul, verde, vermelho), que combinadas e somadas com o preto e o branco, possibilitam 8 cores. Desta forma o programa ajusta as cores da futura imagem de acordo com a tonalidade das cores da imagem atual. Este formato também possibilita a menor transmissão de informações para o hardware, como será visto adiante. Após a conversão é necessário outro software capaz de enviar os arquivos PNL para o Blackfin. Tal software pode ser o HyperTerminal (programa incorporado do Windows) ou similar. O sistema de comunicação utilizado, para o protótipo, é o RS232. 2.2 Processador ADSP-BF533 Blackfin O Blackfin deve executar três tarefas principais: - recepção de arquivos do computador; - gerenciamento de tais arquivos na memória; - transmissão para até 16 torres de exibição. Para a recepção dos arquivos poderá ser utilizado um canal DMA da UART/SPORT0 (recepção compatível com RS-232) para a memória, pois deste modo o processador pode executar outras funções, sem precisar gerenciar a recepção. O gerenciamento da memória compreende três atividades: a conversão dos arquivos PNL para um formato apropriado para a transmissão pela porta PPI (Parallel Peripheral Interface), chamado de arquivo PPI, o controle da ordem de exibição das imagens e a verificação de erro de memória cheia. A memória é organizada, em quatro regiões (considerando N o tamanho em bytes da imagem no formato PNL); - a primeira região será o destino dos arquivos PNL recebidos pela porta serial. Os arquivos são diretamente escritos, sem intervenção do processador. Os arquivos serão escritos até o buffer estar completo; - a segunda região é destinada aos arquivos PPI já convertidos. Tem o tamanho de 50 telas PPI, totalizando (N * 16 * 50) bytes. É esta região que será lida pela PPI para a exibição; O Blackfin converte as cinqüenta telas PNL iniciais em PPI. Quando uma tela não é mais exibida, imediatamente o Blackfin converte a próxima tela e sobrescreve na primeira tela. Dessa forma, a primeira região da memória serve como um lugar temporário onde os arquivos ficam para serem transmitidos. O formato PNL é utilizado por ser compacto e possibilitar uma melhor visualização dos dados escritos. 2
A transmissão dos arquivos é feita utilizando a porta paralela PPI. Ela possui 16 terminais e capacidade de utilizar sinais de sincronismo (clocks) do sistema ou externo. Cada torre é conectada a um dos terminais desta porta. Utiliza-se também a tecnologia DMA para a transmissão, fazendo o processador executar outros processos simultâneos à transferência de dados. 2.3 Torres de Exibição da Sonytech As torres de exibição são compostas de módulos de 3 colunas de LEDs (vermelha, verde e azul, da direita para a esquerda). Os dados são recebidos por registradores de deslocamento por uma entrada próxima ao primeiro LED vermelho. Cada coluna pode conter até 96 LEDs de uma cor, e está distante de 20 mm de outra coluna. O protótipo possui 4 torres de 24 LEDs por cor. 10 mm 20 mm Fluxo de dados pelas colunas Entrada de dados 70 mm Figura 2: Torres de exibição e inserção de dados As torres são acopladas a um motor que as rotaciona em sentido anti-horário. A velocidade do motor do protótipo não é especificada, pois o software gerenciador detecta a velocidade. O protótipo possui 4 torres de exibição (mas pode suportar 16). A comunicação das torres com o Blackfin é feita através da interface PPI. A exibição das imagens é feita preenchendo a torre com os dados (no protótipo são 72 bits) para depois exibi-los com um pulso de strobe, ativando os LEDs e fixando a imagem até a próxima exibição. 3. DESCRIÇÃO DO SOFTWARE 3.1 Software conversor dos arquivos BMP para PNL Este software foi construído com o intuito de converter as imagens BMP de 24 bits para o formato PNL, de 8 cores. A empresa possui um software preliminar que transforma a conversão em um arquivo em formato binário. Porém para trabalhar com arquivos no VisualDSP++ foi necessário refazê-lo para trabalhar no formato texto, com os dados em hexadecimal. Para a conversão, o software captura a cor de cada pixel da imagem e atribui uma cor de acordo com o nível de verde, vermelho e azul que se deseja. O nível padrão de cada cor é 127. Se o pixel contiver um número da cor maior que o desejado, ele é codificado como 1, senão é codificado como 0. Além desta conversão da cor o software muda a posição dos bits no arquivo. Diferente do BMP, onde o primeiro pixel é o inferior esquerdo, e a varredura horizontal, o formato PNL necessita do primeiro pixel ser o superior esquerdo, com varredura vertical. Finalmente, os dados são gravados em um arquivo texto próprio para o VisualDSP++, com o cabeçalho @@Hexadecimal designando um conjunto de dados (Memory Dump). O desenvolvimento deste software possibilitou ajustar o arquivo para exibição, corrigindo eventuais erros de alinhamento entre as cores. 3
3.2 Software gerenciador do hardware O software gerenciador constitui de três partes, descritas a seguir: 3.2.1 Interface com o usuário O usuário precisa do HyperTerminal (Windows) ou outro programa similar para comunicação em RS-232. A interface é iniciada logo no início do programa, para carregar as imagens PNL do computador para o hardware, e faz duas questões, como quantidade de telas desejadas e se deseja rotação da imagem. Após a transferência de arquivos, a interface termina, momento para o usuário desconectar o cabo RS-232 e iniciar o processamento das imagens. 3.2.2 Processamento da imagem As imagens carregadas na memória do Blackfin são convertidas para exibição (formato PPI) pelo rearranjo dos bits do arquivo PNL de forma que cada byte será escrito em 8 bits de 8 posições de memória consecutivas (como uma ortogonalização dos bits). Isso porque o arquivo PNL armazena a informação de uma coluna em um byte, mas a transmissão desse byte deve ser feita em um terminal (um bit) da PPI. Logo, o byte deve ser escrito na mesma posição (bit) em 8 posições consecutivas. Como cada torre precisa transmitir o arquivo inteiro (pois cada uma percorre toda a extensão da imagem), cada posição deve ter o arquivo inteiro, significando que cada 2 bytes (pois o dispositivo possui 16 torres) possui 1 pixel para cada uma das 16 torres, como mostra a figura 3. Byte 1 Torre 1 0xAB = 1010 1011 Byte 1 Torre 2 0x57 = 0101 0111 Transformando: 00000000000000 1 1 00000000000000 1 1 Posição torre 2: 0x57 Figura 3: Esquema de alinhamento dos bytes na memória A memória deve ter o arquivo invertido, pois o primeiro dado que entra na torre será deslocado nos registradores até chegar ao último LED, portanto o primeiro pixel deve ser o último. Devido ao espaçamento entre as colunas e à forma de inserção de dados, o software gerenciador rearranja a imagem para que as colunas sejam exibidas no tempo certo. Para a primeira torre, por exemplo, os primeiros dados serão da sétima coluna vermelha, da quarta coluna verde (invertida) e os dados da primeira coluna azul. O tempo requerido para atualizar os dados de cada torre é por volta de 238 µs. Após este tempo os próximos dados serão da oitava coluna vermelha, da quinta coluna verde e da segunda coluna azul, e assim por diante. No protótipo, temos os seguintes parâmetros para se ter uma idéia de como é este processamento: Tamanho da imagem: 144 24 pixels = 3456 pixels total 3456 Número de bytes por cor (8 pixels = 1 byte): 8 Tamanho do arquivo PNL: 432 3 = 1296 bytes = 432 bytes Posição torre 1: 0xAB 4
Tamanho do arquivo PPI: 1296 16 =20736 bytes 3.2.3 Exibição da imagem Para exibir a imagem o Blackfin faz uma interface da memória para a PPI através do DMA. A velocidade de exibição é feita através de um Timer do Blackfin ligado na entrada PPI_Clock da interface PPI. Este timer tem referência em outro Timer que, por sua vez, recebe um pulso a cada volta completa do protótipo. Desta forma a velocidade é controlada. O Timer que controla a PPI serve de referência para outro Timer que funciona como um strobe para as torres de transmissão. Este strobe deve ter freqüência 72 vezes menor que o timer da PPI. O controle da velocidade é feito através de uma interrupção, ativada a cada volta completa por um sensor, que calcula o tempo entre duas interrupções e altera o timer da PPI. 4. COMENTÁRIOS O protótipo exibe as imagens em 8 cores, de forma que as imagens nem sempre apresentam o mesmo aspecto do original em 24 bits de paleta de cores. Há alguns pixels que aparecem impropriamente na imagem, que não foram corrigidos até a data de publicação deste artigo. A versão final possui capacidade de exibir 1248 x 96 pixels, LEDs mais próximos (sem o espaço de 20 mm) e relógio para controle maior das imagens. Para o desenvolvimento futuro planeja-se a exibição de imagens em tempo real, de 10 quadros/segundo, o que resulta em uma taxa de aproximadamente 57 Mbits/segundo de transmissão para as torres e em 3,5 Mbits/segundo de transmissão via RS-232/485. Além disso é necessário o gerenciamento dos dados na memória e a conversão em tempo real dos quadros recebidos. Por esses motivos o processador Blackfin foi selecionado, devido a sua alta performance com periféricos, atingindo 133 MHz entre a memória SDRAM e o periférico PPI. Agradecimentos À equipe que trabalha com o professor Osamu na Fundação Casemiro Monteiro Filho, contribuindo com suporte de hardware e equipamentos. Referências Bibliográficas Analog Devices. ADSP-BF533 EZ-KIT Lite Evaluation System Manual Revisão 1.1; Analog Devices. 2003 Analog Devices. ADSP-BF533 Blackfin Processor Hardware Reference Revisão 1.0; Analog Devices. 2003 5