Đồ án Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet (Phần 1)

pdf 22 trang phuongnguyen 50
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_thiet_ke_thi_cong_mo_hinh_quan_ly_giam_sat_nuoi_trong.pdf

Nội dung text: Đồ án Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet (Phần 1)

  1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐÀO TẠO CHẤT LƯỢNG CAO NGÀNH ĐIỆN TỬ CÔNG NGHIỆP ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: THIẾT KẾ THI CÔNG MÔ HÌNH QUẢN LÝ GIÁM SÁT NUÔI TRỒNG THỦY HẢI SẢN QUA INTERNET GVHD : ThS.NGUYỄN ĐÌNH PHÚ SVTH : NGUYỄN ANH GIA BẢO MSSV : 13141455 SVTH : HUỲNH HOÀI TÂM MSSV : 13141615 Lớp : 13141CLDT1-13141CLDT2 Khoá : 2013-2017 S K L 0 0 5 0 2 3 Tp. Hồ Chí Minh, tháng 07/2017
  2. CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc Tp. Hồ Chí Minh, ngày tháng 7 năm 2017 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ và tên sinh viên: NGUYỄN ẢNH GIA BẢO MSSV: 13141455 HUỲNH HOÀI TÂM MSSV: 13141615 Ngành: ĐIỆN TỬ TRUYỂN THÔNG Chuyên ngành: ĐIỆN TỬ CÔNG NGHIỆP Lớp:13141CLDT1-13141CLDT2 Giảng viên hƣớng dẫn: ThS.NGUYỄN ĐÌNH PHÚ 1. Tên đề tài: THIẾT KẾ THI CÔNG MÔ HÌNH QUẢN LÝ GIÁM SÁT NUÔI TRỒNG THỦY HẢI SẢN QUA INTERNET. 2. Các số liệu ban đầu: 3. Nội dung thực hiện đề tài: - Nghiên cứu về ngôn ngữ lập trình của STM32F103VET6. - Giao tiếp với màn hình 7” cảm ứng điện dung. - Thiết kế và lập trình thu thập dữ liệu từ các cảm biến. - Thiết kế và lập trình giao tiếp module ESP8266 để nhập và gửi dữ liệu. - Thiết kế và lập trình web để có thể quản lý theo dõi thông tin dữ liệu. - Thi công mô hình thiết bị và cân chỉnh. 4. Sản phẩm: Mô hình. TRƢỞNG NGÀNH GIẢNG VIÊN HƢỚNG DẪN i
  3. CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc PHIẾ U NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN Họ và tên Sinh viên: MSSV: Họ và tên Sinh viên: MSSV: Ngành: Tên đề tài: Họ và tên Giáo viên hƣớng dẫn: NHẬN XÉT 1. Về nội dung đề tài & khối lƣợng thực hiện: 2. Ƣu điểm: 3. Khuyết điểm: 4. Đề nghị cho bảo vệ hay không? 5. Đánh giá loại: 6. Điểm: .(Bằng chữ: ) Tp. Hồ Chí Minh, ngày tháng năm 20 Giáo viên hƣớng dẫn (Ký & ghi rõ họ tên) ii
  4. CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc PHIẾ U NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ và tên Sinh viên: MSSV: Họ và tên Sinh viên: MSSV: Ngành: Tên đề tài: Họ và tên Giáo viên phản biện: NHẬN XÉT 1. Về nội dung đề tài & khối lƣợng thực hiện: 2. Ƣu điểm: 3. Khuyết điểm: 4. Đề nghị cho bảo vệ hay không? 5. Đánh giá loại: 6. Điểm: .(Bằng chữ: ) Tp. Hồ Chí Minh, ngày tháng năm 20 Giáo viên phản biện (Ký & ghi rõ họ tên iii
  5. LỜI CẢM ƠN Xin chân thành cảm ơn chân thành đến quý thầy cô khoa Điện tử– truyền thông đã giảng dạy em trong suốt bốn năm học và tạo điều kiện thuận lợi để nhóm em thực hiện đề tài. Cảm ơn gia đình, cha mẹ đã là nguồn động viên to lớn về vật chất và tinh thần trong suốt thời gian học hành, để em có đƣợc tƣơng lai, theo đuổi ƣớc mơ và sự nghiệp. Đặc biệt cảm ơn thầy Nguyễn Đình Phú đã tạo điều kiện và hƣớng dẫn em cách học tập cũng nhƣ nghiên cứu để hoàn thành tốt đồ án tốt nghiệp. Cuối cùng xin chúc gia đình, bạn bè và quý thầy, cô nhiều sức khỏe và thành công trong công việc. Xin chân thành cảm ơn! Nhóm thực hiện đề tài iv
  6. TÓM TẮT Ngày nay, dƣới sự phát triển mạnh mẽ của khoa học kỹ thuật đã làm cho cuộc sống con ngƣời ngày càng tốt hơn, tiện nghi hơn, trong đó phải kể đến vai trò của bộ điều khiển và giám sát, chúng đƣợc sử dụng rộng rãi trong nhiều lĩnh vực trong đời sống cũng nhƣ trong công nghiệp. Đã có nhiều dự án về bộ điều khiển và giám sát. Tuy nhiên, chúng khó đƣợc triển khai do mắc phải một số nhƣợc điểm chính nhƣ chi phí lắp đặt, giao diện điều khiển chƣa thân thiện với ngƣời dùng. Do đó, để khắc phục những nhƣợc điểm trên mà vẫn đảm bảo hạ giá thành sản phẩm nhóm đã quyết định thiết kế, thi công mô hình quản lý và giám sát nuôi trồng thủy sản qua internet, trong đó sử dụng vi xử lý trung tâm là ARM STM32F103VET6, ngoài ra còn có thể quản lý và giám sát các dữ liệu qua intenet và màn hình LCD 7” cảm ứng điện dung. v
  7. MỤC LỤC PHIẾ U NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN ii PHIẾ U NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iii LỜI CẢM ƠN iv TÓM TẮT v DANH MỤC HÌNH ẢNH, BIỂU ĐỒ viii DANH MỤC BẢNG x Chƣơng 1 1 TỔNG QUAN 1 1.1 TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU 2 1.2 MỤC ĐÍCH VÀ GIỚI HẠN ĐỀ TÀI 2 1.3 NỘI DUNG THỰC HIỆN 2 Chƣơng 2 3 CƠ SỞ LÝ THUYẾT 3 2.1 VI ĐIỀU KHIỂN 4 2.1.1 Bộ xử lý ARM CORTEX – M3 4 2.1.2 Vi điều khiển STM32F103 6 2.1.2.1 Cấu trúc hệ thống và bộ nhớ 6 2.1.2.2 Reset And Clock Control 8 2.1.2.3 GPIO và AFIO 10 2.1.2.4 Ngắt và các sự kiện 11 2.1.2.5 Timer 12 2.1.2.6 SPI 15 2.1.2.7 I2C 17 2.1.2.8 ADC 18 2.2 MODULE LCD TFT 20 2.3 CẢM BIẾN NHIỆT ĐỘ ĐỘ ẨM DHT11 21 2.3.1 Giới thiệu 21 2.3.2 Nguyên lý hoạt động 21 2.4 CẢM BIẾN KHÍ CO MQ2 24 2.4.1 Giới thiệu: 24 2.5 GIỚI THIỆU VỀ MODULE ESP8266 26 2.5.1 Tổng quan 26 2.5.2 Thông số kỹ thuật 27 vi
  8. 2.5.3 Chân kết nối của ESP8266 28 2.5.4 Chức năng của Module ESP8266 29 2.5.5 Sử dụng Arduino IDE để lập trình cho ESP8266 29 2.6 TÌM HIỂU VỀ PHP 33 2.6.1 Giới thiệu về PHP 33 2.6.2 PHP cơ bản 35 2.6.3 PHP MySQL 40 Chƣơng 3 44 THIẾT KẾ HỆ THỐNG 44 3.1 THIẾT KẾ HỆ THỐNG 45 3.1.1 Sơ đồ khối hệ thống 45 3.1.2 Khối hiển thị 45 3.1.3 Khối cảm biến 47 3.1.4 Khối nguồn 47 3.1.5 Khối cảnh báo 48 3.1.6 Khối Wifi 49 3.1.7 Khối xử lý 49 3.2 LƢU ĐỒ GIẢI THUẬT CHƢƠNG TRÌNH 50 Chƣơng 4 55 4.1 KẾ T QUẢ ĐAṬ ĐƢỢC PHẦN LÝ THUYẾ T. 56 4.2 KẾT QUẢ ĐAṬ ĐƢỢC PHẦN THƢC̣ HÀ NH. 56 4.2.1 Thiết kế mạch in 56 4.2.2 Thi công mạch thực tế 58 4.2.3 Giao diện giao tiếp ngƣời dùng 58 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 65 5.1 KẾT LUẬN 66 5.2 HƢỚNG PHÁT TRIỂN 66 TÀI LIỆU THAM KHẢO 67 PHỤ LỤC 68 vii
  9. DANH MỤC HÌNH ẢNH, BIỂU ĐỒ Hình 2.1: Cấu trúc vi điều khiển Cortex - M3. 5 Hình 2. 2: Cấu trúc hệ thống. 7 Hình 2.3:Mạch Reset. 9 Hình 2.4: Bộ nguồn xung bên ngoài. 10 Hình 2.5: Sơ đồ khối của TIMER. 13 Hình 2. 6: Chế độ Capture/Compare kênh 1. 14 Hình 2.7: Dạng sóng Edge-alibned PWM. 15 Hình 2.8: Sơ đồ khối SPI. 16 Hình 2.9: Phƣơng thức truyền I2C. 17 Hình 2.10: Sơ đồ khối I2C. 18 Hình 2.11: Bộ ADC STM32 19 Hình 2.12: Màn hình LCD TFT. 20 Hình 2.13: Cảm biến độ ẩm DHT11 21 Hình 2.14: Sơ đồ kết nối vi xử lý. 22 Hình 2.15: Quá trình truyền tín hiệu. 22 Hình 2.16: Tín hiệu mức 0. 23 Hình 2.17: Tín hiệu mức 1. 24 Hình 2.18: Hình dáng của cảm biến MQ-2. 25 Hình 2.19: Sơ đồ chân cảm biến MQ-2. 25 Hình 2.20: Sơ mạch điện của MQ-2. 26 Hình 2.21: Module ESP8266 v1. 27 Hình 2.22: Sơ đồ chân ESP 8266 v1. 28 Hình 2.23:Chọn board ESP8266 30 Hình 2.24: Nạp chƣơng trình xuống ESP 8266. 32 Hình 2. 25: Thông báo upload thành công. 32 Hình 2.26: Thông báo đã kết nối thành công. 33 Hình 2.27: Cách thức hoạt động của PHP. 35 Hình 3.1: Sơ đồ khối của hệ thống. 45 Hình 3.2: Sơ đồ kết nối chân GLCD với vi điều khiển. 46 Hình 3.3: Sơ đồ kết nối của cảm biến DHT11 và MQ2 với vi điều khiển. 47 Hình 3.4: Khối nguồn cung cấp cho vi điều khiển và ESP8266. 48 Hình 3.5: Sơ đồ kết nối chân Buzzer với vi điều khiển. 48 Hình 3.6: Sơ đồ kết nối ESP8266 với vi điều khiển. 49 Hình 3.7: Sơ đồ kết nối với vi điều khiển 50 Hình 3.8: Lƣu đồ chƣơng trình chính. 51 Hình 3.9: Lƣu đồ hiện thị tab Food. 52 Hình 3.10: Lƣu đồ hiện thị tab Medicine. 53 viii
  10. Hình 3.11: Lƣu đồ hiển thị tab Info. 54 Hình 4.1: Lớp Top PCB mạch điều khiển. 56 Hình 4.2: Lớp Bottom PCB mạch điều khiển. 57 Hình 4.3: Mạch điều khiển thực tế (mặt trên). 58 Hình 4.4: Mạch điều khiển thực tế (mặt dƣới). 58 Hình 4.5: Giao diện điều khiển chính. 59 Hình 4.6: Giao diện hiển thị tab Food. 60 Hình 4.7: Giao diện tab Medicine. 61 Hình 4.8: Giao diện tab Info. 62 Hình 4.9: Giao diện hiển thi và giám sát qua web. 63 ix
  11. DANH MỤC BẢNG Bảng 2.1: Cấu hình GPIO 10 Bảng 2.2: Một số hàm cơ bản MySQLi. 40 x
  12. ĐỒ ÁN TỐT NGHIỆP Chƣơng 1 TỔNG QUAN Chƣơng 1: Tổng quan 1
  13. ĐỒ ÁN TỐT NGHIỆP 1.1 TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU Cùng với sự phát triển của công nghiệp hóa hiện đại hóa, nông nghiệp cũng đang phát triển không ngừng bằng việc ứng dụng khoa học kỹ thuật vào sản xuất, tự động hóa quá trình sản xuất nhằm nâng cao chất lƣợng sản phẩm nông nghiệp, hạ giá thành sản phẩm, giảm công lao động, tiết kiệm năng lƣợng. Việc áp dụng tiến bộ khoa học vào sản xuất nông nghiêp là hƣớng đi tất yếu, đúng đắn để xây dựng một nên nông nghiệp hiện đại. 1.2 MỤC ĐÍCH VÀ GIỚI HẠN ĐỀ TÀI Ngày nay, do nhu cầu quản lý và giám sát của con ngƣời ngày càng cao trong việc nuôi trồng thủy hải sản. Để đảm bảo việc điều khiển quản lý từ xa nên nhóm em quyết định thực hiện đề tài “THIẾT KẾ THI CÔNG MÔ HÌNH QUẢN LÝ GIÁM SÁT NUÔI TRỒNG THỦY HẢI SẢN QUA INTERNET”. Ngƣời dùng có thể điều khiển nhập dữ liệu và gửi lên web để cho tiện việc quản lý. Trong đó sử dụng vi xử lý trung tâm là STM32F103VET6, ngoài ra còn có các cảm biến thu thập dữ liệu và giao tiếp với ngƣời dùng qua màn hình LCD 7” cảm ứng điện dung để nhập dữ liêu. 1.3 NỘI DUNG THỰC HIỆN - Tìm hiểu hoạt động của các bộ điều khiển thông minh trên thị trƣờng. - Nghiên cứu đƣa ra các giải pháp hoạt động của mạch, thiết kế các khối. - Thiết kế và thi công mạch điều khiển giao tiếp giữa vi xử lý ARM STM32 với màn hình GLCD. - Lắp các cảm biến (cảm biến nhiệt độ, độ ẩm, khí gas). - Giao tiếp với màn hình 7” cảm ứng điện dung. - Thiết kế giao diện điều khiển qua Internet. - Thiết kế và lập trình thu thập dữ liệu từ các cảm biến. - Thiết kế và lập trình giao tiếp module ESP8266 để nhập và gửi dữ liệu. - Thiết kế và lập trình web để có thể quản lý theo dõi thông tin dữ liệu. - Chỉnh sửa các lỗi điều khiển, lỗi lập trình của các thiết bị. - Thi công mô hình và cân chỉnh. - Viết báo cáo luận văn. - Báo cáo đề tài tốt nghiệp. Chƣơng 1: Tổng quan 2
  14. ĐỒ ÁN TỐT NGHIỆP Chƣơng 2 CƠ SỞ LÝ THUYẾT Chƣơng 2: Cơ sở lý thuyết 3
  15. ĐỒ ÁN TỐT NGHIỆP 2.1 VI ĐIỀU KHIỂN 2.1.1 Bộ xử lý ARM CORTEX – M3 Cấu trúc ARM (viết tắt từ tên gốc là Acorn RISC Machine) là một loại cấu trúc vi xử lý 32 bit kiểu RISC (viết tắt của Reduced Intruction Set Computer - Máy tính với tập lệnh đơn giản hóa) đƣợc sử dụng rộng rãi trong các thiết kế nhúng. Do có đặc điểm tiết kiệm năng lƣợng, các bộ CPU ARM chiếm ƣu thế trong các sản phẩm điện tử di động, mà với các sản phẩm này việc tiêu tán công suất thấp là một mục tiêu thiết kế quan trọng hàng đầu. Dòng ARM Cortex bao gồm ba cấu hình khác nhau: cấu hình A cho các ứng dụng tinh vi, yêu cầu cao chạy trên các hệ điều hành mở và phức tạp nhƣ Linux, Android đƣợc phát triển từ ARM 11. Cấu hình R dành cho các hệ thống thời gian thực, phát triển từ ARM 9. Cấu hình M đƣợc tối ƣu cho các ứng dụng vi điều khiển, cần tiết kiệm chi phí. Bộ vi xử lý Cortex M3 là bộ vi xử lý ARM đầu tiên dựa trên cấu trúc ARM7 và đƣợc thiết kế đặc biệt để đạt đƣợc hiệu suất cao trong các ứng dụng nhúng cần tiết kiệm năng lƣợng và chi phí, chẳng hạn nhƣ các vi điều khiển, hệ thống cơ ô tô, hệ thống kiểm soát công nghiệp và hệ thống mạng không dây. Không giống với ARM 7 đƣợc thiết kế theo kiến trúc Von Neuman(bộ nhớ chƣơng trình và bộ nhớ dữ liệu chung với nhau), Cortex - M3 đƣợc thiết kế dựa theo kiến trúc Harvard (bộ nhớ chƣơng trình và bộ nhớ dữ liệu tách biệt với nhau), và có nhiều bus cho phép thực hiện các thao tác song song với nhau, do đó là tăng hiệu suất của chip. Bộ xử lý Cortex – M3 là một vi điều khiển đƣợc tiêu chuẩn hóa gồm một CPU 32 bit, cấu trúc bus (bus structure), đơn vị xử lí ngắt có hỗ trợ tính năng lồng ngắt vào nhau (nested interrupt unit), hệ thống kiểm lỗi (debug system) và tiêu chuẩn bố trí bộ nhớ(standard memory layout). Một trong những thành phần chính của lỗi Cortex - M3 là NIVC (Nested Vector Interupt Controller). Trong trƣờng hợp xuất hiện các interrupt lồng nhau (tức là xảy ra ngắt khi đang xử lý ngắt trƣớc đó), NIVC sử dụng một phƣơng thức gọi là “tail chain” cho phép ngắt liên tiếp đƣợc phục vụ với độ trễ chỉ có sáu chu kì xung nhịp. Trong suốt giai đoạn lƣu trữ dữ liệu lên vùng nhớ stack để bắt đầu thực thi chƣơng trình phục vụ ngắt, một ngắt có mức ƣu tiên cao hơn ngắt hiện tại có thể cạnh tranh với (pre-empt) ngắt hiện tại mà không chịu bất kì trì hoãn nà. Cấu trúc ngắt cũng đi kèm với chế độ tiết kiệm năng lƣợng của trong lỗi Cortex -M3. CPU có thể đƣợc cấu hình tự động vào chế độ tiết kiệm năng lƣợng sau khi thoát khỏi ngắt. Sau đó lõi tiếp tục ngủ cho đến khi một exception (ngắt đặc biệt) xuất hiện. CPU hỗ trợ hai chế độ hoạt động: Thread và Handler, mỗi chế độ có thể đƣợc cấu hình với mỗi vùng stack riêng biệt của nó, điều này cho Chƣơng 2: Cơ sở lý thuyết 4
  16. ĐỒ ÁN TỐT NGHIỆP phép thiết kế các phần mềm phức tạp và hỗ trợ các hệ điều hành thời gian thực, lõi Cortex có hỗ trợ timer 24 bit tự động nạp lại giá trị, nó sẽ cung cấp một ngắt timer đều đặn cho một nhận RTOS (Real Time Operating System). Các chip ARM7 và ARM9 có hai tập lệnh (tập lệnh ARM 32 bit và tập lệnh Thumb 16-bit), trong khi đó dòng Cortex đƣợc thiết kế hỗ trợ tập lệnh ARM Thumb-2, tập lệnh này đƣợc pha trộn giữa tập lệnh 16 bit và 32bit, nhằm đạt đƣợc hiệu suất cao của của tập lệnh ARM 32-bit với mật độ mã chƣơng trình tối ƣu của tập lệnh Thumb 16bit. Tập lệnh Thumb-2 đƣợc thiết kế đặc biệt dành cho trình biên dịch C/C++, tức là các ứng dụng dựa trên nền Cortex hoàn toàn có thể đƣợc viết bằng ngôn ngữ C mà không cần đến chƣơng trình khởi động viết bằng Assembler nhƣ ARM7 và ARM9. Hình 2.1: Cấu trúc vi điều khiển Cortex - M3. Stmicroelectronics đã đƣa ra thị trƣờng 4 dòng vi điều khiển dựa trên ARM7 và ARM9, nhƣng STM32 đƣợc đánh giá là một bƣớc tiến quan trọng về chi phí và hiệu suất, giá chỉ gần 1 Euro với số lƣợng lớn, STM32 là sự thách thức thật sự với các vi điều khiển 8 và 16 bit truyền thống. STM32 đầu tiên gồm 14 biến thể khác nhau, đƣợc phân thành hai nhỏ: dòng Performance có tần số hoạt động của CPU lên tới Chƣơng 2: Cơ sở lý thuyết 5
  17. ĐỒ ÁN TỐT NGHIỆP 72Mhz và dòng Access có tần số hoạt động lên tới 36 Mhz . Các biến thể STM32 trong hai nhóm này tƣơng thích hoàn toàn về cách bố trí chân và phần mềm, đồng thời kích thƣớc bộ nhớ FLASH ROM có thể lên tới 128K và 20K SRAM. 2.1.2 Vi điều khiển STM32F103 2.1.2.1 Cấu trúc hệ thống và bộ nhớ a. Hệ thống chính bao gồm: - Bốn chủ: + Cortex ™-M3 lõi DCode bus (D-bus) và hệ thống bus (S-bus). + GP-DMA1 & 2. - Bốn tớ: + SRAM nội. + Bộ nhớ FLASH. - FSMC. - AHB đến APB (AHB2APBX), kết nối tất cả các thiết bị ngoại vi APB. Chƣơng 2: Cơ sở lý thuyết 6
  18. ĐỒ ÁN TỐT NGHIỆP Hình 2. 2: Cấu trúc hệ thống. - ICode bus: kết nối bus lệnh của Cortex - M3 tới bộ nhớ FLASH - DCode bus và system bus: kết nối hệ thống bus của nhân Cortex – M3 tới ma trận bus (Bus Matrix). - DMA bus: Bus này kết nối giao diện APH của DMA tới các ma trận bus để điều khiển ICode bus, DCode bus, SRam và các thiết bị ngoại vi. - AHB/APB bridges: kết nối đồng bộ giữa AHB tới 2 bus APB1 và APB2. Trong đó tốc độ lớn nhất của bus APB1 là 36 Mhz còn APB2 là 72 Mhz. - Cả nhân Cortex và DMA điều đóng vai trò là bus chủ. Khi có các tác vụ xử lí song song thì bộ phân xử sẽ quyết định nhân Cortex hay bộ DMA sẽ đƣợc quyền truy cập vào SRAM, APB1 và APB2. Tuy nhiên bộ phận phân xử luôn đảm bảo 2/3 thời gian truy cập dành cho bộ điều khiển DMA và 1/3 dành cho nhân Cortex. b. Cấu trúc bộ nhớ: Bộ nhớ chƣơng trình, bộ nhớ dữ liệu, thanh ghi và cổng I/O đƣợc tổ chức trong phạm vi 4GB. Bộ nhớ bắt đầu từ địa chỉ 0x00000000. SRAM bắt đầu từ địa chỉ 0x20000000 và tất cả SRAM nội điều đƣợc bố trí ở điểm bắt đầu vùng bit band. Chƣơng 2: Cơ sở lý thuyết 7
  19. ĐỒ ÁN TỐT NGHIỆP Vùng nhớ thiết bị ngoại vi bắt đầu từ địa chỉ 0x40000000 và vùng nhớ bit band. Các thanh ghi điều khiển của nhân Cortex bắt đầu từ địa chỉ 0xE0000000. Vùng nhớ dành cho FLASH đƣợc chia nhỏ thành 3 vùng. Vùng thứ nhất gọi là User Flash bắt đầu từ địa chỉ 0x00000000. Kế tiếp là system Memory hay còn gọi là vùng nhớ hệ thống. Vùng này có độ lớn 4Kbytes thông thƣờng sẽ đƣợc nhà sản xuất cài đặt bootloader. Cuối cùng là vùng nhớ nhỏ bắt đầu từ địa chỉ 0x1FFFFF80 chứa thông tin cấu hình dành cho STM32. Bootloader thƣờng đƣợc dùng để tải chƣơng trình thông qua cổng UART1 và chứa vùng User Flash. Để kích hoạt bootloader của STM32 ngƣời dùng phải thiết lập các chân BOOT0 và BOOT1 ở mức điện áp thấp và cao tƣơng ứng. Khi đó, sau khi STM32 đƣợc khởi động chƣơng trình sẽ đặt bootloader và dịa chỉ 0x00000000 và thực thi nó thay thực thi chƣơng trình của ngƣời dùng ở User Flash. Để giao tiếp với bootloader, ST cung cấp một chƣơng trình chạy PC, chƣơng trình này có khả năng ghi, xóa những vùng nhớ ở User Flash. Ngoài ra chúng ta có thể cấu hình các chân bootpins đƣa SRAM nội vào đại chỉ 0x00000000, cho phép tải xuống và thực thi chƣơng trình này tại SRAM. Điều này làm tăng tốc độ tải chƣơng trình và hạn chế số lần ghi vào Flash. 2.1.2.2 Reset And Clock Control a. Bộ Reset của vi điều khiển: STM32 có nhiều nguồn Reset khác nhau ngoài đƣờng Reset bên ngoài. STM32có thể bị buộc khởi động lại từ: các bộ Watchdogs nội, một Reset thôngqua NIVC, một Reset mở/tắt nguồn nội và mạch phát hiện điện áp nguồn thấp. Nếu một tín hiệu Reset xuất hiện, một nhóm cờ trong thanh ghi kiểm soát và trạng thái RCC có thể đƣợc đọc để xác định nguyên nhân gây ra Reset. Trạng thái của những cờ này vẫn còn tồn tại cho đến khi hệ thống đƣợc cấp nguồn trở lại hoặc cho đến khi ngƣời dùng thiết lập bit Remove Reset. Mạch Reset đƣợc thể hiện trong hình sau: Chƣơng 2: Cơ sở lý thuyết 8
  20. ĐỒ ÁN TỐT NGHIỆP Hình 2.3:Mạch Reset. b. Xung Clock của vi điều khiển: Có ba nguồn xung chính đƣợc sử dụng trong hệ thống: - Bộ giao động nội HIS. - Bộ giao động ngoại HS. - Vòng khóa pha PLL. Ngoài ra có thể sử dụng nguồn xung khác: 40Khz dao động nội tần số thấp RC sử dụng cho RTC, Watchdog, Auto Wakeup hoặc tần số 32,768Khz dao động ngoại từ tinh thể thạch anh gắn ngoài cung cấp cho bộ thời gian thực RTC. Trong hầu hết các ứng dụng xung nhip hệ thống đƣợc dùng bởi bộ xử lí Cortex và các thiết bị ngoại vi khác sẽ lấy từ một giao động thạch anh bên ngoài kết nối thông qua các chânHSE. Hệ thống tạo xung nhịp dao động này chứa một khối CSS thực hiện nhiệm vụ giám sát giao động thạch anh bên ngoài. Nếu dao động thạch anh ngoài có vấn đề thì nó sẽ sử dụng hệ thống giao động thạch anh nội HIS 8Mhz. Chƣơng 2: Cơ sở lý thuyết 9
  21. ĐỒ ÁN TỐT NGHIỆP Hình 2.4: Bộ nguồn xung bên ngoài. 2.1.2.3 GPIO và AFIO a. GPIO của vi điều khiển STM32VET6 có 100 chân trong đó có 80 chân điều khiển đa năng. Mỗi chân điều khiển có thể cấu hình nhƣ là GPIO hoặc có chức năng thay thế khác, hoặc mỗi chân có thể cùng lúc là nguồn ngắt ngoại. Các cổng I/O đƣợc đánh số từ A đến D và mức điện áp tiêu thụ ở 5V. Nhiều chân có thể đƣợc cấu hình nhƣ là input/output tƣơng tác với các thiết bị ngoại vi riêng của ngƣời dùng nhƣ UART hoặc I2C Mỗi port I/O có hai thanh ghi cấu hình 32 bit (GPIOx_CRL,GPIOx_CRH), có hai thanh ghi dữ liệu 32 bit (GPIOx_IDR, GPIOx_ODR),thanh set/reset 32 bit GPIOx_BSRR và thanh ghi reset 16 bit GPIOX_BRR. Tùy vào cách sử dụng mà GPIO đƣợc cấu hình là ngõ vào, ngõ ra,ngõ vào tƣơng tự, hoặc vừa ngõ vào vừa ngõ ra Dƣới đây là bảng cấu hình của GPIO. Bảng 2.1: Cấu hình GPIO Configuration mode CNF1 CNF0 MOD0 MOD1 Analog Input 0 0 Input Floating 0 1 00 Input Pull-down 1 0 Input pull-up 1 0 Output Push-pull 0 0 00: Reserved Output Open-drain 0 1 01: output speed 10 MHz AF Push-pull 1 0 10: output speed 2 MHz AF Open-drain 1 1 11: output speed 50 MHz b. AFIO của vi điều khiển Chƣơng 2: Cơ sở lý thuyết 10
  22. S K L 0 0 2 1 5 4