You are on page 1of 30

Lập trình nhúng

Embedded programming

Chương 1

Giới thiệu

TS. Trần Thanh Hùng


Khoa Công nghệ, Đại học Cần Thơ
Email: tthung@ctu.edu.vn
Vị trí học phần trong chương trình đào tạo:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm2
Tại sao phải học học phần này?

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm3
Mục tiêu học phần:
Sau khi học xong học phần này, người học có
thể: Giới thiệu
học phần
1. Trình bày được các các bước thực hiện để Định nghĩa
đọc, điều khiển ngõ vào, ra
Ứng dụng hệ
2. Liệt kê được các bước khởi động timer để thống nhúng
đáp ứng thời gian thực Cách xây
3. Phân biệt được sự khác nhau giữa việc dựng CPU,
MCU
thực hiện chương trình bằng siêu vòng
Phần cứng và
lặp và bằng hệ điều hành nhúng và liệt kê phần mềm
được ưu khuyết điểm của chúng được sử dụng
4. Trình bày được các bước cài đặt hệ thống Cấu trúc
nhiều trạng thái phần mềm
Mục tiêu học phần:
Sau khi học xong học phần này, người học
có thể: Giới thiệu
học phần
5. Phân tích nhu cầu điều khiển, vẽ lưu đồ
Định nghĩa
và viết chương trình điều khiển
Ứng dụng hệ
6. Xác định, mô tả và giải quyết các vấn đề thống nhúng
kỹ thuật Cách xây
7. Phân tích vấn đề, tiến hành thí nghiệm, dựng CPU,
MCU
phân tích dữ liệu và diễn giải, đánh giá
kết quả Phần cứng và
phần mềm
8. Làm việc hiệu quả trong nhóm để giải được sử dụng
quyết vấn đề Cấu trúc
phần mềm5
Mục tiêu chương 1:
Sau khi học xong chương này, người
học có thể: Giới thiệu
học phần
1. Liệt kê được các mục tiêu khóa học Định nghĩa
2. Xác định các thành phần một hệ thống Ứng dụng hệ
nhúng thống nhúng
3. Giải thích tại sao Cortex-M3 và C được Cách xây
dựng CPU,
chọn để phát triển hệ thống nhúng MCU
4. Giải thích mối quan hệ giữa C, hợp ngữ và Phần cứng và
ngôn ngữ máy phần mềm
được sử dụng
5. Giải thích được tại sao phải dùng cấu trúc
Cấu trúc
siêu vòng lặp phần mềm6
1. Vi xử lý (Microprocessor):
Là một mạch điện tử thực hiện các lệnh của 1 chương
trình. Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
CPU = Central Processing Unit phần mềm7
2. Vi điều khiển (Microcontroller):
Linh kiện tích hợp, bao gồm CPU, ROM, RAM và các
thiết bị ngoại vi. Giới thiệu
học phần
Memory CPU I/O Định nghĩa
GPIO
Flash ROM
Ứng dụng hệ
Interfaces
UART
thống nhúng
Cortex-M0
I2C
50MHz
SPI
Cách xây
SRAM PWM dựng CPU,
ADC
MCU
Phần cứng và
phần mềm
MCU = MicroController Unit được sử dụng
Cấu trúc
phần mềm8
3. Hệ thống nhúng (embedded system):
Là một hệ thống máy tính được thiết kế cho
một ứng dụng hoặc một vài ứng dụng. Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm9
Ứng dụng của hệ thống nhúng:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm10
1. Hệ thống điện thoại di động, thông tin liên lạc:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm11
2. Ô tô, vận tải:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm12
3. Đồ gia dụng, nhà thông minh:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm13
4. Ứng dụng hàng không, vũ trụ:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm14
4. Ứng dụng hàng không, vũ trụ:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm15
5. Dụng cụ y tế:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm16
6. Lĩnh vực quân sự, quốc phòng:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm17
7. Lĩnh vực sản xuất:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm18
Cách xây dựng CPU, MCU, máy tính:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm19
Cách xây dựng CPU, MCU, máy
tính:
Lưu ý: Giới thiệu
✔ CPU / MCU chỉ có thể hiểu các học phần
chương trình bằng ngôn ngữ máy Định nghĩa
✔ Tất cả các chương trình cần Ứng dụng hệ
được dịch sang mã máy thống nhúng
Cách xây
✔ Cần một phần mềm dịch tốt: dịch dựng CPU,
đúng những gì người lập trình viết MCU
✔ Sức mạnh và bộ nhớ của MCU bị Phần cứng và
hạn chế: ngôn ngữ phải hiệu quả phần mềm
được sử dụng
✔ Để lập trình hệ thống nhúng, cần Cấu trúc
truy cập trực tiếp vào phần cứng phần mềm20
1. Chọn ngôn ngữ lập trình: C

Giới thiệu
học phần
• Là ngôn ngữ trung gian: Định nghĩa
- Cấp thấp: truy suất phần cứng Ứng dụng hệ
- Hỗ trợ hàm, thư viện thống nhúng
Cách xây
• Độc lập với vi điều khiển dựng CPU,
• Hiệu quả cao MCU
Phần cứng và
• Phổ biến phần mềm
• Dễ hiểu được sử dụng
• Có nhiều trình biên dịch tốt Cấu trúc
phần mềm21
2. Chọn vi điều khiển: ARM Cortex M

Giới thiệu
• Là kiến trúc được xử dụng phổ biến học phần
Định nghĩa
nhất
Ứng dụng hệ
thống nhúng
• Tiết kiệm năng lượng
Cách xây
dựng CPU,
• Hiệu năng tốt MCU
Phần cứng và
• Dễ phát triển hệ thống nhúng phần mềm
được sử dụng
• Có nhiều phiên bản để lựa chọn Cấu trúc
phần mềm22
2. Chọn vi điều khiển: ARM Cortex M

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
2019: trên 130 tỷ bộ xử lý ARM phần mềm
đã được sản xuất được sử dụng
(40% mobile / 5% home / 13%
enterprise / 42% embedded) Cấu trúc
phần mềm
(Đọc thêm: “ARM architecture” trên Wikipedia) 23
2. Chọn vi điều khiển: ARM Cortex M

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm24
3. Phần mềm hỗ trợ:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm25
3. Phần mềm hỗ trợ:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm26
3. Phần mềm hỗ trợ:

Giới thiệu
học phần
Định nghĩa
Ứng dụng hệ
thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm27
Cấu trúc siêu vòng lặp:
• Làm thế nào để thực hiện công việc X()?
Giới thiệu
void main (void) Begin
học phần
{ Định nghĩa
Khởi động; //Prepare for task X() Khởi động Ứng dụng hệ
while(1) //super loop thống nhúng
{ Cách xây
X(); //Perform task X() Thực hiện X() dựng CPU,
} MCU
} build Phần cứng và
debug phần mềm
• Ưu điểm? Đơn giản được sử dụng
test
maintain Cấu trúc
• Khuyết điểm? Thời gian không chính xác
phần mềm28
Làm thế nào để thực hiện công việc chậm lại?
Delay bằng phần mềm:
void loop_delay(void) Giới thiệu
{ unsigned int x; học phần
void main (void) for (x = 0; x <10000; x++); Định nghĩa
{ }
X_Init() ; //Prepare for Task X()
Ứng dụng hệ
void longer_loop_delay(void) thống nhúng
while(1) //super loop
{ unsigned int x, y; Cách xây
{ for (x = 0; x <10000; x++)
X(); //Perform task X()
dựng CPU,
for (y = 0; y <10000; y++); MCU
delay(); }
}
Phần cứng và
void delay(unsigned int ms) phần mềm
}
{ unsigned int x, y; được sử dụng
for (x = 0; x <= ms; x++) Cấu trúc
for (y = 0; y <= 120; y++);
}
phần mềm29
Tài liệu tham khảo:
Giới thiệu
[1] Embedded C học phần
[2] Reference Manual_STM32F10xxx Định nghĩa
Ứng dụng hệ
[3] Description of STM32F1 HAL and low-layer drivers thống nhúng
Cách xây
dựng CPU,
MCU
Phần cứng và
phần mềm
được sử dụng
Cấu trúc
phần mềm30

You might also like