DARSI An In-Depth Look At

advertisement

An In-Depth Look At

DARSI

Data Acquisition

& Real-Time System Integration:

Matt Hulse

Marc Kessler

Chris Lites

Preston Schipper

Andy Lin

Presentation Outline:

•Project Overview

•Sensor Systems

•Communication

•Main Board &

Storage

•Project

Administration &

Management

DARSI: Project Overview

Our data acquisition system:

•Sensors

•Sensor preprocessing units

•Sensor network & communication

•Main processing

•Storage

Where Are We Now?

•Sensors

•Testing apparatus

•Wheel speed tested and implemented with pre-processor

•Linear position sensor circuit prototype

•Microcontroller (Preprocessor)

•Development environment for processor working

•Preprocessor system prototype

•Coding complete except CAN communication

•Main processor: Written code & developed schematics

Sensors

Wheel Speed:

-Hall effect

-5V supply

Shock Position:

LVDT:

Linear

Variable

Differential

Transducer

Sensor Microcontroller: PIC18F258

Preprocessor Details:

•16 MHz

•C Programmable

•Hardware CAN

•A/D Converter

Microcontroller Details

23 GP I/O

External Clock

5 10-bit A/D Converter

1536 RAM (256 used)

Hardware CAN

ICSP

PIC18F258

Block

Diagram

#include <p18f458.h> //for chip ports

#include <adc.h> //for A/D conf

#include <timers.h>

#include "CB256.h"

//for timer conf struct CB raw_data_buffer;

//struct CB send_data_buffer; struct pulse_data

{ int csample; int psample; int pulses; int trigger_level; int cur_pulse; int samples;

} frequency_data; char dev_id; char reset_now = 0; char raw_data_overflow = 0; char send_data_overflow = 0; char counter = 0; int sample_time; int timerval; int speed; char wheel_dia; char num_teeth; char sample_type = 0;

/*Valid Sample types:

0: Voltage 0-5 corresponding to resistance

1: Periodic corresponding to frequency

*/

Code

void configure_a_d_c(void); void configure_sample_timer(void); void configure_interrupts(void); void int_handler(void); void get_dev_id(void); void resistive_samples(void); void frequency_samples(void); void can_send(int my_data); void set_constants(void); void no_calib_data(void); void EEPROM_Write(int location, int value); void main (void)

{ get_dev_id();

SetCBEmpty(&raw_data_buffer);

//SetCBEmpty(&send_data_buffer);

//DEFAULT VERSION

EEPROM_Write(255,2); set_constants(); configure_a_d_c(); configure_sample_timer(); configure_interrupts();

PORTAbits.RA1 = 1;

PORTC = dev_id; if(sample_type == 0)

{ while (reset_now == 0)

{

} else if(sample_type == 1)

{

} while (reset_now == 0)

{ resistive_samples(); frequency_samples();

}

}

}

Inter-Sensor Communication

Controller Area Network:

In a CAN system, all messages sent out on the bus are detected by all nodes on the bus.

Error detection:

•Bit stuffing

•Cyclic redundancy check

•Self checking

Probability for undetected corrupt message < message rate * 4.7 * 10 -11

CAN 2.0A:

•11 bit identifier field

Data Frames:

Data, Remote, Error, Overload

Main Control Board

PIC18F458

Voltage Regulator

Flash Controller

Master Controller for CAN

Details

Same Family and Data Sheet

Two more Ports (8 bit registers)

8 – bit Parallel

2 comparators (not used)

Total 34 I/O compared to 23 I/O

Smart Media

22 Pads

8 bit parallel I/O

FAT16

Memory

Parts List

•PIC18F258

•PIC18F458

•Software Development Tools

•Honeywell hall effect sensor

•Linear Variable Differential Transducer

•Assorted inverters, voltage regulators, DIP switches, clocks

Labor & Responsibilities

Andy:

•PCB design

Christ & Matt:

•CAN bus

Marc:

•In circuit serial programming (ICSP)

•Software development

Preston:

•Memory

Milestone Goals

Milestone 1 Goals:

•Sensor Unit

•Main control schematics

•CAN working on preprocessor in loop-back mode

Milestone 2 Goals:

•Everything constructed

•Final debugging & testing

Schedule: CDR

Expo

Thank you

Questions & Answers

Download