Nội Dung Bài Viết
Bài viết này thảo luận về các trường hợp sử dụng, lợi ích và các ứng dụng sử dụng bộ đệm I2C.
Trong tất cả các chuẩn giao tiếp được sử dụng cho các thiết bị nhúng, I2C là một giao thức ưa thích của tôi. Mặc dù băng thông, tốc độ của nó không cao như các chuẩn giao tiếp khác, nhưng với khả năng kết nối, điều khiển nhiều thiết bị chỉ với 2 dây tín hiệu, I2C trở thành một công cụ tuyệt vời cho những kỹ sư nhúng (như tôi chẳng hạn), những người đang cố gắng giảm chi phí sản phẩm, tiết kiệm chân, và giảm bớt sự phức tạp khi lập trình. Tuy nhiên, trong nhiều trường hợp, việc sử dụng I2C trở nên phức tạp và thiếu ổn định. Bởi vậy, bộ đệm I2C được tạo ra nhằm giải quyết vấn đề này.
Đối với một số bạn chưa biết I2C là gì, chúng ta sẽ xem qua về khái niệm I2C cơ bản.
I²C, viết tắt của từ tiếng Anh “Inter-Integrated 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 Philips. 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.
Điện dung tồn tại trên Bus I2C
Với 7 bit địa chỉ, trên lý thuyết, 128 thiết bị có thể được kết nối với nhau chỉ bằng 1 bus I2C. Tuy nhiên, trên thực tế, một số địa chỉ được dùng cho mục đích khác, cho nên, chúng ta chỉ có thể kết nối 112. Thông thường, chúng ta chỉ kết nối 2, 3 thiết bị với nhau qua I2C và trên cùng một pcb, và điều đó giúp thiết bị của chúng ta hoạt động hoàn toàn ổn định. Tuy nhiên, đối với một vài dự án, như điều khiển nhà kính chẳng hạn, số cảm biến có thể lên tới 100, và chiều dài bus (dây tín hiệu I2C) có thể lên tới vài chục mét. Điều này dẫn tới việc mạch của bạn hoạt động không ổn định, thường xuyên nhiễu, mất kết nối, đôi khi là không thể hoạt động.
Thực ra, nguyên nhân của việc này khá đơn giản, mỗi thiết bị được thêm vào Bus I2C sẽ thêm vào bus một chút điện dung của thiết bị, và kèm theo dây dẫn dài, điện dung của bus tăng lên đáng kể, đó là chưa tính đến suy hao tín hiệu do trở kháng của dây dẫn.
Và để mạch hoạt động ổn định, ta cần biết tới tiêu chuẩn của giao tiếp I2C. Đó là, khi điện dung của bus đạt tới 400pF, bạn không thể đặt thêm bất cứ thiết bị nào vào bus đó nữa. Một cách để giải quyết vấn đề này là sử dụng bộ đệm I2C vào thiết kế của bạn.
Hình ảnh dưới đây, được lấy từ tài liệu này (PDF) (tài liệu được xuất bản bởi Texas Instruments) cho thấy một bus I 2 C điển hình với điện dung liên quan.
Giới thiệu bộ đệm I2C
Khi vận hành ở chế độ Standard Mode hoặc Fast Mode, điện dung tối đa trên Bus I2C là 400pF, trong chế độ Fast Mode Plus, giá trị này có thể tăng lên đến 500pF. Khi đạt đến giới hạn đó, bất kỳ thiết bị nào khác được thêm vào sẽ làm điện dung của Bus vượt khỏi ngưỡng tiêu chuẩn (đôi khi thời tiết nồm ẩm ở Việt Nam cũng có thể làm tăng điện dung của bus), điều đó khiển thiết bị của bạn chạy kém ổn định, và xảy ra lỗi. Vấn đề này sẽ đặc biệt rắc rối khi bạn không thể thay đổi giá trị trở treo, trong khi bạn vẫn cần thêm nhiều thiết bị hơn.
Bộ đệm I2C chia bus I2C thành 2 đường bus riêng biệt, trong khi đó nó vẫn cho phép các thiết bị giao tiếp như thông thường, mà không cần bất kỳ sự thay đổi nào về phần mềm trên chip. Điều này giúp bạn giảm được tổng điện dung trên Bus I2C ở bất cứ nơi nào mà bộ đệm I2C được lắp đặt. Nó cũng có nghĩa là chúng ta có được giá trị RC thấp hơn, điều đó giúp tăng tốc độ truyền lên cao hơn, khoảng cách truyền xa hơn, mức độ nhiễu giảm xuống. Những lợi ích này là lý do chính khiến bộ đệm I2C được sử dụng.
Ví dụ về bộ đệm I2C
PC9515A một sản phẩm đến từ NXP, là một bộ đệm I2C hai chiều. Nó có thể được sử dụng để chạy cùng lúc một bus I2C 5v và một Bus I2C 3V3, do đó, nó cũng được sử dụng như mà một IC chuyển đổi mức logic. Đây là một ví dụ
Một IC khác từ Analog Devices đó là LTC4311, nó là một loại bộ đệm I2C khác. Theo như mô tả, ta có thể thấy nó hoạt động giống như một thiết bị gia tốc cho bus I2C. Nó được kết nối song song với các thiết bị khác trên bus, và nó phát hiện tín hiệu dữ liệu, thêm vào đó năng lượng giúp tín hiệu chống lại điện dung của bus, từ đó làm quá trình truyền dữ liệu xảy ra nhanh hơn.
Ứng dụng của bộ đệm I2C trong ứng dụng công nghiệp
Trong các ứng dụng công nghiệp, các thiết bị đều có yêu cầu rất cao. Những thiết bị phải có khả năng kháng nhiễu và độ tin cậy cao. Các thiết bị quan trọng yêu cầu cả phần mềm và phần cứng, đều có thế hoạt động trong môi trường dày đặc nhiễu công nghiệp, mà không gặp vấn đề gì. Điều này dẫn đến các thiết bị đều được thiết kế có các hệ thống dự phòng kết nối với bộ điều khiển. Một lợi thế của bộ đệm I2C là tạo ra các bus I2C dư thừa. Sử dụng hai bộ đệm I2C kết nối vào bus I2C gốc, chúng ta sẽ có một bus I2C dự phòng cho trường hợp Bus I2C còn lại bị khóa hoặc bị xâm phạm. Bus I2C dư thừa cùng các thiết bị dự phòng được sử dụng để giảm thiểu nguy cơ hỏng bus hoặc thiết bị. Dưới đây là ví dụ về sử dụng bus I2C dự phòng.
Về cơ bản, bộ điều khiển có thể sử dụng chân EN để điều khiển bus nào được sử dụng để truyền thông và chuyển sang bus I2C còn lại khi bus kia gặp sự cố. Bus I2C thứ cấp có thể được kiểm tra định kỳ để đảm bảo Bus I2C này luôn sẵn sàng tiếp quản công việc nếu bus chính không hoạt động. Các thiết kế dạng này gia tăng độ bền cho thiết bị, cũng như gia tăng độ tin cậy, nhất là khi độ ổn định của thiết bị được đặt lên hàng đầu.
Cấu hình bus I2C dự phòng này tạo ra 2 bus I2C chứa các thiết bị độc lập, nó cũng rất hữu ích khi tổng thể thiết bị điều khiển cần gia tiếp với các thiết bị khác ở các chế độ khác nhau. Chẳng hạn như một số thiết bị sử dụng chế độ Fast Mode, trong khi số còn lại dùng Standard Mode.
Kết luận
Bài viết đã giới thiệu đến các bạn bộ đệm I2C và các ứng dụng của nó. Nó có thể được sử dụng đểm giảm dung lượng bus, tăng độ ổn định, tăng tốc độ, tăng thêm các thiết bị vào bus mà vẫn ổn định. Bộ đệm giúp các thiết bị giao tiếp hoạt động ở các điện áp khác nhau, hoặc sử dụng như một bus dự phòng. Hiểu cách hoạt động của bus I2C và khi nào cần sử dụng đến nó sẽ cung cấp các giải pháp đa dạng cho nhà thiết kế. Thiết kế tuyệt vời là sự kết hợp giữa kinh nghiệm, sự sáng tạo và sự thành thạo các nguyên tắc thiết kế cơ bản. Tôi hy vọng rằng sự hiểu biết của bạn về I2C bây giờ đã tốt hơn một chút và những thách thức thiết kế đi kèm với nó dường như ít khó khăn hơn.
Nguồn: Obit team
Các bạn truy cập xem bài viết gốc của tác giả tại đây
Bài viết các bạn có thể tham khảo:
- Hiệu ứng hall là gì? Cách cảm biến hall hoạt động?
- Tìm hiểu IC cảm biến dòng ACS712 và ứng dụng
- Đo dòng điện với cảm biến dòng ACS712