Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
2,57 MB
Nội dung
BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG 🙡🙡🙡 BÀI TẬP LỚN CUỐI KÌ Nhóm 04 MƠN: HỆ THỐNG NHÚNG Hệ thống nhúng GV: Nguyễn Ngọc Minh HÀ NỘI – 2022 Nhóm BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG 🙡🙡🙡 BÀI TẬP LỚN CUỐI KÌ MƠN: HỆ THỐNG NHÚNG Giảng viên : Nguyễn Ngọc Minh Sinh viên thực hiện: Nhóm Nguyễn Quang Khánh MSV: B18DCDT112 Lê Đăng Khoa MSV: B18DCDT116 Nguyễn Văn Tiến MSV: B18DCDT212 : 04 HÀ NỘI – 2022 Hệ thống nhúng GV: Nguyễn Ngọc Minh LỜI NÓI ĐẦU Ngày việc ứng dụng vi điều khiển, vi xử lý ngày phát triển rộng rãi thâm nhập ngày nhiều vào lĩnh vực kỹ thuật đời sống xã hội Tuy nhiên ứng dụng cho hệ thống nhúng ngày không đơn giản dừng lại điều khiển đèn nhấp nháy, đếm số người vào/ra, hiển thị dịng thơng báo matrix led hay điều khiển ON-OFF động cơ… mà ngày trở nên phức tạp Và với xu hướng tất yếu với phát triển mạnh mẽ công nghệ chế tạo vi mạch, người ta tạo vi điều khiển có cấu trúc mạnh hơn, đáp ứng thời gian thực tốt hơn, chuẩn hóa so với vi điều khiển bit trước Với phát triển mạnh mẽ khoa học, đặc biệt ngành điện tử, phát minh linh kiện điện tử ngày đáp ứng yêu cầu hệ thống Ưu điểm việc sử dụng linh kiện điện tử làm cho hệ thống linh hoạt đa dạng hơn, giá thành thấp độ xác cao Để làm khái quát kiến thức học môn Hệ thống nhúng Chúng em xin làm tập lớn cuối kì để tổng hợp lại em học sau học xong môn học Trong tập lớn chúng em xin làm hai Câu 1: Thuyết minh hệ thống nhúng “xây dựng đồng hồ thời gian thực hiển thị LED thanh” Câu 2: Thiết kế hệ thống đèn giao thông ngã tư, sử dụng led để hiển thị thời gian đếm - Sử dụng timer để đếm thời gian xác 1s Trong q trình thực kiến thức cịn hạn chế nên chúng em khơng tránh khỏi sai sót Do chúng em kính mong nhận đánh giá đóng góp ý kiến để tập chúng em hoàn thiện Chúng em xin trân thành cảm ơn! Mục Lục LỜI NÓI ĐẦU Phần 1: Thuyết minh hệ thống nhúng “đồng hồ thời gian thực hiển thị LED thanh”5 1.1 Giới thiệu chung 1.1.1 Giới thiệu hệ thống thời gian thực 1.1.2 Khái niệm hệ thống thời gian thực 1.2 Tổng quan hệ thống Nhóm Hệ thống nhúng GV: Nguyễn Ngọc Minh 1.3 Sơ đồ tổng thể hệ thống 1.4 Các khối hệ thống 1.4.1 Khối nguồn 1.4.2 Khối Reset 1.4.3 Khối điều khiển 1.4.4 Khối tạo xung dao động 12 1.4.5 Khối hiển thị 13 1.4.6 Khối tạo thời gian thực 14 1.5 Lưu đồ thuật toán 17 Phần 2: Thiết kế hệ thống đèn giao thông ngã tư, sử dụng led để hiển thị thời gian đếm - Sử dụng timer để đếm thời gian xác 1s 17 2.1 Vi xử lí ARM Cortex M3 17 2.2 STM32F103C8T6 18 2.3 Timer 19 2.4 Thiết kế đèn giao thông ngã tư 20 2.4.1 Sơ đồ khối hệ thống 20 2.4.2 Code hệ thống 22 2.4.3 Kết thực nghiệm 29 Nhóm Hệ thống nhúng GV: Nguyễn Ngọc Minh Phần 1: Thuyết minh hệ thống nhúng “đồng hồ thời gian thực hiển thị LED thanh” 1.1 Giới thiệu chung 1.1.1 Giới thiệu hệ thống thời gian thực Trong năm gần đây, hệ thống điều khiển theo thời gian thực lĩnh vực thu hút nhiều ý giới khoa học nghiên cứu khoa học máy tính Trong đó, vấn đề điều hành thời gian thực vấn đề lập lịch đặc biệt quan trọng Một ứng dụng quan trọng hệ thống thời gian thực (RTS) ứng dụng rộng rãi dây truyền sản xuất tự động, robot, điều khiển thí nghiệm tự động, thiết kế đồng hồ hiển thị thời gian thực… Tranh treo tường hiển thị thời gian thực 1.1.2 Khái niệm hệ thống thời gian thực Một hệ thống thời gian thực (RTC) hiểu mơ hình xử lý mà tính đắn hệ thống khơng phụ thuộc vào kết tính tốn logic mà phụ thuộc vào thời gian kết phát sinh Về cấu tạo, RTS thường cấu thành từ thành tố sau: ● Đồng hồ thời gian thực: Cung cấp thông tin thời gian thực ● Bộ điều khiển ngắt: Quản lý biến cố không theo chu kỳ ● Bộ định hiểu: Quản lý trình thực ● Bộ quản lý tài nguyên: Cung cấp tài nguyên máy tính ● Bộ điều khiển thực hiện: Khởi động tiến trình Nhóm Hệ thống nhúng GV: Nguyễn Ngọc Minh 1.2 Tổng quan hệ thống Đây ứng dụng sử dụng vi điều khiển để thiết kế đồng hồ thời gian thực hiển thị led thanh, với yêu cầu đảm bảo về: + Tính thực thi cao, có khả phát triển + Đảm bảo chất lượng, độ xác cao, làm việc lâu dài, bền bỉ + Tiết kiệm chi phí, linh kiện dễ kiếm dễ sử dụng dễ dàng thay xảy cố + Giảm thiểu chi phí, thời gian vận hành, bảo dưỡng sửa chữa + Có thể sử dụng riêng (đồng hồ vạn niên xem giờ, ngày tháng năm) hay sử dụng chung ( lắp vào hệ thống mẹ) Từ yêu cầu hệ thống thiết kế hệ thống theo hướng sử dụng hệ thống thời gian thực cứng với ưu điểm Sau vài điểm giới thiệu: - Sử dụng LED đoạn để hiển thị giá thành rẻ, dễ tìm kiếm - Sử dụng IC thời gian thực DS1307 IC có tác dụng tạo thời gian thực tương đối xác, bao gồm giờ, phút, giây, thứ, ngày, tháng, năm - Sử dụng họ vi điều khiển MCS-51(Atmel) - Sử dụng IC ghi dịch 74HC138 để tăng số lượng chân điều khiển cho vi điều khiển 1.3 Sơ đồ tổng thể hệ thống Sơ đồ tổng quát hệ thống Nhóm Hệ thống nhúng GV: Nguyễn Ngọc Minh Nguyên lý hoạt động sơ đồ tổng thể : ● Khi cho điện áp qua khối nguồn cho vi điều khiển, chương trình vi điều khiển làm việc, đồng thời tạo xung dao động tạo xung nhịp với tần số 12MHz cho VĐK hoạt động ● Chế độ ghi nhận liệu IC thời gian thực đưa tới vi điều khiển, điều kiện START STOP nhận dạng bắt đầu kết thúc truyền chuỗi, lúc ghi IC thời gian thực nhận giá trị thời gian thực (giờ, phút, giây, thứ, ngày, tháng, năm) gửi đến vi điều khiển đồng thời lúc vi điều khiển gán giá trị tương đương giá trị thời gian thực gửi khối hiển thị Lúc IC ghi dịch khối điều khiển gửi tín hiệu đến khối hiển thị ● Các nút ấn khối điều khiển có nhiệm vụ điều chỉnh thời gian ● Khối Reset có nhiệm vụ đưa hệ thống trạng thái ban đầu 1.4 Các khối hệ thống 1.4.1 Khối nguồn Khối nguồn hệ thống Đây mạch dùng để tạo nguồn điện áp chuẩn +5V cấp cho khối điều khiển trung tâm sử dụng IC7805 Đầu vào điện áp xoay chiều sau biến đổi qua máy biến thế, đưa vào Diode cầu dòng điện chiều( lúc điện áp nằm khoảng từ 710V) Sau qua IC ổn áp 7805 tạo nguồn điện áp chuẩn +5V cung cấp cho mạch IC ổn áp 7805: đầu vào > 7V đầu 5V, 500 mA Mạch ổn áp: cần cho vi điều khiển nguồn cho vi điều khiển khơng ổn định treo VĐK, khơng chạy reset liên tục chí chết chíp Nhóm Hệ thống nhúng GV: Nguyễn Ngọc Minh 1.4.2 Khối Reset Khối Reset Khối RESET có tác dụng đưa vi điều khiển trạng thái ban đầu Khi nút Reset ấn điện áp +5V từ nguồn nối vào chân Reset vi điều khiển chạy thẳng xuống đất lúc điện áp chân vi điều khiển thay đổi đột ngột Khối điều khiển nhận biết thay đổi khởi động lại trạng thái ban đầu cho hệ thống 1.4.3 Khối điều khiển Khối điều khiển Gồm nút ấn:cancel, down, up, menu Khi nút ấn tác động làm thay đổi điện áp chân nối với vi điều khiển từ +5V xuống 0V Lúc vi điều khiển nhận biết thay đổi làm thay đổi giá trị đầu ra: - Nút menu: Để chuyển chế độ chỉnh thời gian - Nút up: Tăng giá trị cần điều chỉnh ++1 Nhóm Hệ thống nhúng GV: Nguyễn Ngọc Minh - Nút down: Giảm giá trị cần điều chỉnh –1 - Cancel: thoát trạng thái điều chỉnh a IC giải mã 74HC138 Sơ đồ chân 74HC138 IC 74HC138 giả mã địa với đầu vào ( A,B,C) đầu phủ định (Y0 đến Y7 ) Nó có đầu vào cho phép: đầu vào tích cực thấp (G2A,G2B) đầu vào tích cực mức cao (G1) Tất đầu 74HC138 mức cao trừ G2A mức thấp G1 mức cao Khi đầu vào G2A,G2B mức thấp G1 mức cao đầu 74HC138 định đầu vào 10 Nhóm Hệ thống nhúng GV: Nguyễn Ngọc Minh Khối điều khiển Đèn tín hiệu giao thơng Dual 7seg Dual 7seg Các chân tín hiệu Hướng dọc Đèn tín hiệu giao thơng Hướng ngang Giải thích: cụm led đoạn kết nối chân tín hiệu kết nối với nối với vi xử lí thơng qua điện trở Các chân tín hiệu tín hiệu anode chung khối led bên trái phải chung với Các chân anode chung khối bên nối chung với Như đèn bên trái phải có trạng thái giống Tương tự đèn bên bên Bảng trạng thái hệ thống đèn giao thông sau: 23 Nhóm Hệ thống nhúng GV: Nguyễn Ngọc Minh Trạng thái Hướng ngang Hướng dọc Đỏ Xanh Đếm từ 30 Đếm từ 25 Đỏ Vàng Đếm từ Hiển thị số Xanh Đỏ Đếm từ 25 Đếm từ 30 Vàng Đỏ Hiển thị số Đếm từ 2.4.2 Code hệ thống Ý tưởng: nhóm em sử dụng timer để tạo tần số 1Hz, sau cài đặt ngắt tràn cho timer Chúng em sử dụng biến toàn cục để hiển thị trạng thái của ngắt: có ngắt xảy biến chuyển thành 1, chưa xảy ngắt tràn biến 0; Khi chưa có ngắt tràn xảy em thực quét led Việc quét Led thực sau: xuất số cần hiển thị chân tín hiệu led đoạn, sau xuất tín chân anode chung led cần hiển thị mức hight, dừng lại khoảng thời gian ngắn Em làm với led lại Khi có ngắt tràn xảy việc qt led dừng lại để chuyển tới số trạng thái 24 Nhóm Hệ thống nhúng GV: Nguyễn Ngọc Minh /* Bai tap lon mon hoc: He thong nhung Thiet ke den giao thong Le Dang Khoa - B18DCDT116 Nguyen Quang Khanh - B18DCDT116 Nguyen Van Tien - B18DCDT212 */ #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "delay.h" #define time_yel //time for yellow light #define LED7SEG_A GPIO_Pin_0 #define LED7SEG_B GPIO_Pin_1 #define LED7SEG_C GPIO_Pin_2 #define LED7SEG_D GPIO_Pin_3 #define LED7SEG_E GPIO_Pin_4 #define LED7SEG_F GPIO_Pin_5 #define LED7SEG_G GPIO_Pin_6 #define LED7SEG_DP GPIO_Pin_7 #define LED3 GPIO_Pin_0 #define LED4 GPIO_Pin_1 //y #define LED1 GPIO_Pin_7 #define LED2 GPIO_Pin_8 #define LED_Do //x GPIO_Pin_9 25 Nhóm Hệ thống nhúng GV: Nguyễn Ngọc Minh #define LED_Vang GPIO_Pin_10 #define LED_Xanh GPIO_Pin_11 #define LED_Do1 GPIO_Pin_12 #define LED_Vang1 GPIO_Pin_13 #define LED_Xanh1 GPIO_Pin_14 #define PORT_LED7SEG_CODE GPIOA #define PORT_LED GPIOB #define PORT_LED7SEG_CODE_CLOCK #define PORT_LED_CLOCK RCC_APB2Periph_GPIOA RCC_APB2Periph_GPIOB uint16_t LED7SEG[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; uint8_t Interup_Status; void Delay(uint32_t); void GPIO_Config(void); void Clock_Config(void); void Init_Timer2(void); void TIM2_IRQHandler(void); void Scan_LED_STT1(int i); void Scan_LED_STT2(int i); void Scan_LED_STT3(int i); void Scan_LED_STT4(int i); int main(void) { Clock_Config(); // configuraion clock 26 Nhóm Hệ thống nhúng GV: Nguyễn Ngọc Minh SystemCoreClockUpdate(); // update SystemCoreClock varibale GPIO_Config(); Init_Timer2(); GPIO_ResetBits(PORT_LED, LED_Do); GPIO_ResetBits(PORT_LED, LED_Vang); GPIO_ResetBits(PORT_LED, LED_Xanh); GPIO_ResetBits(PORT_LED, LED_Do1); GPIO_ResetBits(PORT_LED, LED_Vang1); GPIO_ResetBits(PORT_LED, LED_Xanh1); while(1){ int i; //status x: red 30 -> // y: green 25 -> for(i = 30; i > time_yel; i ){ GPIO_SetBits(PORT_LED, LED_Do); GPIO_SetBits(PORT_LED, LED_Xanh1); Scan_LED_STT1(i); } GPIO_ResetBits(PORT_LED, LED_Xanh1); //status x: red -> // y: yellow for(i = time_yel; i >= 0; i ){ GPIO_SetBits(PORT_LED, LED_Do); GPIO_SetBits(PORT_LED, LED_Vang1); Scan_LED_STT2(i); } GPIO_ResetBits(PORT_LED, LED_Do); 27 Nhóm Hệ thống nhúng GV: Nguyễn Ngọc Minh GPIO_ResetBits(PORT_LED, LED_Vang1); //status y: red 30 -> // x: green 25 -> for(i = 30; i > time_yel; i ){ GPIO_SetBits(PORT_LED, LED_Xanh); GPIO_SetBits(PORT_LED, LED_Do1); Scan_LED_STT3(i); } GPIO_ResetBits(PORT_LED, LED_Xanh); //status y: red -> // x: yellow for(i = time_yel; i >= 0; i ){ GPIO_SetBits(PORT_LED, LED_Vang); GPIO_SetBits(PORT_LED, LED_Do1); Scan_LED_STT4(i); } GPIO_ResetBits(PORT_LED, LED_Vang); GPIO_ResetBits(PORT_LED, LED_Do1); } } /*Delay tuong doi*/ void Delay(uint32_t t) { unsigned int i; for(i=0;i