Giới thiệu về chuẩn giao tiếp I2C

Một phần của tài liệu May in nhiet cam tay (Trang 44 - 48)

Chương 2. CƠ SỞ LÝ THUYẾT

2.3 GIỚI THIỆU PHẦN MỀM

2.3.3 Giới thiệu về chuẩn giao tiếp I2C

I2C-bus là tên viết tắt của cụm từ Inter-Intergrated Circuit, là một bus với 2 đường tín hiệu, dùng để kết nối nhiều vi mạch với nhau. Đây là một bus dùng quan hệ

bus. I2C hỗ trợ nhiều master cùng tồn tại trên bus, có phát hiện xung đột và phân xử bus để tránh trường hợp có từ 2 master trở lên cùng khởi đầu việc truyền dữ liệu (vì ở mỗi thời điểm chỉ có thể có một master điều khiển việc truyền dữ liệu trên bus).

I2C-bus hỗ trợ truyền dữ liệu theo hai chiều, bán song công (nghĩa là master đang phát thì không thu và ngược lại), với các tốc độ khác nhau như đến 100 kbps ở Standard-mode, đến 400 kbps ở Fast-mode, và đến 3.4 Mbps (megabit/s) ở High-speed mode.

Hình 2.19: Truyền dữ liệu I2C.

Mỗi thiết bị có 1 địa chỉ được cài sẵn hoặc 1 địa chỉ thiết bị duy nhất để thiết bị chủ (Master) có thể giao tiếp. 2 chân SDA VÀ SCL là 2 chân của giao tiếp I2C, trong đó chân SCL là chân Clock, có tác dụng đồng bộ hóa việc truyền dữ liệu giữa các thiết bị, và việc tạo ra xung clock đó là do thiết bị chủ (Master). Chân còn lại là chân SDA là chân truyền dữ liệu (DATA). 2 chân này luôn hoạt động ở chế độ mở, vì vậy để sử dụng được cần phải có trở kéo. tức là nối +5v => trở => I2C bởi các thiết bị trên bus I2C hoạt động ở mức thấp. Giá trị thường được sử dụng cho các điện trở là từ 2K cho tốc độ vào khoảng 400 kbps, và 10K cho tốc độ thấp hơn khoảng 100 kbps.

b. Cách giao tiếp giữa Module DS1307(tớ) với vi điều khiển(chủ)

Dạng sóng truyền dữ liệu I2C của quá trình ghi dữ liệu từ chủ lên tớ

Hình 2.20:Quá trình thiết bị chủ ghi dữ liệu vào thiết bị tớ.

Quy trình thiết bị chủ giao tiếp với thiết bị tớ để thực hiện việc ghi đọc dữ liệu như sau:

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 khi phá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ái START 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): 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 thiết bị 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ướ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ình thực hiện cho đến byte cuối cùng xong rồi thì thiết bị chủ chuyển sang trạng thái

Dạng sóng truyền dữ liệu I2C của quá trình đọc dữ liệu từ thiết bị tớ

Hình 2.21:Quá trình thiết bị chủ đọc dữ liệu từ thiết bị tớ.

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ế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 khi phá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ái START 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): 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 thiết bị 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.

Một phần của tài liệu May in nhiet cam tay (Trang 44 - 48)

Tải bản đầy đủ (PDF)

(108 trang)