Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
851,76 KB
Nội dung
ĐỀ CƯƠNG : ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG Tên đề tài: Thiết kế ổ khóa đóng mở cửa key pad , Đọc thời gian thực RTC thị lên LCD PASSWORD Thành viên nhóm: • • Mục Tiêu : - Tìm hiểu vi điều khiển STM32 - Tìm hiểu Hệ Điều Hành FreeRTOS - Tìm hiểu thêm giao tiếp ngoại vi RTC, I2C - Hoàn thành mạch ổn định : + Sử dụng Module RTC (Nguồn Thạch anh nội LSE) + Sử dụng Keypad 4x4 + Màn hình LCD hiển thị nội dung + Động Cơ Servo Kết thu : - Mạch thật có tính ổn định cao - Sơ đồ khối hệ thống : Hiện thị ngày lên LCD 20x4 Keypad 4x4 Vi điều Khiển STM32 Mở cửa Nếu pass Hiển thị LCD,PASS • Thực : Linh kiện : STM32F103C8T6, Module I2C , Module RTC (Có sẵn STM32) ,Keypad 4x4, Màn hình LCD Viết code - Thiết kế phần cứng, hồn thiện mạch Phân cơng cơng việc : Thành : Tìm hiểm đề tài, lập trình thư viện cho LCD theo chuẩn I2C Hồng : lập trình thư viện RTC đọc ngày tháng năm Đại : Tìm hiểu Bàn phím keypad viết code Keypad Hiếu : Điều khiển động servo PWM với Kết hợp tìm hiểu Hệ điều hành FREERTOS - • I Tìm hiểu Hệ Điều Hành FreeRTOS hệ điều hành nhúng thời gian thực (Real Time Operating System) mã nguồn mở phát triển Real Time Engineers Ltd, sáng lập sở hữu Richard Barry FreeRTOS thiết kế phù hợp cho nhiều hệ nhúng nhỏ gọn triển khai chức như: chế quản lý nhớ tác vụ bản, hàm API quan trọng cho chế đồng Nó khơng cung cấp sẵn giao tiếp mạng, drivers, hay hệ thống quản lý tệp (file system) hệ điều hành nhúng cao cấp khác Tuy vậy, FreeRTOS có nhiều ưu điểm, hỗ trợ nhiều kiến trúc vi điều khiển khác nhau, kích thước nhỏ gọn (4.3 Kbytes sau biên dịch Arduino), viết ngôn ngữ C sử dụng, phát triển với nhiều trình biên dịch C khác (GCC, OpenWatcom, Keil, IAR, Eclipse, …), cho phép không giới hạn tác vụ chạy đồng thời, không hạn chế quyền ưu tiên thực thi, khả khai thác phần cứng Ngồi ra, cho phép triển khai chế điều độ tiến trình như: queues, counting semaphore, mutexes.(Theo Wiki Media) II Tìm hiểu hệ điều hành nhúng FreeRTOS FreeRTOS hệ điều hành nhúng thời gian thực (Real Time Operating System) mã nguồn mở phát triển Real Time Engineers Ltd, sáng lập sở hữu Richard Barry FreeRTOS thiết kế phù hợp cho nhiều hệ nhúng nhỏ gọn triển khai chức như: chế quản lý nhớ tác vụ bản, hàm API quan trọng cho chế đồng Nó khơng cung cấp sẵn giao tiếp mạng, drivers, hay hệ thống quản lý tệp (file system) hệ điều hành nhúng cao cấp khác Tuy vậy, FreeRTOS có nhiều ưu điểm, hỗ trợ nhiều kiến trúc vi điều khiển khác nhau, kích thước nhỏ gọn (4.3 Kbytes sau biên dịch ARM7), viết ngơn ngữ C sử dụng, phát triển với nhiều trình biên dịch C khác (GCC, OpenWatcom, Keil, IAR, Eclipse, …), cho phép không giới hạn tác vụ chạy đồng thời, không hạn chế quyền ưu tiên thực thi, khả khai thác phần cứng Ngồi ra, cho phép triển khai chế điều độ tiến trình như: queues, counting semaphore, mutexes FreeRTOS hệ điều hành nhúng phù hợp cho nghiên cứu, học tập kỹ thuật, công nghệ viết hệ điều hành nói chung hệ điều hành nhúng thời gian thực nói riêng, việc phát triển mở rộng tiếp thành phần cho hệ điều hành hành (bổ sung modules, driver, thực porting) Embedded247 trân trọng giới thiệu số viết liên quan tìm hiểu khai thác hệ điều hành Triển khai project FREERTOS Project mục Demo hình Trong có khai báo tham chiếu đến mục cịn lại Các file cần khai báo vào project gồm: § FreeRTOS.h: File nhằm định hướng cho hệ điều hành xem sử dụng chức Kiểm tra xem FreeRTOSconfig.h định nghĩa ứng dụng macro phụ thuộc vào chương trình cách rõ ràng hay chưa Nếu hàm macro muốn sử dụng cần đặt lên 1, ngược lại đặt § Task.h: Gồm năm phần macro định nghĩa; Các task tạo API; Các task điều khiển API; Các task tiện ích; Bộ lập lịch § List.h: Trong file list.h, FreeRTOS định nghĩa cấu trúc, macro hàm phục vụ cho tiện ích danh sách Chức file tạo mới, thêm, bớt cá c tác vụ vào danh sách task chạy (running), sẵn sàng (ready), khố (block), treo (suppend) § croutine.h: Tạo hàm macro liên quan đến task queue Quá trình thực khởi động xong hệ điều hành nhúng FreeRTOS trả quyền điều khiển cho chương trình viết main Trong main thực cơng việc: § Khởi tạo task, khởi tạo cho thiết bị ngoại vi hình, thiết lập ngắt… § Tạo task ứng dụng: điều khiển led task đọc giá trị ADC hiển thị lên hình § Khởi động lập lịch – Schedule § Trong idleTask task rỗng, có chức để trì hệ thống, hệ thống ln phải có task; § Hàm prvSetupHardware thực khởi tạo, cụ thể thiết lập cổng P2 chức GPIO output để điều khiển dãy led; § Các hàm lcd thực khởi tạo cho LCD, khởi tạo ADC § Hàm vInitIntContrlLed() thực modul điều khiển dãy led hiển thị lên hình § Cuối vTaskStartScheduler để lập lịch task đưa vào hoạt động Biên dịch project Keil nạp lên KIT III RTOS hoạt động nào? RTOS thường phân đoạn chương trình Tại có nhiệm vụ giải điều phối tác vụ (task), lập lịch phân mức ưu tiên cho chúng Việc thực chế Hướng kiện (Event-driven) Chia sẻ thời gian (Time-sharing) Cơ chế Hướng kiện điều hướng tác vụ dựa mức độ ưu tiên Chia sẻ thời gian làm nhiệm vụ chuyển đổi tác vụ RTOS kèm theo thuật Preemptive scheduling (Đặt lịch trước) Các chức RTOS: • Bộ lập lịch (Scheduler) • Dịch vụ thời gian thực (Real Time Services) • Đồng thơng điệp (Synchronization and Messaging) Trong Scheduler có trạng thái mặc định: • Ready to run: Trạng thái chuẩn bị tác vụ • Running: Trạng thái tác vụ thực thi • Blocked: Các tác vụ không đủ tài nguyên xử lý trạng thái khóa Dịch vụ thời gian thực • Dịch vụ xử lý ngắt (Interrupt handling services) • Dịch vụ thời gian (Time services) • Dịch vụ quản lý thiết bị (Device management services) • Dịch vụ quản lý nhớ (Memory management services) • Dịch vụ quản lý kết nối (IO services) IV Ưu điểm RTOS Ưu điểm lớn RTOS xử lý nhanh chóng dành cho thiết bị đòi hỏi khả xử lý có độ trễ thấp Lợi ích đem lại bao gồm đa nhiệm tốt, ưu tiên nhiệm vụ quản lý chia sẻ tài ngun Ngồi khơng địi hỏi nhiều tài nguyên hay nhớ RAM lớn Hệ điều hành RTOS sử dụng phổ biến nhiều ngành cơng nghiệp, thiết bị chăm sóc sức khỏe IoT (như smartwatch) hay ngành hàng khơng V Lập trình với KEYPAD Ma trận phím tập hợp nút nhấn kết nối với theo hàng cột Số nút nhấn tương ứng tích số hàng nhân số cột Ví dụ: Ma trận phím 4x4 có cột hàng Số lượng phím 16 phím Để điều khiển 16 nút nhấn, thơng thường phải sử dụng 16 GPIO sử dụng ma trận phím cần sử dụng GPIO Các nút nhấn nối hàng cột với Khi nhần nút dây Hàng (Row) nối với dây Cột (Colum hay Col) Các nút nhấn tương ứng có vị trí nối hàng với cột khác Ví dụ: Nút ma trận nhấn nối với Cột (C1) với Hàng (R1), nút liền kề bên phải nhấn nối với Cột (C2) vời Hàng (R1) Tương tự với nút khác Quét phím điều khiển ma trận phím Keypad 4x4 Theo Keypad mơ ta có cột: 1,2,3 hàng: ABCD Sau kết nối hàng cột tương ứng vào chân PB:8,9,10,11,12,13,14,15 Có cách xác định phím nhấn phương pháp quét: Quét theo hàng quét theo cột - Quét theo hàng: chân I/O nối với cột input, chân I/O nối với hàng ouput thực việc qt phím - Qt theo cột ngược lại Ý tưởng quét theo hàng mô sau: Đầu tiên kéo chân kết nối với hàng xuống mức thấp, chân cột lên mức cao Khi có phím nhấn bắt đầu tìm vị trí phím Lần lượt xét trường hợp sau: hàng A hàng B, C, D suy đọc tín hiệu vào cột (1,2,3), có cột kéo xuống mức thấp thực lệnh tương ứng xuất vị trí phím Nếu khơng có phím nhấn tiếp tục cho hàng (các hàng lại 1) đến tìm vị trí phím nhấn VD: Cho tất hàng xuống mức 0, cột lên mức để phát kiện nhấn phím Giả sử phím B3 nhấn Ta thực việc tìm vị trí phím Cho A=0, B=C=D=1, chân cột mức cao suy phím hàng A khơng nhấn Cho B=0, A=C=D=1, chân I/O cột thứ kéo xuống mức thấp suy phím B3 nhấn xuất vị trí phím thực đoạn lệnh tương ứng với phím Do tìm phím nhấn nên khơng quan tâm trường hợp cịn lại, khỏi chương trình tìm phím quay trở bước ban đầu V Giới thiệu I2C LCD I2C ( Inter – Integrated Circuit) giao thức giao tiếp nối tiếp đồng phát triển Philips Semiconductors, sử dụng để truyền nhận liệu IC với sử dụng hai đường truyền tín hiệu I2C sử dụng đường truyền tín hiệu: ➢ SCL - Serial Clock Line : Tạo xung nhịp đồng hồ Master phát ➢ SDA – Serial Data Line : Đường truyền nhận liệu PROTOCOL I2C Các tổ chức liệu thiết bị I2C Quá trình truyền liệu đến thiết bị I2C Bước 1: Master gửi tín hiệu start I2C Bước 2: Master gửi địa thiết bị I2C (7 bit) kèm bit Write (bit 0); Bước 3: Master gửi địa ghi liệu Slave muốn ghi giá trị Bước 4: Master gửi giá trị mà muốn ghi vào thành ghi bước Bước 5: Master tạo tín hiệu stop Q trình nhận liệu từ thiết bị I2C Bước 1: Master gửi tín hiệu start I2C Bước 2: Master gửi địa thiết bị I2C (7 bit) kèm bit Write (bit 0) Bước 3: Master gửi đia ghi Slave mà muốn đọc liệu Bước 4: Master gửi tín hiệu Repeated Start Bước 5: Master gửi địa thiết bị I2C (7 bit) kèm bit Read (bit 1) Bước 6: Master đọc liệu chứa ghi bước từ Slave gửi Bước 7: Master tạo tín hiệu Stop Q trình giao tiếp module LCD I2C PCF8574 Vận dụng lập trình sử dụng STM32F103C8T6 thực trình I2C ghi liệu Bước 1: Gửi tín hiệu Start Bước 2: Gửi địa thiết bị I2C: PCF8574 Bước 3: Master truyền liệu tới Slave Bước 4: Tạo tín hiệu Stop VI RTC Trong STM32 RTC(Real time clock ) thời gian thực tích hợp sẵn STM32F103 Thay phải gắn thêm IC thời gian thực để đọc ngày tháng năm, phút giây khơng phải dùng dùng STM32F103 Một số ứng dụng làm đồng hồ, mạch kiểm soát thời gian, báo thức, đếm thời gian… Bộ RTC sử dụng timer độc lập, tách biệt với timer khác Việc cài đặt thời gian, đọc thời gian trở nên dễ dàng cách tác động trực tiếp vào ghi thời gian MCU Nguồn clock cấp cho RTC hoạt động sử dụng nguồn sau: • HSE : sử dụng thạch anh ngồi tốc độ cao 62.5 Khz • LSI RC: sử dụng giao động RC nội tốc độ 40Khz • LSE : sử dụng thạc anh tốc độ thấp 32.768khz Thạch anh giúp MCU hoạt động ổn định Khi cần backup data nguồn chân VDD cần có điều kiện sử dụng thạch anh ngồi có điện áp chân VBAT Các chức RTC: • Bộ chia clock lên đến 20 bit, giúp RTC hoạt động xác • Độ phân giải timer RTC lên đến 32 bit – tức 2^32 giây tràn cần reset lại • nguồn clock source sử dụng • loại Reset RTC riêng biệt • Có ngắt hỗ trợ : ngắt Alarm, ngắt giây, ngắt tràn đếm Cấu hình sử dụng thư viện chuẩn Vd: Cấu hình sử dụng RTC sử thạch anh ngoài(LSE, HSE – thạch anh 32.768khz, 8Mhz), sử dụng backup data để kiểm tra xem cấu hình RTC hay chưa, Cho phép ngắt 1s để 1s in thời gian lên máy tính thơng quan UART LED chân PB9 hiển thị trình ngắt 1s cách chớp - tắt chu kì 2s • Kiểm tra có loại thạch anh ngồi(LSE, HSE) hay chưa cịn sử dụng hay khơng • Chân PC14,PC15 sử dụng riêng cho thạch ngồi • Nối chân Vbat với nguồn riêng, khác nguồn cấp với VĐK Nếu nguồn riêng nối chung với nguồn cấp cho VĐK, nhiên hoạt động chế độ kiểm tra có tín hiệu reset chân Reset khơng, cịn tắt nguồn hệ thống reset lại từ đầu Tóm tắt cách thức hoạt động chương trình: Đầu tiên, chương trình gọi chương trình cấu hình(GPIO, UART, NVIC) để chúng hoạt động Tiếp đến kiểm tra ghi có backup data hay chưa cách đọc data ghi DR1 so sánh chúng với 0xA5A5 • Nếu chưa có thơng báo chưa cấu hình, gọi chương trình cấu hình, chương trình set thời gian, ghi data 0xA5A5 vào ghi DR1 để sau reset cịn kiểm tra • Nếu cấu hình kiểm tra nguyên nhân Reset đưa nguyên nhân nguồn bị tắt nhấn nút reset Trong vòng lặp while : cờ báo có ngắt 1s xảy đọc ghi thời gian in lên máy tính thơng qua UART, xóa cờ ngắt báo 1s Chương trình thực thi ngắt 1s đặt file stm3210x_it.c ... FreeRTOS thiết kế phù hợp cho nhiều hệ nhúng nhỏ gọn triển khai chức như: chế quản lý nhớ tác vụ bản, hàm API quan trọng cho chế đồng Nó khơng cung cấp sẵn giao tiếp mạng, drivers, hay hệ thống. .. với Kết hợp tìm hiểu Hệ điều hành FREERTOS - • I Tìm hiểu Hệ Điều Hành FreeRTOS hệ điều hành nhúng thời gian thực (Real Time Operating System) mã nguồn mở phát triển Real Time Engineers Ltd, sáng... hiểu hệ điều hành nhúng FreeRTOS FreeRTOS hệ điều hành nhúng thời gian thực (Real Time Operating System) mã nguồn mở phát triển Real Time Engineers Ltd, sáng lập sở hữu Richard Barry FreeRTOS thiết