Tải bản đầy đủ (.docx) (30 trang)

Cảnh báo nhiệt độ từ xa qua RF“

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (838.97 KB, 30 trang )

Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
Bộ Thông Tin Và Truyền Thông
Học Viện Công Nghệ Bưu Chính Viễn Thông
…………………………………….

ĐỒ ÁN
THIẾT KẾ HỆ THỐNG NHÚNG
Đề tài : “ Cảnh báo nhiệt độ từ xa qua RF“

Người hướng dẫn : TS. Nguyễn Ngọc Minh
Nhóm thực hiện : 13
Sinh viên :
Lê Ngọc Sơn
Lê Ngọc Tuấn
Hoàng Quốc Hưng
Nguyễn Duy Mạnh
Lớp :
D11XLTH
Hệ :
Đại học chính quy

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG

LỜI CẢM ƠN
Được sự đồng ý của Thầy giáo hướng dẫn TS. Nguyễn Ngọc
Minh , chúng em đã thực hiện đề án “ Cảnh Báo Nhiệt Độ Từ Xa qua
RF “ .
Để hoàn thành bài báo cáo này , chúng em xin chân thành cảm ơn


thầy giáo đã tận tình hướng dẫn , giảng dạy trong suốt quá trình học tập ,
nghiên cứu và rèn luyện ở trường Học Viện Công Nghệ Bưu Chính Viễn
Thông .
Mặc dù đã có nhiều cố gắng để thực hiện đề tài một cách hoàn
chỉnh nhất . Song do buổi đầu mới làm quen với công tác nghiên cứu
khoa học , tiếp cận tri thức mới với các tài liệu có hạn nên không thể
tránh khỏi những thiếu sót nhất định mà bản thân chưa thấy được .
Chúng em rất mong được sự góp ý của quý Thầy và các bạn đồng học để
bài báo cáo được hoàn chỉnh hơn .
Chúng em xin chân thành cảm ơn !

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG

Chương I :Đặt Vấn Đề
1. Lời mở đầu

Ngày nay với những ứng dụng khoa học tiên tiến, thế giới của chúng ta ngày một
hiện đại và văn minh hơn. Sự phát triển của kĩ thuật điện tử đã tạo ra hàng loạt những
thiết bị với sự chính xác cao, tốc độ nhanh, gọn nhẹ đã đóng vai trò vô cùng quan trọng
trong cuộc sống của con người, là chìa khóa đi vào công nghệ hiện đại. Máy móc dần
đang thay thế sức lao động của con người, tự động hóa, điều khiển đóng vai trò vô cùng
quan trọng trong công nghiệp, quản lí.
Điện tử đang trở thành một ngành khoa học đa nhiệm vụ. Điện tử đã đang và không
ngừng đáp ứng được nhu cầu của các ngành nông- lâm- ngư nghiệp đến các nhu cầu
trong cuộc sống.
Một trong những ứng dụng quan trọng của công nghệ Điện tử là kỹ thuật điều khiển
từ xa. Nó đã góp phần rất lớn trong việc điều khiển các thiết bị phục vụ nhu cầu của sản

xuất.
Xuất phát từ ứng dụng trên, chúng em đã chọn đề tài “ Thiết kế hệ thống cảnh báo
nhiệt độ từ xa qua RF ”
2. Nhiệm Vụ
-Tìm hiểu tổng quan về module RF , KIT … và cơ chế hoạt động.
-Tìm hiểu phần mềm Keil C, Altium.
-Lập sơ đồ khối.
-Đưa ra nguyên tắc hoạt động của các khối và các linh kiện sẽ sử dụng để thiết kế mạch
phù hợp với yêu cầu từng khối.
-Thực hiện viết code.
-Thực hiện test.
-Ráp mạch và kiểm tra sản phẩm có đạt yêu cầu đưa ra không.
-Hoàn thành sản phẩm hoàn chỉnh.
-Hoàn thành báo cáo.

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
3. Mục Tiêu
- Hiểu được nguyên tắc hoạt động của các khối.
-Phát triển đề tài ứng dụng được vào trong cuộc sống.

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG

CHƯƠNG II: CƠ SỞ LÍ THUYẾT
A. về RF nRF24L01

1 Giới thiệu về sóng RF.
Trong một phiên truyền thông, vì tận cùng bản chất của dữ liệu bao gồm các bit 0 và 1, bên
phát dữ liệu cần có một cách thức để gửi các bit 0 và 1 để gửi cho bên nhận. Một tín hiệu xoay
chiều hay một chiều tự nó sẽ không thực hiện tác vụ này. Tuy nhiên, nếu một tín hiệu có thay đổi
và có dao động, dù chỉ một ít, sự thay đổi này sẽ giúp phân biệt bit 0 và bit 1. Lúc đó, dữ liệu cần
truyền sẽ có thể gửi và nhận dữ liệu thành công dựa vào sự thay đổi của tín hiệu. Dạng tín hiệu
điều chế còn gọi là sóng mang. Có ba thành phần của dạng sóng có thể tạo ra sóng mang, đó là
biên độ, tần số, và pha. Tất cả các dạng truyền thông dùng sóng vô tuyến đều dùng vài dạng điều
chế để truyền dữ liệu. Để mã hóa dữ liệu vào trong một tín hiệu qua sóng AM/FM, điện thoại di
động, truyền hình vệ tinh, ta phải thực hiện một vài kiểu điều chế trong sóng vô tuyến đang
truyền.
1.1 Module RF nRF24L01

NRF24L01 được thiết kế để cài đặt và hoạt động dựa trên giao tiếp SPI (Serial
Peripheral Interface). Do đó các thiết lập của NRF24L01 được lưu trong các thanh ghi
(Register). Các thanh ghi này cho phép người lập trình có khả năng thay đổi các thông số,
chế độ hoạt động hệ thống khi cấu hình theo mục đích riêng của người dùng.
Một số thông số quan trọng của NRF24L01 bao gồm:
Tần số Radio:
• Băng tần quốc tế 2.4 GHz ISM (Sử dụng tự do mà không phải xin phép)
• 126 kênh RF
• GFSK module
• Kênh 1 MHz không chồng lấn cho tốc độ truyền 1 Mbps
• Kênh 2 MHz không chồng lấn cho tốc độ truyền 2 Mbps
Bộ truyền tín hiệu:
• Năng lượng ra khả trình: 0, -6, -12 và -18 dBm
• Dòng ra 11.3 mA khi năng lượng ra là 0 dBm

Bộ nhận tín hiệu:





Bộ lọc kênh tích hợp
Dòng ra 12.4 mA ở tốc độ 2 Mbps
Độ nhạy -85 dBm ở tốc độ 2 Mbps

Giao tiếp:




4 pins SPI cứng (hardware SPI)
Tần số hoạt động tối đa 8 MHz
3 bộ đệm dữ liệu RF 32 bytes FIFOs

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG

Hình 1.1 Sơ đồ kết nối vi điều khiển

Quản lý năng lượng:
• Dải điện áp đầu vào từ 1.9 – 3.6 v.
1.2 Chế độ hoạt động

NRF24L01 có 4 chế độ hoạt động:
-Power Down Mode: Ở chế độ này NRF24L01 không hoạt động để giảm tối đa dòng
tiêu thụ hệ thống. Để cấu hình chế độ này cần thiết lập bit PWR_UP = 0 trong thanh ghi

CONFIG.
-Standby Mode: Đây là chế độ chờ. Bao gồm 2 chế độ Standby-I và Standby-II:
+Standby-I: Tối thiểu hóa dòng tiêu thụ trung bình trong thời gian khởi
động.
+Standby-II: Chế độ này được kích hoạt khi cần thêm thời gian upload
gói dữ liệu tx packet lên bộ đệm FIFO (TX-FIFO) để truyền dữ liệu đi. Tx
FIFO lúc này trống không có dữ liệu gửi đi.
-TX Mode: Chế độ truyền dữ liệu đi. Để vào chế độ này cần để bit PWR_UP,
PRIM_TX = 1 và chân CE cấu hình mức cao. Chế độ TX Mode không hoạt động quá
4ms một phiên hoạt động. TX Mode hoạt động cho phép đẩy dữ liệu lên TX FIFO để
truyền cho bên nhận.
-RX Mode: Chế độ nhận dữ liệu đến. Để vào chế độ này cần đặt bit PWR_UP,
PRIM_RX = 1 và chân CE cấu hình mức cao. Trong chế độ RX bên nhận giải điều chế
tín hiệu từ kênh RF, liên tục gửi dữ liệu đã tách sóng đến bên nhận. Hệ thống liên tục tìm
gói tin phù hợp. Nếu gói tin đúng địa chị và phù hợp mã kiểm tra CRC, gói payload chứa
gói tin phù hợp sẽ được đưa vào khe trống trên bộ đệm RX. Nếu bộ đệm RX đã đầy thì
gói tin sẽ bị loại bỏ.

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG

Hình 1.2 Module NRF24L01

1.3 Sơ đồ chân của chip nRF24L01

Hình 1.3 Sơ đồ chân nRF24L01

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng



Đồ án THIẾT KẾ HỆ THỐNG NHÚNG

Bảng 1.1: Chú giải sơ đồ chân nRF24L01
P

Tên
Chân

Loại tín
hiệu

Chú giải

1

CE

Digital
input

Chân Enable kích hoạt chế độ RX hoặc TX

2

CSN

Digital
input


Chọn chip SPI

3

SCK

Digital
input

SPI Clock

4

MOSI

Digital
input

SPI chủ gửi , tớ nhận dữ liệu

5

MISO

Digital
input

SPI chủ nhận , tớ gửi dữ liệu


6

IRQ

Digital
input

Ngắt cứng . kích hoạt thấp

7

VDD

Power

8

VSS

Power

9

XC2

Analog
Output

Thạch anh


1

XC1

Analog
Input

Thạch anh

1

VDD_
PA

Power
Output

1

ANT1

RF

Kết nối anten1

1

ANT2

RF


Kết nối anten2

1

VSS

Power

Chân đất (0v)

1

VDD

Power

in

0
1

Nguồn cung cấp từ +1,9v đên +3,6v , một
chiều
Chân đất( 0v)

Nguồn ra 1,8 cung cấp cho các khối nội bộ
trong nrf

2

3
4
5

Nguồn cung cấp từ +1.9v đến +3.6v, một
chiều

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
1

IREF

Anlog
Input

1

VSS

Power

1

VDD

Power


1

DVD
D

Power
Output

2

VSS

Power

6

Chân tham chiếu. Nối với một điện trở
22KΩ xuống đất.
Chân đất (0v)

7
8
9

Nguồn cung cấp từ +1.9v đên +3.6v, một
chiều.
Nguồn số nội bộ
Chân đất (0v)

0

1.4 Cách thức sử dụng của nRF24L01
Cách thức sử dụng và kết nối:

Modul nRF24L01 hoạt động ở tần số sóng ngắn 2.4G nên Modul này khả năng
truyền dữ liệu tốc độ cao và truyền nhận dữ liệu trong điều kiện môi trường có vật cản.
Modul nRF24L01 có 126 kênh truyền. Điều này giúp ta có thể truyền nhận dữ liệu
trên nhiều kênh khác nhau.
Modul có khả năng thay đổi công suất phát bằng chương trình, điều này giúp nó có
thể hoạt động trong chế độ tiết kiệm năng lượng.
Chú ý: Điện áp cung cấp cho Module là 1.9V và 3.6V. Điện áp thường cung cấp là
3.3V. Nhưng các chân IO tương thích với chuẩn 5V. Điều này giúp nó giao tiếp rộng rãi
với các dòng vi điều khiển.
1.5 Một số ứng dụng của nRF24L01

-Thiết bị ngoại vi điều khiển từ xa máy tính
-Game pad và key pad không dây
-Robot điều khiển từ xa
-Thu phát radio khoảng cách ngắn

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG

B. Về ds18b20
I.

Tổng quan
DS18B20 là IC cảm biến nhiệt độ, chỉ bao gồm 3 chân, đóng gói dạng TO92 3 chân nhỏ gọn.


Đặc điểm chính của DS18B20 như sau:
+ Lấy nhiệt độ theo giao thức 1 dây (1wire)
+ Cung cấp nhiệt độ với độ phân giải config 9,10,11,12 bit, tùy theo sử dụng. Trong
trường hợp không config thì nó tự động ở chế độ 12 bit.
+Thời gian chuyển đổi nhiệt độ tối đa là 750ms cho mã hóa 12 bit
+Có thể đo nhiệt độ trong khoảng -55 -> +125°C. Với khoảng nhiệt độ là -10°C to +85°C
thì độ chính xác ±0.5°C,±0.25°C ,±0.125°C,±0.0625°C. theo số bít config.
+ Có chức năng cảnh báo nhiệt khi nhiệt độ vượt ngưỡng cho phép. Người dùng có thể
lập trình chức năng này cho DS18B20. Bộ nhớ nhiệt độ cảnh báo không bị mất khi mất
nguồn vì nó có một mã định danh duy nhất 64 bit chứa trong bộ nhớ ROM trên chip (on
chip), giá trị nhị phân được khắc bằng tia laze.
+ Cảm biến nhiệt độ DS18B20 có mã nhận diện lên đến 64-bit, vì vậy bạn có thể
kiểm tra nhiệt độ với nhiều IC DS18B20 mà chỉ dùng 1 dây dẫn duy nhất để giao tiếp với
các
IC
này.
Với DS18B20 bạn hoàn toàn có thể tạo cho mình mạch cảm biến nhiệt độ theo ý muốn.
+ Điện áp sử dụng : 3 – 5.5 V
+ Dòng tiêu thụ tại chế độ nghỉ rất nhỏ.
Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
II: Lấy nhiệt độ với ds18b20
a. Tìm hiểu về các lệnh ROM liên quan đến DS18b20
- READ ROM (33h)
Cho phép đọc ra 8 byte mã đã khắc bằng laser trên ROM, bao gồm: 8 bit mã định tên
linh kiện (10h), 48 bit số xuất xưởng, 8 bit kiểm tra CRC. Lệnh này chỉ dùng khi trên
bus có 1 cảm biến DS1820, nếu không sẽ xảy ra xung đột trên bus do tất cả các thiết
bị tớ cùng đáp ứng.

- MATCH ROM (55h)
Lệnh này được gửi đi cùng với 64 bit ROM tiếp theo, cho phép bộ điều khiển bus
chọn ra chỉ một cảm biến DS1820 cụ thể khi trên bus có nhiều cảm biến DS1820 cùng
nối vào. Chỉ có DS1820 nào có 64 bit trên ROM trung khớp với chuỗi 64 bit vừa
được gửi tới mới đáp ứng lại các lệnh về bộ nhớ tiếp theo. Còn các cảm biến DS1820
có 64 bit ROM không trùng khớp sẽ tiếp tục chờ một xung reset. Lệnh này được sử
dụng cả trong trường hợp có một cảm biến một dây, cả trong trường hợp có nhiều cảm
biến một dây.
- SKIP ROM (CCh)
Lệnh này cho phép thiết bị điều khiển truy nhập thẳng đến các lệnh bộ nhớ của
DS1820 mà không cần gửi chuỗi mã 64 bit ROM. Như vậy sẽ tiết kiệm được thời
gian chờ đợi nhưng chỉ mang hiệu quả khi chỉ có một cảm biến.
- SEARCH ROM (F0h)
Lệnh này cho phép bộ điều khiển bus có thể dò tìm được số lượng thành viên tớ đang
được đấu vào bus và các giá trị cụ thể trong 64 bit ROM của chúng bằng một chu
trình dò tìm.
- ALARM SEARCH (ECh)

Tiến trình của lệnh này giống hệt như lệnh Search ROM, nhưng cảm biến DS1820 chỉ
đáp ứng lệnh này khi xuất hiện điều kiện cảnh báo trong phép đo nhiệt độ cuối cùng.
Điều kiện cảnh báo ở đây được định nghĩa là giá trị nhiệt độ đo được lớn hơn giá trị
TH và nhỏ hơn giá trị TL là hai giá trị nhiệt độ cao nhất và nhiệt độ thấp nhất đã được
đặt trên thanh ghi trong bộ nhớ của cảm biến.

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
Sau khi thiết bị chủ (thường là một vi điều khiển) sử dụng các lệnh ROM để định địa
chỉ cho các cảm biến một dây đang được đấu vào bus, thiết bị chủ sẽ đưa ra các lệnh

chức năng DS1820. Bằng các lệnh chức năng thiết bị chủ có thể đọc ra và ghi vào bộ
nhớ nháp (scratchpath) của cảm biến DS1820. khởi tạo quá trình chuyển đổi giá trị
nhiệt độ đo được và xác định chế độ cung cấp điện áp nguồn. Các lệnh chức năng có
thể được mô tả ngắn gọn như sau:
- WRITE SCRATCHPAD (4Eh)
Lệnh này cho phép ghi 2 byte dữ liệu vào bộ nhớ nháp của DS1820. Byte đầu tiên
được ghi vào thanh ghi TH (byte 2 của bộ nhớ nháp) còn byte thứ hai được ghi vào
thanh ghi TL (byte 3 của bộ nhớ nháp). Dữ liệu truyền theo trình tự đầu tiên là bit có ý
nghĩa nhất và kế tiếp là những bit có ý nghĩa giảm dần. Cả hai byte này phải được ghi
trước khi thiết bị chủ xuất ra một xung reset hoặc khi có dữ liệu khác xuất hiện.
- READ SCRATCHPAD (BEh)
Lệnh này cho phép thiết bị chủ đọc nội dung bộ nhớ nháp. Quá trình đọc bắt đầu từ
bit có ý nghĩa nhấy của byte 0 và tiếp tục cho đến byte rhứ 9 (byte 8 - CRC). Thiết bị
chủ có thể xuất ra một xung reset để làm dừng quá trình đọc bất kỳ lúc nào nếu như
chỉ có một phần của dữ liệu trên bộ nhớ nháp cần được đọc.
- COPYSCRATCHPAD (48h)
Lệnh này copy nội dung của hai thanh ghi TH và TL (byte 2 và byte 3) vào bộ nhớ
EEPROM. Nếu cảm biến được sử dụng trong chế dộ cấp nguồn l bắt đầu việc đo.
- CONVERT T (44h)
Lệnh này khởi động một quá trình đo và chuyển đổi giá trị nhiệt độ thành số (nhị
phân). Sau khi chuyển đổi giá trị kết quả đo nhiệt độ được lưu trữ trên thanh ghi nhiệt
độ 2 byte trong bộ nhớ nháp Thời gian chuyển đổi không quá 200 ms, trong thời gian
đang chuyển đổi nếu thực hiện lệnh đọc thì các giá trị đọc ra đều bằng 0.
- READ POWER SUPPLY (B4h)
Một lệnh đọc tiếp sau lệnh này sẽ cho biết DS1820 đang sử dụng chế độ cấp nguồn
như thế nào, giá trị đọc được bằng 0 nếu cấp nguồn bằng chính đường dẫn dữ liệu và
bằng 1 nếu cấp nguồn qua một đường dẫn riêng.

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng



Đồ án THIẾT KẾ HỆ THỐNG NHÚNG

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG

b. Cách config độ phân giải cho ds18b20
Sơ đồ bộ nhớ của ds18b20

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
Các byte thứ 5 của bộ nhớ đệm có chức năng đăng ký cấu hình (config) cho
ds18b20, và các bít được tổ chức như sau:

Các bit từ 0 đến 4 luôn được đọc giá trị là 1, bít số 7 luôn được đọc giá trị là 0.
Cấu hình độ phân giải cho ds18b20 được quyết định bởi R1 và R0 ta có bảng thiết lập
như sau.

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
c. Sơ đồ kết nối cảm biến nhiệt ds18b20
- Sơ đồ khi sử dụng một cảm biến.

- Sơ đồ khi mắc nhiều cảm biến. (Chúng ta cũng chỉ cần 1 dây để lấy mẫu nhiệt

độ)

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
d. Đọc nhiệt độ
Khi bắt đầu chuyển đổi nhiệt độ thì chân DQ sẽ được kéo xuống mức thấp và khi
chuyển đổi xong thì ở mức cao.Như vậy ta sẽ căn cứ vào hiện tượng này để xác định khi
nào chuyển đổi xong nhiệt độ. Lưu ý luôn phải dùng một điện trở tầm 4.7k trở lên vào
chân DQ treo lên nguồn như sơ đồ mắc.

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG

C. Về Module điều khiển chính
Trong quá trình được học trên ghế nhà trường trong các môn học chúng em được thì
có rất nhiều loại vi điều khiển phù hợp với đề tài này như: họ vi điều khiển 8051, PIC,
AVR..... Nhưng sau khi tìm hiểu trong thực tế thì em nhận thấy rằng có một dòng vi điều
khiển mới 32 bit đang được sử dụng rất rộng rãi rất linh hoạt và giá cả cũng rất hợp lí. Đó
là dòng vi điều khiển họ ARM và cụ thể là vi điều khiển STM32F103C8T6 đồng thời
KIT ARM NANOBOARD do các anh sinh viên khóa trước trong trường phát triển cũng
được sự dụng rất nhiều, vì vậy em chọn vi điều khiển này cho đề án vì nhưng tiện ích mà
nó mang lại.
1.

Lịch sử hình thành và phát triển


ARM (Advanced RISC Machine) là một họ vi xử lý 32-bit được sử dụng rộng rãi trong
các thiết bị nhúng. Do có những ưu điểm như tiết kiệm, giá thành và năng lượng là những mục
tiêu hàng đầu cho việc thiết kế CPU (Central Processing Unit) nên ARM chiếm ưu thế trong
các sản phẩm di dộng.
Hiện nay, 75% CPU nhúng 32-bit là thuộc họ ARM khiến cho họ vi xử lý ARM trở
thành họ vi xử lý 32-bit được sản xuất nhiều nhất trên thế giới. CPU sử dụng bộ vi xử lý ARM
được tìm thấy ở khắp các thiết bị sản phẩm điện tử từ thiết bị cầm tay (PDA, điện thoại di
động, trò chơi cầm tay, máy tính cầm tay…) cho đến các thiết bị ngoại vi( bộ nhớ, bộ định
tuyến để bàn….).
Việc thiết kế ARM được bắt đầu từ năm 1983 trong một dự án phát triển của công ty máy
tính Acorn. Nhóm thiết kế đứng đầu bởi Roger Wilson và Steve Furber, bắt đầu phát triển một
bộ vi xử lý có nhiều điểm kỹ thuật sử dụng trong dòng 6502 (Tên gọi một CPU 8-bit của
hãng Rockwell International có thể dùng được 64-Kb địa chỉ bộ nhớ) tiên tiến. Acorn đã từng
sản xuất nhiều máy tính dựa trên 6502, vì vậy việc tạo ra một chip như vậy là một bước tiến
đáng kể của công ty này.
Ngày 26/4/1985, mẫu sản phẩm ARM đầu tiên sản xuất tại công ty kĩ thuật VLSI,
SanJose, bang Califonia được chuyển tới trung tâm máy tính Acorn ở Cambridge, Anh Quốc.
Vào năm sau, nhóm hoàn thành sản phẩm “thực” gọi là ARM2. ARM2 có bus dữ liệu 32-bit,
không gian địa chỉ 26-bit tức cho phép quản lý đến 64 Mb địa chỉ và 16 thanh ghi 32-bit. Một
trong những thanh ghi này đóng vai trò là bộ đếm chương trình với 6 bit cao nhất và 2 bit thấp
nhất lưu giữ các cờ trạng thái của bộ vi xử lý. Có thể nói ARM2 là bộ vi xử lý 32-bit khả dụng
đơn giản nhất trên thế giới, với chỉ gồm 30.000 transistor (so với bộ vi xử lý lâu hơn bốn năm
của Motorola là 68000 với khoảng 68.000 transistor). Sự đơn giản như vậy có được nhờ ARM
không có vi chương trình (mà chiếm khoảng 1/4 đến 1/3 trong 68000) và cũng giống như hầu hết
các CPU vào thời đó, không hề chứa caches. Sự đơn giản này đưa đến đặc điểm tiêu thụ công
suất thấp của ARM, mà lại có tính năng tốt hơn cả 80286. (Tên bộ vi xử lý 16-bit của Intel, xuất
hiện năm 1982, phổ biến trong các máy IBM PC/AT và các máy tương thích, có thanh ghi 16-bit,
16-bit bus dữ liệu và có khả năng địa chỉ hóa đến 24- bit). Thế hệ sau, ARM3, được tạo ra với
4KB cache và có chức năng được cải thiện tốt hơn nữa. Nửa thập niên sau đó, ARM được phát
Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng



Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
triển rất nhanh chóng để làm nhân máy tính để bàn của Acorn, nền tảng cho các máy tính hỗ trợ
giáo dục ở Anh. Trong thập niên 1990, dưới sự phát triển của Acorn Limited, ARM đã thành
một thương hiệu đứng đầu thế giới về các ứng dụng sản phẩm nhúng đòi hỏi tính năng cao,
sử dụng năng lượng ít và giá thành thấp.
Chính nhờ sự nổi trội về thị phần đã thúc đẩy ARM liên tục được phát triển và cho ra
nhiều phiên bản mới. Những thành công quan trọng trong việc phát triển ARM ở thập niên sau
này:
- Giới thiệu ý tưởng về định dạng các chỉ lệnh được nén lại (thumb) cho phép tiết
kiệm năng lượng và giá thành ở những hệ thống nhỏ.
- Giới thiệu họ điều khiển ARM9, ARM10 và “Strong ARM”.
- Phát triển môi trường làm việc ảo của ARM trên PC.
- Các ứng dụng cho hệ thống nhúng dựa trên nhân xử lý ARM ngày càng trở
nên rộng rãi.
Hầu hết các nguyên lý của hệ thống trên chip (Systems on chip-SoC) và cách thiết kế bộ
xử lý hiện đại được sử dụng trong ARM, ARM còn đưa ra một số khái niệm mới (như giải
nén động các dòng lệnh). Việc sử dụng ba trạng thái nhận lệnh, giải mã, thực thi trong mỗi chu
kỳ máy mang tính quy phạm để thiết kế các hệ thống xử lý thực. Do đó, nhân xử lý ARM được
sử dụng rộng rãi trong các hệ thống phức tạp.
2. Giới thiệu về dòng vi điều khiển stm32

Những đặc điểm nổi trội của dòng ARM Cortex đã thu hút các nhà sản xuất IC, hơn
240 dòng vi điều khiển dựa vào nhân Cortex đã được giới thiệu. Không nằm ngoài xu
hướng đó, hãng sản xuất chip ST Microelectronic đã nhanh chóng đưa ra dòng STM32.
STM32 là vi điều khiển dựa trên nền tảng lõi ARM Cortex-M3 thế hệ mới do hãng ARM
thiết kế. Lõi ARM Cortex-M3 là sự cải tiến từ lõi ARM7 truyền thống từng mang lại
thành công vang dội cho công ty ARM.


Hình 3.1: Kiến trúc của STM32 nhánh Performance và Access

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
ST đã đưa ra thị trường 4 dòng vi điều khiển dựa trên ARM7 và ARM9, nhưng
STM32 là một bước tiến quan trọng trên sự hiệu quả giữa kinh phí và hiệu năng
(price/performance), giá chỉ gần 1 Euro với số lượng lớn, STM32 là sự thách thức thật sự
với các vi điều khiển 8 và 16-bit truyền thống. STM32 đầu tiên gồm 14 biến thể khác
nhau, được phân thành hai dòng: dòng Performance có tần số hoạt động của CPU lên tới
72Mhz và dòng Access có tần số hoạt động lên tới 36Mhz. Các biến thể STM32 trong hai
nhóm này tương thích hoàn toàn về cách bố trí chân (pin) và phần mềm, đồng thời kích
thước bộ nhớ FLASH ROM có thể lên tới 512K và 64K SRAM.
Nhánh Performance hoạt động với xung nhịp lên đến 72Mhz và có đầy đủ các ngoại
vi, nhánh Access hoạt động với xung nhịp tối đa 36Mhz và có ít ngoại vi hơn so với
nhánh Performance.
2.a Các ngoại vi của STM32

Thoạt nhìn thì các ngoại vi của STM32 cũng giống như những vi điều khiển khác,
như hai bộ chuyển đổi ADC, timer, I2C, SPI, CAN, USB và RTC. Tuy nhiên mỗi ngoại vi
trên đều có rất nhiều đặc điểm thú vị. Ví dụ như bộ ADC 12-bit có tích hợp một cảm biến
nhiệt độ để tự động hiệu chỉnh khi nhiệt độ thay đổi và hỗ trợ nhiều chế độ chuyển đổi.
Mỗi bộ định thời có 4 khối capture compare (dùng để bắt sự kiện với tính năng input
capture và tạo dạng sóng ở ngõ ra với output compare), mỗi khối định thời có thể liên kết
với các khối định thời khác để tạo ra một mảng các định thời tinh vi hơn. Một bộ định
thời cao cấp chuyên hỗ trợ điều khiển động cơ, với 6 đầu ra PWM với dead time (khoảng
thời gian được chèn vào giữa hai đầu tín hiệu xuất PWM bù nhau trong điều khiển mạch
cầu H) lập trình được và một đường break input (khi phát hiện điều kiện dừng khẩn cấp)
sẽ buộc tín hiệu PWM sang một trạng thái an toàn đã được cài sẵn. Ngoại vi nối tiếp SPI

có một khối kiểm tổng (CRC) bằng phần cứng cho 8 và 16 word hỗ trợ tích cực cho giao
tiếp thẻ nhớ SD hoặc MMC.
STM32 có hỗ trợ thêm tối đa 12 kênh DMA (Direct Memory Access). Mỗi kênh có
thể được dùng để truyền dữ liệu đến các thanh ghi ngoại vi hoặc từ các thanh ghi ngoại vi
đi với kích thước từ (word) dữ liệu truyền đi có thể là 8/16 hoặc 32-bit. Mỗi ngoại vi có
thể có một bộ điều khiển DMA (DMA controller) đi kèm dùng để gửi hoặc đòi hỏi dữ
liệu như yêu cầu. Một bộ phân xử bus nội (bus arbiter) và ma trận bus (bus matrix) tối
thiểu hoá sự tranh chấp bus giữa truy cập dữ liệu thông qua CPU (CPU data access) và
các kênh DMA. Điều đó cho phép các đơn vị DMA hoạt động linh hoạt, dễ dùng và tự
động điều khiển các luồng dữ liệu bên trong vi điều khiển.
STM32 là một vi điều khiển tiêu thụ năng lượng thấp và đạt hiệu suất cao. Nó có thể
hoạt động ở điện áp 2V, chạy ở tần số 72MHz và dòng tiêu thụ chỉ có 36mA với tất cả các
khối bên trong vi điều khiển đều được hoạt động. Kết hợp với các chế độ tiết kiệm năng
lượng của Cortex, STM32 chỉ tiêu thụ 2μA khi ở chế độ Standby. Một bộ dao động nội
RC 8MHz cho phép chip nhanh chóng thoát khỏi chế độ tiết kiệm năng lượng trong khi
bộ dao động ngoài đang khởi động. Khả năng nhanh đi vào và thoát khỏi các chế độ tiết
kiệm năng lượng làm giảm nhiều sự tiêu thụ năng lượng tổng thể.

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
2.b Sự an toàn

Ngày nay các ứng dụng hiện đại thường phải hoạt động trong môi trường khắc khe,
đòi hỏi tính an toàn cao, cũng như đòi hỏi sức mạnh xử lý và càng nhiều thiết bị ngoại vi
tinh vi. Để đáp ứng các yêu cầu khắc khe đó, STM32 cung cấp một số tính năng phần
cứng hỗ trợ các ứng dụng một cách tốt nhất. Chúng bao gồm một bộ phát hiện điện áp
thấp, một hệ thống bảo vệ xung Clock và hai bộ Watchdogs. Bộ đầu tiên là một
Watchdog cửa sổ (windowed watchdog). Watchdog này phải được làm mới trong một

khung thời gian xác định. Nếu nhấn nó quá sớm, hoặc quá muộn, thì Watchdog sẽ kích
hoạt. Bộ thứ hai là một Watchdog độc lập (independent watchdog), có bộ dao động bên
ngoài tách biệt với xung nhịp hệ thống chính. Hệ thống bảo vệ xung nhịp có thể phát hiện
lỗi của bộ dao động chính bên ngoài (thường là thạch anh) và tự động chuyển sang dùng
bộ dao động nội RC 8MHz.
2.c Tính bảo mật

Một trong những yêu cầu khắc khe khác của thiết kế hiện đại là nhu cầu bảo mật mã
chương trình để ngăn chặn sao chép trái phép phần mềm. Bộ nhớ Flash của STM32 có
thể được khóa để chống truy cập đọc Flash thông qua cổng Debug. Khi tính năng bảo vệ
đọc được kích hoạt, bộ nhớ Flash cũng được bảo vệ chống ghi để ngăn chặn mã không tin
cậy được chèn vào bảng vector ngắt. Hơn nữa bảo vệ ghi có thể được cho phép trong
phần còn lại của bộ nhớ Flash. STM32 cũng có một đồng hồ thời gian thực và một khu
vực nhỏ dữ liệu trên SRAM được nuôi nhờ nguồn pin. Khu vực này có một đầu vào
chống giả mạo (anti-tamper input), có thể kích hoạt một sự kiện ngắt khi có sự thay đổi
trạng thái ở đầu vào này. Ngoài ra một sự kiện chống giả mạo sẽ tự động xóa dữ liệu
được lưu trữ trên SRAM được nuôi bằng nguồn pin.
2.d Phát triển phần mềm

Nếu bạn đã sử dụng một vi điều khiển dựa trên lõi ARM, thì các công cụ phát triển
cho ARM hiện có đã được hỗ trợ tập lệnh Thumb-2 và dòng Cortex. Ngoài ra STM 32
cũng cung cấp một thư viện điều khiển thiết bị ngoại vi, một bộ thư viện phát triển USB
như là một thư viện ANSI C và mã nguồn đó là tương thích với các thư viện trước đó
được công bố cho vi điều khiển STR7 và STR9. Có rất nhiều RTOS mã nguồn mở và
thương mại và middleware (TCP/IP, hệ thống tập tin, v.v.) hỗ trợ cho họ Cortex. Dòng
Cortex-M3 cũng đi kèm với một hệ thống gỡ lỗi hoàn toàn mới gọi là CoreSight. Truy
cập vào hệ thống CoreSight thông qua cổng truy cập Debug (Debug Access Port), cổng
này hỗ trợ kết nối chuẩn JTAG hoặc giao diện 2 dây (serial wire-2 Pin), cũng như cung
cấp trình điều khiển chạy gỡ lỗi, hệ thống CoreSight trên STM32 cung cấp hệ thống điểm
truy cập (data watchpoint) và một công cụ theo dõi (instrumentation trace). Công cụ này

có thể gửi thông tin về ứng dụng được lựa chọn đến công cụ gỡ lỗi. Điều này có thể cung
cấp thêm các thông tin gỡ lỗi và cũng có thể được sử dụng trong quá trình thử nghiệm
phần mềm.

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
2.e Dòng Performance và Access của STM32

Họ STM32 có hai nhánh đầu tiên riêng biệt: dòng Performance và dòng Access.
Dòng Performance tập hợp đầy đủ các thiết bị ngoại vi và chạy với xung nhịp tối đa
72MHz. Dòng Access có các thiết bị ngoại vi ít hơn và chạy tối đa 36MHz. Quan trọng
hơn là cách bố trí chân (pins layout) và các kiểu đóng gói chip (package type) là như
nhau giữa dòng Access và dòng Performance. Điều này cho phép các phiên bản khác
nhau của STM32 được hoán vị mà không cần phải sửa đổi sắp sếp lại footprint (mô hình
chân của chip trong công cụ layout bo mạch) trên PCB (Printed Circuit Board).
Ngoài hai dòng Performance và Access đầu tiên, hiện nay ST đã đưa ra thị trường
thêm hai dòng USB Access và Connectivity.
3.

Kiến trúc và tính năng xử lý của lõi Cortex M3

Dòng vi xử lý ARM Cortex dựa trên một kiến trúc chuẩn đủ để đáp ứng hầu hết các yêu
cầu về hiệu năng làm việc trong tất cả các lĩnh vực trên. Dòng ARM Cortex bao gồm ba cấu
hình khác nhau của kiến trúc ARMv7: cấu hình A cho các ứng dụng tinh vi, yêu cầu cao chạy
trên các hệ điều hành mở và phức tạp như Linux, Android…, cấu hình R dành cho các hệ thống
thời gian thực và cấu hình M được tối ưu cho các ứng dụng vi điều khiển, cần tiết kiệm chi phí.
Bộ vi xử lý Cortex-M3 là bộ vi xử lý ARM đầu tiên dựa trên kiến trúc ARMv7- M và
được thiết kế đặc biệt để đạt được hiệu suất cao trong các ứng dụng nhúng cần tiết kiệm năng

lượng và chi phí, chẳng hạn như các vi điều khiển, hệ thống cơ ô tô, hệ thống kiểm soát công
nghiệp và hệ thống mạng không dây. Thêm vào đó là việc lập trình được đơn giản hóa đáng kể
giúp kiến trúc ARM trở thành một lựa chọn tốt cho ngay cả những ứng dụng đơn giản nhất.
3.a Lõi Cortex-M3

Lõi trung tâm Cortex-M3 dựa trên kiến trúc Harvard, được đặc trưng bằng sự tách
biệt giữa vùng nhớ chứa dữ liệu và chương trình do đó có các bus riêng để truy cập. Đặc
tính này khác với dòng ARM7 dựa trên kiến trúc Von Neumann sử dụng chung vùng nhớ
để chứa dữ liệu và chương trình, do đó dùng chung bus cho việc truy xuất. Vì có thể đọc
cùng lúc lệnh và dữ liệu từ bộ nhớ, bộ vi xử lý Cortex-M3 có thể thực hiện nhiều hoạt
động song song, tăng tốc thực thi ứng dụng.
Bộ vi xử lý Cortex-M3 là một bộ vi xử lý 32-bit, với độ rộng của đường dẫn dữ liệu
32 bit, các dải thanh ghi và giao tiếp bộ nhớ. Có 13 thanh ghi đa dụng, hai con trỏ ngăn
xếp, một thanh ghi liên kết, một bộ đếm chương trình và một số thanh ghi đặc biệt trong
đó có một thanh ghi trạng thái chương trình.
Bộ vi xử lý Cortex-M3 hỗ trợ hai chế độ hoạt động (Thread và Handler) và hai mức truy
cập tài nguyên của lõi xử lí (đặc quyền và không đặc quyền), tạo điều kiện cho việc cài đặt các
hệ thống mở và phức tạp nhưng vẫn bảo mật. Những dòng mã không đặc quyền bị giới hạn hoặc
không cho phép truy cập vào một số tài nguyên quan trọng (một số lệnh đặc biệt và các vùng nhớ
nhất định). Chế độ Thread là chế độ hoạt động tiêu biểu hỗ trợ cả mã đặc quyền và không đặc
quyền. Bộ vi xử lý sẽ vào chế độ Handler khi một ngoại lệ (exception) xảy ra và tất cả các mã là
đặc quyền trong chế độ này. Ngoài ra, tất cả các hoạt động trong bộ vi xử lý đều thuộc một trong
hai trạng thái hoạt động: Thumb cho chế độ thực thi bình thường và Debug cho việc gỡ lỗi.
Bộ vi xử lý Cortex-M3 là một hệ thống ánh xạ bộ nhớ đơn giản, quản lí vùng nhớ cố định
lên tới 4 gigabyte với các địa chỉ định nghĩa sẵn, dành riêng cho mã lệnh (vùng mã lệnh), SRAM
Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG
(vùng nhớ), bộ nhớ/thiết bị bên ngoài, thiết bị ngoại vi bên trong và bên ngoài. Ngoài ra còn có

một vùng nhớ đặc biệt dành riêng cho nhà cung cấp.

Bộ vi xử lý Cortex-M3 cho phép truy cập trực tiếp đến từng bit dữ liệu trong các hệ
thống đơn giản bằng cách thực thi một kỹ thuật được gọi là bit-banding. Bộ nhớ bao gồm
hai vùng bit-band (mỗi vùng 1MB) trong SRAM và vùng bí danh 32MB của vùng không
gian ngoại vi (Mỗi byte trong vùng bí danh sẽ tương ứng với một bit trong vùng bitband). Mỗi hoạt động nạp/lưu tại một địa chỉ trong khu vực bí danh (alias region) sẽ trực
tiếp tương ứng với hoạt động trên bit được đại diện bởi bí danh đó. Cụ thể, khi ghi giá trị
0x01 vào một địa chỉ trên vùng bí danh thì có nghĩa là xác định bit tương ứng sẽ có giá trị
là 1, tương tự giá trị 0x00 sẽ xác định bit tương ứng có giá trị 0. Còn đọc giá trị tại một
địa chỉ vùng bí danh có nghĩa là đọc được giá trị của bit tương ứng. Một vấn đề cần chú ý
nữa là hoạt động này mang tính nguyên tử (không chia nhỏ được nữa), không thể bị gián
đoạn bởi các hoạt động khác trên bus.
Các hệ thống cũ dựa trên ARM7 chỉ hỗ trợ truy xuất dữ liệu thẳng hàng, chỉ cho
phép lưu trữ và truy xuất dữ liệu của một khối bộ nhớ mà mỗi phần tử có đơn vị là một
word. Bộ vi xử lý Cortex-M3 hỗ trợ truy xuất dữ liệu không thẳng hàng, cho phép chuyển
dữ liệu không thẳng hàng trong một truy xuất đơn. Thực tế, việc chuyển dữ liệu không
thẳng hàng được biến thành việc chuyển nhiều lần dữ liệu thẳng hàng và có tính trong
suốt đối với lập trình viên (nghĩa là lập trình viên hoàn toàn không cần quan tâm đến điều
này). Ngoài ra bộ vi xử lý Cortex-M3 cũng hỗ trợ phép nhân 32-bit hoạt động trong một
chu trình đơn và các phép chia có dấu, không dấu với các lệnh SDIV và UDIV, mất từ 2
đến 12 chu kỳ phụ thuộc vào kích thước của toán hạng. Phép chia được thực thi nhanh
hơn nếu số chia và số bị chia có kích thước tương tự nhau. Những cải tiến trong khả năng
toán học giúp Cortex-M3 trở thành bộ vi xử lý lý tưởng cho các ứng dụng thiên về tính
toán như đọc cảm biến hoặc các hệ thống mô phỏng
3.b Kiến trúc tập lệnh Thumb-2
Tập lệnh Thumb-2 là sự pha trộn giữa tập lệnh 16 và 32 bit, đạt được hiệu suất của các
lệnh ARM 32 bit, đồng thời phù hợp với mật độ mã cũng như tương thích ngược với tập lệnh gốc
Thumb 16 bit.
Quan hệ giữa tập lệnh Thumb-2 và tập lệnh Thumb:
Trong một hệ thống dựa trên bộ vi xử lý ARM7, việc chuyển đổi nhân xử lý giữa chế độ

Thumb (có lợi về mật độ mã) và ARM (có lợi về mặt hiệu suất) là cần thiết cho một số ứng dụng.
Còn bộ vi xử lý Cortex-M3 có các lệnh 16 bit và 32 bit tồn tại trong cùng một chế độ, cho phép
mật độ mã cũng như hiệu suất đều cao hơn mà không cần phải chuyển đổi phức tạp. Vì tập lệnh
Thumb-2 là tập bao hàm của tập lệnh Thumb 16 bit nên bộ vi xử lý Cortex-M3 có thể thực thi
các đoạn mã trước đây viết cho Thumb 16 bit. Do được cài đặt tập lệnh Thumb-2 nên bộ vi xử lý
Cortex-M3 có khả năng tương thích với các thành viên khác của dòng ARM Cortex.

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG

Hình 3.2: Mối tương quan giữa hiệu suất và kích thước code của ARM , thumb và thumb-2.

Tập lệnh Thumb-2 có các lệnh đặc biệt giúp lập trình viên dễ dàng viết mã cho nhiều ứng
dụng khác nhau. Các lệnh BFI và BFC là các lệnh thao tác trên bit, rất có ích trong các ứng dụng
xử lý gói tin mạng. Các lệnh SBFX và UBFX giúp việc chèn vào hoặc trích xuất một số bit trong
thanh ghi được nhanh chóng. Lệnh RBIT đảo bit trong một WORD, có ích trong các thuật toán
DSP như DFT. Các lệnh bảng rẽ nhánh TBB và TBH tạo sự cân bằng giữa mật độ mã và hiệu
suất. Tập lệnh Thumb-2 cũng giới thiệu cấu trúc If-Then mới có thể xác định điều kiện thực hiện
tối đa bốn lệnh tiếp theo.
Các tính năng chính mới trong tập lệnh Thumb-2 bao gồm việc thực hiện mã lệnh C một
cách tự nhiên hơn, thao tác trực tiếp trên các bit, phép chia phần cứng và lệnh If/Then. Hơn nữa,
nhìn từ góc độ phát triển ứng dụng, Thumb-2 tăng tốc độ phát triển, đơn giản hóa việc bảo trì, hỗ
trợ các đối tượng biên dịch thông qua tối ưu hóa tự động cho cả hiệu suất và mật độ mã mà
không cần quan tâm đến việc mã được biên dịch cho chế độ ARM hoặc Thumb. Kết quả là lập
trình viên có thể để mã nguồn của họ trong ngôn ngữ C mà không cần tạo ra các thư viện đối
tượng biên dịch sẵn, có nghĩa là khả năng tái sử dụng mã nguồn lớn hơn nhiều.
3.c Cách tổ chức và thực thi tập lệnh
Cách tổ chức của nhân ARM là dòng chảy lệnh 3 tác vụ:

- Fetch (nhận lệnh).
- Decode (giải mã).
- Excute (thực thi).
Khi gặp một lệnh nhánh, tầng decode chứa một chỉ thị nạp lệnh suy đoán có thể dẫn đến
việc thực thi nhanh hơn. Bộ xử lý nạp lệnh dự định rẽ nhánh trong giai đoạn giải mã. Sau đó,
trong giai đoạn thực thi, việc rẽ nhánh được giải quyết và bộ vi xử lý sẽ phân tích xem đâu là
lệnh thực thi kế tiếp. Nếu việc rẽ nhánh không được chọn thì lệnh tiếp theo đã sẵn sàng. Còn nếu
việc rẽ nhánh được chọn thì lệnh rẽ nhánh đó cũng đã sẵn sàng ngay lập tức, hạn chế thời gian
rỗi chỉ còn một chu kỳ.
3.d Bộ nhớ
Bộ vi xử lý Cortex-M3 quản lí vùng nhớ cố định lên tới 4 gigabyte với các địa chỉ định
nghĩa sẵn, dành riêng cho mã lệnh (vùng mã lệnh), SRAM (vùng nhớ), bộ nhớ/thiết bị bên ngoài,
thiết bị ngoại vi bên trong và bên ngoài. Ngoài ra còn có một vùng nhớ đặc biệt dành riêng cho
nhà cung cấp.

Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


Đồ án THIẾT KẾ HỆ THỐNG NHÚNG

Hình 3.3 Sơ đồ bộ nhớ

Code có thể lưu ở vùng mã lệnh,SRAM hoặc RAM ngoài, tuy nhiên khi lưu ở vùng mã lệnh,
việc gọi lệnh và truy cập dữ liệu được xử lý đồng thời trên các bus.
Sơ đồ bộ nhớ:
- Truy cập vùng SRAM thực hiện thông qua các bus. Trong vùng này, có hai thành
phần: vùng bit-band 1MB và vùng bí danh (Bit-band Alias) 32 MB.
- Vùng nhớ thiêt bị ngoại vi 0.5GB tương tự như vùng SRAM với hai thành phần cơ
bản. Tuy nhiên, các lệnh không được thực thi ở vùng này, kĩ thuật bit-band được sử dụng
để thay đổi các trạng thái bit, dễ dàng điều khiển ngoại vi.

-Vùng bộ nhớ và thiết bị bên ngoài: mỗi vùng 1GB, sự khác biệt hai vùng này là lệnh
không được thực hiện ở vùng thiết bị bên ngoài, ngoài ra có một số khác biệt về cách lưu
trữ giữa hai vùng.
4. Giới thiệu về vi điều khiển STM32F103C8T6

STM32F103C8T6 là một vi điều khiển 32 bit dòng ARM Cortex-M3 của hãng
STMicroelectronic. Đây là một vi điều khiển có khả năng ứng dụng cao trong nhiều ứng
dụng thời gian thực. STM 32 được chia làm 2 nhóm:
• Performance với tần số hoạt động lên tới 72 MHz
• Access với tần số hoạt động 36 MHz
Một vài đặc điểm nổi bật của STM32:
• Năng lượng tiêu thụ thấp (2V, 36mA) cho các khối bên trong vi điều khiển
Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng


×