Sau đây là một số chi tiết của I2C-bus: Chỉ yêu cầu 2 dây bus : một đường xung nhịp đồng hồ SCL: a serial data line và một đường dữ liệu SDA: a serial data line Mỗi thiết bị kết nố
Trang 1I Lời mở đầu
I2C, viết tắt của từ tiếng Anh "Inter-Intergrated Circuit", là một loại bus
nối tiếp được phát triển bởi hãng sản xuất linh kiện điện tử Philips Ban đầu, loại bus này chỉ được dùng trong các linh kiện điện tử của Philip Sau đó, do tính ưu việt và đơn giản của nó, I²C đã được chuẩn hóa và được dùng rộng rãi trong các mô đun truyền thông nối tiếp của vi mạch tích hợp ngày nay
Kiểu tốc độ chậm ( low – speed ) được bỏ qua
Kiểu nhanh ( fast ) được thêm vào Nó cho phép tăng tốc độ bit lên đến 400 kbit/s Thiết bị sử dụng kiểu này có thể tương thích với kiểu tốc độ thấp hơn, có thể sử dụng trong hệ thống bus I2C từ 0 – 100 kbit/s
Địa chỉ 10-bit được thêm vào Cho phép 1024 nút dịa chỉ
2 Phiên bản 2.0 – 1998.
Bus I2C trở thành chuẩn thực tế, lúc này đã thực hiện trên hơn 1000 Ics và hơn 50 công ty đăng ký Tuy nhiên nhiều ứng dụng ngày nay yêu cầu tốc độ cao hơn và nguồn cung cấp nhỏ xuống Những phiên bản mới của I2C bus cần phải chú ý đến những yêu cầu kỹ thuật này, phiên bản này có những thay đổi như sau:
Kiểu tốc độ cao (high-speed hay HS) được thêm vào Cho phép tăng tốc độ bit lên đến 3.4Mbit/s Thiết bị hỗ trợ kiểu
HS cũng mang tính kế thừa, tức là có thể hoạt động ở tốc độ bit từ 0 – 3.4Mbit/s
Ngõ ra và trễ của thiết bị với nguồn cung cấp 2V được điều chỉnh cho phù hợp yêu cầu về nhiễu và duy trì sự tương thích với thiết bị có nguồn cung cấp cao hơn
Yêu cầu 0.6V tại 6mA của ngõ ra thiết bị với kiểu nhanh được bỏ qua
Mức điện áp ngõ ra cố định cho thiết bị mới được thay thế bằng mức điện áp của Bus
Trang 2 Thông tin ứng dụng cho bộ dịch hai chiều được thêm vào.
3 Phiên bản 2.1 – 2000.
Phiên bản 2.1 có những thay đổi nhỏ sau đây:
Sau “START condition” lặp lại trong kiểu HS, nó có thể kéo
dài thêm SCLH tín hiệu xung nhịp(clock signal)
II Ích lợi cho người thiết kế I2C BUS và Sản xuất.
Trong việc thiết kế điện tử, viễn thông và điện tử công nghiệp thường có nhiều sự tương tự giữa các thiết kế dường như không liên quan.Ví dụ như, hầu như mỗi hệ thống bao gồm :
Trong vài hệ thống điều khiển thông minh, thông thường vi điều khiển đơn chip
Các thiết bị như LCD , cổng I/O, RAM, EEPROM hoặc chuyển đổi dữ liệu
Khai thác sự giống nhau này thì có lợi cho cả người thiết kế hệ thống và sản xuất thiết bị, cũng như để tối ưu hiệu quả phần cứng và đơn giản mạch thiết kế Philips phát triển Bus 2 dây đơn giản 2 chiều điều khiển nhiều IC Bus này gọi là Inter IC hay I2C-bus Tất cả thiết bị tương thích I2C-bus kết hợp chặt chẽ giao tiếp trên chip mà nó cho phép chúng thông tin trực tiếp với mỗi giao tiếp khác theo I2C-bus Khái niệm thiết kế này giải quyết nhiều vấn đề giao tiếp gặp phải khi thiết kế mạch điều khiển số
Sau đây là một số chi tiết của I2C-bus:
Chỉ yêu cầu 2 dây bus : một đường xung nhịp đồng hồ ( SCL: a serial data line) và một đường dữ liệu ( SDA: a serial data line)
Mỗi thiết bị kết nối đến Bus có địa chỉ mềm bằng địa chỉ duy nhất và mối liên hệ đơn giản chủ/tớ (Master/Slave) tồn tại Masters có thể hoạt động bộ phát chủ (Master-Transmitters) hoặc bộ thu chủ(Master-Receivers)
Trong Bus đa chủ ( multi-master bus) bao gồm phát hiện ra xung đột và sự phân xử để tránh sai lệch dữ liệu nếu hai hay nhiều Masters đồng thời khởi động truyền dữ liệu cùng một lúc
Dữ liệu nối tiếp, 8-bit định hướng, 2 chiều có thể truyền ở:
- Standard (Chuẩn) 100 kb/s
- Fast (Nhanh) 400 kb/s
Trang 3- Fast mode plus (Nhanh hơn) 1 Mb/s
- High speed mode (Tốc độ cao) 3.4 Mb/s
Bộ lọc loại bỏ gai nhiễu trên dây Bus để giữ dữ liệu nguyên gốc
Số lượng IC có thể kết nối chung Bus bị giới hạn bởi điện dung tối đa của Bus là 400pF
1 Lợi ích cho người thiết kế.
Một số chi tiết của I2C-bus mà đặc biệt cuốn hút người dùng:
Khối hàm trong biểu đồ khối phù hợp với các IC trong thực tế; thiết kế thực hiện nhanh hơn từ sơ đồ khối đến lược đồ
Không cần phải thiết kế giao diện Bus bởi vì giao tiếp Bus đã tích hợp sẵn trên trên chip
Nghi thức truyền dữ liệu và địa chỉ tích hợp cho phép hệ thống để phần mềm định nghĩa hoàn toàn
Các IC cùng loại thường được sử dụng nhiều ứng dụng khác nhau
Thời gian thiết kế được rút ngắn bởi vì người thiết kế nhanh chóng thân thiện với việc thường xuyên sử dụng các khối hàm đại diện cho I2C-bus tương thích IC
Các IC có thể được thêm vào hoặc gỡ ra mà không ảnh hưởng đến các phần tử khác trên Bus
Sự kiểm tra và chỉnh lỗi thì đơn giản Sự trục trặc nhanh chóng được chỉ ra
Thời gian phát triển phần mềm có thể được rút ngắn nhờ các thư viện mà trong đó có các mô đun phần mềm có thể dùng lại được
Thêm vào những thuận lợi này, các CMOS IC có tích hợp I2C bus có độ tương thích cao, cung cấp cho người thiết kế những đặc điểm kỹ thuật đặc trưng như thiết bị di động
Tất cả bao gồm:
Năng lương tiêu thụ rất thấp
Chống nhiễu tốt
Tầm điện áp nguồn cung cấp rộng
Hoạt động với khoảng nhiệt độ lớn
Trang 42 Lợi ích trong sản suất
I2C-Bus tương thích với IC không những trợ giúp thiết kế, mà còn cung cấp nhiều lợi ích to lớn cho việc sản suất thiết bị bởi vì:
I2C-Bus với thiết kế đơn giản chỉ cần 2 dây tối thiểu hóa đa liên kết cho nên IC sẽ có ít chân hơn và không có quá nhiều đường mạch in Kết quả là bảng mạch in sẽ nhỏ hơn và rẻ hơn
Phương thức nào tích hợp toàn bộ I2C-Bus loại bỏ yêu cầu về giải mã địa chỉ và các liên kết logic (glue logic) khác
Đa chủ ( multi Master) là khả năng của I2C-Bus cho phép nhanh chóng kiểm tra và sắp xếp định tuyến với thiết bị người dùng theo kết nối cục bộ đến một đường chung
I2C-Bus có sẵn sự tương thích với với IC trong SO(small outline), VSO(very small outline) rất tốt
Đó chỉ là một số lợi ích Thêm vào đó, IC có tích hợp I2C-Bus làm tăng sự linh động thiết kế hệ thống bằng cách nhiều thiết bị khác nhau và có cấu trúc đơn giản và dễ dàng nâng cấp để cập nhật Trong trường hợp này, một thiết bị thuộc họ nào có thể phát triển lên từ thiết kế cơ bản của họ đó Nâng cấp cho thiết bị mới hoặc tăng cường chức năng cho thiết bị mẫu (ví dụ như mở rộng bộ nhớ, điều khiển từ xa v.v) có thể làm đơn giản bằng cách tách IC tương thích trên Bus ra
III Giới thiệu đặc điểm kỹ thuật của I2C-Bus.
Về ứng dụng điều khiển số định hướng 8-bit, như là những ứng
dụng yêu cầu vi điều khiển, tiêu chuẩn thiết kế có thể được thiết lập:
Hệ thống hoàn chỉnh thường bao gồm một vi điều khiển và thiết bị ngoại vi khác như là bộ nhớ và mở rộng I/O
Chi phí kết nối với nhiều thiết bị mà không cần hệ thống phải được tối thiểu
Một hệ thống mà thực hiện hàm điều khiển thì không yêu cầu truyền dữ liệu tốc độ cao
Toàn bộ hiệu quả phụ thuộc vào thiết bị dược chọn và cấu trúc tự nhiên của Bus đa liên kết
Để sản suất được một hệ thống đạt được các tiêu chuẩn này, một cấu trúc nối tiếp được yêu cầu Dù các Bus nối tiếp không có khả năng về lưu
Trang 5lượng của các Bus song song, nhưng nó yêu cầu ít dây nối hơn và chân kết nối
IC hơn Tuy nhiên, Bus không chỉ đơn thần là dây đa liên kết, mà nó biểu hiện tất cả định dạng và thủ tục về giao tiếp về giao tiếp bên trong hệ thống
Thiết bị giao tiếp với các thiết bị khác trên Bus nối tiếp phải mang một số phương thức mà tránh được tất cả hỗn loạn có thể xảy ra, mất dữ liệu và tắc nghẽn thông tin Thiết bị tốc độ cao phải có khả giao tiếp với thiết bị có tốc độ thấp Một hệ phải không phụ thuộc vào thiết bị kết nối với nó, mặt khác sự điều chỉnh và cải tiến là không khả thi Một thủ tục đưa ra để quyết dịnh là thiết bị sẽ ở trong sự diều khiển của Bus khi đó Và, nếu các thiết bị khác nhau với tốc độ xung nhịp khác nhau được kết nối đến Bus, xung nhịp nguồn của Bus phải được định nghĩa Tất cả tiêu chuẩn này điều được bao hàm trong I2C-Bus
IV Khái niệm về I2C-Bus
I2C-Bus cung cấp bất cứ cách nào chế tạo IC( NMOS, CMOS, bipolar) Gồm có 2 dây, dữ liệu nối tiếp( SDA: serial data) và xung nhịp nối tiếp (SCL: serial clock), mang thông tin giữa thiết bị và Bus nối với thiết bị đó
Mỗi thiết bị được định nghĩa bằng một địa chỉ duy nhất ( dù thiết bị là vi điều khiển, điều khiển LCD, bộ nhớ hay giao tiếp bàn phím) và có thể sử dụng như bộ thu hoặc bộ phát, phụ thuộc vào chức năng của thiết bị Hiển nhiên điều khiển LCD chỉ có thể là bộ thu, trong khi đó bộ nhớ có thể thu và phát dữ liệu thêm vào bộ thu hoặc bộ phát, thiết bị có thể được xem như làbộ chủ(Master) hoặcbộ tớ (Slave) khi thực hiện truyền dữ liệu Xem bảng 1 Bộ chủ là thiết bị khởi đầu truyền dữ liệu trên Bus và khởi tạo tín hiệu xung nhịp để cho phép truyền Tại thời điểm này, bất cứ thiết bị nào được định địa chỉ được coi như bộ tớ
Trang 6I2C Bus là Bus đa chủ Điều này có nghĩa là nhiều hơn một thiết bị có khả năng điều khiển Bus mà có thể được kết nối với nó Vì bộ chủ thường là vi điều khiển, chúng ta hãy xét đến trường hợp dữ liệu truyền giữa hai vi điều khiển kết nối với I2C Bus (Xem hình 2)
Hình 2: Ví dụ sử dụng I2C có 2 vi diều khiển kết nối
Bộ phát Thiết bị truyền dữ liệu đến Bus.
Bộ thu Thiết bị nhận dữ liệu từ Bus.
Bộ chủ Thiết bị khởi động truyền, khởi tạo xung
nhịp và kết thúc truyền
Bộ tớ thiết bị được định địa chỉ bởi Bộ chủ
Đa chủ Hơn một bộ chủ cố gắng để điều khiển
Bus tại một thời điểm mà không sai lạc thông điệp.
Sự phân xử Thủ tục đảm bảo rằng, nếu có hơn một
bộ chủ cùng một lúc cố gắng điều khiển Bus, chỉ có một được cho phép làm vậy và và thông điệp thì không sai
Đồng bộ Thủ tục đồng bộ tín hiệu xung nhịp của
hai hay nhiều thiết bị.
Bảng 1 : Định nghĩa các thuât ngữ của I2C Bus
Trang 7Điểm nổi bật là mối quan hệ chủ-tớ và thu-phát được thiết lập trên I2C Bus Chú ý rằng những mối quan hệ trên là không cố định, nhưng chỉ phụ thuộc vào hướng truyền dữ liệu tại thời điểm đó Sự truyền dữ liệu được tiến hành như sau:
1, Giả thiết vi điều khiển A muốn truyền thông tin cho vi điều khiển B:
Vi điều khiển A(chủ), vi điều khiển B (tớ)được định địa chỉ
Vi điều khiển A(bộ phát chủ) truyền dữ liệu cho vi điều khiển B(bộ thu tớ)
Vi điều khiển A kết thúc truyền
2, Nếu vi điều khiển A muốn nhận thông tin từ vi điều khiển B:
Vi điều khiển A(chủ), vi điều khiển B được định địa chỉ(tớ)
Vi điều khiển A(bộ thu chủ) nhận dữ liệu từ vi điều khiển B (bộ phát tớ)
Vi điều khiển A kết thúc truyền
Khả năng kết nối nhiều hơn một vi điều khiển với I2C Bus có nghĩa là nhiều hơn một master có thể khởi động truyền dữ liệu tại cùng một thời điểm.Để tránh sự hỗn độn sinh ra từ sự việc này, người đã phát phiển một thủ tục gọi là sự phân xử (Arbitration) Thủ tục này dựa trên kết nối And nối dây đến đường SCL
Việc khởi tạo tín hiệu xung nhịp trên I2C Bus luôn luôn là nhiệm vụ của các thiết bị chủ (master devices); mỗi bộ chủ khởi tạo tín hiệu xung nhịp của chính nó khi đang truyền dữ liệu trên Bus Tín hiệu xung nhịp trên I2C Bus từ bộ chủ chỉ có thể được hiệu chỉnh khi nó được kéo dài bởi thiết bị tớ có tốc độ chậm mà giữ đường SCL, hoặc bởi bộ chủ khác khi sự phân xử xảy ra
V Tính chất chung I2C Bus
Cả SDA và SCL đều là đường dây 2 chiều, được kết nối với nguồn dương theo nguồn dòng hoặc diện trở kéo lên (Xem hình 3) Khi Bus rảnh , cả hai đường dây đều ở mức cao Tần ngõ ra của thiết bị kết nối với I2C Bus phải có cực máng mở hay cực thu mở để thực hiện hàm And nối dây Dữ liệu trên I2C Bus có thể được truyền đạt được tốc độ 100 kbit/s ở chế độ chuẩn (stardard mode), tốc độ 400 kbit/s ở chế độ nhanh(fast mode), tốc độ 3.4 Mbit/s ở chế độ tốc độ cao (high-speed mode) Số lượng thiết bị kết nối với I2C Bus là duy nhấtphụ thuộc vào điện dung của Bus giới hạn ở 400pF
Trang 8Hình 3: Tính chất I2C Bus
VI Sự truyền bit.
Bởi vì nhiều thiết bị kỹ thuật đa dạng khác nhau ( CMOS, NMOS, bipolar) có thể kết nối với I2C Bus mức logic “0” hoặc “1” thì không cố định và phụ thuộc vào sự liên hợp mức logic của VDD Một xung nhịp khởi tạo cho mỗi bit dữ liệu được truyền
1 Sự hợp lệ dữ liệu.
Dữ liệu trên đường SDA phải ổn định suốt khoảng thời gian ở mức cao của xung nhịp Trạng thái của SDA chỉ có thể thay đổi khi tín hiệu xung nhịp trên đường SCL xuống mức thấp.(Xem hình 4)
Hình 4 : sự truyền bit trên I2C Bus
Trang 92 Điều kiện KHỞI ĐỘNG và điều kiện DỪNG( START (S) và STOP(P) conditions)
Trong thủ tục của I2C Bus, những trạng thái duy nhất phát sinh dược định nghĩa là điều kiện KHỞI ĐỘNG và điều kiện DỪNG ( START (S) và STOP(P) conditions)
Hình 5 : Điều kiện KHỞI ĐỘNG và điều kiện DỪNG
Điều kiện KHỞI ĐỘNG(S) : là sự chuyển đổi trạng thái từ mức CAO xuống mức THẤP trên SDA trong khi đó SCL ở mức CAO
Điều kiện DỪNG (P) : là sự chuyển đổi trạng thái từ mức THẤP xuống mức CAO trên SDA trong khi đó SCL ở mức CAO
Điều kiện KHỞI ĐỘNG và điều kiện DỪNG thì luôn luôn được khởi động bởi bộ chủ Bus coi như là bận sau điều kiện KHỞI ĐỘNG Bus sẽ trở lại rảnh sau điều kiện DỪNG
Bus ở trạng thái bận nếu KHỞI ĐỘNG lặp lại ( Sr : repeated START) được kích khởi thay vì điều kiện DỪNG Về điểm này, điều kiện KHỞI ĐỘNG(S) và KHỞI ĐỘNG lặp lại (Sr) thì định nghĩa giống nhau ( Xem hình
10) Do đó, ở phần còn lại , ta sẽ gọi tắt S đại diện cho cả Điều kiện KHỞI ĐỘNG và KHỞI ĐỘNG lặp lại Và P đại diện cho điều kiện DỪNG.
Thiết bị kết nối với Bus phát hiện ra S và P thì dễ dàng nếu chúng kết
hợp chặt chẽ giao diện phần cứng cần thiết Tuy nhiên, vi điều khiển mà không có giao diện như vậy phải lấy mẫu SDA ít nhất 2 lần trên 1 chu kỳ xung nhịp để nhận biết được sự truyền
VII Truyền dữ liệu.
1 Định dạng byte.
Mỗi byte trên SDA phải dài 8-bits Số lượng byte có thể truyền trong truyền dữ liệu là không giới hạn Mỗi byte phải được kèm theo một bit xác nhận ( ACK) Dữ liệu truyền bit có trọng số lớn nhất(MSB) trước ( Xem Hình 6) Nếu
Trang 10bộ tớ không thể truyền hoặc nhận byte dữ liệu khác cho đến khi nó thực hiện một số hành động khác, ví dụ như phục vụ cho việc ngắt nội bộ, nó có thể giữ SCL ở mức THẤP để ép bộ tớ vào trạng thái chờ.Sự truyền dữ liệu sau đó sẽ tiếp tục khi bộ tớ sẵn sàng cho byte dữ liệu khác và giải phóng SCL.
Hình 6: Truyền dữ liệu trên I2C BusTrong một số trường hợp, I2C Bus cho phép định dạng khác định dạng của I2C Bus( ví dụ của CBUS) Một thông điệp mà bắt đầu với một địa chỉ như
vậy có thể kết thúc bằng cách phát ra P , thậm chí trong suốt quá trình truyền
một byte Trong trường hợp này, không có ACK
2 Sự xác nhận (acknowledge : ACK).
Truyền dữ liệu với ACK là bắt buộc ACK có liên quan tới xung nhịp được phát ra bởi bộ chủ Bộ phát sẽ để cho SDA ở mức CAO trong suốt xung nhịp của ACK
Bộ phải kéo SDA xuống trong suốt xung nhịp của ACK để duy trì mức THẤP trong suốt quá trình ở mức cao của xung nhịp này.(Xem hình 7) Tất nhiên, sự thiết lập và thời gian giữ cũng dược đưa vào để tính toán
Hình 7 : ACK trên I2C Bus
Trang 11Thông thường, một bộ thu mà đã được định địa chỉ thì bắt buộc phải khởi tạo một bit ACK sau mỗi byte mà nó nhận được, trừ phi thông điệp đó bắt đầu bằng địa chỉ CBUS.
Khi bộ tớ không xác nhận địa chỉ tớ ( ví dụ như: nó không nhận hoặc thu bởi vì nó thực hiện một số chức năng trong thời gian thực), SDA phải rời khỏi
mức CAO bởi vì bộ tớ Bộ chủ sau đó có thể khởi tạo hoặc là P để hủy bỏ sự truyền, hoặc Sr để bắt đầu truyền dữ liệu mới.
Nếu bộ thu chủ xác nhận địa chỉ tớ, nhưng sau đó sự truyền không thể nhận thêm byte dữ liệu nào nữa, bộ chủ phải một lần nữa hủy bỏ sự truyền Điều này chứng tỏ rằng bộ tớ không khởi tạo ACK theo byte đầu tiên Bộ tớ
đưa SDA ra khỏi mức CAO và bộ chủ khởi tạo P hoặc Sr
Nếu bộ thu chủ gặp rắc rối với sự truyền, nó phải phát tín hiệu kết thúc dữ liệu đến bộ phát tớ bằng cách không khởi tạo ACK trên byte cuối cùng
Bộ phát tớ phải giải thoát SDA và cho phép bộ chủ khởi tạo P hoặc Sr
VIII Sự phân xử và sự khởi tạo xung nhịp.
1 Sự đồng bộ
Tất cả các bộ chủ khởi tạo xung nhịp của chúng trên SCL để chuyển thông điệp trên I2C Bus Dữ liệu chỉ hợp lệ trong suốt khoảng thời gian xung nhịp ở mức CAO Xung nhịp được định nghĩa về việc này thì cần thiết cho thủ tục phân xử theo từng bit xảy ra
Đồng bộ xung nhịp được thực hiện bằng cách sử dụng And nối dây của giao diện I2C đến SCL Điều này có nghĩa là sự chuyển tiếp từ mức CAO xuống mức THẤP trên SCL gây ra cho thiết bị liên quan bắt đầu giai đoạn ở mức THẤP ( LOW period) xung nhịp của một thiết bị sẽ xuống mức THẤP, nó sẽ giữ trạng thái này cho đến khi đạt được trạng thái CAO.( Xem hình 8) Tuy nhiên , sự chuyển tiếp từ mức THẤP xuống mức CAO của xung nhịp này có thể không thay đổi trạng thái của SCL nếu xung nhịp của thiết bị khác vẫn ở trong giai đoạn ở mức THẤP của nó SCL sẽ được giữ ở mức THẤP bởi thiế bị mà có giai đoạn ở mức THẤP của nó dài nhất Những thiết bị với giai đoạn ở mức THẤP của nó ngắn hơn trạng thái chờ ở mức CAO trong suốt thời gian này
Trang 12Hình 8 : Đồng bộ xung nhịp trong thủ tục phân sử.
Khi tất cả các thiết bị liên quan không ở giai đoạn ở mức THẤP của chúng, SCL sẽ được giải phóng và lên mức CAO Không có sự khác biệt giữa xung nhịp của thiết bị Và tất cả các thiết bị sẽ khởi động đến giai đoạn ở mức CAO của chúng Nếu thiết bị đầu tiên hoàn thành giai đoạn ở mức CAO của chúng và lại kéo SCL xuống THẤP
Trong trường hợp này, xung nhịp của SCL mà được đồng bộ được khởi động với giai đoạn ở mức THẤP của nó quyết định bởi thiết bị có giai đoạn ở mức THẤP dài nhất, giai đoạn ở mức CAO của nó quyết định bởi thiết bị có giai đoạn ở mức CAO ngắn nhất
2 Sự phân xử( Arbitration).
Bộ chủ chỉ có thể bắt đầu sự truyền nếu Bus rảnh Hai hay nhiều bộ chủ
có thể phát động S trong khoảng thời gian duy trì nhỏ nhất ( the minimum hold
time : tHD,STA) của S mà kết quả trong định nghĩa S đến Bus
Sự phân xử xảy ra trên SDA, trong khi đó SCL ở mức cao , trong trường hợp như vậy bộ chủ mà truyền đi mức CAO, trong khi đó một bộ chủ khác truyền mức THẤP sẽ ngắt ngõ ra dữ liệu của nó bởi vì mức logic trên Bus không tương thích với mức logic của chính nó
Sự phân xử có thể tiếp tục cho nhiều bit Giai đoạn đầu tiên là so sánh các bit địa chỉ Nếu các bộ chủ mà cùng cố gắng để định chỉ cho cùng một thiết
bị, sự phân xử sẽ tiếp tục so sánh các bit dữ liệu nếu chúng là bộ phát chủ hoặc bit ACK nếu chúng là bộ thu chủ Bởi vì thông tin về địa chỉ và dữ liệu trên I2C Bus bởi bộ chủ thắng trong sự phân xử, không có thông tin bị mất trong suốt quá trình phân xử
Bộ chủ mà thua trong sự phân xử có thể phát động xung nhịp cho đến khi kết thúc byte mà nó thua trong sự phân xử
Trang 13Như bộ chủ ở kiểu HS có mã bộ chủ 8 bit duy nhất, nó luôn luôn kết thúc phân xử trong byte đầu tiên.
Nếu bộ chủ kết hợp chặt chẽ với chức năng của bộ tớ và nó thua trong sự phân xử trong suốt giai đoạn định địa chỉ, có khả năng bộ chủ đang cố gắng định địa chỉ nó Bộ chủ thua trong sự phân xử vì thế phải ngay lập tức chuyển thành chế độ tớ
Hình 9 cho ta thấy thủ tục phân xử cho hai bộ chủ Dĩ nhiên, có thể bao gồm nhiều hơn( phụ thuộc vào bao nhiêu bộ chủ kết nối với Bus)
Hình 9 : Sự phân xử với hai bộ chủ
Xự phân xử sẽ hoàn tất trên SDA khi SCL ở mức cao Khi đó bộ chủ mà truyền mức CAO trong khi đó bộ chủ khác truyền mức THẤP sẽ thua trong phân xử
3 Sử dụng cơ chế đồng bộ xung nhịp như là sự bắt tay.
Được thêm vào để sử dụng trong suốt thủ tục phân xử, cơ chế đồng bộ xung nhịp có thể được sử dụng dể cho phép bộ thu đối phó với truyền data tốc độ cao, trên 1 byte hoặc 1 bit
Xét về byte, thiết bị có khả năng nhận các byte dữ liệu ở tốc độ nhanh, nhưng cần nhiều thời gian hợn để lưu trữ byte nhận được và chuẩn bị byte khác truyền tới Bộ tớ sau đó có thể giữ SCL ở mức thấp sau đó thu nhận byte và ACK của byte đó để đưa bộ chủ về trạng thái chờ cho đến khi bộ tớ sẵn sàng cho sự truyền của byte kế tiếp trong một kiểu bắt tay.( Xem hình 10)
Xét về bit, một thiết bị như là vi diều khiển kết nối với I2C Bus, có thể làm chậm xung nhịp của Bus mở rộng giai đoạn ở mức thấp của mỗi chu kỳ
Trang 14xung nhịp Tốc độ của bất cứ bộ chủ nào bằng cách này thích nghi với tốc độ vận hành bên trong của thiết bị này.
Trong kiểu HS, đặc điểm kỹ thuật ở kiểu này chỉ có thể được sử dụng trên byte
Hình 10 : Truyền hoàn chỉnh dữ liệu
IX Định dạng với 7 bit địa chỉ.
Truyền dữ liệu với định dạng trong hình 10 Sau khi S, địa chỉ tớ được
gửi Địa chỉ này dài 7 bit với 1 bit thứ 8 theo sau là bit hướng dữ liệu ( data direction bit :R / W ) - R / W = 0 là truyền dữ liệu(ghi), R / W = 1 yêu cầu dữ
liệu(đọc) Sự truyền dữ liệu luôn kết thúc bởi P được phát bởi bộ chủ Tuy nhiên, nếu bộ chủ vẫn còn muốn giao tiếp với Bus, nó có thể phát ra Sr và định địa chỉ cho bộ tớ khác mà không cần phải phát S Nhiều sự kết hợp định dạng
W
R / bên trong sự truyền
Những định dạng truyền dữ có thể là:
Bộ truyền chủ truyền đến bộ thu chủ Hướng truyền không thay đổi
Bộ chủ đọc bộ tớ ngay sau byte đầu tiên(Xem hình 12) Ngay
tại ACK đầu tiên, bộ phát chủ trở thành bộ thu chủ và bộ thu tớ trở thành bộ phát tớ ACK đầu tiên này vẫn còn được phát
bởi bộ tớ S được phát bởi bộ chủ mà trước đó đã gửi NACK.
Định dạng kết hợp (Xem hình 13) Trong suốt quá trình chuyển
đổi trạng thái bên trong sự truyền, S và địa chỉ bộ tớ cả hai
đều được lặp lại, nhưng với đảo bit R / W Nếu bộ thu chủ phát
Sr, nó đã gửi NACK trước đó.
Trang 15Chú ý:
1,Định dạng kết hợp có thể được sử dụng, ví dụ như, để điều khiển một bộ nhớ nối tiếp Trong suốt byte dữ liệu đầu tiên, vị
trí bộ nhớ trong phải được ghi Sau S và địa chỉ bộ tớ lặp lại, dữ
liệu có thể được truyền
2,Tất cả các quyết định về viêc tự tăng lên hoặc giảm đi của vị trí bộ nhớ truy xuất trước đó được làm bởi người thiết kế thiết bị 3,Mỗi byte được theo sau bởi bit ACK như được chỉ dịnh bởi
khối ACK tuần tự
4,Thiết bị tương thích I2C Bus phải xóa mức logic Bus trong sự
nhận của S và Sr như là chúng biết trước tấ cả địa chỉ bộ tớ gửi
đi, dù là S này không được định vị theo định dạng thích hợp.
5, S theo ngay sau đó là P là định dạng sai ( phải tránh).
Hình 11 : Bộ phát chủ định địa chỉ bộ thu tớ với 7 bit địa chỉ
Chiều truyền không thay đổi
Hình 12 :Bộ chủ đọc bộ tớ ngay lập tức sau byte đầu tiên