Đồ án Ứng dụng công nghệ FPGA điều khiển thiết bị từ xa bằng điện thoại di động dùng tin nhắn SMS (Phần 1)
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Ứng dụng công nghệ FPGA điều khiển thiết bị từ xa bằng điện thoại di động dùng tin nhắn SMS (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:
do_an_ung_dung_cong_nghe_fpga_dieu_khien_thiet_bi_tu_xa_bang.pdf
Nội dung text: Đồ án Ứng dụng công nghệ FPGA điều khiển thiết bị từ xa bằng điện thoại di động dùng tin nhắn SMS (Phần 1)
- BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ÐIỆN – ÐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN- ĐIỆN TỬ ỨNG DỤNG CÔNG NGHỆ FPGA ÐIỀU KHIỂN THIẾT BỊ TỪ XA BẰNG ÐIỆN THOẠI DI ÐỘNG DÙNG TIN NHẮN SMS GVHD: ThS. TRUONG THỊ BÍCH NGÀ SVTH: TRẦN HUY TRÌNH MSSV: 10101143 SKL003042 Tp. Hồ Chí Minh, tháng 07/2014
- BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIÊṆ - ĐIỆN TỬ ĐỀ TÀI: ỨNG DỤNG CÔNG NGHỆ FPGA ĐIỀU KHIỂN THIẾT BỊ TỪ XA BẰNG ĐIỆN THOẠI DI ĐỘNG DÙNG TIN NHẮN SMS GVHD: ThS. TRƯƠNG THỊ BÍCH NGÀ SVTH: TRẦN HUY TRÌNH MSSV: 10101143 Tp. Hồ Chí Minh - 7/2014
- NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN Tp. HCM, ngày tháng 07 năm 2014 Giáo viên hƣớng dẫn Ths. Trƣơng Thị Bích Ngà
- NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Tp. HCM, ngày tháng 07 năm 2014 Giáo viên phản biện
- ĐÒ Á N TÓ T NGHIÊ ̣ P Phầ n :A Giới Thiệu PHẦN A GIỚI THIỆU Trang 1
- ĐÒ Á N TÓ T NGHIÊ ̣ P Phầ n :A Giới Thiệu TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TP. HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC KHOA ĐIỆN-ĐIỆN TỬ Tp. HCM, ngày tháng 7 năm 2014 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Trần Huy Trình MSSV: 10101143 Huỳnh Kim Hữu MSSV: 10101057 Chuyên ngành: Kỹ thuật Điện - Điện tử Mã ngành: 01 Hệ đào tạo: Đại học chính quy Khóa: 2010 Lớp: 101012 I. TÊN ĐỀ TÀI: ỨNG DỤNG CÔNG NGHỆ FPGA ĐIỀU KHIỂN THIẾT BỊ TỪ XA BẰNG ĐIỆN THOẠI DI ĐỘNG DÙNG TIN NHẮN SMS II. NHIỆM VỤ 1. Các số liệu ban đầu: - Kit Nexys2 Spartan – 3E. - Phần mềm EDK. - Module sim 900. 2. Nội dung thực hiện: - Dùng FPGA điều khiển thiết bị bằng tin nhắn sms. - Giao tiếp giữa FPGA với các thiết bị ngoại vi. III. NGÀY GIAO NHIỆM VỤ: 05/03/2014 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 12/07/2014 V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Ths. Trương Thị Bích Ngà CÁN BỘ HƯỚNG DẪN BM. ĐIỆN TỬ CÔNG NGHIỆP Ths. Trương Thị Bích Ngà TS. NGUYỄN THANH HẢI Trang 2
- ĐÒ Á N TÓ T NGHIÊ ̣ P Phầ n :A Giới Thiệu TRƢỜNG ĐẠI HỌC SPKT TPHCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Khoa Điện - Điện Tử Độc lập - Tự do - Hạnh phúc Bộ Môn Điện Tử Viễn Thông Tp. Hồ Chí Minh, ngày tháng 7 năm 2014 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Huỳnh Kim Hữu Lớp: 101012 MSSV: 10101057 Họ tên sinh viên 2: Trần Huy Trình Lớp: 101012 MSSV: 10101143 Tên đề tài: ỨNG DỤNG CÔNG NGHỆ FPGA ĐIỀU KHIỂN THIẾT BỊ TỪ XA BẰNG ĐIỆN THOẠI DI ĐỘNG DÙNG TIN NHẮN SMS. Tuần/Ngày Nội dung Xác nhận GVHD 1 – 4 Thi công mạch Pic giao tiếp với module sim 900. 5 – 6 Nghiên cứu về phần mềm EDK. 7 – 8 Dùng phần mềm EDK để viết chương trình giao tiếp với module sim. 9 – 10 Giao tiếp giữa Kit Nexys2 với ma trận phím. 11 Giao tiếp giữa Kit Nexys2 với LCD. 12 – 13 Giao tiếp giữa Kit Nexys2 với cảm biến chống trộm. 14 Thiết kế mạch công suất. 15 Hoàn thiện đồ án tốt nghiệp GV HƯỚNG DẪN (Ký và ghi rõ họ và tên) Ths. Trương Thị Bích Ngà Trang 3
- ĐÒ Á N TÓ T NGHIÊ ̣ P Phầ n :A Giới Thiệu LỜI MỞ ĐẦU Ngày nay với sự phát triển hết sức mạnh mẽ công nghệ, thuật toán ngày càng được đổi mới và tối ưu hóa nhằm nâng cao tính hiệu quả của nó. Tuy nhiên, công nghệ phát triển càng cao thì đòi hỏi phần cứng đủ nhanh để xử lý. Các mạch lọc tương tự trước đây không còn đủ khả năng để đáp ứng yêu cầu đó nữa. Vì vậy, FPGA đã ra đời như một giải pháp cung cấp môi trường làm việc hiệu quả cho các ứng dụng thực tế. Tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết những bài toán phức tạp mà trước kia chỉ thực hiện nhờ phần mềm máy tính. Ngoài ra, nhờ mật độ cổng logic cao, FPGA được ứng dụng cho những bài toán đòi hỏi khối lượng tính toán lớn và dùng trong các hệ thống làm việc theo thời gian thực. Cùng với sự tiến bộ của khoa học và công nghệ, các hệ thống nhúng ngày càng được sử dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin, kỹ thuật quân sự , Ngày nay, để tìm hiểu và nghiên cứu hệ thống nhúng các nhà s ản xuất FPGA cung cấp cho chúng ta các công cụ xây dựng hệ thống (Altera có SoPC Builder, Xilinx có EDK). Thông thường với FPGA ta phải xây dựng các hệ thống từ các cổng logic/IC số .Với các công cụ như Altera hay EDK thì ta có thể xây dựng một hệ thống rất nhanh từ các IP (Intellectual Property) mà các nhà sản xuất đã cung cấp sẵn. Các IP được cung cấp cho chúng ta dùng thử ở dạng mã hóa (không thể nhìn thấy kiến trúc của nó), chỉ có thể tạm thời sử dụng chúng cho thiết kế của mình mà không quan tâm đến nội dung bên trong của nó. Hiện nay lý thuyết về công nghệ FPGA khá nhiều tuy nhiên ứng dụng về nó là rất ít, từ đó nhóm muốn sử dụng công nghê FPGA cũng như phần mềm lập trình nhúng EDK để ứng dụng vào thực tế, nhóm chọn đề tài là “Điều khiển thiết bị từ xa bằng điện thoại di động sử dụng tin nhắn SMS” đề tài này khá phổ biến tuy nhiên đa phần mọi người đều dùng các con vi điều khiển 89c51 hay Pic16877a làm bộ phận thiết bị trung tâm, nay nhóm muốn ứng dụng công nghệ FPGA vào đề tài trên, nghĩa là lúc này công nghệ FPGA sẽ đóng vai trò bộ phận thiết bị trung tâm để điều khiển. Quyển đố án này bao gồm 3 phần: Phần A: Giới thiệu Phần B: Nội dung (Gồm 6 Chương) Chương 1: Dẫn nhập Chương 2: Cơ sở lý thuyết Chương 3: Giới thiêụ kit N exys2 Chương 4: Thiết kế phần cứng Chương 5: Phần mềm hệ thống Chương 6: Kết quả, kết luận và hướng phát triển đề tài Phần C: Phụ Lục Mặc dù nhóm thực hiện đề tài đã hoàn thiện được quyển đồ án, nhưng do còn hạn chế về kiến thức nên chắc chắn còn thiếu sót. Nhóm thực hiện đề tài mong nhận nhận được sự đóng góp ý kiến của quý thầy cô cùng các bạn sinh viên. Trang 4
- ĐÒ Á N TÓ T NGHIÊ ̣ P Phầ n :A Giới Thiệu Sinh viên thực hiện đề tài xin chân thành cảm ơn cô Trƣơng Thị Bích Ngà đã tận tình hướng dẫn, hỗ trợ phương tiện và cung cấp nhiều tài liệu chuyên môn trong quá trình nghiên cứu và khai thác đề tài. Đồng thời cũng xin cảm ơn các thầy cô trong Khoa Điện - Điện Tử đã tạo điều kiện, cung cấp cho sinh viên thực hiện đề tài những kiến thức cơ bản, cần thiết trước khi có đủ khả năng tìm hiểu những kiến thức sâu hơn trong việc thực hiện nghiên cứu của mình. Theo đó, sinh viên thực hiện đề tài cũng xin cám ơn các thành viên trong lớp 101012 đã có những ý kiến đóng góp, bổ sung sinh viên thực hiện đề tài hoàn thành nhiệm vụ.Cám ơn những người thân đã động viên, cỗ vũ tinh thần. Ngoài ra, sinh viên thực hiện đề tài cũng đã nhận được sự chỉ bảo của các lớp đàn anh đi trước.Các anh cũng đã hướng dẫn và giới thiệu tài liệu tham khảo trong việc thực hiện nghiên cứu. Sinh viên thực hiện đề tài Trần Huy Trình Huỳnh Kim Hữu Trang 5
- ĐÒ Á N TÓ T NGHIÊ ̣ P Phần B: Nội Dung PHẦN B NỘI DUNG MỤC LỤC CHƢƠNG 1: DẪN NHÂP̣ 1.1 LÝ DO CHỌN ĐỀ TÀI 12 1.2 MỤC ĐÍCH NGHIÊN CỨU 12 1.3 ĐỐI TƯỢNG NGHIÊN CỨU VÀ PHẠM VI NGHIÊN CỨU 12 1.3.1 Đối tượng nghiên cứu 12 1.3.2 Phạm vi nghiên cứu 12 1.4 Ý NGHĨA KHOA HỌC CỦA ĐỀ TÀ I 13 1.5 TÌNH HÌNH NGHIÊN CỨU 13 1.6 PHƯƠNG PHÁP NGHIÊN CỨ U 13 CHƢƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 CÔNG NGHỆ FPGA 14 2.1.1 Các khối logic có thể định cấu hình CLB 14 2.1.2 Các module logic 15 2.1.3 FPGA dung công nghệ SRAM 15 2.1.4 Các lõi của FPGA 15 2.2 FPGA CỦA HÃNG ALTERA 16 2.2.1 Khối mảng Logic (LAB- Logic Array Block) 16 2.2.2 Module Logic thích nghi ALM 17 2.2.3 Các chức năng tích hợp 19 2.3 FPGA CỦA XILINX 19 2.3.1 Các khối Logic có thể định cấu hình CLB (Configurable Logic Block) 19 2.3.2 Chuỗi liên tiếp SOP 21 2.3.3 Cấu trúc FPGA truyền thông và cấu trúc ASMBL 23 CHƢƠNG 3: KHẢO SÁT KIT NEXYS 2 3.1 GIỚI THIỆU BỘ THÍ NGHIỆM NEXYS2 SPARTAN – 3E . 26 3.2 KHẢO SÁT CÁC THÀNH PHẦN CƠ BẢN CỦA KIT NEXYS2 SPARTAN – 3E 3.2.1 Nguồn cung cấp 27 Trang 6 GVHD: Ths. Trương Thi ̣Bích Ngà
- ĐÒ Á N TÓ T NGHIÊ ̣ P Phần B: Nội Dung 3.2.2 Các giao tiếp ngoại vi 28 3.3 CÁC TÙY CHỌN ĐỊNH CẤU HÌNH CHO SPARTAN 31 CHƢƠNG 4: GIAO TIẾP GIỮA KIT FPGA NEXYS2 VỚI CÁC BỘ PHẬN NGOẠI VI 4.1 SƠ ĐỒ KHỐI 33 4.2 CHI TIẾT TỪNG KHỐI 34 4.2.1 Module sim 900 34 4.2.2 Khối công suất 38 4.2.3 Khối bàn phím 39 4.2.4 Khối cảm biến chuyển động 40 4.2.5 Khối hiển thị LCD 42 CHƢƠNG 5: PHẦN MỀM HỆ THỐNG 5.1 GIỚI THIỆU PHẦN MỀM EDK CỦA HÃNG XILINX 52 5.2 THIẾT KẾ IP TRÊN FPGA DÙNG XPS 52 5.2.1 Yêu cầu 52 5.2.2 Sơ đồ phần cứng yêu cầu 52 5.2.3 Các bước thực hiện 53 5.3 THIẾT KẾ HỆ THỐNG NHÚNG TRÊN FPGA DÙNG SDK 82 5.3.1 Yêu cầu 82 5.3.2 Lưu đồ chương trình 82 5.3.3 Xây dựng phần mềm 92 5.4 CHẠY CHƢƠNG TRÌNH ỨNG DỤNG TRÊN KIT NEXYS2 99 CHƢƠNG 6: KẾT QUẢ, KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ĐỀ TÀI 6.1 KẾT QUẢ THỰC HIỆN 103 6.2 MÔ TẢ HỆ THỐNG 104 6.3 KẾT LUẬN 105 6.4 HƢỚNG PHÁT TRIỂN ĐỀ TÀI 105 TÀI LIỆU THAM KHẢO 106 PHỤ LỤC 107 LIỆT KÊ HÌNH Hình 2-1: Cấu trúc FPGA 14 Hình 2-2: Các khối CLB 15 Hình 2-3: Sơ đồ khối của một module logic 15 Hình 2-4: Khái niệm chức năng lõi phần cứng trong FPGA 16 Hình 2-5: Sơ đồ khối của cấu trúc LAB của Stratix II và ALM 17 Hình 2-6: Sơ đồ khối ALM của Stratix II 18 Trang 7 GVHD: Ths. Trương Thi ̣Bích Ngà
- ĐÒ Á N TÓ T NGHIÊ ̣ P Phần B: Nội Dung Hình 2-7: Các cấu hình có thể có của LUT trong ALM của kiểu bình thường 18 Hình 2-8: Mở rộng ALM để tạo ra hàm SOP 7 biến trong kiểu LUT mở rộng 19 Hình 2-9: Sơ đồ khối của FPGA Stratix II 20 Hình 2-10: Minh họa các cấp logic định cấu hình từ tế bào logic cho đến CLB 21 Hình 2-11: Cách dung chuỗi nối tiếp để mở rộng biểu thức CLB 23 Hình 2-12: Tích hợp nhiều chức năng IP 24 Hình 2-13: Minh họa cấu trúc ASMBL của FPGA platform 25 Hình 3-1: Cấu trúc bộ NEXYS2 – FPGA SPARTAN 3E – XC3S500 – FG320 26 Hình 3-2: Giao tiếp giữa FPGA với các ngoại vi 27 Hình 3-3: Sơ đồ mạch nguồn cung cấp 27 Hình 3-4: Sơ đồ giao tiếp giữa FPGA với các ngoại vi 28 Hình 3-5: Vị trí các ngoại vi 28 Hình 3-6: Sơ đồ kết nối 8 SW 29 Hình 3-7: Sơ đồ kết nối 4 nút nhấn 29 Hình 3-8: Sơ đồ kết nối 8 led 30 Hình 3-9: Sơ đồ kết nối 4 led 7 đoạn 30 Hình 3-10: 4 led 7 đoạn 31 Hình 3-11: Dạng song điều khiển 4 led 7 đoạn 31 Hình 3-12: Các ngõ vào xung clock 31 Hình 3-13: Các ngõ vào xung clock 32 Hình 4-1: Sơ đồ khối của hệ thống 33 Hình 4-2: Module sim 900 34 Hình 4-3: Sơ đồ chân của module sim 900 36 Hình 4-4: Mạch nguồn cung cấp cho module sim 900 37 Hình 4-5: Triac 38 Hình 4-6: Mạch nguyên lý của mạch công suất 38 Hình 4-7: Sơ đồ mạch in của mạch công suất 39 Hình 4-8: Sơ đồ nguyên lý của ma trận phím 39 Hình 4-9: Hình thực tế các nút nhấn 39 Hình 4-10: Sơ đồ mạch in của ma trận phím 40 Hình 4-11: Cảm biến chuyển động PIR 40 Hình 4-12: Hoạt động của PIR 41 Hình 4-13: PIR phát hiện chuyển động của người 41 Hình 4-14: Module LCD 16x2 42 Hình 4-15: Module PmodCLB 42 Hình 4-16: Giao tiếp giữa kit NEXYS2 với LCD 44 Hình 4-17: Địa chỉ DD RAM 45 Hình 4-18: Bộ phát ký tự trong nhóm ROM của LCD 46 Hình 4-19: Giản đồ thời gian của LCD 49 Hình 4-20: Lưu đồ khởi tạo LCD 51 Hình 5-1: Sơ đồ phần cứng 53 Hình 5-2: Trang web của Xilinx 54 Trang 8 GVHD: Ths. Trương Thi ̣Bích Ngà
- ĐÒ Á N TÓ T NGHIÊ ̣ P Phần B: Nội Dung Hình 5-3: Chọn chế độ mở hoặc tạo project mới 54 Hình 5-4: Nâng cấp hệ thống IP 54 Hình 5-5: Các IP đã mất 55 Hình 5-6: Các IP được cập nhật 55 Hình 5-7: Các IP cập nhật mới 56 Hình 5-8: Các IP cập nhật mới 56 Hình 5-9: Kết thúc quá trình cập nhật 57 Hình 5-10: Xóa LED_7SEGMENT 57 Hình 5-11: Chọn chế độ xóa IP 58 Hình 5-12: Cài đặt cấu hình IP cho RS_232_PORT_PC 58 Hình 5-13: Sau khi đổi tên thành RS_232_PORT_PC 58 Hình 5-14: Thêm IP UART 59 Hình 5-15: Thêm IP UART 59 Hình 5-16: Thêm IP UART 59 Hình 5-17: Cài đặt cấu hình cho RS232_PORT 60 Hình 5-18: Thêm RS232_PORT thành công 60 Hình 5-19: Thêm CB_BAOTROM 60 Hình 5-20: Thêm CB_BAOTROM 61 Hình 5-21: Cài đặt cấu hình cho CB_BAOTROM 61 Hình 5-22: Cài đặt cấu hình cho HANG0 62 Hình 5-23: Cài đặt cấu hình cho HANG1 62 Hình 5-24: Cài đặt cấu hình cho HANG2 62 Hình 5-25: Cài đặt cấu hình cho HANG3 63 Hình 5-26: Cài đặt cấu hình cho LED_0 63 Hình 5-27: Cài đặt cấu hình cho LED_1 63 Hình 5-28: Cài đặt cấu hình cho LED_2 64 Hình 5-29: Cài đặt cấu hình cho LED_3 64 Hình 5-30: Cài đặt cấu hình cho OUT0 64 Hình 5-31: Cài đặt cấu hình cho OUT1 65 Hình 5-32: Cài đặt cấu hình cho OUT2 65 Hình 5-33: Cài đặt cấu hình cho RS 65 Hình 5-34: Cài đặt cấu hình cho RW 66 Hình 5-35: Cài đặt cấu hình cho DEN_BAOTROM 66 Hình 5-36: Cài đặt cấu hình cho CHUONG_BAOTROM 66 Hình 5-37: Cài đặt cấu hình cho COT 67 Hình 5-38: Cài đặt cấu hình cho DATA 67 Hình 5-39: Cài đặt cấu hình cho E 67 Hình 5-40: Thêm IP timer delay 68 Hình 5-41: Thêm IP timer delay 68 Hình 5-42: Cài đặt cấu hình cho IP timer delay 68 Hình 5-43: Thêm IP ngắt xps_intc_0 69 Hình 5-44: Thêm IP ngắt xps_intc_0 69 Hình 5-45: Cài đặt cấu hình IP ngắt xps_intc_0 69 Hình 5-46: Chọn chế độ kết nối SPLB 70 Hình 5-47: Kết nối SPLB với hệ thống 70 Hình 5-48: Giao diện sau khi kết nối tất cả IP đến hệ thống 71 Hình 5-49: Giao diện thanh Port 71 Hình 5-50: Tạo INTERRUPT cho microblaze_0 72 Trang 9 GVHD: Ths. Trương Thi ̣Bích Ngà
- ĐÒ Á N TÓ T NGHIÊ ̣ P Phần B: Nội Dung Hình 5-51: Tạo INTERRUPT cho microblze_0 thành công 72 Hình 5-52: Kết nối Irq với microblze_0_INTERRUPT 72 Hình 5-53: Kết nối ngắt 73 Hình 5-54: Tạo ngắt delay 73 Hình 5-55: Cấu hình xps_intc_0 sau khi hoàn thành 73 Hình 5-56: Cấu hình delay ban đầu 73 Hình 5-57: Kết nối Capture Trig0 74 Hình 5-58: Cấu hình delay sau khi hoàn thành 74 Hình 5-59: Tạo kết nối Make External 74 Hình 5-60: Kết nối Make External thành công 74 Hình 5-61: Kết nối Make External thành công 75 Hình 5-62: Tạo kết nối Make External cho TX, RX 75 Hình 5-63: Tạo kết nối cho Make External cho TX, RX thành công 75 Hình 5-64: Chọn dung lượng và địa chỉ bộ nhớ 76 Hình 5-65: Sau khi chọn dung lượng bộ nhớ cho các IP 76 Hình 5-66: Sắp xếp địa chỉ bộ nhớ cho các IP 77 Hình 5-67: File system.ucf 77 Hình 5-68: Kết nối bus 81 Hình 5-69: Biên dịch bitstream.bit 81 Hình 5-70: Cập nhật bitstream.bit 82 Hình 5-71: Lưu đồ chương trình chính 82 Hình 5-72: Lưu đồ chương trình dữ liệu LCD 83 Hình 5-73: Lưu đồ chương trình ghi LCD 83 Hình 5-74: Lưu đồ chương trình khởi tạo LCD 84 Hình 5-75: Lưu đồ chương trình khởi tạo module sim 84 Hình 5-76: Lưu đồ chương trình chống trộm 85 Hình 5-77: Lưu đồ chương trình đổi mật khẩu, thêm số điện thoại 88 Hình 5-78: Lưu đồ chương trình nhận ký tự truyền từ UART 88 Hình 5-79: Lưu đồ chương trình đọc tin nhắn 89 Hình 5-80: Lưu đồ chương trình gửi tin nhắn 90 Hình 5-81: Lưu đồ chương trình kiểm tra tin nhắn 90 Hình 5-82: Lưu đồ chương trình gửi tin nhắn đến 91 Hình 5-83: Lưu đồ chương trình xử lý tin nhắn & điều khiển thiết bị 91 Hình 5-84: Xuất phần cứng qua phần mềm SDK 92 Hình 5-85: Mở phần mềm SDK 92 Hình 5-86: Chọn đường dẫn lưu thư mục SDK 92 Hình 5-87: Tạo phần mềm 93 Hình 5-88: Chọn loại board được hỗ trợ 94 Hình 5-89: Thông số 94 Hình 5-90: Tạo Project phần mềm 95 Hình 5-91: Project C 95 Hình 5-92: Tên Project và nền Project 96 Hình 5-93: Đối tượng 97 Hình 5-94: Phần mềm file C 97 Hình 5-95: Thư mục lưu file và tên file 98 Hình 5-96: Tạo file chỉ dẫn mã nguồn 98 Hình 5-97: Nơi lưu mã được biên dịch 99 Hình 5-98: Chèn lên file có sẵn 99 Trang 10 GVHD: Ths. Trương Thi ̣Bích Ngà
- ĐÒ Á N TÓ T NGHIÊ ̣ P Phần B: Nội Dung Hình 5-99: Giao diện Hercules 100 Hình 5-100: Giao diện Serial của Hercules 100 Hình 5-101: Program FPGA 101 Hình 5-102: Nạp chương trình 102 Hình 5-103: Sơ đồ tóm tắt 102 LIỆT KÊ BẢNG Bảng 4-1: Liệt kê các chân giao tiếp với các bộ kết nối 43 Bảng 4-2: Liệt kê các chân kết của các bộ kết nối với tên các chân của FPGA 43 Bảng 4-3: Khai báo gán chân khi điều khiển LCD 44 Bảng 4-4: Tóm tắt chứa các lệnh điều khiển LCD 47 Bảng 4-5: Cho biết các thông số thời gian của LCD 50 Trang 11 GVHD: Ths. Trương Thi ̣Bích Ngà
- ĐÒ Á N TÓ T NGHIÊ ̣ P Cươh ng 1: DẪN NHẬP CHƯƠNG 1 DẪN NHẬP 1.1 LÝ DO CHỌN ĐỀ TÀI “Ngôi nhà thông minh” là một cụm từ không còn xa lạ đối với nền công nghiệp phát triển hiện nay. Như chúng ta đã biết các thiết bị tự động trong nhà, trong đời sống của các gia đình ngày nay đều hoạt động độc lập với nhau, mỗi thiết bị có một quy trình sử dụng khác nhau tùy thuộc vào sự thiết lập, cài đặt của người sử dụng. Chúng chưa có một sự liên kết nào về mặt dữ liệu. Nhưng đối với hệ thống điều khiển từ xa thông qua hệ thống SMS thì khác. Ở đây, các thiết bị điều khiển tự động kết nối với nhau thành một hệ thống hoàn chỉnh qua một thiết bị trung tâm và có thể giao tiếp với nhau về mặt dữ liệu Thiết bị trung tâm ở đây có thể là một máy vi tính hoàn chỉnh, hoặc có thể là một vi điều khiển hay mới nhất là công nghệ FPGA. Như em được biết thì ở nước ta vài năm gần đây đã từng bước tiếp cận công nghệ CPLD – FPGA, đã có khá nhiều hệ thống, ứng dụng được xây dựng và triển khai thành công. Trong đó, FPGA là một thiết bị lập trình được, có số lượng cổng rất lớn, có thể thay thế cho cả một hệ thống gồm CPU, bộ điều khiển bộ nhớ và các thiết bị ngoại vi khác. Với trình độ hiện tại của nền công nghiệp nước ta, tài liệu và những kiến thức về FPGA vẫn còn ít nhưng nhu cầu ứng dụng ngày càng nhiều. Và các đề tài điều khiển thiết bị bằng tin nhắn SMS sử dụng vi điều khiển được các anh chị khóa trước làm rất nhiều và thành công nên em muốn rẽ sang một hướng mới hơn là Ứng dụng công nghệ FPGA để điều khiển thiết bị bằng tin nhắn SMS. 1.2 MỤC ĐÍCH NGHIÊN CỨU Đề tài được thực hiện với mục đích sau: Tìm hiểu về công nghệ FPGA và ngôn ngữ VHDL Tìm hiểu, sử dụng phần mềm EKD - SDK của Xilinx. Tìm hiểu module sim 900 Tiếp cận với lập trình nhúng trên FPGA – NEXYS2 SPARTAN – 3E 1.3 ĐỐI TƢỢNG NGHIÊN CỨU VÀ PHẠM VI NGHIÊN CỨU 1.3.1 ĐốI TƢợNG NGHIÊN CứU Ngôn ngữ lập trình C, phần mềm EDK, công nghệ FPGA, KIT NEXYS3 SPARTAN – 3E 1.3.2 Phạm vi nghiên cứu Nghiên cứu ngôn ngữ lập trình C, module sim 900, phần mềm EDK và thiết lập một hệ thống nhúng và phần mềm điều khiển các thiết bị ngoại vi trên kit Nexys2 Spartan –3E cho vi điều khiển microblaze như là khối công suất, khối bàn phím, khối cảm biến gồm có đo nhiệt độ, chuyển động nhưng do thời gian hạn hẹp nên nhóm chỉ làm cảm biến chuyển động. 1.4 Ý NGHĨA KHOA HỌC CỦA ĐỂ TÀI Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật, các thiết bị điện tử ra đời ngày càng nhiều về chủng loại cũng như tính năng sử dụng. Bên cạnh đó nhu cầu sử dụng các thiết bị Trang 12 GVHD: Ths. Trương Thi ̣Bích Ngà
- ĐÒ Á N TÓ T NGHIÊ ̣ P Cươh ng 1: DẪN NHẬP một cách tự động ngày càng cao, con người ngày càng muốn có nhiều thiết bị giải trí cũng như các thiết bị sinh hoạt với kỹ thuật và công nghệ ngày càng cao. Có thể ở Việt nam chưa phát triển mạnh mẽ trong lĩnh vực này nhưng hiện nay ở trên thế giới, nhất là các quốc gia thuộc Châu âu hay Mĩ thì mô hình ngôi nhà tự động được điều khiển từ xa đã phát triển rất mạnh mẽ. Từ những nhu cầu thực tế đó, nhóm muốn đưa một phần những kỹ thuật hiện đại của thế giới áp dụng vào điều kiện thực tế trong nước để có thể tạo ra một hệ thống điều khiển thiết bị trong nhà từ xa thông qua tin nhắn SMS nhằm đáp ứng nhu cầu ngày càng cao của con người. Đề tài lấy cơ sở là tin nhắn SMS để điều khiển thiết bị. Việc sử dụng tin nhắn SMS để điều khiển thiết bị có thuận lợi là tiết kiệm chi phí, mang tính cạnh tranh và cơ đ ộng cao (nghĩa là ở chỗ nào có phủ sóng mạng điện thoại di đ ộng ta cũng có thể điều khiể n thiết bị được). Ngoài ra, sản phẩm của đề tài này có tính mở, có thể áp dụng cho nhiều đối tượng khác nhau trong dân dụng cũng như trong công nghiệp. 1.5 TÌNH HÌNH NGHIÊN CỨU Hiện nay trên các diễn đàn điện tử rất sôi động thảo luận về các ứng dụng của công nghệ FPGA, CPLD. Trong đó ứng dụng điều khiển thiết bị bằng tin nhắm SMS rất được nhiều người quan tâm. Thông qua các diễn đàn này sinh viên thực hiện đề tài nhận thấy mọi người viết trên các ngôn ngữ Verilog, VHDL chiếm đa số. Tuy nhiên lập trình nhúng bằng ngôn ngữ C sử dụng EDK vẫn còn rất hạn chế. 1.6 PHƢƠNG PHÁP NGHIÊN CỨU Với lư ợng thời gian và kiến thức có hạn, cũng như sự mới mẻ trong bước đầu nghiên cứu khoa học vì thế sinh viên thực hiện đề tài sử dụng 2 phương pháp chủ yếu: Phương pháp tham khảo tài liệu: o Với sự hướng dẫn từ giáo viên và tham khảo nguồn tài liệu tìm kiếm được trên mạng internet thông qua các website của Xilinx, Digilent và các diễn đàn. Phương pháp thực hành: o Thực hiện thi công mạch giao tiếp giữa module sim với pic16f877a sau đó lấy đó làm nền tảng để chuyển qua lập trình nhúng EDK để chuyển qua giao tiếp giữa FPGA với module sim. o Thực hành trên phần mềm EDK và KIT NEXYS2 Spartan – 3E của hãng Digilent để ứng dụng lý thuyết. Trang 13 GVHD: Ths. Trương Thi ̣Bích Ngà
- ĐÒ Á N TÓ T NGHIÊ ̣ P Chương 2: Cơ Sở Lý Thuyết CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 CÔNG NGHỆ FPGA 2.1.1 Cấu trúc FPGA FPGA (Field Programmable Gate Array) không dùng mảng PAL/GAL. Các phần tử để tạo ra các hàm logic trong FPGA thường nhỏ hơn nhiều so với các thành phần trong CPLD. Có 3 khối cơ bản trong FPGA là: Khối logic có thể định cấu hình CLB (Configurable Logic Block). Các kết nối bên trong. Các khối ngõ vào ra. Programmable interconnections IO IO IO IO block block block block IO IO block block CLB CLB CLB CLB IO IO block block CLB CLB CLB CLB IO IO block block CLB CLB CLB CLB IO IO block block IO IO IO IO block block block block FPGA Hình 2-1 Cấu trúc FPGA (Nguồn Giáo trình kỹ thuật PLD và ASIC) Trang 14 GVHD: Ths. Trương Thi ̣Bích Ngà
- ĐÒ Á N TÓ T NGHIÊ ̣ P Chương 2: Cơ Sở Lý Thuyết 2.1.2 KHốI LOGIC CÓ THể ĐịNH CấU HÌNH Khối logic của FPGA chứa một vài module logic khá nhỏ tương tự như macrocell trong CPLD. Các khối có thể lập trinh hàng/cột toàn cục. Mỗi CLB được thiết lập từ nhiều module logic nhỏ hơn và các kết nối bên trong có thể lập trình cục bộ để kết nối các module logic khác với CLB. CLB CLB Logic module Logic module Logic module Logic module Logic module Logic module Local Local interconnect interconnect Logic module Logic module Global column Global row interconnect interconnect Hình 2-2 Các khối CLB (Nguồn Giáo trình kỹ thuật PLD và ASIC) 2.1.3 CÁC MODULE LOGIC Một module logc trong một khối logic của FPGA có thể được định cấu hình cho hàm logic tổ hợp, hàm logic thanh ghi hoặc cho cả 2. Flip flop là thành phần logic kết hợp và được dùng cho các hàm logic thanh ghi. SOP A0 A1 output I/O A2 LUT Associated logic A n-1 Logic module Hình 2-3 Sơ đồ khối của một module logic (Nguồn Giáo trình kỹ thuật PLD và ASIC) LUT bao gồm một số các ô nhớ bằng 2n trong đó n là số lượng các biến ngõ vào. 2.1.4 CÁC LÕI CủA FPGA Các FPGA giống như các phiến trắng mà người dùng có thể lập trình cho các thiết kế logic. Các FPGA tiện lợi khi mà nó chứa các mạch logic “lõi phần cứng”. Một mạch logic lõi phần cứng là một phần logic trong FPGA được đặt vào bên trong bởi nhà chế tạo để cung cấp các chức năng đặc biệt và không thể lập trình lại. Trang 15 GVHD: Ths. Trương Thi ̣Bích Ngà
- ĐÒ Á N TÓ T NGHIÊ ̣ P Chương 2: Cơ Sở Lý Thuyết Ưu điểm của dùng lõi phần cứng là: với cùng một yêu cầu thiết kế nếu dùng lõi phần cứng sẽ tốn ít tài nguyên của FPGA hơn so với cách sử dụng phần mềm để lập trình, những ưu điểm khác là không gian trên chip nhỏ hơn và thời gian thiết kế ngắn hơn. Khuyết điểm là các thông số kỹ thuật cố định trong quá trình chế tạo và không có khả năng thay đổi về sau. Các lõi phần cứng có các chức năng được sử dụng phổ biến trong các hệ thống như vi xử lý, mạch giao tiếp ngõ vào/ngõ ra và xử lý tín hiệu số. Có nhiều chức năng lõi phần cứng có thể lập trình trong FPGA. Remaining CLBs are Hard core: portion programmed of CLBs by user programmed during manufacturing for a speccific function Hình 2-4 Khái niệm chức năng lõi phần cứng trong FPGA (Nguồn Giáo trình kỹ thuật PLD và ASIC) Việc thiết kế các lõi phần cứng thường được xây dựng bởi các nhà chế tạo FPGA và thuộc sở hữu của nhà chế tạo. Các thiết kế riêng bởi nhà chế tạo được đặt tên là Intellectual Property (IP) – sở hữu trí tuệ. Các công ty thường liệt kê các loại IP có hiệu lực trên các website. Nhiều IP kết hợp giữa phần mềm và phần cứng. Các FPGA chứa các vi xử lý tích hợp một trong hai hoặc cả hai lõi phần cứng và lõi phần mềm cùng nhiều chức năng khác đặt tên là Platform FPGA bởi vì chúng có thể được dùng điều khiển một hệ thống đầy đủ mà không cần thêm một thiết bị hỗ trợ nào. 2.2 FPGA CỦA ALTERA Altera sản xuất ra nhiều họ FPGA bao gồm Statix II, Stratix, Cyclone và ACEX. 2.2.1 Khối mảng logic (LAB – Logic Array Block) Sơ đồ khối của FPGA tổng quát đã được trình bay như hình 1-1; cấu trúc của Stratix II và các học Altera khác thì giống nhau. Chúng đều có cấu trúc loại LUT cho các module logic - được gọi là module logic thích nghi ALM (Adaptive Logic Module) được trình bay trong thiết bị tổng quát LAB. Mật độ được phân loại từ 2000 LAB cho đến 22000 LAB tùy thuộc vào các họ cụ thể và mỗi LAB có 8 ALM. Kích thước vỏ thay đổi từ 314 chân đến 1173 chân. Thiết bị yêu cầu sử dụng nguồn DC cung cấp từ 1,2V; 1,5V và 2,5V. Họ FPGA Stratix II sử dụng công nghệ SRAM. Trang 16 GVHD: Ths. Trương Thi ̣Bích Ngà
- ĐÒ Á N TÓ T NGHIÊ ̣ P Chương 2: Cơ Sở Lý Thuyết Hình 2-5 Sơ đồ khối của cấu trúc LAB của Stratix II và ALM (Nguồn Giáo trình kỹ thuật PLD và ASIC) Hình 1-5 trình bày sơ đồ khối của cấu trúc LAB của Stratix II. Mỗi LAB chứa 8 ALM, các LAB được liên kết với nhau thông qua các kết nối hang và cột bên trong. Các điểm kết nối cục bộ bên trong liên kết các ALM với mỗi LAB. 2.2.2 Module logic thích nghi ALM ALM là đơn vị thiết kế cơ bản trong FPGA Stratix II. Mỗi ALM chứa một thành phần tổ hợp logic dung cấu trúc LUT và mạch logic kết hợp có thể được lập trình cho 2 ngõ ra logic tổ hợp hoặc hai ngõ ra thanh ghi dịch. Bên cạnh đó, ALM có mạch cộng logic, các flip flop và các mạch logic khác – cho phép thực hiện chức năng tính toán số học, chức năng đếm và thanh ghi dịch. Sơ đồ khối của ALM của Stratix II được trình bày như hình 1- 6. Hoạt động của ALM: Một ALM có thể được lập trình cho ra nhiều kiểu hoạt động như sau: Kiểu hoạt động bình thường. Kiểu hoạt động LUT mở rộng Kiểu tính toán số học. Kiểu tính toán số học dung chung. Ngoài 4 kiểu hoạt động thì ALM có thể được dung như là 1 chuỗ thanh ghi để xây dựng bộ đếm và thanh ghi dịch. Trang 17 GVHD: Ths. Trương Thi ̣Bích Ngà
- S K L 0 0 2 1 5 4



