Để có thể giao tiếp và điều các ngoại vi,CPU sử dụng 03 loại tín hiệu cơ bản là tín hiệu địa chỉ Address, tín hiệu dữ liệu Data vàtín hiệu điều khiển Control.. Quá trình truyền dữ liệu c
Trang 1CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
THIẾT KẾ VÀ THI CÔNG BỘ THÍ NGHIỆM VI XỬ
LÝ GIAO TIẾP KIT INTEL GALILEO
GVHD: NGÔ BÁ VIỆT SVTH: PHẠM QUANG MINH MSSV: 14141195
SVTH: HỒ VĂN TRỌNG MSSV: 14141338
SKL005640
Tp Hồ Chí Minh, tháng 01/2019
Trang 2Họ tên sinh viên:
Chuyên ngành:
Hệ đào tạo:
Khóa:
I TÊN ĐỀ TÀI:
THIẾT KẾ VÀ THI CÔNG BỘ THÍ NGHIỆM VI XỬ LÝ
GIAO TIẾP KIT INTEL GALILEO
II NHIỆM VỤ
1 Các số liệu ban đầu:
- Thiết kế và thi công được bộ thí nghiệm vi xử lý hoàn chỉnh với nhữngchức năng cơ bản như: bàn phím, led đơn, led 7 đoạn, LCD… hoặc nhữngứng dụng cao hơn: giao tiếp máy tính, điều khiển động cơ
- Xây dựng các bài tập thí nghiệm giao tiếp đơn giản với led đơn, led 7
đoạn, nút nhấn, switch, bàn phím ma trận, LCD, chuyển đổi ADC
2. Nội dung thực hiện:
- Tìm hiểu về kit Intel Galileo, phần mềm Arduino, các mạch giao tiếp
ngoại vi với vi điều khiển
- Thiết kế phần cứng bộ thí nghiệm (thiết kế mạch nguyên lý, mạch in, thi công)
- Xây dựng các bài thực hành cơ bản, viết chương trình thực thi và kiểm tra kết quả trên bộ thí nghiệm
- Thu thập kết quả Kiểm tra tính ổn định của hệ thống Viết báo cáo luận văn
- Báo cáo đề tài tốt nghiệp
III NGÀY GIAO NHIỆM VỤ:
IV NGÀY HOÀN THÀNH NHIỆM
VỤ:
V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN:
01/10/201805/01/2019ThS Ngô Bá Việt
CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trang 3Họ tên sinh viên 1: Phạm Quang Minh
(29/10-6
(05-10/11)
Trang 4(12-17/11)
Trang 7Đề tài này là do chúng tôi tự thực hiện dựa vào một số tài liệu trước đó và không sao chép từ tài liệu hay công trình đã có trước đó.
Người thực hiện đề tàiPhạm Quang Minh
Hồ Văn Trọng
iv
Trang 8Để hoàn thành đề tài nghiên cứu này, lời đầu tiên cho phép chúng tôi được gửi
lời cảm ơn chân thành đến toàn thể quý thầy cô Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM nói chung và các thầy cô trong Khoa Điện – Điện Tử nói riêng, những người đã tận tình dạy dỗ, trang bị cho chúng tôi những kiến thức nền tảng và
kiến thức chuyên ngành quan trọng, giúp nhóm chúng tôi có được cơ sở lý thuyếtvững vàng và đã luôn tạo điều kiện giúp đỡ tốt nhất cho chúng tôi trong quá trìnhhọc tập và nghiên cứu
Đặc biệt, chúng tôi xin chân thành cảm ơn ThS Ngô Bá Việt đã tận tình giúp
đỡ, đưa ra những định hướng nghiên cứu cũng như hướng giải quyết một số vấn đề
để chúng tôi có thể thực hiện tốt đề tài
Mặc dù đã cố gắng hết sức, song do điều kiện thời gian và kinh nghiệm thực tếcủa chúng tôi còn ít, cho nên đề tài không thể tránh khỏi thiếu sót Vì vậy, chúng tôirất mong nhận được sự đóng góp ý kiến của quý thầy, cô giáo
Xin chân thành cảm ơn!
TP.HCM, ngày 05 tháng 01 năm 2019
Sinh viên thực hiện
Phạm Quang Minh
Hồ Văn Trọng
Trang 9NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP .
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP .
LỜI CAM ĐOAN
LỜI CẢM ƠN
MỤC LỤC
LIỆT KÊ HÌNH ẢNH
LIỆT KÊ BẢNG
DANH SÁCH CÁC TỪ VIẾT TẮT
TÓM TẮT
Chương 1 TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ
1.2 MỤC TIÊU
1.3 NỘI DUNG NGHIÊN CỨU
1.4 GIỚI HẠN
1.5 BỐ CỤC
Chương 2 CƠ SỞ LÝ THUYẾT 2.1 KHÁI QUÁT VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN
2.1.1 Vi xử lý và vi điều khiển
2.1.2 Hệ thống điều khiển tích hợp (SoC)
2.2 TRUYỀN DỮ LIỆU CHUẨN I2C
2.3 TRUYỀN DỮ LIỆU CHUẨN SPI
2.4 TRUYỀN DỮ LIỆU CHUẨN 1-WIRE
2.5 PHẦN MỀM ARDUINO
2.6 GIỚI THIỆU PHẦN CỨNG
2.6.1 Bộ xử lý trung tâm - Intel Galileo Gen 2
2.6.2 Thiết bị đầu vào
2.6.3 Thiết bị đầu ra
2.6.4 Thiết bị thời gian thực DS1307
Chương 3 TÍNH TOÁN VÀ THIẾT KẾ 3.1 GIỚI THIỆU
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
vi 3.2.1
Trang 10Chương 4.
4.1 GIỚI THIỆU 4.2 THI CÔNG HỆ THỐNG
4.2.14.2.24.3 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH
4.3.14.3.24.4 LẬP TRÌNH HỆ THỐNG
4.4.14.4.24.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC
Chương 5.
5.1 KẾT QUẢ
5.1.15.1.25.2 NHẬN XÉT – ĐÁNH GIÁ
Chương 6.
6.1 KẾT LUẬN
6.1.16.1.26.2 HƯỚNG PHÁT TRIỂN ĐỀ TÀI
TÀI LIỆU THAM KHẢO
PHỤ LỤC
vii
Trang 11Hình Trang
Hình 2.1: Mô hình truyền dữ liệu chuẩn I2C 6
Hình 2.2: Quá trình thiết bị chủ ghi dữ liệu vào thiết bị tớ 6
Hình 2.3: Quá trình thiết bị chủ đọc dữ liệu vào thiết bị tớ 7
Hình 2.4: Mô hình truyền dữ liệu chuẩn SPI 8
Hình 2.5: Mô hình truyền dữ liệu chuẩn 1-Wire 9
Hình 2.6: Dạng sóng quá trình truyền nhận dữ liệu chuẩn 1 -Wire 10
Hình 2.7: Biểu tượng phần mềm Arduino 10
Hình 2.8: Giao diện phần mềm Arduino 11
Hình 2.9: Mặt trên kit Intel Galileo Gen 2 12
Hình 2.10: Mặt dưới kit Intel Galileo Gen 2 12
Hình 2.11: Sơ đồ nguyên lý chip xử lý trung tâm trên kit 13
Hình 2.12: Sơ đồ bố trí chân I/O trên kit Intel Galile o Gen 2 13
Hình 2.13: Ma trận phím 4x4 ngoài thực tế 14
Hình 2.14: Cảm biến LM35 ngoài thực tế 15
Hình 2.15: Led 7 đoạn đôi ngoài thực tế 16
Hình 2.16: LCD 16x2 ngoài thực tế 16
Hình 2.17: Sơ đồ chân LCD 16x2 17
Hình 2.18: Led ma trận 8x8 ngoài thực tế 18
Hình 2.19: Sơ đồ chân led ma trận 8x8 19
Hình 2.20: IC 74HC595 ngoài thực tế 19
Hình 2.21: Sơ đồ chân IC 74HC595 20
Hình 2.22: Cấu trúc bên trong IC 74HC595 21
Hình 2.23: IC 74HC138 ngoài thực tế 22
Hình 2.24: Sơ đồ chân IC 74HC138 22
Hình 2.25: IC L298 ngoài thực tế 25
Hình 2.26: Sơ đồ chân IC L298 25
Hình 2.27: IC DS1307 ngoài thực tế 26
Hình 2.28: Sơ đồ chân IC DS1307 26
Hình 2.29: Địa chỉ các thanh ghi IC DS1307 27
viii
Trang 12Hình 3.2: Sơ đồ nguyên lý của khối xử lý trung tâm 29
Hình 3.3: Sơ đồ nguyên lý khối nút nhấn đơn 31
Hình 3.4: Sơ đồ nguyên lý khối ma trận phím 4x4 32
Hình 3.5: Sơ đồ nguyên lý khối led đơn 33
Hình 3.6: Sơ đồ nguyên lý khối led 7 đoạn 33
Hình 3.7: Transistor A1015 ngoài thực tế 34
Hình 3.8: Sơ đồ nguyên lý khối LCD 16x2 35
Hình 3.9: Sơ đồ nguyên lý khối led ma trận 8x8 35
Hình 3.10: Sơ đồ nguyên lý khối cảm biến nhiệt độ 36
Hình 3.11: Sơ đồ nguyên lý khối thời gian thực 36
Hình 3.12: Sơ đồ nguyên lý khối động cơ 36
Hình 3.13: Sơ đồ nguyên lý khối nguồn 37
Hình 3.14: Adapter 12V – 2A 37
Hình 3.15: Sơ đồ nguyên lý khối switch giao tiếp 38
Hình 4.1: Mạch in PCB lớp dưới 39
Hình 4.2: Mạch in PCB lớp trên 40
Hình 4.3: Sơ đồ bố trí linh kiện 40
Hình 4.4: Board thí nghiệm mặt dưới 43
Hình 4.5: Board thí nghiệm mặt trên 43
Hình 4.6: Mô hình tổng thể 44
Hình 4.7: Mô hình nhìn từ trên xuống 45
Hình 4.8: Mặt trước mô hình 45
Hình 4.9: Mặt hông mô hình 45
Hình 4.10: Lưu đồ hoạt động toàn bộ hệ thống 46
Hình 4.11: Lưu đồ điều khiển bằng nút nhấn, ma trận phím 47
Hình 4.12: Lưu đồ hiển thị 47
Hình 4.13: Trang chủ Arduino 49
Hình 4.14: Biểu tượng phần mềm Arduino 49
Hình 4.15: Giao diện phần mềm Arduino 49
Trang 13Hình 4.17: Hộp thoại Boards Manager 50
Hình 4.18: Giao diện phần mềm khi tiến hành chọn kit Intel Galileo Gen 2 51
Hình 4.19: Bộ xử lý trung tâm và board thí nghiệm đã kết nối 51
Hình 4.20: Vị trí nút BTN_NGUON trên board thí nghiệm 52
Hình 4.21: Kết nối cáp Micro USB giữa bộ xử lý trung tâm với máy tính 52
Hình 4.22: Giao diện phầm mềm khi tiến hành chọn kit giao tiếp 53
Hình 4.23: Giao diện phần mềm khi chọn cổng COM giao tiếp 53
Hình 4.24: Báo hiệu giao tiếp thành công với kit ở góc dưới bên phải 53
Hình 4.25: Biểu tượng công cụ biên dịch chương trình 53
Hình 4.26: Báo hiệu biên dịch chương trình hoàn tất và không có lỗi 54
Hình 4.27: Biểu tượng công cụ nạp chương trình 54
Hình 4.28: Báo hiệu nạp chương trình thành công 54
Hình 4.29: Board thí nghiệm sau khi nạp chương trình 54
Hình 5.1: Mô hình bộ thí nghiệm 55
Hình 5.2: Bộ xử lý trung tâm 56
x
Trang 14Bảng Trang
Bảng 2.1: Các kí hiệu và ý nghĩa chân của LCD 17
Bảng 2.2: Các kí hiệu và ý nghĩa chân IC 74HC595 20
Bảng 2.3: Bảng trạng thái IC 74HC595 21
Bảng 2.4: Các kí hiệu và ý nghĩa chân của 74HC138 23
Bảng 2.5: Bảng trạng thái IC 74HC138 24
Bảng 2.6: Các kí hiệu và ý nghĩa chân IC DS1307 26
Bảng 3.1: Các chân của kit Intel Galileo Gen 2 sử dụng trong đề tài 30
Bảng 4.1: Danh sách các linh kiện sử dụng 41
Bảng 4.2: Các công cụ trên giao diện phần mềm Arduino 48
Trang 151234567891213141516171819
20
2122
Trang 17Hiện nay, vi điều khiển và vi xử lý là xu hướng tuy không mới nhưng rất thịnhhành Vì thế trong những năm gần đây, các nhà sản xuất chip điện tử đã cho ra đờinhững dòng vi điều khiển mới với những tính năng vượt bậc đáp ứng nhu cầu pháttriển ngày càng cao của khoa học kỹ thuật Một trong những dòng vi điều khiển mớiphải kể đến là Intel Galileo.
Với mục đích muốn tiếp cận gần hơn với dòng vi điều khiển mới này nênnhóm chúng tôi thực hiện đồ án “Thiết kế và thi công bộ thí nghiệm vi xử lý giaotiếp kit Intel Galileo” Hệ thống của chúng tôi bao gồm những chức năng sau:
Bộ thí nghiệm vi xử lý hoàn chỉnh với những chức năng cơ bản như: bàn phím,
led đơn, led 7 đoạn, LCD… hoặc những ứng dụng cao hơn: giao tiếp máy tính, điều khiển động cơ
Các bài tập thí nghiệm giao tiếp đơn giản với led đơn, led 7 đoạn, nút nhấn, bàn phím ma trận, LCD, chuyển đổi ADC…
xiii
Trang 18Nhận thấy tầm quan trọng trên nên việc khảo sát, tìm hiểu vi điều khiển ởnhiều cấp độ khác nhau từ đơn giản đến phức tạp là hết sức cần thiết Vì thế đã córất nhiều đề tài, đồ án tốt nghiệp, bộ thí nghiệm liên quan đến vi điều khiển để phục
vụ việc học tập, thực hành, nghiên cứu đối với học sinh, sinh viên ví dụ như: “Thiết
kế bộ thí nghiệm PIC 18F2455/2550/5555/4550” [2], “Thiết kế nhà thông minhdùng vi điều khiển PIC 16F887” [3], “Hệ thống điểm danh bằng vân tay ứng dụng
vi điều khiển ARM” [4], “Ứng dụng kit Raspberry nhận dạng mặt người” [5]…
Từ thực tế hiện nay, ta thấy các đề tài thường sử dụng vi điều khiển họ PIC,ARM… là chủ yếu Bên cạnh đó chúng tôi nhận thấy dòng vi điều khiển Intel nóichung và kit Intel Galileo nói riêng còn khá mới mẻ và chưa được phổ biến rộng rãinên hầu hết các bộ thí nghiệm, board thực tập hiện nay cho dòng vi điều khiển nàygần như là chưa có Chính vì vậy, đây là lý do mà chúng tôi quyết định chọn đề tài:
“Thiết kế và thi công bộ thí nghiệm vi xử lý giao tiếp ki t Intel Galileo” với mục
đích tiếp cận gần hơn với dòng vi điều khiển Intel này và hơn hết có thể phục vụnhu cầu học tập của các bạn sinh viên trong tương lai
Thiết kế và thi công được bộ thí nghiệm vi xử lý hoàn chỉnh với những chứcnăng cơ bản như: bàn phím, led đơn, led 7 đoạn, LCD… hoặc những ứngdụng cao hơn: giao tiếp máy tính, điều khiển động cơ
Xây dựng các bài tập thí nghiệm giao tiếp đơn giản với led đơn, led 7 đoạn, nút nhấn, bàn phím ma trận, LCD, chuyển đổi ADC…
Trang 191.3 NỘI DUNG NGHIÊN CỨU
Trong báo cáo này chúng tôi đã cố gắng trình bày một cách thật logic để ngườiđọc có thể dễ dàng nắm rõ được kiến thức, phương thức cũng như cách thức hoạtđộng của hệ thống
Nội dung nghiên cứu được chúng tôi chia làm 5 nội dung chính như sau:
NỘI DUNG 1: Tìm hiểu về kit Intel Galileo, phần mềm Arduino, các mạch giao tiếp ngoại vi với vi điều khiển
NỘI DUNG 2: Thiết kế phần cứng bộ thí nghiệm (thiết kế mạch nguyên lý, mạch in, thi công)
NỘI DUNG 3: Xây dựng các bài thực hành cơ bản, viết chương trình thực thi
và kiểm tra kết quả trên bộ thí nghiệm
NỘI DUNG 4: Thu thập kết quả, viết báo cáo luận văn
NỘI DUNG 5: Báo cáo đề tài tốt nghiệp
1.4 GIỚI HẠN
Sử dụng kit Intel Galilleo làm mạch điều khiển, sử dụng các họ IC giao tiếp,hiển thị, giải mã, mở rộng port để thiết kế các module ngoại vi kết nối vớimạch điều khiển
Các bài tập thí nghiệm viết trên chương trình Arduino
Số lượng module dự kiến điều khiển: 6 module
Chương 1: Tổng Quan
Chương này trình bày lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án
Chương 2: Cơ Sở Lý Thuyết
Chương này tập trung vào những lý thuyết liên quan đến đề tài bao gồm cơ sở
lý thuyết về Intel Galileo, các chuẩn giao tiếp sử dụng trong đề tài cũng như cơ sở lýthuyết về các thiết bị, linh kiện sử dụng trong mô hình bộ thí nghiệm
Chương 3: Tính Toán Và Thiết Kế
Chương này giới thiệu tổng quan về các yêu cầu của đề tài, thiết kế và tính toánnhững phần nào như: thiết kế sơ đồ khối hệ thống, sơ đồ nguyên lý toàn mạch, tính
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trang 20toán thiết kế mạch.
Chương 4: Thi Công Hệ Thống
Chương này trình bày về quá trình vẽ mạch in, lắp ráp các thiết bị, đo kiểm tramạch, lắp ráp mô hình Thiết kế lưu đồ giải thuật cho chương trình và viết chương trình cho hệ thống Hướng dẫn quy trình sử dụng hệ thống
Chương 5: Kết Quả Nhận Xét Đánh Giá
Chương này trình bày về những kết quả đã đạt được so với mục tiêu đề ra sauquá trình nghiên cứu thi công Từ những kết quả đạt được để đánh giá quá trình nghiên cứu hoàn thành bao nhiêu phần trăm so với mục tiêu ban đầu
Chương 6: Kết Luận Và Hướng Phát Triển
Chương này trình bày về những kết quả mà đồ án đạt được, những hạn chế, từ
đó rút ra kết luận và hướng phát triển để giải quyết các vấn đề tồn đọng để đồ ánhoàn thiện hơn
Trang 21Chương 2 CƠ SỞ LÝ THUYẾT
2.1 KHÁI QUÁT VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN
2.1.1 Vi xử lý và vi điều khiển
Vi xử lý là thuật ngữ chung dùng để đề cập đến kỹ thuật ứng dụng các côngnghệ vi điện tử, công nghệ tích hợp và khả năng xử lý theo chương trình vào cáclĩnh vực khác nhau
Vào những giai đoạn đầu trong quá trình phát triển của công nghệ vi xử lý, các chip(hay các vi xử lý) được chế tạo chỉ tích hợp những phần cứng thiết yếu như CPU cùng cácmạch giao tiếp giữa CPU và các phần cứng khác Trong giai đoạn này, các phần cứng khác(kể cả bộ nhớ) thường không được tích hợp trên chip mà phải ghép nối thêm bên ngoài.Các phần cứng này được gọi là các ngoại vi Về sau, nhờ sự phát triển vượt bậc của côngnghệ tích hợp, các ngoại vi cũng được tích hợp vào bên trong IC và người ta gọi các vi xử
lý đã được tích hợp thêm các ngoại vi là các “vi điều khiển” Việc tích hợp thêm các ngoại
vi vào trong cùng một IC với CPU tạo ra nhiều lợi ích như làm giảm thiểu các ghép nối bênngoài, giảm thiểu số lượng linh kiện điện tử phụ, giảm chi phí cho thiết kế hệ thống, đơngiản hóa việc thiết kế, nâng cao hiệu suất và tính linh hoạt Ranh giới giữa hai khái niệm
“vi xử lý” và “vi điều khiển” thực sự không cần phải phân biệt rõ ràng Thuật ngữ “vi xửlý” được sử dụng khi đề cập đến các khái niệm cơ bản của kỹ thuật vi xử lý nói chung và sẽdùng thuật ngữ “vi điều khiển” khi đi sâu nghiên cứu một họ chip cụ thể
Về cơ bản kiến trúc của một vi xử lý gồm những phần cứng sau:
- Đơn vị xử lý trung tâm CPU (Central Processing Unit)
- Các bộ nhớ (Memories)
- Các cổng vào/ra song song (Parallel I/O Ports)
- Các cổng vào/ra nối tiếp (Serial I/O Ports)
- Các bộ đếm/bộ định thời (Timers)
Ngoài ra với mỗi loại vi điều khiển cụ thể còn có thể có thêm một số phầncứng khác như bộ biến đổi tương tự-số ADC, bộ biến đổi số-tương tự DAC, cácmạch điều chế dạng sóng WG, điều chế độ rộng xung PWM…
Bộ não của mỗi vi xử lý chính là CPU, các phần cứng khác chỉ là các cơ quan
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trang 22chấp hành dưới quyền của CPU Mỗi cơ quan này đều có một cơ chế hoạt động nhất định
mà CPU phải tuân theo khi giao tiếp với chúng Để có thể giao tiếp và điều các ngoại vi,CPU sử dụng 03 loại tín hiệu cơ bản là tín hiệu địa chỉ (Address), tín hiệu dữ liệu (Data) vàtín hiệu điều khiển (Control) Về mặt vật lý thì các tín hiệu này là các đường nhỏ dẫn điệnnối từ CPU đến các ngoại vi hoặc thậm chí là giữa các ngoại
vi với nhau Tập hợp các đường tín hiệu có cùng chức năng gọi là các bus Như vậy
ta có các bus địa chỉ, bus dữ liệu và bus điều khiển [9]
2.1.2 Hệ thống điều khiển tích hợp (SoC)
Khái niệm SoC ngày nay đã trở nên phổ biến SoC được hiểu là toàn bộ "một
hệ thống" được đóng gói hoàn chỉnh trong một chip (vi mạch điện tử) Một hệ thốngthông thường là một hệ thống hoàn chỉnh thực hiện một hoặc nhiều chức năng nào
đó, ví dụ như một máy tính cá nhân gồm một bo mạch chủ để kết nối các thành phầnnhư CPU, USB, VGA, RS232…
Cấu trúc phần cứng của một SoC bao gồm:
- Đơn vị xử lý trung tâm CPU (Central Processing Unit)
- BUS hệ thống (System BUS)
có khả năng kết nối mạng WAN-LAN không dây cho các dịch vụ thông tin, giải trí,truyền thông, định vị [6]
I2C là giao thức truyền thông nối tiếp đồng bộ phổ biến hiện nay, được sửdụng rộng rãi trong việc kết nối nhiều IC với nhau, hay kết nối giữa IC và các ngoại
vi với tốc độ thấp Các thiết bị ngày nay như: NVRAM, LCD, keypad, led matrix,ADC, DAC… gần như tất cả đều hướng tới dùng chuẩn này Tốc độ I2C ngày càngcao và có thể lên đến Mbit/s
Trang 23Hình 2.1: Mô hình truyền dữ liệu chuẩn I2C
Đặc điểm: I2C sử dụng hai đường truyền tín hiệu:
- Một đường xung nhịp đồng hồ(SCL) chỉ do Master phát đi ( thông thường ở 100kHz và 400kHz Mức cao nhất là 1Mhz và 3.4MHz)
- Một đường dữ liệu(SDA) theo 2 hướng
Quá trình truyền dữ liệu chuẩn I2C:
Quá trình thiết bị chủ ghi dữ liệu vào thiết bị tớ:
Hình 2.2: Quá trình thiết bị chủ ghi dữ liệu vào thiết bị tớ
Bước 1: Thiết bị chủ tạo trạng thái START để bắt đầu quá trình truyền dữ liệu,
các thiết bị tớ sẽ ở trạng thái sẵn sàng nhận địa chỉ từ thiết bị chủ
Bước 2: Thiết bị chủ gởi địa chỉ của thiết bị tớ cần giao tiếp - khi đó tất cả các
thiết bị tớ đều nhận địa chỉ và so sánh với địa chỉ của mình, các thiết bị tớ sau khiphát hiện không phải địa chỉ của mình thì chờ cho đến khi nào nhận trạng tháiSTART mới Trong dữ liệu 8 bit thì có 7 bit địa chỉ và 1 bit điều khiển đọc/ghi(R/W): thì bit này bằng 0 để báo cho thiết bị tớ sẽ nhận byte tiếp theo
Bước 3: Thiết bị chủ chờ nhận tín hiệu bắt tay từ thiết bị tớ Thiết bị tớ nào đúng
địa chỉ thì phát 1 tín hiệu trả lời cho chủ biết
Bước 4: Thiết bị chủ tiến hành gởi địa chỉ của ô nhớ bắt đầu cần ghi dữ liệu, bit
R/W ở trạng thái ghi
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trang 24Bước 5: Thiết bị chủ chờ nhận tín hiệu trả lời từ thiết bị tớ.
Bước 6: Thiết bị chủ tiến hành gởi dữ liệu để ghi vào thiết bị tớ, mỗi lần ghi 1
byte, sau khi gửi xong thì tiến hành chờ nhận tín hiệu trả lời từ thiết bị tớ, quá trìnhthực hiện cho đến byte cuối cùng xong rồi thì thiết bị chủ chuyển sang trạng tháiSTOP để chấm dứt quá trình giao tiếp với thiết bị tớ
Quá trình thiết bị chủ đọc dữ liệu vào thiết bị tớ:
Hình 2.3: Quá trình thiết bị chủ đọc dữ liệu vào thiết bị tớ
Bước 1: Thiết bị chủ tạo trạng thái START để bắt đầu quá trình truyền dữ liệu,
các thiết bị tớ sẽ ở trạng thái sẵn sàng nhận địa chỉ từ thiết bị chủ
Bước 2: Thiết bị chủ gởi địa chỉ của thiết bị tớ cần giao tiế, khi đó tất cả các
thiết bị tớ đều nhận địa chỉ và so sánh với địa chỉ của mình, các thiết bị tớ sau khiphát hiện không phải địa chỉ của mình thì chờ cho đến khi nào nhận trạng tháiSTART mới Trong dữ liệu 8 bit thì có 7 bit địa chỉ và 1 bit điều khiển đọc/ghi(R/W): thì bit này bằng 0 để báo cho thiết bị tớ sẽ nhận byte tiếp theo
Bước 3: Thiết bị chủ chờ nhận tín hiệu bắt tay từ thiết bị tớ Thiết bị tớ nào
đúng địa chỉ thì phát 1 tín hiệu trả lời cho chủ biết
Bước 4: Thiết bị chủ tiến hành gởi địa chỉ của ô nhớ bắt đầu cần đọc dữ liệu,
bit R/W ở trạng thái đọc
Bước 5: Thiết bị chủ chờ nhận tín hiệu trả lời từ thiết bị tớ.
Bước 6: Thiết bị chủ chuyển sang trạng thái STOP, bắt đầu lại trạng thái
START, tiến hành gởi địa chỉ của thiết bị và bit R/W bằng 1 để yêu cầu tớ gởi dữliệu nội dung ô nhớ của địa chỉ đã nhận
Bước 7: Thiết bị chủ sau khi nhận sẽ báo tín hiệu trả lời, quá trình này thực
hiện cho đến khi nhận hết dữ liệu mong muốn thì thiết bị chủ tạo tín hiệu STOP đểchấm dứt [7]
Trang 252.3 TRUYỀN DỮ LIỆU CHUẨN SPI
SPI là một chuẩn đồng bộ nối tiếp để truyền dữ liệu ở chế độ song công toàn phần
full-duplex (hai chiều, hai phía) Đôi khi SPI còn được gọi là giao diện bốn dây
Hình 2.4: Mô hình truyền dữ liệu chuẩn SPI
Đặc điểm: Giao tiếp SPI được thực hiện thông qua BUS 4 dây MISO, MOSI,
SCK, SS
- MISO: thường được kí hiệu là SDO, dùng để truyền dữ liệu ra khỏi moduleSPI khi đặt cấu hình là thiết bị tớ và nhận dữ liệu khi đặt cấu hình là thiết bị chủ
- MOSI: thường được kí hiệu là SDI, dùng để truyền dữ liệu ra khỏi module SPI
khi đặt cấu hình là thiết bị chủ và nhận dữ liệu khi đặt cấu hình là thiết bị tớ
- SCK: cấp xung đồng bộ để truyền nhận dữ liệu với một thiết bị tớ nào đó
- SS: cấp tín hiệu chọn ở ngõ ra của module SPI đến một ngoại vi khác nếu cấu
hình là thiết bị chủ và là ngõ vào nhận tín hiệu chọn nếu cấu hình là thiết bị tớ
Quá trình hoạt động của chuẩn SPI:
Thiết bị chủ tạo tín hiệu đồng hồ SCK và cung cấp cho ngõ vào xung SCK củathiết bị tớ Xung này có chức năng giữ nhịp cho giao tiếp SPI, vì SPI là chuẩntruyền đồng bộ nên cần 1 đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ liệuđến hoặc đi Sự tồn tại của xung SCK giúp quá trình tuyền ít bị lỗi và vì thế tốc độtruyền của SPI có thể đạt rất cao
Slave Select (SS) được sử dụng để chọn một thiết bị tớ cụ thể bởi thiết bị chủ.Nếu thiết bị chủ kéo đường SS của một thiết bị tớ nào đó xuống mức thấp thì việcgiao tiếp sẽ xảy ra giữa thiết bị chủ và thiết bị tớ đó
Vì tín hiệu SCK được tạo ra bởi thiết bị chủ, luồng dữ liệu được điều khiển bởithiết bị chủ Với mỗi chu kỳ xung SCK, một bit dữ liệu được truyền từ thiết bị chủđến thiết bị tớ và một bit dữ liệu được truyền từ thiết bị tớ đến thiết bị chủ
Quá trình này xảy ra đồng thời và sau 8 chu kỳ xung SCK, một byte dữ liệuđược truyền theo cả hai hướng [10]
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trang 262.4 TRUYỀN DỮ LIỆU CHUẨN 1-WIRE
Là chuẩn giao tiếp không đồng bộ và bán song công (half-duplex) Giao tiếpnày tuân theo mối liên hệ chủ tớ một cách chặt chẽ Trên một bus có thể gắn 1 hoặcnhiều thiết bị tớ nhưng chỉ có một thiết bị chủ có thể kết nối đến bus này
Hình 2.5: Mô hình truyền dữ liệu chuẩn 1-Wire
Đặc điểm: chuẩn giao tiếp này chỉ cần 1 dây để truyền tín hiệu và làm nguồnnuôi (nếu không tính dây mass)
Quá trình truyền nhận dữ liệu chuẩn 1-wire:
Bốn bước truyền nhận dữ liệu cơ bản của bus 1-wire là reset/presence, gửi bit
1, gửi bit 0, và đọc bit Thao tác byte như gửi byte và đọc byte dựa trên thao táctừng bit
Bước 1: Gửi bit 1 (“Write 1” signal)
Thiết bị chủ kéo bus xuống mức thấp trong khoảng 1 đến 15µs Sau đó nhả bus ra cho đến hết phần còn lại của khe thời gian
Bước 2: Gửi bit 0 (“Write 0” signal)
Kéo bus xuống mức thấp trong ít nhất 60µs, và tối đa là 120 µs
Lưu ý: giữa các lần gửi bit (0 hoặc 1), phải có khoảng thời gian phục hồi bustối thiểu 1 µs
Bước 3: Đọc bit
Thiết bị chủ kéo bus xuống mức thấp từ 0 -15µs Khi đó thiết bị tớ sẽ giữ bus
ở mức thấp nếu muốn gửi bit 0, nếu muốn gửi bit 1 đơn giản là nhả bus Bus nên lấymẫu 15 µs sau khi bus kéo xuống mức thấp
Bước 4: Reset/Presence
Thiết bị chủ kéo bus xuống thấp ít nhất 8 khe thời gian (tức là 480 µs) và sau đó nhả bus Khoảng thời gian bus ở mức thấp đó gọi là tín hiệu reset Nếu có thiết bị
Trang 27tớ gắn trên bus nó sẻ trả lời bằng tín hiệu Presence tức là thiết bị tớ sẽ kéo busxuống mức thấp trong khoảng thời gian 60µs Nếu không có tín hiệu Presence, thiết
bị chủ sẽ hiểu rằng không có thiết bị tớ nào trên bus, và các giao tiếp tiếp theo sẽkhông thể diễn ra [11]
Hình 2.6: Dạng sóng quá trình truyền nhận dữ liệu chuẩn 1-Wire
Hình 2.7: Biểu tượng phần mềm Arduino
Phần mềm Arduino cung cấp môi trường lập trình tích hợp mã nguồn mở hỗtrợ người dùng viết code và tải nó lên bo mạch Arduino Đây là môi trường đa nềntảng, hỗ trợ một loạt các bo mạch Arduino cùng rất nhiều tính năng độc đáo Ứngdụng lập trình này có giao diện được sắp xếp hợp lý, phù hợp với cả những ngườidùng chuyên nghiệp lẫn không chuyên
Trang 28Arduino có các chức năng hữu ích như làm nổi bật cú pháp, thụt đầu dòng tựđộng trên giao diện đồ họa được sắp xếp hợp lý Phần mềm này còn tích hợp các
bộ sưu tập ví dụ mẫu trợ giúp cho những người lần đầu tiên sử dụng cùng với mộtmảng thư viện phong phú như EEPROM, Firmata, GSM, Servo, TFT, WiFi
Truy cập vào trang chủ Arduino http://arduino.cc để tải phần mềm và cài đặt.Phần mềm được hỗ trợ miễn phí cho người dùng, với bản cập nhật mới nhất làArduino 1.8.8 Ở phiên bản mới nhất này thì đã tích hợp cho dòng kit Intel Galileo
Hình 2.8: Giao diện phần mềm Arduino
2.6.1 Bộ xử lý trung tâm - Intel Galileo Gen 2
Việc lựa chọn một dòng vi điều khiển, dòng chip, hay một board mạch nào đó
để làm khối xử lý trung tâm thông thường có rất nhiều lựa chọn, có thể kể ra một sốtên như: Raspberry Pi, các dòng Arduino, Intel Edison, các dòng ARM, các dòngPIC… Nhưng chúng tôi quyết định chọn kit Intel Galileo Gen 2 vì những nguyênnhân sau đây:
Trang 29Hình 2.9: Mặt trên kit Intel Galileo Gen 2
Hình 2.10: Mặt dưới kit Intel Galileo Gen 2
Intel Galileo Gen 2 là sản phẩm được phổ biến rộng rãi trong giới học sinh,sinh viên Việt Nam hiện nay Cải tiến lớn nhất của Gen 2 là việc Intel đã thiết kế lạimột phần board mạch để nâng tốc độ làm việc của các chân giao tiếp lên IntelGalileo Gen 2 được trang bị bộ xử lý trung tâm Intel Quark X1000 - SoC với khảnăng tiết kiệm năng lượng vượt trội, đồng thời kit cũng tương thích với chuẩn phầnmềm Arduino là hai ưu điểm lớn nhất giúp người sử dụng có thể làm vô số các ứngdụng khác nhau: robot, IoT, hệ thống điều khiển tự động,
Với kích thước nhỏ gọn nhưng bo mạch có Ethernet tích hợp với hỗ trợ PowerOver Ethernet ( PoE ), cổng USB 2.0, khe cắm micrso-SD, khe cắm thẻ mini PCIExpress, 20 ngõ vào/ra kỹ thuật số (trong đó có thể sử dụng 6 ngõ như PWM xuất ravới độ phân giải 8/12 bit và 6 ngõ vào tương tự với độ phân giải 12 bit), kết nốimicro USB, cổng ICSP, cổng JTAG và 2 nút reset
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trang 30Hình 2.11: Sơ đồ nguyên lý chip xử lý trung tâm trên kit
Intel Galileo Gen 2 hỗ trợ hoạt động ở mức 3,3V hoặc 5V Phần cứng và địnhdạng chân trong phần mềm được thiết kế tương tự như Arduino Uno R3 Các chân
số 0 đến 13 (các chân ISF và GND liền kề), ngõ vào tương tự từ chân số 0 đến chân
số 5, chân nguồn, chân ICSP và các chân UART (chân số 0 và chân số 1), đều ởcùng vị trí như trên Arduino Uno R3
Hình 2.12: Sơ đồ bố trí chân I/O trên kit Intel Galileo Gen 2
Trang 31Thông số kỹ thuật cơ bản:
- Chiều dài: 124 mm
- Chiều rộng: 72 mm
- Bộ xử lý trung tâm: Microcontroller SoC Quark X1000
- Nguồn cấp: 7~15 VDC với adapter 12 VDC 1.25 A chính hãng đi kèm, cần cấpnguồn cho board bằng adapter chính hãng để board có thể hoạt động ổn định nhất
- Mức điện áp logic giao tiếp: tương thích 3.3 và 5 VDC
- Tương thích chuẩn chân giao tiếp Arduino
- Số chân giao tiếp Digital I/O: 14 (6 chân ngõ ra PWM phân giải 8/12-bit)
- Số chân Analog Input: 6
- Tích hợp công nghệ Power Over Ethernet (PoE)
- 1 khe cắm USB 2.0, Micrso-SD, - PCI Express mini-card
- Cổng kết nối micro USB, ICSP, JTAG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trang 324x4 sẽ có tổng cộng 8 ngõ vào/ra Ma trận phím 4x4 cho phép nhập dữ liệu vào bộ điều khiển qua đó dùng để điều khiển một thiết bị ngoại vi nào đó.
Để giao tiếp được với ma trận phím 4x4, dùng phương pháp quét để kiểm tra xem nút nào được bấm
Thông số kỹ thuật cơ bản:
Thông số kỹ thuật cơ bản:
- Kích thước: 4.30mm × 4.30mm
- Điện áp hoạt động: 4-20V DC
- Điện áp ra: -1V đến 6V
- Công suất tiêu thụ: 60uA
- Độ phân giải điện áp đầu ra là 10mV/°C
- Khoảng đo nhiệt độ: -55°C đến 150°C
- Độ chính xác thực tế: 1/4°C ở nhiệt độ phòng và 3/4°C ngoài khoảng -55°Ctới 150°C
Trang 332.6.3 Thiết bị đầu ra
a. Led 7 đoạn
Hình 2.15: Led 7 đoạn đôi ngoài thực tế
Trong các thiết bị, để báo trạng thái hoạt động của thiết bị đó cho người sửdụng với thông số chỉ là các dãy số đơn thuần, thường người ta sử dụng led 7 đoạn.Led 7 đoạn được sử dụng khi các dãy số không đòi hỏi quá phức tạp, chỉ cần hiệnthị số là đủ, chẳng hạn led 7 đoạn được dùng để hiển thị nhiệt độ phòng, hiển thị sốlượng sản phẩm được kiểm tra sau một công đoạn nào đó
Thông số kỹ thuật cơ bản led 7 đoạn 5621BS:
- Màu đỏ, anode chung
- 2 dot, 10 chân
- Điện áp rơi trên LED là 2.2V
- Dòng tối đa chạy qua mỗi LED là 25mA
- Dòng chạy bình thường: 10mA Nếu nguồn 5V thì mỗi led phải nối với 1 điện trở 330 Ω (dòng chạy qua mỗi led 13mA)
b. LCD 16 x 2
Hình 2.16: LCD 16x2 ngoài thực tế
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trang 34LCD là kiểu màn hình tinh thể lỏng nhỏ dùng để hiển thị dữ liệu Mỗi ô của
LCD bao gồm các chấm tinh thể lỏng, các chấm này kết hợp với nhau theo trình tự
ẩn hoặc hiện sẽ tạo nên các kí tự cần hiển thị LCD có hai cách giao tiếp cơ bản là
mắc nối tiếp và nối song song
Hình 2.17: Sơ đồ chân LCD 16x2 Bảng 2.1: Các kí hiệu và ý nghĩa chân của LCD
Chân
12345678910111213141516
Trang 35Sử dụng một biến trở 10K điều chỉnh độ tương phản của LCD Đường dẫnđiều khiển E (Enable) kích hoạt hoặc không kích hoạt bộ hiển thị Khi bộ hiển thịđược kích hoạt, nó sẽ kiểm tra trạng thái của hai đường dẫn điều khiển khác và sau
đó đánh giá các đường dẫn từ các đường dẫn dữ liệu cho phù hợp Khi bộ hiển thịkhông được kích hoạt trạng thái của các đường dẫn điều khiển khác bị bỏ qua và cácđường dẫn dữ liệu được chuyển trạng thái điện trở (ba trạng thái) Khi đó, bus dữliệu có thể được sử dụng cho các mục đích khác Đường dẫn RW (đọc /ghi) báo hiệucho biết liệu các dữ liệu đã được ghi vào bộ dữ liệu đã được ghi vào bộ hiển thị haycần được đọc ra từ bộ hiển thị Cuối cùng đường dẫn RS (lựa chọn thanh ghi) chothấy các dữ liệu được truyền có liên quan đến các lệnh dùng cho bộ điều khiển hiểnthị hay liên quan đến kí tự cần được ghi vào bộ hiển thị
Thông số kỹ thuật cơ bản:
Trang 36Hình 2.19: Sơ đồ chân led ma trận 8x8
Thông số kỹ thuật cơ bản led matrix 8x8 1588BS:
Trang 37chân của vi điều khiển tùy theo mục đích sử dụng bằng việc mắc nối tiếp đầu vào
dữ liệu các IC với nhau
Hình 2.21: Sơ đồ chân IC 74HC595 Bảng 2.2: Các kí hiệu và ý nghĩa chân IC 74HC595
Chân
n
123456789
101112
1314
Trang 3816
Trang 39Bảng 2.3: Bảng trạng thái IC 74HC595
SERXXXL
Sau đó tạo một xung STCP thì 8 bit trong thanh ghi 8-STAGE SHIFT REGISTER sẽđược sao chép sang thanh ghi 8-BIT STORAGE REGISTER Lúc này