JKSERIAL - JK TTL Communications v2.5 - 0x4E57 | NW
Document Details
Source: http://www.jk-bms.com/en/Upload/2023-12-05/1702131628.pdf
Implemented in protocol: JKSERIAL
Physical Interface
This protocol defines the communication protocol between the monitoring platform and the battery terminal, as well as the message format, transmission mode and communication mode, etc.
Communication using 2G GPRS in TCP transmission, 4G in GAT1, Socket interface mode, RS232TTL serial port, content custom communication format, baud rate 115200.
During the communication process, the device has active reporting frame and passive response frame. Please refer to the communication data format for details. The interval of each packet number is at least 100MS, and the longest reply packet is not more than 5S. Timed broadcast. If dormant, the control terminal will send the activation information, activate the BMS, and then communicate.
Frame Structure
Example:
'NW\x00\x13\x00\x00\x00\x00\x06\x03\x00\x00\x00\x00\x00\x00h\x00\x00\x01)'
Frame Structure
| Position | Length | Byte Description | Description |
|---|---|---|---|
| 1 | 2 | Start bytes | 0x4E57 or NW |
| 2 | 2 | Length | 0x0013 — all data bytes except the first two characters including the checksum and the length field itself |
| 3 | 4 | BMS terminal no | 0x00000000 |
| 4 | 1 | Command word | 0x06 — read all the data (see Command Word section) |
| 5 | 1 | Frame source | 0x03 — 0: BMS, 1: Bluetooth, 2: GPS, 3: PC |
| 6 | 1 | Transport type | 0x00 — 0: request frame, 1: reply frame, 2: BMS active reporting |
| 7 | n | Data | 0x00 — not used for 'read all data' command |
| 8 | 4 | Record number | 0x00000000 — high 1 byte is random code (reserved for encryption), low 3 bytes is the record sequence number |
| 9 | 1 | End byte | 0x68 or h |
| 10 | 4 | Checksum | 0x000001 — high 2 bytes not yet enabled, low 2 bytes CRC cumulative check |
Command Word
0x01- Activate - Activate the BMS (when dormant) before proceeding to any other action0x02- Write - Write / configure BMS parameter(s)0x03- Read - Read BMS parameter0x05- Pair - Pair with the BMS0x06- Read All Data - Read all BMS data at once
Transport Type
0for request frame,1for reply frame.2is for active reporting.- As long as 5-Bluetooth,2-GPS,3-PC PC and 4-BMS are initiated first, the reply will use 1.
crc calc
crc = 0
for b in byte_data:
crc += b
crc_low = crc & 0xFF
crc_high = (crc >> 8) & 0xFF
BMS Data
BMS Data Definitions
| Use | Code | Name | Byte Count | Description |
|---|---|---|---|---|
| R | 0x79 |
Single Battery Voltage | 3*n | The first byte is the battery number, the second is data length, then each 3 bytes is battery number, and 2 bytes of voltage in mV |
| R | 0x80 |
Power tube temperature | 2 | 0 -- 140 (-40 to 100 °C); parts over 100 are negative temperatures, such as 10, 1 is negative 1 °C (100 Benchmark) |
| R | 0x81 |
Battery box temperature | 2 | 0 -- 140 (-40 to 100 °C); parts over 100 are negative temperatures, such as 10, 1 is negative 1 °C (100 Benchmark) |
| R | 0x82 |
Battery temperature | 2 | 0 -- 140 (-40 to 100 °C); parts over 100 are negative temperatures, such as 10, 1 is negative 1 °C (100 Benchmark) |
| R | 0x83 |
Total battery voltage | 2 | 0.01V, e.g., 3500 * 0.01 = 35.00V. The minimum unit is 10 mV |
...#TODO: finish ...