Phương thức giao tiếp với mạch BMS-DXB31

Một phần của tài liệu Nghiên cứu, thiết kế phần mềm cho hệ thống quản lí pin BMS đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 86 - 88)

Chương 4 THIẾT LẬP, XÂY DỰNG PHẦN CỨNG VÀ PHẦN MỀM

4.2. Phần mềm

4.2.1. Phương thức giao tiếp với mạch BMS-DXB31

4.2.1.1. Giao tiếp UART

Để giao tiếp chung với BMS-DXB31 thì ta cần một thiết bị có hỗ trợ giao tiếp UART. Từ đây, ta chọn board Arduino làm thiết bị để giao tiếp với BMS.

Hình 4.19: Sơ đồ kết nối UART giữa BMS-DXB31 với board Arduino

Dựa vào nguyên tắc truyền nhận của giao tiếp UART, thì đối với BMS-DXB31 cũng vậy khi Arduino gửi một frame dữ liệu truyền tới chân Rx của BMS-DXB31 thì ngay sau đó BMS-DXB31 trả lại một frame dữ liệu chứa nội dung cần biểu đạt thông tin như ban đầu

75 Arduino muốn gửi đến. Cuối cùng, ta thu được các chuỗi dữ liệu đó rồi sau đó ta chỉ cần phân tích và tách lấy dữ liệu thơng tin cần muốn có.

4.2.1.2. Định dạng khung dữ liệu dùng để giao tiếp

Để giao tiếp với BMS-DXB31 thì các frame tín hiệu từ Arduino gửi đến phải có ngơn ngữ giao tiếp chung, không thể thay đổi được do bên nhà sản xuất thiết kế riêng. Vì vậy, dưới đây là cấu trúc một frame truyền nhận dữ liệu, và các frame truyền đi mà BMS-DXB31 có thể giao tiếp được:

Hình 4.20: Cấu trúc frame format của 1 chuỗi dữ liệu

- Instruction head: Có độ dài 1 byte. Cố định là 0x3A - Add: Có độ dài 1 byte. Cố định là 0x16

- Instruction: Có độ dài 1 byte - Length of data: Có độ dài 1 byte

- Data: Có độ dài bằng số dữ liệu của length of data. Nếu length of data bằng 0 thì data

bằng 0

- Checksum: Bit tổng kiểm tra dữ liệu

- End of frame: Có độ dài 2 byte. Cố định là 0x0D 0x0A

Lưu ý: Data có dạng 0x1234 thì định dạng của đoạn dữ liệu là 0x34 0x12

Bảng 4.5: Các chuỗi dữ liệu dùng để giao tiếp với mạch BMS-DXB31

Instruction Ý nghĩa Chuỗi gửi đến BMS

0x01

Trạng thái báo động

Bit 7 1: Undervoltage (UV) 0: Normal Bit 6 1: Overvoltage (OV) 0: Normal Bit 5 1: Overload (OL) 0: Normal Bit 4 1: High-tempetature (HT) 0: Normal Bit 3 1: Discharge short-circuit (DS-C) 0: Normal Bit 2 1: Charge short-circuit (CS-C) 0: Normal Bit 1 1: Discharge overcurrent (D-OC) 0: Normal Bit 0 1: Charge overcurrent (C-OC) 0: Normal

3a 16 01 00 17 00 0d 0a

76 0x06

Nhiệt độ của MOS trong BMS Giá trị nhiệt độ = (Giá trị của dữ liệu-2731)

*0.1℃

3a 16 06 00 1c 00 0d 0a

0x07

Nhiệt độ thấp nhất của bộ pin

Giá trị nhiệt độ = (Giá trị của dữ liệu-2731) *0.1℃

3a 16 07 00 1d 00 0d 0a

0x08

Nhiệt độ cao nhất của bộ pin

Giá trị nhiệt độ = (Giá trị của dữ liệu-2731) *0.1℃

3a 16 08 00 1e 00 0d 0a

0x09 Tổng điện áp của bộ pin

Giá trị điện áp = Giá trị của dữ liệu * 1 mV 3a 16 09 00 1f 00 0d 0a

0x0a Dòng điện

Giá trị của dòng điện = Giá trị của dữ liệu * 1 mA

3a 16 0a 00 20 00 0d 0a

0x0D Phần trăm dung lượng còn lại của bộ pin (SOC) SOC = Giá trị của dữ liệu * 1%

3a 16 0d 00 23 00 0d 0a

0x0F

Dung lượng thực tế còn lại của bộ pin Giá trị dung lượng còn lại của pin = Giá trị của dữ

liệu * 1mAh

3a 16 0d 00 23 00 0d 0a

0x10

Dung lượng thực tế lúc đầy

Giá trị dung lượng thực tế lúc đầy = Giá trị của dữ liệu * 1mAh

3a 16 10 00 26 00 0d 0a

0x24

Điện áp từ cell 1 đến cell 7

Giá trị điện áp mỗi cell = Giá trị của dữ liệu * 1 mV

3a 16 24 00 3a 00 0d 0a

0x25

Điện áp từ cell 8 đến cell 14

Giá trị điện áp mỗi cell = Giá trị của dữ liệu * 1 mV

3a 16 25 00 3b 00 0d 0a

Một phần của tài liệu Nghiên cứu, thiết kế phần mềm cho hệ thống quản lí pin BMS đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 86 - 88)

Tải bản đầy đủ (PDF)

(109 trang)