Bài tập lớn môn kiến trúc máy tính và mạng truyền thông công nghiệp giao tiếp i2c ( master – slave)

15 230 1
Bài tập lớn môn kiến trúc máy tính và mạng truyền thông công nghiệp giao tiếp i2c ( master – slave)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Phương pháp Master – Slave (chủ tớ), một trạm chủ (master) có tráchnhiệm chủ động phân chia quyền truy cập bus cho các trạm tớ (slave ). Các trạmtớ đóng vai trò bị động chỉ có quyền truy cập bus và gửi tín hiệu đi kh có yêucầu. Trạm chủ có thể dùng phương pháp hỏi tuần tự theo chu kỳ để kiểm soáttoàn bộ hệ thống. Nhờ vậy các trạm tớ có thể gửi các dữ liệu thu thập được từquá trình kỹ thuật gửi đến trạm chủ cũng như nhận được các thông tin điềukhiển từ trạm chủ. Và chuẩn giao tiếp I2C là một chuẩn giao tiếp sử dụngphương pháp này

Hỗ trợ ơn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] Bài tập lớn mơn Kiến trúc máy tính mạng truyền thông công nghiệp: Giao tiếp I2C ( Master Slave) I Giới thiệu chung I2C( Master Slave) Phương pháp Master Slave (chủ - tớ), trạm chủ (master) có trách nhiệm chủ động phân chia quyền truy cập bus cho trạm tớ (slave ) Các trạm tớ đóng vai trò bị động có quyền truy cập bus gửi tín hiệu kh có yêu cầu Trạm chủ dùng phương pháp hỏi theo chu kỳ để kiểm sốt tồn hệ thống Nhờ trạm tớ gửi liệu thu thập từ trình kỹ thuật gửi đến trạm chủ nhận thông tin điều khiển từ trạm chủ chuẩn giao tiếp I2C chuẩn giao tiếp sử dụng phương pháp Ngày hệ thống điện tử đại, nhiều IC hay thiết bị ngoại vi cần phải giao tiếp với IC hay thiết bị khác giao tiếp với giới bên Với mục tiêu đạt hiệu cho phần cứng tốt với mạch điện đơn giản, Phillips phát triển chuẩn giao tiếp nối tiếp dây gọi I2C I2C tên viết tắt cụm Bus giao tiếp IC với từ Inter ‐ Intergrated Circuit I2C phát triển bới Philips, nhiều nhà sản xuất IC giới sử dụng I2C trở thành chuẩn công nghiệp cho giao tiếp điều khiển, kể vài tên tuổi Philips như: Texas Intrument (TI), Maxim‐Dallas, analog Device, National Semiconductor Bus I2C sử dụng làm bus giao tiếp ngoại vi cho nhiều loại IC khác loại Vi điều khiển 8051, PIC , AVR, ARM, chíp nhớ RAM tĩnh (Static Ram), EEPROM, chuyển đổi tương tự số (ADC), số tương tự (DAC), IC điểu khiển LCD, LED… Đặc điểm giao tiếp I2C Hỗ trợ ôn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] Một giao tiếp I2C gồm có dây: Serial Data (SDA) Serial Clock (SCL) SDA đường truyền liệu hướng, SCL đường truyền xung đồng hồ Hỗ trợ ôn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] theo hướng Như hình vẽ trên, thiết bị ngoại vi kết nối vào đường I2C chân SDA nối với dây SDA bus, chân SCL nối với dây SCL Mỗi dây SDA hay SCL nối với điện áp dương nguồn cấp thơng qua kéo chân giao tiếp I2C thiết bị ngoại vi thường dạng cực máng tùy vào thiết bị chuẩn giao tiếp thường dao động khoảng 1KΩ đến 4.7KΩ điện trở kéo lên (pull‐up resistor) Sự cần thiết điện trở kéo hở (open‐drain or open - collector) Giá trị điện trở khác Nhìn lại hình 1.1, ta thấy có nhiều thiết bị (IC) kết nối vào bus I2C, nhiên không xảy chuyện nhầm lẫn thiết bị, thiết bị nhận địa với quan hệ chủ/tớ tồn suốt thời gian kết nối Mỗi thiết bị hoạt đơng thiết bị nhận liệu hay vừa truyền vừa nhận Hoạt động truyền hay nhận tùy thuộc vào việc thiết bị chủ chủ (master) hay tớ (slave) Một thiết bị hay IC kết nối với bus I2C, địa (duy nhất) để phân biệt, cấu hình thiết bị chủ (master) hay tớ (slave) Tại lại có phân biệt ? Đó bus I2C quyền điều khiển thuộc thiết Hỗ trợ ơn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] bị chủ (master) Thiết bị nắm vai trò tạo xung đồng hồ cho toàn hệ thống, hai thiết bị chủ/tớ giao tiếp thiết bị chủ có nhiệm vụ tạo xung đồng hồ quản lý địa thiết bị tớ suốt trình giao tiếp Thiết bị chủ giữ vai trò chủ động, thiết bị tớ giữ vai trò bị động viêc giao tiếp Hỗ trợ ơn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] Nhìn hình ta thấy xung đồng hồ có hướng từ chủ đến tớ, luồng liệu theo hai hướng, từ chủ đến tớ hay ngược lại tớ đến chủ Về liệu truyền bus I2C, bus I2C chuẩn truyền 8‐bit liệu có hướng đường truyền với tốc độ 100Kbits/ s Chế độ chuẩn (Standard mode) Tốc độ truyền lên tới 400Kbits/s Chế độ nhanh (Fast mode) cao 3,4Mbits/s Chế độ cao tốc (High‐speed mode) Một bus I2C hoạt động nhiều chế độ khác nhau: - Một chủ 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, giao tiếp I2C dựa vào quan hệ chủ/tớ Giả thiết một thiết bị A muốn gửi liệu đến thiết bị B, trình thực sau tớ ‐ Thiết bị A (Chủ) xác định địa thiết bị B (tớ), với việc xác định địa chỉ, thiết bị A định việc đọc hay ghi vào thiết bị - Thiết bị A gửi liệu tới thiết bị B - Thiết bị A kết thúc trình truyền liệu Khi A muốn nhận liệu từ B, trình diễn trên, khác A nhận liệu từ B Trong giao tiếp này, A chủ B tớ Chi tiết việc thiết lập giao tiếp với thiết bị mạng I2C 2: Bit Start Stop START điều kiện khởi đầu, báo hiệu bắt đầu giao tiếp, STOP hiệu kết thúc giao tiếp Hình mô tả điều kiện START báo STOP Ban đầu chưa thực trình giao tiếp, hai đường SDA Hỗ trợ ôn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] SCL mức cao (SDA = SCL= HIGH) Lúc bus I2C coi dỗi (“bus free”), sẵn sàng cho giao tiếp Hai điều kiện START STOP thiếu việc giao tiếp thiết bị I2C với Hình 1.4 Điều kiện START STOP bus I2C Điều kiện START: chuyển đổi trạng thái từ cao xuống thấp đường SDA đường SCL mức cao (cao = 1; thấp = 0) báo hiệu điều kiện START Điều kiện STOP: Một chuyển đổi trạng thái từ mức thấp lên cao đường SDA đường SCL mức cao Cả hai điều kiện START STOP tạo thiết bị chủ Sau tín hiệu START, bus I2C coi trang thái làm việc (busy) Bus I2C rỗi, sẵn sàng cho giao tiếp sau tín hiệu STOP từ phía thiết bị chủ Sau có điều kiện START, , q trình giao tiếp, có tín hiệu START lặp lại thay tín hiệu STOP bus I2C tiếp tục trạng thái bận Tín hiệu START lặp lại START có chức giống khởi tạo giao tiếp Định dạng liệu truyền Dữ liệu truyền bus I2C theo bit, bit liệu truyền sườn dương xung đồng hồ dây SCL, trình thay đổi bit liệu xảy SCL mức thấp Hỗ trợ ôn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] Mỗi byte liệu truyền có độ dài bits Số lượng byte truyền lần khơng hạn chế Mỗi byte truyền theo sau bit ACK để báo hiệu nhận liệu Bit có trọng số cao (MSB) truyền đầu tiên, bít truyền Sau xung clock dây SCL, bit liệu truyền Lúc thiết bị nhận, sau nhận đủ đủ bít liệu kéo SDA xuống mức thấp tạo xung ACK ứng với xung clock thứ dây SDA để báo hiệu nhận đủ bit Thiết bị truyền nhận bit ACK tiếp tục thực trình truyền kết thúc Một byte truyền có kèm theo bit ACK điều kiên bắt buộc, nhằm đảm bảo cho trình truyền nhận diễn xác Khi khơng nhận địa hay muốn kết thúc trình giao tiếp, thiết bị nhận gửi xung Not‐ACK(SDA mức cao) để báo cho thiết bị chủ biết, thiết bị chủ tạo xung xung STOP để kết thúc hay lặp lại xung START để bắt đầu trình Hỗ trợ ơn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] Định dạng địa thiết bị Mỗi thiết bị ngoại vi tham gia vào bus i2c có địa nhất, nhằm phân biệt thiết bị với Độ dài địa bit, điều có nghĩa bus I2C ta 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 bus I2C, gửi bit địa thiết bị bus sau xung START Byte gửi bao gồm bit địa bít thứ điều khiển hướng truyền mà có phản hồi tương ứng đến chủ Mỗi thiết bị ngoại vi có địa riêng nhà sản xuất quy định Địa cố định hay thay đổi Riêng bit điều khiển hướng quy định chiều truyền liệu Nếu bit “0” có nghĩa byte liệu sau truyền từ chủ đến tớ, ngược lại “1” byte liệu từ tớ gửi đến chủ Việc thiết lập giá trị cho bit chủ thi hành, tớ tùy theo giá trị mà có phản hồi tương ứng đến chủ Việc thiết lập giá trị cho bit chủ thi hành, tớ tùy theo giá trị Truyền liệu bus I2C, chế độ Master‐Slave Việc truyền liệu diễn chủ tớ Dữ liệu truyền theo hướng, từ chủ đến tớ hay ngược lại Hướng truyền quy định bit thứ byte truyền Hỗ trợ ơn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] Truyền liệu từ chủ đến tớ (ghi liệu) đến tớ, trình thực là: Thiết bị chủ muốn ghi liệu ‐ Thiết bị chủ tạo xung START - Thiết bị chủ gửi địa thiết bị tớ mà cần giao tiếp với bit = bus đợi xung ACK phản hồi từ tớ - Khi nhận xung ACK báo nhận diện thiết bị tớ, chủ bắt đầu gửi liệu đến cho tớ theo byte Theo sau byte xung ACK Số lượng byte truyền không hạn chế - Kết thúc trình truyền, chủ sau truyền byte cuối tạo xung STOP báo hiệu kết thúc Quá trình kết hợp ghi đọc liệu: hai xung START STOP, thiết bị chủ thực việc đọc hay ghi nhiều lần, với hay nhiều thiết bị Để thực việc đó, sau q trình ghi hay đọc, thiết bị chủ lặp lại xung START lại gửi lại địa thiết bị tớ bắt đầu trình Chế độ giao tiếp Master‐Slave chế độ bus I2C, toàn bus quản lý master Trong chế độ khơng xảy tình trạng xung đột bus hay đồng xung clock có master tạo xung clock Chế độ Multi‐Master Trên bus I2C có nhiều master điều khiển bus Khi bus I2C hoạt động chế độ Multi‐Master Chế độ hiểu bus hiều thiết bị làm Slave trở thành Master có khả trở thành Master thời điểm Tuy nhiên sử dụng IC điều khiển chip nhớ chế độ Multi Master khơng ồn chip nhớ thiết kế Slave, khơng có khả trở thành Master Hỗ trợ ơn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] II: Modul I2C với PIC Modul I2C với PIC Với tiện ích đem lại, khối giao tiếp I2C tích hợp cứng nhiều loại vi điều khiển khác Trong loại Vi điều khiển PIC dòng Mid‐range phổ biến Việt Nam, từ 16F88 có hỗ trợ phần cứng I2C, loại chip khác khơng có Với loại Vi điều khiển khơng có hỗ trợ phần cứng giao tiếp I2C, để sử dụng ta dùng phần mềm lập trình, ta viết chương trinh điều khiển chân Vi điều khiển để thực giao tiếp I2C (các hàm START, STOP, WRITE, READ) Trong việc lập trình cho PIC có nhiều phần mềm viết chương trình CCS, AMS,Mplab… tơi đề cập đến phần giao tiếp I2C sử dụng Mplab Trong Mplab, cần quan tâm đến câu lệnh sau:   OpenI2C(MASTER,SLEW_OFF); // khởi tạo I2C, chọn chip làm chủ hay tớ   SSPADD=0x31; // đặt tốc đọ xung clock(SCL)   StartI2C();// bắt đầu I2C   IdleI2C(); // ACK, đợi phản hồi   WriteI2C(noi dung can ghi);// ghi liệu   StopI2C();// dừng I2C   RestartI2C();// bắt đầu lại I2C   AckI2C(); // ACK phản hồi đi   NotAckI2C(); // NotAck phản hồi     Ví dụ sử dụng modul I2C PIC 18f4520 với ds1307( đồng hồ thời gian thực) DS1307 chip đồng hồ thời gian thực, khái niệm thời gian thực dùng với ý nghĩa thời gian tuyệt đối mà người sử dụng, tính giây, phút, giờ… DS1307 sản phẩm Dallá Semiconductỏ Chip có ghi8 bit chứa thời gian là: giây, phút, giờ, thứ, ngày, tháng, năm Ngồi DS1307 có ghi điều khiển ngõ phụ 56 ghi trống dùng RAM DS1307 đọc thông qua giao diện I2C nên Hỗ trợ ôn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] cấu tạo bên ngồi đơn giản DS1307 xuất hai gói SOIC DIP có chân Hình 2.1 Hình ảnh DS1307 Các chân DS1307 mô tả sau: - X1 X2 hai ngõ kết nối với thạch anh 32768KHz làm nguồ tạo dao động cho chip - Vbat : cực dương pin 3V nuôi chip - GND: chân mas chung cho pin 3V Vcc - Vcc: nguồn cho giao diện I2C, thường 5V dùng chung với vi điều khiển Chú ý Vcc không nguồn Vbat cấp DS1307 dang hoạt động khơng đọc ghi - SQUW/OUT: ngõ phụ tạo xung vuông, tần số xung lập trình - SCL SDA hai đường giao xung nhịp liệu giao diện I2C Có thể kết nối DS1307 mạch điện đơn giản sau: Hình 2.2: Mạch ứng dụng đơn giản DS1307 Hỗ trợ ôn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] Đây mạch PIC 18f4520 DS1307 vẽ phần mềm proteus Hình 2.3: mạch PIC 18f4520 DS1307 Mạch sử dụng LCD hiển thị thời gian thực từ ds1307, chip PIC coi Master gọi slave (ds1307) trả lời chương trình modul I2C PIC 18f4520 Hỗ trợ ôn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] Hình 2.4: Chương trình với modul I2C Với chương trình này, phần mềm proteus hiển thị kết mô là: Hỗ trợ ôn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] Hình 2.5: Kết mơ proteus Đây ví dụ nhỏ đơn giản việc ứng dụng giao tiếp I2C Ngồi sử dụng I2C giao tiếp chip với chip khác, giao tiếp chip với IC, … Vì phổ biến quan trọng vi điều khiển Hỗ trợ ôn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] ...  StartI2C();// bắt đầu I2C   IdleI2C(); // ACK, đợi phản hồi   WriteI2C(noi dung can ghi);// ghi liệu   StopI2C();// dừng I2C   RestartI2C();// bắt đầu lại I2C   AckI2C(); //... 3,4Mbits/s – Chế độ cao tốc (High‐speed mode) Một bus I2C hoạt động nhiều chế độ khác nhau: - Một chủ tớ (one master – one slave) - Một chủ nhiều tớ (one master – multi slave) - Nhiều chủ nhiều tớ (Multi... động truyền hay nhận tùy thuộc vào việc thiết bị chủ chủ (master) hay tớ (slave) Một thiết bị hay IC kết nối với bus I2C, địa (duy nhất) để phân biệt, cấu hình thiết bị chủ (master) hay tớ (slave)

Ngày đăng: 05/04/2019, 11:36

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan