Lập Trình C Cho Hệ Thống Nhúng (P4- Giao Tiếp I2C Trong V850E)
Có thể bạn quan tâm
1.I2C là gì
Đầu năm 1980 Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây được gọi là I2C. I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit. Đây là đường Bus giao tiếp giữa các IC với nhau. Bus I2C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại Vi điều khiển 8051, PIC, AVR, ARM... chip nhớ như: RAM tĩnh (Static Ram), EEPROM, bộ chuyển đổi tương tự số (ADC), số tương tự(DAC), IC điểu khiển LCD, LED...
2.Nguyên lý hoạt động
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. Có rất nhiều thiết bị có thể cùng được kết nối vào một bus I2C, tuy nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị sẽ được nhận ra bởỉ một địa chỉ duy nhất với một quan hệ chủ/tớ tồn tại 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 hoặc truyền dữ liệu hay có thể vừa truyền vừa nhận. Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hãy tớ (slave).
I2C sử dụng gói Two Wire Interface (TWI)để truyền dữ liệu, một gói truyền TWI sẽ chứa
- Một điều kiên Start gói tin
- Một packet địa chỉ bao gồm(Chỉ thị Read/Write + Slave acknowledge)
- Một hoặc nhiều data packets
- Một điều kiện để Stop gói tin
Một điều kiên Start gói tin Một điều kiện Start gói tin sẽ được Master khởi tạo quá trình truyền dữ liệu.Ở giữa điều kiện start và stop thì bus truyền thông sẽ luôn ở trạng thái bận để tránh một thiết bị master nào đó tạo điều kiện Start . Một điều kiện Start gói tin sẽ được báo hiệu bằng cạnh xuống của SDA , trong khi SCL sẽ vẫn ở mức high.
*Một packet địa chỉ * Một packet địa chỉ sẽ gồm 9 bits(MSB first), trong đó có 7 bits sẽ chứa địa chỉ slave mà master muốn tiến hành truyền thông, 1 bit điều khiển read/write được thiết lập bởi master nhằm xác định chức năng read or write to slave , và cuối cùng là 1 acknowledge bit được thiết lập bởi slave với mục đích báo cho master biết slave đã ở trạng thái sẵn sàng truyền thông hay chưa.
Data packet Data packet sẽ gồm 9bits(MSB first), trong đó có 1 byte dữ liệu và 1 bit acknowledge Trong suốt quá trình truyền thông thì Master tạo SCL và nhận acknowledges Acknowledge (ACK) : bit 9 sẽ ở trạng thái LOW Not Acknowledge (NACK): bit 9 sẽ ở trạng thái HIGH
Một điều kiên Stop gói tin Một điều kiện Stop gói tin sẽ được Master tạo ra để báo hiệu kết thúc quá trình truyền dữ liệu. Một điều kiện Stop gói tin sẽ được báo hiệu bằng cạnh lên của SDA , trong khi SCL sẽ vẫn ở mức high.
3. Sử dụng I2C với micro controller V850
- Khởi tạo khối I2C trong V850 Để sử dụng được khối I2C thì chúng ta phải tiến hành khởi tạo, để các pin trên VĐK sẽ được đảm bảo thực hiện đúng các chức năng của bus SDA và SCL. Dưới đây là chỉ là một flowchart và chương trình mẫu để các bạn tham khảo , vì vậy sẽ có nhưng giá trị thiết lập mà các bạn chưa thể hiểu được ngay, mà cần phải tham khảo manual V850 để nắm được rõ hơn.
- Điều kiện Stop gói tin
- Điều kiện Start gói tin
Những function ở trên là những function cơ bản nhất để một khối I2C có thể hoạt động được và dĩ nhiên chúng ta cần phải viết thêm những function khác để sử dụng các function ở trên, cũng như thiết lập data truyền và nhận cho một khối I2C. Hy vọng những thông tin trên sẽ hữu ích cho các bạn khi bắt đầu tìm hiểu về cách thức hoạt động của I2C trong một VĐK.
Từ khóa » Tìm Hiểu Về I2c
-
Chuẩn Giao Tiếp I2C Là Gì - ĐIỆN TỬ TƯƠNG LAI
-
Giới Thiệu Chuẩn Giao Tiếp I2C
-
Giao Tiếp I2C - DevIOT
-
1_Chuẩn Giao Tiếp I2C - Kỹ Sư Nghèo
-
Giao Tiếp I2C — Tài Liệu ESP32 1.0
-
Giao Tiếp I2C Với Nhiều Module | Cộng đồng Arduino Việt Nam
-
Tìm Hiểu Về Giao Tiếp I2c ( Master – Slave) - Tài Liệu Text - 123doc
-
I²C – Wikipedia Tiếng Việt
-
Giao Thức I2C Và Giao Tiếp Với Cảm Biến Nhiệt Hồng Ngoại MLX90614
-
Giới Thiệu Chuẩn Giao Tiếp I2C - Blog Chia Sẻ Kiến Thức Và Đam Mê ...
-
Giao Tiếp I2C Là Gì
-
Chuẩn Giao Tiếp I2C Là Gì - Christmasloaded
-
Giao Tiếp I2c Là Gì
-
Tìm Hiểu Về Chuẩn I2C - Trung Tâm đào Tạo Thiết Kế Vi Mạch Semicon