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…

Bạn đang xem: I2c là gì

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 tinMột packet địa chỉ bao gồm(Chỉ thị Read/Write + Slave acknowledge)Một hoặc nhiều data packetsMột điều kiện để Stop gói tin

Một điều kiên Start gói tinMộ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.

Xem thêm: Cổ đông Tiếng Anh Là Gì

*

 

*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.

Xem thêm: Tải Game Cá Lớn Nuốt Cá Bé, Download Feeding Frenzy Full Pc: Kinh điển

*

 

Data packetData packet sẽ gồm 9bits(MSB first), trong đó có 1 byte dữ liệu và 1 bit acknowledgeTrong suốt quá trình truyền thông thì Master tạo SCL và nhận acknowledgesAcknowledge (ACK) : bit 9 sẽ ở trạng thái LOWNot Acknowledge (NACK): bit 9 sẽ ở trạng thái HIGH

*

 

Một điều kiên Stop gói tinMộ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.

*

Chuyên mục: Hỏi Đáp