Document details

Sistema de aquisição de dados em tempo real

Author(s): Alves, Ivo Daniel Gomes Correia Machado

Date: 2011

Persistent ID: http://hdl.handle.net/10400.22/2660

Origin: Repositório Científico do Instituto Politécnico do Porto

Subject(s): Tempo real; Aquisição de dados; Porta paralela; RTAI; Linux; Sistemas operativos; Interfaces; Real time; Data acquisition; Parallel port; Operating systems


Description

Neste trabalho propus-me realizar um Sistema de Aquisição de Dados em Tempo Real via Porta Paralela. Para atingir com sucesso este objectivo, foi realizado um levantamento bibliográfico sobre sistemas operativos de tempo real, salientando e exemplificando quais foram marcos mais importantes ao longo da sua evolução. Este levantamento permitiu perceber o porquê da proliferação destes sistemas face aos custos que envolvem, em função da sua aplicação, bem como as dificuldades, científicas e tecnológicas, que os investigadores foram tendo, e que foram ultrapassando com sucesso. Para que Linux se comporte como um sistema de tempo real, é necessário configura-lo e adicionar um patch, como por exemplo o RTAI ou ADEOS. Como existem vários tipos de soluções que permitem aplicar as características inerentes aos sistemas de tempo real ao Linux, foi realizado um estudo, acompanhado de exemplos, sobre o tipo de arquitecturas de kernel mais utilizadas para o fazer. Nos sistemas operativos de tempo real existem determinados serviços, funcionalidades e restrições que os distinguem dos sistemas operativos de uso comum. Tendo em conta o objectivo do trabalho, e apoiado em exemplos, fizemos um pequeno estudo onde descrevemos, entre outros, o funcionamento escalonador, e os conceitos de latência e tempo de resposta. Mostramos que há apenas dois tipos de sistemas de tempo real o ‘hard’ que tem restrições temporais rígidas e o ‘soft’ que engloba as restrições temporais firmes e suaves. As tarefas foram classificadas em função dos tipos de eventos que as despoletam, e evidenciando as suas principais características. O sistema de tempo real eleito para criar o sistema de aquisição de dados via porta paralela foi o RTAI/Linux. Para melhor percebermos o seu comportamento, estudamos os serviços e funções do RTAI. Foi dada especial atenção, aos serviços de comunicação entre tarefas e processos (memória partilhada e FIFOs), aos serviços de escalonamento (tipos de escalonadores e tarefas) e atendimento de interrupções (serviço de rotina de interrupção - ISR). O estudo destes serviços levou às opções tomadas quanto ao método de comunicação entre tarefas e serviços, bem como ao tipo de tarefa a utilizar (esporádica ou periódica). Como neste trabalho, o meio físico de comunicação entre o meio ambiente externo e o hardware utilizado é a porta paralela, também tivemos necessidade de perceber como funciona este interface. Nomeadamente os registos de configuração da porta paralela. Assim, foi possível configura-lo ao nível de hardware (BIOS) e software (módulo do kernel) atendendo aos objectivos do presente trabalho, e optimizando a utilização da porta paralela, nomeadamente, aumentando o número de bits disponíveis para a leitura de dados. No desenvolvimento da tarefa de hard real-time, foram tidas em atenção as várias considerações atrás referenciadas. Foi desenvolvida uma tarefa do tipo esporádica, pois era pretendido, ler dados pela porta paralela apenas quando houvesse necessidade (interrupção), ou seja, quando houvesse dados disponíveis para ler. Desenvolvemos também uma aplicação para permitir visualizar os dados recolhidos via porta paralela. A comunicação entre a tarefa e a aplicação é assegurada através de memória partilhada, pois garantindo a consistência de dados, a comunicação entre processos do Linux e as tarefas de tempo real (RTAI) que correm ao nível do kernel torna-se muito simples. Para puder avaliar o desempenho do sistema desenvolvido, foi criada uma tarefa de soft real-time cujos tempos de resposta foram comparados com os da tarefa de hard real-time. As respostas temporais obtidas através do analisador lógico em conjunto com gráficos elaborados a partir destes dados, mostram e comprovam, os benefícios do sistema de aquisição de dados em tempo real via porta paralela, usando uma tarefa de hard real-time.

In this work was decided to perform a data acquisition system in real time via parallel port. To successfully achieve this goal, was made a research on the literature related with realtime operating systems, creating a historical time-line of these systems, emphasizing and illustrating the most important milestones throughout its evolution. This summary allowed us to understand the proliferation of these systems taking in account the costs involved, depending on their application. As well as the difficulties, scientific and technological, those researchers had, and successfully overcome. To set up Linux to work as a real-time system, a patch has to be added, such as ADEOS or RTAI, for example. Since there are several solutions to add real time features to Linux, was made a study, with examples, on the most used kernel architectures to achieve such behaviour. The real-time operating systems have very specific features, and so, were made an overview of the most important features of these systems, such as scheduler, latency and response times. It was also classified in function of the utility of its outcome, i.e, and the temporal constraints. Concluding that there are only two types of real-time systems: the ‘hard’ who has 'strict' time constraints and the 'soft' which encompasses the ‘firm’ and ‘soft’ time constraints. The tasks were classified according to the types of events that they will trigger and deal, highlighting its main features. The real-time system elected to create the system data acquisition via parallel port was the RTAI/Linux. So, a study was made on the main services and functions of RTAI, with special attention in the communication services between tasks and processes (FIFOs and shared memory), the scheduling services (types of schedulers and tasks) and interrupt service (service interrupt routine - ISR). The study of these services helped to make choices about the method of communication between tasks and services, as well as the type of task to use (periodic or sporadic). The communication interface used between the external environment and the hardware was the parallel port. To use it right, a summary of this interface was done focusing primarily on the behaviour of the parallel port interface registers. To learn about their operation and how to set it (the hardware and software) according to the real-time data acquisition system needs, and also, to see if it was possible to read more bits than those that are normally available. In the development of hard real-time task, was taken into account the various concepts referenced above. It was developed a sporadic task, because we had as a principle, 'read the parallel port' only when it’s needed (by hardware interruption line), i.e, when there is data to read. It was also developed an application that runs in user space that shows the data collected via the parallel port. Communication between the task and the application is ensured through the shared memory, because if data consistency is guaranteed, the communication between the Linux process and real time tasks (RTAI) running in the kernel is simpler. To have a term of comparison, a soft real-time task was created to compare the response times with the hard real-time task. The responses obtained through the logic analyzer in conjunction with elaborate graphics, shows and prove the benefits of the real-time data acquisition system via the parallel port, using a hard real-time task.

Document Type Master thesis
Language Portuguese
Advisor(s) Puga, Ricardo
Contributor(s) Repositório Científico do Instituto Politécnico do Porto
facebook logo  linkedin logo  twitter logo 
mendeley logo

Related documents

No related documents