1. Trang chủ
  2. » Giáo án - Bài giảng

Bài Giảng Hệ Nhúng ( Combo Full Slides 5 Chương )

333 1 0

Đ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 đề Bài Giảng Hệ Nhúng ( Combo Full Slides 5 Chương )
Trường học SoICT
Chuyên ngành Hệ Nhúng
Thể loại bài giảng
Năm xuất bản 2016
Định dạng
Số trang 333
Dung lượng 8,66 MB

Nội dung

Hệ nhúng Arm Linux 15T Trang 3 Giới thiệu môn họcHệ nhúng Thời lượng: 45 LT&BT + 15 TNYêu cầu kiến thức nền tảng: • Kiến trúc máy tính• Vi xử lý• Lập trình C Trang 4 CE Dept., SoICT

Trang 1

HỆ NHÚNG

Trang 2

CE Dept., SoICT 2016

Nội dung dự kiến

Chương 1 Tổng quan về hệ nhúng (3T)

Chương 2 Phần cứng hệ nhúng (6T)

Chương 3 Giới thiệu vi điều khiển (6T)

Chương 4 Lập trình vi điều khiển (12T)

Chương 5 Hệ nhúng Arm Linux (15T)

5

Trang 3

Giới thiệu môn học

 Hệ nhúng

 Thời lượng: 45 LT&BT + 15 TN

 Yêu cầu kiến thức nền tảng:

• Kiến trúc máy tính

• Vi xử lý

• Lập trình C

 Đánh giá: 30% QT + 70% CK

Trang 4

CE Dept., SoICT 2016

Mục tiêu môn học

 Nắm được kiến trúc tổng quan, đặc điểm và hoạt

động của một hệ nhúng.

 Biết thiết kế hệ nhúng cơ bản (nguyên lý, mạch)

 Nắm được kiến trúc vi điều khiển

 Biết lập trình vi điều khiển từ cơ bản đến nâng cao với các dòng vi điều khiển phổ biến.

 Nghiên cứu phát triển hệ nhúng ARM Linux với các giao tiếp vào ra cơ bản, nâng cao.

3

Trang 5

Tài liệu tham khảo

Books:

• Architecture and Programming of 8051 Microcontrollers, Milan Verle

• Embedded C, Micheal J.Pont, 2002

• Designing embedded hardware, John Catsoulis, 2005

• Introduction to Embedded Systems, Lee & Seshia, UC Berkeley, 2011

• Embedded Systems Architecture: A Comprehensive Guide for Engineers

and Programmers, Tammy Noergaard

• Linux Device Driver

• C++ GUI programming with QT

Trang 7

1.1 Giới thiệu về hệ nhúng

Hệ nhúng (Embedded System) ?

cơ khí và các thành phần khác để thực hiện một chức

(thường là vi điều khiển, vi xử lý, …) mà người sử dụng nhìn chung thường không nhận thức được đó là một hệ

thống dựa trên máy tính (Michael J Pont, Embedded

C)

Trang 9

Giới thiệu về hệ nhúng

 Sơ đồ khái quát của một hệ nhúng

 Các thành phần cơ bản tạo nên một hệ nhúng:

• Bộ vi xử lý

• Phần mềm trong bộ nhớ chính, có thể nằm trên cùng

một chip với bộ vi xử lý hoặc nằm ngoài

• Tất cả các hệ nhúng đều chứa một vài kiểu vào ra

Trang 10

CE Dept., SoICT 2016

Lĩnh vực ứng dụng

 Không thể kể hết:

• Mobile phones

• Automotive applications (in cars, aerospace, traffic…)

• Domestic appliances (including dishwashers,

televisions, washing machines, microwave ovens, video recorders, security systems, garage door controllers)

• Medical equipment (drug delivery systems, MRI

scanners)

• Industrial equipment

• v.v…

10

Trang 11

Ví dụ về hệ nhúng

 In Cars:

Trang 12

CE Dept., SoICT 2016

Ví dụ về hệ nhúng

 Consumer electronics, home electronics, …

12

Trang 14

CE Dept., SoICT 2016

Ví dụ về hệ nhúng

14

Chuột máy tính được trang bị

bộ vi điều khiển 8 bit

Trang 15

Ví dụ về hệ nhúng

Sony Aibo ERS-7 Robotic Dog

- Vi điều khiển 64 bit MIPS R7000

- Hệ điều hành Aperios Sony’s Real Time OS

Point of Sales System

- Vi xử lý Intel X86

- OS: Windows XP Embedded

Trang 16

CE Dept., SoICT 2016

Ví dụ về hệ nhúng

 KIT FriendlyARM micro2440

16

Trang 17

Ví dụ về hệ nhúng (Việt Nam)

Bkav SmartHome

- Hạ tầng mạng không dây chuẩn Zigbee

- Hệ thống điều khiển 3D

- Tiết kiệm điện năng

- Tự động hoàn toàn theo các kịch bản được thiết lập

Robot ToSy

-Vi xử lý hiệu năng cao -Trí tuệ nhân tạo

Trang 19

• Năng lượng tiêu thụ

 (3) Giới hạn về tài nguyên:

• Hiệu năng bộ vi xử lý

• Dung lượng bộ nhớ

Trang 20

• Xử lý tính toán đáp ứng thời gian thực (real time)

 (5) Thỏa mãn yêu cầu về:

Trang 22

CE Dept., SoICT 2016

1.3 Kiến trúc tổng quan hệ nhúng

 Sơ đồ phân lớp:

22

Trang 23

Kiến trúc tổng quan hệ nhúng

 Sơ đồ khối kiến trúc tổng quan hệ nhúng

Trang 24

• Cần giao tiếp với bộ nhớ (chứa chương trình, dữ

liệu), và thiết bị vào ra (giao tiếp với thế giới bên ngoài)

Trang 25

Vi điều khiển

 Microcontroller: (Bộ vi điều khiển)

• Chứa bộ vi xử lý, bộ nhớ, các cổng vào ra trên một chip đơn, mạch tích hợp

• Thường sử dụng trong các hệ nhúng

• Phạm vi rộng: AVRs, PICs, ARMs, …

• Kiến trúc: 8 bit, 16 bit, 32 bit, (64 bit)

• Bộ nhớ trong cùng chip hoặc phối ghép mở rộng

bên ngoài

 SoC (System-on-chip):

Trang 26

CE Dept., SoICT 2016

Bộ nhớ

 Bộ nhớ (Memory):

• RAM

• ROM, EPROM, EEROM (EEPROM)

• Flash (newest ROM technology, dominant), sử dụng rộng rãi trong vi điều khiển, hệ nhúng

26

Các loại bộ nhớ

Trang 27

Kiến trúc: Von Neumann, Havard

 Kiến trúc Von Neumann: Lệnh và dữ liệu chia sẻ trong

1 bộ nhớ (1 không gian địa chỉ)

 Kiến trúc Havard: Lệnh và dữ liệu lưu trữ trên 2 bộ

nhớ phân biệt (2 không gian địa chỉ phân biệt)

 Đối với bộ nhớ, không có sự khác biệt giữa lệnh và dữliệu (mà do CPU quyết định đối xử khi nhận về)

Trang 28

CE Dept., SoICT 2016

Không gian địa chỉ

 Không gian địa chỉ (address space):

• Không gian địa chỉ bộ nhớ

• Không gian địa chỉ cổng vào ra

 2 kiểu không gian địa chỉ vào ra:

28

Trang 30

CE Dept., SoICT 2016

Nội dung

Chương 1 Tổng quan về hệ nhúng

Chương 2 Thiết kế phần cứng hệ nhúng

Chương 3 Vi điều khiển

Chương 4 Lập trình vi điều khiển

Chương 5 Hệ nhúng Arm Linux

30

Trang 31

Chương 2 Thiết kế phần cứng hệ nhúng

 2.1 Thiết kế điện tử

 2.2 Các mạch chức năng cơ bản

 2.3 Các chuẩn giao tiếp, truyền thông

 2.4 Ghép nối và đo lường tín hiệu tương tự

Trang 33

2.1.1 Linh kiện điện tử

Các linh kiện điện tử:

Trang 35

 Đọc giá trị Through hole resistors

Trang 36

Thay đổi độ sáng

LED

Trang 37

Ký hiệu

Các loại tụ

Tích (charging) và phóng (discharging)

Trang 38

CE Dept., SoICT 2016

Capacitors

 Cách đọc giá trị

38

Trang 39

Ký hiệu

Surface mount Inductors

Trang 40

CE Dept., SoICT 2016

Transformers

40

Ký hiệu

Trang 42

(bridge rectifier)

Diodes Zener và Schotky

Trang 43

Ký hiệu

Trang 44

CE Dept., SoICT 2016

2.1.2 Các thiết bị trợ giúp

 Một số thiết bị:

• Đồng hồ vạn năng (Multimeter)

• Máy hiện sóng (Oscilloscope)

• Máy tạo tín hiệu (Function Generator)

• Bộ nguồn (Power Supply)

• Bộ hàn (Weller)

• Các dụng cụ (Tools)

44

Trang 45

 Đo lường các đại lượng vật lý: điện áp, dòng điện, điện trở, điện dung, điện cảm, đặc biệt là kiểm tra kết nối đường mạch (đo thông)

Trang 46

CE Dept., SoICT 2016

Oscilloscope

 Hiện thị dạng sóng tín hiệu (waveforms)

 Băng thông (bandwidth): 20Mhz, 100Mhz, …

Trang 47

Function Generator

 Máy tạo tín hiệu:

• Tùy chỉnh đại lượng tín hiệu: tần số, biên độ

• Dạng sóng tín hiệu: xung vuông, tam giác, sin

Trang 48

Nickel metal hydride (NiMH) Lead-based

Batteries & Acquy

Trang 49

Mỏ hàn (Weller)

 How to solder ?

Trang 51

2.1.3 Phần mềm thiết kế

 Phần mềm thiết kế, mô phỏng: Proteus

 Phần mềm thiết kế mạch nguyên lý, mạch in:

• Altium Designer/Protel DXP

• Orcad

Trang 52

CE Dept., SoICT 2016

Phần mềm mô phỏng Proteus

 Khả năng:

• Thiết kế mô phỏng sơ đồ nguyên lý

• Thư viện linh kiện: microcontrollers, logic gates,

resistor, capacitor, button, led, 7 seg, LCD, v.v…

• Mô phỏng nạp chương trình

• Chạy mô phỏng

 How to use ? (Youtube: Proteus tutorials)

52

Trang 53

Phần mềm mô phỏng Proteus

Trang 55

Thiết kế mạch in

 How to use ?

Trang 56

CE Dept., SoICT 2016

Thiết kế mạch in

 How to use ?

56

Trang 57

Ví dụ thiết kế

 Schematics:

Trang 58

CE Dept., SoICT 2016

Ví dụ thiết kế

 PCB

58

Trang 59

2.1.4 Tài liệu thiết kế

 Schematic, PCB

 Datasheet

 Application notes

Trang 60

CE Dept., SoICT 2016

2.2 Các mạch chức năng cơ bản

 2.2.1 Power Source (Mạch cấp nguồn)

 2.2.2 Clock Oscillator (Mạch dao động)

 2.2.3 Reset (Mạch khởi động lại)

 2.2.4 Programmers/Debugger (Mạch nạp)

 2.2.5 Các ghép nối cơ bản

60

Trang 64

CE Dept., SoICT 2016

2.2.2 Clock Oscillator

 Tạo xung nhịp đồng bộ cho các thành phần trong hệ thống (hoạt động ở nhiều tần số dao động khác nhau)

 Bộ dao động nội (Internal Osc.)

 Bộ dao động ngoài (External Osc.): Thường dùng thạch anh để cung cấp tín hiệu clock và ổn định tần số.

64

Trang 65

Clock Oscillator – Ví dụ

 Ví dụ mạch dao động ngoài cho Vi điều khiển

ATmega8 sử dụng thạch anh tần số 8MHz

Trang 66

CE Dept., SoICT 2016

2.3.3 Reset

 Reset ? Dừng hoạt động hệ thống và xóa các thanh ghi

 Tín hiệu reset:

• Từ mạch reset ngoài (chân MCLR, tích cực mức thấp)

• Từ mạch điều khiển logic bên trong (built-in)

66

Reset when Power on

 Chân MCLR (Master clear

reset) cần ở mức cao khi hệ

thống hoạt động

 Khi power on, hệ thống cần

một khoảng thời gian trễ (T

reset) trước khi khởi động

hoạt động của các thành

phần

Trang 67

 Black-out reset: Xảy ra khi power off

bình thường (no danger)

 Brown-out reset: Xảy ra khi điện áp

nguồn cấp giảm từ từ Một số mạch ngoại

vi dùng điện áp cao hơn CPU sẽ rơi vào

trạng thái «chập chờn» trong khi CPU vẫn

hoạt động  nguy hiểm cho hệ thống.

 Noise: Một loại brown-out reset đặc biệt

xảy ra trong môi trường công nghiệp

Black-out reset

Brown-out reset Noise

Trang 69

2.2.4 Programmers/Debuggers

 Nhiều chuẩn nạp: JTAG, ISP, …

 Đi kèm công cụ (programmer, debugger) và phụ thuộc các dòng vi điều khiển

AVRISP

ARM JTAG

Trang 71

Ghép nối Switch, Button

 Hiện tượng nảy phím

 Chống nảy phím bằng mạch RC

Trang 72

CE Dept., SoICT 2016

Ghép nối Optocoupler

 Cách li quang học

72

Trang 73

Ghép nối Relay

 Điều khiển đóng cắt Rơ-le

Nguyên lý hoạt động Cấu tạo Rơ-le

Trang 75

VOLTAGE DROP UD (V)

Trang 76

CE Dept., SoICT 2016

Ghép nối LED 7 thanh

 Led 7 thanh: nguyên lý gồm các thanh Led đơn

 Ghép nối điều khiển:

• Điều khiển trực tiếp mã

7 thanh

• Sử dụng bộ giải mã

BCD-7 thanh (BCD-7424BCD-7)

Trang 77

Ghép nối LED 7 thanh

 Điều khiển (trực tiếp) nhiều Led 7 segment

 Nguyên lý:

• Điều khiển chọn mở từng led

• Quét giá trị hiện thị cho từng led được chọn

Trang 78

CE Dept., SoICT 2016

 Các chân điều khiển chọn 7 seg: C7_1, C7_3

 Các chân điều khiển mã quét (mã chỉ thị 7

thanh trực tiếp): SEG_A, B, ….P

Led 7 thanh – Ví dụ Schematic

78

Trang 79

2.3 Các chuẩn giao tiếp, truyền thông

 2.3.1 Giao tiếp RS232

 2.3.2 Giao tiếp SPI

 2.3.3 Giao tiếp I2C

 2.3.4 Giao tiếp USB

Trang 81

RS232 – Ví dụ Schematic

 Mức điện áp đường truyền (-12V, +12V)

 Mức điện áp của MCU là TTL (0V-5V)

 2 kiểu:

• Sử dụng IC chuyển đổi (Max232)

• Ghép nối trực tiếp mức TTL

Trang 82

CE Dept., SoICT 2016

2.3.2 SPI

 SPI (Serial Peripheral Interface)

(synchronous and bidirectional)

 Sử dụng:

• Giao tiếp giữa MCU – MCUs (MCU=MicroController Unit)

• Giao tiếp giữa MCU – Devices (EEPROM, transceiver modules, …)

Trang 83

 Chuẩn giao thức như nhau nhưng đặc

tả có thể khác nhau tùy từng dòng

VĐK

 Ví dụ SPI trên PIC

 Mô hình 1 Master + multi Slaves

(PIC microcontroller) SDO = Serial Data Out SDI = Serial Data In SCK = Serial Clock

SS = Slave Select

Trang 85

2.3.3 I2C

 I2C (I 2 C) = Inter IC Bus

(~SPI, synchronous + bidirectional)

 Sử dụng: MCU-MCUs, smart peripheral

(temp sensor, real-time clock, …

Trang 86

CE Dept., SoICT 2016

I2C

 Ví dụ giao tiếp I2C: VĐK PIC16F giao tiếp I2C với EEPROM

(LC256), temperature/humidity sensors (HIH6131)

86

Trang 87

2.3.4 USB

 USB=Universal Serial Bus

 Giao tiếp nối tiếp đa năng

 Đường truyền tín hiệu vi sai

 Nhiều kiểu connectors:

Trang 89

2.4 Ghép nối đo lường tín hiệu tương tự

 Đo lường tín hiệu tương tự bằng ADC

 Sử dụng: giao tiếp với các cảm biến (sensors), biến trở (potentiometer), …

 2 kiểu:

• Dùng module ADC có sẵn của VĐK

• Ghép nối qua chip ADC ngoài

Trang 91

Ví dụ ghép nối ADC

Ví dụ ghép nối với chip ADC ngoài MCP3204 đo lường 4 kênh ADC

Trang 92

CE Dept., SoICT 2016

Nội dung

Chương 1 Tổng quan về hệ nhúng

Chương 2 Thiết kế phần cứng hệ nhúng

Chương 3 Vi điều khiển

Chương 4 Lập trình vi điều khiển

Chương 5 Hệ nhúng Arm Linux

92

Trang 93

Chương 3 Vi điều khiển

3.1 Tổng quan vi điều khiển

3.2 Kiến trúc vi điều khiển 8051

3.3 Vi điều khiển ARM

3.4 Vi điều khiển AVR

3.5 Vi điều khiển PIC

Trang 94

CE Dept., SoICT 2016

 Vi điều khiển (Microcontroller):

• Bao gồm cả CPU, bộ nhớ (ROM/EEROM, RAM), cổng vào ra

 Phân biệt với bộ vi xử lý (Microprocessor)

3.1 Tổng quan Vi điều khiển

94

Trang 96

 Mỗi vi điều khiển có một

hoặc nhiều thanh ghi

Trang 97

Các thành phần vi điều khiển (3)

Bộ tạo dao động (Oscillator)

 Cung cấp xung nhịp cho

được chia thành các bước,

tốn một hoặc vài chu kỳ

xung nhịp (khác nhau phụ

thuộc vào kiến trúc vi điều

khiển)

Trang 98

tăng mỗi khi có 1

xung vào Khi tràn

giá trị, một ngắt

được phát sinh

Trang 99

Các thành phần vi điều khiển (5)

Mạch điều khiển nguồn cấp (Power Supply Circuit)

• Một vi điều khiển có thể chứa nhiều mạch hoạt động ở các mức điện áp khác nhau.

• Khi điện áp nguồn cấp hạ thấp dưới ngưỡng tối thiểu

(thường do nhiễu điện) có thể gây mất ổn định hoạt động

• Vi điều khiển thường có mạch điều khiển khởi động nóng lại

(Brown out reset)

Reset pin

• Trong trường hợp không

sử dụng mạch brown out reset bên trong VĐK

thường dùng một mạch Reset ngoài kết nối đến

Trang 100

CE Dept., SoICT 2016

Các thành phần vi điều khiển (6)

Giao tiếp nối tiếp (Serial Communication)

 Hầu hết các VĐK được thiết kế có 1 hoặc vài chuẩn giao tiếp nối tiếp được xây dựng sẵn Các yếu tố quan trọng:

• Số lượng thiết bị có thể trao đổi dữ liệu (1-1, 1-n)

Trang 101

Các dòng vi điều khiển phổ biến

 Một số dòng vi điều khiển phổ biến hiện nay

• 8051 (AT89C51, AT89S51, AT89S52) (Intel)

• AVR (ATMEGA8, ATMEGA16…) (Atmel)

• PIC (PIC16F877A, PIC18F4550, PIC18F2550…)

(Microchip)

• ARM (ARM7, LPC, TMS, ARM9, ARM Cortex-M, ARM Cortex-A)

• …

Trang 103

3.2.1 Giới thiệu 8051

 Các hãng sản xuất vi điều khiển đã có thời gian dài cạnh tranh Rất nhiều chip mới xuất hiện trên thị trường với tần số hoạt

động cao hơn, nhiều bộ nhớ hơn, nâng cấp nhiều chức năng…

 Tuy nhiên, hầu hết các vi điều khiển có kiến trúc tương tự với

8051 (“8051 compatible”) Vì sao ?

 1980s, Intel giới thiệu dòng vi điều khiển đầu tiên MCS 051

Nhanh chóng chinh phục thế giới, trở thành một chuẩn cho vi điều khiển ngày nay.

 Lý do thành công của Intel 8051:

• Cấu hình phù hợp nhiều nhu cầu khác nhau của một số

lượng lớn người dùng.

• Lõi cơ bản phù hợp cho nhiều phần mềm đã phát triển.

• Một số lượng lớn các vi điều khiển đã được phát triển nhờ

Trang 105

Tập lệnh 8051

 Mỗi lệnh là một chuỗi bit nhị phân bộ xử lý hiểu để thực hiện

 Các lệnh được mô tả bằng ký hiệu gợi nhớ  các lệnh hợp ngữ (gắn với kiến trúc vi xử lý cụ thể)

 Ví dụ: Lệnh ADD A, #3Ah

 Khuôn dạng lệnh gồm: Mã thao tác + Tham chiếu toán hạng

• Mã thao tác (OpCode): Mã hóa cho thao tác lệnh tác động (WHAT ?)

• Tham chiếu toán hạng: Xác định nơi chứa toán hạng mà lệnh tác động (HOW ?)

0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0

3Ah

Mã thao tác Tham chiếu toán hạng

Trang 107

Tập lệnh 8051

Lệnh số học

ADD đích, nguồn Đích = đích + nguồn

ADDC đích, nguồn Đích = đích + nguồn + cờ nhớ

SUBB đích, nguồn Đích = đích – nguồn

Trang 108

CE Dept., SoICT 2016

Tập lệnh 8051

Lệnh chuyển dữ liệu

MOV đích, nguồn Đích = nguồn (Bộ nhớ trong)

MOVX đích, nguồn Đích = nguồn (Thao tác bộ nhớ

ngoài)

XCHD Tráo đổi dữ liệu ( 4 bit thấp)

108

Trang 110

JZ, JNZ, JB, JNB… Lệnh nhảy có điều kiện (kiểm tra

bit)

110

Trang 112

CE Dept., SoICT 2016

3.2.3 Tổ chức bộ nhớ

 ROM/EEPROM: Bộ nhớ chương trình, chứa chương trình điều khiển hoạt động (nạp firmware) (8051 4K ROM)

 RAM: Bộ nhớ dữ liệu, chứa dữ liệu và các thanh ghi SFRs phục

vụ hoạt động của CPU (8051 128B RAM)

Trang 113

Tổ chức bộ nhớ - RAM

 RAM: Thành phần block RAM (chứa dữ liệu tạm) + SFRs (làm việc với các phần cứng)

 Ghép nối mở rộng RAM

Trang 114

CE Dept., SoICT 2016

3.2.4 Các thanh ghi

 Thanh ghi: Lưu trữ địa chỉ hoặc dữ liệu phục vụ cho hoạt động của CPU

 Thanh ghi 8051: chủ yếu thanh ghi 8 bit

 Các thanh ghi chức năng đặc biệt (Special Function Registers – SFR):

• Thanh ghi A (Accumulator): Thanh chứa

• Thanh ghi B

• Các thanh ghi R (R0-R7): Các thanh ghi mục đích chung

• Thanh ghi từ trạng thái chương trình (Program Status

Word - PSW)

• Thanh ghi con trỏ dữ liệu (Data Pointer Register - DPTR)

• Thanh ghi con trỏ ngăn xếp (Stack Pointer - SP)

• Thanh ghi cổng vào ra: P0, P1, P2, P3

114

Trang 115

Các thanh ghi

 Ví dụ một số thanh ghi

Trang 116

• Bộ đếm (Counter): đếm xung

116

Trang 117

Các thanh ghi Counter/Timer

 Thanh ghi TCON

• TR1/TR0: bit khởi động/tắt bộ đếm/định thời

• TF1/TF0: cờ báo tràn bộ đếm/định thời

• IE1, IT1, IE0, IT0: liên quan tới ngắt phần cứng

ngoài

Trang 118

CE Dept., SoICT 2016

Các thanh ghi Counter/Timer

 Thanh ghi TMOD

118

Trang 119

Các thanh ghi Counter/Timer

 Thanh ghi giá trị Timer (Timer T0) 16 bit

 Gồm 2 thanh ghi 8 bit: TH0, TL0

 Công thức: TH0 × 256 + TL0 = T0

• Ví dụ: 3 × 256 + 232 = 1000

Trang 120

CE Dept., SoICT 2016

Counter/Timer

 Timer 0 Mode 1 (16 bit):

• Start from 0 to 65535 -> Timer Interrupt

• Clear to 0

120

Ngày đăng: 20/02/2024, 22:16