Sơ đồ nguyên lý

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật máy tính: Thiết kế và hiện thực kiến trúc phần cứng mạng máy tính nhúng – vi điều khiển cho xe tự hành (Trang 42 - 57)

3.4. Light-Speaker-GPS Node

3.4.1. Sơ đồ nguyên lý

LightControl

Node Light-Speaker-GPS có nhiệm vụ điều khiển hệ thống đèn và còi trên xe.

Khi nhận được lênh bật đèn từ mạng CAN, STM32 sẽ bật tín hiệu điều khiển IC 555 tạo xung nhấp nháy hệ thống đèn xi nhan xung quanh xe. Ngoài ra Node này còn có nhiệm vu doc dir liệu từ GPS và gửi vào trong mạng CAN dé thực hiện các tính năng

Hình 3.6 Sơ đồ nguyên lý Node Light-Speaker-GPS

định vi cua xe.

3.4.2. Sơ đồ chương trình Light-Speaker-GPS Node

Co)

————

Khởi tạo ngoại vi

—————"

Khởi tạo RTOS

——Ẻ——

Khởi tạo hệ thông.

¥ ¥ Ỷ ¥ ¥

Thread Blinker Ma Voec Rowe [Thread CAN Receiver [Thread GPS Recevier

[| [| Publisher ủ Publisher [| [|

Hình 3.7 Sơ đồ chương trình của LightSpeakerGPS Node

Node Light-Speaker-GPS bao gồm 5 Threads chính được miêu tả trong Bảng 3.3. Trong đó 2 Threads GPS Receiver, và GPS Publisher trao đổi dữ liệu với nhau qua

phương thức Shared Memory được bảo vệ bởi Mutex.

Bảng 3.3 Danh sách các Threads trong node Light-Speaker-GPS

Tần số hoạt động

Tên Threads Chức năng Độ ưu tiên

(Hz)

Nhấp nháy LED. Báo cho người Blinker dùng biết trạng thái của hệ thống | BelowNormal 2

đang hoạt động.

GPS Gửi các dữ liệu GPS vào mạng

Normal 2 10 Publisher | CAN

Đọc dữ liệu từ cảm biến đo nguồn

Power ,

và gửi đữ liệu đên Master Node Normal 50

Publisher

thông qua mạng CAN

Lắng nghe dữ liệu trên đườn;

CAN ẽ 8 '

l truyện. Va xử lý dữ liệu khi nhận High Receiver

được

GPS Lắng nghe và xử lý các dé liệu

Normal 3 Receiver GPS từ module GPS

3.5. Engine Node

3.5.1. Sơ đồ nguyên lý

Engine Control Signal

Engine Node có nhiệm vu diéu khién hé thống động cơ tốc độ trên xe. Khi có tín hiệu điều khiển, vi điều khiển STM32 tiến hành điều khiển đóng ngắt các Relay tín hiệu

mô phỏng các tín hiệu khi ta nhấn ga, đạp phanh trên xe tự hành. Ngoài ra, Engine Node còn đọc tín hiệu từ Encoder phản hồi về tốc độ xoay, vị trí của bánh xe. Từ đó

Hình 3.8 Sơ đồ nguyên lý Engine Node

nhóm có thé lắp bộ điều khiển PID và điều khiển tốc độ, vị trí của xe chính xác hơn. Ngoài ra, Engine Node còn được trang bị thêm cảm biến BNO055 giúp ta biết được hướng di chuyển hiện tại của xe cũng như gia tốc và vận tốc góc hiện tại của xe.

3.5.2. Sơ đồ khối của Engine Node

Bắt dầu

J

KhôtsofT0S

J

Kndi tạo hệ thống.

Hình 3.9 Sơ đồ khói Engine Node Khối Engine Node bao gồm 5 Threads chính với các chức năng như

Bảng 3.4 Danh sách các Thread Engine Node

: Tần số hoạt động

Tên Threads Chức năng Độ ưu tiên

(Hz)

Nhấp nháy LED. Báo cho người

- . , BelowNorm Blinker dung biết trạng thái của hệ thông 1 2

al

đang hoạt động.

IMU Reader | Gửi các dữ liệu GPS vào mạng

Normal 2 50 and Publisher | CAN

Đọc dữ liệu từ cảm bién do nguồn

Power R

và gửi dit liệu đên Master Node Normal 20

Publisher

thông qua mạng CAN

Lắng nghe dé liệu trên đường CAN Receiver | truyền. Và xử lý dữ liệu khi nhận High

được

Bộ điêu khiên PID điêu khiên tốc Engine ,

độ của động cơ va gửi dit liệu toc |_ RealTime 50 Controller

độ vào mạng CAN.

3.6. Steering Node

3.6.1. Sơ đồ nguyên lý

Hình 3.10 Sơ đồ nguyên lý Steering Node Steering Node đóng vai trò điều khiển hệ thống đánh lái của xe. Vi điều khiển STM322 sẽ tiến hành giao tiếp với bộ điều khiển EZI Servo Plus R để điều khiển động

cơ đánh lái trên xe qua chuẩn giao tiếp RS485. Ngoài ra Steering Node sẽ có thêm một cảm biến đo nguồn nữa so với các mạch khác. Mạch này đóng vai trò đo năng lượng tiêu thụ của bộ điều khiển hệ thống đánh lái EZI Servo Plus R.

3.6.2. Sơ đồ khối của Steering Node

G

Khởi tao ngoại vi

Khởi tạo RTOS

Khởi tao hệ thống

+ Ý ¥

‘Thread Ezi Power Thread main Power Thread EZI Status

I ‘Thread Blinker [" Publisher ủ Publisher a CAN Receive [" Monitor

Hình 3.11 Sơ đồ khói Steering Node

Bảng 3.5 Chức năng các Thread trong Steering Node

. Tần số hoạt

Tén Threads Chức năng Độ ưu tiên

động (Hz)

Nhấp nháy LED. Báo cho người Blinker dùng biết trạng thái của hệ thống | BelowNormal 2

đang hoạt động.

Đọc dữ liệu từ cảm biến đo

Ezi Power năng lượng tiêu thụ của mạch

. ` . , Normal 2 20

Publisher điêu khiên đánh lái và gửi dén

mạng CAN

Đọc đữ liệu từ cảm biên đo năng Main Power

lượng tiêu thụ của mạch và gửi Normal 20 Publisher A

dén mang CAN.

Lắng nghe dé liệu trên đường CAN Receiver | truyền. Và xử lý dữ liệu khi nhận High

được

EZI Status Dùng dé đọc trạng thái hiện tại

` l Normal 3 50

Monitor của bộ điêu khién EZI

3.7. Master Node

3.7.1. Sơ đồ nguyên lý

nate

Voltage Regulator Power Measure Power Input

Power Supply

SD Card Reader LED And Button Debug

me Master node rev: 10 ||

€empany: CEEC Company [Sheet 1⁄2

Dete: 2023-03-09 Drawn By: Truyền LêHữU

+ T

Hình 3.12 Sơ đồ nguyên lý Master Node Master Node là node gateway đề trung chuyền dữ liệu giữa các node ở lớp High Level và lớp Low Level. Các dữ liệu gửi đến Master Node sẽ được gửi đến Server để

nhiệm vụ lắng nghe tất cả dữ liệu trên đường truyền và tiến hành gửi lên server để lưu trữ. Nếu không có tín hiệu mạng những dữ liệu đó sẽ được lưu tạm trên bộ nhớ

SD Card và được gửi đến Server ngay khi có mạng.

3.7.2. Sơ đồ khối Master Node

Bắt đầu

Khởi tạo ngoại vĩ

i

Khởi tạo RTOS

i

Khởi tạo hệ thống

Ỷ Ỷ Ỷ Ỷ

Thread MOTT Thread main Power

Ũ ‘Thread Blinker Ũ 9%, Ũ Norte [E CAN Receiver]

Hinh 3.13 So dé khdi Master Node Master Node sẽ bao gồm 4 Threads chính được miêu ta trong Bảng 3.6

Bang 3.6 Chức năng các Thread trong Master Node

: Tần số hoạt

Tén Threads Chức nang Độ ưu tiên

động (Hz)

Nhấp nháy LED. Báo cho người Blinker dùng biết trạng thái của hệ thống | BelowNormal 2

đang hoạt động.

MQTT Thread dùng dé đọc và xử lý

l Normal 2 50 Receiver dữ liệu nhận được từ MQTT

Đọc dữ liệu từ cảm biến đo năng

Main Power

lượng tiêu thụ của mạch và gửi Normal 50

Publisher

lên MQTT

Dùng đề lắng nghe đữ liệu trên

CAN Receiver | CAN bus và gửi các dữ liệu đó High

dén Server

3.8. Giao tiếp các Node trên CAN Bus

3.8.1. Mô hình mạng

Trong dé tài này nhóm lựa chọn xây dựng đơn giản 4 tang mạng như Hình 3. 14.

Mô hình nay dựa trên mô hình mang OSI (Open Systems Interconnection) được đặt

ra dé làm tiêu chuẩn chung cho đê việc trao đôi thông tin các Node.

Application Layer Software

NetWork Layer

Datalink Layer Hardware

Physical Layer

Hình 3.14 Bốn tang mang CAN đê giao tiếp

3.8.2. Physical Layer

Lớp vật lý điều khiển các tín hiệu trên đường truyền. Nhóm đã dựa trên chuẩn ISO11898-2/5 [15] để xây dựng các kết nối vật lý trên mạng CAN. Các ngoại vi phần cứng trên các vi điều khiển STM32 và ESP32 kết hợp với CAN transceiver đã đáp ứng đủ các yêu cầu ở lớp vật lý.

3.8.3. DataLink Layer

Lớp liên kết đữ liệu: ở lớp này nhóm hiện thực theo chuẩn ISO11898-1 [16]. Bộ điều khiển CAN được tích hợp trên STM32 và ESP32 có thể đáp ứng yêu cầu lớp DataLink nên ta không cần phải can thiệp vào.

Bên cạnh đó mỗi Frame sẽ có độ dài 8 bytes. Những Bytes không sử dụng trong

Frame sẽ được chèn thêm dữ liệu 0x55 để giúp hệ thống giảm thời gian xử lý các dữ

liệu vô nghĩa.

3.8.4. Network Layer

Mặc định một gói tin của CAN standard chỉ có thé truyền 8 bytes không đủ đáp ứng truyền dữ liệu có kích thước lớn. Do đó, nhóm đề xuất một cơ chế tách và ghép các frame lại với nhau. Ngoài ra nhóm xây dựng cơ chế định địa chỉ các Node nhằm

tạo độ ưu tiên cho các dữ liệu trong mạng.

Trong một gói tin của CAN Standard sẽ có 11 bit địa chỉ. Dựa vào cơ chế phân

xử của CAN và mức độ ưu tiên của các loại gói tin ta chia 11bit địa chỉ đó thành 3

phần và ý nghĩa, định dạng của mỗi phần được trình bày trong các bảng dữ liệu: Bảng

3.7, Bảng 3.8, Bảng 3.9, Bảng 3.10

Bang 3.7 Bảng phân bồ ID

Tên ID Vị trí bit Message Type Bit [10..7]

Target Node Bit [6..3]

Frame Type Bit [2..0]

Bang 3.8 Bang dinh nghia Message Type

Message Type Y nghia

0000 Broad Cast

0001 Command Frame

0010 ACK Command Frame

0011 Remote/Notice frame

0100 Data Frame 0101-0111 Chưa sử dung

1000 Test BroadCast

1001 Test Command Frame

1010 Test ACK Command Frame

1011 Test Remote/Notice frame

1100 Test Data Frame 1101-1111 Chua sử dung

Trong bang Message Type Bang 3.8 ta chia 2 loai la Message Type binh thuong

va Message Type Test. Cac Message Type Test được định nghĩa với mục dich thử

nghiệm các tinh năng mà không anh hưởng hệ thống chính đang hoạt động. Do đó các Message Type Test sẽ có độ ưu tiên thấp hơn. Định nghĩa các Message Type như

sau.

- BroadCast: Là gói tin sẽ được gửi cho toàn bộ các Node trên xe.

- Command Frame: Là các gói tin với các lệnh điều khiển xe.

- ACK Command Frame: Là gói tin phản hồi của Command Frame được

xây dựng với mục đích thông báo đã nhận lệnh thành công.

- Remote Frame: Là gói tin yêu cầu người nhận gửi lại phản hồi một giá trị

được chỉ định.

- Data Frame: Là các gói tin dữ liệu được gửi định kỳ vào mạng CAN.

Bảng 3.9 Bảng định nghĩa Target Node

Target Node Y nghia

0000 All Node

0001 Engine Control Node

0010 Light-Speaker-GPS Node

0011 Master Node

0100 Steering Control Node

0101 Obstacle Sensor Node Engine

0110 Power Management Node

0111-1111 Khong str dung

Bang 3.10 Bang dinh nghia Frame Type

ID Frame Type

000 End Frame

001 First frame

010 Second frame

011 Third frame

100 Fourth frame

101 Fifth frame

110 Six frame

111 Seven frame

Bảng 3.11 Định dạng trường Data Byte 0 1 21314|5|16|7 First Frame | SenderID | DataLength Data

Other Frame | SenderID Data

End Frame SenderID Data + CRC

Dựa vào định dang trên ta có thé gui dữ liệu một gói tin có kích thước đến 54 bytes.

Phù hợp đại đa số các yêu cầu dữ liệu điều khién trên xe tự hành.

3.8.5. Application Layer

Ở Application Layer nhóm đã lựa chọn định dạng dữ liệu chung như Bảng 3.12 để giao tiếp giữa các Node.

Bảng 3.12 Định dạng giao tiếp Appilcation Layer

Định dạng #<ID>=<Value1>;...;<ValueN>\r\n

Trong đó nhóm đã quy định được các gói tin như Bảng 3.13 dé giao tiếp giữa các

Node trong mạng.

Bảng 3.13 Bảng định dạng gói tin

ID Name Frame | Kiểu dữ liệu Format

Type

1 SetEngine | Comma float #1=<Velocity>\r\n

Speed nd

2 Set Steer Comma float #2=<Angle>\r\n

Angle nd

3 Set Light Comma intingintint | #3=<Left>;<Right>;<Front>;<Stop>\r

nd \n

4 SetBuzzer | Comma int #4=<State>\n

nd

5 | Enable PID | Comma int #5=<State>\r\n

nd

10 | Car Velocity Data float #10=<Velocity>\r\n

11 GPS Data Data float;float #11=<Long>;<Lat>\r\n

12 Power Data sữ7;intingint | #12=<Name>;<Power>;<Voltage>;<

Measure Current>\r\n

13 Distance Data int;float #13=<index>;<isIRDetect>;<laserRan

Sensor ging>\r\n

14 IMU Euler Data float;float;float | #14=<Heading>;<Roll>;<Pitch>\r\n

Data

15 | IMU Accel Data float;float;float | #15=<AccX>;<AccY>;<AccZ>\r\n

Data

16 IMU Gyro Data float;float;float | #16=<GyroX>;<GyroY>;<GyroZ>\r\

Data n

3.9. Giao tiếp giữa High Level va Low Level.

=ơ ome

Other Embedded Computer

ESP32

=

E

MOTT broker o2 Server a

vorr| |xssse

TT chert

Isssteesex

Ibsswuese.

Bssesae

Hình 3.15 Mô hình giao tiếp giữa lớp High Level và lớp Low Level.

Sau khi ESP32 nhận được dữ liệu trong mạng CAN, vi điều khiển sẽ gửi những

dữ liệu đó đến những Topic đã được chỉ định. Những dữ liệu này sẽ được lưu trên cơ

sở dữ liệu của Server hiện thực bằng MongoDB cũng như được gửi đến giao diện Web thông qua phương thức SocketlO. Ngoài ra khi ESP32 nhận các dữ liệu điều khiển từ MQTT từ các topic điều khiển, ESP32 sẽ tiến hành xử lý, phân loại các dữ liệu đó và đóng gói lại gửi đến các Node phù hợp.

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật máy tính: Thiết kế và hiện thực kiến trúc phần cứng mạng máy tính nhúng – vi điều khiển cho xe tự hành (Trang 42 - 57)

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

(68 trang)