Professional Documents
Culture Documents
- 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.
- 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
Đố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
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.
- 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)
- 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
- 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.
Độ 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
Độ 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.
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
Đó 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.