1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

68 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề 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
Tác giả Nguyễn Văn Tín
Người hướng dẫn Phạm Minh Quân
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 68
Dung lượng 23,04 MB

Nội dung

Với những hệ thống được tích hợp sẵn này sẽ giúp các nhóm nghiên cứu dé dang hơn trong việc tích hợp các hệ thống và giải thuậtđiều khiển xe tự hành bởi vì toàn bộ các phần cứng cần thiế

Trang 1

ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

NGUYÊN VĂN TÍN - 19521022

KHÓA LUẬN TÓT NGHIỆP

THIET KE VÀ HIỆN THỰC KIÊN TRÚC PHAN CỨNG MẠNG MAY TÍNH NHUNG - VI DIEU KHIỂN

CHO XE TỰ HÀNH

Design and implement hardware architecture for embedded computer — microcontroller network on autonomous vehicle

KY SU KY THUAT MAY TINH

GIANG VIEN HUONG DAN

Pham Minh Quan

Trang 2

LỜI CẢM ƠN

Đầu tiên, em xin gửi lời cảm ơn đến quý thầy cô trường Đại Học Công NghệThông Tin Trong quá trình học tập và rèn luyện tại trường, với sự dạy dé, chỉ bảo

tận tình của quý thầy cô đã trang bị cho em những kiến thức về chuyên môn cũng như

kỹ năng mềm, tạo cho em hành trang vững chắc trong cuộc sống cũng như công việcSau này.

Tiếp theo, em xin cảm ơn khoa Kỹ Thuật Máy Tính vì đã luôn tạo mọi điều kiện

thuận lợi cho em được học tập và phát triển Đặc biệt, dé hoàn thành khóa luận tốt

nghiệp này, em xin gửi lời cảm ơn sâu sắc tới Thầy Phạm Minh Quân đã tận tình chỉbảo, hướng dẫn và hỗ trợ trang thiết bị cho em trong suốt thời gian thực hiện đề tài.Đồng thời, em cũng xin gửi lời cảm ơn đến sinh viên Lê Hữu Truyền, Đặng AnhKhoa, Bùi Đăng Huy, Nguyễn Nhã Khanh và các sinh viên khác trong CLB CEEC

đã giúp đỡ em hiện thực hệ thống này lên được phương tiện thực tế

Em cũng muốn cảm on tat cả các công ty và nhà phát triển cung cấp các dịch vụ

miễn phí cũng như các thư viện và dự án mã nguồn mở Không có những công cụ vàthư viện này khoá luận của em sẽ không thể hoàn thành được như bây giờ

Cuối cùng, em xin cảm ơn đến gia đình, những người luôn dành những sự độngviên đến em trong suốt quá trình thực hiện khóa luận

Thành phố Hồ Chí Minh, tháng 07 năm 2023

Sinh viên thực hiện

Nguyễn Văn Tín

Trang 3

MỤC LỤC

DANH MỤC HÌNH 2222 2222222222222222131222222211111 21211111 re 9DANH MUC BANG c1 1

Chương 1 Tổng quan đề taie ccccsccssecssssssesssssseesesssseesssssseessssseeeessssesesesseeeeease 41.1 Lý do chọn để tài -222+2<22221222221112221112 12171122211 4

1.2 Tình hình nghiên cứu hiện nay

1.2.1 Tình hình nghiên cứu trên thế giới -ccccc+++ccvcvxee 6

1.2.2 Tình hình ngiên cứu trong nước.

1.3 Mục tiêu đề tài 2222 2222221111 re 9

1.4 Phương pháp thực hiện

Chương 2 CO SỞ LÝ THUYẾTT ¿+ 2E+2++22EE+22t2EEEE+etrvvrzerrrrree 212.1 Mạng giao tiếp CAN

2.1.1 Tín hiệu đường truyền - -¿c+22v+zvevcv+vreevvrevcerrxee 22

2.1.2 Data Frame .- Sàn HH Hung như 22

2.1.3 Remote Fraime -c- 2c 2c 22t v 9 139119 1 1 1 911g vn giến 24

2.2 Hệ điều hành thời gian thực CMSIS — RTOS2 - 24

2.2.1 Giới thiệu CMSIS — RTOS2 -cccc 22c cttrtrrrrrrrrreerrree 24

2.2.2 Một số khái niệm trong R“TOS 6c sxcssseserekrererrrrre 25

2.3 Giao thức MQTT -2 2222222222E2E222EEtEEEEErrrrrrrrrrrrrrrrree 282.3.1 Tổng quan về MQTT -.:¿:222+2222v+rtttcrvvrrrrrrrrrerrrer 282.3.2 Kiến trúc MQTT -2-2-+++2Ek2t2EEECEEEECEEELEEELrrrrrkrrree 292.4, Phần cứng sử dụng 22¿+2222+++t22EEEvtEEEEErrrtrrrrrrerrkrrrrrer 302.4.1 Vi điều khiển STM32F103C8T6 22-5222ccccccvvvccerrxee 302.4.2 Vi điều khiển ESP32 -2222222ccc2222EEErrrrrrrrrtrrrrrrrrrrrrer 30

Trang 4

2.4.3 IC đo năng lượng INA219 St ng ưêt 312.4.4 Cảm biến IMU BNO055

2.4.5 Cảm biến Encoder -:+++22+++t2222E++t2E2Ekvrrtrrkrrrerrree 332.4.6 Bộ điều khién EZI Servo Plus R

2.4.7 SSR — Solid State Relay -c S2 35

3.3 Distance Node o S2 tt HH rrưư 42

3.3.1 Sơ đồ nguyên lý 222222cc22EErerrErrrrrrrrrrrrrrrreerrey 423.3.2 Sơ đồ chương trình của Distance Node -cc: ccs2 43

3.4 Light-Speaker-GPS Node 5-55: Stttrrreerererrerrrree 443.4.1 Sơ đồ nguyên lý -. :222222c22 2 xrrEErtrrrrtrrrrrrrrrrrreerrvev 443.4.2 Sơ đồ chương trình Light-Speaker-GPS Node - 45

3.5 Engine Node ST HH HH2 erưưn 46

3.5.1 Sơ đồ nguyên lý 22222vrvrrrirtrrrtrrrrrrrrrrrrrii 46

3.5.2 Sơ đồ khối của Engine Node -©c+zc+22ccvecrrrrreccrrrree 41

3.6 Steering NOde cscttn HH HHHHnư 483.6.1 Sơ đồ nguyên lý .ccc222222ct22EvvrrrErrkrrrrrrrtrrrrrrrrreerrtev 483.6.2 Sơ đồ khối của Steering Node -c:c52ccvccsccvvvrcerrrev 49

3.7 Master NOde càng HH HH it 50

Trang 5

3.7.1 Sơ đồ nguyên lý .ccc222222t222vEtrEEEkrrrrrrrtrrrrrrrrreerrree 503.7.2 Sơ đồ khối Master Node

3.8 Giao tiếp các Node trên CAN Bus -222-222cccccccvvcrerrrrrrcrrr 52

4.6 Master NOd€ Ă TS HH re 634.7 Mạng giao tiếp CAN ccccc 2222222 xtrEEErrrrrrrrrrrrrreerrkei 64

4.8 Server lưu trữ và quản lý dữ liệu -. -c-©c-cccccsrreerxsre 64Churong 5 K&t 0n 66

ÂN Kt qua dat Aue n ẽ ẽ.ẽ .4ddădăHặHăHH 665.2 Ưu, nhược điểm của đề tài -cccrrreiiiierrrrriirrrrirrrrie 66

5.2.1 Ưu điểm ccceerrrrrrireiirril 665.2.2 Nhược điểm cceekerrrerrrrrrrrrrririrril 66

Trang 6

5.4 Hướng phát triển đề tài -:-:222222+v+rrtttttrrkxrrrrrrrrrrrkrrerree

Trang 7

DANH MỤC HÌNH

Hình 1.1 Các cấp độ xe tự hành . -222++222E2+t2E22122227112 2221 cerrkke 15

Hình 1.2: Kiến trúc điều khiển xe điện [8] ccccccccsssccsssssseessssssesscssseessesssecesessees 17

Hình 1.3 Xe Minibus của Phenikaa-X -2¿-©222c+2222vzcrecrvvvrrrrrrrvee 18

Hình 1.4 Mô hình kết nối đề tài chuyển đổi xe điện sang xe tự hành [10] 19Hình 2.1 Mô hình giao tiếp CAN -22222c 2222222222122 cerrkee 21Hình 2.2 Tín hiệu truyền trên CAN Bus -¿-:¿-22222vvvccrsrrrrrrrrerree 22

Hình 2.3 CAN Standard Data Frame cc eeseeeseeeeeeseeeeeeeseeeseneeeeeenerseeeeaee 22

Hình 2.4 Mô hình của CMSIS — RTOS -2¿-22222c222vvvrrrrrrrrrrrrrev 24

Hình 2.5 CMSIS — RTOS Kernel - ¿+ + tt SsEssrrrrrrrrrrrrrkrrrsre 25

Hình 2.6 Mô hình chuyền trang thái các Threads -c cccc+2 26Hình 2.7 Cách hoạt động Events Flag - ¿+ 52 SS+£c+zv+xsxerereree 27 Hình 2.8 Cách hoạt động Mufex - + +52 ‡tsksEvrekerekrrrrkrkererrrrrree 27

Hình 2.9 Cách hoạt động Semaphore ¿- + 5+ + ++k+x+x£xeEerkrkexerrrrkree 28Hình 2.10 Cơ chế tổng quan MQTTT -: ¿¿©++++22++z++2vvvvzscrvscee 28

Hình 2.11 Kiến trúc mô hình MQTT z£222+++++++22zzxseccce+ 29

Hình 2.12 Vi điều khiển STM32F103C8T6 -2c¿2222222vvccrcerrrrr 30Hình 2.13 Vi điều khiển ESP32 -222-2222+2222E2EtEEEEEEE2EEEerrrrrrrvee 31Hình 2.14 Cảm biến INA2109 :¿-222222222222221211tt 2EEEEtrrrrrrrrrrrrree 32Hình 2.15 Cảm biến IMU BNO055 -22222222222222vvvcrrrrrrrrrrrrercee 33

Hình 2.16 Rotatry En€OeT ¿- ¿552 S+2*+‡++2St2t2xExkerekekerrkrrkerree 34 Hình 2.17 EZI Servo Plus R 2¿-222++222S2++e2EEE++ttEEEvrretrkkrrrrrrrrvee 35

Hình 2.18 Solid State Relay 36

Hình 2.19 IC CAN Transceiver MCP2551

Hình 3.1 Kiến trúc mạng máy tính vi điều khiển

Hình 3.2 Sơ đô nguyên lý khối Power Management 40

Hình 3.3 Sơ đồ khối Power Management .-2 ©2z++2222+zevcvvveerrrrree AlHình 3.4 Sơ đồ nguyên lý Distance Node -22ccccc222cvvvvvcrrrrrrrr 42

Hình 3.5 Sơ đồ chương trình Distance Node - ¿225szccccsscez 43

Trang 8

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

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

Hình 3.8 Sơ đồ nguyên lý Engine Node -.cc-¿+2222cvvvrrerrrrrrrrreerree 46Hình 3.9 Sơ đồ khối Engine Node ccccssssssssssssseccssssescssssessessseccssseeseessseseessnes 47

Hình 3.10 So đồ nguyên lý Steering Node cccccsssssssesssssssessssssseessseesesesseeeeeans 48

Hình 3.11 Sơ đồ khối Steering Node -222c++222222vvvrrrrrrrrrrrrrerree 49Hình 3.12 Sơ đồ nguyên lý Master Node 2222cccccecrrrrrrreerrrrrrrr 50Hình 3.13 Sơ đồ khối Master Nodc -cccccsvvvvrkrrrrrrrtrrrrrrrrrrrrrrre 51

Hình 3.14 Bốn tang mạng CAN dé giao tip -cccccccccccvsccccee 52

Hình 3.15 Mô hình giao tiếp giữa lớp High Level va lop Low Level 57Hình 4.1 Mạch Light-Speaker-PS -¿ 5c 5S ‡tttrrrkekererrrrrke 59 Hình 4.2 Mô hình Distance Node ¿- 5-55 525+S++e+eexsrereresesrersrecee 60

Hình 4.3 Mô hình Power Management Node 60

Hình 4.4 Mạch Engine Node 6l

Hình 4.5 Lắp đặt Encoder 62

Hình 4.6 Mạch Steering Node 62Hình 4.7 Hệ thống điều khiển đánh lái 63

Hình 4.8 Mạch Master Node - 2c + SE EEEErxexereeesssrrrrerrsresrei 63Hình 4.9 Giao diện hiền thị trạng thái hiện tại của Xe - <++ 64Hình 4.10 Giao diện hiển thị trang thái giao tiếp hiện tại 65Hình 4.11 Tổ chức lưu trữ Data trong MongoDB 2ccccccccce+ 65

Trang 9

DANH MỤC BANG

Bảng 3.1 Danh sách các Threads khối Power Management - Al

Bang 3.2 Danh sách các Threads trong Distance Node 43

Bang 3.3 Danh sách các Threads trong node Light-Speaker-GPS - 45

Bang 3.4 Danh sách các Thread Engine Node -¿-¿- + 5s s+++xscs 4

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

Bảng 3.6 Chức năng các Thread trong Master Node -.-¿ :©5 51Bang 3.7 Bảng phân bố ID wieccssssesssssssesssssssecsssssssccsssssecsssssesesssisscesssusecessseeseessees 53Bang 3.8 Bang định nghĩa Message Type eceesesesesseeeeseeeeneeeeeeseeeseneeeneeeeee 53 Bang 3.9 Bang định nghĩa Target Node -55- 5+ ccccrsrerrreerrrrrree 55 Bang 3.10 Bảng định nghĩa Frame 'Type -. +55 55c+ccceerrreerrrerrer 55

Bang 3.11 Dinh dạng trường Data cece cee es eeceesee tees teseseseseeneseaeeeees 56Bang 3.12 Dinh dang giao tiếp Appilcation Layer ccsssscscssssseseceseesssseeeeeeees 56Bang 3.13 Bảng định dạng gói tin -. eeeseeseeeeseeseeeeeeenseeeaeeneeeenes 56Bảng 4.1 Bảng thống kê mạng giao tiếp CAN - c¿-5225ccccccvscccccrvscee 64

Trang 10

DANH MỤC TỪ VIET TAT

ADAS Advanced driver-assistance system

CAN Controller Area Network

CRC Cyclic Redundancy Check

ECU Electronic Control Unit

EKF Extended Kalman Filter

GPS Global Positioning Systems

loT Internet of Things

MCU Microcontroller Unit

Message Queuing Telemetry

MQTT Transport

SAE Society of Automotive Engineers

Trang 11

TOM TAT KHÓA LUẬN

Đề tài “THIẾT KÉ VÀ HIỆN THỰC KIÊN TRÚC PHÀN CỨNG MẠNG MÁYTÍNH NHÚNG - VI DIEU KHIEN CHO XE TỰ HANH”, tập trung chủ yếu vàoviệc xây dựng một kiến trúc phần cứng, giao tiếp chung giữa các máy tính nhúng, viđiều khiển với nhau Trong đề tài này nhóm xây dựng 6 loại Nodes cơ bản ở tangthấp mỗi Nodes sẽ đảm nhiệm một nhiệm vụ điều khiển một hệ thống chính trên xe

6 Nodes cơ bản này bao gồm:

- Engine Control Node: Dùng dé điều khiển hệ thống tốc độ xe

- Distance Node: Gồm các cảm biến vat cản dùng để phát hiện vat cản xung

quanh xe.

- Steering Node: Hệ thống điều khiển bánh lái của xe

- Light-Speaker-GPS Node: Dùng dé điều khiển hệ thống đèn trên xe

- Power Management Node: Dùng đề giám sát năng lượng trong mạng

- Master Node: Có nhiệm vụ lắng nghe dữ liệu trên đường truyền để thu thập

dữ liệu hệ thông Cũng như là thiết bị trung gian giao tiếp các Node tang thấp

và tầng cao

Bên cạnh đó tài này đưa ra một định dạng mạng CAN có 4 tầng làm chuẩn giaotiếp chung cho các Nodes trong mạng

Trang 12

Chương 1 Tổng quan đề tài

1.1 Lý do chọn đề tài

Những năm gần đây với sự phát triển vượt bậc của những công nghệ trí tuệ nhântao (AI), Internet vạn vat (IoT), tự động hóa, đã thay đổi cách chúng ta giao tiếp,

mua sắm, đi lai, Trong đó các công nghệ về xe tự hành đang nhận được sự quan

tâm mạnh mẽ ở trong và ngoài nước.

Các tin tức về những công nghệ mới cho xe tự hành vẫn đang được lan truyền rất

nhanh khi mà lĩnh vực này đang đem lại sự thành công tuyệt vời cho Tesla — Hãng

xe điện lớn nhất nước Mỹ đã đem công nghệ tự hành cấp độ 3-4 lên những chiếc xe

của họ Những gã khổng 16 về công nghệ như Google hay Amazon ít lâu sau cũng

rục rịch trình làng các mẫu xe tự hành có khả năng di chuyển trong nội thành màkhông cần sự giám sát của con người, nhằm khang định vị thé của họ cùng với mụctiêu xây dựng thành phó thông minh và di chuyền an toàn

Đây không chỉ là cuộc đua của ông lớn Công nghệ mà làn sóng về xe tự hành còn

len lỏi tới các phòng nghiên cứu nhỏ trên khắp thé giới Hiện nay rất nhiều tính năng

tự động xuất hiện trên các dòng xe hiện đại được tích hợp trong hệ thống trợ lái

(Advanced driver-assistance systems — ADAS [1]) như hỗ trợ chuyển làn, hỗ trợ bámlàn, đỗ xe tự động, thắng khẩn cấp Với những hệ thống được tích hợp sẵn này sẽ

giúp các nhóm nghiên cứu dé dang hơn trong việc tích hợp các hệ thống và giải thuậtđiều khiển xe tự hành bởi vì toàn bộ các phần cứng cần thiết đã được tích hợp sẵn

trên xe Tuy nhiên những chiếc xe có tích hợp hệ thống ADAS thường có giá thành

và chi phí rat cao không phù hợp cho các nhóm nghiên cứu nhỏ Do đó nhóm đưa ragiải pháp chuyền đổi chiếc xe điện 6 chỗ bằng cách tích hợp các cảm biến, bộ điều

khiển đánh lái, động cơ, thắng, các bộ điều khiển tầng thấp Đó là nền tảng dé chocác nhóm nghiên cứu cho ra đời các dé tài mới phát triển các giải thuật xe tự hànhtrên các thiết bị, cảm biến ở tầng cao

Trang 13

1.2 Tinh hình nghiên cứu hiện nay

Khởi nguồn của cuộc đua công nghệ nay bắt nguồn từ cuộc thi DARPA GrandChallenge [2] với thử thách là xây dựng một chiếc xe tự hành không người lái dichuyển trong đô thị Từ đó gây ra sự bùng né về số lượng bài báo, nghiên cứu, cuộcthi về xe tự hành với da dang quy mô trên toàn thé giới

Hiện trên thế giới chia khả năng tự hành của xe theo 6 cấp độ chính dựa theochuẩn SAE J3016 [3] bởi SAE (Society of Automotive Engieer International) như

-_ Cấp độ 0 (No automation — Không hỗ trợ): Xe không có tính năng tự hành

nào Người dùng tự điều khiển các hệ thống đánh lái, động cơ, Hệ thống

xe chỉ cung cấp những thông tin cảnh báo cho tài xế, và chỉ hỗ trợ trong mộtthời điểm nhất thời

Trang 14

- Cấp độ 1 (Driver Assistance — Hỗ trợ lái): Hệ thống xe cung cấp tính năng

hỗ trợ tài xế điều khiển đánh lái hoặc thắng/tăng tốc không thể điều khiển

cùng lúc cả hai.

- Cấp độ 2 (Partial Assistance — Hỗ trợ một phần): Hệ thống xe cung cấp

tính năng hỗ trợ tài xế điều khiển đánh lái và thắng/tang tốc cùng lúc

- Cấp độ 3 (Conditional Automation — Tự động hóa có điều kiện): Hệ thống

xe cung cấp tính năng có thể tự động lái trong một số điều kiện giới hạn khi

mà tất các điều kiện cần thiết đều được đáp ứng Người dùng phải điều khiểnkhi hệ thống yêu cầu

- Cấp độ 4 (Tự động hóa cao — High Automation): Hệ thống xe cung cấp tinh

năng tự lái trong một số điều kiện giới hạn khi mà tất cả yêu cầu được đápứng Ngoài ra có thể hoạt động không cần người giám sát

- Cấp độ 5 (Tự động hóa hoàn toàn — Fully Automation): Cũng giống như

cấp độ 4 tuy nhiên hệ thống xe có thé hoạt động trong mọi điều kiện

1.2.1 Tình hình nghiên cứu trên thế giới

Trên thế giới hiện nay, những công ty công nghệ lớn như Google, Apple, Bosch,

và các công ty sản xuất ô tô Tesla, Ford, Audi đều tham gia cuộc đua phát triển xe

tự hành Năm 2016, Google đã tách dự án xe tự hành của mình thành một công ty độclập tên Waymo [4] Hiện tại Waymo đang cung cấp dịch vụ taxi tự lái với cấp độ tự

hành cấp 4 tại một số bang như San Francisco, Phoenix nước Mỹ

Ngoài những công ty lớn những phòng nghiên cứu lớn và nhỏ ở các trường đại

học trên thé giới cũng dang day mạnh các nghiên cứu về xe tự hành Với những nhómnghiên cứu có chỉ phí lớn có thể mua những nên tảng xe tự hành có sẵn, những nền

tảng này cho phép người dùng điều khiển xe từ chính máy tính của mình [5] [6]

Ngoài ra cũng có một số nhóm nghiên cứu chọn xây dựng một nền tảng cho riêng

mình Họ sử dụng những chiếc xe điện hoặc xe hơi có sẵn và lắp đặt các hệ thống chophép điều khiển bánh lái, động cơ và các cảm biến cho phép họ điều khiển chiếc xetheo ý muốn của mình [7] [8] Trong nghiên cứu [8] đã sử dụng kiến trúc như Hình

Trang 15

1.2 Kiến trúc này được xây dựng theo kiểu tập trung, một vi điều khiển STM32F3đảm nhận toàn bộ các công việc điều khiển tốc độ động cơ, hệ thống đánh lái, hệthống phanh

Golfcart hardware Interface board

Vehicle’s Motor Control Unit

Hình 1.2: Kiến trúc điều khiển xe điện [8]

1.2.2 Tình hình ngiên cứu trong nước.

Trong nước ta các nghiên cứu về xe tự hành tuy còn khá mới mẻ nhưng cũng

đang nhận được sự quan tâm từ các doanh nghiệp và các trường đại học.

Rat nhiều cuộc thi về xe tự hành đã được tô chức như cuộc thi “Cuộc đua số” dotập đoàn FPT tổ chức Hay cuộc thi “UIT Car Racing” do trường Đại học Công Nghệ

Thông Tin tổ chức Với mong muốn là day mạnh các nghiên cứu về xe tự hành trong

cả nước.

Bên cạnh đó các công ty như VinFast thuộc tập đoàn VinGroup dang tiến hành

thử nghiệm các tính năng tự lái trên các dòng xe của mình Hay như công ty

Phenikaa-X thuộc tập đoàn Phenikaa đã bắt đầu thương mại hóa chiếc xe tự hành Minibus cấp

độ 4 của mình trong các khu Resort, khu đô thị thông minh [9].

Trang 16

điều khiển xe điện với kiến trúc như Hình 1.4 Mô hình kết nối dé tài chuyền đổi xe

điện sang xe tự hành Hình 1.4 Đề tài này chi bao gồm 2 bộ điều khiển chính là mộtmáy tính nhúng đảm nhiệm các chức năng phát hiện làn đường và điều khiển xe, vàCentral Control Unit là một vi điều khiển có nhiệm vụ thu thập tất cả các dữ liệu cảm

biến và gửi về máy tính nhúng cùng với nhận lệnh từ máy tính nhúng và điều khiểntất cả hệ thống trên xe như hệ thống đánh lái, hệ thống đèn, hệ thống động cơ

Trang 17

= ~

⁄ DC — MöEERSSMP \

Control Unit P) Loo ° ?

Left Steering Right Steering Limit Switch Limit Switch

Engine Control

Unit Central Control

Control

‘Command

UltraSonic Sensor

Embedded Computer Camera

Hình 1.4 Mô hình kết nồi đề tài chuyển đổi xe điện sang xe tự hành [10]

1.3 Muc tiéu dé tai

Trong dé tài trước, nhóm nghiên cứu đã xây dựng thành công giải pháp chuyềnđổi từ xe điện sang xe tự hành Tuy nhiên, đề tài cũ còn có một số hạn chế như:

- Hệ thống chỉ có một vi điều khiển (MCU - Microcontroller) chịu trách

nhiệm đọc cảm biến và điều khiển tất cả các thành phần trên xe dẫn đến

việc khó khăn khi mở rộng các tính năng trên xe.

-_ Tốc độ điều khiển và tốc độ đáp ứng của động cơ bánh lái còn chậm (1

độ/giây).

- Xe chưa có phản hồi về vận tốc di chuyên của xe

Do đó, nhóm thực hiện đề tài “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” với mục tiêu xây dựng nên tang dé

phát triển giải thuật xe tự hành cùng với khắc phục các điểm yếu của đề tài trước vàphát triển thêm một sé tính năng mới giúp xe hoạt động ồn định hơn

- Chia các tính năng chính thành các node cơ sở dé dé dàng quản lý, dé dang

thay thé, dé dang mở rộng va phát triển thêm tính năng khi cần thiết

Trang 18

- _ Xây dựng được mạng CAN (Controller Area Network) có thể kết nối tất

cả các node cơ sở với nhau.

- Cải tiễn tốc độ và độ chính xác của hệ thống đánh lái sử dụng động cơ

Servo EZI.

- Cải tiến hệ thống cảm biến phát hiện vat can

- _ Tích hợp thêm các cảm biến vận tốc, gia tốc, GPS (Global Positioning

System) để hỗ trợ cho việc định vị xe

- Xây dựng cơ chế log data đề hỗ trợ việc debug

- Xây dựng máy chủ dé thu nhận và lưu trữ dữ liệu từ xe

1.4 Phương pháp thực hiện

Đề tài sẽ tập trung vào việc xây dựng các ECU (Electronic Control Unit) tầngthấp điều khiển các cơ cấu chấp hành trên xe như hệ thống đèn, hệ thống đánh lái, hệ

thống điều khiển tốc độ động cơ xe, Ngoài ra đề tài sẽ xây dựng một bộ định dạng

gói tin để các ECU có thé giao tiếp với nhau trong mạng CAN

Mỗi ECU cơ sở ngoài chức năng chính (cảm biến và/hoặc bộ điều khiển), nó còn

có cơ chế theo doi công suất tiêu thụ của bản thân ECU đó và cơ chế Log dữ liệutrang thái, đồng thời gửi dữ liệu đến bộ logger dé day lên server quản lý Với mỗi

ECU nhóm kết hợp sử dụng RTOS (Real-Time Operating Systems) dé đảm bảo giảmthời gian đáp ứng của hệ thống Nhóm sẽ tiến hành cải tiến và lắp đặt thêm các linhkiện, phần cứng can thiết để hỗ trợ cho việc điều khiển xe

Đồng thời, nhóm cũng tích hợp hệ thống của nhóm lên xe điện dé thực hiện việckiểm thử và đánh giá hệ thống

Trang 19

Chương2 CỞ SỞ LÝ THUYET

2.1 Mạng giao tiếp CAN

Chuan CAN ban đầu được thiết ké sử dụng trong ngành công nghiệp xe hơi, tuy

nhiên hiện nay CAN cũng được ứng dụng trong các lĩnh vực tự động hóa và các ngành

công nghiệp khác CAN được thiết kế đề giao tiếp nhiều node với nhau mà không cầnbat kỳ thiết bị nào là chủ Hình 2.1 Sự phát triển của mạng CAN bắt đầu vào năm

1983 bởi công ty Robert Bosch GmbH Và chính thức được giới thiệu năm 1986 tại hội nghị của hiệp hội SAE.

MCU Application

CAN Controller,

Hình 2.1 Mô hình giao tiếp CAN

CAN bus có mốt số tính năng nỗi bật như:

- CAN bus là giao tiếp đa chủ (multi master) tat cả các node tham gia đều

là chủ và đều có thể nhận và gửi dữ liệu cho nhau

- CAN Bus chỉ cần sử dụng 2 day để liên kết tất cả các node với nhau

- CAN bus giao tiếp linh hoạt, các thiết bị kết nói đến bus đều không có địa

chỉ cụ thể Khi một gói tin gửi lên tất cả các Node đều nhận dữ liệu, cácnode đó sẽ quyết định giữ lại gói tin hay không

Một số tiêu chuẩn CAN hiện tại:

- CAN Standard (CAN 2.0A)

- CAN Extended (CAN 2.0B)

Trang 20

- CAN Flexible Data Rate (CAN-FD)Các chuẩn này khác nhau ở định dạng các khung truyền (Frame) trên mạng.

2.1.1 Tín hiệu đường truyền

CAN bus sử dụng 2 dây là CAN_H (CAN High) và CAN_L (CAN Low) đểtruyền tín hiệu Đường truyền CAN Bus được truyền theo kiểu vi sai Khi bị điều

khiển CAN_H>CAN_L, đường truyền sẽ rơi vào trạng thái “trội” (Dorminant State)

Và khi không bị điều khiển thì CAN_L <= CAN_H, đường truyền sẽ ở trạng thái

“Lan” (Recessive State) Ta mã hóa Dorminant State là bit 0, và Recessive State làbit 1 Điều này cho phép CAN bus truyền được dữ liệu đi xa hon mà không mat mát

cùng với cơ chế ưu tiên với các gói tin có ID thấp

E11) = trs2 =) IESt =Ì treo.

Hình 2.3 CAN Standard Data Frame

Trang 21

a Trường bắt đầu (Start of Frame — SOF)

Trường này sử dung | bit dữ liệu Ở trạng thái rỗi đường truyền sẽ ở trạng tháiRecessive Khi một node muốn gửi dit liệu, node đó sẽ gửi một bit Dorminant thông

báo trên đường CAN Bus.

b Trường tranh chấp (Arbitration Field)

Trường tranh chấp hay còn gọi trường ID (Identifier) Trường này sẽ xác địnhquyền ưu tiên của các gói tin Khi có nhiều gói tin được truyền cùng lúc, gói tin nào

có ID thấp hơn sẽ có độ ưu tiên cao hơn

- ID: (11 bit), giúp xác định độ ưu tiên của gói tin

- RTR: (1 bit) Remote transmission request dùng để xác định khung truyền

hiện tại có phải là Data Frame hay không Giá tri là 0 nếu là Data Frame

và 1 nếu là Remote Frame

c Trường điều khiển (Control Field)

Trường này chứa các bit để điều khiển việc nhận dữ liệu trên CAN bus

- IDE: (1 bit) Bit này dùng dé xác định khung truyền hiện tại theo định dạng

là standard hay extended 0 là standard va | là extended

- DLC: (4 bit) trường này dé xác định độ dai dữ liệu là bao nhiêu byte

d Trường dữ liệu (Data Field)

Trường này chứa dữ liệu của các gói tin tối đa là 8 bytes

e Trường CRC (Cyclic Redundancy Check)

Trường nay chứa dữ liệu CRC của khung truyền đảm bao dữ liệu nhận đượckhông bị sai sót.

f Trường kết thúc (EoF - End of Frame)

Trường này gồm 7 bit: tạo ra 1 thông báo kết thúc một khung truyền

Trang 22

2.1.3 Remote Frame

Khung truyền này về co bản giống với Data Frame tuy nhiên có hai điểm khác

biệt là bit RTR bằng 1 và trường dữ liệu trồng Khung truyền nay ding dé yêu cầu dữliệu Ngoài ra ở khung truyền này bit DLC dùng đề ám chỉ số bytes Data muốn nhận

2.2 Hệ điều hành thời gian thực CMSIS — RTOS2

2.2.1 Giới thiệu CMSIS — RTOS2

RTOS hay hệ điều hành thời gian thực thường được sử dụng trong các hệ thốngnhúng, vi điều khiển đề điều khiển các thiết bị có các yêu cầu cao về tính đa nhiệm

và tốc độ đáp ứng cao

CMSIS — RTOS [11] cung cấp các hàm giao diện RTOS được chuẩn hóa dùng

chung cho các dòng chip họ Arm Cortex M Từ đó giúp ta có thé tái sử dụng cácchương trình khi thay đổi các dòng chip khác CMSIS-RTOS cho phép ta dễ dàng

thay đổi lõi thời gian thực (Real Time Kernel) bên trong mà không phải thay đổi

chương trình quá nhiều như kiến trúc trong Hình 2.4 Trong đề tài này, nhóm sử dụngFreeRTOS [12] làm Real Time Kernel của CMSIS — RTOS.

Trang 23

2.2.2 Một số khái niệm trong RTOS.

- Kernel: Có nhiệm vụ quan lý và điều phối các Task Tất cả các sự kiện

như ngắt, Timer, quản lý bộ nhớ, đồng bộ, đều do Kernel quản lý như

mô hình thẻ hiện trong Hình 2.5

Services Objects

= Time

Events { \ Management

| Scheduler } Semaphore \ j Memory

Mutex we fh Management Message Passing ISR Support

một hoặc nhiều tác vụ do Kernel quản lý Trong một chương trình lớn có

thể có nhiều Thread Các Thread này do Kernel quản lý Thường mộtThread sẽ có các trạng thái và chuyền đổi như trong Hình 2.6:

o RUNNING: Thread đang được thực thi Mỗi lúc chỉ có một Thread

được thực thi.

o READY: Thread ở trạng thái sẵn sàng và đợi đến lượt hoạt động

Khi Thread đang ở trạng thái RUNNING chuyền sang trạng thái

BLOCKED hay bị hủy, thi Thread trạng thai READY có độ ưu tiên

cao nhất sẽ hoạt động

o BLOCKED: Ở trạng thái nay Threads bị chặn boi Threads có ưu

tiên cao hơn, đang đợi một sự kiện xảy ra, hoặc đã bị tạm dừng.

o TERMINATED: Thread được đặt vào trang thái này khi đã bị hủy

nhưng tat cả tai nguyên chưa được giải phóng

Trang 24

o INACTIVE: Thread ở trạng thái này chưa được khởi tạo hoặc khi

đã bị hủy và giải phóng tat cả tài nguyên

event occurs BLOCKED

terminate

INACTIVE / TERMINATED

Hình 2.6 Mô hình chuyền trạng thái các Threads

- Events Flags: Dùng đề đồng bộ các Threads Event Flags cung cấp một cơ

chế đợi và thông báo giữa các Threads Một Threads có thể đợi một sựkiện xảy ra (ví dụ các sự kiện: đã xử lý xong dữ liệu, tài nguyên đã cấpphát xong, ) từ các Threads khác như trong Hình 2.7 Events Flags sẽnhanh và ít tốn tài nguyên hơn khi dùng Semaphore

Trang 25

nguyên có thể được sử dụng liên tục và được tranh chấp bởi nhiều Threads

nhưng mỗi lần chỉ cho phép một Threads sử dụng (bộ nhớ, files, ) như

Semphore: như Mutex Semaphore dùng dé bảo vệ những tài nguyên chia

sẻ với nhau Khác với Mutex chỉ cho phép 1 Thread truy cập vào.

Semaphore có thể cho phép một số lượng giới hạn các Threads có thể truy

cập vào tài nguyên đó như thể hiện trong Hình 2.9

Trang 26

2.3.1 Tổng quan về MQTT

MQTT (Message Queuing Telemetry Transport) [13] là giao thức truyén tai

thông tin qua Internet theo mô hình publish/subscribe (cung cấp/ đăng ky) thường

được sử dụng trong các ứng dụng IoT, Automotive, logistics, [13] Ngoài ra MQTT

sử dụng băng thông thấp, có độ tin cậy cao ké cả trong những đường truyền không

ồn Do đó giao thức này phù hợp cho các ứng dụng IoT cũng như được sử dụng dé

điều phối các gói tin trong hệ thống

đến Server (Broker), thông qua giao thức TCP (Transmission Control Protocol)

Broker có nhiệm vụ điều phối các gói tin từ publisher đến các subscriber cần sử dụng[14] Mỗi gói tin được gửi dữ liệu (publish) đến một địa chỉ còn được gọi là Topic

Trang 27

Client đăng ký vào một Topic để nhận dữ liệu được gọi là Subscribe Một Client cóthể subscriber vào một hoặc nhiều Topics.

2.3.2 Kiến trúc MQTT

(Broker), Sessions, Subscription và Topics được thể hiện trong Hình 2.11

Kiến trúc mô hình MQTT

- MQTT Client (Publisher/Subscriber): Clients có thé đăng ky một hoặc

nhiều topics để nhận dữ liệu cũng như gửi dữ liệu vào một hoặc nhiều

topics khác nhau.

- MQTT Server (Broker): Broker nhận những thông tin subscribe

(Subscriptions) từ client, nhận thông điệp, chuyển những thông điệp đến

các Subscriber tương ứng dựa trên Subscriptions từ client.

- Topic: Topic là một hang đợi các gói tin dành cho publisher và subscriber.

Topic cho phép các Client trao đổi thông tin theo những ngữ nghĩa đượcđịnh sẵn

- Session: Một session là một kết nói từ Client đến Server Các giao tiếp

giữa client và server đều là | phân cua session.

Trang 28

- Subscription: Subscription là kết nối giữa client với một topic Khi đã

subscribe một topic, Client có thể nhận gửi dữ liều với topic đó

2.4 Phần cứng sử dụng

2.4.1 Vi điều khiển STM32F103C8T6

STM322 là một trong những dòng chip phé biến của ST với nhiều họ thông dụng

như F0,F1,F2,F3,F4 STM32F103 thuộc họ F1 với lõi là ARM COTEX M3 mạnh

mẽ STM32F103 là vi điều khiển 32 bit, tốc độ tối đa lên đến 72Mhz Giá thành cũngkhá rẻ so với các loại vi điều khiên có chức năng tương tự Mạch nạp cũng như công

cụ lập trình khá đa dạng và dé sử dụng Hình 2.12 Vi điều khiển STM32F103C8T6thé

hiện hình ảnh của chip vi điều khiển STM32F103 đã được đóng gói và phân phối trênthị trường.

Hình 2.12 Vi điều khiển STM32F103C8T6

2.4.2 Vi điều khiển ESP32

ESP32 là một vi điều khiển đa chức năng mạnh mẽ được phát triển bởi Espressif

Systems Được giới thiệu vào năm 2016, ESP32 là một phiên bản nâng cấp củaESP8266 ESP32 được thiết kế để cung cấp khả năng kết nói Wi-Fi và Bluetooth

đồng thời, mở ra nhiều cơ hội ứng dụng mới cho các dy án IoT Vi điều khiển này có

Trang 29

hai lõi xử lý Xtensa 32-bit, tốc độ xung nhịp lên đến 240 MHz, bộ nhớ flash tích hợp,

bộ nhớ SRAM và bộ chuyền đổi AD 12-bit Ngoài ra, nó hỗ trợ các giao thức và giaotiếp như UART, SPI, I2C và GPIO ESP32 có thé hoạt động như một điều khiển độclập hoặc được sử dụng như một vi xử lý phụ trợ kết hợp với các vi xử lý chính khácnhư Arduino hay Raspberry Pi Điều này cho phép nó linh hoạt trong việc xây dựng

các ứng dụng IoT từ đơn giản đến phức tạp Ngoài khả năng kết nối Wi-Fi vàBluetooth, ESP32 còn tích hợp một loạt các tính năng khác như hệ thống chạy thời

gian thực (RTOS), mã hóa/giải mã phần cứng, các chân đầu vào ADC (Analog toDigital Converter) để đo lường các tín hiệu analog, điều khiển độ sáng và cảm biếncảm ứng.

INA219 là một IC đo năng lượng tiện ích của hãng Texas Instruments Nó đượcthiết kế để đo dòng điện và điện áp của một nguồn điện, và cung cấp các thông số

chính xác về năng lượng tiêu thụ INA219 kết hợp chức năng đo điện áp, dòng điện

và công suất trong một chip duy nhất IC này sử dụng giao tiếp I2C dé truyền đữ liệu,

cho phép người dùng dễ dàng tích hợp và điều khiển nó với các vi xử lý và các viđiều khiển khác

Trang 30

e Do dòng điện: INA219 có thể đo dòng điện qua một nguồn điện với độ chính

xác cao, trong khoảng từ +320mA đến +3.2A, với độ phân giải 0.8mA

¢ Do điện áp: Nó cung cấp khả năng đo điện áp với độ chính xác cao, trong

khoảng từ OV đến 26V, với độ phân giải ImV

© _ Đo công suất: INA219 tính toán công suất tiêu thụ bằng cách nhân dòng điện

và điện áp và cung cấp giá trị công suất với độ phân giải 4mW

se Giao tiếp I2C: INA219 sử dung giao tiếp I2C dé truyền dé liệu, cho phép

người dùng dé dàng kết nối và điều khiển nó với các vi xử lý khác

¢ Bảo vệ năng lượng: IC này cung cấp các chức năng bảo vệ như bảo vệ quá

dòng điện, bảo vệ quá điện áp và bảo vệ nhiệt độ, giúp bảo vệ nguồn điện vàngăn chặn các sự cố có thể Xảy ra

2.4.4 Cảm biến IMU BNO055

Cảm biến IMU BNO055 là một cảm biến đa chức năng được phát triển bởi Bosch

Sensortec IMU là viết tắt của "Inertial Measurement Unit" (Đơn vị đo lường độnglực) BNO055 kết hợp các chức năng cảm biến gia tốc, con quay hồi chuyển va từ

trường trong một chip duy nhất BNO055 sử dụng công nghệ đo trực tiếp của Boschgọi là "Sensor Fusion" dé cung cấp dữ liệu về vị trí, hướng và chuyền động của một

vật thể trong không gian ba chiều Nó tích hợp một số cảm biến như gia tốc kế, con

Trang 31

quay hôi chuyền và từ trường, cùng với một bộ xử lý ARM Cortex-M0+ va các thuật

toán fusion thông minh đê xử lý dữ liệu từ các cảm biên này.

+Roll

Hình 2.15 Cảm biến IMU BNO055 2.4.5 Cảm biến Encoder

Cảm biến Encoder là một loại cảm biến được sử dụng dé đo lường vi tri, tốc độ

và hướng quay của một đối tượng Nó hoạt động bang cách tạo ra các xung đếm khi đối tượng hoặc trục quay đi chuyên Cảm biến Encoder thường được sử dụng trong các ứng dụng điều khién vị trí chính xác, như trong các may CNC, robot công nghiệp,

xe tự hành và hệ thống điều khiển động cơ Cảm biến Encoder cung cấp dữ liệu về vị

trí tương đối hoặc tuyệt đối của đối tượng, tốc độ quay và hướng quay Điều này cho

phép hệ thống điều khiển hoặc vi xử lý xác định và điều chỉnh vị trí chuyển động một cách chính xác Thông qua các tín hiệu xung, cảm biến Encoder có thé tích hợp với các vi điều khiển hoặc bộ đếm dé kiểm soát chính xác vị trí chuyển động của các hệ thong động co.

Trang 32

Thi aa |

ORDER HH

musi II itil

Hinh 2.16 Rotatry Encoder

2.4.6 Bộ điều khiển EZI Servo Plus R

Bộ điều khiển EZI Servo Plus R là một bộ điều khién dong servo cua hãng Elmo Motion Control Nó được thiết kế dé cung cap kha năng điều khiến chính xác và linh hoạt cho các hệ thống servo trong các ứng dụng công nghiệp và tự động hóa EZI Servo Plus R kết hợp tính năng của một bộ điều khiến servo truyền thống với kha năng lập trình cao và tích hợp mạnh mẽ Bộ điều khiển này sử dụng một loạt các thuật

toán điều khiến tiên tiễn dé đảm bảo độ chính xác và hiệu suất tối ưu trong các ứng

dụng đòi hỏi độ phan hôi nhanh và kiêm soát chính xác vi trí, toc độ và lực.

Trang 33

SSR, hay còn được gọi là Solid State Relay, là một loại thiết bị điện tử được sử

dụng đề điều khiển và cách ly mạch điện bằng cách sử dụng các thành phan bán dẫnthay vì các thành phần cơ học SSR không có bộ chuyển mạch cơ học như các relay

truyền thống, mà thay vào đó sử dụng các thành phần bán dẫn như transistor hoặcthyristor dé kiểm soát dong điện SSR được sử dung rộng rãi trong các ứng dụng công

nghiệp và tự động hóa, nơi cần điều khiển các tải điện như đèn, máy móc, motor và

các thiết bị điện khác SSR có thê điều khiển dòng điện AC hoặc DC và có khả năngcách ly galvanic giữa đầu vào và đầu ra, giúp đảm bảo an toàn và tránh nhiễu điện

Trang 34

trọng trong hệ thống giao tiếp CAN và được sử dụng rộng rãi trong các ứng dụng ô

tô, công nghiệp và tự động hóa.

Hình 2.19 IC CAN Transceiver MCP2551

MCP2551 là một IC hiệu SuẤt cao, cung cấp chức năng truyền và nhận dữ liệu

qua giao diện CAN Nó tuân thủ tiêu chuẩn CAN 2.0B và hỗ trợ tốc độ truyền đữ liệu

lên đến 1 Mbps IC này có khả năng chịu được các điện áp hoạt động rộng từ 4.5V

Ngày đăng: 02/10/2024, 03:23

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w