Trabalho Prático Nº2 Escrita e Leitura em Portos IO



Documentos relacionados
ARQUITECTURA DO WINDOWS

Entradas/Saídas. Programação por espera activa Programação por interrupções

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

Sistemas Operativos I

Sistemas Operacionais. Prof. André Y. Kusumoto

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AOS SISTEMAS OPERACIONAIS. Prof. Dr. Daniel Caetano

INSTALAÇÃO UBUNTU NUM INSTANTE

Introdução ao CoolEdit c : programa de edição de som digital

O processador é um dos elementos componentes do computador moderno, sendo responsável pelo gerenciamento de todo o computador.

1. SINTAXE DA LINGUAGEM ASSEMBLY

Laboratório de Arquitectura de Computadores IST - Taguspark 2008/2009 Introdução aos sistemas binários Guião 1 9 a 13 de Março 2009

Introdução à estrutura e funcionamento de um Sistema Informático

Componentes de um Sistema de Operação

1. Verificar se a Microsoft.NET Framework 2.0 está instalada. Se não estiver, efectuar o download a partir do link e instalar:

Prof. Sandrina Correia

Gestor de Janelas Gnome

Departamento de Engenharia Civil e Arquitectura ESPAÇO DE ENSINO DE PÓS-GRADUAÇÃO REGRAS PARA UTILIZAÇÃO E GESTÃO DO ESPAÇO

O Manual do ssc. Peter H. Grasch

Resolução de avarias de MPEG

Generated by Foxit PDF Creator Foxit Software For evaluation only. Capitulo 1

Introdução à Sistemas Operacionais. Glauber Magalhães Pires

Manual do InCD Reader

Manual do Nero Burn/Burn Settings Plug-in para MCE

Boot Camp Manual de Instalação e Configuração

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo.

Turno/Horário Noturno PROFESSOR : Salomão Dantas Soares AULA Apostila nº

Boot Camp Manual de Instalação e Configuração

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for

ENTRADA E SAÍDA DE DADOS

Hardware Fundamental

Gestor de Processos Núcleo do Sistema Operativo

MANUAL DE INSTRUÇÕES

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Segurança e recuperação Manual do utilizador

A Internet, ou apenas Net, é uma rede mundial de computadores ligados, entre si, através de linhas telefónicas comuns, linhas de comunicação

Capítulo 12. Projeto 5 Controle de Motores de Passo Circuito e Funcionamento

Acetatos de apoio às aulas teóricas

Requerimentos e Especificações de Software

Arquitetura dos Sistemas Operacionais

EEC2104 Microprocessadores

Introdução à Engenharia de Computação

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Instituto Superior Politécnico Gaya Escola Superior de Ciência e Tecnologia

Sistemas Operacionais. Prof. André Y. Kusumoto

MANUAL DO UTILIZADOR DA WEBCAM HP

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Interruptor KVM Cabo USB/HDMI 2-Portas

Actualização, Cópias de Segurança e Recuperação de Software

NT_D1216.SYS DRIVER DA CDA12/16 PARA WINDOWS NT 4.0

Apontamentos do livro de AI Linux. 1.5 Modo texto e modo gráfico

Manual Web.Newhotel Configuração NewHotel

KF2.4 MANUAL DE UTILIZADOR

Entradas/Saídas. Programação por interrupções Conceitos gerais Programação da porta série Transmissão

MICROPROCESSADORES. Unidade de Entrada/Saída (I/O) Nuno Cavaco Gomes Horta. Universidade Técnica de Lisboa / Instituto Superior Técnico.

Universidade do Algarve Faculdade de Ciências e Tecnologia Área Departamental de Engenharia Electrónica e Computação

Alteração do POC (Decreto de Lei nº. 35/2005) no sispoc

Sistemas de Apoio à Decisão

Todos os microprocessadores hoje disponíveis em micros compatíveis com PC utilizam o funcionamento do como ponto de partida.

Componente de Formação Técnica. Disciplina de

Objectivos Gerais da Aplicação 5 Requisitos Mínimos e Recomendados 5 Processo de Instalação 6

Manual de Instalação da Plataforma Scorpion. 1. Como conectar a Plataforma Scorpion com a Xilinx Starter-3E kit

O novo Software 9.5 do SMART BOARD TM

Relatório SHST

Ferramentas Web, Web 2.0 e Software Livre em EVT

2-Introdução e Conceitos Básicos das TIC

PROCESSAMENTO DE DADOS

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

ARQUITETURA DE COMPUTADORES

Entendendo as Permissões de Arquivos no GNU/Linux

Arquitetura de um Computador

Serviço de Atendimento Online. Manual de ajuda para uma melhor utilização dos programas de apoio ao serviço de atendimento online: Messenger

UNIVERSIDADE LUTERANA DO BRASIL ULBRA CONTROLE DE MOTOR DE PASSO VIA PORTA PARALELA -BUILDER C++ FABRÍCIO DE MARI

WDM_1256.SYS DRIVER DA CAD12/56 PARA WINDOWS 98

LEILÃO ONLINE. Manual do Utilizador

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Portátil Série Aspire

DISCIPLINA: Tecnologias da Informação e Comunicação ANO: 9º. Windows 7 Office 2010 Internet Explorer. Cd-roms COMPETÊNCIAS A DESENVOLVER

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1)

IBM SmartCloud para Social Business. Manual do Utilizador do IBM SmartCloud Engage e IBM SmartCloud Connections

ICORLI INSTALAÇÃO, CONFIGURAÇÃO E OPERAÇÃO EM REDES LOCAIS E INTERNET

Características da Câmara de Look 312P. Instalar a Câmara de Look 312P

Introdução à Arquitetura e Linguagem Assembly de Processadores IA-32

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano

SISTEMAS OPERACIONAIS

Métodos de Sincronização do Kernel

XPontos. Manual de Instruções

Actualização, Cópias de Segurança e Recuperação de Software

EW1085R2 Recetor Bluetooth MICRO USB Classe 2

INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO. Engenharia Electrotécnica. Microprocessadores. 2ºano - 1ºsemestre

Sistemas Digitais Contadores. João Paulo Carvalho

Edeyson Andrade Gomes.

LEI Sistemas de Computação 2011/12. Níveis de Abstração. TPC4 e Guião laboratorial. Luís Paulo Santos e Alberto José Proença

MEMÓRIA M.1 - HIERARQUIA DE MEMÓRIAS NUM COMPUTADOR DIGITAL

Solius 61 Manual de Instruções

Abertura do Ano. Este documento pretende auxiliar na Abertura do Ano nos diversos Módulos do software Primavera.

Podium View TM 2.0 Software de Imagem para o Apresentador Virtual Manual do Utilizador - Portugués

2007 Nokia. Todos os direitos reservados. Nokia, Nokia Connecting People, Nseries e N77 são marcas comerciais ou marcas registadas da Nokia

Ferramentas Web, Web 2.0 e Software Livre em EVT

Transcrição:

Trabalho Prático Nº2 Escrita e Leitura em Portos IO 1. OBJECTIVOS - Saber efectuar a escrita e leitura em portos de entrada saída num PC num com operativo DOS e Windows. 2. INTRODUÇÃO Para este trabalho de escrita e leitura em porto num PC, vamos utilizar o Altifalante do PC para gerar sons o que implica que se efectuem leituras e escrita em portos de IO. É pois necessário entender o funcionamento do temporizador num PC, que é uma emulação do dispositivo 8254 e de como é efectuado o controlo do próprio altifalante. No PC o relógio dos três contadores/temporizadores é o mesmo: uma onda quadrada de 1,19318 MHz, pelo que cada contagem tem uma duração de 838,1ns. O canal 0 é o temporizador do sistema, a GATE está ligada a V cc pelo que este contador está sempre activo. O seu relógio é uma onda quadrada de 1,19318MHz. A saída do canal 0 provoca a IRQ0, que corresponde à interrupção 08h (INT 08h) do DOS e à interrupção 50H nos sistemas de 32bits, que corresponde a uma interrupção mascarável de mais alta prioridade, este canal é programado pela bios do PC para gerar na sua saída uma onda quadrada com a frequência de 18,206Hz que activa a IRQ0, resultando num pedido de interrupção a cada 54,936ms. O canal 1 inicialmente foi o responsável pelo indicar dos instantes em que deveria ser efectuado o refrescamento da memória dinâmica, a saída deste canal é usada para gerar pedidos ao canal 0 do DMA (DRQ0). Nos PC s dos nossos dias esse refrescamento já não é efectuado pelo canal 0 do DMA, mas sim por um circuito dedicado. O canal 2 é usado para gerar para activar o altifalante do sistema. A saída do canal 2 corresponde à entrada do altifalante. A entrada de relógio deste canal Microprocessadores III ano lectivo 2004/2005 Página 1 Trabalho Prático Nº2

corresponde a uma onda quadrada de 1,193818 MHz, o controlo é efectuado pelo registo da porta 61H, em que os bits 0 e 1 têm as seguintes funções: Bit Funções 61H.0 Speaker Data Enable 0: Não habilitado 1: Habilitado 61H.1 Timer Counter 2 Enable 0: Altifalante a 0 1: Altifalante é equivalente ao valor OUT do contador 2 CANAL 2 1,193MHz 838,6 ns 61H.0 1/N altifalante 61H.1 & Figura 3.1: Temporização do canal 2, usado para gerar sons. Passos para gerar sons no altifalante do PC: 1. Escrever 182 no porto 43H. 2. Escrever a frequência no porto 42H, como o valor a escrever é de 16 bits e o porto é de 8 bits é necessário escrever 2 vezes 8 bits no endereço 42H, o byte menos significativo é enviado em primeiro lugar. 3. Para activar altifalante os bits 0 e 1 do porto 61H deve ser colocados a nível alto, os restantes bits dos registos 61H devem ser mantidos inalterados pois desempenham outras funções no PC 4. Efectuar uma pausa que corresponderá À duração do tom 5. Desligar o altifalante colocando os bits 0 e 1 do porto 61H a nível baixo. Microprocessadores III ano lectivo 2004/2005 Página 2 Trabalho Prático Nº2

Modo Protegido de acesso aos portos IO no sistema operativo Windows de 32 bits No tempo em que o DOS era o sistema operativo de computadores com procesadores Intel 8088 ou em modo real nos CPU que lhe sucederam o acesso aos porto de entrada saída eram directos e o DOS não efectuava a gesto do mesmo. Para o acesso a portos no espaço de endereçamento IO, podem ser usadas as instruções in e out. A linguagem C oferece instruções de alto nível para estas instruções. Por exemplo, uma escrita de 00h no porto I/O 300h é no Turbo C, efectuada do seguinte modo: outportb(0x300, 0x00) a que equivale: mov al,0 mov dx,300h out dx,al Com o processador 80286 surgiu o funcionamento em modo protegido e posteriormente aperfeiçoado com o 80386. O funcionamento em modo protegido possibilitou o desenvolvimento de varias plataformas como sejam os sistemas operativos multitarefa Windows e Linux. O funcionamento em modo protegido especifica: - Processamento lógico e aritmético a 32 bits - Recursos para segmentação - Recursos para paginação e memória virtual - Conjunto de instruções ampliado - Arquitectura Multitarefa - Permite a execução de software escrito para modo real (modo virtual 8086) Um PC com um processador 80386 ou superior em funcionamento em modo protegido é fundamentalmente um computador para multitarefa, porque é dotado de uma arquitectura multitarefa que permite a execução de vários programas concorrentes, (funcionamento em simultâneo) que partilham recursos de hardware ou de software. Cada programa (processo) em execução é visto pelo processador como uma ou mais tarefas. Instruções especificas e um pipeline adequado permite a comutação entre as execuções das tarefas sejam feitos de forma eficiente e transparente para os programas. As tarefas operam de forma independente umas das outras o funcionamento de uma tarefa não deverá influenciar na operação de outra. Microprocessadores III ano lectivo 2004/2005 Página 3 Trabalho Prático Nº2

O modo protegido define um ambiente para o controle e execução das tarefas, constituído por registos e estruturas de dados e tabelas, mapeadas em memória. Existem várias tabelas de descritores geridas pelo sistema operativo que permitem efectuar o controle e gestão das tarefas que estão em execução concorrente. Com o sistema operativo Windows os programas são executados em vários níveis de privilégio As porta I/O apenas são acessíveis quando o nível de privilégio da tarefa em execução (CPL - Current Previlege Level) for numericamente menor ou igual ao seu nível de privilégio de IO (IOPL - Input Output Privilege Level), ou seja CPL <= IOPL. Sendo o privilégio 0 (zero) o maior enquanto o privilégio 3 o menor, estes níveis de privilégios são conforme os anéis de funcionamento do software definidos como anéis (rings) em que o Kernel do sistema operativo é executado no nível 0 e os aplicativos são executados no nível 3, fazendo com que deste modo uma aplicação normalmente não possa ter acesso à leitura/escrita em modo protegido. Os drivers de dispositivos, que correspondem, a um conjunto de serviços disponibilizados pelo sistema operativo para tornar eficiente a comunicação entre o dispositivo de hardware e o CPU. Um driver pode ser um módulo que está ligado dinâmicamente à aplicação através de uma.dll ou pode ser integrado na aplicação. Também existe o conceito de dispositivo virtual, ou seja um dispositivo como se hardware se tratasse através de drives VxD que interceptam todo acesso que se tenta fazer ao hardware. Aplicação tenta aceder ao I/O Aplicação comunica com um device-driver A aplicação solicita serviços ao device-driver que tem privilégio para aceder ao porto I/O device-driver realiza o acesso ao porto I/O e efectua a transferência de/para a aplicação Figura 3.2: Exemplo de quando uma aplicação usa um device-driver para aceder a portos IO Microprocessadores III ano lectivo 2004/2005 Página 4 Trabalho Prático Nº2

Aplicação tenta aceder ao I/O O processador gera internamente uma falha geral de excepção Caso existe um atendimento da excepção com privilégio suficiente o Aplicativo pode aceder ao porto IO Figura 3.3: Exemplo de quando uma aplicação sem privilégios tenta aceder a portos IO LIVRARIA DINÂMICA INPOUT32.DLL As livrarias podem ser ligadas ao código executável de uma forma estática e de uma forma dinâmica. A estática é utilizada para combinar as rotinas das livrarias com o código executável, quando o código do programa é criado o linker adiciona ao programa do código executável o código objecto correspondente às funções, este é o método mais comum para efectuar a ligação das livrarias, este método é de fácil implantação e eficiente, no entanto origina maior tamanho do código executável. Na utilização de ligação dinâmica.dll, ao contrário da estática, não é copiado nenhum código da livraria para o programa executável. O código executável fica com o nome da DLL necessária na qual a função necessária reside. Quando o programa é executado a DLL correspondente é carregada e são chamadas as funções necessárias. Este método limita o tamanho do código do programa mas tem um compromisso com a eficiência do mesmo. Com a livraria dinâmica Inpout32.dll é possível o acesso em leitura e escrita em todas as versões de windows sem que seja necessário efectuar qualquer modificação. A DLL identifica a versão do sistema operativo sempre as que as funções de escrita ou leitura em portos são chamadas, se for o Windows 9x a dll usa as funções _inp() e _outp(), se o sistema operativo for o Windows NT, 2000 ou XP, é instalado um drive para operar ao nível anel zero do Kernel e a aplicação escreve e lê no porto por meio do driver, pelo que o programa do utilizador é indiferente à versão do sistema Microprocessadores III ano lectivo 2004/2005 Página 5 Trabalho Prático Nº2

operativo. Para a utilização das funções da livraria o ficheiro inpout32.dll deve ser colocado na directoria Windows/system32 e Hwinterface.sys em Windows/system32/sys Figura 3.4: Fluxograma do funcionamento da livraria dinâmica Inpout32.dll 3. TRABALHO 1 Abra o projecto GeradorDeSons 2 Na Solutions Explorer, faça duplo-click em Form1.cs para visualizar os detalhes da forma Gerador De Sons no Design View 3 Examine a classe PortInterop.cs using System; using System.Runtime.InteropServices; public class PortAccess { [DllImport("inpout32.dll", EntryPoint="Out32")] public static extern void Output(int adress, int value); /* For receiving from the ports */ [DllImport("inpout32.dll", EntryPoint="Inp32")] public static extern int Input(int adress); } Microprocessadores III ano lectivo 2004/2005 Página 6 Trabalho Prático Nº2

4 Em.Net é através do atributo Dllimport que se efectua o carregamento de um livraria dinâmica permitindo dessa forma utilizar as suas funções. De acordo com a definição da classe PortAccess temos os métodos para ler e escrever, respectivamente: Int PortAcess.Input (int address) void PortAcess.Input (int address,int valor) 5 No Design View faça duplo click em Form1 insira a chamada do método: PortAccess.Output(0x43,182); Sempre que for efectuado o carregamento da form1 escreve 182 no porto 0x43, na prática equivale a sempre que o programa for executado 6 No Design View faça duplo click no botão Start que pretende ser o início de som e insira a chamada do método: PortAccess.Output(0x61,(PortAccess.Input(0x61) 0x03)); 7 No Design View faça duplo click no botão Stop que pretende ser o fim de som e insira a chamada do método: PortAccess.Output(0x61,(PortAccess.Input(0x61)&0xFC)); 8 No Design View faça duplo click em no botão Escreve no Porto 42H que pretender ser a frequência do som // escreve 8 bits menos significativos PortAccess.Output(0x42,Convert.ToUInt16(txtWrite.Text)); // escreve 8 bits mais significativos PortAccess.Output(0x42,(Convert.ToUInt16(txtWrite.Text)>>8)); 9 Execute o programa e teste o seu funcionamento Microprocessadores III ano lectivo 2004/2005 Página 7 Trabalho Prático Nº2