180 likes | 342 Views
An In-Depth Look At DARSI. Presentation Outline:. Data Acquisition & Real-Time System Integration:. Project Overview Sensor Systems Communication Main Board & Storage Project Administration & Management. Matt Hulse Marc Kessler Chris Lites Preston Schipper Andy Lin.
E N D
An In-Depth Look AtDARSI Presentation Outline: Data Acquisition& Real-Time System Integration: • Project Overview • Sensor Systems • Communication • Main Board & Storage • Project Administration & Management Matt Hulse Marc Kessler Chris Lites Preston Schipper Andy Lin
DARSI: Project Overview Our data acquisition system: • Sensors • Sensor pre-processing 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 BlockDiagram
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) { resistive_samples(); } } else if(sample_type == 1) { while (reset_now == 0) { frequency_samples(); } } } #include <p18f458.h> //for chip ports #include <adc.h> //for A/D conf #include <timers.h> //for timer conf #include "CB256.h" 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 */
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 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
Memory Smart Media 22 Pads 8 bit parallel I/O FAT16
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
Questions & Answers Thank you