Chương 1.- -52- 52 SESE2EE9EE2E12E12E1211211211211211211211211 111. _ Giới thiệu và lý do chọn đề tài. Tinh hình nghiên cứu ngoài nO. Tinh hình nghiên cứu trong nue.
Lý do chọn đề tài. Tổng quan phương pháp thực hiện và mục tiêu dé tài. Giới thiệu về hệ thống các thiết bị IoTs. Giới thiệu về System-on-chip (SoC).---: 2: ©+5++2x++£x+zzxsrxrerxesred 7 Chương 2.
LOI XỬ LÝ ARM CORTEX-M0.-----© 2 2 ©5£+£+£+e£xe+zsvree 9 Qed. Lõi xử lý ARM Cortex-MO0 từ ARM DesignStart. Nested Vectored Interrupt ContrOÏÏer.Q TQ HH re. Serial Wire Debug (SW).-- LH HH HH HH ngư, 13 2.
SH TH HH HH kg 14 2.- án TT ng ngư 14 Chương 3. THIẾT KE HỆ THÓNG. Tổng quan hệ thống. FPGA System oo.
ccc cee cseeceeceeccseseecseseeessesaesseeeaeseeeeaeeagees 15 E9. Các thành phan giao tiếp với AHB-Lite Interface.G- -G S391 931 9 1 1911 vn ng rrn 18 3. AHB default sÏave. AHB slave multiplexer .- HH HH HH HH HH Hàng 21 3.
AHB to external SRAM Inf€TÍAC€. Các thành phần thuộc CMSDK APB sub-system. Cau chuyển đổi AHB sang APB. G Ăn nh nh ng Hàn nhiệt 27 3.- Ăn TH TH ngàng ngàn nh nệt 28 3.
APB dual tImeT.- - cv HH HH nh nh Hy 30 3.c c5 ng HH rn 32 3. APB slave IUX. APB test SÏaV€. HH ng TH TH HH nh tr 34 3.
Các thông tin khác về hệ thống. 5 (1E vn ng ng nàn 39 3. LH HH HH HT HH ng nh, 43 3. Interrupts Và ©V€II.Ă Ăn HT HH HH ky45 3.
HH TH TH TH ngự46 Chương 4. THỰC HIỆN KIEM TRA THIET KE BANG MÔ PHỎNG. Quy trình kiểm tra occ ccsessessessessessessessessessessessessessesscssessssseasesseasesees 47 ha. apb_muX_ f€SfS.
SG SH HH Hy 50 4. _ Thực hiện mô phỏng. Môi trường thực hiện mô phỏng. Bién dich vn.
Biên dich test COde€. Chạy mô phong ou. Kết quả mô phong veececceccccecscesscsessessessesssesessessessessesesssessessssessessssessessesseesess 58 =“¬DR 0 (6) 0 C0 .- CC CC cv ve 61 4. apb_muUX_ f€SfS.
dc kh HH HH TT TH TH Hy 74 4. ng kkvkv vế 76 4. HH HH» HH HH HH HH HH 83 Chương 5. THỰC HIỆN TONG HỢP VÀ ĐÁNH GIÁ THIET KÉ.
_ Thông tin về quá trình hiện thực thiết kế. SH HH TH TT HH nh 88 5. Kết quả tổng hợp.---:- + ++SESk‡EkEEESEEEEEEE1EE121121121121111 1. Analysis & Synth€SIS.
Timing AnaÌYSIS.-- G SH HH HH kg cry 93 5. Đánh giá kết quả. k1 1n TH HH HH rưn 95 5. So sánh và đánh giá.
S* 1S vn re 98 Chương 6. KET LUẬN VA HƯỚNG PHAT TRIỀN. Kết quả dat được. Kho khăn gặp phải.
Hướng phát triển.-----2¿©+©+++2+++E++SEE+SEESEEtEEkrrrkrrrkrrrrres 105 IV 10002909:730<4. 106 Phụ lục A: LÝ THUYÉT VE CHUAN MÃ HÓA ADVANCED ENCRYPTION SP. Quy trinh MA Oa. QUY trình g1ải mã.
TH ng ni, 109 DANH MỤC HÌNH Hình 2. G5 ng nh ng He 10 Hình 2.2: ARM Cortex-MO từ ARM DesignStart .- --- 555cc s+vsssereeres 11 Hình 3.-- ó5 + ki HH ng 15 I0) 20» s0. -- --- + 2c 3311831183911 911 11 91119 vn ng 18 Hình 3.4: AHB default SÏVe.-- -ó- G1 HH nh ng ng nh ni r 20 Hình 3.5: AHB slave muX.-- G- s HH TH TH TH HH tr 20 800165.7: AHB to external SRAM In(€rfAC€.8: CMSDK APB sub-sysSf€m. - - s1 ng ng 25 Hình 3.9: Cầu chuyền đổi AHB sang APB.--- 2-2 ©22+E+EEz+Eerxerrerrserxee 26 Hình 3.- - - c1 9v 1n TH HH kh 28 i06 060.12: APB UART ĐbuffGTINE.- 6 c1 2311211211 9119 119111011 ng nu ey 29 Hình 3.13: APB dual tÍImeT.ó- G6 c2 111911211 91191 1v ng nh ng nh ngờ 31 Hình 3.- 2G SG 12 1S TH ng ng ng 32 Hình 3.15: Sơ đồ hoạt động APB watchdog.16: APB slave ImuX.
- -G- G6 c1 ng ng nh nh Hy 33 Hinh 604.18: Chi tiết bên trong AES IP.---¿- 2 2 + E+EE+EE+EE+EEEEEEEESEErErrerreree 36 Hình 3.19: FSM quy trình hoạt động Wrapp€r. - - - ĂSS Si, 38 Hình 3.20: Bộ điều khiển tín hiệu clock và reset.21: Khối đồng bộ ngắt.----- 2-2 2 2£ E+SE+EE+EE£EEEEEEEEEEEEEEEEEErrrrrrerrree 46 Hình 4.1: Quy trình bài kiểm tra hellO.2: Quy trình bài kiểm tra đhry.-- 2-2: 2 2 £+EE+EE+EE2EE+E2EE+EEzEErEerrerreee 48 Hình 4.3: Quy trình bài kiểm tra tỉmer _f€S(S.-c- tt Set Set St SE EeEeEersrrrervre 49 Hình 4.4: Quy trình bài kiểm tra apb_mux_ teSts.5: Quy trình bài kiểm tra sleep_ demo.--2- 2-2 s+2x+2zx2zxvzzxzzsez 51 Hình 4.6: Quy trình bài kiểm tra dualtimer_dem0.7: Quy trình bài kiểm tra khối AES IP.8: Kết quả biên dịch RTL code trên Quartus .9: Kết quả biên dich RTL code trên Linux .----2- 2 22+sz2sz25£25+£‡ 56 Hình 4.10: Kết quả biên dịch bài kiểm tra hello.11: Quá trình chạy mô phỏng ở batch mode.-- -- «+ ««++s<++sex+sss 58 Hình 4.12: Biéu đồ dang sóng kết quả mô phỏng bài kiêm tra hello.13: Nhật ký quá trình mô phỏng bài kiểm tra hello.14: Biéu đồ dang sóng kết qua mô phỏng bài kiểm tra timer_driver_tests.15: Nhật ký quá trình mô phỏng bài kiểm tra timer_driver_tests (1) .16: Nhật ký quá trình mô phỏng bài kiểm tra timer_driver_tests (2) .17: Biéu đồ dạng sóng kết quả mô phỏng bài kiêm tra đhry.18: Nhật ký quá trình mô phỏng bài kiểm tra dhry.19: Biéu đồ dạng sóng kết quả mô phỏng bài kiểm tra timer_tests.20: Nhật ký quá trình mô phỏng bài kiểm tra timer _tests.21: Biểu đồ dạng sóng kết quả mô phỏng bài kiểm tra default_slaves_tests69 Hình 4.22: Nhật ký quá trình mô phỏng bài kiểm tra default_slaves_tests.23: Biéu đồ dạng sóng kết quả mô phỏng bài kiểm tra apb_mux_tests.24: Nhật ký quá trình mô phỏng bài kiểm tra apb_mux_tests.25: Biéu đồ dạng sóng kết quả mô phỏng bài kiểm tra watchdog_ demo .26: Nhật ký quá trình mô phỏng bài kiểm tra watchdog_ đemo.27: Biêu đồ dang sóng kết quả mô phỏng bài kiêm tra sleep_demo.28: Nhật ký quá trình mô phỏng bài kiểm tra sleep_ demo.29: Biéu đồ dạng sóng kết quả mô phỏng bài kiểm tra self_reset_demo .30: Nhật ký quá trình mô phỏng bài kiểm tra self_reset_demo.31: Biéu đồ dang sóng kết quả mô phỏng bài kiểm tra dualtimer_demo .32: Nhật ký quá trình mô phỏng bài kiểm tra dualtimer_demo (1) .33: Nhật ký quá trình mô phỏng bài kiểm tra dualtimer_demo (2) .34: Biéu đồ dạng sóng kết quả mô phỏng bài kiểm tra đesigntest_m0.35: Nhật ký quá trình mô phỏng bài kiểm tra designtest_m0 (1) .36: Nhật ký quá trình mô phỏng bài kiểm tra designtest_m0 (2) .37: Biéu đồ dạng sóng kết qua mô phỏng khối AES IP.38: Nhật ký quá trình mô phỏng khối AES IP.39: Biểu đồ dạng sóng kết quả mô phỏng khối wrapper.40: Kết quả mã hóa trên Web .------- +: 2 ++S£+E++E++E++E2EE+Ezrerrerrerreee 85 Hình 4.41: Kết quả giải mã trên web.---¿- 5: ©2+¿©++2E++EE+2EEESEEESrkesrxrrrrerrree 86 Hình 5.1: Kết quả báo cáo Resource Usage Summary cua Expected system.2: Két quả báo cáo DSP Block Usage Summary của Expected system.3: Kết quả báo cáo General Register Statistics của Expected system.4: Kết quả báo cáo Resource Usage Summary của FPGA system.5: Kết qua báo cáo General Register Statistics của FPGA system.6: Kết qua báo cáo Resource Usage Summary của khối AES IP.7: Kết quả báo cáo General Register Statistics của khối AES IP.1: Quy trình mã hóa.2: Quy trình 914i mã. ng ng ng ngư 109 DANH MUC BANG Bang 2.1: Các thanh ghi đặc biệt cho cấu hình ngắt.1: Các tín hiệu (khác AHB) của khối System Controller.2: M6 ta tin hid AES 0) 1111 .3: Mô tả các thanh ghi chuyên dụng của AES IP.5: CMSDK APB sub-system memory map.- - 5 55+ ss+s++seessess 41 Bang 3.6: FPGA APB sub-system MeMOTY IN4D.- s5 5+5 + £+sv+seeeesees 42 Bang 3. cE1ecreu45 Bang 5.1: Các loại báo cáo của công đoạn Analysis & Synthesis trên Quartus.2: Kết quả báo cáo Fmax của Expected system.3: Kết quả báo cáo Setup Summary của Expected system.4: Kết quả báo cáo Hold Summary của Expected system.5: Kết quả báo cáo Fax của FPGA system.----¿-+©cs+©5+ccscee: 97 Bang 5.6: Kết quả báo cáo Fmax Summary của khối AES IP.7: So sánh kết quả Resource Usage Summary .8: So sánh kết qua General Register Statistics .9: So sánh kết quả FimaX.- ¿2+ SE SSSE‡EE£EEEEEEEEEEEEEEEEEEEEEEkrrkrrerree 100 Bang 5.10: So sánh Fmax đề tài từ hai khóa luận.--- 2-2-2 s+5++sz+szz£zzss 102 DANH MỤC TU VIET TAT loTs Internet of Things AES Advanced Encryption Standard CMSDK Cortex-M System Design Kit RFID Radio Frequency Identification IP Intellectual Property SoC System-on-chip IC Integrated Circuit GPU Graphic Processing Unit AI Artificial Intelligence WFI Wait For Interrupt WFE Wait For Event NVIC Nested Vectored Interrupt Controller EDA Electronic Design Automation FPGA Field Programmable Gate Array WIC Wakeup Interrupt Controller JTAG Joint Test Action Group NMI NonMaskable Interrupt SWD Serial Wire Debug SWDIO Serial Wire Data Input/Output SWCLK Serial Wire Clock AHB Advanced High-performance Bus UART Universal Asynchronous Receiver Transmitter SPI Serial Peripheral Interface I2C Inter-Integrated Circuit GPIO General Purpose I/O APB Advanced Peripheral Bus PMU Power Management Unit ECB Electronic Codebook FRCs Free-Running Counters FSM Finite State Machine SRAM Static Random Access Memory CTR Counter Mode IRQ Interrupt Request MTI Mentor ModelSim DS-5 Arm Development Studio 5 MDK Keil Microcontroller Development Kit ARM GCC GNU Tools for Arm Embedded Processors RTL Register-Transfer Level LE Logic Element SOPC Statement of Pins and Connections SOF Standard Output Format DSP Digital Signal Processsing ALMs Adaptive Logic Modules LUT Lookup Table MLAB Memory LAB PLLs Phase-Locked Loops NIST National Institute of Standards and Technology FIPS Federal Information Processing Standards S-box Substitution Box RISC Reduced Instruction Set Computer LSB Least Significant Bit MSB Most Gignificant Bit TOM TAT KHÓA LUẬN Quá trình số hóa mọi thứ đang diễn ra dẫn đến sự phát triển rất nhanh chóng của các thiết bị điện tử với một khái niệm mang tên Internet of Things (IoTs) — mạng kết nối tat cả mọi vat.
Dé đảm bảo cho sự hình thành và phát triển đó thi sự quan tâm bảo mật cho dữ liệu lưu thông trong mạng lưới đó là một trong những việc làm quan trọng cốt lõi. Khóa luận lần này hướng đến giải quyết bài toán xây dựng cơ chế bảo mật thông tin và phòng chống tan công trong lĩnh vực IoTs với giải thuật mã hóa được chọn là Advanced Encryption Standard với độ rộng khóa 128 bit (AES-128) vi tính phố biến của nó trong ứng dụng IoTs bằng một vi điều khiển 32-bit dựa trên lõi xử ly ARM Cortex-MO0 có tích hợp bộ mã hóa phần cứng theo chuẩn được chọn kèm theo các ngoại vi đơn giản khác. Việc thực hiện khóa luận gồm ba phần chính là nghiên cứu, thiết kế và cuối cùng là mô phỏng chức năng trên công cụ phần mềm nhằm kiểm tra tính đúng đắn về mặt chức năng. Hệ thống phần cứng và phần mềm sẽ được xây dựng dựa trên hệ thống mau từ Cortex-M System Design Kit (CMSDK) của Arm DesignStart Eval.
Các công cụ phần mềm hỗ trợ bao gồm Quartus Prime Lite Edition 23.1 và Xilinx Vivado 2023.2 cho thiết kế phần cứng, chương trình phần mềm được biên dịch bằng GNU Tools for Arm Embedded Processors (Arm GCC) và kết quả cuối cùng được mô phỏng trên Cadence NC Verilog. Kết quả đã đạt được là một vi điều khiển đơn giản lấy lõi xử lý ARM Cortex- M0 làm đơn vị xử lý chính có tích hợp khối mã hóa phần cứng AES IP vào hệ thống bus ngoại vi APB đi kèm với các ngoại vi hỗ trợ ứng dụng IoTs trong vi điều khiển như GPIO, I2C, SPI, UART, Timer/Watchdog, bộ xử lý ngắt, debug.