Serial communication protocol generic implementation

Dependents:   ClassFRDM ClassLPC

Committer:
askksa12543
Date:
Thu Mar 19 12:02:52 2015 +0000
Revision:
2:ba93026839a9
Parent:
1:9cfb17f74dcd
initial receive test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
askksa12543 0:60c4436f7667 1 //data comm functions
askksa12543 0:60c4436f7667 2 //serial communication protocol
askksa12543 0:60c4436f7667 3
askksa12543 0:60c4436f7667 4 #ifndef DATACOMM_H
askksa12543 0:60c4436f7667 5 #define DATACOMM_H
askksa12543 0:60c4436f7667 6
askksa12543 0:60c4436f7667 7 #define PREAMBLE 0x7E
askksa12543 1:9cfb17f74dcd 8 #define POSTAMBLE 0x7F
askksa12543 1:9cfb17f74dcd 9 #define MAX 100
askksa12543 0:60c4436f7667 10
askksa12543 0:60c4436f7667 11 #include "mbed.h"
askksa12543 0:60c4436f7667 12 #include "platform.h"
askksa12543 0:60c4436f7667 13 #include "gpio_api.h"
askksa12543 0:60c4436f7667 14
askksa12543 0:60c4436f7667 15 class DataComm {
askksa12543 0:60c4436f7667 16
askksa12543 0:60c4436f7667 17 public:
askksa12543 1:9cfb17f74dcd 18 //initialize signal input/output pins
askksa12543 0:60c4436f7667 19 void setClockOut(PinName pin);
askksa12543 0:60c4436f7667 20 void setClockIn(PinName pin);
askksa12543 0:60c4436f7667 21 void setSerialOut(PinName pin);
askksa12543 1:9cfb17f74dcd 22 void setSerialIn(PinName pin);
askksa12543 1:9cfb17f74dcd 23 //listen for incoming preamble
askksa12543 0:60c4436f7667 24 void listen();
askksa12543 1:9cfb17f74dcd 25 //set clock speed
askksa12543 0:60c4436f7667 26 void setClock(int clock);
askksa12543 1:9cfb17f74dcd 27 //send preamble
askksa12543 0:60c4436f7667 28 void initiate_connection();
askksa12543 1:9cfb17f74dcd 29 void send_data(char data[], int size);
askksa12543 0:60c4436f7667 30 char* receive_data();
askksa12543 1:9cfb17f74dcd 31 //send postamble
askksa12543 1:9cfb17f74dcd 32 void close_connection();
askksa12543 0:60c4436f7667 33
askksa12543 0:60c4436f7667 34
askksa12543 0:60c4436f7667 35
askksa12543 0:60c4436f7667 36 protected:
askksa12543 1:9cfb17f74dcd 37 //gpio input/output pins
askksa12543 0:60c4436f7667 38 gpio_t clock_out;
askksa12543 0:60c4436f7667 39 gpio_t clock_in;
askksa12543 0:60c4436f7667 40 gpio_t serial_out;
askksa12543 0:60c4436f7667 41 gpio_t serial_in;
askksa12543 1:9cfb17f74dcd 42 //clock speed and skew
askksa12543 0:60c4436f7667 43 int clock_time;
askksa12543 0:60c4436f7667 44 int skew_time;
askksa12543 1:9cfb17f74dcd 45 //timer for handling clock and skew
askksa12543 0:60c4436f7667 46 Timer t;
askksa12543 0:60c4436f7667 47 };
askksa12543 0:60c4436f7667 48
askksa12543 0:60c4436f7667 49 #endif