You are on page 1of 13

1: Tại sao chọn STM32

- STM32 là chíp vi điều khiển 32 bit lõi Arm Cortex với cấu hình mạnh mẽ
cho dù với phân khúc thấp nhất STM32F0x cũng có thể hoạt động lên tới 48Mhz,
64kB Flash, 16kB RAM, 8 bộ Timer 16 bit, 1 bộ Timer 32 bit, 10 bộ ADC 12 bit,
8 bộ USART, 2 bộ SPI, 2 bộ I2C.
- STM32 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….. Một số ứng dụng chính: dùng cho driver để điều
khiển ứng dụng, điều khiển ứng dụng thông thường, thiết bị cầm tay và thuốc, máy
tính và thiết bị ngoại vi chơi game, GPS cơ bản, các ứng dụng trong công nghiệp,
thiết bị lập trình PLC, biến tần, máy in, máy quét, hệ thống cảnh báo, thiết bị liên
lạc nội bộ….
- Phần mềm lập trình: IAR Embedded Workbench, Keil C… Ở đây mình
chọn KeilC vì giao diện dễ nhìn, đã làm quen với KeilC từ các môn học trước, có
thể debug dễ dàng và đặc biệt làthu KeilC có thể load chương trình xuống KIT mà
không cần tải thêm bất cứ phần mềm nào.
- Thư viện lập trình: có nhiều loại thư viện lập trình cho STM32 như:
STM32snippets, STM32Cube LL, STM32Cube HAL, Standard Peripheral
Libraries, Mbed core.
- Mạch nạp: có khá nhiều loại mạch nạp như : ULINK, J-LINK , CMSIS-
DAP, STLINK… ở đây mình sử dụng STlink vì giá thành khá rẻ và debug lỗi cũng
tốt.

1.Thông số kỹ thuật STM32

- Với mô hình này nhóm mình quyết định chọn con chip STM32F103VET6 vì
tốc độ và dung lượng lưu trữ phù hợp với yêu cầu đặt ra.
- Vi điều khiển trung tâm: STM32F103VET6 - LQFP 100. (80 chân IO)
- Kích thước bộ nhớ chương trình 512Kb

- Độ rộng bus dữ liệu 32bits

- Độ phân giải ADC 12bits

- Số lượng cổng IO: 80I/O

- Kích thước dữ liệu RAM: 64kB

- Nhiệt độ làm việc -40 độ C => +85 độ C

- Loại bộ nhớ : Flash

- Giao tiếp: CAN, SPI, I2C, USART, USB

- Số bộ hẹn giờ/ bộ đếm : 8 Timer

- Xung nội: 72MHz => tốc độ xử lý tốt

2. NGUỒN CLOCK cho STM32

Đối với dòng vi điều khiển STM32, Clock hệ thống có thể được cung cấp bởi 3
nguồn:

- Nguồn Clock dao động nội tốc độ cao (HSI – High Speed Internal): lấy từ dao
động RC nội 8MHz.

- Nguồn Clock dao động ngoại tốc độ cao (HSE – High Speed External): lấy từ
nguồn dao động thạch anh 4 – 16MHz.

- Nguồn Clock PLL (PLL – Phase Lock Loop). Ngoài ra, STM32 còn được hỗ trợ
thêm 2 nguồn Clock phụ:

-Nguồn dao động RC nội (LSI RC – Low Speed Internal RC): lấy từ nguồn dao
động RC nội 40KHz ( cung cấp cho IWDG – Independent Watchdog).
- Nguồn dao động thạch anh ngoại (LSE crystal – Low Speed External): lấy từ dao
động thạch anh 32.768KHz (cung cấp cho RTC – Real Time Clock).

Mỗi nguồn xung clock có thể được bật, tắt độc lập nhằm tiết kiệm năng lượng.

** Chú ý: Muốn hệ thống hoạt động ở tần số cao nhất (72MHz) ta phải sử dụng
HSE (4 – 16MHz) kết hợp với mạch nhân tần số PLLMUL. Thông thường ta chọn
giá trị HSE bằng 8MHz, điều này có nghĩa là ta phải kết nối thạch anh hoặc một
nguồn xung clock 8MHz bên ngoài ARM

theo cách được mô tả bên dưới.


3. Các chuẩn giao tiếp

a. Giao tiếp SPI

* Chức năng của SPI:

 SPI sử dụng phương thức truyền: Nối tiếp - Đồng bộ - Song công.
 Nối tiếp: Truyền một bit dữ liệu trên mỗi nhịp truyền.

 Đồng bộ: Có xung nhịp đồng bộ quá trình truyền.

 Song công: Cho phép gửi, nhận đồng thời.

 SPI là phương thức Master –


Slave.

 Thiết bị đóng vai trò Master điều


khiển xung đồng bộ (SCK).

 Tất cả các thiết bị Slaver bị điều


khiển bởi xung đồng bộ phát ra bởi
Master

* Nguyên lý hoạt động của giao thức SPI

- Khi muốn truyền nhận dữ liệu tới các Slave, đầu tiên Master kéo đường CS kết
nối từ Master tới Slave đó xuống 0.

- Gửi xung Clock, tương ứng với mỗi Clock sẽ gửi DATA trên chân MOSI tại
thời điểm Clock ở mức cao (hoặc thấp tùy người lập trình)

- Slave cũng có thể gửi ngược lại DATA tại chân MISO tới Master

- Sự truyền nhận dữ liệu là liên tục nên SPI thường có tốc độ rất cao

- Các kiểu cấu hình  giao thức SPI: Có 2 loại cấu hình SPI

+ Cấu hình Master và các Slave độc lập (Independent Slave Configuration)

+ Cấu hình Daisy Chain (Daisy Chain Configuration).


Trong cấu hình Master và các Slave độc lập,
Master đã dành riêng các đường Slave Select cho
tất cả các Slave và mỗi Slave có thể được
chọn riêng lẻ. Tất cả tín hiệu đồng hồ của các
Slave được kết nối với chung với SCK của
Mas

Trong cấu hình Daisy Chain, chỉ có một đường


Slave Select được kết nối với tất cả các Slave.
MOSI của Master được kết nối với MOSI của
Slave 1. MISO của Slave 1 được kết nối với
MOSI của Slave 2 và v.v.. MISO của Slave cuối
cùng được kết nối với MISO của Master.

b. Giao tiếp I2C

- Chỉ cần có hai đường bus (dây) chung để điều khiển bất kỳ thiết bị / IC nào
trên mạng I2C
- Không cần thỏa thuận trước về tốc độ truyền dữ liệu như trong giao tiếp
UART. Vì vậy, tốc độ truyền dữ liệu có thể được điều chỉnh bất cứ khi nào cần
thiết
- Cơ chế đơn giản để xác thực dữ liệu được truyền
- Sử dụng hệ thống địa chỉ 7 bit để xác định một thiết bị / IC cụ thể trên bus
I2C
- Các mạng I2C dễ dàng mở rộng. Các thiết bị mới có thể được kết nối đơn
giản với hai đường bus chung I2C
- Cách giao tiếp của phưng thức I2C
- Thiết bị Master gửi điều kiện bắt đầu đến tất cả các thiết bị Slave
- Thiết bị Master gửi 7 bit địa chỉ của thiết bị Slave mà thiết bị Master muốn
giao tiếp cùng với bit Read/Write
- Mỗi thiết bị Slave so sánh địa chỉ được gửi từ thiết bị Master đến địa chỉ
riêng của nó. Nếu địa chỉ trùng khớp, thiết bị Slave gửi về một bit ACK bằng cách
kéo đường SDA xuống thấp và bit ACK / NACK được thiết lập là ‘0’,. Nếu địa chỉ
từ thiết bị Master không khớp với địa chỉ riêng của thiết bị Slave thì đường SDA ở
mức cao và bit ACK / NACK sẽ ở  mức ‘1’ (mặc định).
- Thiết bị Master gửi hoặc nhận khung dữ liệu. Nếu thiết bị Master muốn gửi
dữ liệu đến thiết bị Slave, bit Read / Write là mức điện áp thấp. Nếu thiết bị Master
đang nhận dữ liệu từ thiết bị Slave, bit này là mức điện áp cao.
- Nếu khung dữ liệu được thiết bị Slave nhận được thành công, nó sẽ thiết lập
bit ACK / NACK thành ‘0’, báo hiệu cho thiết bị Master tiếp tục
- Sau khi tất cả dữ liệu được gửi đến thiết bị Slave, thiết bị Master gửi điều
kiện dừng để báo hiệu cho tất cả các thiết bị Slave biết rằng việc truyền dữ liệu đã
kết thúc.
c. USART

STM32 có đến 3 khối USART (USART1,


USART2, USART3) và 2 khối UART
(UART4, UART5), USART1 có khả năng
hoạt động đến tốc độ 4,5Mbps, các khối còn
lại có tốc độ khoảng 2,25Mbps. Một khối
USART2, USART3, UART4 và UART5 nằm
trên APB1 với xung nhịp hoạt động 72MHz,
các USART1 nằm trên APB2 hoạt động ở
xung nhịp 56MHz.

- Ngoài ra USART còn có thể dùng để tạo các giao tiếp nội (local interconnect
bus). Đây là mô hình cho phép nhiều vi xử lý trao đổi dữ liệu lẫn nhau. USART
còn có khối encoder/decoder dùng cho giao tiếp hồng ngoại với tốc độ hỗ trợ có
thể đạt đến 115200bps, hoạt động ở chế độ hafl-duplex NRZ khi xung nhịp hoạt
động khoảng từ 1.4MHz cho đến 2.12Mhz. Để thực hiện giao tiếp với smartcard,
USART còn hỗ trợ chuẩn ISO 7618-3.
Người dùng có thể cấu hình khối USART cho các giao tiếp đồng bộ tốc độ cao dựa
trên 3 đường tín hiệu riêng biệt như SPI. Khi hoạt động ở chế độ này, khối USART
sẽ đóng vai trò là SPI master và có khả năng cấu hình Clock Polarity/Phase nên
hoàn toàn có thể giao tiếp với các SPI slave khác.

2. Cảm biến vân tay


1. R305

Module R305 có các đặc điểm như sau:

 Nguồn cung cấp từ 3.6-6V. Dòng 100mA-150mA.

 Phương thức giao tiếp UART/USB 1.1.


 Chế độ so sánh kiểm tra: có 2 chế độ 1:1 và 1: N. (N từ 1 đến 12)

 Tốc độ Baud:9600xN bps (từ 9600-115200bps). Mặc định của module là N =


6 tương ứng 57600bps.

 Kích thước tập tin: 256bytes.

 Thời gian kiểm tra: nhỏ hơn 0.5s.

 Kích thước mỗi mẫu: 512bytes.

 Khả năng lưu trữ: 980 vân tay

 Mức độ bảo mật: Cấp 5(cao nhất).

 Độ sai số cho phép (FAR - False Acceptance Rate): nhỏ hơn 0.001%.

 Độ sai số chính xác (FRR - False Reject Rate): nhỏ hơn 0.1%.

 Thời gian tìm kiếm trung bình (1:1000): nhỏ hơn 1s.

2. AS608

 Nguồn cung cấp từ 3.6-6V. Dòng <120mA.

 Phương thức giao tiếp UART/USB.

 Chế độ so sánh kiểm tra: có 2 chế độ 1:1 và 1: N. (N từ 1 đến 12)

 Tốc độ Baud:9600xN bps (từ 9600-115200bps). Mặc định của module là N =


6 tương ứng 57600bps.

 Thời gian kiểm tra: nhỏ hơn 0.4s.

 Kích thước hình ảnh: 256 x 288 pixels

 Khả năng lưu trữ: 127 vân tay

 Mức độ bảo mật: Cấp 5(cao nhất).


 Độ sai số cho phép (FAR - False Acceptance Rate): nhỏ hơn 0.001%.

 Độ sai số chính xác (FRR - False Reject Rate): nhỏ hơn 1%.

* Nguyên lý hoạt động cảm biến: Kiểm tra vân tay gồm 2 phần (lấy mẫu vân tay và
kiểm tra vân tay)
- Khi lấy mẫu, người dùng cần đặt ngón tay 2 lần. Hệ thống sẽ xử lý hình ảnh
vân tay 2 lần, sau đó sẽ tạo ra 1 bản chuẩn giữa 2 lần đó và lưu trữ các bản mẫu đó
trong bộ nhớ.
- Khi kiểm tra, người dùng vẫn đặt ngón tay vào vị trí của cảm biến quang
học, hệ thống sẽ tạo ra một bản mẫu của ngón tay và so sánh với những mẫu được
lưu trữ trong thư viện. Đối với kiểu so sánh 1:1, hệ thống sẽ so sánh trực tiếp vân
tay với những mẫu được chỉ định trong Module. Đối với kiểu so sánh 1: N hay tìm
kiếm, hệ thống sẽ quét toàn bộ tất cả những vân tay có trong thư viện vân tay.
- Hệ thống sẽ trả kết quả phù hợp trong 2 trường hợp có hoặc không có vân
tay.

Chọn cảm biến phù hợp:

Từ các thông số kĩ thuật 2 loại cảm biến R305 và AS608, nhóm chúng em lựa chọn
cảm biến R305 để sử dụng cho đồ án này. Cảm biến R305 khả năng lấy 980 mẫu
vân tay khác nhau, so với cảm biến AS608 chỉ lấy được 127 vân tay khác nhau.
Ngoài ra, độ sai số chính xác của cảm biến R305 cũng thấp hơn so với cảm biến
AS608.
Hình. Các ngõ giao tiếp cảm biến R305

Chân Tên Chức năng


1 Vcc Ngõ vào 3.6 – 6V
2 GND Ngõ vào 0V
3 TX Ngõ ra truyền dữu liệu
4 RX Ngõ vào truyền dữ liệu
5 Vcc 5 VDC
6 D- Data -
7 D+ Data +
8 GND 0V

Giao thức truyền thông nối tiếp:

Đó là chế độ truyền thông nối tiếp bán song công không đồng bộ. Tốc độ bauds
mặc định của FG là 57600bps. Người dùng có thể tùy chỉnh tốc độ từ 9600-
115200bps.

Mẫu khung truyền là 10bits. Start bit là bit 0, sau đó là 8 bits dữ liệu truyền theo
kiểu LSB, và cuối cùng là stop bit là bit 1. Không có bit kiểm tra.
Hình. Khung dữ liệu truyền đi cảm biến R305

Khung dữ liệu truyền đi của cảm biến R305 Khi cấp nguồn, cảm biến vân tay sẽ
mất khoảng 500ms để khởi tạo. Trong thời gian này cảm biến vân tay không thể
thực hiện các lệnh từ máy tính.

You might also like