Bộ xử lý trung tâm STM32F4VET6

Một phần của tài liệu Thiết kế và thi công KIT lập trình vi điều khiển ARM kết hợp cảm biến y sinh (Trang 34)

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,… STM32F407 thuộc họ F4 dựa trên lõi RISC 32 bit ARM Cortex -M4 hiệu suất cao hoạt động ở tần số lên tới 168 MHz. Lõi Cortex-M4 có độ chính xác đơn đơn vị dấu phẩy động (FPU) hỗ trợ tất cả các hướng dẫn và loại dữ liệu xử lý dữ liệu chính xác đơn ARM. Nó cũng thực hiện một bộ đầy đủ các hướng dẫn DSP và bộ bảo vệ bộ nhớ (MPU) để tăng cường bảo mật ứng dụng. Mạch nạp cũng như công cụ lập trình khá đa dạng và dễ sử dụng.

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, máy tính và thiết bị ngoại vi chơi game, GPS cơ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 26 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: có nhiều trình biên dịch cho STM32 như IAR Embedded, Keil C, STMCube IDE,…

Thư viện lập trình: có nhiều loại thư viện lập trình cho STM32 như STM32 Snippets, STMCube HAL và LL, Standard Peripheral Libraries, Mbed Core. Mỗi thư viện đều có ưu khuyết điểm riêng, ở đây nhóm sử dụng thư viện STMCube HAL vì tính phổ biến trong thời gian gần đây, đơn giản và dễ sử dụng .

Mạch nạp: có khá nhiều loại mạch nạp như U-LINK, J-LINK, ST-LINK,… trong đó thông dụng và giá thành thấp nhất là ST-Link.

a. Cấu trúc hệ thống:

Dòng ARM Cortex là một bộ xử lý thế hệ mới đưa ra một kiến trúc chuẩn cho nhu cầu đa dạng về công nghệ. Không giống như những chip ARM khác, dòng Cortex là một lõi xử lý hoàn thiện, đưa ra một chuẩn CPU và kiến trúc hệ thống chung. Dòng Cortex bao gồm 3 nhánh chính:

+ Dòng A dành cho các ứng dụng cao cấp. + Dòng R dành cho các ứng dụng thời gian thực.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 27

Hình 2.19: Sơ đồ cấu trúc các khối của STM32F407

b. Cấu trúc bộ nhớ, thanh ghi:

Bộ nhớ chương trình, bộ nhớ dữ liệu, thanh ghi và cổng I / O được tổ chức trong cùng một không gian địa chỉ 4 Gbyte tuyến tính.

Các byte được mã hóa trong bộ nhớ ở định dạng endian nhỏ. Byte được đánh số thấp nhất trong một từ được coi là byte byte có ý nghĩa nhỏ nhất và byte được đánh số cao nhất, từ có ý nghĩa nhất.

Tất cả các vùng nhớ không được phân bổ cho các bộ nhớ và thiết bị ngoại vi trên chip đều được coi là Reserved.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 28

Bảng 2.1: Sơ đồ bộ nhớ

Tổ chức bộ nhớ của ARM Cortex M4 có dung lượng là 4GB được chia làm 8 block từ Block 0 đến Block 7 mỗi block có dung lượng là 512MB.

Bảng 2.2: Địa chỉ giới hạn của các ngoại vi

0xFFFF FFFF

0xE000 0000

Block 7 512MB

Các ngoại vi nội của Cortex M4 0xDFFF FFFF 0xC000 0000 Block 6 512MB Không sử dụng 0xBFFF FFFF 0xA000 0000 Block 5 512MB Các thanh ghi FSMC 0x9FFF FFFF 0x8000 0000 Block 4 512MB FSMC bank3 và bank4 0x7FFF FFFF 0x6000 0000 Block 3 512MB FSMC bank1 và bank2 0x5FFF FFFF 0x4000 0000 Block 2 512MB Ngoại vi 0x3FFF FFFF 0x2000 0000 Block1 512MB SRAM 0x1FFF FFFF 0x0000 0000 Block 0 512MB Code

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 29

Địa chỉ giới hạn Ngoại vi Bus

0xA000 0000 - 0xA000 0FFF FSMC control register AHB3 0x5006 0800 - 0x5006 0BFF RNG AHB2 0x5006 0400 - 0x5006 07FF HASH 0x5006 0000 - 0x5006 03FF CRYP 0x5005 0000 - 0x5005 03FF DCMI 0x5000 0000 - 0x5003 FFFF USB OTG FS 0x4004 0000 - 0x4007 FFFF USB OTG HS AHB1 0x4002 B000 - 0x4002 BBFF DMA2D 0x4002 8000 - 0x4002 93FF ETHERNET MAC 0x4002 6400 - 0x4002 67FF DMA2 0x4002 6000 - 0x4002 63FF DMA1 0x4002 4000 - 0x4002 4FFF BKPSRAM

0x4002 3C00 - 0x4002 3FFF Flash interface register 0x4002 3800 - 0x4002 3BFF RCC 0x4002 3000 - 0x4002 33FF CRC 0x4002 2800 - 0x4002 2BFF GPIOK 0x4002 2400 - 0x4002 27FF GPIOJ 0x4002 2000 - 0x4002 23FF GPIOI 0x4002 1C00 - 0x4002 1FFF GPIOH 0x4002 1800 - 0x4002 1BFF GPIOG 0x4002 1400 - 0x4002 17FF GPIOF 0x4002 1000 - 0x4002 13FF GPIOE 0x4002 0C00 - 0x4002 0FFF GPIOD 0x4002 0800 - 0x4002 0BFF GPIOC 0x4002 0400 - 0x4002 07FF GPIOB 0x4002 0000 - 0x4002 03FF GPIOA

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30

Bảng 2.3: Tập lệnh thao tác với thanh ghi

Cú pháp Toán hạng Mô tả ngắn gọn Cờ

ADC, ADCS {Rd,} Rn, Op2 Cộng với Carry N,Z,C,V

ADD, ADDS {Rd,} Rn, Op2 Cộng N,Z,C,V

ADD, ADDW {Rd,} Rn, #imm12 Cộng -

ADR Rd, label Tải địa chỉ liên quan đến PC - AND, ANDS {Rd,} Rn, Op2 Logical AND N,Z,C ASR, ASRS Rd, Rm, <Rs|#n> Dịch phải số học N,Z,C

B Label Rẽ nhánh - 0x4001 6800 - 0x4001 6BFF LCD-TFT APB2 0x4001 5800 - 0x4001 5BFF SAI1 0x4001 5400 - 0x4001 57FF SPI6 0x4001 5000 - 0x4001 53FF SPI5 0x4001 4800 - 0x4001 4BFF TIM11 0x4001 4400 - 0x4001 47FF TIM10 0x4001 4000 - 0x4001 43FF TIM9 0x4001 3C00 - 0x4001 3FFF EXTI 0x4001 3800 - 0x4001 3BFF SYSCFG 0x4001 3400 - 0x4001 37FF SPI4 0x4001 3000 - 0x4001 33FF SPI1 0x4001 2C00 - 0x4001 2FFF SDIO

0x4001 2000 - 0x4001 23FF ADC1 - ADC2 - ADC3 0x4001 1400 - 0x4001 17FF USART6 0x4001 1000 - 0x4001 13FF USART1 0x4001 0400 - 0x4001 07FF TIM8 0x4001 0000 - 0x4001 03FF TIM1 0x4000 7C00 - 0x4000 7FFF UART8 APB1 0x4000 7800 - 0x4000 7BFF UART7

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31 BFC Rd, #lsb, #width Xóa Bit Field -

BFI Rd, Rn, #lsb, #width Chèn Bit Field -

BIC, BICS {Rd,} Rn, Op2 Xóa Bit N,Z,C

BKPT #imm Breakpoint -

BL Label Rẽ nhánh với Link -

BLX Rm Rẽ nhánh không trực tiếp với Link -

BX Rm Rẽ nhánh không trực tiếp -

CBNZ Rn, label So sánh và rẽ nhánh nếu Non Zero - CBZ Rn, label So sánh và rẽ nhánh nếu Zero -

CLREX - Xóa độc quyền -

CLZ Rd, Rm Đếm Leading Zeros -

CMN Rn, Op2 So sánh số âm N,Z,C,V

CMP Rn, Op2 So sánh N,Z,C,V

CPSID I Thay đổi trạng thái bộ xử lý, vô hiệu hóa

ngắt -

CPSIE I Thay đổi trạng thái bộ xử lý, kích hoạt ngắt -

Cú pháp Toán hạng Mô tả ngắn gọn Cờ

ADC, ADCS {Rd,} Rn, Op2 Cộng với Carry N,Z,C,V

ADD, ADDS {Rd,} Rn, Op2 Cộng N,Z,C,V

ADD, ADDW {Rd,} Rn, #imm12 Cộng -

ADR Rd, label Tải địa chỉ liên quan đến PC - AND, ANDS {Rd,} Rn, Op2 Logical AND N,Z,C ASR, ASRS Rd, Rm, <Rs|#n> Dịch phải số học N,Z,C

B label Rẽ nhánh -

BFC Rd, #lsb, #width Xóa Bit Field - BFI Rd, Rn, #lsb, #width Chèn Bit Field -

BIC, BICS {Rd,} Rn, Op2 Xóa Bit N,Z,C

BKPT #imm Breakpoint -

BL label Rẽ nhánh với Link -

BLX Rm Rẽ nhánh không trực tiếp với Link -

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32 CBNZ Rn, label So sánh và rẽ nhánh nếu Non Zero -

CBZ Rn, label So sánh và rẽ nhánh nếu Zero -

CLREX - Xóa độc quyền -

CLZ Rd, Rm Đếm Leading Zeros -

CMN Rn, Op2 So sánh số âm N,Z,C,V

CMP Rn, Op2 So sánh N,Z,C,V

CPSID i Thay đổi trạng thái bộ xử lý, vô hiệu hóa

ngắt -

CPSIE i Thay đổi trạng thái bộ xử lý, kích hoạt ngắt -

B label Rẽ nhánh -

BFC Rd, #lsb, #width Xóa Bit Field - BFI Rd, Rn, #lsb, #width Chèn Bit Field -

BIC, BICS {Rd,} Rn, Op2 Xóa Bit N,Z,C

BKPT #imm Breakpoint -

BL label Rẽ nhánh với Link -

BLX Rm Rẽ nhánh không trực tiếp với Link -

BX Rm Rẽ nhánh không trực tiếp -

CBNZ Rn, label So sánh và rẽ nhánh nếu Non Zero - CBZ Rn, label So sánh và rẽ nhánh nếu Zero -

CLREX - Xóa độc quyền -

CLZ Rd, Rm Đếm Leading Zeros -

CMN Rn, Op2 So sánh số âm N,Z,C,V

CMP Rn, Op2 So sánh N,Z,C,V

CPSID i Thay đổi trạng thái bộ xử lý, vô hiệu hóa

ngắt -

CPSIE i Thay đổi trạng thái bộ xử lý, kích hoạt ngắt - BFI Rd, Rn, #lsb, #width Chèn Bit Field -

BIC, BICS {Rd,} Rn, Op2 Xóa Bit N,Z,C

BKPT #imm Breakpoint -

BL label Rẽ nhánh với Link -

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33

BX Rm Rẽ nhánh không trực tiếp -

CBNZ Rn, label So sánh và rẽ nhánh nếu Non Zero - CBZ Rn, label So sánh và rẽ nhánh nếu Zero -

CLZ Rd, Rm Đếm Leading Zeros -

CMN Rn, Op2 So sánh số âm N,Z,C,V

CMP Rn, Op2 So sánh N,Z,C,V

CPSID i Thay đổi trạng thái bộ xử lý, vô hiệu hóa

ngắt -

CPSIE i Thay đổi trạng thái bộ xử lý, kích hoạt ngắt -

2.3.GIỚI THIỆU VỀ PHẦN MỀM LẬP TRÌNH CHO VI ĐIỀU KHIỂN

Phần mềm lập trình cho các dòng vi điều khiển STM32 có nhiều chương trình khác nhau, trong đề tài sử dụng phần mềm STM32CubeIDE. STM32CubeIDE là một bộ công cụ All-in-one hỗ trợ cho việc lập trình vi điều khiển STM32 bằng ngôn ngữ C/C++. Nó được tích hợp với công cụ STM32CubeMX cho phép cấu hình chân và khởi tạo code ban đầu cho dự án mới một cách nhanh chóng, với bộ biên dịch GCC cho Arm và GDB hỗ trợ việc gỡ lỗi (Debug). Được phát triển dựa trên framework ECLIPSE™/CDT , vì thế STM32CubeIDE còn hỗ trợ tích hợp hàng trăm các plugins có sẵn của Eclipse™ IDE. Môi trường lập trình này hoàn toàn miễn phí có giao diện như hình 2.19 rất trực quan và dễ sử dụng.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34

2.4.PHẦN MỀM HỆ ĐIỀU HÀNH THỜI GIAN THỰC RTOS

RTOS là một hệ điều hành mã nguồn mở. Hãng ST phát triển và tích hợp RTOS trong phần mềm sinh code CubeMX của hãng dưới tên FreeRTOS. RTOS có các đặc tính: thực hiện các tác vụ song song, giao tiếp, trao đổi dữ liệu.

Hình 2.20: Logo phần mềm freeRTOS

RTOS là một hệ điều hành mã nguồn mở. Hãng ST phát triển và tích hợp RTOS trong phần mềm sinh code CubeMX của hãng dưới tên FreeRTOS. RTOS có các đặc tính: thực hiện các tác vụ song song, giao tiếp, trao đổi dữ liệu.

Nhân (kernel) của hệ điều hành giao cho CPU thực hiện việc xử lý các task theo những khoảng thời gian. Nó cũng liên tục kiểm tra mức ưu tiên của các task, xắp xếp các thông điệp từ task và tiến hành lập lịch. Trong một hệ thống chạy RTOS, cũng có các tài nguyên dùng chung cùng với phần được cấp phát riêng cho mỗi task. Hình 2.21 mô tả quá trình kernel điều khiển CPU thực hiện các task theo thứ tự ưu tiên từ cao đến thấp.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35

Chương 3. TÍNH TOÁN, THIẾT KẾ VÀ THI CÔNG 3.1.GIỚI THIỆU

Với đề tài “Thiết kế và thi công kit lập trình vi điều khiển arm kết hợp cảm biến y sinh”, nhóm sẽ thiết kế tính toán sơ đồ lắp đặt giữa vi điều khiển ARM với các module để tạo thành một hệ thống hoàn chỉnh. Chúng ta cần phải thiết kế một bộ kit thực hành dễ dàng sử dụng với đầy đủ các tính năng để khai thác các tài nguyên có trên vi điều khiển ARM. Kit lập trình vi điều khiển đáp ứng đầy đủ, nhu cầu về tìm hiểu và phát triển các ứng dụng của các loại cảm biến y sinh trong thực tế.

3.2.TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG3.2.1.Thiết kế sơ đồ khối hệ thống 3.2.1.Thiết kế sơ đồ khối hệ thống

Hình 3.1: Sơ đồ khối hệ thống

3.2.2.Chức năng từng khối a. Khối nguồn

Đây là mạch nguồn thiết kế chính có thể lấy ra được nguồn 5V, 3,3V cấp cho vi xử lý và tất cả các khối hoạt động. Nguyên lý hoạt động bắt đầu cấp nguồn 12V một chiều qua Jack DC, led L1 báo nguồn 12V được cấp qua một điện trở 1k hạn dòng cho

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36 led. Hai IC ổn áp LM2576 5V và LM2576 3,3V sử dụng nguồn vào 12V để tạo ra điện áp 5V và 3,3V, dòng tối đa là 3A cho mỗi nguồn. Hai tụ 100f ổn định đầu vào cho IC ổn áp. Ngõ ra của IC ổn áp sử dụng diode zener ổn áp và mạch cộng hưởng LC giúp ổn định ngõ ra DC lọc bỏ triệt để dao động. Hai led D21 và D18 báo nguồn 5V và 3,3V đã hoạt động, điện trở 220 hạn dòng cho led báo 5V, điện trở 100 hạn dòng cho led báo 3,3V.

Hình 3.2: Sơ đồ nguyên lý mạch nguồn

Mạch sử dụng relay 12V 10A dòng điện điều khiển 30mA để làm khoá bảo vệ. Hai transistor để tạo trạng thái đóng ngắt cho relay. Transistor được chọn là C1815 thuộc loại NPN dễ dàng điều khiển đóng ngắt với dòng Ic tối đa 150mA đủ để tạo dòng cho relay. Hai transistor Q1 và Q2 được mắc nối tiếp với nhau, cực E của Q1 kết nối với cực C của Q2, cực B của Q1 điểu khiển bởi nguồn 5V, cực B của Q2 điều khiển bởi nguồn 3,3V. Điều này tạo nên bộ khoá chỉ khi 2 nguồn 5V và 3,3V tồn tại thì Q1 và Q2 dẫn tạo nên dòng điện điều khiển relay đóng. Chỉ cần ít nhất một trong 2 nguồn 5V hoặc 3,3V bị ngắt (đoản mạch, quá dòng), lập tức hệ thống Q1 và Q2 sẽ bị ngắt ngay lập tức.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37

b. Khối LED đơn

Gồm 8 Led đơn được nối vào 8 chân từ PA0 tới PA7. Có chức năng là dùng để kiểm tra, hiển thị, ứng dụng thay thế trong các bài tập như thực hành các bài led đơn, cảm biến…

Các led được điểu khiển trực tiếp từ ngõ ra của VĐK với mức điện áp 3,3V. Led được sử dụng là led 0805 màu đỏ với các thông số như sau:

− Điện áp hoạt động (Uled): 2,1÷2,6V

− Dòng tối đa (Iled): 10mA

Công thức tính điện trở hạn dòng như sau:

R =U

I =3,3−Uled

Iled = 70 ÷ 120 () (3.1)

Chọn sử dụng điện trở 100

Hình 3.3: Sơ đồ nguyên lý khối LED đơn

c. Khối ma trận phím

Khối ma trận phím gồm ma trận phím 4x4 và 4 nút nhấn đơn được nối trực tiếp đến các chân I/O của VĐK với 4 chân xuất tín hiệu và 4 chân thu tín hiệu. Bốn đèn led báo hiệu nút đã được nhấn, dùng điện trở 100 hạn dòng cho led như trình bày bên trên. Các nút nhấn đơn được kết nối với nguồn 3,3V. Ma trận phím sử dụng dược sắp xếp thành 4 hàng và 4 cột, các chân trên cùng một hàng hoặc trên cùng một cột sẽ được nối với nhau. Ta được 4 đường tín tín hiệu theo hàng và 4 đường theo cột để kết nối với VĐK.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38

Hình 3.4: Sơ đồ nguyên lý khối ma trận phím

d. Khối cảm biến nhiệt độ LM35

Khối nhiệt độ LM35 chuyển đổi nhiệt độ thành tín hiệu điện, truyền cho VDK xử lý và hiển thị lên các khối hiển thị và LCD.

Hình 3.5: Sơ đồ nguyên lý khối nhiệt độ LM35

Khối sử dụng 2 cảm biến LM35 được nối tách biệt với nhau và nối đến một bộ Switch chung. Một tụ điện 10uf được nối đến chân tín hiệu của LM35 đến đảm bảo ổn

Một phần của tài liệu Thiết kế và thi công KIT lập trình vi điều khiển ARM kết hợp cảm biến y sinh (Trang 34)

Tải bản đầy đủ (PDF)

(118 trang)