Sie sind auf Seite 1von 112

FACULDADE DE E NGENHARIA DA U NIVERSIDADE DO P ORTO

Emulador em Hardware de Floppy Disk Drive com acesso sem os


Jos Pedro Patrcio Gonalves de S

Dissertao submetida no mbito do Mestrado Integrado em Engenharia Eletrotcnica e de Computadores

Orientador: Hlio Sousa Mendona (Professor Doutor)

2011

Jos S, 2011

Resumo
O uso de disquetes em equipamento antigo mas funcionalmente relevante torna-se cada vez menos vel e de difcil manuteno. Nesta tese prope-se a substituio das drives de disquetes por dispositivos emuladores que, para alm de dispensarem o uso das disquetes, acrescentam valor ao permitir a transferncia da informao atravs de comunicao sem-os. Com o avano tecnolgico sempre em evoluo, apenas natural que suportes de informao, um dia considerados universais, sejam preteridos para dar lugar a outros mais veis, fceis de utilizar e de maior capacidade. As disquetes que no passado eram facilmente acessveis, hoje em dia, desapareceram de circulao. No entanto, no incomum descobrir equipamentos, nomeadamente industriais, ainda teis no dia de hoje que, por diversos motivos, ainda utilizam disquetes na sua operao. Devido sua utilidade no se pretende a sua substituio completa e a sua adaptao atravs de um emulador preferida. Neste trabalho efetuado o estudo relacionado com a comunicao entre uma drive de disquetes e o seu controlador de forma a permitir que a drive possa ser substituda de forma totalmente transparente e no intrusiva. Nesse sentido implementado um emulador com o auxlio de um microcontrolador e de uma imagem de disco que replica os dados presentes nas disquetes. O projeto apresenta ainda o valor acrescentado de permitir que a transmisso dos dados a serem emulados sejam feitos atravs de uma ligao sem os, soluo inovadora em emuladores de drive de disquetes. Na tese descreve-se a implementao do emulador e da comunicao sem os. De forma a auxiliar estas funcionalidades, so ainda criadas ferramentas de apoio a estes sistemas nomeadamente software de gesto e transmisso das imagens de dados. Durante o desenvolvimento da soluo implementada, e devido especicidade da sua comunicao, so construdas ferramentas de anlise e teste apropriadas para a comunicao entre o emulador e o o controlador. So efetuados ensaios experimentais de emulao e da transmisso atravs da ligao sem os que demonstram a validade da soluo proposta.

ii

Abstract
The use of oppy disks in old but still relevant equipment, has become less reliable and of difcult maintenance. In this thesis we propose the replacement of oppy disk drives with an emulator device which, other than not requiring the use of oppy disks, also adds value by allowing the data transfer to occur by a wireless communication link. With constant technological evolution, it is only natural that older storage mediums, once considered universal, are now deprecated and being substituted by more reliable, easy to use and of larger capacity equipment. Floppy disks that once where easily accessible, today have almost disappeared. Meanwhile, it is not uncommon to nd useful equipment, e especially in industry, that, for different reasonsm still uses oppy disks in their operation. Considering the usefulness of these equipments, their substitution is not desirable and its conversion through an emulator is preferred. We performed the study of the communication protocol between the oppy disk drive and its controller to achieve the replacement of the oppy drive in a transparent and non intrusive way. An emulator is built with the aid of a microcontroller and a disk image that copies all the data present in a oppy disk. Together with the advantage of no longer requiring the usage of oppy disk, the project also presents the added value accomplished by the wireless communication, an innovative solution in oppy disk emulators. The thesis describes the implementation of the emulator and wireless communication. To help these features we also created tools to support these systems including software that manages and transmit the disk images. During the development of the project, and because of the uniqueness of their communication, auxiliary tools are built to analyze and test the communication between the emulator and the oppy disk controller. Experimental tests of the emulation and transmission through the wireless link were performed to demonstrate the validity of the proposed solution.

iii

iv

Agradecimentos
Este tese nunca poderia ter sido possvel sem o apoio de inmeras pessoas: Gostaria de agradecer ao Professor Hlio Mendona pela oportunidade e pacincia que demonstrou durante a realizao deste projeto. Ao Professor Jos Martins Ferreira, pelos ensinamentos transmitidos (inclundo os das aulas de Microcontroladores h muitos anos atrs) e por me ter dado a motivao nal que me permitiu concluir este trabalho. Uma palavra de agradecimento muito especial aos meus Pais que sempre acreditaram em mim e, muito para alm de pais, so amigos e verdadeiros heris. A eles, um Muito Obrigado. minha irm pela sua sabedoria e suas palavras de apoio incondicional. Cinco mil quilmetros, que durante tanto tempo nos separaram, so insignicantes. minha namorada mais do que um agradecimento, devo tambm um pedido de desculpa por tanto que se gostaria de ser feito e que teve de ser adiado. Obrigado por acreditares em mim. Agradeo a todos os meus amigos que me acompanharam durante todos estes longos anos do curso. No tenho dvida que ter-vos conhecido fez de mim uma pessoa melhor.

vi

Contedo
ndice Lista de Figuras Lista de Tabelas Abreviaturas e Glossrio 1 Introduo 1.1 Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Estrutura do Documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enquadramento 2.1 Uso de disquetes em equipamento industrial . . . . . . . . . . . . . . . . . . . . 2.2 Uso de disquetes em equipamentos no industriais . . . . . . . . . . . . . . . . . 2.3 Solues Existentes ou Alternativas . . . . . . . . . . . . . . . . . . . . . . . . Discos Magnticos Flexveis 3.1 Histria . . . . . . . . . . . . 3.2 Disquete e o Disco Magntico 3.3 Interface Controlador . . . . . 3.3.1 Codicao MFM . . 3.4 Formato das Faixas e Sectores 3.4.1 CRC . . . . . . . . . 3.4.2 Campo de Dados . . . viii x xi xiii 1 1 2 2 5 5 8 9 13 13 16 18 21 23 28 28 29 29 31 34 34 37 37 38 41 42 43

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

Interface Sem Fios 4.1 Tecnologias de Comunicao Sem Fios 4.2 Norma ZigBee . . . . . . . . . . . . . 4.3 Z-Stack . . . . . . . . . . . . . . . . . 4.4 Mensagens ZigBee . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Desenvolvimento e Implementao 5.1 Plataforma e Ferramentas de Desenvolvimento 5.1.1 RC2300 . . . . . . . . . . . . . . . . . 5.1.2 Kit de Desenvolvimento CC2431DK . . 5.1.3 Equipamento Auxiliar . . . . . . . . . 5.1.4 Software Auxiliar . . . . . . . . . . . . vii

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

viii

CONTEDO

5.2

5.3

5.4 5.5 5.6 5.7

Gestor remoto . . . . . . . . . . . . 5.2.1 Software Gestor . . . . . . 5.2.2 Comunicao via porta srie Emulador . . . . . . . . . . . . . . 5.3.1 Modo Emulador . . . . . . 5.3.2 Modo Carregar Imagem . . 5.3.3 Hardware . . . . . . . . . . Formato da imagem . . . . . . . . . Memria de armazenamento . . . . Transmisso da imagem . . . . . . . Implementao Protocolo MFM . . 5.7.1 Hardware dedicado . . . . . 5.7.2 Sinal auxiliado por hardware 5.7.3 Bit-Banging . . . . . . . . . 5.7.4 Soluo em Assembly . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

48 48 50 52 53 55 56 60 65 65 68 68 69 71 73 77 77 79 81 81 82 85 94

Resultados 6.1 Emulao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Transmisso sem os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Concluses e Trabalho Futuro 7.1 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Trabalho Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A Esquemtico e desenho da PCB do Emulador Referncias

Lista de Figuras
2.1 2.2 3.1 3.2 3.3 3.4 3.5 3.6 3.7 4.1 4.2 4.3 Tear mecnico com cartes perfurados. . . . . . . . . . . . . . . . . . . . . . . . Atari 1040ST com drive de disquetes. . . . . . . . . . . . . . . . . . . . . . . . Disquetes de 8, 5 1/4 e 3 1/2 polegadas. . . . . . . . . . . . . . . . . . . . . . . . . Diagrama de um disco magntico e cabea de leitura/escrita. . . . . . . . . . . . Cabo de dados com inverso de sinais de seleo de drive e conetor IDC. . . . . . Captura de comunicao entre a drive e o controlador de disquetes. . . . . . . . . Codicao MFM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Byte 0x59 nas codicaes FM e MFM . . . . . . . . . . . . . . . . . . . . . . Byte 0xC2 quando codicado no campo de dados ou usado com sinal de sincronismo. Esquema simplicado da arquitetura da pilha ZigBee criada em cima da norma IEEE 802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemplo de congurao de uma rede ZigBee com Coordenador, Encaminhadores e Ponto Terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Esquema de transporte de dados dos pacotes nas diversas camadas que compem o protocolo ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagrama geral. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mdulo RC2300 da Radiocrafts. . . . . . . . . . . . . . . . . . . . . . . . . . . Software do analisador lgico USBeeSX em modo de demonstrao. . . . . . . . Interface da aplicao de anlise do analisador MFM Log Parser. . . . . . . . . . Interface (a) e Programador (b) da memria externa com recurso ao Bus Pirate. . Interface da aplicao Gestor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagrama de funcionamento geral do Emulador. . . . . . . . . . . . . . . . . . . Diagrama de funcionamento do Emulador ao processar os sinais do controlador. . Diagrama de funcionamento do Emulador no modo Carregar Imagem . . . . . . Conetor de energia de 4 pinos. . . . . . . . . . . . . . . . . . . . . . . . . . . . Sinais /DRVSx e /MOTEx ativados simultaneamente pelo controlador de drive de disquetes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Esquema lgico do circuito de ativao do Emulador. . . . . . . . . . . . . . . . Circuito de deteo de degrau nos sinais /DRVS e /HEADS . . . . . . . . . . . . Envio de imagem: Diagrama de sequncia de mensagens entre Gestor, Coordenador, Emulador e Memria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pino de sada em resposta aos comandos efetuados na Listagem 5.1 . . . . . . . . Listagem do contedo da imagem emulada. . . . . . . . . . . . . . . . . . . . . Medio de tempos na transmisso sem os. . . . . . . . . . . . . . . . . . . . . ix 6 8 15 18 20 21 23 23 26

32 33 35 38 39 44 46 47 49 52 54 55 56 58 58 60 66 72 78 79

5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 6.1 6.2

LISTA DE FIGURAS

A.1 Esquemtico da placa de extenso ao mdulo SoC_BB do dispositivo Emulador. . A.2 PCB da placa de extenso ao mdulo SoC_BB do dispositivo Emulador. . . . . . A.3 Prottipo do emulador ligado ao mdulo SoC_BB . . . . . . . . . . . . . . . . .

86 87 88

Lista de Tabelas
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 4.1 5.1 5.2 5.3 5.4 5.5 5.6 5.7 6.1 Diversos formatos de disquetes e suas caractersticas. . . . . . . . . . Pinos do cabo de comunicao entre drive de disquetes e controlador. Organizao dos campos numa faixa. . . . . . . . . . . . . . . . . . . Descrio das caractersticas dos campos das faixas. . . . . . . . . . . Campo prembulo da faixa. . . . . . . . . . . . . . . . . . . . . . . . Campo de identicao do sector. . . . . . . . . . . . . . . . . . . . Campo de dados do sector. . . . . . . . . . . . . . . . . . . . . . . . Campo de enchimento. . . . . . . . . . . . . . . . . . . . . . . . . . Comprimento total de uma faixa. . . . . . . . . . . . . . . . . . . . . Campo de Identicao de um sector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 19 24 25 25 26 27 27 27 28 31 40 50 51 57 59 64 70 79

Comparao de sistemas de comunicao sem os . . . . . . . . . . . . . . . . . Pinout RC2300. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formato e tamanho dos campos do pacote utilizado na comunicao srie. . . Comandos utilizados na comunicao. . . . . . . . . . . . . . . . . . . . . . Sinais de entrada da drive de disquetes. . . . . . . . . . . . . . . . . . . . . Sinais de sada da drive de disquetes . . . . . . . . . . . . . . . . . . . . . . Formas de onda MFM e a sua representao binria em cheiros de imagem. Octetos SPI a simular bits na modulao MFM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Valores temporais mdios registados na rotina de transmisso de dados. . . . . .

xi

xii

LISTA DE TABELAS

Abreviaturas e Glossrio
Abreviaturas
CI CCITT CRC CPLD DD DEEC DJNZ DMA ED E/S IDC I/O FAT FCS FDC FDD FEUP FM HD JTAG kbps Mbps MFM OSAL PCI PLL PWM RAM RF rpm RLL SD SoC SOP SPI tpi Circuito Integrado Comit Consultatif International Tlphonique et Tlgraphique Cyclic Redundancy Check (Vericao de Redundncia Cclica) Complex Programmable Logic Device (Dispositivo Lgico Complexo Programvel) Double Density (Dupla Densidade) Departamento de Engenharia Eletrotcnica e de Computadores Decrease and Jump if Not Zero (Decrementa e salta caso no seja zero) Direct Memory Access (Acesso Direto Memria) Extended Density (Densidade Estendida) Entrada/Saida Insulation Displacement Connector Input/Output (Entrada/Saida) File Allocation Table (Tabela de Alocao de Ficheiros) Frame Check Sequence (Vericador da Trama) Floppy Disk Controller (Controlador de drive de disquete) Floppy Disk Drive (Drive de disquete) Faculdade de Engenharia da Universidade do Porto Frequency Modulation (Frequncia Modulada) High Density (Alta Densidade) Joint Test Action Group - Standard Test Access Port and Boundary-Scan Architecture Kilobits per second (Kilobits por segundo) Megabits per second (Megabits por segundo) Modied Frequency Modulation (Frequncia Modulada Modicada) Operating System Abstraction Layer (Camada de Abstrao de Sistema Operativo) Peripheral Component Interconnect (Interconetor de Componentes Perifricos) Phase-Lock loop (Malha de Captura de Fase) Pulse-Width Modulation (Modulao por largura de pulso) Random Access Memory (Memria de Acesso Aleatrio) Radiofrequncia Rotaes por minuto Run-Length Limited Single Density (Densidade simples) System-On-Chip (Sistema em circuito integrado) Start Of Packet (Incio de Pacote) Serial Peripheral Interface (Interface Perifricos Srie) tracks per inch (Faixas por polegada) xiii

xiv

LISTA DE TABELAS

UART USB WPAN ZDO

Universal Asynchronous Receiver/Transmitter (Recetor/Transmissor Assncrono Universal) Universal Serial Bus (Barramento Srie Univsersal) Wireless Personal Area Network Zigbee Device Object (Objeto de Dispositivo ZigBee)

Glossrio
Controlador Emulador Firmware Gestor Imagem Octeto 8051 Dispositivo responsvel pela interligao entre a aplicao Gestor e o dispositivo Emulador. Dispositivo construido no mbito deste projeto que responsvel pela emulao de uma drive de disquetes. Programa carregado e executado por um microcontrolador. Aplicao informtica responsvel pela gesto e envio das imagens das disquetes para o Emulador. Ficheiro binrio que replica o contedo de um suporte de dados como um disco rgido ou disquete. Conjunto de 8 bits. O mesmo que um byte. Famlia de microcontroladores de 8 bits desenvolvidos pela Intel.

Captulo 1

Introduo

A inovao tecnolgica, imparvel, trz evoluo aos diversos processos produtivos. Mquinas e tecnologias mais rpidas, veis e potentes aparecem para substituir outras mais antigas. No entanto, estes avanos so por vezes disruptivos o que os pode tornar indesejveis e a implementao destas novas tecnologias, em substituio das antigas, poder ter um custo demasiado elevado para a aplicao em causa. A utilizao de disquetes magnticas em equipamentos industriais uma das aplicaes onde o uso de uma tecnologia, entretanto obsoleta, diminui o valor geral do equipamento. Da necessidade de adaptar este processo tecnolgico de forma a poder ser aplicado tambm a equipamentos mais antigos, surge a possibilidade de criar pontes ente as tecnologias mais antigas e as mais recentes.

1.1

Motivao

A motivao por detrs deste trabalho est relacionada com a possibilidade de acrescentar valor a equipamentos mais antigos. A utilizao de disquetes contribui para o decrscimo de abilidade e facilidade de uso nos equipamentos que recorrem a este suporte de dados. De forma a valorizar instrumentos, que de outra forma cariam, obsoletos recorre-se adaptao destes equipamentos que utilizam tecnologias mais antigas por outras mais modernas. No caso de equipamentos que utilizam disquetes, pretende-se libert-los da sua dependncia de um suporte descontinuado e dota-los de tecnologias que tragam mais valias ao seu funcionamento como a fornecida pela comunicao sem os. A soluo de um emulador de uma tecnologia 1

Introduo

obsoleta com um mdulo de comunicao sem os permitem fazer a ponte entre o passado e o presente.

1.2

Objetivos

No mbito desta tese pretende-se substituir um mdulo de disquetes por uma tecnologia mais atual e vel. Propusemo-nos a:

Efetuar um levantamento exemplicativo de equipamentos existentes que podem ser alvo desta adaptao atravs da troca da drive de disquetes; Estudar o funcionamento bsico das disquetes magnticas, das suas drives e da forma como comunicam com o controlador. Implementar em hardware um mdulo que consiga comunicar de forma transparente com um controlador de drive de disquetes; Criar software dedicado que permita a gesto das imagens a serem emuladas; Utilizar tecnologias sem os ZigBee como meio de comunicao e transporte de dados; Implementar ferramentas de testes e anlise que auxiliem o desenvolvimento da emulao.

1.3

Estrutura do Documento

Este documento encontra-se dividido em 7 Captulos que expem o problema e descrevem as solues testadas e utilizadas na resoluo da dissertao. Este texto de introduo ao trabalho compe o primeiro Captulo. O segundo Captulo apresenta o meio onde se pretende que o emulador criado seja utilizado. Descreve a evoluo dos teares mecnicos e de outros equipamentos industriais que eventualmente levou ao uso de disquetes. Analisa ainda uma variedade de equipamentos e cenrios que utilizam esta tecnologia dando relevo ao interesse deste tipo de emuladores. Na parte nal do Captulo so listados alguns emuladores j existentes. No terceiro Captulo feito um estudo mais aprofundado da tecnologia associada aos discos magnticos exveis. O Captulo inicia a abordagem com uma introduo histrica passando de

1.3 Estrutura do Documento

seguida para uma anlise das propriedades fsicas e dos formatos existentes. ainda analisada a comunicao entre a drive de disquetes e o respetivo controlador com especial relevo dado ao protocolo MFM onde so modulados os dados. O Captulo termina com uma anlise ao formato de armazenamento dos dados nas faixas que compem a disquete. O quarto Captulo referente comunicao sem os. Analisa diversas tecnologias e apresenta as tecnologias utilizadas: o protocolo ZigBee e a plataforma de programao Z-Stack, que o implementa. No quinto Captulo descrito todo o processo de implementao do emulador. Comea por introduzir as plataformas que so usadas para implementar o emulador e as ferramentas utilizadas no desenvolvimento do mesmo. Segue-se a descrio dos diversos elementos que iro comunicar com o emulador e a forma como essa comunicao realizada. ainda descrito o emulador e o respetivo funcionamento. So endereados os diversos componentes necessrios ao funcionamento do emulador e descritos os desaos encontrados durante o seu desenvolvimento. No sexto Captulo encontram-se os resultados obtidos na implementao do dispositivo emulador onde o seu desempenho analisado, tanto na componente de emulao como de transmisso de dados. O stimo e ltimo Captulo apresenta as concluses gerais do trabalho realizado e ainda algumas consideraes sobre desenvolvimentos futuros.

Introduo

Captulo 2

Enquadramento

A relevncia e utilidade de um trabalho acadmico em engenharia podem ser medidas, entre outras mtricas, pelo seu impacto no mundo industrial ou domstico. Ser tanto mais til quanto mais prtica for a sua aplicao em outros ambientes. No por isso de estranhar, que muitos projetos realizados em mbito acadmico, sejam consequncia de problemas encontrados no seio industrial. No caso em questo, descrevem-se contextos de aparelhos que utilizam, na sua sequncia de trabalho, dados em suporte magntico. No entanto, este suporte poder ser substitudo de forma a obter a mesma funcionalidade. Nesta seco, descrevem-se alguns tipos de equipamentos que se enquadram nesta descrio e na qual um emulador de drive de disquetes poder ser utilizado. So ainda analisadas solues j existentes.

2.1

Uso de disquetes em equipamento industrial

A par da penetrao das disquetes magnticas no mercado domstico, estas tiveram tambm um papel relevante numa gama de equipamentos destinados industria. O recurso mecanizao para facilitar a execuo de operaes complexas de forma rpida permitiu uma rpida evoluo na prpria complexidade das aes. Para compensar esta evoluo, ferramentas mais simples 5

Enquadramento

foram surgindo de forma a codicar as instrues, no necessitando de serem feitas diretamente na mquina, no meio de uma fbrica, mas sim, por exemplo, no conforto de um escritrio. Passa apenas a ser necessrio transferir a informao do local onde foi criada para o equipamento que a vai executar. Uma soluo precisamente o uso das disquetes magnticas, um suporte fcil de utilizar e extremamente porttil que respondia a este desao de forma ideal. Surgem assim equipamentos industriais com drives de disquetes de 3 1/2 ou 5 1/4 polegadas nas suas consolas de programao e controlo. Uma das atividades que utilizou (e ainda utiliza) esta tcnica a indstria ligada confeo txtil. Na evoluo dos teares manuais para os teares mecnicos, no inicio do Sc XIX, Joseph Marie Jacquard implementou um tear cuja operao e desenho do tecido nal eram controlados atravs de uma sequncia de sinais em cartes perfurados como o representado na Figura 2.1. Desta forma, conseguia-se uma vasta variedade de padres fabricados de forma automatizada e facilmente replicvel.

Figura 2.1: Tear mecnico com cartes perfurados. [1]

Com o aumento da complexidade dos teares mecnicos e eletrnicos e da informao necessria para os operar, os cartes perfurados so abandonados e chega-se, eventualmente, ao uso das disquetes. Os controladores eletrnicos dos teares so ento equipados com drives de disquetes que carregam os padres a tecer. Apesar de usarem drives de disquetes, as semelhanas com o computador

2.1 Uso de disquetes em equipamento industrial

pessoal cam-se por aqui. Estes controladores no possuem outros mtodos de Entrada e Sada alternativos como ranhuras PCI que possam ser usados. Estes sistemas tambm no possuem um sistema operativo que possa ser alterado no sentido de modicar a forma como a informao carregada. Paralelamente aos teares descritos, outros equipamentos industriais utilizam este mtodo para introduo de dados. De forma a melhor entender a penetrao deste uso particular, procuraram-se alguns exemplos prticos destes equipamentos e segue-se uma lista no exaustiva, mas exemplicativa, da inuncia que as disquetes tiveram, e em alguns casos ainda tm, no meio industrial. Ainda no mbito da industria txtil, e paralelamente tecelagem, tambm se encontra o mesmo tipo de controladores em mquinas de bordar ou de malha. Alguns exemplos so:

SWF Dual Function Embroidery Machines SWF/B-902DF Mquina de bordar automtica [2]; Brother BE-1206B-BC StandAlone Type Mquina de bordar automtica com 6 cabeas [3]; Brother BE-1201BAC Mquina de bordar comercial (2007) [4]; HAPPY HGC-Series Multi-Head Machine Mquinas de bordar com mltiplas cabeas [5]; Tajima TMEG-G915 Mquina de bordar indstrial [6]; Brother Pacesetter ULT2001 Mquina de bordar orientada ao mercado domstico [7].

Outro tipo de equipamentos que utilizam instrues geradas por computador so as mquinas de CNC (Computer Numerical Control) que utilizam informao processada em ferramentas de manipulao CAD (Computer Assisted Design) como os sistemas:

VKM4 - 3 Axis CNC The Knee Mill with MillSlide Fresadora de 3 eixos [8]; MILLPWR CNC Control Systems Controlador para mquinas CNC [9]; ABB IEB 1400 Brao Robtico [10].

Finalmente, so listadas algumas ferramentas que usam as disquetes como suporte temporrio para exportar informao que pode ser processada noutros ambientes:

Enquadramento

Tektronix TDS340A - Osciloscpio Digital [11]; Agilent 35670A FFT Dynamic Signal Analyzer - Analisador de sinal [12].

Atentos evoluo e necessidades dos seus clientes, os fabricantes destas ferramentas tambm os equiparam com outros mtodos de transmisso de dados tal como comunicao srie ou de rede. Equipamentos mais moderno j apresentam o uso de portas USB que permitem a leitura de memrias que carregam os dados pretendidos. De notar que estas opes alternativas vo coexistindo com o uso de disquetes e que em alguns casos dada a opo ao cliente sobre qual o sistema a usar. Um exemplo desta opo pode ser consultada nas especicaes da mquina de CNC da Milltronics VKM4 que oferece a opo de uso de um controlador alternativo que utiliza memrias USB em vez de disquetes [8].

2.2

Uso de disquetes em equipamentos no industriais

Para alm dos sistemas industriais, o uso de disquetes tambm deixou a sua marca nos computadores pessoais e consolas de jogos lanados desde os anos 70 at aos meados dos anos 90. Fabricantes como a Atari, Commodore, Sinclair [13, 14], etc, lanaram diversos equipamentos orientados ao mercado domstico, que, se nas primeiras verses dos seus produtos utilizaram cassetes para carregar e guardar programas. Tal como se pode ver na Figura 2.2, estas solues acabaram por evoluir para o uso de disquetes devido sua maior abilidade, capacidade e sobretudo a possibilidade de acesso no sequencial.

Figura 2.2: Atari 1040ST com drive de disquetes. [15]

no entanto necessrio registar que alguns destes sistemas usavam formatos e codicaes fechadas numa altura em que cada fabricante tentava implementar a sua norma de forma a maximizar a capacidade disponvel ou simplesmente tentar evitar as tentativas de cpia pirata [16,17]. Apesar

2.3 Solues Existentes ou Alternativas

destas modicaes no protocolo no serem compatveis com a norma seguida neste trabalho no deixa de ser interessante observar a existncia destas solues. Finalmente, e a par de equipamento fabril e domstico, regista-se mais uma utilizao de equipamentos de alto valor para os seus proprietrios mas que utilizam novamente disquetes no seu funcionamento. Alguns exemplos so os equipamentos ligados industria da luz e som que utilizam disquetes de forma a guardar informao referente a sequncias de notas que podem ser mais tarde recuperadas ou utilizadas em outros equipamentos como:

Yamaha PSR-620 Teclado Digital lanado em 1995 [18]; Jands Hog 500 Consola de controlo de luz [19].

2.3

Solues Existentes ou Alternativas

Com o progressivo abandono do uso de disquetes foram desaparecendo dos equipamentos as respetivas drives. Isto criou problemas em duas frentes principais: 1) como fazer a interface entre equipamentos antigos e novos; 2) como armazenar a informao. No mercado domstico, por exemplo, este problema foi resolvido com o aparecimento de diversas drives de disquetes que interagem com o sistema antrio atravs da interface USB. No era incomum ver na lista de acessrios de computadores portteis a drive de disquetes externa, que permitia ao utilizador aceder aos seus dados [20]. No entanto esta soluo no resposta ao problema do equipamento industrial por trs fatores: 1) no dispensa o uso de disquetes; 2) o equipamento industrial em foco raramente equipado de interface USB; 3) a lgica interna teria de procurar a informao noutro dispositivo que no o esperado. A soluo, passa pela substituio da drive de disquetes por um emulador. O emulador transforma os dados antes presentes numa disquete na linguagem utilizada entre a drive de disquetes e o controlador. So ento encontradas algumas solues que procuram resolver o problema apresentado. Para alm de produtos disponveis comercialmente, encontrou-se tambm alguma informao sobre conceitos relacionados, por exemplo, uma patente da 3Com Corporation, datada de 1995m que procurava implementar um aparelho para usar memria ash como emulador de disquete num computador [21]. Este sistema, no entanto, apenas apresenta como ponto de interface o prprio emulador, no prevendo que funcione como ponte de ligao com outros sistemas ou protocolos.

10

Enquadramento

Em relao ao segundo problema, o da preservao da informao armazenada em disquetes magnticas, regista-se tambm interesse e consequente investigao [2224]. Parte do estudo realizado sobre discos magnticos exveis relativo recuperao e manuteno de informao, no seu sentido lato e no no protocolo de comunicao em si, com vista sua emulao e substituio direta [24]. Como fonte de informao registam-se algumas folhas de caractersticas dos controladores de disquetes [2528] que entretanto foram absorvidos por superchips de E/S que equipam as placas me e lidam com diversos protocolos e diferentes interfaces. Parte destas fontes de informao so bastante datadas relativamente aos controladores atuais mas possuem ainda informao til no que diz respeito ao seu funcionamento bsico. Por outro lado, encontrou-se tambm informao relevante nas folhas de caractersticas das drive de disquetes como a Teac FD-235HF [29] ou Shoreline X1DE-31U [30]. Outras fontes de informao utilizadas na realizao deste projeto foram compiladas por uma comunidade de curiosos e hobbyistas de jogadores de videojogos em computadores pessoais. Entusiastas documentaram relativamente bem as interfaces utilizadas nestas plataformas numa tentativa de no perderem os jogos da sua juventude e de os poderem continuar a jogar no ambiente que to bem conheciam. Como o suporte magntico perecvel, gastando-se com o tempo e o nmero de leituras, era necessrio copiar a informao guardada nos discos para um suporte no degradvel. Apesar do objeto alvo deste projeto ser diferente, o meio usado e tecnologias usadas so as mesmas sobre as quais estes projeto se debrua. Alguns destes projetos so analisados. O Emulateur de lecteur de disquete [31] executado por Jean Francois del Nero consiste num emulador da drive de disquetes. Este projeto usa imagens de discos anteriormente copiados das disquetes originais eliminando da equao os problemas que caracterizam os discos exveis. As imagens dos discos so carregadas para o emulador via USB desde um computador antrio, ou atravs de um carto de memria Secure Digital que pode alojar vrias imagens. O Amiga Floppy Emulator, Mark II [32], outro projeto realizado por Tim Tashpulatov, um entusiasta dos computadores da dcada de 80 que realizou uma interface e emulador para comunicar com a sua consola e poder dispensar as disquetes. Por ltimo surge o projeto do emulador Cumulus [33]. Os seus sistemas alvo Oric-1 e Oric Atmos no possuem o controlador de drive de disquetes integrado recorrendo assim a acessrios que ligam a portas de extenso. Este projeto tem a particularidade de emular no s a disquete mas tambm o controlador associado usando assim um ponto de contacto diferente. Entre projetos levados a bom termo e ainda outros em curso, verica-se que existe elevado interesse neste tipo de solues que no interram com o equipamento antrio. Mais, a existncia

2.3 Solues Existentes ou Alternativas

11

deste tipo de projetos no industriais, mostra que possvel a sua criao atravs do recurso a equipamento de relativo baixo custo e a elementos facilmente acessveis. Para alm destes projetos, so conhecidos alguns equipamentos emuladores criados especicamente para a substituio das drives de disquetes em equipamentos industriais. O USB Floppy Emulator [34], lanado pela empresa alem ipcas GmbH, apresenta na sua face posterior os mesmos conectores de energia e de disquetes de uma drive normal, tendo na sua face frontal uma porta USB qual se pode ligar uma vulgar memria USB. Botes e um pequeno visor numrico permitem escolher a disquete virtual que se pretende utilizar uma vez que a memria USB pode conter dados com a informao de 100 disquetes. Outra empresa, PLR Electronics, especializada na reparao de equipamento de bordados, criou um emulador de drive de disquetes como uma mais valia que permite ainda o acesso via rede Ethernet, para alm do acesso via memria USB [35]. Datex, uma empresa orientada recuperao de dados e reparao de hardware, possui tambm uma linha de produtos de emulao, no qual se insere o DTX 200 - Emulation de Floppy [36]. Como os anteriores, o DTX 200, ocupa o espao equivalente de uma drive de disquetes de 3 1/2 polegadas e garante suporte para uma variedade de drives e controladores, incluindo os mais antigos 8 polegadas. Seguindo o mesmo formato dos emuladores anteriores, o emulador EMUFDD [37, 38] apresenta como caractersticas diferenciadoras o uso de software livre na gerao das imagens e a especial ateno dada sensibilidade a erros. Finalmente, apresenta-se uma soluo alternativa que se revela interessante ao prescindir da intruso no equipamento que se pretende intervencionar. Esta soluo recorre a um outro ponto de contacto para efetuar a emulao: as cabeas de leitura e escrita da drive de disquetes. Tanto a SONY como a JVC produziram disquetes emuladoras que aceitam cartes de memria e fazem de ponte entre os pinos do carto e a cabea de leitura magntica da drive de disquetes [3941]. Esta soluo dispensa totalmente a alterao de equipamento no sistema antrio ao utilizar apenas disquetes modicadas. Estes discos foram lanados para o grande pblico para que os utilizadores de cmaras digitais conseguissem aceder aos cartes de memria de forma prtica. Para alm de no intrusiva, esta soluo apresenta-se bastante interessante tambm do ponto de vista tecnolgico: o emulador tem todos os sinais de controlo disponveis que lhe permitem efetuar as operaes de leitura e escrita. A alimentao tem de ser externa e sentir os sinais atravs da rotao do disco bem como o movimento da cabea de leitura. Finalmente, o espao fsico disponvel para alojar a toda a lgica de emulao muito reduzido.

12

Enquadramento

No entanto, ao analisar estas solues, verica-se que requer a utilizao de software especial que corre em Sistemas Operativos de alto nvel (Windows e Macintosh). Esta limitao impeditiva nos sistemas industriais que usam sistemas operativos especcos. Apesar destas limitaes e da acrescida complexidade, poder ser interessante pesquisar a viabilidade deste tipo de solues num outro trabalho. Das alternativas encontradas nenhuma recorre a tecnologia sem os para carregar a informao no emulador como proposto neste trabalho.

Captulo 3

Discos Magnticos Flexveis

"A problem clearly stated is a problem half solved."


Dorothea Brande (1893 - 1948)

De forma a apresentar uma implementao funcional, necessrio conhecer o funcionamento da teoria prtica do alvo: a drive de disquetes. A tecnologia associada a este equipamento assim ento analisada e interpretada para que o emulador possa substituir a drive de forma totalmente transparente. O funcionamento de uma drive de disquetes, a prpria disquete e a comunicao com o controlador so explorados e analisados neste captulo.

3.1

Histria

Na evoluo das mquinas computacionais, inevitvel ignorar os suportes de gravao de dados de forma permanente ou a longo prazo, especialmente os que se pretendem portteis [42]. E se hoje em dia ubquo o transporte de memrias USB no porta-chaves, houve uma poca em que eram discos magnticos que ocupavam os bolsos das camisas. Apresenta-se nesta seco, uma breve histria do aparecimento e evoluo dos discos magnticos de forma a melhor entender o seu funcionamento. 13

14

Discos Magnticos Flexveis

Desde a existncia de suportes que codicavam a informao usando propriedades fsicas, procurou-se encontrar outras solues que pudessem, de forma mais eciente, comunicar com os computadores. Na segunda metade do sculo XIX, o uso de cartes perfurados foi um dos mtodos preferenciais no armazenamento e transferncia de informao. Com eles, era possvel programar e congurar mquinas tais como teares mecnicos. Foi ento de forma quase natural que passaram a ser tambm usados, como mtodo de introduo de dados, em computadores no advento da sua evoluo [43]. No entanto, esta tecnologia era manifestamente limitada e inconveniente face ao crescente volume de dados pois requeria uma interface fsica ou tica de grande dimenso para extrao de dados que eram limitados pela rea fsica do carto. Gradualmente, foram adotadas outras solues nomeadamente o registo em suporte magntico: o magntico, bobines, cassetes, discos rgidos e disquetes para mencionar apenas alguns. Destes suportes, os representados pelas disquetes ou discos magnticos exveis tm um papel de especial relevo. Os discos exveis foram introduzidos nos nais dos anos 60 como um meio de carregar o cdigo de programas de arranque ou de diagnstico em servidores. Os primeiros discos tinham grandes dimenses, aproximadamente 20 cm (8 polegadas). Apesar disso a sua capacidade de armazenamento esgotava-se abaixo dos 100 kB e permitiam apenas a operao de leitura uma vez que eram programados durante a sua fabricao. Quando a IBM introduziu o modelo 33FD em 1973, um disco que permitia uma maior densidade e consequente capacidade, introduziu tambm a novidade de permitir tanto a leitura como escrita [44, 45]. Foi s em 1976 que apareceram as disquetes de 5.25 polegadas chamadas minioppy [46]. Em comparao com as de 8 polegadas, as de 5.25 polegadas apresentavam como caracterstica inovadora o seu tamanho mais reduzido. De registar que estes discos efetivamente representavam uma regresso em termos de capacidade bruta. Em 1976 os discos de 8 polegadas j apresentavam duas cabeas de leitura para usufruir dos dois lados do disco. Estes discos permitem uma maior capacidade de armazenamento de 568 kB face aos 322 kB dos discos de 5.25 polegadas [44]. A procura por um formato mais prtico foi sempre uma preocupao, demonstrada pelo aparecimento em 1984 de um disco ainda mais pequeno de 3 polegadas e meia (3 1/2 polegadas). A Figura 3.1 mostra a relao de tamanhos entre as disquetes de 8, 5 1/4 e 3 1/2 polegadas. As disquetes de 3 1/2 polegadas mantiveram-se como o suporte universal at meados dos anos 90 [47]. Este disco 3 1/2 continha um invlucro em plstico rijo de forma a proteger o disco magntico no seu interior. A evoluo tecnolgica encarregou-se de trazer inovao aos novos discos que facilmente cabiam num bolso: Elevada densidade de escrita, taxa da transferncia mais rpida associada a mais altas rotaes com a mesma abilidade e o uso da modulao MFM (3.3.1). O uso de MFM veio substituir a at ento utilizada FM ao permitir uma maior densidade de bits [46, 48, 49]. Com a evoluo das disquetes, diversos sistemas operativos poderiam utilizar diferentes formatos de organizao de dados, por vezes incompatveis entre si, apesar de usarem o mesmo suporte fsico. Estas diferenas pretendiam aumentar a capacidade do disco atravs do uso de

3.1 Histria

15

Figura 3.1: Disquetes de 8, 5 1/4 e 3 1/2 polegadas. [50]

formatos e nmeros de faixas diferentes. Outras alteraes surgiam da pretenso de dicultar as cpias ilegais tornando os processos de leitura destes discos limitados s aplicaes e equipamentos para quais eram desenhados [16, 17]. Sendo um suporte magntico, exvel e exposto ao ambiente os discos so afetados, e degradados, por estmulos externos como campos magnticos, temperatura, humidade e partculas de p [24, 51]. Se em condies timas de armazenamento as disquetes tm uma vida til prevista de 5 anos, em utilizao em ambientes adversos este valor pode diminuir consideravelmente e exigir a sua substituio numa altura em que estas so descontinuadas [47]. A par dos discos magnticos exveis, existe tambm outra famlia de produtos baseados em discos magnticos rgidos que hoje em dia so utilizados no armazenamento de elevados volumes de informao nos computadores pessoais. Estes discos, por serem rgidos em vez de exveis, permitem atingir elevadas velocidades na ordem das 10.000 rpm. Associando a velocidade ao facto de a cabea de leitura/escrita no tocar na superfcie do prato rotativo torna-se possvel obter uma maior longevidade. Verica-se assim, que a tecnologia associada aos discos magnticos no caiu em desuso, mas sim evoluiu noutras direes. Apesar de hoje em dia o disco exvel estar praticamente abandonado, o disco rgido continua como um dos principais formatos de gravao de dados no mercado domstico e empresarial. Este trabalho ir debruar-se sobre o formato mais comum: as disquetes de 3 1/2 polegadas de 720 kB e 1.44 MB. Como alguma da informao sobre as tecnologias usadas nas disquetes de 3 1/2 no estava disponvel foi, em alguns casos, necessrio adaptar a informao extrada de documentos relativos a outros formatos. Devido forma como a informao armazenada e transmitida ser relevante para a soluo

16

Discos Magnticos Flexveis

proposta neste documento, apresenta-se de seguida uma breve descrio do funcionamento de um disco magntico.

3.2

Disquete e o Disco Magntico

A convencional disquete de 3 1/2 polegadas sobre a qual este trabalho se debrua utiliza, tal como outros suportes magnticos exveis, um disco de plstico boPET (biaxialmente orientado Politereftalato de Etileno) revestido por oxido de ferro ou uma liga de cobalto que lhe atribui propriedades magnticas [49, 52]. Em comparao com os outros formatos de 5 1/4 e 8 polegadas, este formato apresenta, para alm da menor dimenso, e como medida de proteo, uma capa de plstico mais rgido e uma proteo de metal que, ao deslizar, permite que a cabea de leitura e escrita possa aceder ao disco magnetizado. Este invlucro rgido garante uma maior durabilidade e maneabilidade. No interior da disquete, encontra-se ainda um no lme de bra que limpa a superfcie do disco contra resduos e partculas que possam eventualmente ter entrado no interior da disquete. Considerando que a disquete um meio porttil, necessrio garantir que possa ser lido e escrito em diferentes equipamentos. De forma a garantir esta propriedade, necessrio formatar a informao nos discos para que possa ser recuperada em diferentes sistemas. Isto conseguido atravs da utilizao de formatos pr denidos, que denem a forma como a informao guardada nos discos. Um disco dividido em faixas (track ou cylinder). Cada faixa por sua vez dividida em sectores (sector). Diferentes formatos de discos diferem, para alm do tamanho, no nmero de faixas, na quantidade de sectores por faixa e nalmente no tamanho do sector [49, 53]. Um disco pode ainda utilizar as duas faces da sua superfcie e assim duplicar o nmero de faixas disponveis. Cada face acedida por uma cabea de leitura/escrita diferente. A Tabela 3.1 lista alguns destes formatos. Tabela 3.1: Diversos formatos de disquetes e suas caractersticas. Tamanho Capacidade 160K 180K 320K 360K 1.2M 720K (DD) 1.4M (HD) 2.8M (ED) Cabeas 1 1 2 2 2 2 2 2 Faixas 40 40 40 40 80 80 80 80 Densidade 48 tpi 48 tpi 48 tpi 48 tpi 96 tpi 135 tpi 135 tpi 135 tpi Sectores 8 9 8 9 15 9 18 36 Bytes/Sector 512 512 1024 1024 512 512 512 512

5 1/4

3 1/2

Cada material magntico dependendo da forma como construdo, apresenta diversas propriedades associadas ao campo magntico sendo uma destas caractersticas a densidade magntica.

3.2 Disquete e o Disco Magntico

17

Melhor lgica e maior densidade magntica permitem maiores variaes no campo magntico na mesma rea fsica, logo maior densidade de informao. Com a evoluo tecnolgica, os diversos formatos de disquetes foram progressivamente adaptados de forma a obter uma maior densidade de informao e consequente capacidade e abilidade. O numero de faixas por polegada suportado foi aumentando ou seja, no mesmo espao fsico, passa a ser possvel codicar mais informao. Esta evoluo foi acompanhada com a melhoria na sensibilidade e velocidade da lgica utilizada nas operaes de manipulao do campo magntico. Do mesmo modo, ao usar um componente magntico com diferentes caractersticas, consegue-se uma maior taxa de Bits por Polegada (bpi) que permite variaes no campo magntico mais prximas umas das outras. Esta propriedade verica-se facilmente nas disquetes de 4MBytes (2.8MBytes aps formatao) que, ao usar um composto de Brio como material magntico, atinge dbitos de 1 Mbps [45, 54].

Como apresentado na Figura 3.2, uma faixa disposta concentricamente ao longo do disco, estando a faixa 0 no rebordo exterior. Separadas por uma distncia mnima de forma a evitar interferncia entre faixas, estas dispem-se de forma a ocuparem a rea disponvel. Em cada faixa, a informao organizada em sectores. Dependendo da densidade com que os dados podem ser codicados na superfcie magntica, o nmero de sectores e o tamanho destes variam. De notar que estes parmetros so constantes ao longo do disco apesar da rea linear disponvel ser menor no interior do disco do que no seu rebordo. Ainda que tenham existido discos que utilizavam velocidades de rotao variveis, os discos de 3 1/2 polegadas utilizam uma velocidade de rotao constante de 300 rpm. Sendo o nmero de sectores xo por faixa, a capacidade do disco limitada pela mxima quantidade de informao que se consegue guardar na faixa mais interior. Poderse-ia aproveitar melhor a rea disponvel ao utilizar velocidades variveis. No entanto, as drives de disquetes iriam necessitar de uma lgica mais complexa, tanto a nvel do motor, como no tratamento de dados; este aumento de complexidade provavelmente no compensaria o ganho de capacidade e assim foi adotada a soluo existente, com velocidade de rotao xa.

Para aceder informao contida nas disquetes, o controlador indica drive de disquetes a faixa sobre a qual deve colocar a cabea de leitura. A drive envia o contedo dessa faixa assim que a cabea de leitura deteta as transies do campo magntico. Os sinais de controlo e sincronismo presentes na faixa, permitem ao controlador detetar o sector que deseja escrever/ler. Os sectores so denidos na formatao do disco. Dependendo do formato, o controlador de disquetes do sistema manipula os sectores atravs de campos de cabealho. Estes campos ajudam a saber onde guardar a informao e se esta foi gravada corretamente atravs de campos de vericao. O formato dos sectores discutido na seco 3.4 referente ao formato de dados.

O resto do captulo ir concentrar-se nas disquetes de 3 1/2 polegadas de Dupla Densidade (DD) de 720 kB e nas de Alta Densidade (HD), 1.44 MB de capacidade IBM format [30]. Em algumas situaes, outros sistemas podero ser referidos para que sirvam de comparao.

18

Discos Magnticos Flexveis

Faixa

Cabea Leitura/ Escrita

Sector Cabeas Leitura/ Escrita

(a) Vista de topo

(b) Vista lateral

Figura 3.2: Diagrama de um disco magntico e cabea de leitura/escrita.

3.3

Interface Controlador

A comunicao entre a drive de disquetes de 3 1/2 polegadas e o respetivo controlador feita por diversos sinais transmitidos num cabo plano de 34 pinos como representado na Figura 3.3 e caracterizado na Tabela 3.2.

Apesar de a informao de dados ser transmitida num formato srie, o controlo realizado atravs de sinais paralelos e independentes. A lgica que rege o funcionamento de uma drive de disquetes (FDD) relativamente simples devido sua natureza principalmente mecnica. Os motores so controlados a partir de instrues dadas pelo controlador no equipamento antrio. A drive de disquetes tambm no executa qualquer interpretao dos sinais de dados. Durante a leitura, deteta as alteraes no campo magntico presente nas disquetes e sinaliza-as atravs de um impulso no sinal de leitura. Efetua a operao inversa, manipulando o campo magntico, quando deteta um impulso no sinal de escrita, na operao de escrita.

O elevado nmero de pinos presente no cabo explicado pela presena de sinais de terra em metade dos sinais. A terra presente nos pinos mpares ajuda a diminuir a interferncia por crosstalking nos outros sinais. Os pinos de sinal so assim os pinos com numerao par reduzindo de forma considervel a quantidade de sinais que so necessrios para interagir. Apesar do envio de dados recorrer a um nico sinal em formato srie, todos os outros sinais necessitam de ser considerados.

3.3 Interface Controlador

19

Tabela 3.2: Pinos do cabo de comunicao entre drive de disquetes e controlador (FDC: Controlador de disquetes, FDD: Drive de disquetes) Pino Impares 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 Sinais Terra /DENSEL N/C N/C /INDEX /MOTEA /DRVSB /DRVSA /MOTEB /DIR /STEP /WDATA /WGATE /TRK00 /WPT /RDATA /SIDE /DSKCHG Direco FDC FDD
-

Descrio Seleo Densidade Reservado Reservado ndice Ativar Motor Drive A Selecionar Drive B Selecionar Drive A Ativar Motor Drive B Selecionar direo Passo cabea leitura/escrita Escrita de Dados Ativao de modo escrita Faixa 0 Proteo Escrita Leitura de Dados Seleo de cabea Disco ejetado

    

Os sinais digitais tm lgica negativa e so ativos a 0 Volts e desativos a 5V. O sinal Density Select (/DENSEL) sinaliza a drive de disquetes sobre qual a densidade e consequente dbito de dados deve operar. 5V desativa o sinal e habilita a transmisso de dados de alta densidade (500 kbps e 1 Mbps) e 0V ativa o sinal que sinaliza a baixa densidade (300 kbps ou 250 kbps). De notar que o equipamento evoluiu de forma a ter esta informao diretamente na disquete atravs da realizao de furos no invlucro de plstico nas disquetes de 3 1/2 polegadas [55]. Juntamente com a evoluo da tecnologia que permite a deteo automtica destas caractersticas, o sinal foi perdendo utilidade e a sua prpria funo foi sendo alterada dependendo do fabricante da drive de disquetes. Atravs de sinais de controlo, o mesmo cabo pode suportar duas drives de disquetes (tipicamente referidas por A e B). Normalmente utiliza-se um cabo que possui alguns dos sinais de controlo (pinos 10 a 16) invertidos para que cada drive seja controlada sem conitos ou necessidade de conguraes adicionais. Cada drive vem de fbrica congurada como sendo uma drive B e assim duas drives, cada uma conectada ao cabo em pontos diferentes, vm os sinais na sua porta de comunicao como se o controlador tivesse sempre a comunicar com a drive B apesar de este usar sinais diferentes. Estes sinais, Motor Enable (/MOTEx) e Drive Select (/DRVSx) indicam drive de disquetes que deve ligar o motor principal e estar preparada para receber comandos. A drive necessita

20

Discos Magnticos Flexveis

Figura 3.3: Cabo de dados com inverso de sinais de seleo de drive e conetor IDC.

de algum tempo para que a rotao do disco estabilize nas 300 rotaes por segundo, assim, o controlador pode acionar o sinal de motor antes e s ativar a drive assim que estiver tambm preparado para receber e enviar informao. A utilizao dos dois sinais permite ainda a utilizao de duas drives de disquetes de forma simultnea em que os motores so mantidos ativos enquanto que o sinal de seleo de drive alternado.

O controlador de drive de disquetes (FDC) controla a cabea de leitura da drive atravs de 3 sinais que servem para selecionar qual a faixa pretendida: Head Step (/STEP), Head Direction (/DIR) e Head Select (/SIDE). A localizao da cabea de leitura/escrita no transmitida da drive de disquetes ao controlador a no ser quando est sobre a faixa 0. Neste caso o sinal Track 0 (/TRK00) ativado informando o controlador. A partir daqui, o controlador dever contar o nmero de impulsos que envia drive de disquetes de forma a selecionar a faixa pretendida. A drive de disquetes move a cabea de leitura ao longo do raio da superfcie da disquete a cada impulso do sinal /STEP na direo denida pelo sinal /DIR. Se /DIR no estiver ativo a cabea move-se na direo do rebordo do disco em direo faixa 0. Caso contrrio, sobe nas faixas at faixa 79 no interior do disco. Na Figura 3.4 visvel uma captura da comunicao entre o controlador e a drive de disquetes onde se mostra a sinalizao relativa ao movimento da cabea. Com o sinal /DIR no ativo, o sinal de /STEP repetidamente impulsionado at que o sinal /TRK00 seja ativado.

3.3 Interface Controlador

21

Figura 3.4: Captura de comunicao entre a drive e o controlador de disquetes.

Dependendo do sinal /SIDE, a cabea do respetivo lado ativada e as operaes de leitura ou escrita so efetuadas com essa cabea. Na verdade, a ao de leitura no necessita de qualquer comando por parte do controlador. A cabea de leitura, ao encostar superfcie do disco, envia a informao que encontra de forma contnua. A cada inverso no campo magntico, emitido um impulso no pino Read Data (/RDATA). relegada para o controlador a tarefa de interpretar a informao quando este precisar e estiver disponvel. Devido velocidade de rotao do disco, a informao presente nas faixas repetida a cada 200 milissegundos. Para ajudar o controlador a sincronizar esta informao, um sinal Index (/INDEX) ativado quando a cabea de leitura passa sobre o prembulo da faixa que precede o primeiro sector. Caso o controlador de drive da disquetes pretenda ler ou gravar dados mas a drive de disquetes no tenha nenhuma disquete inserida, a drive sinaliza o controlador deste facto atravs da ativao do sinal Disk Change (/DSKCHG). Se o controlador tentar escrever dados numa disquete que tenha ativada a proteo contra escrita, a drive tambm sinaliza o controlador atravs do sinal Write Protect (/WPT).

3.3.1

Codicao MFM

Atravs da manipulao de corrente eltrica na cabea de escrita alterado o campo magntico associado ao disco e assim guardados os dados que compem a faixa e que iro descrever a informao pretendida. A codicao dos sinais digitais ento descrita. De notar que difcil detetar (ler) um campo magntico esttico, assim so utilizadas as alteraes da polarizao no campo magntico presente no disco de forma a identicar sinais lgicos. Um controlador especial consegue assim, a partir das variaes detetadas, interpretar uma sequncia de sinais binrios lgicos. De forma a melhor contornar as limitaes que o suporte apresenta, so utilizadas codicaes otimizadas. Sendo que os dados so guardados de forma sequencial, a sua interpretao necessita de um sinal de relgio associado. Uma vez que a disquete um suporte de gravao porttil, esta pode ser usada em diferentes sistemas que geram relgios diferentes. No se pode ento recorrer a um sinal de relgio nico e universal para garantir que a

22

Discos Magnticos Flexveis

interpretao dos dados, feita na operao de leitura, corresponda operao de escrita num outro equipamento. Assim, um dos desaos que a gravao em suporte magntico apresenta a diculdade da manuteno de um relgio de sincronizao. Apesar da velocidade de rotao do disco se pretender constante, pequenas variaes sero inevitveis e assim este pode ser considerado como fonte de relgio. Longas sequncias de sinais iguais apresentam o risco de perder sincronismo. No caso dos discos, este problema resolvido com a introduo de sinais de sincronizao no meio da cadeia eliminando assim o risco de sequncias perigosas que levem interpretao errada da informao. Cdigos que apresentam esta caracterstica so geralmente apelidados de RLL (Run Length Limited) [56]. Da mesma forma, o material magntico pode apresentar caractersticas que dicultem a gravao de mais do que um determinado nmero de alteraes de polaridade por unidade de espao e, consequentemente tempo, devido rotao do disco. Este facto limita a velocidade e densidade de informao. Um cdigo cuidadosamente planeado consegue contornar e minimizar estas limitaes. Existem diversos mtodos e cdigos que permitem este tipo de manipulao da sequncia de informao a gravar nos discos. No caso dos discos exveis e de alguns discos rgidos mais antigos utilizavam-se cdigos FM (Frequency Modulation) na codicao da informao. A codicao FM foi entretanto abandonada em favor da MFM (Modied FM ) que apresenta maior ecincia [49, 57]. Na codicao FM um sinal lgico 1 codicado com duas alteraes no uxo magntico, e um sinal 0 codicado com uma alterao seguida de uma no alterao no uxo. Verica-se assim que um sinal 1 tem o dobro da frequncia que um sinal 0 e da o nome da codicao Modulao de Frequncia. Referente s disquetes de 5 1/4 polegadas e 360 kB de capacidade, a velocidade de transmisso (e tambm de armazenamento) de dados de 250 kbps. Ou seja, cada bit demora aproximadamente 4 s a ser transmitido. No caso de um sinal lgico 1, em que so necessrias duas inverses de sinal, implica que no haja mais do que duas inverses de sinal em menos de 2 s. Como descrito anteriormente, este valor est tambm associado frequncia mxima de variaes no uxo magntico que o equipamento e o disco conseguem suportar. Com uma codicao mais eciente consegue-se, respeitando a mesma distncia mnima entre variaes de uxo, um maior dbito de informao. Surge ento a codicao MFM. Na codicao MFM, cada bit ocupa um espao temporal xo: uma clula. Cada clula possui um sinal de relgio e outro de dados. O sinal de relgio apresenta-se no incio da clula e o de dados no centro desta. Um sinal lgico 1 traduzido por uma inexo de sinal no centro da clula reservada ao bit. Um sinal lgico 0 apresenta duas codicaes dependendo do bit que foi transmitido na clula anterior. Caso tenha sido um 1, ento no feita qualquer inverso no uxo do sinal. Caso tenha sido um 0, ento feita uma inverso de sinal no inicio da clula. As formas

3.4 Formato das Faixas e Sectores

23

de onda associadas a estes sinais so desenhadas na Figura 3.5. O sinal de relgio (impulso no incio da clula) no transmitido a no ser que no bit anterior no tenha ocorrido um impulso no sinal de dados.

(a) Bit 1

(b) Bit 0 (aps um 1)

(c) Bit 0 (aps um 0)

Figura 3.5: Codicao MFM Com a nova codicao, possvel diminuir o tamanho da clula que cada bit utiliza para metade (2 s) e mesmo assim garantir que a distncia mnima entre as inverses no material magntico no se altera. O sistema MFM apresenta-se assim mais eciente ao codicar a mesma informao em metade do tempo, como pode ser vericado na Figura 3.6, onde uma alterao do uxo representada atravs de um impulso de sinal. De notar que a distncia mnima entre dois impulsos consecutivos mantida. Esta codicao garante ainda a existncia de um impulso a pelo menos cada 2 bits que dispensado assim a necessidade de um sinal de relgio externo.
0 1 0 1 1 0 0 1

a)

FM
0 1 0 1 1 0 0 1

b)

MFM
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32s

Figura 3.6: Byte 0x59 nas codicaes FM e MFM O uso da codicao MFM foi introduzido pela IMB no standard IBM System 34 e o utilizado nas disquetes de 3/2 de dupla densidade (DD). Este formato uma evoluo do sistema 3740 usado nas disquetes de baixa densidade que ainda recorriam codicao FM (SD) [27, 30, 58].

3.4

Formato das Faixas e Sectores

Para alm da denio do formato de codicao da informao no seu nvel mais baixo, tambm precisa de ser denida a forma como os dados esto organizados para garantir a interoperabilidade das disquetes em diversos meios. Esta informao permite, ao controlador que ir

24

Discos Magnticos Flexveis

processar a informao, saber exatamente onde esto os dados do utilizador e se estes se apresentam sem erros. Em cada faixa, a informao codicada dividida em vrias seces (sectors) que so essenciais no controlo e sincronizao. Estas seces so denidas nos formatos utilizados. No caso das disquetes de dupla e alta densidade utilizado o formato IBM System 34 [59, 60]. O emulador implementado no distingue se a informao que transmitida corresponde a contedos de dados ou de controlo, no entanto esta informao valiosa na deteo de erros e essencial no conhecimento do funcionamento dos discos magnticos exveis. Cada face do disco possui ento diversas faixas (que no formato em anlise so 80) colocadas concentricamente, e cada faixa composta por diversos campos onde so guardados os dados. Como caracterizado na Tabela 3.3, o primeiro campo o prembulo, aos quais se seguem uma sequncia de 18 sectores compostos pelos respetivos campos de identicao (ID) e de Dados. A faixa terminada com um campo de enchimento (Gap). Prembulo Sector 1 ID Dados Sector 2 ID Dados Sector 3 ID Dados ... Sector 17 ID Dados Sector 18 ID Dados Gap

Tabela 3.3: Organizao dos campos numa faixa.

No nal do 18 e ltimo sector segue-se novamente o prembulo. Devido ao formato circular da disquete e sua velocidade de rotao, o prembulo e os dados so reenviados a cada 200 ms. Com a incluso de sinal de relgio no prprio sinal, necessrio detetar o sincronismo e a extrao dos dados do sinal. Nos controladores de drives de disquete isto conseguido atravs do recurso a PLL Data Separator (Separador de Dados PLL) que deteta e extrai os dados relevantes [28, 61, 62]. De forma a facilitar certas operaes de escrita e leitura, algumas disquetes podem apresentar a ordem dos sectores alterada. Se, por exemplo, numa operao de leitura o computador antrio pretender ler os sectores 1 e 2 mas no tiver capacidade para processar a informao recebida de forma clere, pode pedir para ler o sector 1 e s depois o sector 2. Devido rotao constante do disco magntico, o computador teria de esperar o tempo correspondente a uma rotao inteira de forma a poder ler o sector seguinte. Com a ordem dos sectores alterada para, por exemplo, 1 8 6 4 2 9 7 5 3, o tempo de espera entre o sector 1 e 2 diminudo. Esta tcnica apelidada de interleaving e entretanto caiu em desuso com o aumento da capacidade de processamento e armazenamento dos computadores. Estes podem assim ler e guardar diversos sectores numa operao de leitura e processar os dados apenas quando lhes for mais conveniente [28].

3.4 Formato das Faixas e Sectores

25

O formato dos campos que constituem uma faixa ser descrito com a ajuda de alguns quadros. Como a maioria dos campos consiste em repetio de dados, os quadros descrevem estas caractersticas tal como apresentado na Tabela 3.4. Neste quadro de exemplo, o Campo 1 composto pela repetio do octeto Byte tantas vezes como especicado em Comprimento. Segue-se imediatamente o Campo 2 que composto por outras sequncias de bytes com determinadas repeties. Nome do Campo 1 Nome do Campo 2 Comprimento Byte Comprimento Comprimento Byte Byte

Tabela 3.4: Descrio das caractersticas dos campos das faixas.

Segue-se uma descrio dos diversos campos que constituem o formato da faixa, comeando pelo Prembulo. Os bytes so apresentados na notao hexadecimal sinalizada pelo prexo 0x.

Prembulo A drive de disquetes envia o contedo da faixa de forma cclica e o controlador necessita ento de processar essa informao de forma a poder extrair os dados de utilizador. Isto conseguido atravs do reconhecimento de uma srie de sinais pr-formatados que indicam o inicio da faixa. O controlador efetua uma pesquisa por estes sinais e, aps obter a sincronizao, poder prosseguir com a extrao e vericao. O prembulo o primeiro destes campos de sinais de controlo e sincronismo que antecede o primeiro sector e marca o inicio da faixa, sendo constitudo por pelos sinais indicados na Tabela 3.5. GAP4a SYNC INDEX MARK GAP 80 0x4E 12 0x00 3 1 0xC2 * 0xFC 50 0x4E

Tabela 3.5: Campo prembulo da faixa.

De forma a permitir que o controlador encontre os dados que pretende, necessita de sincronizar os diversos campos de controlo e de dados. Para diferenciar a sequncia de dados do prembulo dos dados de utilizador, o INDEX MARK possui um sinal que no respeita a codicao MFM normal. Os sinais de relgio usados para gerar o sinal MFM so modicados gerando assim uma sequncia de impulsos que no pode ser encontrada durante o envio do campo de dados [61, 63].

26

Discos Magnticos Flexveis

A Figura 3.7 apresenta o octeto 0xC2 quando modulado normalmente no campo de dados e com o sinal de relgio alterado quando utilizado como sinal de sincronismo. De notar a falta do impulso no bit 5, violando assim a modulao normal garantindo que no ser confundido com um octeto de dados. Nas tabelas 3.5, 3.6 e 3.7 esta alterao indicada pela presena do smbolo *.
0xC2 0xC2 Dados Sinal Relgio Alterado 0xC2 INDEX Mark
1 1 0 0 0 0 1 0

Figura 3.7: Byte 0xC2 quando codicado no campo de dados ou usado com sinal de sincronismo. Cada sector ento composto por dois campos: Campo de identicao (ID) e campo de Dados.

ID A informao que descreve o sector, como o nmero do cilindro (ou faixa), a cabea e o nmero identicativo deste guardada no cabealho ID. A estrutura destes campos pode ser encontrada na Tabela 3.6. De notar ainda a existncia do comprimento do sector. Este valor calculado atravs da expresso (3.1). Comprimento Sector = log2 (comprimento do sector em bytes) 7 (3.1)

Num sector com 512 bytes de dados, o campo "Comprimento Sector" 2. SYNC ID ADD Mark Cilindro Cabea Nr Sector Comprimento Sector CRC GAP2 12 0x00 3 1 0xA1 * 0xFE 1 0xXX 1 0xXX 1 0xXX 1 0xXX 2 0xXX 22 0x4E

Tabela 3.6: Campo de identicao do sector.

3.4 Formato das Faixas e Sectores

27

Neste campo, mais propriamente no parmetro ID Address Mark, tambm utilizada a violao no sinal de relgio MFM de forma a que este possa ser distinguido dos octetos de dados.

Dados neste campo que so guardados os dados de utilizador. precedida de campo de sinalizao que tambm contm um sinal que viola a codicao MFM e nalizada por um campo de controlo de erros (CRC) como pode ser consultado na Tabela 3.7. SYNC Data Mark Data CRC GAP3 12 0x00 3 1 0xA1 * 0xFB 512 0xXX 2 0xXX 84 0x4E

Tabela 3.7: Campo de dados do sector.

Enchimento (GAP) Aps os 18 sectores o espao existente at ao nal da faixa ocupado por um campo de enchimento com 510 octetos de comprimento representado na Tabela 3.8. GAP4b 510 0x4E

Tabela 3.8: Campo de enchimento.

Devido propriedade cclica do disco e, consequentemente, do envio dos dados, o campo GAP4a do prembulo surge aps o GAP4b do campo de enchimento. No total, cada faixa, alberga mais do que 18 campos de dados com 512 bytes cada. Com o prembulo e os sinais de controlo dos sectores, uma faixa totaliza 12500 bytes tal como pode ser consultado na Tabela 3.9. Como cada byte demora 16 s a ser transmitido, o ciclo repete-se a cada 200 ms. Prembulo 146 18 Campo Identicao Campo Dados 44 614 Preenchimento 510 Total 12500

Tabela 3.9: Comprimento total de uma faixa.

28

Discos Magnticos Flexveis

3.4.1

CRC

De forma a garantir a validade da informao contra erros de escrita ou leitura, so utilizados campos de vericao de erros CRC (Cyclic Redundancy Check). Estes campos esto presentes tanto nos campos de identicao do sector como nos campos de dados. O algoritmo utilizado para clculo de CRC conhecido como CRC-16-CCITT. O polinmio gerador g(x) apresentado na Equao (3.2) e utiliza como semente a palavra 0xFFFF [64, 65].

g(x) = 1 + x5 + x12 + x16

(3.2)

A sequncia de dados a serem protegidos seguida imediatamente pelo cdigo CRC. Deste modo, o clculo polinomial dos dados mais a sequncia de CRC resultar num resultado composto por zeros. Caso este resultado no seja zero, pode ento concluir-se que existiu um erro na transmisso dos dados. Como exemplo, o cdigo de vericao de um Campo de Identicao de um sector pode consistir da seguinte sequncia representada na Tabela 3.10, constituda pelos campos de sincronismo, identicao e correo de erros. ID Add Mark 0xA1 0xA1 Cilindro 0x00 Cabea 0x00 Sector 0x01 Comprimento 0x02 CRC 0xCA 0x6F

0xA1

0xFE

Tabela 3.10: Campo de Identicao de um sector

3.4.2

Campo de Dados

Para que a informao seja til e facilmente acessvel ao utilizador, esta tem de ser tambm entendida pelo sistema operativo do computador que opera a disquete. Para isso, a disquete formatada com um sistema de cheiros de dados. O sistema de cheiros utilizados depende do computador e ambiente em que as disquetes so utilizadas. Os dados que perfazem esta formatao so includos nas seces do campo de dados fazendo com que a capacidade da disquete seja diminuda. Devido ao tamanho diminuto das disquetes, so tambm utilizados sistemas de cheiros que no ocupam um volume grande de dados. No caso dos computadores pessoais com os sistemas operativos DOS ou Windows, utilizado o sistema de formatao FAT12. Este sistema de cheiros, apesar de ter um tamanho pequeno, ocupa alguns dos sectores de dados reduzindo a capacidade efetiva para cheiros de utilizador [66]. No total, dos 2 MB de dados escritos na disquetes, apenas 1.44 MB esto disponveis.

Captulo 4

Interface Sem Fios

Uma das caractersticas do emulador que o diferencia dos restantes produtos existentes, a capacidade de carregar os dados necessrios emulao da disquete atravs de um canal de comunicao sem os. Foram analisadas algumas das tecnologias existentes e descreve-se a utilizada: ZigBee, implementada atravs da plataforma Z-Stack. O uso de tecnologias sem os est fortemente disseminado nos dias de hoje. uma das reas com maior desenvolvimento nos ltimos anos e a sua penetrao no dia-a-dia de forma transparente fascinante. Pretende-se trazer algumas das suas vantagens para esta aplicao, reconvertendo sistemas que utilizam tecnologia datada e obsoleta em tecnologia moderna. Existem vrias vantagens na utilizao de uma rede sem os para transmisso dos dados. De forma imediata, deixa de ser necessria a presena fsica de um operador para transferir a informao at ao terminal.

4.1

Tecnologias de Comunicao Sem Fios

Existe um vasto leque de tecnologias de comunicao sem os que podem ser utilizadas, desde mdulos Bluetooth e WiFi passando por transceptores RF de mais baixo nvel. 29

30

Interface Sem Fios

Ao considerar o tipo de aplicao que se deseja obter, um dos fatores a ter em considerao a escolha da tecnologia mais apropriada. No havendo necessidade de conguraes ou caratersticas especiais, recomendvel o uso de tecnologias j testadas e com ferramentas de desenvolvimento facilmente acessveis.

So relevantes duas famlias de comunicaes sem o: as redes WPAN e as redes Wi-Fi. No mbito de redes WPAN (Wireless Personal Area Network) so exemplos os protocolos Bluetooth, ZigBee e MiWi. Estas redes so utilizadas na comunicao entre equipamentos que formam uma rede prxima e fechada. No requerem infraestruturas exteriores para formar a rede uma vez que cada elemento pode tambm ter um papel na construo da rede. Aconselhadas para sistemas de baixo custo, baixo consumo e potencialmente portteis, tm curto alcance e so orientadas para a interligao de equipamentos perifricos [67].

Uma das vantagens na utilizao destas redes est relacionada com a existncia de mdulos com controladores e transmissores integrados. A utilizao destes mdulos, juntamente com uma API apropriada, facilita o desenvolvimento da aplicao ao dispensar a transmisso da informao entre o controlador e o mdulo rdio, que pode diminuir a velocidade de transmisso e aumentar a complexidade e custo da soluo.

Como referncia, do-se como exemplo os mdulos da Texas Instruments que implementam num nico circuito integrado (CI) um microcontrolador, memria, acesso a perifricos e at circuitos dedicados comunicao rdio. As famlias SoC CC2430/CC2530 so exemplos destes mdulos nos protocolos ZigBee enquanto que a famlia CC2540 dedicada comunicao Bluetooth [68].

A existncia de mdulos num nico CI, que tambm integra a gesto de protocolo, faz diminuir as reas de cdigo e memria disponveis para a aplicao do utilizador e acrescenta dados adicionais transmisso. Dependendo das funcionalidades pretendidas, diferentes arquiteturas que tenham um impacto menor podem ser utilizadas .

Criada pelo Bluetooth SIG, a especicao Bluetooth orientada para comunicao sem os entre perifricos a curto alcance. Indicada sobretudo para a interligao de equipamentos pessoais, apresenta uma srie de pers no sentido de facilitar a interoperabilidade entre equipamentos de diferentes fabricantes. Nas suas sucessivas revises, menor consumos e maiores dbitos so consecutivamente conseguidos. Na reviso 2.1+EDR publicada em 2007, dbitos na ordem dos 2 Mbps so obtidos [69]. A partir da reviso 3.0, com o auxilio de ligaes baseadas em tecnologia 802.11, so obtidos dbitos ainda mais elevados na ordem dos 24 Mbps. Apesar de orientada para a comunicao de curto alcance, a especicao Bluetooth tambm prev a instalao em ambientes industriais com um alcance mximo de 100 metros [70].

4.2 Norma ZigBee

31

Alternativamente, aparecem as redes Wi-Fi 802.11 que, nas suas diversas revises, apresentam dbitos mais elevados quando comparadas com as WPAN. O maior alcance associado maior potncia tornam o uso destas redes mais apetecvel. No entanto, estas redes necessitam de equipamentos dedicados na sua formao como encaminhadores e pontos de acesso. Apesar de serem redes com manifesta penetrao, a sua implementao de raiz pode requerer esforos extra na construo de uma rede complexa que poder car sobre-dimensionada. Na Tabela 4.1, resumem-se as principais caractersticas das redes mencionadas. Tabela 4.1: Comparao de sistemas de comunicao sem os ZigBee 2.4 GHz 250 kbps Teia, Estrela, Ponto a Ponto Controlo, Sensores, Automao Wi-Fi 2.4 GHz At 54 Mbps Estrela, com recurso a distribuidores Internet, Vdeo Bluetooth 2.4 GHz At 2 Mbps Ponto a Ponto Substituio de cabos em curto alcance

Bandas Dbito Topologias de Rede mais comuns Utilizaes Tpicas

4.2

Norma ZigBee

A norma ZigBee, criada pelo consrcio ZigBee Alliance, dene um protocolo de comunicaes sem os que apresenta como fatores diferenciadores o baixo consumo e baixo custo. Principalmente destinada a interligar redes de sensores e controlo, estas redes encontram-se implementadas numa vasta gama de aplicaes desde automao e segurana domstica a equipamento mdico. Baseada no standard rdio IEEE 802.15.4 [71], a norma ZigBee pode utilizar as diversas frequncias no licenciadas nas gamas 2.4GHz (global), 915Mhz (Amricas) e 868Mhz (Europa). Se se usar uma potncia baixa, o uso destas gamas de frequncias no requer licenciamento por se situar na banda ISM (Industrial, Scientic and Medical). Aliando uma soluo econmica existncia de equipamentos com transcetores integrados com linguagens de alto nvel, relativamente fcil e acessvel a sua implementao. A especicao ZigBee ento construda em cima das especicaes criadas pelo grupo 802.15 do IEEE que publica as duas camadas de mais baixo nvel no protocolo, enquanto que a ZigBee Standards Organization especica as trs camadas superiores da arquitetura como apresentado no esquema da Figura 4.1.

32

Interface Sem Fios

Denido por IEEE 802.15.4 Denido por ZigBee Alliance

(APL) Aplication Layer (ZDO) ZigBee Device Object

Application Framework

(APS) Application Support Sublayer

(NWK) Network Layer (MAC) Medium Access Control Layer (PHY) Physical Layer Figura 4.1: Esquema simplicado da arquitetura da pilha ZigBee criada em cima da norma IEEE 802.15.4

As duas camadas mais baixas do protocolo, a camada fsica e a camada de controlo de acesso ao meio fornecem a base da comunicao rdio. A camada fsica, PHY (Physical) a responsvel pelo envio e receo dos dados atravs da modulao dos sinais rdio. O protocolo pode utilizar duas bandas de frequncias: 2.4 GHz e sub-GHz. A primeira mais rpida, com um dbito de 250 kbps, e est dividida em 16 canais que podem ser utilizados de forma a minimizar as interferncias. Nas frequncias sub-GHz, 915 MHz (Estados Unidos e Austrlia) ou 868 MHz (Europa) os dbitos so mais baixos no atingindo os 50 kbps. Naturalmente, o uso dos 2.4 GHz pode ser mais apetecvel pela sua rapidez e universalidade, mas esta frequncia tambm utilizada por outros protocolos rdio como Wi-Fi ou Bluetooth o que pode gerar interferncias. Por cima desta camada de baixo nvel especicada a camada MAC (Medium Access Control), responsvel pela sincronizao rdio e por garantir que a transmisso rdio ocorre sem erros. A descrio tcnica destas camadas pode ser consultada em documentao publicada pelo IEEE [67]. As especicaes da norma ZigBee acrescentam diversas camadas no topo do standard referido e j implementam muitas das funcionalidades de gesto das mensagens, incluindo a utilizao de endpoints e clusters, que so usados como identicadores dos comandos e servios que suportam. Estas funcionalidades de gesto, implementadas na NWK (Network Layer) [71], libertam o programador para se concentrar na sua aplicao e no em detalhes tcnicos de gesto da rede ou mesmo da interface rdio e de gesto de dispositivos. Uma das caractersticas das redes ZigBee a possibilidade de congurao em malha, possibilitando assim a comunicao entre dois dispositivos que no estejam ligados entre si diretamente.

4.2 Norma ZigBee

33

Esta soluo permite a instalao destas redes em locais onde os terminais extremos de uma rede esto a uma distancia que no permita a comunicao direta entre eles como demonstrado na Figura 4.2.

Figura 4.2: Exemplo de congurao de uma rede ZigBee com Coordenador e Ponto Terminal .

, Encaminhadores

A tecnologia ZigBee permite estas conguraes devido sua estrutura dinmica e a existncia de um dispositivo ZigBee Coordinator (Coordenador) que coordena toda a rede. Este Coordenador inicia a rede e permite, consoante a poltica denida pelo gestor da rede, que outros dispositivos se liguem a ele. Existe apenas um Coordenador em cada rede. A rede pode ser expandida atravs de outros dois tipos de mdulos: ZigBee Router (Encaminhador) e ZigBee EndPoint (Ponto Terminal). O primeiro, auxilia o coordenador na expanso da rede, atribuindo identicadores a novos nodos e pode ainda decidir qual a rota mais apropriada para a comunicao entre dois dispositivos. O outro tipo de dispositivo, EndPoint (Ponto Terminal), no tem responsabilidades de gesto de rede e assim prescinde da sua ligao constante. O EndPoint adequado a equipamento que use como fonte de alimentao baterias pois permite entrar em estados de baixo consumo e acordar periodicamente para comunicar com os outros elementos da rede. De notar que um equipamento EndPoint apenas se liga rede por um ponto, ao contrrio dos Routers que podem estabelecer vrias pontes de comunicao. Assim, se um dos pontos de comunicao falhar, o sistema procura um caminho alternativo para encaminhar as mensagens. Apesar de ser necessria a existncia de um Coordenador para a formao da rede, no existe limitao, a nvel fsico, que diferencie os tipos de dispositivos. Assim, se um Ponto Terminal no conseguir ligar-se a uma rede, poder ele prprio formar uma nova rede e tornar-se um ZigBee Coordinator pois esta seleo feita por software. Sendo os prprios equipamentos responsveis pela gesto da rede, dispensa-se a instalao de equipamento dedicado a esta funo.

34

Interface Sem Fios

De forma a facilitar o desenvolvimento destas aplicaes, existem plataformas de software sobre as quais se podem criar as aplicaes do utilizador. Estas plataformas de programao so responsveis pelas funes de gesto de rede e ainda fornecem ao utilizador um conjunto de interfaces de acesso aos perifricos. Uma destas plataformas que implementam as especicaes ZigBee a Z-Stack, que utilizada pelos SoC CC2430 usados neste projeto.

4.3

Z-Stack

A Z-Stack(ZigBee Protocol Stack) uma plataforma de software, baseada na norma IEEE 802.15.4 que segue as especicaes indicadas no protocolo ZigBee, fornecida pela Texas Instruments para a sua famlia de circuitos integrados CC2430 e similares. Esta plataforma, ao seguir as normas ZigBee, implementa diversas conguraes dos pers necessrias comunicao. Estas conguraes, recomendadas pela ZigBee Alliance, promovem a interoperabilidade e possibilitam assim a utilizao de equipamentos de outros fabricantes desde que sigam a mesma norma e conguraes. A Z-Stack implementa toda a lgica necessria para gesto das mensagens e dos papeis de coordenador e de router dos elementos da rede nas camadas NWK e ZDO como representadas na Figura 4.1. Implementa ainda, para alm das interfaces de comunicao entre os mdulos, tambm ferramentas de gesto da aplicao e de acesso aos perifricos como portas UART, memria novoltil ou temporizadores atravs de um OS Abstraction Layer [72,73]. Usando estas ferramentas, o desenvolvimento da aplicao ca ento bastante simplicado

4.4

Mensagens ZigBee

A comunicao entre os diferentes mdulos que compe a rede realizada atravs de mensagens rdio trocadas pelos dispositivos. atravs destas mensagens que feita tanto a gesto da rede, como a troca de dados do utilizador. Com o uso de plataformas que fazem a gesto da rede, como a referida Z-Stack, a ocorrncia destas mensagens de controlo totalmente transparente para o utilizador. Sendo o protocolo usado para controlo de dispositivos distintos entre si, a ZigBee Alliance procurou fomentar a interoperabilidade dos equipamentos atravs da denio de conjuntos de mensagens que transmitem as mesmas intenes. Isto feito atravs de pers e de clusters que podem ser usados de forma a adaptar-se s diversas utilizaes. Com esta funcionalidade, um programador pode facilmente transmitir comandos entre os dispositivos sem ter que desenhar e

4.4 Mensagens ZigBee

35

implementar um protocolo de comunicao de raiz e que caria limitado sua aplicao. No caso da Z-Stack, estas funcionalidade esto acessveis ao programador atravs das interfaces de abstrao [72, 74]. Estas camadas de abstrao expem funes de gesto de rede dos ZDO (ZigBee Device Objects) que so os elementos base dos dispositivos de rede ZigBee. As funes de gesto de rede permitem obter e manipular a informao relativa aos dados da rede tal como pesquisar por dispositivos, obter os endereos pelos quais podem ser referenciados e iniciar ligaes entre estes. Estas operaes efetuadas pela Z-Stack de forma a implementar os ZDO so feitas em cima das especicaes dos protocolos ZigBee e consequentemente tambm do IEEE 802.15.4. Cada uma das camadas apoia-se na anterior e aproveita os campos de dados de cada uma das interfaces para transportar os dados que necessita. O campo de transporte da trama, denida pela camada fsica PHY, ento ocupado pela trama denida pela camada MAC como representado na Figura 4.3.
AHR HDR Auxiliar Dados APS MIC

NHR

Transporte NWK

MHR

Transporte MAC

MFR

SHR PHR

Transporte PHY

Figura 4.3: Esquema de transporte de dados dos pacotes nas diversas camadas que compem o protocolo ZigBee [75] A diversidade de camadas e sinais de controlo usados faz diminuir o nmero de bytes disponveis para as camadas superiores como, por exemplo, a de aplicao do utilizador. No caso da plataforma Z-Stack utilizada, o tamanho do campo de dados disponvel de 85 bytes em cada mensagem.

36

Interface Sem Fios

Captulo 5

Desenvolvimento e Implementao

Aps a anlise do funcionamento e dos requisitos necessrios para a implementao do projeto, prossegue-se ao seu planeamento e implementao em prottipo funcional. No havendo, naturalmente, uma soluo nica, so analisadas as tecnologias utilizadas e consideradas algumas das suas caractersticas na forma como se adequam a este projeto. Neste captulo, sero expostos os desaos encontrados durante o desenvolvimento e as solues adotadas para os superar. De forma a poder substituir a drive de disquetes, o projeto prope a construo de um dispositivo emulador que interaja, por um lado, com o controlador de drive de disquetes em equipamentos compatveis, por outro, com dispositivos que faam a gesto e envio da informao necessria para a emulao. O diagrama geral pode ser consultado na Figura 5.1. Neste diagrama um Gestor remoto envia informao para a memria de armazenamento do Emulador atravs de um Coordenador. A informao transmitida num formato de imagem de disco dedicado emulao que ser diretamente usada pelo Emulador na comunicao com o equipamento antrio. objetivo do projeto o desenho, construo e programao destes dispositivos e das respetivas ferramentas de teste e anlise.

5.1

Plataforma e Ferramentas de Desenvolvimento

Na implementao deste projeto, dois fatores chave necessitam de ser analisados: a tecnologia usada na transmisso sem os e o microcontrolador utilizado para efetuar a emulao e controlo 37

38

Desenvolvimento e Implementao

EM

AD UL

OR

Coordenador

Equipamento Anfitrio

Computador Controlador com software Gestor

Figura 5.1: Diagrama geral. geral da aplicao. De forma a efetuar esta escolha, diversos elementos tm de ser tomados em considerao de forma a conseguir realizar o projeto com sucesso. Estes elementos, nomeadamente custo, disponibilidade, facilidade de utilizao, etc, iro condicionar a escolha dos fatores chave mencionados. Como referido em 4.1, existe uma variedade de microcontroladores que integram componentes de RF e que possuem plataformas de desenvolvimento de software de forma a facilitar o desenvolvimento. Assim, mais do que a escolha de um microcontrolador e uma tecnologia sem os, necessrio tambm ter em considerao todo o ambiente de desenvolvimento necessrio para a sua programao e desenvolvimento. Estes ambientes de desenvolvimento podem ser complexos e/ou caros pelo que importante considerar o seu custo e tempo de aquisio no desenvolvimento de qualquer projeto. A prpria experincia do executante do projeto com o ambiente de desenvolvimento fundamental para evitar que demasiado tempo seja desperdiado na sua ambientao. Face s diversas possibilidades, deu-se preferncia a plataformas j conhecidas no seio do DEEC (Departamento de Engenharia Eletrotcnica e de Computadores) da Faculdade de Engenharia da Universidade do Porto. Foi ento escolhida como plataforma de desenvolvimento a famlia RC230x da Radiocrafts, mais precisamente o RC2300 que integra um microcontrolador baseado em 8051 e um mdulo rdio com interface ZigBee. De salientar que a escolha, apesar de conveniente, no condiciona o desenvolvimento, nem sequer apresenta desvantagens signicativas face s alternativas consideradas.

5.1.1

RC2300

O mdulo RC2300 [76], apresentado na Figura 5.2, pertence a um famlia de mdulos compactos equipados com um microcontrolador e emissor/recetor de radiofrequncia que respeita a norma ZigBee. um mdulo que encapsula toda a lgica necessria e permite criar solues com um muito reduzido nmero de componentes extra. Baseado no System-on-Chip CC2430 da

5.1 Plataforma e Ferramentas de Desenvolvimento

39

Texas Instruments, complementa este microcontrolador com uma implementao que reduz a necessidade de material e conceo extra ao j estar equipado com cristais de relgio e uma antena embutida. O desenvolvimento do projeto, nomeadamente no desenho dos circuitos eletrnicos, assim simplicado.

Figura 5.2: Mdulo RC2300 da Radiocrafts [77]. De forma a vericar que o microcontrolador adequado aplicao em causa, so analisadas as suas propriedades, das quais as mais relevantes so destacadas [76]:

Baseado no IC CC2430 da Texas Instruments; Antena Integrada; Tamanho reduzido: 12.7 x 25.4 x 2.5 mm; 128 kB Memria Flash, 8kB SRAM; 19 Pinos I/O Analgico/Digital; Interface UART, SPI e Debug; Relgio 32.768Mhz; Baixos requisitos de potncia (< 100 mW). Apesar destes mdulos possurem uma antena integrada, existe a opo da utilizao de uma antena externa que aumentar o alcance das transmisses. O mdulo RC2300 baseado na soluo integrada CC2430 da Texas Instruments CC2430 que rene num nico integrado um microcontrolador baseado em 8051 e um transceptor ZigBee. No sentido de vericar a adequao do microcontrolador manipulao da variedade de sinais necessrios emulao, foi consultada a folha de caractersticas fornecida pelo fabricantes e analisado o seu pinout. Nesta anlise, feita atravs da Tabela 5.1, regista-se que alguns dos pinos possuem mltiplas funcionalidades e assim nem todos estaro disponveis para a interface. Verica-se assim a existncia de duas portas P0 e P1 de 8 pinos cada e ainda de 3 pinos na porta P2 disponveis para acesso direto. Regista-se ainda a existncia de portas UART e SPI. No caso do Emulador, como referido na seco 3.3, existe um requisito associado ao nmero de sinais que so operados pelo controlador e pela drive de disquetes. Estes sinais requerem

40

Desenvolvimento e Implementao

Tabela 5.1: Pinout RC2300 [76] Pino 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Nome GND VCC P2_2 P2_1 P2_0 RESET_N GND P0_0 P0_1 P0_2 P0_3 P0_4 P0_5 P0_6 P0_7 RXTX NC GND GND 32kHz_Q2 32kHz_Q1 P1_7 P1_6 P1_5 P1_4 P1_3 P1_2 P1_1 P1_0 GND RF GND Descrio Terra Alimentao Relgio Depurao, P2.2. Canal de depurao usado na programao. Dados Depurao, P2.1. Canal de depurao usado na programao. E/S Digital, P2.0 Reset. Ativo baixo com pull-up interno. Terra E/S Digital ou analgica, P0.0 E/S Digital ou analgica, P0.1 E/S Digital ou analgica, P0.2, I2C SDA E/S Digital ou analgica, P0.3, I2C SCL E/S Digital ou analgica, P0.4 E/S Digital ou analgica, P0.5 E/S Digital ou analgica, P0.6 E/S Digital ou analgica, P0.7 Sada Digital, sinal de controlo RX/TX. No Ligado. Reservado para uso futuro. Terra Terra Oscilador 32 kHz interno. No ligar. (P2.4) Oscilador 32 kHz interno. No ligar. (P2.3) E/S Digital, P1.7 / SPI E/S Digital, P1.6 / SPI E/S Digital, P1.5 / SPI E/S Digital, P1.4 E/S Digital, P1.3 E/S Digital, P1.2 E/S Digital, P1.1 E/S Digital, P1.0 Terra Ligao E/S a antena externa, 50 Ohm. No ligar se usar antena interna. Terra

5.1 Plataforma e Ferramentas de Desenvolvimento

41

ento que o microprocessador apresente pinos de I/O controlveis em nmero suciente tanto para processar os pedidos enviados pelo controlador de disquetes como para fornecer os dados da disquete que se pretende emular. A existncia das diversas portas de I/O, juntamente com um planeamento cuidado dos sinais a processar, permitem que este microcontrolador interaja com os sinais pretendidos sem necessitar de lgica mais complexa. A presena de portas de comunicao SPI e UART permitem a comunicao com memrias e outros perifricos. De forma a auxiliar o desenvolvimento de aplicaes que usem estes mdulos, pode-se recorrer a um conjunto de desenvolvimento CC2431DK [78]. Esta ferramenta, fornecida pela Texas Instruments, torna a tarefa de programao, depurao, prototipagem e teste das solues muito mais simples ao fornecer placas de desenvolvimento e de acesso direto aos pinos (breakout) do microcontrolador. Sendo o RC2300 baseado no CC2430, totalmente compatvel com as ferramentas de desenvolvimento que tambm se encontram disponveis no seio do DEEC. A simplicidade das ferramentas e disponibilidade do equipamento, associado s caractersticas tcnicas que o integram, fazem com que a combinao RC2300/CC2431DK seja relevante como soluo para o projeto. Este microcontrolador ser a base tanto do Controlador/gestor remoto como do Emulador.

5.1.2

Kit de Desenvolvimento CC2431DK

De forma a facilitar o desenvolvimento de software e iniciar a sua implementao (antes de ser necessria a criao dos mdulos fsicos baseados em RC2300), utilizou-se, como referido, o kit de desenvolvimento da Texas Instruments CC2431DK. Este kit composto por duas placas de desenvolvimento SmartRF 04EB, 10 mdulos de extenso SoC_BB, 10 mdulos CC2431EM e 2 mdulos CC2430EM com as respetivas antenas. As placas SmartRF04EB so ligadas ao computador programador via USB e do acesso direto a uma srie de perifricos, como um visor de cristais lquidos, porta srie, botes e leds de interface entre outros [78]. Estas funcionalidades, juntamente com a depurao no ambiente de desenvolvimento, permitem acelerar a escrita do cdigo e a deteo de erros de forma signicativa. As placas SoC_BB fornecem uma interface aos mdulos EM de forma mvel. Esta placa fornece a alimentao e fcil acesso a pinos de expanso que conectam s portas e sinais dos mdulos rdio CC2430EM e CC2431EM. As placas contm ainda um interruptor para ligar a alimentao, 2 conetores IDC que permitem total acesso aos pinos do microcontrolador, um boto de entrada, um indicador LED e um conetor de interface de programao JTAG. A alimentao fornecida atravs de duas pilhas AA, o que as torna no sistema ideal para testar a soluo em mobilidade. Tambm possvel alimentar os sistemas baseados nas placas SoC_BB atravs de programadores USB preparados para o efeito.

42

Desenvolvimento e Implementao

A maior parte do desenvolvimento do Emulador foi efetuado recorrendo s placas SoC_BB com os mdulos CC2431EM e CC2430M. O ambiente de desenvolvimento utilizado para a programao e compilao do cdigo rmware dos microcontroladores o IAR Embedded Workbench IDE 7.30A for 80511 .

5.1.3

Equipamento Auxiliar

Para efetuar a programao dos microcontroladores nas placas SoC_BB, recorreu-se a um programador dedicado. O FlashPro-CC2 da Elprotronic Inc. um programador USB que suporta diversos microcontroladores, entre eles esto os da famlia CCx da Chipcon/Texas Instruments. Atravs de um adaptador e software dedicados, o programador ligado ao conector de programao da placa SoC_BB e descarregado o novo software para a memria interna do mdulo. O programador pode ainda realizar outras funcionalidades como a programao do endereo IEEE do mdulo, a operao de apagar os dados da memria interna e realizar a vericao de CheckSum da memria. Esta comunicao e conguraes realizada atravs dos pinos de programao e depurao existentes nos mdulos. O FlashPro-CC permite tambm a ligao a um software de desenvolvimento como o IAR Embedded Workbench e efetuar a programao e depurao do microcontrolador diretamente a partir do ambiente de desenvolvimento. No entanto, algumas diculdades foram encontradas neste modo: o software parava de responder e o programador deixava de ser reconhecido pelo computador. Esta situao levava necessidade de reiniciar o computador de modo a que o programador fosse novamente reconhecido e, consequentemente, reatado o desenvolvimento. Face a estas contrariedades, optou-se por apenas compilar o cdigo num cheiro de programao e envia-lo via programador usando o software fornecido com o equipamento. Procedimento mais lento e trabalhoso mas que se vericou mais vel. No desenvolvimento do projeto, foram ainda utilizadas mais duas ferramentas: Um analisador lgico USBee SX da CWAV, Inc. e um adaptador Bus Pirate da Dangerous Prototypes. O USBee SX [79] um analisador lgico USB. Este tipo de analisadores lgicos necessita de estar ligados a um computador para efetuar a captura dos dados uma vez que no apresentam, geralmente, memria interna para os guardar nem instrumentos autnomos para os visualizar. Por outro lado, a interligao com um computador permite uma maior facilidade na manipulao e interpretao dos dados obtidos.
1 Mais 2 Mais

informaes sobre este ambiente de desenvolvimento pode ser encontrado no website da IAR Systems: informao sobre o programador FlashPro-CC pode ser obtida no website do seu fabricante em http:

http://www.iar.com. //www.elprotronic.com/flashproCC.html.

5.1 Plataforma e Ferramentas de Desenvolvimento

43

As imagens das capturas presentes neste documento, foram realizadas usando o USBee SX que apresenta as seguintes caractersticas tcnicas [79]: Amostragem mxima: 24 Msps; 8 Canais; Comunicao via USB 2.0; Disparo por software ou sinal externo; Compacto (5.3 x 3.3 x 1,27 cm); Gerador de Sinais.

Para este equipamento existem dois programas que podem ser utilizados na captura e interpretao dos sinais lgicos. Ambos permitem a anlise das formas de onda dos sinais capturados e a descodicao dos protocolos SPI e Srie. O USBee SX Logic Analyzer uma aplicao mais antiga e com menos funcionalidades mas que permite a captura de sesses mais longas que o USBee Suite. No entanto, este ltimo apresenta uma maior variedade de sinais que podem ser descodicados e tem uma interface mais amigvel que permite visualizar os dados descodicados diretamente na forma de onda. Foi ainda utilizada a funcionalidade de exportao das capturas do USBee SX Logic Analyzer para um formato prprio denominado de ULB [80]. Estas capturas so utilizadas na anlise e vericao dos testes de transmisso sem haver a necessidade de os fazer em tempo real. Por ltimo, outro equipamento utilizado no desenvolvimento do projeto foi o Bus Pirate [81]. Uma ferramenta livre pois tanto o cdigo fonte como o hardware esto licenciados sob a licena CC0 Creative Commons No Copyrigth - Public Domain. O Bus Pirate serve de interface de comunicao com diversos protocolos como I2C, SPI, UART entre outros. Pode tambm ser utilizado na programao de microcontroladores e memrias. O equipamento totalmente autosuciente ao apresentar uma interface de consola acedida atravs de uma porta srie virtual, mas possui tambm um modo de acesso binrio orientado a scripts e programas dedicados. Tanto um modo como o outro criam uma ponte de fcil acesso entre o programador e o equipamento em teste. No contexto deste projeto, o Bus Pirate foi utilizado para efetuar a escrita e leitura de dados da memria externa.

5.1.4

Software Auxiliar

No tendo o sistema operativo de um computador acesso comunicao que realizada entre a disquete e o controlador, o processo de deteo e correo de erros torna-se mais difcil. O controlador, ao no conseguir extrair a informao da disquete, informa o sistema operativo da ocorrncia do erro atravs de um registo do controlador. O Sistema Operativo interpreta ento

44

Desenvolvimento e Implementao

(a) USBee SX Logic Analyzer

(b) USBee Suite

Figura 5.3: Software do analisador lgico USBeeSX em modo de demonstrao.

os erros e informa o utilizador atravs de uma mensagem mais amigvel. Se estas mensagens de erro geradas pelo controlador de drives de disquetes so teis, so tambm insucientes no teste ao emulador, uma vez que no possvel extrair destes erros as circunstncias exatas de como os erros ocorreram. No passa pelo objetivo deste trabalho a criao de uma interface entre o sistema operativo e o controlador de drive de disquetes. No entanto, so utilizados alguns programas j existentes que transmitem estas informaes da forma mais til para este projeto. Apesar de no orientados vericao de sinais MFM, fornecem informao sobre os dados extrados pelo controlador e, consequentemente, sobre erros que tenham ocorrido. Estas aplicaes utilizam drivers (Controladores de software) do controlador da drive de disquetes alternativos que permitem a extrao de

5.1 Plataforma e Ferramentas de Desenvolvimento

45

mais alguma informao do que a acessvel atravs do sistema operativo Microsoft Windows XP utilizado no desenvolvimento e teste. O controlador de software fdrawcmd.sys [82] escrito por Simon Owen e expe s aplicaes um conjunto de comandos, antes no acessveis, do controlador da drive de disquetes. Desta forma, possvel a escrita e leitura de faixas com formatos diferentes dos suportados pelo Sistema Operativo. Foram usadas duas aplicaes que utilizam este controlador e que permitem operar a drive de disquetes num nvel mais baixo e renado, como pedir a leitura de apenas uma determinada faixa e de um determinado lado. A aplicao Fdio [83], escrita por Ansgar Kckes, surge da impossibilidade de ler disquetes em formatos diferentes dos especicados pelo sistema operativo. Pretendendo aceder a outros formatos como os utilizados por equipamentos HP, 9845 e LIF, Kckes cria uma aplicao que permite a leitura e escrita de outros formatos. Esta ferramenta pode tambm efetuar anlises s disquetes e reportar as caractersticas do seu formato. A aplicao SAMDisk [84], do mesmo autor do controlador frawcmd.sys Simon Owen, tambm uma aplicao de linha de comandos, que permite a leitura e escrita de disquetes em formatos especiais. Para alm das operaes de leitura e escrita das imagens das disquetes, as aplicaes apresentam ainda algumas opes que permitem um controlo mais renado das operaes. No caso da aplicao SAMDisk, a velocidade de rotao do disco pode ser alterada, a existncia do fenmeno de Interleaving controlada e at o tamanho do campo de dados dos sectores pode ser manipulado. O uso destas aplicaes permite testar o emulador da drive de disquetes de forma mais prtica e precisa. De forma a compensar a diculdade de aceder aos dados que chegam ao controlador da drive de disquetes atravs do computador, necessrio analisar os sinais diretamente no cabo de 34 pinos que interliga o controlador e a drive de disquetes. Enquanto que alguns sinais como, por exemplo o sinal /INDEX, so facilmente interpretados atravs da aplicao do analisador lgico, outros exigem a sua descodicao, nomeadamente o sinal MFM. No sentido de vericar que os sinais gerados pelo emulador obedecem s temporizaes denidas e que so corretamente transmitidos, procedeu-se programao de uma aplicao que faz a anlise dos sinais capturados. Para alm da anlise de sinais, a aplicao tenta adaptar os dados em informao de mais fcil anlise como a interpretao dos estados da drive de disquetes e a descodicao dos dados MFM.

46

Desenvolvimento e Implementao

Foi ento implementada a aplicao MFM Log Parser. Esta aplicao, escrita em C#, faz a anlise aos sinais trocados entre o controlador e a drive de disquetes a partir dos dados exportados pela aplicao USBee Logic Analyzer no formato ULB [80] j referido na seco anterior. Neste formato, aps um cabealho, cada bit de um byte de dados do cheiro representa o estado do sinal lgico de cada canal quando foi registado. Cada byte representa ento os 8 sinais observados a cada amostra. Consegue-se assim processar toda a comunicao efetuada entre os dois dispositivos e interpretar a sua informao. A aplicao comea por analisar o cabealho onde os dados sobre a captura esto registados. O cabealho contm a temporizao da taxa de amostragem utilizada e a localizao do sinal de trigger que sinaliza o inicio da captura dos sinais relevantes. Inicia-se ento um processo de anlise de cada byte e bit registados e, caso ocorra uma alterao num destes sinais que seja relevante para o programa, um evento criado. Este evento ser processado por um mdulo do programa que responsvel pela interpretao dos eventos associados a cada sinal do cabo de comunicao. No caso dos eventos associados ao sinal MFM, um outro mdulo responsvel pela descodicao dos sinais MFM, e consequente interpretao e vericao. Todos estes eventos podem ser visualizados atravs de uma lista na interface que dispe a informao descodicada e que sinaliza eventuais erros que sejam encontrados. A interface grca da aplicao apresentada na Figura 5.4.

Figura 5.4: Interface da aplicao de anlise do analisador MFM Log Parser. Por ltimo, de forma a auxiliar os testes de extrao de dados da memria e de emulao, foi criada uma outra aplicao: BusPirate SPI Programmer que pretende facilitar a operao de leitura e escrita das memrias externas. Esta aplicao, tambm escrita em C# faz essa programao

5.1 Plataforma e Ferramentas de Desenvolvimento

47

atravs do adaptador Bus Pirate. Na Figura 5.5 mostrado o programador e a placa de circuito impresso que foi fabricada para facilitar a programao das memrias.

(a)

(b)

Figura 5.5: Interface (a) e Programador (b) da memria externa com recurso ao Bus Pirate.

48

Desenvolvimento e Implementao

5.2

Gestor remoto

De forma a gerir e transmitir os dados para o Emulador atravs da rede ZigBee, necessrio recorrer a um dispositivo de gesto. Este gestor composto por dois componentes: Um mdulo em hardware e outro em software. O mdulo em hardware (Coordenador) composto por um Coordenador ZigBee compatvel com o Emulador. O mdulo em software (Gestor) interage com o mdulo em hardware e corre num computador que ir gerir as imagens de disco e o envio de dados para o Emulador. A utilizao de um computador para efetuar esta gesto diminui a complexidade do mdulo fsico e permite uma maior exibilizao das suas funcionalidades. No sentido de minimizar o desenvolvimento do Coordenador, recorreu-se a um mdulo j criado por outro aluno do MIEEC. O mdulo Coordenador [85] criado por Dcio Macedo permite a ligao de um SoC RC2300 a um computador via cabo USB e comunica com o computador via uma porta srie virtual. Usando este mdulo, apenas necessrio alterar o cdigo rmware que o microcontrolador executa de modo a adequar-se s funcionalidades pretendidas. O mdulo Coordenador responsvel pela interpretao dos comandos recebidos do Gestor Remoto e do envio dos comandos para o Emulador. Do mesmo modo, recebe mensagens do Emulador e, caso seja necessrio, envia-as para o programa Gestor. Apesar do coordenador ser responsvel pela gesto da rede ZigBee, tem apenas um papel de interligao entre o Emulador e o programa de gesto transferindo de forma quase transparente as mensagens entre estes dois atores. No entanto, possui tambm um papel de relevo na sequncia de transmisso que descrita na seco 5.6 Transmisso da imagem.

5.2.1

Software Gestor

O aplicao de gesto Floppy Manager (Gestor) responsvel por gerar novas imagens a partir de uma disquete fsica, gerir imagens existentes, vericar o estado da rede e dos emuladores e nalmente enviar a imagem para o emulador. A interface deste programa replicada na Figura 5.6. A aplicao Gestor foi desenvolvido para o sistema operativo Windows e escrito em C# usando Visual Studio C# 2010 Express Edition. A utilizao de C# e da framework .NET na verso 4 permite utilizar um conjunto de funcionalidades que facilitam o desenvolvimento da aplicao como por exemplo o uso de controlos pr-existentes de interface com o utilizador, classes de gesto e comunicao entre processos e mtodos de manipulao de cheiros no disco.

5.2 Gestor remoto

49

Figura 5.6: Interface da aplicao Gestor.

De notar que, com o progressivo desaparecimento das drives de disquetes dos computadores, tambm o suporte delas tem desaparecido das linguagens de programao mais recentes. De forma a obter as informaes sobre a drive de disquetes e poder l-la num formato compatvel, foi necessrio recorrer a algumas funes do sistema operativo que no estavam presentes na plataforma .NET.

Programou-se ento a aplicao para, no caso de detetar a presena de uma drive de disquetes, disponibilizar a opo de criao de imagem a partir da drive. A imagem criada em dois passos: atravs da leitura dos contedos dos campos de dados das disquetes para um cheiro binrio, seguida da converso deste cheiro para um novo em formato apropriado emulao atravs de um programa auxiliar. O formato do cheiro das imagens de disco utilizadas e como podem ser geradas aprofundado na seco 5.4.

No arranque, o programa Gestor Floppy Manager questiona o Sistema Operativo pelos equipamentos ligados s portas USB e, caso detete o dispositivo Coordenador, abre a porta srie virtual criada por este ltimo de modo a iniciar a comunicao. Caso o Coordenador no esteja ligado, o programa monitoriza os eventos associados s portas USB e estabelece a ligao assim que o coordenador seja ligado. Para acautelar a possibilidade da existncia de erros na comunicao entre o computador e o coordenador foi adaptado um protocolo que prev a deteo de erros como descrito na seco seguinte 5.2.2.

50

Desenvolvimento e Implementao

Encontrado o coordenador, segue-se a pesquisa de emuladores disponveis que feita atravs de envio de mensagens de broadcast. Os emuladores existentes respondem a esta mensagem dando conhecimento do seu endereo e indicam a sua disponibilidade para receber os comandos como por exemplo o envio de uma nova imagem de disco. A natureza assncrona da comunicao srie e da comunicao sem os aumentou a complexidade do programa de gesto. A comunicao com o Coordenador composta por comandos que podem requerer uma resposta. No entanto, esta resposta pode no chegar ou, entretanto, chegar outra resposta (possivelmente de erro) que no a esperada. Como a receo das mensagens srie efetuada num processo separado do processo principal do programa foi necessrio implementar um sistema de eventos e de troca de mensagens entre os processos que correm na aplicao Gestor que permitisse o correto funcionamento nos seus diversos estados. Ao chegar uma mensagem do Coordenador, o programa verica a validade dos dados contra erros de transmisso e coloca a mensagem numa lista que depois consultada por outros processos do programa. Caso um processo esteja espera de uma resposta, pode sinalizar esta inteno e ser sinalizado quando a resposta chegar. Com esta funcionalidade, o processo que responsvel pelo envio de dados da imagem pode enviar uma trama e car parado espera da resposta que autoriza o envio da trama seguinte sem interferir com outros processos da aplicao. No entanto, se for transmitida uma mensagem de erro do Coordenador, este pode ser vericado e corrigido, pois o processo deteta que a autorizao para enviar a mensagem seguinte no foi recebida em tempo til e verica a existncia de erros.

5.2.2

Comunicao via porta srie

Na comunicao via porta srie entre a aplicao Gestor e o Coordenador utilizado um formato de tramas baseado no protocolo de comunicao Z-Tool Serial Port Interface [86], mas adaptado para comandos com apenas 1 byte e comprimentos de dados at 65535 bytes. Desta forma, possvel tanto o envio de comando de pesquisa de Emuladores que no necessita de dados, como o envio do comando de escrita de dados em memria em blocos de 256 bytes. SOP 1 CMD 1 LEN 2 DATA LEN FCS 1

Tabela 5.2: Formato e tamanho dos campos do pacote utilizado na comunicao srie.

Cada pacote constitudo por diversos campos como representado na Tabela 5.2. A transmisso iniciada por uma campo de inicio de pacote (SOP) seguido do cdigo do comando (CMD)

5.2 Gestor remoto

51

e de dois octetos de comprimento de dados (LEN). Caso este seja zero, ento o campo de dados (DATA) no transmitido e o pacote nalizado com o campo de vericao de dados (FCS). O campo de comprimento (LEN ) e de dados (DATA) so enviados com o byte mais signicativo primeiro. O campo FCS (Frame Check Sequence) contm o resultado da operao XOR de todos os bytes a partir do CMD at ao ltimo byte de dados. O octeto SOP no includo nesta operao. Assim, ao se efetuar a operao XOR em toda a trama o resultado dever ser 0. Caso o valor calculado seja diferente indicador da existncia de um erro na trama e esta descartada. De notar que a utilizao da operao XOR pode no proteger contra erros que afetem um nmero mltiplo de bits e tambm no permite a reconstruo da trama em caso de erro. No entanto, dever ser suciente para a aplicao em causa uma vez que a quantidade de erros ocorridos durante os testes foi reduzida e foram todos detetados pela aplicao. Os comandos utilizados nos canais de comunicao deste projeto so listados na Tabela 5.3. Alguns destes comandos so utilizados tambm na comunicao sem os entre o Controlador e o Emulador. STATUS_REQ STATUS_RSP MODE_SET MODE_GET MODE_ERROR MEM_WRITE MEM_STATUS MEM_RSP MEM_RESET MEM_ACK ZIGBEE_ERROR UART_ERROR Pede aos dispositivos na rede dados sobre o seu estado. Resposta dos dispositivos na rede ao comando STATUS_REQ. Altera o estado de funcionamento do Emulador. Resposta do Emulador sobre o estado de funcionamento. Resposta do Emulador caso seja emitido o comando MODE_SET com um estado invlido. Comando de escrita de dados na memria externa do Emulador Pede ao Emulador dados sobre a memria externa. Resposta do Emulador ao comando MEM_STATUS. Reinicia o estado de processamento da rotina de gravao de dados na memria externa do Emulador. Sinal de resposta ao comando MEM_WRITE que sinaliza envio dos dados com sucesso. Comando que sinaliza a ocorrncia de um erro na comunicao sem os. Comando que sinaliza a ocorrncia de um erro na comunicao via porta srie.

Tabela 5.3: Comandos utilizados na comunicao.

Na comunicao sem os, os comandos so transmitidos como clusters dos pacotes, libertando assim os campos de dados para informao extra. A denio dos clusters, j referida na seco 4.2, permite a interoperabilidade entre equipamentos diferentes mas que tenham o mesmo objetivo. Neste caso, so utilizados comandos exclusivos para esta aplicao uma vez que no previsto este uso na especicaes ZigBee.

52

Desenvolvimento e Implementao

5.3

Emulador

O Emulador o dispositivo que implementa todas as tecnologias analisadas nos captulos 3 e 4. Interage com um controlador de drive de disquetes via cabo de dados de 34 pinos e com o coordenador atravs da rede sem os. O comportamento do Emulador denido atravs de uma mquina de estados. So denidos 3 estados gerais: Espera, Carregar Imagem e Emulao. O Diagrama geral da relao entre estes estados pode ser consultado na Figura 5.7.

Evento

Inicio No Carregar Imagem Sinal /DRVS Ativo

Modo Carregar Imagem Fim Imagem

Modo Espera

Imagem?

Sim Sinal /DRVS Desativo Modo Emulao

Figura 5.7: Diagrama de funcionamento geral do Emulador.

No arranque, o microcontrolador perfaz a congurao e inicializao do sistema e dos respetivos perifricos e interfaces sem os. O arranque ca concludo assim que o Emulador inicia todos os perifricos necessrios. Entretanto, tenta ligar-se a uma rede ZigBee criada pelo Coordenador mas esta no condio necessria para o seu funcionamento como Emulador. Terminada esta sequncia, O Emulador encontra-se no modo Espera e ca espera de um estimulo externo, seja este uma mensagem do Gestor/Coordenador via interface sem os, seja via sinais do controlador de drive de disquetes. Ao receber um sinal mais propriamente a sequncia /MOTEx e /DRVSx do controlador de drive de disquetes, o Emulador verica a existncia de uma imagem de disco e muda para o modo Emulao. Ignora os outros sinais do controlador uma vez que, sem os sinais de seleo de drive ativos a ativao dos outros sinais indica que o controlador de disquetes pretender comunicar com outra drive de disquetes presente no mesmo cabo. Caso receba uma mensagem ZigBee do controlador contendo o comando de mudana de estado apropriado, passar para o modo Carregar Imagem.

5.3 Emulador

53

Durante a emulao, de forma a no interromper a transmisso de dados entre o emulador e o controlador de drive de disquetes, as interrupes associadas transmisso sem os so desabilitadas. Assim, para o programa Gestor, o Emulador encontra-se desligado e no possvel passar do estado de Emulao para o estado Carregar Imagem sem passar pelo estado intermdio de Espera onde a comunicao restabelecida. De modo anlogo, de forma a garantir a validade da informao armazenada, durante o modo de Carregar Imagem o Emulador sinaliza ao controlador de disquetes que no est disponvel para emulao, ativando o sinal de mudana de disco /DSKCHG, isto , indica que no possui nenhuma disquete (emulada) inserida. Uma vez que no existem requisitos de poupana de energia relativos ao uso de baterias, este dispositivo implementado a partir de um dispositivo Router em vez de um dispositivo End Device que permite desligar-se da rede e entrar em estados de baixo consumo para poupar energia. A implementao da comunicao sem os facilitada pela utilizao de um dispositivo Router ao no diminuir a frequncia com que feita a comunicao entre dispositivos. No entanto, como o Router tambm tem um papel ativo na gesto de rede, durante o estado de Emulao em que a comunicao sem os est desativada, pode provocar quebras na comunicao entre outros dispositivos.

5.3.1

Modo Emulador

No modo de Emulao, a comunicao com o controlador de disquetes necessita de ser processada tanto a nvel fsico, adaptando os sinais eltricos de forma a serem compatveis com os equipamentos, como a nvel de lgico, interpretando e gerando os sinais apropriados. Como referido no Captulo 3, a drive de disquetes possui pouca lgica para processar os comandos e dados. Esta limita-se a manipular os motores que possui a partir dos comandos recebidos do controlador de disquetes. Por exemplo, um sinal no pino /MOTEx, ativa o motor central que permite a rotao do disco magntico. No emulador, no existe este motor, mas a consequncia desta rotao, tem que ser replicada neste: inica o envio dos dados guardados na memria de forma cclica. A implementao em hardware da deteo destes sinais aprofundada na seco 5.3.3. Para garantir o correto funcionamento enquanto no modo Emulao, ao entrar neste modo, o programa efetua alguns comandos de vericao e congurao. Caso o emulador no tenha nenhuma imagem carregada, sinalizar este facto ao controlador atravs do sinal de /DSKCHG que indica a ausncia de uma disquete na drive emulada. Nesta situao, o emulador sair deste

54

Desenvolvimento e Implementao

modo e entrar de novo no modo de Espera e car espera que lhe sejam enviados dados para armazenar a imagem da disquete. Caso exista uma imagem vlida, o emulador s poder entrar no estado de emulao aps desligar o sistema rdio. Este passo necessrio de forma a garantir que durante o processamento de dados no haja qualquer interrupo, que poderia signicar corrupo no envio dos dados. O sistema rdio desligado atravs da desativao das interrupes do microcontrolador associadas transmisso rdio. Aps a inicializao, o emulador calcula a faixa e o lado que o controlador pretende atravs dos sinais de /HEAD, /STEP e /DIR e envia os dados armazenados na faixa correspondente sendo que a faixa 0 denida inicialmente de forma arbitrria. Como representado na gura 5.8, ao receber um dos sinais de controlo que mudam a faixa (/STEP, /SIDE), o Emulador recalcula a faixa a ser enviada e altera a posio de memria de onde os dados sero extrados.

Interrupo

Espera

Sinal /DRVS Ativo Modo Emulador Sinal /DRVS Desativo Modo Espera

Temporizador Nova Faixa

Envio da faixa Sinal /HEAD Alterar Cabea

Pausa Temporizador Nova Faixa

Sinal /STEP Subir Faixa Subir Sinal /DIR Descer Descer Faixa

Recalcular Endereo Faixa

Figura 5.8: Diagrama de funcionamento do Emulador ao processar os sinais do controlador.

O sistema de envio dos dados MFM foi um dos principais desaos encontrados na realizao deste trabalho. Este processo descrito em maior pormenor na seco 5.7 Implementao

5.3 Emulador

55

Protocolo MFM e o processo de "Envio da faixa" descrito com maior pormenor na seco 5.7.4. Diculdades no processamento dos dados recebidos na operao de escrita das disquetes associada ao processamento extra necessrio para efetuar a gravao de dados na memria externa no permitiram a implementao da funcionalidade de escrita. No entanto, previsto no esquemtico e foi colocado um socket na placa de circuito impresso para facilitar o uso de uma memria RAM que possibilite esta funcionalidade no futuro. Quando so desativados os sinais de seleo e ativao de drive (/DRVS), o Emulador sai da rotina de processamento de envio de dados e volta a ativar as interrupes rdio. De seguida, regressa ao modo Espera cando preparado para nova interveno.

5.3.2

Modo Carregar Imagem

No modo Carregar Imagem, o Emulador recebe e armazena os dados enviados pelo programa Gestor. O protocolo ZigBee, orientado a mensagens de pequena dimenso, impe que a transferncia de dados seja realizada atravs de uma srie de pacotes. O conjunto de pacotes enviados formar ento uma imagem de disco (disquete).

Comando Espera Mudana de estado: Espera

Mudana de estado: Carregar Imagem Comando Novo Pacote

Modo Carregar Imagem

Figura 5.9: Diagrama de funcionamento do Emulador no modo Carregar Imagem

De forma similar ao modo Emulador, para no ser interrompido pelo computador antrio enquanto a imagem no tiver sido totalmente transmitida, o Emulador sinaliza o controlador de que est sem a "disquete"e ignora os pedidos deste.

56

Desenvolvimento e Implementao

Sequencialmente, o Emulador recebe cada pacote de dados e prepara-os de forma a poder escrever na memria externa. A sequncia de envio de dados ser descrita mais pormenorizadamente na seco 5.6. Quando toda a informao estiver guardada, o Emulador sai do modo Carregar Imagem para o modo Espera e est pronto para interagir com o controlador quando este o requerer.

5.3.3

Hardware

O Emulador, interagindo tanto atravs da interface sem os, como com o controlador de disquetes atravs do cabo de dados, necessita de hardware dedicado que lhe permita efetuar as suas funes. Como referido nas seces 4.1 e 5.1.1, os mdulos utilizados j implementam o hardware necessrio para a comunicao sem os. No caso das placas SoC_BB com os mdulos CC2430EM e CC2431EM apenas necessria a colocao da antena. O prottipo do dispositivo Emulador implementado como extenso da placa SoC_BB que permite um acesso fcil aos pinos do microcontrolador CC2430. A alimentao do emulador feita atravs do cabo de alimentao da drive de disquetes que se pretende substituir. Este cabo terminado com um conetor 4 pinos criado pela Berg Electronics Corporation e fornece a alimentao a 5 V e a 12 V como pode ser visto na Figura 5.10.

Pino 1 2 3 4

Cor do o Vermelho Preto Preto Amarelo

Tipo +5V Terra Terra +12V

Figura 5.10: Conetor de energia de 4 pinos. Como a comunicao com o controlador da drive de disquetes funciona a 5 V TTL, a de alimentao 5 V utilizada para alimentar a lgica associada comunicao com o controlador da drive de disquetes. No entanto, o microcontrolador alimentado a 3.3 V sendo assim necessrios dois circuitos de alimentao distintos. Um regulador de corrente LM1117 utilizado para converter os 5 V para os 3.3 V necessrios para alimentar o mdulo CC2430. Para efetuar a emulao o microcontrolador necessita de responder a e manipular uma srie de sinais que se interligam com o controlador de drive de disquetes. Os sinais relevantes de entrada,

5.3 Emulador

57

de todos os apresentados na Tabela 3.2, podem ser resumidos aos da Tabela 5.4. Tabela 5.4: Sinais de entrada da drive de disquetes. Pino 2 10 12 14 16 18 20 22 24 32 Sinais /DENSEL Seleco Densidade /MOTEA Activar Motor Drive A /DRVSB Seleccionar Drive B /DRVSA Seleccionar Drive A /MOTEB Activar Motor Drive B /DIR Seleccionar direco /STEP Passo cabea leitura/escrita /WDATA Escrita de Dados /WGATE Activao de modo escrita /SIDE Seleco de cabea

O Sinal /DENSEL como referido na seco 3.3 tem utilidade reduzida nesta aplicao uma vez que os modos de operao so predenidos a inuncia deste sinal seria nula. Opta-se assim por no utilizar este sinal. Os sinais /MOTEx e /DRVSx esto geralmente associados na sua funo. O sinal /DRVSx utilizado pelo controlador para indicar drive de disquetes que pretende interagir com o equipamento. /MOTEx o sinal que ativa o motor de rotao das disquetes. Anal, numa drive de disquetes com motor, este demorar algum tempo at estabilizar a sua velocidade de rotao e consequentemente at a drive atingir um estado estvel para comunicao [29, 87]. Assim, poderia ser de esperar que o sinal de /MOTEx fosse ativado momentos antes do sinal de /DRVSx de forma a que a velocidade de rotao estvel seja atingida. Em controladores modernos, como o 82077, utilizados nos computadores de testes, estes sinais so controlados atravs de um registo prprio e a folha de caractersticas do controlador recomenda que os sinais sejam ativados simultaneamente [28]. De facto, ao se efetuar a anlise dos sinais emitidos do controlador, registam-se as formas de onda representadas na Figura 5.11 que mostra que os dois sinais so ativados simultaneamente. No caso do emulador, no existe um motor que necessite de ativao prvia e poderia usar-se apenas um dos sinais como controlo. Para aumentar a versatilidade do emulador face a outros controladores que podem ter comportamentos diferentes, optou-se por combinar os sinais atravs de uma porta lgica OR e sinalizar o emulador da inteno do controlador apenas quando os dois sinais esto ativos. Neste circuito, representado na Figura 5.12, a porta lgica OR implementada atravs de 3 portas NOR e a seleo da drive, A ou B, sob o qual a emulador deve responder realizada atravs de um seletor (jumper) manual. Normalmente utilizada a congurao para a

58

Desenvolvimento e Implementao

Figura 5.11: Sinais /DRVSx e /MOTEx ativados simultaneamente pelo controlador de drive de disquetes.

drive B devido ao uso de cabo de dados com troca de sinais como o representado na Figura 3.3. utilizado o sinal de sada do circuito de ativao /DRVS como indicador de inicio de emulao. /MOTA /DRVSA /DRVS /MOTB /DRVSB Figura 5.12: Esquema lgico do circuito de ativao do Emulador.

Os sinais /WDATA e /WGATE, associados operao de escrita na drive de disquetes no so utilizados pois o Emulador no suporta a operao de escrita. De forma a esta funcionalidade ser suportada no futuro, esto ligados eletricamente ao microcontrolador. So assim 6 os sinais que o microcontrolador necessita de ler na sua operao de emulao: /DVRS, /DIR, /STEP, /SIDE, /WDATA e /WGATE. preciso ter em ateno que os mdulos CC2430 no toleram os 5 V utilizados pelo controlador e, como tal, a lgica de converso essencial. Para converter os sinais de entrada recorreu-se a um conversor de nvel de 6 vias 74HC4050 da Philips. Este circuito integrado converte sinais at aos 15 V para nveis mais baixos, neste caso os 3.3 V suportados pelo CC2430. A alta tolerncia tenso de entrada (mx. 15 V) ajuda a proteger o microcontrolador contra tenses demasiado altas nos seus pinos. Por outro lado, os sinais de sada do microcontrolador tambm necessitam de ser convertidos para os 5 V de forma a serem reconhecidos pelo controlador. Selecionando os sinais de sada da drive de disquetes, referidos na seco 3.3 elaborou-se a tabela 5.5 que mostram os 5 sinais que

5.3 Emulador

59

necessitam da converso de nvel. Utiliza-se Buffer/Driver de 6 vias SN7407 da Texas Instruments que efetua a transio dos 3.3 V para os 5 V. Tabela 5.5: Sinais de sada da drive de disquetes Pino 8 26 28 30 34 Sinais /INDEX ndice /TRK00 Faixa 00 /WPT Proteco Escrita /RDATA Leitura de Dados /DSKCHG Mudana/Ejeo Disco

No modo de Emulao, o microcontrolador responde aos comandos do controlador ao detetar as transies nos sinais lgicos via interrupes. No entanto, o CC2430 apenas permite a congurao de interrupes subida ou descida do degrau enquanto que na aplicao em causa necessrio estar atento s duas transies em pelo menos dois sinais. 1) O sinal /DRVS quando ativo na descida indica o inicio da comunicao e quando desativo na subida sinaliza o m da comunicao; e 2) /HEADS que indica qual o lado do disco que se pretende utilizar. Como a seleo de interrupo subida ou descida se aplica a toda a porta, no possvel alterar esta congurao aps um dos eventos ocorrer, pois afetaria os outros sinais. Uma funcionalidade de polling tambm no vivel pois interferiria na transmisso de dados. Para reagir a todos estes eventos, programou-se o CC2430 para disparar as interrupes nas descidas dos sinais lgicos e recorreu-se ento a um circuito extra que deteta os eventos de subida dos sinais /HEADS e /DRVS e gera um impulso de descida numa das portas do microcontrolador disparando assim uma interrupo que verica o estado dos sinais. O circuito de deteo de degrau realizado atravs do circuito integrado 74LS221 que possui dois multi-vibradores mono-estveis que podem ser congurados para realizar a operao pretendida de gerao de impulsos. Este circuito pode ser consultado na Figura 5.13 e recorre a um divisor resistivo para efetuar a converso de nveis lgicos. Para alm do controlador de drive de disquetes, o Emulador ainda comunica com uma memria ash externa que utilizada para armazenamento da imagem da disquete. A comunicao com a memria realizada via protocolo SPI e usa as portas dedicadas USART1 SPI Alt.2 do CC2430 [88]. O uso destas portas facilita a comunicao com a memria pois funes dedicadas so fornecidas tanto pelo microprocessador como pela camada de abstrao OSAL usada. O Emulador, como extenso da placa SoC_BB, possui ainda um boto de restart e dois LED que fornecem feedback ao utilizador. Foi ainda instalado um adaptador de 8 pinos, tambm ligado porta SPI, para instalao de uma memria RAM de forma a permitir a funcionalidade de escrita no futuro.

60

Desenvolvimento e Implementao

Figura 5.13: Circuito de deteo de degrau nos sinais /DRVS e /HEADS

O esquema eltrico e desenho da PCB do dispositivo Emulador, podem ser consultados no Anexo A.

5.4

Formato da imagem

De forma a simplicar o processo de transmisso, armazenamento e processamento de dados, recomendado o recurso de imagens de discos. Uma imagem de disco guarda toda a informao presente num disco num s cheiro de computador. Desta forma, possvel abstrair-se de diversas camadas lgicas que no inuenciam o funcionamento do emulador. Para este, no essencial saber qual o tipo de cheiro a ser transmitido nem o formato de sistema de cheiros que utilizado na disquete. Na ausncia desta abstrao, caria a cargo do emulador processar os cheiros transmitidos e interpretar um sistema de cheiros que seria utilizado para guardar os dados a serem enviados. Considerando que o controlador de disquetes do sistema antrio no faz os pedidos da informao da disquete por cheiros mas sim por faixas no disco, simplesmente necessrio manter o registo e contedo das faixas que totalmente independente do sistema de cheiros. Simplica-se assim o processo de forma signicativa.

5.4 Formato da imagem

61

Como mencionado na seco 2.3, a utilizao de imagens de discos no indita e so encontradas diversas utilizaes para as mesmas, por exemplo a realizao de cpias de segurana. Ao guardar toda a informao presente num disco, possvel que este seja reposto de forma rpida e direta sem qualquer processamento extra. No caso do emulador, esta funcionalidade fulcral uma vez que as temporizaes do protocolo MFM como descritas na seco 3.3.1 dicultam o processamento extra dos dados em tempo real. O processo de envio de dados via Emulador para o controlador aprofundado na seco 5.7. No mbito das imagens de discos, existem alguns formatos especcos para disquetes. De facto, verica-se a existncia de formatos no tanto associados ao tipo e tecnologia que equipam as disquetes mas sim sua utilizao. Surgem ento uma variedade de formatos com diferentes caractersticas que os tornam mais ou menos apropriados aos diferentes usos. A titulo de exemplo, referem-se dois destes formatos. O formato VFD Virtual Floppy Disk um formato criado pela Microsoft para utilizao em ambientes de emulao virtuais como Windows Virtual PC e Virtual Server [89, 90]. O formato LIF Logical Interchange Format da Hewlett-Packard utilizado para armazenar informao usada numa srie de calculadoras e outros equipamentos que utilizavam um sistema de armazenamento proprietrio HP-IL. Os cheiros LIF replicam estes sistemas de cheiros e so necessrias ferramentas de converso para utilizao dos dados em ambientes diferentes [91, 92]. Tentando ignorar os ambientes em que as disquetes so utilizadas, aparecem imagens genricas que contm dados que replicam o contedo completo das disquetes incluindo as tabelas de alocao de cheiros e no apenas os cheiros do utilizador. Com este formato consegue-se aceder a todos os sectores de dados presentes na disquete mas sem a informao de controlo descrita no Captulo 3. Sendo que os cheiros deste tipo contm apenas os campos de dados, o tamanho do cheiro corresponde ao tamanho da disquete. A simplicidade e versatilidade que este tipo de formato encarna faz com que seja suportado por uma variedade de aplicaes que lidam com cheiros de imagens de disquetes como o Virtual Floppy Drive, WinImage, SAMdisk, Fdio, RawWriteWin [83, 84, 9395]. De notar que estes cheiros no possuem uma especicao ou contedos prprios pelo que apenas a extenso do cheiro e o tamanho deste ajuda a identicar a tipo de disquete que representa. Assim, uma variedade de extenses podem ser usadas, mas as mais comuns so as .img ou .raw. No caso da aplicao SAMdisk, a lista de formatos que suporta extensa e exemplicativa da variedade de formatos existentes [84]:

62

Desenvolvimento e Implementao

EDSK - Extended disk image (Amstrad CPC, Spectrum +3, PC); MGT - MGT +D/Disciple/SAM (Sinclair Spectrum / SAM Coup); SAD - SAm Disk (SAM Coup); SBT - Sam BooTable disk (SAM Coup); SDF - Sam Disk Format (SAM Coup); CPM - Pro-DOS CP/M (SAM Coup); TD0 - Sydex TeleDisk (various); IPF - Interchangeable Preservation Format [apenas MFM IBM-compatvel]; TRD - Beta128 disk for TR-DOS (Sinclair Spectrum); FDI - Full Disk Image (Sinclair Spectrum, e no Disk2FDI!); OPD - OPus Discovery (Sinclair Spectrum); MBD - MB-02+ Disk (Sinclair Spectrum); UDI - Ultra Disk Image (Sinclair Spectrum); SCL - Sinclair betadisk archive (Sinclair Spectrum);

DSK - Disk image (Amstrad CPC); DSC - WinAPE disk image (Amstrad CPC); CFI - Compressed Floppy Image (Amstrad); BPB - FAT12/16 BIOS Parameter Block (MS-DOS, Atari ST); MSA - Magic Shadow Archive (Atari ST); D80 - Didaktik D80; DMK - David M Keils disk format (TRS80); IMD - ImageDisk utility image; D81 - Commodore 1581; D2M - Commodore CMD FD-2000; D88 - Toshiba Pasopia 7 disk (NEC PCxx); LIF - Logical Interchange (Hewlett-Packard); Format

S24 - Sega System 24 (Arcade, formatos 1.8M and 1.88M); RAW - Dados dos sectores, apenas identicado pelo tamanho do cheiro.

Finalmente, referem-se formatos especicamente criados para a utilizao num emulador. Estes formatos so criados de forma a minimizar a necessidade de processamento dos dados pelo equipamento. Uma disquete, no contm apenas campos de dados mas sim uma srie de campos de controlo em cada sector e faixa (Seco 3.4). O Emulador, ao necessitar de enviar tambm esta informao pode ger-la durante a emulao ou utilizar uma imagem de disco que a contenha. No contexto dos emuladores referidos na seco 2.3, surgem formatos prprios dedicados emulao. Salientam-se os formatos HFE e MFM criados por Franois del Nero. Estes formatos contm a informao de baixo nvel guardada num modo apropriado emulao de sinais FM e MFM. Como referido na seco 3.3.1, a comunicao MFM depende do histrico de bits enviados anteriormente para codicar o bit seguinte e, como tal, existe a necessidade de processar a informao a ser enviada. Este processamento pode ser efetuado em tempo real, durante o envio, pelo emulador ou ser feito previamente no processo que gera a imagem dos dados. Dependendo

5.4 Formato da imagem

63

da capacidade do microcontrolador responsvel pela emulao, pode ser desejvel dispensar esse processamento e utilizar dados previamente tratados. Neste projeto, as imagens utilizadas na programao do Emulador so geradas a partir de cheiros no formato MFM. Estes cheiros, com extenso .mfm, podem ser criados atravs de aplicaes dedicadas [31]. A aplicao HxCFloppyEmulator3 uma aplicao Windows com ambiente grco que permite um conjunto de operaes associadas ao emulador referido em 2.3. Uma destas operaes a criao de cheiros MFM a partir de cheiros presentes no computador ou de outros formatos de imagens. Um outro programa, utilizado na converso para este formato, o HxC Floppy Emulator : Floppy image le converter3 que funciona atravs da linha de comandos. Esta aplicao converte cheiros de imagens presentes numa pasta para o formato especicado nos argumentos da linha de comandos. Esta aplicao usada na criao de imagens MFM utilizadas no programa Gestor do Emulador 5.2.1. O programa de gesto extrai os dados da disquetes e guarda-os num cheiro temporrio. O programa de converso ento executado e o cheiro temporrio convertido para o formato MFM pretendido. No entanto a utilizao destes formatos implica a necessidade de memrias maiores. Um cheiro .mfm que seja criado a partir de uma disquete de 1.44 MB ocupa cerca de 4 MB. Este aumento do tamanho o resultado de diversos fatores: A codicao dos sinais de controlo presentes nas disquetes para formatao das faixas e sectores utilizados pelos controladores de disquetes. No total, esta informao juntamente com os campos de dados, ocupam, numa disquete de 1.44 MB, cerca de 2 MB; A codicao dos sinais no formato compatvel com a transmisso MFM requer a utilizao de dois bits por cada bit de dados originais. Duplicam-se assim os dados a armazenar; O cheiro .mfm possui um cabealho que contm dados sobre a disquete a ser emulada.

Na implementao do Emulador, o formato de dados utilizado baseado neste formato MFM mas apresenta algumas modicaes de forma a tornar mais fcil de manipular. O pr-processamento dos dados de forma a facilitar a transmisso no protocolo MFM efetuado para retirar lgica de controlo do emulador. Como descrito na seco 3.3.1, os sinais binrios 1 e 0 na modulao MFM so representados por impulsos que podem ocorrer no inicio ou no meio da clula. Por sua vez, a existncia e a posio destes impulsos, pode ser representada atravs dos sinais binrios como representado na Tabela 5.6.
3 As aplicaes de converso de formatos de imagem podem ser encontradas na pgina do projecto HxC Floppy Emulator: http://hxc2001.free.fr/floppy_drive_emulator/

64

Desenvolvimento e Implementao

Tabela 5.6: Formas de onda MFM e a sua representao binria em cheiros de imagem.

Sinal MFM

Codicao .mfm Codicao Usada

0 1

0 1

0 1

1 0

1 0

0 1

No caso dos cheiros .mfm, a existncia de um impulso indicada pelo bit 1. Assim, um sinal binrio 1, que na modulao MFM indicado por um impulso no inicio da clula, codicado pela sequencia de sinais 1 0.

Este tipo de codicao dos dados da disquete apresenta ainda o benecio de processar os sinais de sincronismo dos sectores de dados. Caso esta converso fosse realizada em tempo real pelo emulador, este teria de distinguir os sinais de sincronismo dos sinais correspondentes ao campo de dados de forma a alterar o sinal gerado no primeiro caso.

Os cheiros .mfm possuem cabealhos com informao referente disquete a ser emuladao que faz com que o tamanho do cheiro ultrapasse o espao disponvel na memria externa. Esta informao no necessria na memria externa (Seco 5.5) e os dados relevantes (como a velocidade de transmisso) podem ser enviados atravs de outros comandos.

Como o tamanho das faixas constante para cada formato, basta guardar a localizao do inicio de cada faixa, na memria interna do emulador cando assim os dados da memria externa guardados sequencialmente.

De forma a simplicar ainda mais o processamento efetuado pelo Emulador, a informao a ser armazenada no Emulador negada e assim um impulso representado pelo bit 0 em vez do bit 1 dos cheiros .mfm. Isto permite que para os sinais MFM os impulsos sejam automaticamente gerados com o bit 0 uma vez que normalmente o sinal est no nvel mais alto. No Emulador implementado, o sinal binrio 1 guardado como 0 1. De notar que para cada bit do sinal MFM so necessrios guardar 2 bits em memria.

5.5 Memria de armazenamento

65

5.5

Memria de armazenamento

De modo a guardar a informao necessria emulao da disquete, referida na seco 5.4, necessria recorrer a uma memria cuja capacidade mnima calculada da seguinte forma: ao se utilizar disquetes de 1.44 MB, so necessrios um total de 16 Megabits de dados dos quais apenas 11 Megabits so dados do utilizador. Os restantes so utilizados nos sinais de sincronizao. Para armazenar todos os dados da disquete so ento necessrios 32 Megabits de armazenamento. Numa disquete de 720 kB, este espao desce para metade: 16 Megabits. Considerando que o mdulo SoC utilizado tem uma memria Flash limitada a 128 kB, esta no suciente para alojar todos os dados referentes imagem da disquete. Por outro lado, a tecnologia sem os utilizada no permite que estes dados sejam enviados em tempo real do computador antrio. assim necessrio recorrer a uma memria externa para alojar os dados. Na escolha da memria a utilizar, para alm da capacidade, necessrio analisar um protocolo de comunicao. A diculdade em utilizar memrias de grande capacidade, no se prende com a sua inexistncia. Hoje em dia so facilmente acessveis cartes de memria com vrios GigaBytes de capacidade, no entanto o formato em que feita a comunicao , neste caso, limitador. Foram consideradas memrias em cartes Secure Digital pelo seu baixo preo e facilidade de aquisio e utilizao. Estes cartes alm do protocolo proprietrio SD podem tambm comunicar usando um protocolo simplicado via SPI [96]. Apesar de ser uma soluo interessante, a sua utilizao foi descartada pois o protocolo de comunicao inclui bytes de controlo de erros que interferem com o processo de envio de dados do Emulador para o controlador de drive de disquetes. Foram assim consideradas memrias ash que suportem o protocolo SPI. Na implementao do prottipo foi utilizada a memria AT25DF161 da Atmel [9799]. Estas memrias alojam 16 Mbits de dados mas existem verses de 32 e 64 Mbits. Mas outras memrias de outros fabricantes implementam protocolos muito similares e podem ser facilmente adaptadas. So exemplos as memrias Winbond Serial Flash W25Q32BV [100] ou as Microchip SST25VF032B [101].

5.6

Transmisso da imagem

A caracterstica diferenciadora deste Emulador em relao aos existentes a sua capacidade de receo dos dados atravs de uma interface sem os. Esta funcionalidade conseguida atravs

66

Desenvolvimento e Implementao

do envio de pacotes de dados do Gestor para a memria externa do Emulador atravs do dispositivo Coordenador. Todos estes dispositivos so chamados a intervir na sequncia de comandos necessrios transmisso. O diagrama simplicado do processo de envio de uma pgina de dados apresentado na Figura 5.14. Gestor Coordenador Emulador Memria Externa

Ciclo Pgina Pgina Pacote Pacote Pacote Pacote Escrita Pgina Resposta

Figura 5.14: Envio de imagem: Diagrama de sequncia de mensagens entre Gestor, Coordenador, Emulador e Memria O processo de transmisso iniciado no Gestor e este responsvel por toda a gesto do envio dos dados. Como referido na seco 5.4, apenas os dados relevantes so guardados na memria externa e como tal, necessrio o seu processamento prvio. O Gestor extrai a informao necessria do cheiro .mfm descartando o cabealho e espaos entre as faixas. Prossegue tambm negao dos octetos como referido na seco 5.4. Como cada um dos atores envolvidos neste processo utiliza tecnologias diferentes, o envio da imagem tem que ser adaptado a cada uma das tecnologias. No caso do processo da escrita na memria externa, ao se consultar a folha de caractersticas, verica-se que a operao de escrita efetuada em pginas de 256 bytes [98]. De forma a otimizar este processo, o Emulador necessita ento de agrupar 256 bytes de dados antes de os enviar, via porta SPI, para memria. A escrita dos dados ser ento executada em blocos de 256 bytes referentes pgina da memria a ser escrita.

5.6 Transmisso da imagem

67

Em cada ciclo de 256 bytes, o gestor envia para o Controlador o comando de escrita na memria, o endereo onde os dados devem ser escritos e os 256 bytes de dados num comando, atravs da porta srie virtual. O Controlador ao receber os dados necessita de os adaptar de forma a serem enviados atravs do canal de comunicao sem os. Como referido na seco 4.4, a interface de programao fornecida pela Z-Stack, limita o campo de dados que a aplicao pode utilizar a 85 bytes. Desta forma, necessrio partir a trama de 256 bytes de dados em blocos que possam ser inseridos nos pacotes rdio. So ento formados 4 pacotes que contm o endereo dos dados e 64 bytes de dados. O Controlador envia o pacote para o Emulador e espera pelo evento gerado pela Z-Stack, que indica que a mensagem foi enviada com sucesso antes de enviar o pacote seguinte. Quando os 4 pacotes so enviados, o Controlador sinaliza ao Gestor que est pronto para o envio da pgina seguinte. O processo do envio de pacotes entre o Controlador e o Emulador revelou ser o mais lento de toda a cadeia de comunicao. Entre o envio de um pacote e a ativao do evento que sinaliza o envio desse pacote com sucesso registaram-se valores na ordem dos 200 milissegundos. Assim, o intervalo entre o envio de duas pginas consecutivas pelo gestor demora, mdia, 850 ms. Numa disquete de 720 kB, em que so transmitidos 2 milhes de bytes que compe a imagem, o tempo de transmisso cifra-se em cerca de duas horas. No caso das disquetes de 1.44 MB, este valor duplica. Estes valores no so comportveis com a aplicao pretendida e, como tal, foram feitas algumas tentativas no sentido de diminuir este tempo. Uma simplicao da lgica de envio em conjunto com a gerao dos eventos associados no dispositivo coordenador resultou na diminuio do tempo entre o envio de pacotes ZigBee para um valor mais prximo dos 150 ms. No entanto este valor ainda alto e a transmisso de uma imagem de 2 milhes de bytes demora, ento, aproximadamente 1 hora e 30 minutos. Uma reduo do nmero de pacotes a transmitir por cada pgina revelou-se impossvel pois mesmo sem o envio da informao do endereo, 3 pacotes de 85 bytes no so sucientes para enviar 256 bytes. Procedeu-se ento realizao de testes que dispensam ou diminuem o tempo de espera pela conrmao da receo. No entanto, neste caso, o nmero de erros de transmisso aumentava de forma signicativa o que exigia o reenvio dos dados tornando o processo ainda mais lento. Considerando que a transmisso sem os afetada por outros sinais que podem ocupar o mesmo espectro radio-eltrico, torna-se difcil isolar o motivo destes atrasos. Tentativas de isolamento do Controlador e do Emulador de outras redes sem os e a alterao do canal 802.14.5 utilizado no trouxeram quaisquer melhorias nestes tempos.

68

Desenvolvimento e Implementao

5.7

Implementao Protocolo MFM

O principal desao na implementao do Emulador est associado ao protocolo MFM, utilizado na comunicao de dados entre o Emulador e o controlador de disquetes. O protocolo MFM teve uma aplicao limitada no uso e no tempo pelo que no existem moduladores destes sinais em hardware como os existentes para SPI ou I2C do CC2430. Estes protocolos so usados em muitas aplicaes diferentes o que justica a existncia de tais bibliotecas e circuitos dedicados. No existindo esta facilidade, ento necessrio recorrer a outras tcnicas para criar as formas de onda que respeitem as especicaes referidas na seco 3.3.1. Um outro aspeto que preciso analisar e que inuencia de forma signicativa a gerao dos sinais MFM a extrao dos sinais a serem enviados da memria. Se o processo de aquisio de um novo dado for demasiado lento, a transmisso ca comprometida. Nesta anlise, so usadas como referncia as disquetes de 3/2 polegadas de alta densidade, que velocidade de 300 rotaes por minuto, debitam dados a 500 kbps, ou seja, 1 novo bit a cada 2 microssegundos. Como no utilizado um sinal de sincronismo, mas sim os tempos entre impulsos sucessivos, regista-se a necessidade de garantir o envio sem atrasos, uma vez que estes que poderiam ser erroneamente interpretados como sinais legtimos, apesar de errados. O desao, ento, dividido em trs partes:

Extrair da memria os dados que se pretende enviar; Se necessrio, processar a informao; Operar o sinal MFM na temporizao e codicao certas.

No existindo o hardware dedicado para a gerao de sinais MFM, so analisadas solues para a gerao do sinal pretendido. A primeira a utilizao de hardware dedicado para a modulao do sinal; a segunda a adaptao de uma modulao existente tais como o protocolo SPI ou a tcnica PWM; a terceira a manipulao direta dos pinos, uma tcnica conhecida por Bit-Banging. Esta seco, ir descrever alguns testes realizados durante a implementao at soluo nal.

5.7.1

Hardware dedicado

Foi contemplada a possibilidade de criao de um mdulo em hardware que realizasse a modulao do sinal. Um mdulo CPLD receberia na entrada um byte de dados e apresentaria na sada

5.7 Implementao Protocolo MFM

69

o sinal MFM com a temporizao e forma corretas. Esta implementao teria certamente algumas vantagens ao funcionar de forma independente do microcontrolador e poderia tambm controlar todo o formato de faixa, gerando os respetivos sinais de controlo, sendo apenas necessrio fornecer os campos de dados. No entanto esta soluo foi posta de parte pois implicaria a aprendizagem de uma nova tecnologia e aumentaria o custo da soluo. Nas fases iniciais do projeto, ainda no eram conhecidas totalmente as capacidades do microcontrolador e das diculdades que iriam surgir na implementao da modulao do sinal.

5.7.2

Sinal auxiliado por hardware

As formas de onda pretendidas podem ser conseguidas atravs da manipulao de sinais gerados pelas funes em hardware do microcontrolador CC2430, como o canal UART na congurao SPI e funes de gerao de sinais PWM. O SPI um protocolo de comunicao sncrono que recorre a um sinal de relgio para transmitir informao para equipamentos perifricos de forma srie. Neste projeto, o protocolo SPI utilizado na comunicao entre o microcontrolador e a memria externa. Noutros contextos, ao manipular os dados a serem enviados, manipula-se a forma de onda do sinal gerado. Escolhendo a temporizao e os octetos de dados cuidadosamente, este sinal pode replicar o sinal MFM pretendido. Consultando a folha de especicaes do microprocessador CC2430, verica-se que a frequncia mxima possvel dada pela Equao (5.1) onde F a frequncia de relgio.

FSPI =

1 F 8

(5.1)

No caso dos mdulos utilizados essa frequncia de 32 MHz. Assim, a frequncia mxima do canal SPI de 4 MHz que , justamente, a frequncia necessria para transmitir cada bit de informao como calculado na Equao (5.2).

1 8bits = 2 s 4MHz

(5.2)

A durao de cada byte da transmisso SPI corresponde ao tamanho da clula que cada bit MFM a 500 kbps ocupa. Assim, a clula poder ser modulada atravs de um byte SPI que replique a forma de onda desejada, tal como os apresentados na Tabela 5.7.

70

Desenvolvimento e Implementao

Tabela 5.7: Octetos SPI a simular bits na modulao MFM Bit MFM 1 0 (Aps um 0) 0 (Aps um 1)

Forma de onda MFM

Octeto dados SPI

0xF3

0x3F

0xFF

Se o buffer de envio foi preenchido de forma clere o suciente, ento possvel o envio dos sinais dentro das temporizaes requeridas. Isto pode ser conseguido atravs da manipulao direta do registo associado porta UART do microprocessador ou atravs do uso de uma DMA (Direct Memory Access) que alimenta de forma automtica este registo. A utilizao da porta SPI apresenta no entanto algumas desvantagens: apesar de s interessar um pino de sada MOSI (Master Out, Slave In) da porta SPI, o microprocessador usa tambm mais dois pinos das suas portas de Entrada/Sada, um de relgio e outro de entrada MISO (Master In, Slave Out), inutilizando assim alguns pinos necessrios para a comunicao com o controlador. Imediatamente se verica que para cada bit que se pretende enviar, necessrio enviar um byte de dados multiplicando assim por 8 a quantidade de dados a serem armazenados. Neste caso, o uso da DMA preterido uma vez que obriga ao armazenamento de um volume muito maior de dados. O uso da DMA tambm se verica problemtico uma vez que esta limita a fonte de informao memria interna do microcontrolador. O envio da sequncia dos dados MFM ininterrupto pelo que seria necessrio guardar toda a sequncia de dados referentes a uma faixa de dados inteira na memria interna, como referido na seco 3.4. A memria interna do microcontrolador, no , portanto adequada ao volume de informao que se pretende processar. Os mdulos CC2430 (e o mdulo alvo deste projeto, RC2300) possuem 128 kb de memria ash que partilhada pelo cdigo e dados de utilizador. Esta memria pode ser acedida atravs de funes da Z-Stack ou diretamente atravs da DMA. , no entanto, de notar que no aconselhvel a escrita repetida nesta memria devido degradao provocada pelas sucessivas escritas [88] para alm do facto da operao ser morosa. Neste mdulo, devido ao modo de funcionamento do canal DMA, no foi possvel criar um canal de comunicao direto entre a porta SPI da memria externa e a porta SPI que simula o sinal MFM. Abandonou-se assim a soluo com a tecnologia DMA. Com a porta SPI como geradora de sinais testou-se ainda a possibilidade de alimentar o registo da porta de forma manual. Esta soluo permitiria o processamento dos dados em tempo real sem necessidade de armazenar um volume de dados muito maior.

5.7 Implementao Protocolo MFM

71

Seria ento necessrio o processamento dos dados e o envio do byte correspondente para a porta UART a cada 2 s. Apesar da referida permissividade a desvios de alguns nanossegundos, no foi possvel escrever na porta SPI com a cadncia desejada devido a atrasos que ocorriam entre bits consecutivos: de forma a garantir a escrita na porta sem erros, necessrio esperar que o indicador UxACTIVE do CC2430, que sinaliza o processo de escrita na porta SPI, seja limpo. No entanto, se se esperar que este indicador seja limpo pelo processador surge um atraso entre dois bytes consecutivos. Este atraso viola as temporizaes impostas pelo protocolo MFM. Se se ignorar o indicador UxACTIVE e efetuar a escrita antes que o envio seja concludo, podem ocorrer perdas de dados. De forma similar utilizao da porta SPI para gerar as formas de onda, foi tambm testada uma soluo que recorre ao gerador de sinais PWM (Pulse Width Modulation) para desenhar os impulsos do protocolo MFM. Programando o contador PWM para desenhar impulsos de 400 ns de largura a cada 1 s, pode sobrepor-se a este sinal um outro, que ltra os impulsos que resultam na forma de onda pretendida. Este ltro seria gerado por um outro pino do microcontrolador e teria de ser atuado de forma a remover os impulsos que no se pretendem transmitir. Este sinal, operado a cada 1 s, seria conjugado com uma porta lgica AND para resultar no sinal MFM pretendido. O uso do sinal PWM exige ao microprocessador que ltre o sinal a cada 1 s, o que apresenta apenas uma pequena vantagem face operao direta do pino. Este sistema por sua vez, apresentou outros problemas nomeadamente na diculdade em sincronizar o sinal PWM gerado com o sinal de ltragem. Tendo as tentativas de utilizao de sinais gerados por hardware no obtido os resultados pretendidos, o desenvolvimento da aplicao foi orientado manipulao do pino MFM diretamente.

5.7.3 Bit-Banging

De forma a analisar a capacidade de comutao dos pinos do microcontrolador foi efetuado um teste sua velocidade de comutao: Atravs do cdigo da Listagem 5.1 obtido o resultado registado na Figura 5.15. O teste revela que o CC2430 consegue comutar o pino em menos de 100 ns mas que este valor pode, em alguns casos, variar. Apesar da comunicao MFM depender do tempo entre sinais para descodicar os dados, este tambm algo permissivo a pequenas variaes se estas no inuenciarem a forma de onda nal. O impulso do sinal MFM tem normalmente 400 ns de largura, mas foram registados casos em disquetes reais com impulsos menores e maiores, bem como desvios entre os sinais de algumas centenas de nanossegundos, sem que tenham ocorridos erros. Existe assim alguma margem de manobra nesta operao.

72

Desenvolvimento e Implementao

Listagem 5.1: Operao direta do pino MFM


1 2 3 4 5 6 7 8 9 10 11 12 13 14

# d e f i n e HIGH 1 # d e f i n e LOW 0 # d e f i n e Pin_MFM 0 x90 . 0 i n t main ( v o i d ) { Pin_MFM = HIGH ; Pin_MFM = LOW ; Pin_MFM = HIGH ; Pin_MFM = LOW ; Pin_MFM = HIGH ; Pin_MFM = LOW ; Pin_MFM = HIGH ; Pin_MFM = LOW ; }

Figura 5.15: Pino de sada em resposta aos comandos efetuados na Listagem 5.1 .

No sentido de se obter tempos mais precisos, foi testada uma soluo que recorre ao uso dos temporizadores do CC2430. O temporizador dispara a rotina de interrupo a cada 2 s (a durao de cada bit na codicao MFM) e esta rotina responsvel pelo envio do bit correspondente. Esta soluo tambm se vericou problemtica pois surgiram diculdades em colocar todo o processamento necessrio dentro do tempo disponvel na rotina de interrupo e comearam a surgir atrasos entre as interrupes. Vericou-se que o mtodo de vericao de bit tinha um peso demasiado grande na rotina de interrupo uma vez que envolvia a extrao do bit a ser processado, do byte recebido via SPI e a sua comparao com o bit enviado anteriormente. Com as alteraes ao formato .mfm que dispensam o processamento dos bits a enviar, o requisito de temporizaes ca mais curto e dever ocorrer a cada 1s. O microcontrolador no se registou rpido o suciente para efetuar as interrupes a este ritmo e assim esta soluo foi tambm abandonada. De forma a otimizar este processo, o projeto foi orientado de forma a implementar o envio dos dados em cdigo assembly juntamente com o pr-processamento de dados como referido na

5.7 Implementao Protocolo MFM

73

seco 5.4.

5.7.4

Soluo em Assembly

A soluo nal do modulador MFM foi ento concretizada em rotina separada, escrita em assembly, de forma a obter um maior controlo das temporizaes do microcontrolador. Ao entrar no processo de envio, a rotina responsvel dever correr continuamente, sendo apenas interrompida pelas interrupes geradas pelos eventos nos pinos de sinal que transmitem os comandos do controlador da drive de disquetes, e por um temporizador que reinicia o envio da faixa a cada 200 ms, ou seja, simula uma rotao do disco magntico a 300 rpm. A rotina descrita implementa o processo Envio da faixa referido na Figura 5.7. Este controlo do Emulador sobre a rotina de envio de faixa efetuado atravs de variveis globais que a rotina em assembly consulta periodicamente:

spiAddr Endereo da faixa a ser enviada; stopMFM Sinaliza que a rotina deve terminar; restartMFM Sinaliza que a rotina deve recomear o envio de dados; pauseMFM Sinaliza que a rotina deve suspender o envio de dados.

Ao ser chamada, a rotina perfaz a inicializao das variveis mencionadas. Inicia tambm o comunicao SPI atravs da ativao do sinal Chip Select da memria externa e o envio do comando para a leitura dos dados da mesma. O endereo da memria onde a faixa a ser enviada est presente indicado pela varivel spiAddr. De forma a no interromper a sequncia de envio de dados, a manipulao do sinal de /INDEX est tambm ao cargo deste cdigo. O sinal ativado no inicio da faixa e uma varivel conta o numero de bytes que so enviados. Quando este valor atinge o valor programado, o sinal /INDEX desativado. A largura do impulso denida pela Equao (5.3). Inicializando o valor do contador a 256 gerado um sinal /INDEX que ca ativo durante aproximadamente 4 ms.

Contador 16 s = Largura Impulso

(5.3)

O controlo de todas as operaes efetuadas pelo microcontrolador ca a cargo do cdigo da rotina que dever ter em conta a durao de cada comando, para respeitar a distancia entre bits do

74

Desenvolvimento e Implementao

sinal MFM. Quando se implementou o cdigo assembly recorrendo a ciclos, registaram-se alguns desvios nas temporizaes que impediram o seu uso. O ciclos so implementados atravs de um contador num dos registo do processador que inicializado com um valor que , por sua vez, progressivamente decrementado. Quando o registo atinge o valor zero, uma ao diferente pode ser executada. No entanto, vericou-se que estas aes tm pesos temporais diferentes. Estes contadores podem ser utilizados para implementar ciclos repetitivos como, por exemplo, o envio de 8 bits que compem um byte. Neste caso, iniciar-se-ia o registo com o valor 8 e no nal de cada bit o registo seria decrementado. No caso de valores maiores do que os suportados por um registo do contador, pode recorrer-se ao uso de 2 contadores, um dentro do outro, para executar a contagem de, por exemplo, os 25000 bytes de informao que perfazem a faixa a enviar. Ao implementar um destes ciclos para o envio de cada bit, anavam-se as temporizaes de modo a que cada bit respeitasse a janela mas a diferena de tempo entre o ltimo bit de um byte e o primeiro bit do byte seguinte registava-se superior s diferenas entre bits do mesmo byte. O uso de vrios destes ciclos levou ao acumular de atrasos ao ponto de a distncia entre bits consecutivos ser superior a uma janela temporal que se considerou segura (500 ns correspondentes 1/4 de bit). A soluo passou ento por reduzir ao mximo a existncia destes ciclos sendo apenas utilizados dois: o contador usado pelo sinal /INDEX, e um ciclo por cada byte a ser enviado. Cada bit deste ciclo processado individualmente e no contabilizado o numero de bytes a enviados em cada faixa. O espalhamento do cdigo criado por este problema permitiu, por outro lado, a execuo de um cdigo diferente no intervalo referente a cada um dos bits, o que aumentou a sua versatilidade e permitiu o teste s diferentes variveis de controlo diferentes dentro do ciclo. No inicio do ciclo do byte a ser enviado, este lido do registo associado porta SPI e o primeiro bit enviado para o pino de sada. Se este bit tiver o valor 0, a escrita deste valor no pino de sada vai criar um impulso no sinal MFM. O valor da varivel restartMFM carregado no acumulador. De seguida, o impulso no pino MFM terminado ao colocar o pino no nvel lgico 1 e nalmente o valor da varivel carregada (neste caso restartMFM) testado antes de iniciar o envio do bit seguinte. Durante o envio do segundo bit, o bit 1, outra varivel como a stopMFM testada. Durante o bit 2 a varivel pauseMFM carregada e testada. Nos bits seguintes estas variveis so novamente testadas de forma cclica. Durante o envio do bit 4, a meio da sequncia, pedido um novo byte de dados da memria atravs da escrita de um byte na respetiva porta. Nos bits seguintes, as variveis so continuamente testadas como nos primeiros bits. Se alguma das

5.7 Implementao Protocolo MFM

75

variveis de controlo for testada e tiver um resultado positivo a rotina altera o seu comportamento inviabilizando a sequncia de dados que estava a ser enviada. A varivel pauseMFM coloca a rotina num estado de suspenso at que o comando de reincio seja emitido. Esta pausa necessria para no enviar para o controlador de drives de disquetes informao que no corresponde ao estado que est espera. Ocorre geralmente numa operao de mudana de faixa ou de cabea de leitura. No caso do reincio de faixa, cada vez que a interrupo do temporizador ativada, a varivel restartMFM sinalizada com o valor lgico TRUE e, quando a interrupo termina e a rotina de envio de dados retoma a sua execuo, encontrar este sinal ativo e proceder ao reincio da operao. Caso o endereo da faixa tiver sido alterado, este ser automaticamente enviado para a memria externa quando o processo se iniciar. Finalmente o comando de stopMFM instrui a rotina para terminar a sua operao e devolver o controlo do processador Z-Stack. Uma das diculdades que ocorreu na implementao do cdigo est associado ao aumento do tamanho do cdigo que foi produzido por no se recorrer a ciclos. O cdigo cou mais longo e como tal, os comandos DJNZ do microprocessador, que efetua um salto entre dois pontos do cdigo, no suportam que estes pontos estejam esto distantes. De forma a que este comando seja executado com sucesso, foi inserido cdigo de ligao no inicio e no m da rotina de envio de dados. Uma drive com uma disquete de baixa densidade envia os dados a metade do dbito em relao a uma disquete de alta densidade. A diferena de velocidades conseguida atravs da reduo da velocidade de relgio do microprocessador de 32 MHz para 16 MHz. Pequenas variaes nas temporizaes associadas largura dos impulsos levaram construo de duas rotinas separadas, uma para cada velocidade.

76

Desenvolvimento e Implementao

Captulo 6

Resultados

Aps a implementao do emulador, a sua validao realizada atravs de testes funcionais. Testam-se as duas funcionalidades principais do dispositivo: A emulao da drive de disquetes; e a transmisso sem os.

6.1

Emulao

A emulao da drive de disquetes testada atravs do uso de um computador pessoal em que a drive de disquetes substituda pelo emulador em teste. O computador de teste corre o sistema operativo Windows XP e possui um controlador de drive de disquetes embutida no controlador genrico da placa me que, de acordo com o programa SAMDisk, reporta ser o 82077. A imagem de testes foi criada com a aplicao WinImage e depois convertida para o formato MFM com as ferramentas referidas na Seco 5.4. A imagem de disco replica uma disquete de 720 kB com dois cheiros: 1 cheiro de texto com 4025 bytes e um cheiro de imagem fotogrca com 725095 bytes. A capacidade da disquete ca assim praticamente completa exigindo que a leitura destes documentos, especialmente do cheiro fotogrco, percorra toda a disquete. So realizados dois testes funcionais: O primeiro teste envolve a listagem e leitura do cheiro existente na disquete atravs das ferramentas fornecidas pelo sistema operativo. 77

78

Resultados

Usando o programa Explorador que permite a listagem de cheiros nos discos lgicos do computador, ao escolher a Drive de Disquetes, este lista os cheiros presentes na disquete. O cheiro de texto aberto na aplicao Bloco de Notas e o cheiro de imagem visualizado atravs de uma aplicao de visualizao de cheiros de imagem. Tambm se recorre aplicao Linha de Comandos para efetuar a operao de listagem.

Figura 6.1: Listagem do contedo da imagem emulada.

Nos testes realizados vericou-se a ocorrncia ocasional de erros quando se tentava aceder disquete de forma simultnea como tentar ler o cheiro de texto enquanto o cheiro de imagem carregava. Num cenrio mais simples, efetuaram-se os testes de leitura em que as operaes de listagem e leitura dos cheiros so efetuadas de forma sequencial. Estas operaes foram repetidas 5 vezes e entre cada teste o computador foi reiniciado de forma a evitar que o Sistema Operativo guarde os cheiros em memria e no recorra leitura efetiva dos dados do emulador. Em cada um destes testes no foram registados erros. O segundo teste envolve a operao de criao de uma imagem de dados a partir do emulador. Usando o comando SAMDisk -c0-79 a: guardados na memria. A leitura da imagem efetuada 5 vezes, e nos 5 casos verica-se que as imagens lidas correspondem original indicando uma extrao de dados sem erros. Para efetuar esta validao utilizado um programa de comparao de cheiros binrios que sinaliza alguma possvel diferena.
read.raw obtm-se uma imagem dos dados

emulados. Esta imagem, dever corresponder exatamente imagem usada para gerar os dados

6.2 Transmisso sem os

79

6.2

Transmisso sem os

A aplicao Gestor utiliza um cronmetro no envio da imagem para o emulador que contabiliza o tempo que decorre entre o envio das tramas das 265 bytes para o Coordenador e calcula o seu valor mdio. Outro cronmetro calcula o tempo total decorrido no envio da imagem completa. Registando este valor, verica-se que a transmisso da imagem de 720 kB de testes demora aproximadamente 1 hora e 25 minutos. Uma anlise aos tempos decorridos entre cada ao do Coordenador, permite vericar em que estados existem maiores maiores atrasos. Na Figura 6.2 e Tabela 6.1 so resumidos os tempos mdios entre as aes associadas ao envio da pgina.
tempo 4 t1 Nova pgina Incio Envio Pacote t2 Fim Envio Pacote t3 t4 Ack Incio Envio Pacote t5 Ack Nova pgina

Figura 6.2: Medio de tempos na transmisso sem os. Intervalo Tempo Mdio t1 0.85 ms t2 2.87 ms t3 145.32 ms t4 0.30 ms t5 54.27 ms Total Pgina 649.41 ms Tabela 6.1: Valores temporais mdios registados na rotina de transmisso de dados.

Analisando os resultados obtidos na Tabela 6.1, verica-se que este ocupa a maior parte do seu tempo espera da sinalizao de mensagem enviada com sucesso. Sendo necessrias 4 destes tempos de espera, o tempo de espera totaliza cerca de 580 ms. No total, o envio da pgina demora 649 ms a ser enviada. Comparando este valor com o tempo total de envio da pgina mdio calculado pelo Gestor, 650 ms, verica-se que o tempo dedicado lgica de processamento interno e comunicao srie: 70 ms, muito menor que o tempo despendido durante a espera: 580 ms. De notar que estes testes so feitos entre um dispositivo Coordenador ZigBee Coordinator) e Encaminhador (ZigBee Router) que formam a totalidade da rede. Caso existam outros dispositivos

80

Resultados

na rede ou os dispositivos de origem e destino estejam ligados atravs de encaminhadores, os tempos de envio devero aumentar ainda mais. Apesar da comunicao ser efetuada com sucesso, o tempo necessrio para a executar excessivo face utilizao que se pretende do emulador e como tal no satisfaz, totalmente, os objetivos pois no trs uma mais valia face ao tempo requerido pela deslocao fsica.

Captulo 7

Concluses e Trabalho Futuro


A existncia de equipamento que recorre a tecnologia obsoleta prope a sua adaptao para tecnologia mais moderna. Neste trabalho, implementada uma soluo que prope a substituio da drive de disquetes por um emulador que equipado com um mdulo de transmisso sem os.

7.1

Concluses

Foi estudado o funcionamento das drives de disquetes e a sua comunicao com o controlador de drive de disquetes de forma a implementar uma soluo totalmente transparente para o equipamento onde feita a substituio. Foi construido um prottipo do emulador que comunica com o controlador. Os testes realizados revelaram que o equipamento de testes no distingue o emulador de uma drive de disquetes real e que a emulao realizada com sucesso. No sentido da implementao da emulao foram ainda estudados formatos de condicionamento de dados especialmente orientados emulao e ao seu armazenamento em memrias. Ao ser dispensado o uso de disquetes e ao se recorrer a memrias ash, a soluo apresenta uma melhoria na abilidade e longevidade do sistema, devido tecnologia utilizada nas memrias quando comparada com as disquetes. Uma ferramenta de anlise comunicao entre o emulador e o controlador de drive de disquetes foi criada de forma a auxiliar o desenvolvimento do emulador. A sua estrutura modular permite a sua adaptao ao outras ferramentas de captura e outros protocolos de comunicao. Realizada uma prospeo a outros emuladores existentes, nenhum registou a funcionalidade da transmisso de dados via protocolos de comunicao sem-os o que aumenta a relevncia da soluo proposta neste trabalho. O emulador implementado com recurso a um microcontrolador com transcetor rdio integrado que suporta a comunicao via protocolo ZigBee. De forma a gerir 81

82

Concluses e Trabalho Futuro

a comunicao e transmisso sem-os dos dados para o emulador, criado um programa de gesto e envio das imagens atravs de um mdulo sem-os ligado a uma porta USB do computador. O envio dos pacotes entre o dispositivo controlador e emulador registou ser demasiado lento para a aplicao em causa. Tentativas de otimizar este recurso revelaram-se limitadas. Sendo assim, a implementao da transmisso dos dados via a comunicao ZigBee revelou-se limitadora para os dados que se pretendem transmitir. Finalmente, considera-se que o projeto representou um desao alargado que exigiu a aplicao e estudo de diversos campos que compem o Curso em Engenharia Eletrotcnica. Para alm da pesquisa de dados relevantes ao problema, envolveu a construo de programas em 3 linguagens de programao diferentes, desenho e construo de circuitos eletrnicos e anlise de engenharia reversa de tecnologias existentes. O prottipo funcional resultante desta tese, embora lento na transmisso de dados, emula com sucesso uma drive de disquetes com dados recebidos por uma ligao sem os.

7.2

Trabalho Futuro

No seguimento do trabalho realizado neste projeto so mencionados alguns pontos que se consideram relevantes em desenvolvimentos futuros. Imediatamente se verica a necessidade da utilizao de outra tecnologia sem os. Sero particularmente interessantes as solues que recorram tecnologia IEEE 802.11 que suportam um maior dbito. Neste caso, ter de ser considerado cuidadosamente qual a tecnologia a utilizar pois apesar dos dbitos elevados da rede, nem todos os equipamentos suportam estas velocidades. Esta alterao implicar tambm alterao do microcontrolador a utilizar. O novo controlador, caso tenha maior capacidade de processamento, poder utilizar outra abordagem emulao e utilizar uma das tcnicas mencionadas nas seco 5.7.4 que dispense o tratamento prvio dos dados. Alternativamente, ou de forma complementar, poder otimizar-se a transmisso dos dados atravs do envio parcial dos dados tal como o envio de apenas uma faixa que tenha os dados relevantes. Caso os dados que se pretendam emular possuam um tamanho reduzido, no necessrio recorrer ao envio da faixas vazias. Outra soluo, poder recorrer compresso dos dados a enviar. Sugere-se ainda a substituio das memrias ash pela utilizao de memrias Secure Digital ou de uma pen USB para armazenamento dos dados pela sua ubiquidade e versatilidade.

7.2 Trabalho Futuro

83

No tendo sido implementada neste trabalho a possibilidade de escrita por parte do controlador de drive de disquetes, considera-se uma funcionalidade pertinente a ser implementada no futuro. De forma a suportar esta funcionalidade, o hardware do prottipo desenvolvido foi planeado e construido de modo a utilizar uma memria RAM, deixando essa possibilidade em aberto. Registam-se tambm algumas alteraes a serem includas no programa Gestor. Para alm da criao de imagens a partir da drive de disquetes real, prope-se a criao das imagens diretamente a partir de cheiros existentes no disco, ou da criao de uma drive de disquetes virtual que permita uma utilizao mais parecida com o funcionamento real (sem emuladores). A converso dos dados para o formato utilizado na emulao dever ser implementada internamente de forma a no depender de programas externos. Torna-se possvel a converso de dados parciais, tal como de uma faixa, e no s de imagens de disco integrais. Ser ainda interessante a implementao de um sistema que permita a gesto de mltiplos emuladores e do envio parcial dos dados, como por exemplo, o envio de apenas uma faixa de dados. Finalmente, referem-se melhorias a efetuar nas aplicaes auxiliares que podero simplicar e acelerar consideravelmente o desenvolvimento de novos emuladores. A aplicao usada na anlise da comunicao entre coordenador e emulador MFM Log Parser poder ser adaptada para funcionar com outros equipamentos de captura e com outros formatos de cheiros. A sua estrutura modular dever facilitar esta transformao. De forma a melhor facilitar a depurao dos dados, a total descodicao dos sinais MFM pode ser implementada, dando assim acesso ao contedo dos sectores de dados. Referente aplicao de programao das memrias, podero ser implementadas ferramentas que permitam um controlo mais renado sobre os dados presentes na memria. A alterao do contedo da imagem na memria seria feita diretamente atravs do programa sem necessidade de criao de um cheiro de imagem e a sua converso para o formato MFM.

84

Concluses e Trabalho Futuro

Anexo A

Esquemtico e desenho da PCB do Emulador


Apresentam-se os diagramas de esquemtico e o desenho da placa de circuito impressa criada para realizao da emulador. Esta placa funciona como extenso placa SoC_BB atravs da interligao de 2 Conectores IDC-PCB 20 pinos.

85

86

Esquemtico e desenho da PCB do Emulador

Figura A.1: Esquemtico da placa de extenso ao mdulo SoC_BB do dispositivo Emulador.

Esquemtico e desenho da PCB do Emulador

87

Figura A.2: PCB da placa de extenso ao mdulo SoC_BB do dispositivo Emulador.

88

Esquemtico e desenho da PCB do Emulador

Figura A.3: Prottipo do emulador ligado ao mdulo SoC_BB

Referncias
[1] George P. Landow. Jacquard Punch Card Loom. Disponvel em WWW: <URL: http: //www.victorianweb.org/technology/textiles/jacquard2.html>. [2] Inc SWF East. SWF/E-902DF Dual Function Two-head, Nine Needles. Disponvel em WWW: <URL: http://www.swfeast.com/en/pdf/SWF_E902DF.pdf>. [3] LTD Brother Industries. BE-1204B-BC / BE-1206B-BC Instructions Manual. Disponvel em WWW: <URL: http://www.brother-usa.com/ModelDocuments/
Consumer/Instruction%20Manual/IM_BE_1204B_1204C_1206B_PC_EN_ 2077.PDF>.

[4] BE-1201B-AC [Em Linha], Brother Internation Corporation. Disponvel em WWW: <URL: http://www.brother-usa.com/IndustSewEmb/ModelDetail. aspx?ProductID=BE1201BAC>. [5] HAPPY HCG-Series Multi-Head Machines [Em Linha], TEXMAC. [Consult. Setembro 2011]. Disponvel em WWW: <URL: http://www.happyemb.com/infopage_ multi_hcg.htm>. [6] Multi-head Automatic Embroidery Machines. 1988. [7] LTD Brother Industries. UM ULT 2001 Operation Manual. Disponvel em WWW: <URL: http://www.brother-usa.com/ModelDocuments/Consumer/ Users%20Manual/UM_ULT_2001_EN_200.PDF>. [8] Milltronics Inc. VKM4 - 3 Axis CNC The Knee Mill with MillSlide, 2011. [9] HEIDENHAIN Corporation. MILLPWR 3 Axes Operation Manual. [10] ABB Robotics Products AB. ABB Product On-line Manual IRB 1400. [11] Digital Real-TimeTM Oscilloscope TDS340S [Em Linha], Tektronix. [Consult. Fevereiro 2010]. Disponvel em WWW: <URL: http://www2.tek.com/cmswpt/psdetails. lotr?ct=PS&cs=Data+Sheets&ci=14415&lc=EN>. [12] Agilent 35670A Dynamic Signal Analyzer Data Sheet [Em Linha], Agilent, 2009. [Consult. 8 Feveveiro 2010]. Disponvel em WWW: <URL: http://cp.literature. agilent.com/litweb/pdf/5966-3064E.pdf>. 89 Disponvel em WWW: <URL: http: //www.theembroiderywarehouse.com/brochures/Tajima%20TMEG.pdf>,

90

REFERNCIAS

[13] A history of the Atari ST and Commodore Amiga [Em Linha], Mark Miller, Maio 2008. Disponvel em WWW: <URL: http://tekkie.wordpress.com/2008/05/ 16/a-history-of-the-atari-st-and-commodore-amiga/>. [14] Planet Sinclair - Sinclair Computers [Em Linha], Chris Owen. Disponvel em WWW: <URL: http://www.nvg.ntnu.no/sinclair/computers/computers.htm>. [15] Right side view of 1040ST [Em Linha], Dave Duneld. [Consult. Setembro 2011]. Disponvel em WWW: <URL: http://www.classiccmp.org/dunfield/atarist/ index.htm>, Imagem cedida por Dave Duneld. [16] John C. Dvorak. Major Apple II Upgrade, Finally! InfoWorld, 7(25), 24 Jun 1985. [17] Central Point Software Incorporated, Portland, OR. COPY II 64/128, 1981. [18] PSR620 61-Key Full-Size MIDI Keyboard with Touch Sensitive Keys [Em Linha], Yamaha. [Consult. Fevereiro 2010]. Disponvel em WWW: <URL: http:
//www.yamaha.com/yamahavgn/CDA/ContentDetail/ModelSeriesDetail/ 0,,CNTID%253D838%2526CTID%253D205100%2526CNTYP%253DPRODUCT,00. html?CNTID=838&CTID=205100&CNTYP=PRODUCT>.

[19] Jands Electronics Pty ltd. Jands Hog 500 - Technical Specication Sheet. [20] Inc TEAC America. External USB Floppy Drive, 2003. [21] David O. Savey e Donald M. Beelenger et al James H. Gibbons. Apparatus for using ash memory as a oppy disk emulator in a computer system, 1995. [22] Alan Heminger e Steven Robertson. Digital Rosetta Stone: A conceptual Model for a Maitaining Long-term Access do Digital Documents, 1998. [23] Paul Conway. Preservation in the Digital World. Technical report, Yale University Library, 1996. [24] Adrian Brown. Digital Preservation Guidance Note 3: Care, Handling and Storage of Removable media. The National Archives, Agosto 2008. [25] Intel. Interfacing a Floppy Disk Drive to an 80C186EX Family Processor, 1993. [26] UMC. UM8272A/A-4 Floppy Disk Controller. [27] Hynix. GM82C765B Floppy Disk Subsystem Controller. [28] Intel. 82077AA CHMOS Single-Chip Floppy Disk Controller, Maio 1994. [29] Inc TEAC America. Teac FD-235HF-C891 Micro Floppy Disk Drive Specication. [30] Shoreline Electronics. X1DE-31U USB 3.5"Micro Floppy Disk Drive. [31] Emulateur de lecteur de disquete [Em Linha], Jean F. NERO, 2010. [Consult. 13 Maio 2010]. Disponvel em WWW: <URL: http://hxc2001.free.fr/floppy_drive_ emulator/index.html>. [32] Amiga Floppy Emulator, mark II [Em Linha], Tim Tashpulatov, 2008. [Consult. Setembro 2011]. Disponvel em WWW: <URL: http://www.sensi.org/~tnt23/ megadrive/>.

REFERNCIAS

91

[33] Cumulus [Em Linha]. [Consult. Setembro 2011]. Disponvel em WWW: <URL: http: //retromaster.wordpress.com/cumulus/>. [34] ipcas GMBH. <URL: USB Disketten Emulator. Disponvel em WWW:
http://www.ipcas.de/download/prospekt-datenblatt/ fdd2udd-usb-disketten-emulator.pdf>.

[35] 3 oppy drive to USB ash drive reader upgrade [Em Linha], PLRElectronics. Disponvel em WWW: <URL: http://www.plrelectronics.com/floppy_to_usb.php>. [36] Datex. DTX-200 FLOPPY DISK DRIVE EMULATOR. Disponvel em WWW: <URL: http://datex.fr/emulateur/DTX200En.pdf>. [37] MILO. EMUFDD v2.00, 2010. [38] EMUFDD 3.0 [Em Linha], Cosimo Oliboni. [Consult. Setembro 2011]. Disponvel em WWW: <URL: http://embeddedsw.net/EMUFDD_Floppy_Hardware_ Emulator_Home.html>. [39] Sony Corportation. MSAC-FD2M, 2000. [40] JVC. VU-V101 FLOPPY DISK ADAPTER INSTRUCTIONS. [41] CU-VFM40 MultiMedia Card Floppy Disk Adapter Driver Update for Windows 2000 Professional [Em Linha], JVC. Disponvel em WWW: <URL: https://www.jvc.ca/ en/consumer/service/s_downloads/downloads_FP_UD_E.asp>. [42] Andrei Khurshudov. The Essential Guide to Computer Data Storage: From Floppy to DVD. Prentice Hall, 2001. [43] Lubar Steven. Do Not Fold, Spindle Or Mutilate: A Cultural History Of The Punch Card. Journal of American Culture, 1992. [44] Louis D. Stevens. The Evolution of Magnetic Storage. IBM Journal of Research and Development, 25(5):66376, 1981. [45] C. Mee e Eric Daniel. Magnetic Storage Handbook. McGraw-Hill Professional, 1996. [46] Shugart. SA450 Double-sided Minioppy Diskette Storage Drive, 1980. [47] R.I.P. Floppy Disk [Em Linha], BBC News, 2003. [Consult. 8 Feveveiro 2010]. Disponvel em WWW: <URL: http://news.bbc.co.uk/2/hi/uk_news/2905953.stm>. [48] Alain Knaaf e David C. Niemi Michael Haardt. The Floppy User Guide, 2007. [49] Scott Mueller. Upgrading And Repairing PCs (19th Edition). Que, 2009. [50] 8-inch, 5,25-inch, and 3,5-inch oppy disks [Em Linha], George Chernilevsky. Disponvel em WWW: <URL: http://en.wikipedia.org/wiki/File:Floppy_disk_ 2009_G1.jpg>. [51] 3.5 Diskettes Support - Frequently Asked Questions [Em Linha]. [Consult. Setembro 2011]. Disponvel em WWW: <URL: http://www.
imation.com/en-us/Imation-Support/Diskettes/35-Diskettes/ Diskette-Storage-Support/>.

92

REFERNCIAS

[52] NEC Corporation. FD1035 3.5 Floppy Disk Drive Product Description, 1984. [53] Michael Tischer e Bruno Jennrich. Diskettes and Hard Drives. In PC Intern: The Encyclopedia of System Programming (Developers Series), chapter 14. Abacus Software Inc, 1996. [54] Introduction to the 82077, Floppy Disk Controller [Em Linha]. Disponvel em WWW: <URL: http://www.intel.com/design/archives/periphrl/docs/ 7281.htm>. [55] Interface Between 82077AA/SL and the Floppy Drive [Em Linha]. Disponvel em WWW: <URL: http://www.intel.com/design/archives/periphrl/docs/ 7282.htm>. [56] A J Sammes e Brian Jenkinson. Forensic Computing: A Practitioners Guide (Practitioner Series). Springer, second edition, 2007. [57] Trevor G. Marshall e John A. Attikiouzel. Floppy Disk Data Transfer Techniques. Micro, IEEE, 3(6):17 23, Dezembro 1983. [58] Intel Corporation. 8272A Single/Double Density Floppy Disk Controller, 1982. [59] Citizen Systems Europe, United Kingdom. Model: X1DE-00R 3.5"Micro Floppy Disk Drive Specication. [60] SMSC. FDC37C665GT / FDC37C666GT High Performance MultiMode Parallell Port Super I/O Floppy Disk Controllers, 2007. [61] Bot Lutz et al. Application Note 505 - Floppy Disk Data Separator Design Guide for the DP8473. National Semiconductor Corporation, Fevereiro 1989. [62] National Semiconductor Corporation. DP8473 Floppy Disk Controller PLUS-2, Jul 1990. [63] James Cecil et al. Application Note 413 - Disk Interface Design Guide. National Semiconductor Corporation, Janeiro 1986. [64] Inc Intel. SBC 202 Double Density Diskette Controller Hardware Reference Manual, 1977. [65] Siemens Aktiengesellschaft. SAB2793B/2797B Advanced Floppy Disk Formatter/Controller Family. [66] Michael Tischer e Bruno Jennrich. DOS File System. In PC Intern: The Encyclopedia of System Programming (Developers Series), chapter 17, pages 379381. Abacus Software Inc, 1996. [67] Institute of Electrical and Inc. Electronics Engineers. IEEE 802.15.1-2002 IEEE Standard for information technology - Telecommunication and information exchange between systems - LAN/MAN - Part 15.1: Wireless Medium Access Control (MAC) and Physical Layer (PHY) specications for Wireless Personal Area Networks(WPANs), 2002. [68] Texas Instruments. Wireless Connectivity Guide, 2011. [69] Bluetooth SIG, Inc. Bluetooth Specication Version 2.1 + EDR, 2007.

REFERNCIAS

93

[70] Building with the Technology: Overview [Em Linha]. [Consult. Setembro 2011]. Disponvel em WWW: <URL: https://www.bluetooth.org/Building/overview. htm>. [71] ZigBee Alliance. ZigBee Specication. Technical report, ZigBee Standards Organization, 2006. [72] Texas Instruments, Inc. HAL Drivers Application Programming Interface, 2005. [73] Texas Instruments, Inc. Z-Stack OS Abstraction Layer Application Programming Interface, 2007. [74] Texas Instruments, Inc. Z-Stack Developers Guide, 2007. [75] Shahin Farahani. ZigBee Wireless Networks and Transceivers. Newnes, 2008. [76] Radiocrafts AS. RC2300/01/02/04 ZigBee Ready RF Transceiver Modules, 2007. [77] Radiocrafts AS. RC2300/01/02/04 ZigBee / IEEE 802.15.4 RF Modules, 2006. [78] Texas Instruments. CC2431DK Development Kit User Manual, 2007. [79] USBee SX PC and USB Logic Analyzer, Signal Generator, I2C, SPI, Async Protocol Decoder and Analyzer [Em Linha], Inc CWAV, 2010. [Consult. Fev 2011]. Disponvel em WWW: <URL: http://www.usbee.com/sx.html>. [80] Support for the USBee PC and USB Oscilloscope, Logic Analyzer, Signal Generator and more [Em Linha], Inc CWAV, 2010. [Consult. Fevereiro 2011]. Disponvel em WWW: <URL: http://www.usbee.com/faq.htm#%2056>. [81] Bus Pirate [Em Linha], Dangerous Prototypes, 2011. [Consult. Fevereiro 2011]. Disponvel em WWW: <URL: http://dangerousprototypes.com/docs/Bus_Pirate>. [82] fdrawcmd.sys [Em Linha], Simon Owen, 2010. [Consult. Fevereiro 2011]. Disponvel em WWW: <URL: http://simonowen.com/fdrawcmd/>. [83] The Fdio Project [Em Linha], Ansgar Kckes, 2010. [Consult. Fevereiro 2011]. Disponvel em WWW: <URL: http://www.hp9845.net/9845/projects/fdio/>. [84] SAMdisk [Em Linha], Simon Owen, 2010. [Consult. Fevereiro 2011]. Disponvel em WWW: <URL: http://simonowen.com/samdisk/>. [85] Dcio da Costa Macedo. Sistema de Extenso de Sinais IR Usando Tecnologia ZigBee. Masters thesis, Faculdade de Engenharia da Universidade do Porto, Porto, Portugal, 2010. [86] Texas Instruments, Inc. Z-Stack/Z-Tool Serial Port Interface, 2006. [87] Austin Lesea and Rodnay Zaks. Floppy-disc controller design must begin with the basics. Electrical Design News, pages 129137, Mai 1978. [88] Texas Instruments. CC2430 A True System-on-Chip solution for 2.4 GHz IEEE 802.15.4 / ZigBee, 2008.

94

REFERNCIAS

[89] Floppy disk image formats supported by Virtual PC and Virtual Server [Em Linha], Ben Armstrong, 2007. [Consult. Fev 2011]. Disponvel em WWW: <URL:
http://blogs.msdn.com/b/virtual_pc_guy/archive/2007/01/04/ floppy-disk-image-formats-supported-by-virtual-pc-and-virtual-server. aspx>.

[90] Creating virtual oppy disks in Virtual Server [Em Linha], Microsoft. [Consult. Fevereiro 2011]. Disponvel em WWW: <URL: http://technet.microsoft.com/en-us/ library/cc708294%28WS.10%29.aspx>. [91] HP-IL Files: Where, What, Why, How, etc. [Em Linha], Dan McDonald, 2000. [Consult. Maro 2011]. Disponvel em WWW: <URL: http://www.hpmuseum.org/cgi-sys/ cgiwrap/hpmuseum/articles.cgi?read=24>. [92] The HP LIFUTIL (E2080A) [Em Linha], 1995. [Consult. Setembro 2011]. Disponvel em WWW: <URL: ftp://ftp.hpmuseum.org/lif/lifutil/lif_over.txt>. [93] [Em Linha]Virtual Floppy Drive. [Consult. Fevereiro 2011]. Disponvel em WWW: <URL: http://vfd.sourceforge.net/>. [94] What is WinImage? [Em Linha], Gilles Vollant. [Consult. Fevereiro 2011]. Disponvel em WWW: <URL: http://www.winimage.com/winimage.htm>. [95] [Em Linha]Chrysocome. [Consult. Fevereiro 2011]. Disponvel em WWW: <URL: http: //www.chrysocome.net/rawwrite>. [96] SD Group. SD Specications Part 1 Physical Layer Simplied Specication Version 2.00, Setembro 2006. [97] AT25DF161 [Em Linha]. Disponvel em WWW: <URL: http://www.atmel. com/dyn/products/product_card.asp?part_id=4334&category_id= 162&family_id=668&subfamily_id=2117>.

[98] Atmel Corporation. 16-Megabit 2.7-volt Minimum SPI Serial Flash Memory AT25DF161, 2009. [99] AT25DF321A [Em Linha]. Disponvel em WWW: <URL: http://www.atmel. com/dyn/products/product_card.asp?part_id=4334&category_id= 162&family_id=668&subfamily_id=2117>.

[100] Winbond. Winbond Serial Flash W25Q32BV 3V 32M-Bit Serial Flash Memory With Dual and Quad SPI, 2011. [101] Microchip Technology Inc. Microchip SST25VF032B Data Sheet - 32 Mbit SPI Serial Flash, Fevereiro 2011.

Das könnte Ihnen auch gefallen