Chương 1: Tổng Quan: Chương này cung cấp một cái nhìn tổng quan ngắn gọn về các yêu cầu của đề tài bao gồm giới thiệu, mục tiêu, phạm vi và nội dung đề tài. • Chương 2: Cơ Sở Lý Thuyết: Chương này cung cấp các kiến thức cơ bản được áp dụng trong đề tài này như board hỗ trợ, các phương pháp kết nối và các thuật toán xử lý ảnh. • Chương 3: Nội Dung Thực Hiện: Chương này sẽ giới thiệu các bộ phận của mô hình xe tự hành, xây dựng mô hình xe và quá trình thực nghiệm. • Chương 4: Kết Luận Và Hướng Phát Triển: Chương này sẽ trình bày kết quả của đề tài, lợi thế và giới hạn sau khi thực nghiệm và cũng sẽ đề xuất và đóng góp các ý tưởng, hướng phát triển trong tương lai.
5 do an Chương 2: Cơ Sở Lý Thuyết CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2. Chuẩn giao tiếp I 2C (Inter-Integrated Circuit) 2. Giới thiệu chung về I 2C I 2C (Inter-Integrated Circuit) là phương thức giao tiếp được sản xuất và phát triển bởi công ty sản xuất bán dẫn toàn cầu Philips. Ban đầu, phương thức giao tiếp này chỉ được sử dụng trong các thiết bị điện tử của Philips.
Nhưng một thời gian ngắn sau đó, do có nhiều ưu điểm, dễ sử dụng. Phương thức giao tiếp I 2C nó đã được chuẩn hóa và được sử dụng phổ biến trong các thiết bị truyền thông nối tiếp của vi mạch tích hợp ngày nay. I 2C trở thành một chuẩn công nghiệp trong các giao tiếp điều khiển, có thể kể đến: Texas Intrument (TI), Maxim-Dallas, Analog Device, …. Phương thức giao tiếp I 2C được sử dụng làm phương thức giao tiếp giao tiếp ngoại vi cho rất nhiều loại mạch tổ hợp khác nhau như các loại vi điều khiển 8051, PIC, AVR, Arm, … Hình 2.
Phương thức giao tiếp I 2C và các thiết bị ngoại vi [4] 2. Đặc điểm chung về I 2C Một phương thức giao tiếp I 2C gồm có 2 dây: Serial Data (SDA) và Serial Clock (SCL). SDA là đường truyền dữ liệu 2 hướng, còn SCL là đường truyền xung đồng hồ và chỉ theo một hướng. Trong một thiết bị ngoại vi kết nối vào đường I 2C thì chân SDA của nó sẽ nối với dây SDA, chân SCL sẽ nối với dây SCL.
Mỗi dây SDA hay SCL đều được nối với điện áp dương của nguồn cấp thông qua một điện trở kéo lên (pull‐up resistor). Việc sử dụng các điện trở kéo này là vì chân giao tiếp I 2C của các thiết bị ngoại vi thường là dạng cực máng hở (open‐drain or open -collector). 6 do an Chương 2: Cơ Sở Lý Thuyết Các giá trị của các điện trở này thay đổi tùy vào từng thiết bị và chuẩn giao tiếp thường dao động trong khoảng 1 k đến 4.2], thì có thể thấy có rất nhiều thiết bị cùng được kết nối vào một giao tiếp I 2C , nhưng sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị, do mỗi thiết bị sẽ được nhận biết bởi một địa chỉ duy nhất với một quan hệ chủ/tớ duy trì trong suốt thời gian kết nối. Mỗi thiết bị có thể hoạt đông như là thiết bị nhận dữ liệu hay có thể vừa truyền vừa nhận.
Kết nối thiết bị vào phương thức giao tiếp I2C ở chế độ chuẩn (standard mode) và chế độ nhanh (fast mode) [4] Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hay tớ (slave). Một thiết bị hay một mạch tổ hợp khi được kết nối với giao tiếp I2C, ngoài một địa chỉ để phân biệt, nó còn được cấu hình là thiết bị chủ (master) hay tớ (slave). Có sự phân biệt này là do trên một giao tiếp I2C thì quyền điều khiển thuộc về thiết bị chủ (master),thiết bị nắm vai trò tạo xung đồng hồ cho toàn hệ thống. Khi giữa hai thiết bị chủ/tớ giao tiếp thì thiết bị chủ có nhiệm vụ tạo xung đồng hồ và quản lý địa chỉ của thiết bị tớ trong suốt quá trình giao tiếp.
Thiết bị chủ giữ vai trò chủ động, còn thiết bị tớ giữ vai trò bị động trong viêc giao tiếp. Truyền nhận dữ liệu giữa chủ/tớ [4] 7 do an Chương 2: Cơ Sở Lý Thuyết Nhìn hình [2.4], ta thấy xung đồng hồ chỉ có một hướng từ chủ đến tớ, còn luồng dữ liệu có thể đi theo hai hướng, từ chủ đến tớ hay ngược lại tớ đến chủ. Về dữ liệu truyền trên giao tiếp I 2C , một giao tiếp I 2C chuẩn truyền 8‐bit dữ liệu có hướng trên đường truyền với tốc độ là 100 Kbits/s ở chế độ chuẩn (Standard mode). Tốc độ truyền có thể lên tới 400Kbits/s ở chế độ nhanh (Fast mode) và cao nhất là 3,4Mbits/s khi đang ở chế độ cao tốc (High‐speed mode).
Một giao thức I 2C có thể hoạt động ở nhiều chế độ khác nhau: • Một chủ một tớ (one master – one slave). • Một chủ nhiều tớ (one master – multi slave). • Nhiều chủ nhiều tớ (Multi master – multi slave). Dù ở chế độ nào, một giao tiếp I 2C đều dựa vào quan hệ chủ/tớ.
Giả thiết một thiết bị A muốn gửi dữ liệu đến thiết bị B, quá trình được thực hiện như sau: • Thiết bị A (Chủ) xác định đúng địa chỉ của thiết bị B (tớ), cùng với việc xác định địa chỉ, thiết bị A sẽ quyết định việc đọc hay ghi vào thiết bị tớ. • Thiết bị A gửi dữ liệu tới thiết bị B. • Thiết bị A kết thúc quá trình truyền dữ liệu. Khi A muốn nhận dữ liệu từ B, quá trình diễn ra như trên, chỉ khác là A sẽ nhận dữ liệu từ B.
Trong giao tiếp này, A là chủ còn B vẫn là tớ. Chi tiết việc thiết lập giao tiếp với một thiết bị nào đó trong mạng I 2C. Bit bắt đầu và kết thúc (Start-Stop) Start là điều kiện khởi đầu, báo hiệu bắt đầu của giao tiếp, còn STOP báo hiệu kết thúc một giao tiếp.4] mô tả điều kiện START và STOP. Ban đầu khi chưa thực hiện quá trình giao tiếp, cả hai đường SDA và SCL đều ở mức cao (SDA = SCL= HIGH).
Lúc này giao tiếp I 2C được coi là bộ nối trống, sẵn sàng cho một giao tiếp. Hai điều kiện START và STOP là không thể thiếu trong việc giao tiếp giữa các thiết bị I 2C với nhau. 8 do an Chương 2: Cơ Sở Lý Thuyết Hình 2. Điều kiện START và STOP của giao tiếp I 2C [4] Điều kiện START: một sự chuyển đổi trạng thái từ cao xuống thấp trên đường SDA trong khi đường SCL đang ở mức cao (cao = 1; thấp = 0) báo hiệu một điều kiện START.
Điều kiện STOP: Một sự chuyển đổi trạng thái từ mức thấp lên cao trên đường SDA trong khi đường SCL đang ở mức cao. Cả hai điều kiện START và STOP đều được tạo ra bởi thiết bị chủ. Sau tín hiệu START, giao tiếp I 2C coi như đang trong trạng thái làm việc. Giao tiếp I 2C sẽ trống, sẵn sàng cho một giao tiếp mới sau tín hiệu STOP từ phía thiết bị chủ.
Sau khi có một điều kiện START trong quá trình giao tiếp, khi có một tín hiệu START được lặp lại thay vì một tín hiệu STOP thì giao tiếp I 2C vẫn tiếp tục trong trạng thái bận. Tín hiệu START và lặp lại START đều có chức năng giống nhau là khởi tạo một giao tiếp. Định dạng dữ liệu truyền Dữ liệu được truyền trên giao tiếp I 2C theo từng bit. Bit dữ liệu được truyền đi tại mỗi sườn dương của xung đồng hồ trên dây SCL, khi SCL ở mức thấp thì quá trình thay đổi dữ liêu sẽ được xảy ra.
Mỗi byte dữ liệu được truyền có độ dài là 8 bits và không hạn chế số lượng byte được truyền đi trong mỗi lần. Mỗi byte được truyền đi theo sau là một bit ACK để báo hiệu đã nhận dữ liệu. Bit có trọng số cao nhất sẽ được truyền đi đầu tiên, các bít sẽ được truyền đi lần lượt. Sau 8 xung clock trên dây SCL thì 8 bit dữ liệu sẽ được truyền đi.
Lúc này thiết bị nhận, sau khi đã nhận đủ đủ 8 bít dữ liệu sẽ kéo SDA xuống mức thấp tạo một xung ACK ứng với xung clock thứ 9 trên dây SDA để báo hiệu đã 9 do an Chương 2: Cơ Sở Lý Thuyết nhận đủ 8 bit. Thiết bị truyền khi nhận được bit ACK sẽ tiếp tục thực hiện quá trình truyền hoặc kết thúc. Quá trình truyền 1 bit dữ liệu [4] Hình 2. Dữ liệu truyền trên phương thức giao tiếp I 2C [4] Hình 2.
Bit ACK trên phương thức giao tiếp I 2C [4] Mỗi byte truyền đi có kèm theo bit ACK là điều kiên bắt buộc, để đảm bảo cho quá trình truyền nhận được diễn ra chính xác. Khi không nhận được đúng địa hay 10 do an Chương 2: Cơ Sở Lý Thuyết khi muốn kết thúc quá trình giao tiếp, thiết bị nhận sẽ gửi một xung Not‐ACK (SDA ở mức cao) để báo cho thiết bị chủ biết, thiết bị chủ sẽ tạo xung xung STOP để kết thúc hay lặp lại một xung START để bắt đầu quá trình mới. Định dạng địa chỉ thiết bị Mỗi thiết bị ngoại vi tham gia vào phương thức giao tiếp I 2C đều có một địa chỉ duy nhất, nhằm phân biệt giữa các thiết bị với nhau. Độ dài địa chỉ là 7 – bit, điều đó có nghĩa là trên một phương thức giao tiếp I 2C ta có thể phân biệt tối đa 128 thiết bị.
Khi thiết bị chủ muốn giao tiếp với ngoại vi nào trên phương thức giao tiếp I 2C , nó sẽ gửi 7 bit địa chỉ của thiết bị đó ngay sau xung START. Byte đầu tiên được gửi sẽ bao gồm 7 bit địa chỉ và một bít thứ 8 điều khiển hướng truyền đó mà có sự phản hồi tương ứng đến con chủ. Cấu trúc byte dữ liệu đầu tiên [4] Mỗi một thiết bị ngoại vi sẽ có một địa chỉ riêng do nhà sản xuất ra nó quy định. Địa chỉ đó có thể là cố định hay thay đổi.
Riêng bit điều khiển hướng sẽ quy định chiều truyền dữ liệu. Nếu bit này bằng “0” có nghĩa là byte dữ liệu tiếp theo sau sẽ được truyền từ chủ đến tớ, còn ngược lại nếu bằng “1” thì các byte đầu tiên sẽ là dữ liệu từ tớ gửi đến chủ. Việc thiết lập giá trị cho bit này do con chủ thi hành, con tớ sẽ tùy theo giá trị đó mà có sự phản hồi tương ứng đến con chủ. Việc thiết lập giá trị cho bit này do con chủ thi hành, con tớ sẽ tùy theo giá trị.
Truyền dữ liệu trên phương thức giao tiếp I 2C , chế độ Master‐Slave Việc truyền dữ liệu diễn ra giữa thiết bị chủ và thiết bị làm con.