evse - Qualcomm Atheros Electric Vehicle Supply Equipment Emulator
Emulate the EVSE part of the HomePlug AV Signal Level Attentuation Characterization (SLAC) protocol where a PEV is a "Plug-in Electric Vehicle" and an EVSE is an "Electric Vehicle Supply Equipment" or charging station. This program remains active until terminated by the user. It waits for some PEV-HLE on the powerline network to attempt to connect in order to charge a virtual vehicle then services the PEV-HLE until the PEV-HLE elects to connect, elects not to connect or abandons the attempt. See the HomePlug Green PHY Specification Release Version 1.1 for more information on this protocol.
Signal Level Attenuation Characterization (SLAC) enables a station to measure the signal level of its transmission at other stations in the network. It is designed for automotive applications where there are multiple plug-in vehicle (PEVs) and electric vehicle supply equipment (EVSE) on the network. The PEV signal level is measured at multiple EVSEs to determine which EVSE the PEV is actually plugged into. The process leading to this determination is called "Green PHY PEV-EVSE Association" (GreenPPEA).
This program is part of the Qualcomm Atheros Powerline Toolkit. See the plc man page for an overview and installation instructions.
Print the EVSE-HLE configuration profile on stdout. The configuration profile specifies program defaults in a format that you, as a user, can edit and save. Use options -p and -s to read named profiles and sections.
Compare confirmation counter and warn (or exit - if -x is given) if a mismatch is detected.
Print the contents of the EVSE-HLE session variable on stdout. The session variable is an program data structure that stores information passed between the PEV-HLE and EVSE-HLE during SLAC association. This option is used to inspect and verify information relevant to the process.
If the program was compiled with variable SLAC_DEBUG defined then this option also prints MME message fields before messages are sent or after they are received. Interested parties can follow along in the source code.
Select the host Ethernet interface. All requests are sent via this host interface and only reponses received via this host interface are recognized. The default interface is eth1 because most people use eth0 as their principle network connection; however, if environment string "PLC" is defined then it takes precedence over the default interface. This option then takes precedence over either default.
Skip the step which sets the Network Membership Key and focus on sounding only.
Normally, this tool loops indefinitely. Use this parameter to exit after one iteration. Note, that this parameter has inverse logic compared to pev tool.
The EVSE-HLE configuration profile name. The program will supply default values for missing profile elements. See the example profile shown below. The default profile is "evse.ini".
Enter quiet mode. Progress messages are suppressed.
The configuration profile section name. The program will supply default values for missing configuration profile elements. See the example profile shown below. The default section name is "default".
Channel read/write timeout in milliseconds.
Enter verbose mode. All Ethernet frames sent or received by the program are displayed on stdout.
Exit on error.
Print program help summary on stdout. This option takes precedence over other options on the command line.
Print program version information on stdout. This option takes precedence over other options on the command line. Use this option when sending screen dumps to Atheros Technical Support so that they know exactly which version of the Linux Toolkit you are using.
configuration profile for this program is
"evse.ini". The default profile section is
"default". Users may create additional
profiles and reference them with option -p or add
additional sections to an existing profiles and reference
them with option -s.
Time to Sound
The time in 100 millisecond increments for all msounds to arrive at the msound target. The msound target may proceed with attenuation characterization computations should all msounds fail to arrive within this period. This value is read but not used by program pev or program evse. This value is the same as CM_SLAC_PARAM.CNF.TIME_OUT. The default value is 10 which represents 1000 milliseconds.
Number of Sounds
The total number of msounds that will be sent to the msound target. All msounds must arrive within the allotted time or they will be lost. This value is the same as CM_SLAC_PARAM.CNF.NUM_SOUNDS. The default is 8.
Controls whether the msound recipient sends signal attenuation characteristic profile data to the EVSE-HLE or another station. The only response specified at this time is the EVSE-HLE. The default value is 0. Any other value is ignored.
Vehicle identification. The 17-byte Vehicle Identification Number to be placed in CM_MNBC_SOUND.IND.SenderID. This value is not used but is can be changed here so that the field is easy to spot within network message traces.
Network Membership Key
The 16-byte Network Memberhip Key (NMK) for the PEV-PLC device. This program uses CM_SET_KEY to sets the EVSE-PLC NMK to this value after disconnecting. The default value is the key for Network Password "HomePlugAV0123".
The 7-byte Network Identifier (NID) for the PEV-PLC device. This program uses CM_SET_KEY to sets the EVSE-PLC NID to this value after disconnecting. The default value is the same as that for Network Password "HomePlugAV0123".
See the Qualcomm Atheros AR7420, QCA6410 IEEE 1901, HomePlug AV and QCA7000 HomePlug Green PHY PLC Chipset Programmer’s Guide or the HomePlug Green PHY Specification Release Version 1.1 for more information on this protocol.
The following example starts an EVSE session on interface eth0 and wait up to 2000 milliseconds (or 2 seconds) for the PEV to respond during any given exchange.
# evse -ieth0 -w2000
The default EVSE-HLE configuration profile, "evse.ini", looks something like this but it can be changed using a normal text editor. Use option -P to produce a template profile, if one is needed.
# file: evse.ini
# EVSE-HLE initiaization;
time to sound = 10
number of sounds = 8
response type = 0
station identifier = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
network membership key = B59319D7E8157BA001B018669CCEE30D
network identifier = 026BCBA5354E08