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 2LỜ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 3MỤ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 42.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 53.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 65.4 Hướng phát triển đề tài -:-:222222+v+rrtttttrrkxrrrrrrrrrrrkrrerree
Trang 7DANH 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 8Hì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 9DANH 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 10DANH 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 11TOM 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 12Chươ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 131.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 151.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 19Chươ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 21a 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 222.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 232.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 24o 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 25nguyê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 262.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 27Client đă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 29hai 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 30e 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 31quay 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 32Thi 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 33SSR, 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 34trọ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