ĐẠI HỌC QU TRƯỜ KHOA ĐI LUẬN VĂN T ĐIỀU KHIỂ VỚI CÔNG NGH THÔNG QUA M TP HỒ CHÍ MINH, THÁNG C QUỐC GIA TP HỒ CHÍ MINH ỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ o0o N VĂN TỐT NGHIỆP ĐẠI.
GIỚI THIỆU
Tổng quan
Trong thời đại hiện nay, sự phát triển nhanh chóng của khoa học kỹ thuật, đặc biệt trong lĩnh vực viễn thông, đã tạo điều kiện thuận lợi cho việc liên lạc và trao đổi thông tin Sự ra đời của mạng di động và internet giúp con người kết nối dễ dàng hơn, trong khi các thiết bị di động thông minh ngày nay với khả năng kết nối internet càng làm cho việc này trở nên thuận tiện hơn.
Các ứng dụng hiện đại đã trở thành một phần thiết yếu trong cuộc sống, giúp người dùng điều khiển và kiểm soát thiết bị một cách tiện lợi và tiết kiệm thời gian thông qua mạng thông tin di động Sự kết hợp giữa dịch vụ GPRS và mạng GSM không chỉ mang lại khả năng kết nối internet cho các thuê bao GSM mà còn nâng cao tính tiện ích cho các ứng dụng này Nhờ vào khả năng truy cập internet, người dùng có thể dễ dàng quan sát và điều khiển thiết bị trong nhà hay nhà xưởng từ bất kỳ đâu, không bị giới hạn bởi khoảng cách hay các mạng di động khác nhau của các quốc gia.
Xuất phát từ nhu cầu thực tế nhằm nâng cao chất lượng cuộc sống, tôi quyết định nghiên cứu về việc điều khiển và giám sát thiết bị sử dụng công nghệ GPRS qua mạng Internet.
Tình hình nghiên cứu trong và ngoài nước
Hiện nay, các ứng dụng báo động và giám sát sử dụng công nghệ không dây đang thu hút sự chú ý nhờ vào tính ứng dụng cao trong đời sống hàng ngày và trong ngành công nghiệp.
Trên toàn cầu, nhiều hệ thống ứng dụng GSM đã được phát triển để báo động và điều khiển qua tin nhắn SMS, đặc biệt phổ biến trong các ngôi nhà thông minh Tại Trung Quốc, một trong những ứng dụng nổi bật là hệ thống theo dõi mức nước, giúp cảnh báo lũ lụt thông qua tin nhắn SMS.
GPRS được ứng dụng rộng rãi trong các hệ thống theo dõi hành trình, kết hợp với công nghệ GPS Các hệ thống này đã được nghiên cứu và triển khai cho xe buýt và ô tô cá nhân tại Mỹ, Trung Quốc và Nhật Bản.
2 Ở Ấn Độ, GPRS còn được ứng dụng vào việc điều khiển từ xa các bảng đèn LED quang báo, hiển thị thông tin giao thông
Một số nhà máy ở Nga đã áp dụng công nghệ GPRS để điều khiển thiết bị qua internet, trong khi Việt Nam cũng triển khai hệ thống ứng dụng GSM cho việc điều khiển thông qua tin nhắn SMS, chủ yếu trong các nhà thông minh Bên cạnh đó, một số nghiên cứu đã được thực hiện để ứng dụng GPRS và GPS trong việc theo dõi và gợi ý hành trình cho xe buýt, mặc dù các ứng dụng này vẫn chưa được triển khai rộng rãi.
Nhiệm vụ luận văn
Nội dung 1: Tìm hiểu về mạng GSM và dịch vụ GPRS
Nội dung 2: Tìm hiểu về Sim900A, nguyên lý hoạt động, cách kết nối GPRS và kết nối với mạng internet
Nội dung 3: Tìm hiểu về Kit vi điều khiển STM32F4 Discovery
Nội dung 4: Thiết kế mạch nguồn cung cấp
Thiết kế và thực hiện mạch Relay là bước quan trọng trong việc điều khiển các thiết bị điện, giúp nâng cao hiệu quả hoạt động Đồng thời, việc thiết kế trang web và phần server để kết nối với cơ sở dữ liệu cũng không kém phần quan trọng, đảm bảo tính khả thi và hiệu suất trong quản lý thông tin.
Nội dung 7: Viết phần mềm cho vi điều khiển và hoàn thành kết nối hệ thống
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
LÝ THUYẾT
Sơ lược về GSM và GPRS
GSM (Hệ thống thông tin di động toàn cầu) là công nghệ mạng di động phổ biến nhất trên thế giới, chiếm khoảng 90% thị trường và được sử dụng tại hơn 219 quốc gia và vùng lãnh thổ Bắt đầu nghiên cứu từ những năm 1980, GSM đã trở thành chuẩn cho hệ thống di động ở Châu Âu, với dịch vụ thương mại đầu tiên ra mắt vào năm 1991 Sự phổ biến của GSM trên toàn cầu nhờ vào nhiều lợi ích mà nó mang lại.
- Hỗ trợ để có thể sử dụng trên nhiều quốc gia
- Phân biệt giữa nhận dạng người dùng và nhận dạng thiết bị
- Phối hợp với các mạng khác
- Các tính năng bảo mật
GSM kết hợp hai công nghệ đa truy cập là phân chia theo thời gian (TDMA) và phân chia theo tần số, cho phép sử dụng nhiều kênh thông tin hơn Tất cả các kênh trong hệ thống này đều là kênh số, nâng cao hiệu quả truyền thông.
Dịch vụ GSM sử dụng được trên bốn băng tần:
- 450 MHz – Được nâng cấp từ hệ thống mạng tương tự ở vùng Scandinavia
- 900 MHz – Băng tần được sử dụng ở hầu hết mọi nơi ngoại trừ Bắc Mỹ và Nam Phi
- 1800 MHz – Băng tần mới được sử dụng ở hầu hết mọi nơi ngoại trừ Bắc Mỹ và Nam Phi
- 1900 MHz – Băng tần dùng cho dịch vụ liên lạc cá nhân sử dụng ở Bắc Mỹ và nhiều nơi ở Nam Mỹ
Một trong những lợi ích nổi bật của GSM là việc cung cấp module nhận dạng thuê bao (SIM) Thẻ SIM, với chip máy tính và bộ nhớ, lưu trữ thông tin quan trọng về thuê bao, cho phép mạng không dây cung cấp dịch vụ Thông tin này bao gồm số nhận dạng thuê bao, số điện thoại, và mạng đầu tiên mà thuê bao kết nối Đặc biệt, thẻ SIM có thể dễ dàng chuyển từ điện thoại này sang điện thoại khác, giúp điện thoại đọc thông tin từ thẻ SIM và truyền tải về mạng một cách hiệu quả.
Mạng GSM được chia thành ba nhóm chính: Trạm di động (MS), phân hệ trạm gốc (BSS) và phân hệ mạng Mỗi nhóm này có những đặc điểm riêng biệt, đóng vai trò quan trọng trong cấu trúc tổng thể của mạng.
Trạm di động (MS) là điểm khởi đầu của mạng di động không dây, bao gồm điện thoại di động hoặc thiết bị di động có thẻ SIM Các thành phần của trạm di động có thể bao gồm đầu cuối di động (MT) và thiết bị đầu cuối (TE) Trạm di động có thể tồn tại dưới dạng hai thiết bị kết nối điểm điểm hoặc một thiết bị tích hợp cả hai chức năng.
- Phân hệ trạm gộc (BSS) được tạo thành từ Bộ điều khiển trạm gốc (BSC) và Trạm thu phát gốc (BTS)
Khi một thuê bao thực hiện cuộc gọi qua trạm di động, yêu cầu gọi sẽ được truyền đến trạm thu phát gốc Trạm thu phát gốc chứa các thiết bị cao tần cần thiết cho việc phát sóng và có trách nhiệm thiết lập liên kết với trạm di động, cũng như điều chế và giải điều chế tín hiệu giữa hai bên.
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
Bộ điều khiển trạm gốc là thiết bị quan trọng trong mạng cao tần, có nhiệm vụ điều khiển và quản lý các trạm thu phát gốc Nó đảm bảo việc dự trữ tần số cao tần cho giao tiếp, đồng thời quản lý quá trình chuyển giao giữa các trạm thu phát, giúp tối ưu hóa hiệu suất mạng.
Trung tâm chuyển mạng di động (MSC) là một thành phần quan trọng trong mạng GSM, đóng vai trò như một khóa mạng số tích hợp đa dịch vụ Nó thiết lập kết nối giữa các trung tâm chuyển mạng di động khác và các trạm thu phát gốc, đồng thời cho phép chuyển cuộc gọi đến mạng điện thoại chuyển mạch công cộng.
Bộ ghi nhận dạng thiết bị (EIR) là một cơ sở dữ liệu quan trọng, lưu trữ các mã nhận dạng thiết bị di động quốc tế (IMEI) của tất cả các trạm di động trong mạng.
Bộ ghi vị trí gốc (HLR) là cơ sở dữ liệu trung tâm cho người dùng đăng ký vào mạng GSM, lưu trữ thông tin cố định của thuê bao Trung tâm xác nhận là cơ sở dữ liệu chứa thuật toán xác thực thuê bao và các khóa mã hóa, đảm bảo an toàn cho thông tin người dùng.
Bộ ghi vị trí khách (VLR) là cơ sở dữ liệu tạm thời lưu trữ thông tin về các trạm di động trong khu vực mà nó quản lý Mỗi VLR được kết nối với trung tâm chuyển mạch di động trong mạng, và khi một thuê bao mới xuất hiện, VLR sẽ sao chép thông tin từ bộ ghi vị trí gốc vào cơ sở dữ liệu nội bộ của mình.
Trung tâm vận hành và bảo dưỡng đóng vai trò quan trọng trong việc quản lý và giám sát các chức năng của mạng GSM, giúp đảm bảo hoạt động ổn định và hiệu quả cho người vận hành mạng.
Mạng GSM đảm nhiệm yêu cầu của cả lưu thông âm thanh và lưu thông dữ liệu bằng cách cung cấp hai chế độ hoạt động:
Chuyển mạch dữ liệu tốc độ cao cung cấp cho người dùng một kênh định sẵn suốt quá trình truyền tải đến đích Người dùng sử dụng mạch này trong suốt thời gian cuộc gọi, và phí dịch vụ sẽ được tính dựa trên thời gian cuộc gọi thực tế.
Chuyển gói (GPRS) cho phép người vận hành cung cấp nhiều kênh đặc biệt để chia sẻ sử dụng, hoạt động liên tục 24 giờ mỗi ngày Khi người dùng cần trao đổi dữ liệu, họ chỉ cần truy cập vào một kênh để thực hiện việc truyền tải So với chuyển mạch, chuyển gói mang lại hiệu quả cao hơn trong việc xử lý dữ liệu.
Tốc độ bình thường của một kênh GSM là 22.8 kbps
GPRS (Hệ thống gói vô tuyến tổng hợp) cung cấp truy cập gói vô tuyến cho người dùng hệ thống GSM, đồng thời mang đến các dịch vụ mới cho người dùng di động hiện nay Đây là một bước quan trọng trong quá trình phát triển mạng thế hệ thứ ba (3G) GPRS cho phép các nhà khai thác mạng cung cấp kiến trúc lõi dựa trên giao thức IP cho các ứng dụng dữ liệu, đồng thời vẫn tiếp tục được sử dụng và mở rộng cho các dịch vụ 3G trong tương lai.
GPRS có các lợi điểm như sau:
- Phủ trên mạng GSM có sẵn để cung cấp dịch vụ dữ liệu tốc độ cao
- Luôn luôn hoạt động, giảm thiểu thời gian thiết lập và hủy thiết lập kết nối
- Được thiết kế để hỗ trợ các ứng dụng truyền loạt như e-mail, dịch vụ quảng bá và duyệt web mà không cần phát hiện kết nối
Module SIM900A
SIM900A là một module GSM/GPRS hai băng tần, hoạt động tại tần số EGSM 900MHz và DCS 1800MHz Với kích thước nhỏ gọn 24mm x 24mm x 3mm, SIM900A mang lại hiệu suất cao và tính linh hoạt cho các ứng dụng di động.
Luận văn tốt nghiệp của GVHD Th.S Trần Hoàng Quân tập trung vào vai trò của không gian trong các ứng dụng như M2M, điện thoại di động, PDA và các thiết bị di động khác.
Module SIM900A là một khối dán SMT, cung cấp giao tiếp vật lý đầy đủ giữa module và board mạch của người dùng, đảm bảo kết nối hiệu quả cho các ứng dụng.
- Giao tiếp bàn phím và hiển thị chuẩn SPI
- Cổng giao tiếp nối tiếp và cổng debug
- Một kênh âm thanh bao gồm ngõ vào microphone và ngõ ra loa
- Các ngõ vào, ra có thể lập trình được
SIM900A được thiết kế với kỹ thuật tiết kiệm năng lượng nên chỉ tiêu thụ dòng thấp vào khoảng 1.5mA trong chế độ SLEEP
SIM900A tích hợp giao thức TCP/IP, đi kèm với các lệnh AT TCP/IP mở rộng, giúp người dùng dễ dàng sử dụng giao thức này Điều này rất hữu ích cho các ứng dụng trao đổi dữ liệu.
2.2.2 Các đặc điểm của SIM900A
Bảng 2 Các đặc điểm chính của SIM900A Đặc điểm Cài đặt
Nguồn cung cấp Cung cấp nguồn đơn 3.4V – 4.5V
Tiết kiệm năng lượng Tiêu hao năng lượng trong chế độ SLEEP là 1.5mA
Băng tần SIM900A có thể tự dò hai băng tần EGSM900, DCS1800 tự động Băng tần cũng có thể được cài đặt bằng lệnh AT
Lớp GSM Trạm di động nhỏ
Công suất truyền tải Lớp 4 (2W) với EGSM900
Lớp 1 (1W) với DCS 1800 Kết nối GPRS GPRS nhiều khe thời gian lớp 10 (mặc định)
GPRS nhiều khe thời gian lớp 8 (hiệu chính)
Trạm di động GPRS lớp B Nhiệt độ hoạt động Hoạt động bình thường: -30 o C đến +80 o C
Hoạt động hạn chế: -40 o C đến -30 o C và +80 o C đến +85 o C
Nhiệt độ lưu trữ : -45 o C đến +90 o C
Dữ liệu GPRS Đường truyền xuống tối đa 85.6 kbps
Đường truyền lên tối đa 42.8 kbps
Tích hợp giao thứ TCP/IP Giao tiếp SIM Hỗ trợ thẻ SIM 1.8V và 3V
Cổng giao tiếp nối tiếp và cổng debug
Cổng giao tiếp nối tiếp:
Cổng nối tiếp có thể sử dụng cho việc truyền lệnh AT hoặc truyền dữ liệu
Hỗ trợ bắt tay phần cứng RTS/CTS và kiểm soát luồng ON/OFF bằng phần mềm
Hỗ trợ tốc độ baud tự động từ 1200bps đến 115200bps Cổng debug:
Giao tiếp modem rỗng 2-dây DBG_TXD và DBG_RXD
Có thể sử dụng để debug và nâng cấp chương trình
Bảng 3 Các lược đồ mã hóa và tốc độ truyền thông tin
Lược đồ mã hóa 1 Khe thời gian 2 Khe thời gian 4 Khe thời gian
2.2.3 Sơ đồ chức năng SIM900A
Hình sau mô tả các phần chức năng chính của SIM900A gồm:
- Khối chức năng GSM băng gốc
- Bộ nhớ Flash và SRAM
- Giao tiếp với ăng-ten
Luận văn tốt nghiệp GVHD: Th.S Tr
2.2.4 Các giao tiếp c p GVHD: Th.S Trần Hoàng Quân
2-4 Sơ đồ ác khối chức năng của SIM900A p của SIM900A
Hình 2-5 Sơ đồ chân của SIM900A n Hoàng Quân
SIM900A yêu cầu nguồn áp đơn VBAT trong khoảng từ 3.4V đến 4.5V Tuy nhiên, trong một số trường hợp, độ gợn sóng trên đường truyền có thể gây sụt áp khi dòng tiêu thụ đạt 2A Do đó, nguồn cung cấp cần phải đảm bảo khả năng cung cấp dòng tối thiểu 2A để hoạt động ổn định.
Để tối ưu hóa việc vào VBAT, cần sử dụng một tụ phân dòng Để giảm chi phí, nên chọn một tụ tantalum 100μF kết hợp với một tụ gốm nhỏ (0.1μF đến 1μF) mắc song song Các tụ này nên được lắp đặt càng gần chân VBAT càng tốt.
Mạch tham khảo cho ngõ vào VBAT được trình bày trong hình 2-6, cho thấy độ gợn sóng điện ám trong quá trình truyền năng lượng tối đa Điều kiện thử nghiệm được thiết lập với VBAT = 4V, với dòng ngược cực đại của VBAT đạt 2A, cùng với các tụ điện CA = 100µF và CB = 1µF.
Trong quá trình truyền dẫn, sự sụt áp ở VBAT có thể xảy ra do các chân VBAT được thiết kế để kết nối với nguồn cung cấp, trong khi mười lăm chân GND được sử dụng để nối đất Chân VRTC có chức năng cung cấp nguồn dự phòng cho đồng hồ thời gian thực (RTC).
Để đảm bảo hoạt động ổn định của module, nguồn áp cung cấp ngõ vào VBAT cần duy trì không dưới 3.4V, ngay cả khi dòng điện đạt 2A Nếu điện áp giảm xuống dưới 3.4V, module có thể bị tắt Do đó, đường PCB từ VBAT đến nguồn cung cấp phải được thiết kế đủ rộng để giảm thiểu hiện tượng tụt áp.
SIM900A có thể được bật bằng hai cách: bằng chân PWRKEY hoặc bằng chân PWRKEY và chân PWRKEY_OUT
SIM900A được khởi động bằng cách kéo chân PWRKEY xuống mức điện áp thấp thông qua một điện trở hạn dòng nối tiếp trong thời gian ngắn Chân PWRKEY sau đó được kéo lên VDD_EXT trong module.
Hình 2-8 Bật SIM900A với chân PWRKEY bằng mạch lái
Hình 2-9 Bật SIM900A với chân PWRKEY bằng nút nhấn
Hình 2-10 Giản đồ thời gian khi bật bằng chân PWRKEY
- SIM900A có thể bật bằng cách nối 2 chân PWRKEY và PWRKEY_OUT trong một thời gian ngắn
Hình 2-11 Bật SIM900A với chân PWRKEY và PWRKEY_OUT bằng mạch lái
Hình 2-12 Bật SIM900A với chân PWRKEY và PWRKEY_OUT bằng nút nhấn
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
Hình 2-13 Giản đồ thời gian khi bật bằng chân PWRKEY và PWRKEY_OUT
SIM900A có thể tắt bằng các cách sau:
Để tắt module SIM900A, có thể sử dụng chân PWRKEY bằng cách hạ mức điện áp xuống thấp trong thời gian ngắn Ngoài ra, việc nối hai chân PWRKEY và PWRKEY_OUT trong khoảng thời gian ngắn cũng cho phép tắt module Quy trình này giúp module đăng xuất khỏi mạng, cho phép phần mềm chuyển vào trạng thái an toàn và lưu trữ dữ liệu trước khi ngắt hoàn toàn nguồn cung cấp.
Hình 2-14 Giản đồ thời gian khi tắt bằng chân PWRKEY
Hình 2-15 Giản đồ thời gian khi tắt bằng chân PWRKEY và PWRKEY_OUT
Thủ tục tắt bình thường bằng lệnh AT cho phép module đăng xuất khỏi mạng, giúp phần mềm chuyển sang trạng thái an toàn và lưu trữ dữ liệu trước khi ngắt hoàn toàn nguồn cung cấp.
Module sẽ tự động tắt khi điện áp cung cấp trên VBAT vượt quá ngưỡng an toàn Cụ thể, nếu điện áp nhỏ hơn 3.4V hoặc lớn hơn 4.6V, module sẽ ngừng hoạt động để bảo vệ hệ thống.
Module sẽ tự động tắt khi nhiệt độ vượt quá 85 o C hoặc thấp hơn -40 o C Chức năng này giúp theo dõi và bảo vệ thiết bị khỏi tình trạng quá nhiệt hoặc nhiệt độ quá thấp, đảm bảo an toàn và hiệu suất hoạt động tối ưu.
SIM900A cung cấp hai cổng nối tiếp không đồng bộ không cân bằng, cho phép giao tiếp hiệu quả Module GSM này được thiết kế như một thiết bị giao tiếp dữ liệu (DCE), phù hợp với kết nối DCE – DTE (Thiết bị dữ liệu đầu cuối) theo tiêu chuẩn truyền thống.
Hình 2-16 Kết nối giao tiếp nối tiếp Các chức năng của cổng nối tiếp:
- Bao gồm các đường trạng thái TXD và RXD, các đường trạng thái RTS và CTS, các đường điều khiển DTR, DCD, DSR và RI
- Cổng nối tiếp có thể sử dụng cho dịch vụ FAX, GPRS và gởi lệnh AT của module điều khiển
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
- Cổng nối tiếp hỗ trợ các tốc độ: 1200, 2400, 4800, 9600, 38400, 57600, 115200, mặc định là 115200bps
ARM Cortex-M và Vi điều khiển STM32F4
2.3.1 Sơ lược về cấu trúc ARM
ARM là một kiến trúc tập lệnh vi xử lý dựa trên nguyên lý RISC, được phát triển bởi công ty ARM Holdings tại Anh.
ARM có các đặc điểm đặc trưng của cấu trúc RISC như :
- Một tập thanh ghi đồng nhất lớn
- Một kiến trúc nạp/lưu trữ, các thao tác xử lý dữ liệu chỉ được thực thi trên thanh ghi, không phải trực tiếp trên bộ nhớ
- Các chế độ định địa chỉ đơn giản, với tất cả các địa chỉ nạp/lưu trữ được quyết định bởi giá trị thanh ghi và các lệnh
- Các lệnh đồng nhất và cùng chiều dài để đơn giản hóa quá trình giải mã lệnh
Thêm và đó, kiến trúc ARM cung cấp :
Kiểm soát hiệu quả cả phần tử toán học logic (ALU) và bộ dịch là rất quan trọng trong việc xử lý dữ liệu, nhằm tối ưu hóa việc sử dụng ALU và bộ dịch trong hầu hết các lệnh.
- Các chế độ tự động tăng và giảm địa chỉ để tối ưu hóa các vòng lặp chương trình
- Các lệnh nạp và lưu trữ nhiều giá trị để tối ưu hóa lưu lượng dữ liệu
- Hầu hết các lệnh có thực thi theo điều kiện để tối ưu hóa số lượng thực thi
Các cải tiến so với cấu trúc RISC cơ bản giúp hệ thống xử lý ARM đạt được sự cân bằng tối ưu giữa hiệu suất cao, kích thước chương trình nhỏ, tiêu thụ năng lượng thấp và diện tích silicon nhỏ.
Các lõi ARM do ARM Holdings cung cấp hiện nay hỗ trợ vùng địa chỉ và thuật toán 32-bit, trong khi cấu trúc ARMv8-A hỗ trợ vùng địa chỉ và thuật toán 64-bit Tập lệnh cho các lõi này chủ yếu bao gồm các lệnh 32-bit, nhưng các phiên bản mới hơn đã bổ sung thêm các lệnh 16-bit, tạo ra sự linh hoạt trong việc sử dụng nhiều chiều dài lệnh.
ARM là kiến trúc tập lệnh 32-bit phổ biến nhất, thường được sử dụng trong các thiết bị di động và hệ thống nhúng Cấu trúc ARM (32-bit) chiếm ưu thế trong ngành công nghiệp công nghệ, nhờ vào hiệu suất và khả năng tiết kiệm năng lượng vượt trội.
ARM Cortex-M là một nhóm lõi xử lý RISC 32-bit của ARM, được tối ưu hóa cho các ứng dụng vi điều khiển Nhóm này bao gồm các lõi như Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3 và Cortex-M4, mang lại hiệu suất cao và tiết kiệm năng lượng cho các thiết bị nhúng.
Các tùy chọn quan trọng nhất của lõi Cortex-M là :
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
SysTick Timer là một bộ định thời 24-bit của hệ thống, giúp mở rộng tính năng cho cả bộ xử lý và bộ điều khiển ngắt NVIC Nó còn cung cấp chức năng ngắt hiệu chỉnh với mức ưu tiên cao.
- Bit Banding : Sơ đồ hóa hoàn toàn một word bộ nhớ thành một bit trong vùng bit- band
- Đơn vị bảo vệ bộ nhớ (MPU): Hỗ trợ bảo vệ vùng bộ nhớ thông qua đặc quyền bắt buộc và các nguyên tắc truy cập
Cortex-M0, M0+, và M1 dựa trên cấu trúc ARMv6-M, trong khi Cortex-M3 dựa trên ARMv7-M và Cortex-M4 dựa trên ARMv7E-M Các cấu trúc này có tính tương thích lệnh nhị phân theo thứ tự từ ARMv6-M đến ARMv7 và ARMv7E-M Lệnh nhị phân của Cortex-M0, M0+, và M1 có thể được thực thi trên Cortex-M3 và Cortex-M4 mà không cần chỉnh sửa, tương tự như lệnh nhị phân của Cortex-M3 có thể chạy trên Cortex-M4 mà không cần thay đổi Cấu trúc lõi của Cortex-M0, M0+, và M1 là Von Neumann, trong khi Cortex-M3 và M4 sử dụng cấu trúc Harvard.
Hình 2-19 So sánh các dòng ARM Cortex-M
Dòng vi điều khiển STM32F4, do STMicroelectronics sản xuất, dựa trên lõi Cortex-M4 và tương thích với dòng STM32F2 STM32F4 nổi bật với hiệu suất cao hơn, khả năng xử lý tín hiệu số (DSP), đơn vị dấu chấm động, dung lượng SRAM lớn hơn và các nâng cấp về ngoại vi.
Dòng vi điều khiển STM32F4 bao gồm các sản phẩm với bộ nhớ Flash từ 512 Kbyte đến 1 Mbyte, 192 Kbyte SRAM và 15 giao tiếp truyền thông
Dòng vi điều khiển STM32F4 bao gồm 5 nhóm sản phẩm, kết hợp tính năng kiểm soát thời gian thực của vi điều khiển với khả năng xử lý tín hiệu mạnh mẽ của bộ xử lý tín hiệu số.
Hình 2-20 Các nhóm sản phẩm vi điều khển STM32F4
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
Hình 2-21 Sơ đồ khối của vi điều khển STM32F4
Kit STM32F4 Discovery
Bộ kit STM32F4 Discovery sử dụng vi điều khiển STM32F407VGT6, tích hợp công cụ debug ST-LINK/V2, gia tốc kế số, microphone số, và bộ chuyển đổi số sang tương tự cho âm thanh Nó còn có driver loa lớp D, đèn LED, nút nhấn, cùng với đầu nối micro-AB USB.
STM32F4 Discovery có các đặc điểm sau:
- Vi điều khiển STM32F407VGT6 với bộ nhớ Flash 1 MB, 192 KB RAM
- On-board ST-LINK/V2 với công tắc chuyển chế độ để sử dụng ST-LINK/V2 độc lập (với đầu kết nối SWD để nạp chương trình và debug)
- Cung cấp nguồn từ USB hoặc từ nguồn 5V ngoài
- Cung cấp nguồn 3V và 5V cho ứng dụng bên ngoài
- LIS302DL, cảm biến chuyển động, gia tốc kế 3 hướng với ngõ ra số
- MP45DT02, cảm biến âm thanh, microphone đẳng hướng
- CS43L22, bộ chuyển đổi số tương tự dùng cho âm thanh tích hợp driver loa lớp D
LD1 (xanh/đỏ) cho kết nối USB
Bốn LED cho người dùng, LD3 (cam), LD4 (lục), LD5 (đỏ), LD6 (lam)
2 LED cho USB OTG, LD7 (lục) cho Vbus và LD8 (đỏ) báo quá dòng
- Hai nút nhấn (1 cho người dùng, 1 là reset)
- USB OTG với đầu nối micro-AB
- Đầu nối mở rộng dễ dáng kết nối đến các board khác
Hình 2-23 Sơ đồ khối phần cứng STM32F4 Discovery
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
Các ưu điểm của vi điều khiển STM32F407VGT6:
- Dễ sử dụng, hiệu quả chương trình cao, dễ dàng hỗ trợ các công cụ siêu ngôn ngữ
Bộ tăng tốc ART được thiết kế cho truyền dữ liệu tốc độ cao, với kiến trúc 32-bit và ma trận bus AHB 7 lớp, hỗ trợ 7 master và 9 slave Hệ thống bao gồm 2 khối SRAM và nhiều bộ điều khiển DMA, trong đó có 2 cho mục đích chung, 1 cho USB tốc độ cao và 1 cho Ethernet Một khối SRAM liên kết với lõi giúp cung cấp hiệu suất thực thi gần như không trễ.
- Hiệu suất năng lượng cao
- Ngoại vi cao cấp cung cấp các khả năng kết nối mới và truyền thông dữ liệu tốc độ cao và chính xác
- Nhiều công cụ và phần mềm hỗ trợ.
Cảm biến phát hiện chuyển động PIR
Cảm biến PIR là linh kiện quan trọng trong việc phát hiện chuyển động, được ứng dụng phổ biến trong các hệ thống an ninh, cửa tự động và điều khiển ánh sáng tự động Chúng đóng vai trò thiết yếu trong việc phát hiện sự hiện diện của con người trong cuộc sống hàng ngày.
Mọi vật trên trái đất đều phát ra năng lượng hồng ngoại (IR), và mức năng lượng này phụ thuộc vào nhiều yếu tố như nhiệt độ, màu sắc và bề mặt Dù năng lượng hồng ngoại không thể nhìn thấy bằng mắt thường, nhưng các cảm biến PIR có khả năng phát hiện loại năng lượng này.
Cảm biến PIR, hay cảm biến hồng ngoại thụ động, có chức năng chính là phát hiện chuyển động trong một khu vực nhất định Thiết bị này bao gồm hai phần nhạy với bức xạ hồng ngoại, và tín hiệu của nó phản ánh sự khác biệt về lượng bức xạ hồng ngoại mà mỗi phần nhận được Khi cả hai phần nhận được lượng bức xạ tương đương, cảm biến sẽ không phát hiện được chuyển động Tuy nhiên, nếu một trong hai phần phát hiện được sự thay đổi trong bức xạ, cảm biến sẽ kích hoạt và báo hiệu có chuyển động.
Cảm biến hồng ngoại hoạt động bằng cách phát hiện sự thay đổi trong lượng bức xạ hồng ngoại, cho phép nhận diện chuyển động Khi có sự chuyển động, điện áp đầu ra của cảm biến sẽ thay đổi, cho thấy sự khác biệt giữa phần nhạy cảm và phần còn lại.
Khu vực nhạy với bức xạ hồng ngoại chỉ khoảng 2 mm² cho mỗi phần Để mở rộng khu vực này, có thể sử dụng nhiều cảm biến hoặc thấu kính Fresnel, trong đó phương pháp thấu kính Fresnel thường được ưa chuộng Thấu kính Fresnel được chia thành nhiều phần, mỗi phần hoạt động như một thấu kính riêng biệt, giúp tạo ra nhiều khoảng phát hiện nhỏ hơn.
Chuyển động của nguồn nhiệt Điện áp ra
Để phát hiện chuyển động, một cấu trúc ba tầng sử dụng op-amp đã được thiết kế nhằm quy định tín hiệu cho cảm biến Luận văn tốt nghiệp này được thực hiện dưới sự hướng dẫn của Th.S Trần Hoàng Quân.
- Tầng đầu tiên sẽ khuếch đại tín hiệu, loại bỏ thành phần DC của tín hiệu và lọc các nhiễu cao tần có thể dẫn đến phát hiện sai
- Tầng thứ hai rất giống như tầng đầu tiên Nó dùng để lọc và khuếch đại tín hiệu AC
- Tầng thứ ba là một bộ so sánh cửa sổ Sau đó, tính hiệu đã hoàn toàn thích hợp để đưa đến vi điều khiển.
Sơ lược về LCD 16x2
Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được ứng dụng rộng rãi trong các vi điều khiển nhờ vào nhiều ưu điểm nổi bật LCD có khả năng hiển thị đa dạng các ký tự, bao gồm chữ, số và ký tự đồ họa, mang lại tính trực quan cao Hơn nữa, thiết bị này dễ dàng tích hợp vào mạch ứng dụng thông qua nhiều giao thức giao tiếp khác nhau, tiêu tốn ít tài nguyên hệ thống và có giá thành rẻ.
Có nhiều loại LCD với hình dáng và kích thước khác nhau, nhưng thông dụng nhất là LCD 16x2 sử dụng chip giao tiếp song song HD44780
Hình 2-27 Hình ảnh của LCD 16x2 thông dụng Chức năng các chân của LCD được trình bày ở bảng sau:
Bảng 6 Chức năng các chân của LCD 16x2
Chân Ký hiệu Mô tả
1 Vss Chân nối đất (GND)
2 Vdd Chân cấp nguồn cho LCD (5V)
3 Vee Chân dùng để chỉnh độ tương phản
4 RS Chân dùng để chọn thanh ghi:
- “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế
28 độ “ghi” - Write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ
- “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD
5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Ở mức “0”, LCD hoạt động ở chế độ ghi Ở mức “1”, LCD hoạt động ở chế độ đọc
6 E Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E
Trong chế độ ghi, dữ liệu từ bus sẽ được LCD tiếp nhận và chuyển vào thanh ghi bên trong khi phát hiện xung kích cạnh xuống của tín hiệu chân E.
Trong chế độ đọc, dữ liệu sẽ được LCD xuất ra các chân DB0-DB7 khi phát hiện xung kích cạnh lên tại chân E Dữ liệu này sẽ được giữ lại trên bus cho đến khi chân E chuyển xuống mức thấp.
7 – 14 DB0 – DB7 Tám đường của bus dữ liệu dùng để trao đổi thông tin với vi điều khiển Có 2 chế độ sử dụng 8 đường bus này :
- Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7
- Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7
15 A Chân cấp nguồn cho đèn nền
HD44780 có 2 thanh ghi 8 bit quan trọng : thanh ghi lệnh IR (Instructor Register) và thanh ghi dữ liệu DR (Data Register)
Để điều khiển LCD, người dùng cần gửi lệnh qua tám đường bus DB0-DB7, với mỗi lệnh được đánh địa chỉ rõ ràng bởi nhà sản xuất Người dùng chỉ cần nạp địa chỉ lệnh vào thanh ghi IR, nghĩa là khi nạp một chuỗi 8 bit vào thanh ghi IR, HD44780 sẽ tra bảng mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh tương ứng.
Thanh ghi DR là thành phần quan trọng trong vi điều khiển, có chức năng chứa dữ liệu 8 bit để ghi vào vùng RAM DDRAM hoặc CGRAM khi ở chế độ ghi, hoặc để lấy dữ liệu từ hai vùng RAM này gửi ra cho vi điều khiển khi ở chế độ đọc Khi vi điều khiển ghi thông tin vào DR, mạch nội sẽ tự động chuyển thông tin này vào DDRAM hoặc CGRAM Ngược lại, khi thông tin địa chỉ được ghi vào IR, dữ liệu tại địa chỉ đó trong vùng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho vi điều khiển.
Bảng 7 Tập lệnh của HD44780
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
Lệnh Clear Display sẽ xóa nội dung hiển thị bằng cách ghi mã ký tự 20H vào tất cả ô nhớ trong DDRAM Sau khi thực hiện, bộ đếm địa AC sẽ được đặt về 0, và kiểu hiển thị sẽ trở lại trạng thái ban đầu nếu trước đó đã bị thay đổi Điều này có nghĩa là màn hình sẽ tắt, con trỏ sẽ di chuyển về góc trái của hàng đầu tiên, và chế độ tăng AC sẽ được kích hoạt.
Return home Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Lệnh Return home trả bộ đếm địa chỉ AC về 0, trả lại kiểu hiển thị gốc nếu nó bị thay đổi Nội dung của DDRAM không thay đổi
Entry mode set Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
I/D là một chỉ số cho biết việc tăng (I/D=1) hoặc giảm (I/D=0) bộ đếm địa chỉ hiển thị AC một đơn vị mỗi khi có hành động ghi hoặc đọc vùng DDRAM, đồng thời vị trí con trỏ cũng sẽ thay đổi theo sự điều chỉnh này.
Khi S=1, nội dung hiển thị sẽ dịch sang phải (I/D=0) hoặc sang trái (I/D=1) mỗi khi có hành động ghi vào vùng DDRAM Ngược lại, khi S=0, nội dung hiển thị sẽ không bị dịch Ngoài ra, nội dung hiển thị cũng không bị dịch khi thực hiện đọc DDRAM hoặc khi đọc/ghi vùng CGRAM.
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
D: Hiển thị màn hình khi D=1 và ngược lại Khi tắt hiển thị, nội dung DDRAM không thay đổi
C: Hiển thị con trỏ khi C=1 và ngược lại
B: Nhấp nháy kí tự tại vị trí con trỏ khi B=1 và ngược lại
Chu kì nhấp nháy khoảng 409,6ms khi mạch dao động nội LCD là 250kHz
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Lệnh Cursor hay dịch chuyển con trỏ cho phép di chuyển dữ liệu hiển thị sang trái mà không cần ghi hoặc đọc dữ liệu Khi sử dụng chế độ hiển thị hai dòng, con trỏ sẽ tự động chuyển xuống dòng dưới khi đạt vị trí thứ 40 của hàng đầu tiên, và dữ liệu của cả hai hàng sẽ được di chuyển đồng thời Chi tiết về cách sử dụng có thể tham khảo trong bảng dưới đây.
0 0 Dịch vị trí con trỏ sang trái (Nghĩa là giảm AC một đơn vị)
0 1 Dịch vị trí con trỏ sang phải (Tăng AC lên 1 đơn vị)
1 0 Dịch toàn bộ nội dung hiển thị sang trái,
30 con trỏ cũng dịch theo
1 1 Dịch toàn bộ nội dung hiển thị sang phải, con trỏ cũng dịch theo
Function set Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Khi DL=1, LCD giao tiếp với MPU qua giao thức 8 bit, sử dụng các bit từ DB7 đến DB0 Ngược lại, khi DL=0, giao thức sẽ là 4 bit, cũng từ DB7 đến DB0 Trong chế độ 4 bit, dữ liệu được truyền và nhận theo hai lần liên tiếp: trước tiên là 4 bit cao, sau đó là 4 bit thấp.
N : Thiết lập số hàng hiển thị Khi N=0 : hiển thị 1 hàng, N=1: hiển thị 2 hàng
F : Thiết lập kiểu kí tự Khi F=0: kiểu kí tự 5x8 điểm ảnh, F=1: kiểu kí tự 5x10 điểm ảnh
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = 0 1 [ACG][ACG][ACG][ACG][ACG][ACG]
Lệnh này ghi địa chỉ của CGRAM vào AC, với ký hiệu [ACG] đại diện cho 1 bit trong chuỗi dữ liệu 6 bit Sau lệnh này, sẽ có lệnh đọc hoặc ghi dữ liệu từ CGRAM tại địa chỉ đã được chỉ định.
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = 1 [AD] [AD] [AD] [AD] [AD] [AD] [AD]
Lệnh này ghi địa chỉ của DDRAM vào AC, giúp thiết lập tọa độ hiển thị mong muốn Ngay sau đó, lệnh sẽ thực hiện việc đọc hoặc ghi dữ liệu từ DDRAM tại địa chỉ đã chỉ định.
Khi sử dụng chế độ hiển thị một hàng, địa chỉ có thể nằm trong khoảng từ 00H đến 4FH Đối với chế độ hiển thị hai hàng, địa chỉ cho hàng thứ nhất là từ 00H đến 27H, trong khi hàng thứ hai có địa chỉ từ 40H đến 67H.
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC]
Khi cờ BF được kích hoạt, LCD đang hoạt động và bất kỳ lệnh tiếp theo nào sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Do đó, trong quá trình lập trình điều khiển, việc kiểm tra cờ BF trước khi ghi dữ liệu vào LCD là rất cần thiết.
Khi đọc cờ BF, giá trị của AC cũng được xuất ra các bit [AC] Nó là địa chỉ của
CG hay DDRAM là tùy thuộc vào lệnh trước đó
Write data to CG or DDRAM
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = [Write data] (RS=1, R/W=0) Khi thiết lập RS=1, R/W=0, dữ liệu cần ghi được đưa vào các chân DBx từ mạch
Luận văn tốt nghiệp GVHD: Th.S Tr ngoài sẽ đư địa chỉ trước đó (lệnh ghi địa chỉ cũng xác định luôn v
Khi thiết lập RS=1, R/W=1,dữ liệu từ CG/DDRAM đ qua các chân DBx (đ trước đó)
Sau khi đọc, AC tự động tăng/giảm 1 t nội dung hiển thị không bị dị
Nguồn Buck (Step-down) và IC ổn áp LM2596
Bộ chuyển đổi buck là m giảm điện áp cho nguồn điện m các ổn áp tuyến tính tiêu hao nhi
Các bộ chuyển đổi Buck thì ng
Nguyên lý hoạt động cơ b điều khiển bởi hai khóa (thư tưởng, xem như khóa và diode không có đi tắt và cuộn cảm không có điện tr
Mạch Buck có hai trạng thái ho
SW1 đóng vai trò là L1 cấp nguồn một cách tuyến tính Đối với GVHD Th.S Trần Hoàng Quân, LCD được chuyển vào trong LCD tại địa chỉ đã được xác định từ lệnh ghi trước đó Lệnh ghi địa chỉ cũng xác định vùng RAM cần thiết Sau khi thực hiện ghi, bộ đếm địa chỉ AC sẽ tự động tăng hoặc giảm 1 tùy thuộc vào yêu cầu.
DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx là chân đọc dữ liệu, trong đó RS=1 và R/W=1, cho phép dữ liệu từ CG/DDRAM được chuyển đến MPU qua các chân DBx, với địa chỉ và vùng RAM đã được xác định bằng lệnh ghi địa chỉ AC tự động tăng hoặc giảm 1 tùy theo thiết lập chế độ Entry, nhưng nội dung hiển thị không bị dịch IC ổn áp LM2596 là một bộ chuyển đổi Buck (Step-down) giúp giảm áp và tăng dòng, hoạt động hiệu quả hơn so với ổn áp tuyến tính như 7805, vốn tiêu hao nhiều năng lượng do tỏa nhiệt Bộ chuyển đổi buck đạt hiệu suất lên đến 95%, với cơ chế hoạt động dựa trên dòng trong cuộn của hai khóa (thường là một transistor và một diode), giả định rằng khóa và diode không có điện áp rớt khi bật và không có trở kháng nội.
Mạch Buck hoạt động như một nguồn cung cấp điện cho tải, với điện áp giữa Vin và Vo qua cuộn L1 Dòng điện được tính toán dựa trên độ tăng (tính bằng amps trên giây), và giá trị này được xác định từ lệnh ghi trong RAM, tùy thuộc vào thiết lập Entry.
DB0 (RS=1, R/W=1) được chuyển ra MPU thông qua lệnh ghi địa chỉ thiết lập Entry mode Các bộ nguồn đơn giản như 7805 có thể được sử dụng, nhưng cần chú ý đến nhiệt độ khi hoạt động Độ ẩm cao (95% hoặc cao hơn) có thể ảnh hưởng đến hiệu suất Dòng trong cuộn cảm được điều khiển bởi diode, và trong bộ chuyển đổi lý tưởng, không có nguồn chạy qua khi không cần thiết.
Vo) qua L1, dòng điện tăng c tính bởi công thức:
= C1 nắn dòng điện của L1, chuyển thành một điện áp ổn định Vo C1 đủ lớn để Vo không thay đổi nhiều trong một chu kỳ đóng D1 bị phân áp ngược
Hình 2-29 Mạch Buck khi SW đóng
SW1 ngắt: L1 duy trì dòng cho tải Khi SW1 ngắt, từ trường của L1 giảm, dẫn đến dòng điện giảm một cách tuyến tính qua L1 Độ giảm dòng điện (tính bằng amps trên giây) được xác định theo công thức cụ thể.
Mặc dù dòng điện của L1 không thay đổi, nhưng điện áp lại bị đảo ngược L1 duy trì dòng điện bằng cách đảo ngược điện áp khi nguồn cung cấp bị ngắt D1 dẫn điện, tạo ra đường cho dòng điện của L1.
Hình 2-30 Mạch Buck khi SW1 ngắt
Hình 2-31 IC ổn áp LM2596
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
LM2596 là một IC ổn áp Buck nguyên khối, hỗ trợ tải nguồn lên đến 3A Sản phẩm này có sẵn các phiên bản với điện áp ra cố định là 3.3V, 5V, 12V, cùng một phiên bản cho phép điều chỉnh điện áp ra.
IC ổn áp LM2596 yêu cầu ít linh kiện bên ngoài, bao gồm một bộ bù tần số nội và một bộ dao động với tần số cố định, giúp dễ dàng trong việc sử dụng.
Hình 2-33 Mạch ứng dụng LM2596 phiên bản điện áp ra cố định
THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG
Yêu cầu thiết kế
Với đề tài này, các yêu cầu đặt ra khi thiết kế phần cứng như sau:
- Thực hiện kết nối giữa Kit STM32F4 Discovery với SIM900A
- Tính toán và thực mạch nguồn 5V cung cấp cho Kit STM32F4 Discovery và mạch nguồn 4V cho SIM900A
- Tính toán và thực hiện mạch Relay
- Kết nối các khối mạch lại với nhau.
Sơ đồ khối của hệ thống
Sơ đồ khối của hệ thống như sau:
Hình 3-1 Sơ đồ khối của hệ thống
Sơ đồ khối bao gồm các phần:
- Mạch nguồn 5V cung cấp cho Kit STM32F4 Discovery, mạch cảm biến, mạch Relay và LCD
- Mạch nguồn 4V cung cấp cho Module SIM900A
- Module SIM900A dùng để kết nối với mạng GPRS, từ đó truy cập internet
- Mạch cảm biến chuyển động để báo tín hiệu về VĐK khi có chuyển động
- Mạch Relay để đóng ngắt thiết bị
- LCD để hiển thị quá trình khởi tạo và kết nối GPRS
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
Bộ kit STM32F4 Discovery chưa được lập trình chính, có khả năng gửi lệnh AT để điều khiển module SIM900A, nhận tín hiệu từ cảm biến, gửi tín hiệu đến relay và hiển thị thông tin trên màn hình LCD.
Thiết kế và sơ đồ nguyên lý
Sơ đồ nguyên lý như sau:
Mạch nguồn 4V được thiết kế để cung cấp điện cho module SIM900A, yêu cầu điện áp trong khoảng 3.4V đến 4.5V và dòng tối đa 2A Để đáp ứng các điều kiện này, IC ổn áp step-down LM2596ADJ được chọn, với khả năng điều chỉnh áp ra và tải lên đến 3A.
Lựa chọn áp ra của mạch là 4V Theo datasheet của LM2596, ta có công thức để tính giá trị của hai điện trở R1 và R2 như sau:
Nhà sản xuất khuyến nghị lựa chọn giá trị R1 trong khoảng 240Ω đến 1.5 kΩ, vì vậy giá trị R1 được chọn là 1.2 kΩ Từ đó, giá trị R2 được tính là 2.7 kΩ.
Giá trị 1.2 = 3.9975 đáp ứng yêu cầu về điện áp ra Để xác định giá trị của cuộn cảm L1, cần tính giá trị V.às của cuộn cảm theo công thức đã cho.
Kết hợp với điều kiện là dòng tải 2A, tra biểu đồ của datasheet ta chọn được giá trị cuộn cảm L1 là 100àH
Diode mắc ngược bảo vệ cần phải chịu được dòng lớn hơn 1.3 lần dòng tải, với điện áp rơi thấp và điện áp ngược lớn hơn 1.25 lần điện áp vào, đồng thời phải có đáp ứng nhanh Do đó, diode Schottky là lựa chọn lý tưởng Trong trường hợp này, diode MBRS340T3 được chọn, với điện áp ngược 40V và điện áp rơi 0.5V khi dòng dẫn đạt 3A.
Theo datasheet, tụ điện nên chọn giá trị từ 82µF đến 820µF, với điện áp lớn hơn 1.5 lần điện áp ngược Chúng ta sẽ chọn tụ 470µF, 16V Đèn LED được sử dụng để báo hiệu nguồn Với điện áp cung cấp là 4V và điện áp rơi trên LED là 2V, để đạt dòng qua LED là 10mA, ta cần tính giá trị điện trở phù hợp.
Chọn giá trị của R3 là 150Ω Khi đó dòng qua LED là 13mA, vẫn đảm bảo để LED hoạt động bình thường
Nguồn 5V dùng để cung cấp cho Kit STM32F4 Discovery, mạch relay, LCD và cảm biến Ở đây sử dụng IC ổn áp LM7805 với sơ đồ nguyên lý như sau:
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
Mạch nguồn 5V bắt đầu với ngõ vào là dòng xoay chiều 12V, sau đó được chỉnh lưu thành dòng một chiều qua cầu diode Tụ C1 giúp làm phẳng dòng một chiều sau khi chỉnh lưu, trong khi đèn LED D2 báo hiệu nguồn cung cấp vào mạch và đèn LED D3 cho biết nguồn ngõ ra Ngoài ra, các tụ C2 và C4 có chức năng giảm nhiễu cho mạch.
Sử dụng Breakout Board SIM900A với sơ đồ nguyên lý như sau:
Hình 3-4 Sơ đồ nguyên lý Breakout Board SIM900A
Bảng mạch Breakout SIM900A sẽ được kết nối với Kit STM32F4 Discovery qua giao tiếp nối tiếp qua các chân RXD và TXD Module SIM900A có chức năng kết nối GPRS, cho phép truy cập Internet.
Để khởi động Board SIM900A, cần cung cấp một xung mức cao vào chân ON/OFF trong khoảng 1 giây Sau khi khởi động, module SIM900A sẽ bắt đầu tìm kiếm mạng, và đèn LED chỉ thị sẽ chớp tắt nhanh chóng Khi quá trình kết nối mạng hoàn tất, đèn LED sẽ chớp tắt chậm lại.
Breakout Board SIM900A được cung cấp nguồn 4V
3.3.3 Khối Relay Để điều khiển các thiết bị điện thông thường, ta không thể sử dụng trực tiếp các chân ngõ ra của vi điều khiển vì hạn chế của điện áp và dòng ra của vi điều khiển Muốn điều khiển thông qua vi điều khiển, ta cần một mạch relay Mạch này bao gồm một BJT đóng vai trò khóa điện tử, nhận tín hiệu điều khiển từ vi điều khiển BJT sẽ đóng ngắt nguồn điện đi qua cuộn dây của relay, từ đó relay sẽ đóng ngắt các thiết bị điện Đèn LED được mắc song song với cuộn dây của relay để chỉ thị trạng thái của relay Điện áp rơi trên LED là 2V và chọn dòng qua LED là 10 mA, ta tính được R2 như sau:
2 = 5 − 20.01 = 300Ω Chọn R2 là 330Ω, khi đó dòng qua LED là 9 mA, đảm bảo để LED sáng bình thường
Relay YL303H được sử dụng trong luận văn tốt nghiệp dưới sự hướng dẫn của Th.S Trần Hoàng Quân Relay này có điện áp hoạt động cuộn dây là 5V, khả năng đóng ngắt tải với điện áp xoay chiều tối đa 250V, điện áp một chiều tối đa 30V và dòng tối đa 15A Khi hoạt động, dòng điện qua cuộn dây đạt 71.4 mA.
BJT 2N3904 được sử dụng như một khóa điện tử, với ngõ ra của Kit STM32F4 Discovery có điện áp 3.3 V Khi tín hiệu đạt mức cao 3.3 V, BJT sẽ dẫn bão hòa Để đảm bảo BJT hoạt động ở trạng thái bão hòa, cần thực hiện các điều kiện nhất định.
Khi đó ≥ 2.67 Từ đó tính được R1 :
Khi áp suất tại ngõ vào cực B đạt 3.3 V, BJT sẽ dẫn bão hòa, cho phép dòng điện đi qua cuộn dây và đèn LED Kết quả là relay chuyển sang vị trí thường hở và đèn LED sẽ phát sáng.
Khi áp ở ngõ vào cực B là 0 V, < nên BJT tắt, không có dòng đi qua cuộn dây, relay ở vị trí thường đóng
Diode mắc ngược D1 có nhiệm vụ bảo vệ BJT khỏi các gai xung điện áp khi BJT tắt
Hình 3-6 Sơ đồ nguyên lý mạch relay
3.3.4 Cảm biến chuyển động PIR Ở đây sử dụng mạch cảm biến chuyển động PIR TM-208 có sơ đồ nguyên lý như sau:
Hình 3-7 Sơ đồ nguyên lý mạch cảm biến PIR
Cảm biến PIR TM-208 sử dụng IC BISS0001 chuyên dụng, cho phép quét với góc 140 độ Kết hợp với thấu kính Fresnel, cảm biến có khả năng quét ở khoảng cách trung tâm từ 5 đến 7 mét và ở biên từ 3 đến 4 mét Mạch cảm biến bao gồm ba chân kết nối: chân cấp nguồn 5V, chân nối đất GND và chân ngõ ra của cảm biến.
IC BISS0001 cung cấp hai chế độ ngõ ra: kích hoạt lại và không kích hoạt lại Trong chế độ kích hoạt lại, chân A của IC được kéo lên mức cao, dẫn đến ngõ ra của mạch cảm biến luôn duy trì ở mức cao khi cảm biến liên tục được kích hoạt Biến trở R16 được sử dụng để điều chỉnh thời gian mà ngõ ra vẫn giữ ở mức cao sau khi kích hoạt.
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
Màn hình LCD 16x2 được sử dụng để theo dõi quá trình khởi tạo và kết nối mạng GPRS của module SIM900A, cho phép hiển thị 2 dòng thông tin, mỗi dòng chứa 16 ký tự.
Kết nối các mạch
Kết nối Kit STM32F4 Discovery và Breakout Board SIM900A như sau:
Hình 3-10 Sơ đồ kết nối Breakout Board SIM900A với Kit STM32F4 Discovery
Kết nối mạch relay, mạch cảm biến PIR và Kit STM32F4 Discovery như sau:
Hình 3-11 Sơ đồ kết nối mạch relay và mạch PIR sensor với Vit STM32F4 Discovery
LCD sử dụng chế độ giao tiếp với bốn đường dữ liệu D4-D7 Sơ đồ kết nối mạch LCD với Kit STM32F4 Discovery như sau:
Hình 3-12 Sơ đồ kết nối mạch LCD với Kit STM32F4 Discovery
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM
Yêu cầu thiết kế
Yêu cầu thiết kế phần mềm gồm có hai phần chính là: trang Web, phía Server và phần mềm cho vi điều khiển
Trang web cần hiển thị các tùy chọn để điều khiển thiết bị, cùng với trạng thái của thiết bị và cảm biến Nó cũng cần cung cấp dữ liệu ghi lại thời gian thay đổi trạng thái của thiết bị và thời gian phát hiện chuyển động của cảm biến Phía máy chủ có nhiệm vụ nhận giá trị từ vi điều khiển và lưu trữ chúng vào cơ sở dữ liệu.
Phần mềm vi điều khiển gửi lệnh AT đến SIM900A để truyền tải thông tin về trạng thái của các thiết bị và cảm biến Đồng thời, nó cũng cho phép người dùng đọc các giá trị mà họ mong muốn thông qua trang Web.
Trang Web và phía Server
4.2.1 Phần mềm Microsoft WebMatrix và ASP.NET framework
Giao diện trang web, máy chủ và cơ sở dữ liệu trong luận văn này được xây dựng bằng phần mềm WebMatrix, sử dụng ngôn ngữ HTML kết hợp với ASP.NET Razor.
Hình 4-1 Chương trình Microsoft WebMatrix 3
WebMatrix là phần mềm phát triển web miễn phí dành cho hệ điều hành Windows, được phát hành bởi Microsoft Phần mềm này cho phép lập trình viên tạo trang web bằng cách sử dụng các mẫu có sẵn hoặc các ứng dụng mã nguồn mở phổ biến, với hỗ trợ mạnh mẽ cho ASP.NET, PHP, Node.js và HTML5 Microsoft phát triển WebMatrix nhằm cung cấp cho các nhà phát triển web một công cụ tích hợp để lập trình, chỉnh sửa và phát hành trang web trong một ứng dụng duy nhất Phiên bản mới nhất hiện tại là Microsoft WebMatrix 3.
ASP.NET là một khung ứng dụng web phía server được thiết kế để phát triển các trang web động Được phát triển bởi Microsoft, ASP.NET cho phép lập trình viên tạo ra các trang web, ứng dụng web và dịch vụ web một cách hiệu quả.
ASP.NET Web Pages, hay còn gọi là Web Forms, là các thành phần chính trong phát triển ứng dụng Các Web Forms được lưu trữ trong các tệp có phần mở rộng “.aspx”, chứa các mã HTML động cùng với các điều khiển phía Server và điều khiển người dùng Mã động chạy trên Server có thể được định nghĩa trong khối .
Phần mềm WebMatrix hỗ trợ ASP.NET Razor, một cú pháp lập trình cho phép tạo trang web động bằng C# hoặc VisualBasic.NET Razor sử dụng quy trình xây dựng HTML, với cú pháp đơn giản hơn, chỉ cần ký tự @ để bắt đầu khối mã lệnh mà không cần thêm ký tự đóng Ưu điểm nổi bật của Razor là cung cấp cú pháp tối ưu, giúp giảm thiểu sự khác biệt giữa HTML và mã lệnh, tạo điều kiện cho việc phát triển web hiệu quả hơn.
4.2.2 Tạo cơ sở dữ liệu
Cơ sở dữ liệu được tạo bằng Microsoft SQL Server 2012 trên phần mềm WebMatrix
Cơ sở dữ liệu được thiết kế với các bảng để lưu trữ dữ liệu từ vi điều khiển và Sim900A, đồng thời cũng ghi nhận các yêu cầu được chọn từ giao diện trang Web.
Cơ sở dữ liệu có tên GPRS Demo, gồm có các bảng:
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
The Devices table includes several columns: the 'id' column which holds the sequential numbers, the 'Name' column that lists the names of the devices, the 'DStatus' column indicating the status of each device, and the 'DRequest' column that records requests from the website interface.
Hình 4-2 Bảng Devices của cơ sở dữ liệu
Bảng Sensor bao gồm các cột, trong đó cột id thể hiện số thứ tự và cột Status thể hiện trạng thái của cảm biến Giá trị trong cột Status là 0 khi cảm biến không phát hiện chuyển động.
1 tương ứng với cảm biến phát hiện chuyển động
Hình 4-3 Bảng Sensor của cơ sở dữ liệu
Bảng DLog bao gồm các cột quan trọng: cột ID lưu trữ số thứ tự, cột Name ghi lại tên thiết bị, cột Status phản ánh trạng thái vừa thay đổi của thiết bị, và cột ATime ghi nhận thời gian thay đổi của thiết bị.
Hình 4-4 Bảng DLog của cơ sở dữ liệu
Bảng SLog bao gồm các cột như sau: cột id thể hiện số thứ tự, cột Time ghi lại thời gian khi cảm biến phát hiện chuyển động, và giá trị cột Status trong bảng Sensor là 1.
Hình 4-5 Bảng SLog của cơ sở dữ liệu
4.2.3 Trang hiển thị chính của trang Web
Trang chính của website được xây dựng bằng HTML, một ngôn ngữ đánh dấu siêu văn bản, trong khi các phần truy cập cơ sở dữ liệu phía server được thực hiện thông qua Razor.
Trang chính của website bao gồm ba phần quan trọng: phần hiển thị trạng thái cảm biến, phần hiển thị trạng thái thiết bị và phần lựa chọn để điều khiển thiết bị.
Trang chính của website hiển thị trạng thái cảm biến và thiết bị bằng cách tải liên tục hai trang phụ “DisplaySensor.cshtml” và “DisplayStatus.cshtml” với khoảng thời gian 500 ms, nhằm cung cấp thông tin tức thời Để thực hiện điều này, mã JavaScript được sử dụng để đảm bảo việc cập nhật trạng thái diễn ra mượt mà và nhanh chóng.
function Load_external_content(){
This script loads the "DisplaySensor.cshtml" into the section marked with the id "sensor" and the "DisplayStatus.cshtml" into the section marked with the id "status." The setInterval method is used to call a function after a specified time interval.
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
47 bằng ms và thực thi hàm đó Ở đây setInterval sẽ gọi hàm “Load_external_content()” sau khoảng thời gian 500 ms
Với phần hiển thị các lựa chọn để điều khiển các thiết bị, sử dụng các Form để lựa chọn Đoạn mã của một form như sau:
On
Off
Người dùng có thể chọn giữa hai tùy chọn On và Off, sau đó nhấn nút Submit để xác nhận lựa chọn Khi nút Submit được nhấn, Form sẽ gửi yêu cầu POST đến Server để lưu giá trị vào cơ sở dữ liệu.
Phần mềm cho vi điều khiển
4.3.1 Giải thuật tổng quát của chương trình
Khi vi điều khiển được cấp nguồn, chương trình sẽ bắt đầu thực thi và tiến hành khởi tạo các ngoại vi như LCD, UART và ngắt nhận UART, SysTick Timer, cùng với ngắt ngoài Sau khi hoàn tất quá trình khởi tạo, chương trình sẽ hiển thị lời chào trên LCD, thông báo rằng quá trình khởi tạo đã thành công.
Vi điều khiển sẽ gửi lệnh AT đến SIM900A qua giao tiếp nối tiếp để tắt chế độ ECHO, sau đó kết nối GPRS.
Vi điều khiển sẽ vào vòng lặp chính và liên tục theo dõi trang yêu cầu "SendRequest.cshml" Khi phát hiện có sự thay đổi trong yêu cầu, vi điều khiển sẽ thực hiện việc bật hoặc tắt thiết bị tương ứng.
Luận văn tốt nghiệp dưới sự hướng dẫn của Th.S Trần Hoàng Quân yêu cầu gửi trạng thái hiện tại lên trang "GetStatus.cshtml" Khi cảm biến phát hiện chuyển động, vi điều khiển sẽ truyền tải trạng thái cảm biến đến trang "Sensor.cshtml".
Hình 4-7 Lưu đồ giải thuật chính
4.3.2 Giải thuật truyền và nhận UART
Khởi tạo UART2 trên vi điều khiển STM32F4 với tốc độ baud 9600bps, chiều dài 8-bit và một stop bit, đồng thời cho phép ngắt nhận Ngắt nhận UART được kích hoạt khi bit RXNE trong thanh ghi USART_SR được thiết lập thành 1 Để dễ dàng truyền dữ liệu đến SIM900A, một hàm được xây dựng để truyền chuỗi ký tự dưới dạng mảng một chiều Sử dụng con trỏ để trỏ đến các ký tự, con trỏ sẽ chuyển đến ký tự tiếp theo khi bit TC trong thanh ghi USART_SR bật lên 1, cho biết quá trình truyền ký tự đã hoàn tất Hàm được định nghĩa như sau: void puts(USART_TypeDef* USARTx, volatile char *s).
/* wait until data register is empty */ while( !(USARTx->SR & 0x00000040) );
Như đã trình bày ở phần lý thuyết, các hồi đáp của SIM900A có dạng
"", nên để nhận được phần phản hồi ta sử dụng giải thuật sau ở chương trình ngắt nhận UART
Hình 4-8 Giải thuật ngắt UART
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
Khi đọc trang web có yêu cầu, SIM900A sẽ gửi phản hồi dưới dạng mã HTML Trong thiết kế trang, ký tự được sử dụng để đánh dấu bắt đầu yêu cầu và dấu để đánh dấu kết thúc Để dễ nhận biết, các yêu cầu sẽ được lưu vào một mảng hai chiều, với từng dòng tương ứng với yêu cầu của các thiết bị khác nhau Việc này cần một chương trình ngắt nhận UART riêng biệt.
Hình 4-9 Giải thuật ngắt UART để đọc yêu cầu trạng thái thiết bị
Sử dụng một biến để vi điều khiển nhận biết lúc sử dụng chương trình ngắt bình thường và chương trình ngắt khi đọc yêu cầu
4.3.3 Khởi tạo kết nối GPRS
Khi thiết lập giao tiếp UART với SIM900A, bước đầu tiên là gửi lệnh “ATE0” để tắt chế độ ECHO, và phản hồi thành công sẽ là “OK”, được hiển thị trên màn hình LCD Để kết nối GPRS, cần cung cấp tên điểm truy cập (APN), Username và Password cho SIM900A Thông tin APN, Username và Password của một số nhà cung cấp mạng tại Việt Nam được liệt kê trong bảng dưới đây.
Bảng 8 APN, USER NAME và PASSWORD của một số nhà mạng
Tên mạng APN USER PASSWORD
Trong luận văn này sử dụng dịch vụ của Viettel
Mã lệnh AT để cài đặt các giá trị này như sau:
- Cài đặt APN: AT+SAPBR=3,1,“APN”,“v-internet”
- Cài đặt username: AT+SAPBR=3,1,“USER”,“-”
- Cài đặt password: AT+SAPBR=3,1,“PWD”,“-”
Giá trị tham số 1 trong các lệnh trên thể hiện CID được sử dụng là CID 1 Có thể cài đặt lên đến 4 CID trong một module
Sau khi cài đặt các giá trị, ta bắt đầu truy cập GPRS với CID 1 bằng cách gởi lệnh
Để thiết lập kết nối GPRS, sử dụng lệnh “AT+SAPBR=1,1” và nếu kết nối thành công, hệ thống sẽ phản hồi bằng “OK” Để xác định địa chỉ IP được cấp cho việc truy cập internet, bạn có thể sử dụng lệnh “AT+SAPBR=2,1” Chi tiết mã khởi tạo GPRS được trình bày trong chương trình con GPRS_Setup trong phần phụ lục của tài liệu.
4.3.4 Trao đổi dữ liệu với trang Web bằng giao thức HTTP
SIM900A hỗ trợ giao thức TCP/IP và được điều khiển bằng các lệnh AT, cho phép các ứng dụng truy cập dịch vụ internet HTTP một cách dễ dàng Dưới đây là danh sách các lệnh AT giúp truy cập internet qua HTTP.
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân
Bảng 9 Các lệnh AT để sử dụng HTTP
AT+HTTPINIT Khởi tạo dịch vụ HTTP
AT+HTTPTERM Hủy dịch vụ HTTP
AT+HTTPPARA Thiết lập các thông số cho HTTP
AT+HTTPDATA Nhập dữ liệu HTTP
AT+HTTPACTION Phương pháp hoạt động HTTP
AT+HTTPREAD Đọc phản hồi của Server
Để lưu lại ứng dụng HTTP, trước tiên bạn cần sử dụng lệnh “AT+HTTPINT” để khởi tạo dịch vụ HTTP Sau đó, hãy thiết lập các thông số cho dịch vụ, bao gồm đường dẫn truy cập và CID sẽ được sử dụng Ví dụ, để gửi các biến stt1 = off, stt2 = off và stt3 = off lên trang.
“GetStatus.cshtml” ta sẽ thiết lập đường dẫn như sau:
AT+HTTPPARA=“URL”,”http://www.gprsdemo.com/getstatus?stt1=off& stt2=off&stt3=off”
Để chọn phương pháp HTTP GET, sử dụng lệnh “AT+HTTPACTION = 0” Khi lệnh được gửi thành công, phản hồi sẽ có định dạng: “+HTTPACTION: 0, 200, datalengh”, trong đó datalengh biểu thị chiều dài dữ liệu nhận được.
Sau đó ta dùng lệnh “AT+HTTPREAD” Sau khi gởi lệnh, sẽ nhận được nội dung của trang Web được chỉ tới bằng đường dẫn dưới dạng mã HTLM
Mã chương trình chi tiết có thể xem ở phần phụ lục
Vi điều khiển STM32F4 hỗ trợ 23 đường ngắt ngoài, có thể cấu hình thông qua việc thiết lập mặt nạ bit trong thanh ghi EXTI_IMR Tất cả các chân GPIO được kết nối với các đường ngắt này.
16 đường ngắt ngoài Để kết nối các chân GPIO với các đường ngắt, ta thiết lập các bit trong các thanh ghi SYSCFG
Trong chương trình, chân GPIO PA3 được sử dụng làm chân ngắt ngoài tương ứng với EXTI3 Để kích hoạt đường ngắt EXTI3, cần bật bit MR3 trong thanh ghi EXTI_IMR Để kết nối chân PA3 với EXTI3, ta ghi giá trị 0x0000 vào các bit EXTI3[3:0] trong thanh ghi SYSCFG_EXTICR1.
Sau khi kết nối chân PA3 với đường ngắt ngoài, cần chọn cạnh để tạo ra ngắt Trong trường hợp này, chúng ta sẽ chọn ngắt khi phát hiện cạnh lên bằng cách bật bit TR3 trong thanh ghi EXTI_RTSR.
Khi phát hiện cạnh ở chân PA3, vi điều khiển sẽ kích hoạt ngắt, dẫn đến việc chuyển sang chương trình xử lý ngắt ngoài Chương trình này sẽ thông báo rằng đã có chuyển động được phát hiện.
Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân