Cách tốt nhất để làm I2C / TWI trên một khoảng cách dài


9

Tôi có một dự án đòi hỏi phải thực hiện I²C / I2C / TWI trên một khoảng cách dài (30 đến 40 mét).

Tôi đã thấy một số người đề nghị giảm tốc độ xung nhịp xuống đâu đó khoảng 500 Hz, để giảm thiểu ảnh hưởng của điện dung của một dòng dài như vậy tôi giả sử? Các thành phần tôi đang sử dụng yêu cầu ít nhất là tốc độ xung nhịp 100 kHz tiêu chuẩn. Tôi đã thực hiện một số nghiên cứu sâu hơn và tìm thấy trong số các câu trả lời cho một câu hỏi khác, một gợi ý sử dụng bộ dịch chuyển mức P82B96. Trong biểu dữ liệu họ đưa ra các ví dụ về việc sử dụng chúng trên các vạch chẵn 100 mét:

I2C_longDistance

Tôi đã bắt gặp một cách khác để chuyển cấp thông qua một bảng đột phá từ adafbean , chỉ là một mosfet (bss138) với hai điện trở kéo lên (một cho mỗi bên / điện áp). Họ đã có ý tưởng từmột ghi chú ứng dụng từ NXP (AN10441) và hai trong số các kênh trên đó có thể được sử dụng như thế này:

dịch chuyển cấp độ mosfet

Bây giờ tôi tự hỏi: giải pháp nào là tốt nhất? Hoặc có một cái gì đó tôi đã bỏ qua? Ngoài ra, 5V có đủ để đảm bảo kết nối tốt không? Sẽ có một lợi thế khi sử dụng điện áp cao hơn như 12V?


Như đã viết, câu hỏi của bạn có thể quá rộng đối với định dạng của trang web này. Cố gắng thu hẹp câu hỏi của bạn xuống và làm cho nó rất cụ thể.
Joe Hass

Tôi đã thêm một bản tóm tắt, nó có đủ hẹp và cụ thể không?
DaJF

Bạn cũng nên chỉ định chiều dài dây tối đa cho các cảm biến và đưa ra ý tưởng về "chi phí thấp" có nghĩa gì với bạn. Bạn đang mong đợi để cung cấp năng lượng cho các cảm biến trên cùng một cáp?
Joe Hass

@JoeHass Bây giờ câu hỏi có đủ hẹp không? Nếu không, tôi cần phải làm gì hơn nữa?
DaJF

Xin chào, tôi biết đây là một câu hỏi cũ nhưng cuối cùng bạn đã làm gì? Tôi có chính xác câu hỏi tương tự như bạn, khoảng cách tương tự liên quan và tốc độ xung nhịp tối thiểu 100kHz. Tôi muốn biết những gì làm việc cho bạn, cảm ơn.
pcdev

Câu trả lời:


1

Tôi nghĩ rằng bạn đang đi đúng hướng với một cái gì đó như NXP P82B96. Nếu bạn nhìn vào Hình 14 và văn bản liên quan, biểu dữ liệu sẽ thảo luận về việc sử dụng chiều dài cáp lên tới 250 m với tốc độ dữ liệu trên 100 kHz.

Có nhiều cảm biến nhiệt độ I2C có sẵn có thể cung cấp cho bạn độ chính xác vài độ c mà không cần hiệu chuẩn và không có bất kỳ mạch tương tự nào được thêm vào. Vì dù sao bạn cũng đang mang dữ liệu trở lại để xử lý, việc lọc tiếng ồn sẽ rất dễ dàng.

Nếu bạn lo lắng về điện dung dây, bạn có thể tốt hơn với cặp xoắn không được che chở hơn là cáp được che chắn.


P82B96 có thể được thay thế bằng thay thế mosfet? Với giá của một chiếc P82B96, tôi có thể mua 100 bss138 theo nghĩa đen (tôi có thể cung cấp cho bạn các liên kết nếu bạn muốn). Thật vậy, như bạn đã nói, tôi đã tìm thấy thứ trông giống như một cảm biến nhiệt độ phù hợp: LM75A. Đối với sự lựa chọn giữa cáp được che chắn hoặc cáp không được che chắn, có vẻ như đó là vấn đề mà bạn muốn: nhiễu có thể (không được che chắn) hoặc điện dung đường dây (được che chắn), đây có phải là một giả định chính xác? Là một trong những nổi bật hơn so với người khác? Tôi không có ý tưởng làm thế nào để xác định điều này. Cảm ơn btw!
DaJF

Tôi không nghĩ rằng bạn có thể thay thế P82B96 bằng MOSFET cho các hàng dài. Có vẻ như IC lặp lại thực sự cung cấp một số khuếch đại, trong đó các MOSFET chủ yếu cung cấp sự thay đổi mức điện áp. Tôi e rằng tôi không chắc cách thực hiện cuộc gọi trên cáp ... bạn nên xem ghi chú ứng dụng NXP AN255. Họ nói về việc sử dụng dây cáp xoắn đôi nhưng không đề cập đến một lá chắn. Đối với tín hiệu số, nhiễu có thể là một vấn đề ít hơn so với điện dung.
Joe Hass

2

Bạn có thể có thể thoát khỏi các cảm biến DS18B20 bằng cách sử dụng CAT5 được bảo vệ hoặc cáp tương tự. Đó chỉ là các phép đo nhiệt, vì vậy nếu một số bài đọc bị hỏng, bạn có thể làm cho chương trình của mình đủ mạnh để đối phó với điều đó (dù sao đó cũng là cách thực hành tốt).

Để sử dụng chuỗi nhà hàng, tôi đã thiết kế các điều khiển được gọi là điều khiển RTU (đơn vị trên mái nhà) hoạt động trên nhiều cảm biến thụ động (chúng sử dụng nhiệt điện trở NTC có thể hoán đổi cho nhau , không cần hiệu chuẩn để sưởi ấm thoải mái). Việc lọc tiếng ồn ra khỏi cảm biến thụ động sẽ dễ dàng hơn nhiều. Một bộ cài đặt khác (một tổ hợp ô tô lớn ở Bắc Mỹ) đã sử dụng RTD bạch kim với bộ điều hòa tín hiệu - các thiết bị rất chính xác và ổn định. Trước tiên, bạn nên quyết định cảm biến, sau đó xem xét cách nó có thể được giao tiếp - bất kỳ tùy chọn cảm biến nào phù hợp với ứng dụng của bạn (mặc dù RTD có thể quá mức cần thiết).

Trong trường hợp không rõ ràng, tôi đề xuất cấu hình "sao" của các cảm biến xung quanh bộ xử lý của bạn.

Nếu bạn thực sự muốn sử dụng "xe buýt" (không phải là một dây hoặc I2C), bạn sẽ cần thông minh ở hai đầu, có nghĩa là bộ xử lý ở dạng nào đó. Nếu bạn đang đi toàn bộ, bạn có thể muốn xem xét sử dụng các cảm biến không dây giao tiếp qua một số băng tần ISM hợp pháp tại địa phương của bạn. Ngoài ra, bạn có thể sử dụng một cảm biến cho mỗi Pi và để chúng nói chuyện với nhau thông qua mạng nội bộ WiFi của bạn.


Ngay bây giờ tôi là giai đoạn "xác định mua gì", vì vậy, xe buýt hoặc cảm biến có thể xác định giai đoạn khác. Các yêu cầu duy nhất tôi có cho những thứ này là dễ sử dụng và có thể mở rộng. Lý do chọn xe buýt là tôi không thích chạy cáp đến từng cảm biến (đó là những gì bạn dường như đề xuất hoặc tôi đã hiểu "ngôi sao" sai?). I²C có phải là giao thức khả thi để sử dụng trên cáp có thể là 30M / 90FT không?
DaJF

Vâng, đó là những gì một "ngôi sao" - dây từ bộ điều khiển đến từng cảm biến. I2C ở độ cao 30m .. tốt .. Tôi đã nghe khẳng định rằng nó có thể ở tốc độ rất thấp, nhưng tôi sẽ không tin vào nó hoạt động tốt.
Spehro Pefhany
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.