Libraries to support working with GMLAN - General Motors CAN BUS network in most of their vehicles between 2007-present day. Please note this is a work in progress and not guaranteed to be correct, use at your own risk! Read commit logs / subscribe to see what has been added, it's a work in progress after all ;)

Committer:
foxdie
Date:
Mon Apr 08 11:31:12 2013 +0000
Revision:
9:4af02032daeb
Parent:
6:32592425aa57
Fixed bug where transmission of multi-frame messages wasn't recognising flow control to continue resulting in code waiting around doing nada

Who changed what in which revision?

UserRevisionLine numberNew contents of line
foxdie 4:486fec88517e 1 /*
foxdie 4:486fec88517e 2 GMLAN_11bit.h - 11-Bit specific header file for GMLAN Library
foxdie 4:486fec88517e 3
foxdie 4:486fec88517e 4 GMLAN is a Controller Area Network Bus used in General Motors vehicles from
foxdie 4:486fec88517e 5 roughly 2007-onwards. Its purpose is to allow various Electronic Control Units
foxdie 4:486fec88517e 6 (aka ECUs) within a modern vehicle to share information and enact procedures.
foxdie 4:486fec88517e 7
foxdie 4:486fec88517e 8 An example of this would be communication between the HU (Head unit) and the
foxdie 4:486fec88517e 9 DIC (Dashboard Information Cluster), when you adjust the volume up / down, this
foxdie 4:486fec88517e 10 is reported to the cluster to be displayed.
foxdie 4:486fec88517e 11
foxdie 4:486fec88517e 12 It is the function of this library to "crack open" this world to allow anyone
foxdie 4:486fec88517e 13 with only as little as a few hours of C++ programming under their belt to get
foxdie 4:486fec88517e 14 started in what can sometimes seem a daunting world.
foxdie 4:486fec88517e 15
foxdie 4:486fec88517e 16 Jason Gaunt, 18th Feb 2013
foxdie 4:486fec88517e 17 */
foxdie 4:486fec88517e 18
foxdie 4:486fec88517e 19 #ifndef GMLAN_11BIT_H
foxdie 4:486fec88517e 20 #define GMLAN_11BIT_H
foxdie 4:486fec88517e 21
foxdie 6:32592425aa57 22 // CAN IDs
foxdie 4:486fec88517e 23 #define GMLAN_INITIAL_WAKE_UP_REQUEST 0x100
foxdie 4:486fec88517e 24 #define GMLAN_REQUEST_TO_ALL_NODES 0x101
foxdie 4:486fec88517e 25 #define GMLAN_DIAGNOSTIC_REQUEST 0x102
foxdie 4:486fec88517e 26 #define GMLAN_TO_RESERVED_REQUEST 0x240
foxdie 4:486fec88517e 27 #define GMLAN_TO_BCM 0x241
foxdie 4:486fec88517e 28 #define GMLAN_TO_TDM 0x242
foxdie 4:486fec88517e 29 #define GMLAN_TO_EBCM 0x243
foxdie 4:486fec88517e 30 #define GMLAN_TO_EHU 0x244
foxdie 4:486fec88517e 31 #define GMLAN_TO_SIC 0x246
foxdie 4:486fec88517e 32 #define GMLAN_TO_SDC 0x247
foxdie 4:486fec88517e 33 #define GMLAN_TO_IPC 0x24C
foxdie 4:486fec88517e 34 #define GMLAN_TO_HVAC 0x251
foxdie 4:486fec88517e 35 #define GMLAN_TO_RFA 0x258
foxdie 4:486fec88517e 36 #define GMLAN_SF_FROM_RESERVED_RESPONSE 0x540
foxdie 4:486fec88517e 37 #define GMLAN_MF_FROM_RESERVED_RESPONSE 0x640
foxdie 4:486fec88517e 38 #define GMLAN_MF_FROM_BCM 0x641
foxdie 4:486fec88517e 39 #define GMLAN_MF_FROM_TDM 0x642
foxdie 4:486fec88517e 40 #define GMLAN_MF_FROM_EBCM 0x643
foxdie 4:486fec88517e 41 #define GMLAN_MF_FROM_EHU 0x644
foxdie 4:486fec88517e 42 #define GMLAN_MF_FROM_SIC 0x646
foxdie 4:486fec88517e 43 #define GMLAN_MF_FROM_SDC 0x647
foxdie 4:486fec88517e 44 #define GMLAN_MF_FROM_IPC 0x64C
foxdie 4:486fec88517e 45 #define GMLAN_MF_FROM_HVAC 0x651
foxdie 4:486fec88517e 46 #define GMLAN_MF_FROM_RFA 0x658
foxdie 4:486fec88517e 47 #define GMLAN_EXTERNAL_OBD_TEST_EQUIPMENT_TO_NON_SPECIFIC_OBD_COMPLIANT_ECUS 0x7DF
foxdie 4:486fec88517e 48 #define GMLAN_EXTERNAL_OBD_TEST_EQUIPMENT_TO_ECM 0x7E0
foxdie 4:486fec88517e 49 #define GMLAN_EXTERNAL_OBD_TEST_EQUIPMENT_TO_SPECIFIC_OBD_COMPLIANT_ECU 0x7E1
foxdie 4:486fec88517e 50 #define GMLAN_ECM_TO_EXTERNAL_OBD_TEST_EQUIPMENT 0x7E8
foxdie 4:486fec88517e 51 #define GMLAN_SPECIFIC_OBD_COMPLIANT_ECU_TO_EXTERNAL_OBD_TEST_EQUIPMENT 0x7E9
foxdie 4:486fec88517e 52
foxdie 6:32592425aa57 53 // PCI byte
foxdie 6:32592425aa57 54 #define GMLAN_PCI_UNSEGMENTED 0x0
foxdie 6:32592425aa57 55 #define GMLAN_PCI_SEGMENTED 0x1
foxdie 6:32592425aa57 56 #define GMLAN_PCI_ADDITIONAL 0x2
foxdie 6:32592425aa57 57 #define GMLAN_PCI_FLOW_CONTROL 0x3
foxdie 6:32592425aa57 58
foxdie 6:32592425aa57 59 // Service ID byte
foxdie 6:32592425aa57 60 #define GMLAN_SID_CLEAR_DTC 0x4
foxdie 6:32592425aa57 61 #define GMLAN_SID_START_DIAG 0x10
foxdie 6:32592425aa57 62 #define GMLAN_SID_REQ_FAIL_RECS 0x12
foxdie 6:32592425aa57 63 #define GMLAN_SID_REQ_DID 0x1A
foxdie 6:32592425aa57 64 #define GMLAN_SID_RES_NORM_OP 0x20
foxdie 6:32592425aa57 65 #define GMLAN_SID_REQ_PID 0x22
foxdie 6:32592425aa57 66 #define GMLAN_SID_READ_ADDR 0x23
foxdie 6:32592425aa57 67 #define GMLAN_SID_REQ_SEC_ACCESS 0x27
foxdie 6:32592425aa57 68 #define GMLAN_SID_DSBL_NORM_OP 0x28
foxdie 6:32592425aa57 69 #define GMLAN_SID_DEF_DPID_MSG 0x2C
foxdie 6:32592425aa57 70 #define GMLAN_SID_DEF_PID_BY_ADDR 0x2D
foxdie 6:32592425aa57 71 #define GMLAN_SID_DL_REQ 0x34
foxdie 6:32592425aa57 72 #define GMLAN_SID_DATA_TRANS 0x36
foxdie 6:32592425aa57 73 #define GMLAN_SID_WRITE_DID 0x3B
foxdie 6:32592425aa57 74 #define GMLAN_SID_TESTER_PRESENT 0x3E
foxdie 6:32592425aa57 75 #define GMLAN_SID_ERROR 0x7F
foxdie 6:32592425aa57 76 #define GMLAN_SID_REQ_PROG_STATE 0xA2
foxdie 6:32592425aa57 77 #define GMLAN_SID_PROG_MODE 0xA5
foxdie 6:32592425aa57 78 #define GMLAN_SID_READ_DTC 0xA9
foxdie 6:32592425aa57 79 #define GMLAN_SID_REQ_DPID 0xAA
foxdie 6:32592425aa57 80 #define GMLAN_SID_REQ_CONTROL 0xAE
foxdie 6:32592425aa57 81
foxdie 6:32592425aa57 82 // States of request
foxdie 6:32592425aa57 83 #define GMLAN_STATE_READY_TO_SEND 0x0
foxdie 6:32592425aa57 84 #define GMLAN_STATE_SEND_DATA 0x1
foxdie 6:32592425aa57 85 #define GMLAN_STATE_AWAITING_FC 0x2
foxdie 6:32592425aa57 86 #define GMLAN_STATE_AWAITING_REPLY 0x3
foxdie 6:32592425aa57 87 #define GMLAN_STATE_SEND_FC 0x4
foxdie 6:32592425aa57 88 #define GMLAN_STATE_COMPLETED 0x5
foxdie 6:32592425aa57 89 #define GMLAN_STATE_ERROR 0x6
foxdie 6:32592425aa57 90
foxdie 4:486fec88517e 91 #endif