Giao tiếp giữa nhiều bộ vi điều khiển


20

Tôi muốn bắt đầu triển khai một hệ thống bao gồm N vi điều khiển (N> = 2 MCU), nhưng tôi muốn biết các khả năng để cho phép chúng giao tiếp với nhau.

Lý tưởng nhất là các bộ vi điều khiển (N-1) được đặt bên trong ngôi nhà đóng vai trò là khách hàng, trong khi bộ vi điều khiển cuối cùng ("máy chủ") được kết nối với PC thông qua USB. Vấn đề tôi gặp phải bây giờ là làm thế nào để kết nối các bộ vi điều khiển (N-1) này với "máy chủ". MCU khách hàng thực hiện các tác vụ rất đơn giản, do đó, có thể không phải là một giải pháp tốt để sử dụng ARM để thực hiện các công việc đơn giản như vậy chỉ vì chúng cung cấp CAN / PHY-MAC .

Giao tiếp sẽ không xảy ra nhiều hơn một lần trong hầu hết các thiết bị và theo yêu cầu cho người khác. Tốc độ không quá quan trọng (tin nhắn ngắn): 1 Mbit / s Tôi nghĩ là CÁCH quá mức cho mục đích của tôi.

MCU tôi dự định sử dụng là như sau.

  • Atmel AVR Tiny / Mega
  • TI MSP430
  • ARM Cortex M3 / M4
  • (Có thể là Atmel AVR UC3 - 32-bit)

Tôi muốn tránh PIC nếu có thể (lựa chọn cá nhân), đơn giản vì có ít khả năng lập trình chúng hơn (tất cả các công cụ trên có ít nhiều công cụ nguồn mở cũng như một số công cụ chính thức).

Tôi biết một số ARM cung cấp chức năng CAN và không chắc chắn về những cái khác.

Ngay bây giờ tôi đã đưa ra những khả năng này:

  1. GPIO đơn giản để gửi dữ liệu (giả sử> 16 bit ở mức CAO để biểu thị bắt đầu tin nhắn,> 16 bit ở mức THẤP để biểu thị kết thúc tin nhắn). Tuy nhiên, nó phải ở tần số chuẩn << (tần số_client, tần số máy chủ) để có thể phát hiện tất cả các bit. Chỉ cần một cáp cho mỗi MCU khách hàng.
  2. RS-232 : Tôi nghĩ rằng đây là giao thức truyền thông được sử dụng phổ biến nhất, nhưng tôi không biết nó có quy mô như thế nào. Tôi đang xem xét tới 64 MCU khách hàng ngay bây giờ (có thể muộn hơn)
  3. USB: AFAIK nó giống như RS-232, nhưng tôi không nghĩ nó có khả năng mở rộng rất tốt trong trường hợp này (mặc dù USB hỗ trợ rất nhiều thiết bị - 255 nếu tôi nhớ chính xác - nó có thể quá phức tạp cho ứng dụng này)
  4. RJ45 / Ethernet: đây là thứ tôi thực sự thích sử dụng, vì nó cho phép truyền qua khoảng cách xa mà không gặp vấn đề gì (ít nhất là với cáp được bảo vệ> cáp Cat 6 ). Vấn đề là chi phí (PHY, MAC, máy biến áp, ...). Tôi không biết nếu bạn thực sự có thể hàn nó tốt ở nhà mặc dù. Bằng cách này, tôi sẽ không cần MCU khách hàng
  5. Wireless / ZigBee : các mô-đun rất đắt tiền, mặc dù đó có thể là cách để tránh "spaghetti" phía sau bàn
  6. Các mô-đun / thu phát RF: Tôi đang nói về những người trong dải tần 300 MHz - 1 GHz, vì vậy chúng sẽ khó hàn ở nhà. Các mô-đun đều được tích hợp sẵn, nhưng chúng khá đắt như ZigBee (ít nhất là các mô-đun của RF tại Mouser, tại Sparkfun dường như có những cái rẻ hơn).
  7. CÓ THỂ? Nó có vẻ là rất mạnh mẽ. Mặc dù tôi không có kế hoạch sử dụng nó trong các ứng dụng ô tô, nó vẫn có thể là một lựa chọn tốt.
  8. I²C / SPI / UART ? Một lần nữa - tốt hơn nên tránh "spaghetti" với các dây cáp nếu có thể
  9. PLC không thực sự là một lựa chọn. Hiệu suất giảm khá nhanh khi chiều dài tăng và phụ thuộc vào tải điện dung của mạng điện. Tôi nghĩ rằng giá cả cũng giống như Ethernet.

Hơn nữa, giao thức nào sẽ "tốt hơn" trong trường hợp truyền đồng thời (giả sử trường hợp hiếm hoi là ngay lập tức hai thiết bị bắt đầu truyền: giao thức nào cung cấp "hệ thống quản lý xung đột" / "hệ thống quản lý xung đột" tốt nhất?

Tóm lại : Tôi muốn nghe điều gì có thể là giải pháp tốt nhất cho hệ thống máy khách phân tán thực hiện giao tiếp dữ liệu rất nhẹ, xem xét cả tính linh hoạt (số lượng thiết bị tối đa, hệ thống quản lý xung đột / xung đột, ...), giá cả , dễ dàng thực hiện tại nhà (hàn), ... Tôi muốn tránh chi 20 đô la cho chỉ mô-đun giao tiếp, nhưng đồng thời có 30 dây phía sau bàn sẽ hút.

Giải pháp tôi đang hình ảnh ngay bây giờ là thực hiện giao tiếp cơ bản giữa các MCU gần bằng GPIO hoặc RS-232 ( giá rẻ !) Và sử dụng Ethernet / ZigBee / Wi-Fi trên một MCU trên mỗi "vùng" để liên lạc với máy chủ ( đắt tiền , nhưng nó vẫn rẻ hơn rất nhiều so với một mô-đun Ethernet trên mỗi MCU của máy khách).

Thay vì cáp, nó cũng có thể sử dụng sợi quang / sợi quang. Mặc dù các chuyển đổi bổ sung là cần thiết và tôi không chắc liệu đó có phải là giải pháp tốt nhất trong trường hợp này hay không. Tôi muốn nghe thêm chi tiết về họ.


2
Có PIC có chức năng CAN và có các công cụ chính thức miễn phí để lập trình chúng với tài liệu.
AndrejaKo

@AndrejaKo PIC không thực sự có trình biên dịch mã nguồn mở như AVR hoặc ít nhất là MSP430. Đúng là họ thường cung cấp nhiều tính năng hơn MCU mà tôi đã liệt kê ở trên với cùng mức giá. Tôi thực sự không thích những khác biệt lớn này giữa các gia đình 12/16/18/24/32 và một số trong số họ không có trình biên dịch miễn phí nào cả (tôi nghĩ đó là PIC18).
dùng51166

2
Trên thực tế PIC18 có trình biên dịch miễn phí và những người khác cũng vậy. Phần thưởng chính của các gia đình khác là họ làm việc với GCC. Trong trại nguồn mở, có trình biên dịch C thiết bị nhỏ hỗ trợ các thiết bị PIC 16 và PIC 18.
AndrejaKo

2
Nếu bạn chưa có kinh nghiệm với bất kỳ uC nào bạn đã đề cập, hãy cảnh báo rằng ARM khó bắt đầu hơn nhiều so với PIC hoặc AVR, đặc biệt nếu bạn muốn truy cập nguồn mở. Với ARM, các nhà cung cấp không thiết kế lõi và thường không cung cấp IDE, điều này có thể khiến mọi thứ phức tạp hơn một chút. Thật tuyệt khi có ví dụ như Microchip cung cấp và hỗ trợ mọi thứ trong trường hợp PIC.
Oli Glaser

@OliGlaser Chà ... trong khi sự thật là các công cụ nguồn mở cho ARM có thể hơi khó sử dụng (Tôi đã thử một bảng khám phá STM32 và nó không hoạt động tốt), nhiều nhà cung cấp cung cấp một IDE - với ưu và nhược điểm của nó - dựa trên nhật thực và giới hạn miễn phí: LPCXpresso (NXP) và Code Composer Studio (TI) chẳng hạn (không phải là nguồn mở, nhưng ít nhất chúng được hỗ trợ). Mặt khác, các máy hỗ trợ khá tốt được hỗ trợ ở phía nguồn mở, cũng như trong ATMEL STUDIO 6. Không có kinh nghiệm gì với PIC. Chỉ mã hóa AVR (trình biên dịch mã) và ARM (C, trên NDS).
dùng51166

Câu trả lời:


22

CAN âm thanh áp dụng nhất trong trường hợp này. Khoảng cách bên trong một ngôi nhà có thể được xử lý bởi CAN với tốc độ 500 kbits / giây, nghe có vẻ nhiều băng thông cho nhu cầu của bạn. Nút cuối cùng có thể là giao diện USB sang CAN. Điều đó cho phép phần mềm trong máy tính gửi tin nhắn CAN và xem tất cả các tin nhắn trên xe buýt. Phần còn lại là phần mềm nếu bạn muốn trình bày nó với thế giới bên ngoài như một máy chủ TCP hoặc một cái gì đó.

CAN là phương tiện liên lạc duy nhất mà bạn đã đề cập thực sự là một chiếc xe buýt, ngoại trừ việc tự di chuyển bằng các đường I / O. Tất cả những cái khác là điểm tới điểm, bao gồm ethernet. Ethernet có thể được tạo ra để trông giống như một chiếc xe buýt với các bộ chuyển mạch, nhưng các kết nối riêng lẻ vẫn được điểm tới điểm và có được cấu trúc liên kết bus logic sẽ rất tốn kém. Chi phí phần sụn trên mỗi bộ xử lý cũng nhiều hơn đáng kể so với CAN.

Phần hay của CAN là các lớp giao thức thấp nhất được xử lý trong phần cứng. Ví dụ, nhiều nút có thể cố gắng truyền cùng một lúc, nhưng phần cứng đảm nhiệm việc phát hiện và xử lý các va chạm. Phần cứng đảm nhiệm việc gửi và nhận toàn bộ các gói, bao gồm cả việc tạo và xác nhận tổng kiểm tra CRC.

Lý do của bạn để tránh PIC không có ý nghĩa gì. Có rất nhiều thiết kế cho các lập trình viên ngoài kia để xây dựng của riêng bạn. Một là LProg của tôi , với sơ đồ có sẵn từ dưới cùng của trang đó. Tuy nhiên, việc xây dựng của riêng bạn sẽ không có hiệu quả về chi phí trừ khi bạn coi trọng thời gian của mình ở mức một xu / giờ. Nó cũng không chỉ là về lập trình viên. Bạn sẽ cần một cái gì đó hỗ trợ với gỡ lỗi. Microchip PicKit 2 hoặc 3 là những lập trình viên và trình gỡ lỗi có chi phí rất thấp. Mặc dù tôi không có kinh nghiệm cá nhân với họ, tôi nghe thấy những người khác sử dụng chúng thường xuyên.

Thêm:

Tôi thấy một số đề xuất cho RS-485, nhưng đó không phải là ý kiến ​​hay so với CAN. RS-485 là một tiêu chuẩn chỉ dùng điện. Đây là một bus khác biệt, do đó cho phép nhiều nút và có khả năng chống ồn tốt. Tuy nhiên, CAN có tất cả những điều đó, cộng với nhiều hơn nữa. CAN cũng thường được thực hiện như một xe buýt vi sai. Một số ý kiến ​​cho rằng RS-485 đơn giản để giao tiếp với điện. Điều này đúng, nhưng CAN cũng vậy. Dù bằng cách nào một con chip làm điều đó. Trong trường hợp CAN, MCP2551 là một ví dụ điển hình.

Vì vậy, CAN và RS-485 có khá nhiều lợi thế giống nhau về mặt điện. Ưu điểm lớn của CAN là ở trên lớp đó. Với RS-485 không có gì ở trên lớp đó. Bạn sẽ phải tự mình. Có thể thiết kế một giao thức liên quan đến trọng tài xe buýt, xác minh gói, thời gian chờ, thử lại, v.v., nhưng để thực sự có được quyền này thì khó khăn hơn nhiều so với hầu hết mọi người nhận ra.

Giao thức CAN xác định các gói, tổng kiểm tra, xử lý va chạm, thử lại, v.v. Không chỉ đã có sẵn và nghĩ ra và thử nghiệm, nhưng lợi thế thực sự lớn là nó được triển khai trực tiếp trên silicon trên nhiều bộ vi điều khiển. Các giao diện phần sụn cho thiết bị ngoại vi CAN ở mức độ gửi và nhận gói. Để gửi, phần cứng thực hiện phát hiện colllision, backoff, retry và CRC. Để nhận, nó thực hiện phát hiện gói, điều chỉnh độ lệch của đồng hồ và xác thực tổng kiểm tra CRC. Có, thiết bị ngoại vi CAN sẽ mất nhiều phần sụn hơn so với UART, như thường được sử dụng với RS-485, nhưng tổng thể sẽ mất ít mã hơn vì silicon xử lý rất nhiều chi tiết giao thức cấp thấp.

Nói tóm lại, RS-485 là từ thời kỳ cũ và không có ý nghĩa gì đối với các hệ thống mới ngày nay. Vấn đề chính dường như là những người đã sử dụng RS-485 trong quá khứ bám vào nó và nghĩ rằng CAN là "phức tạp" bằng cách nào đó. Các mức CAN thấp rất phức tạp, nhưng bất kỳ triển khai RS-485 có thẩm quyền nào cũng vậy. Lưu ý rằng một số giao thức nổi tiếng dựa trên RS-485 đã được thay thế bằng các phiên bản mới hơn dựa trên CAN. NMEA2000 là một ví dụ về tiêu chuẩn dựa trên CAN mới hơn như vậy. Có một tiêu chuẩn ô tô khác là J-J1708 (dựa trên RS-485) hiện đã bị lỗi thời khá nhiều với OBD-II và J-1939 dựa trên CAN.


xây dựng bảng tùy chỉnh của riêng tôi rất hữu ích khi tích hợp MCU với phần cứng có xung quanh nó. Đối với mục đích phát triển, tôi đồng ý một bộ phát triển là một cách tốt hơn. Lý do của tôi để tránh PIC là thiếu trình biên dịch mã nguồn mở (có một số miễn phí, nhưng không phải cho PIC18) thay vì thiếu sơ đồ có sẵn công khai, mặc dù chúng cung cấp một số tính năng bổ sung mà bạn không thể tìm thấy trong các MCU khác (Ethernet, CÓ THỂ, ...). Và I2C là xe buýt AFAIK.
dùng51166

@ user51166 - Có trình biên dịch PIC18 miễn phí được cung cấp bởi microchip. Xem trang sản phẩm Trình biên dịch MPLAB XC . Nó cũng liệt kê các trình biên dịch cho uC 16 bit và 32 bit.
PetPaulsen

@ user51166 Cũng có trình biên dịch C18 miễn phí .
AndrejaKo

@PetPaulsen Lạ. Tôi khá chắc chắn rằng tôi đã thấy một tháng trước, một trang liệt kê tất cả các trình biên dịch có sẵn để tải xuống (PIC16 / 24/32), ngoại trừ PIC18 không phải do vấn đề cấp phép mà họ gặp phải. Có lẽ điều đó đã được giải quyết với Trình biên dịch MPLAB C chuyển đổi -> Trình biên dịch MPLAB XC mặc dù tôi không chắc chắn. Hơn nữa, họ "chỉ" cung cấp một phiên bản phần mềm miễn phí không tối ưu hóa mã của bạn, không phải là trình biên dịch mã nguồn mở hoàn toàn. Vẫn tốt hơn không có gì;)
user51166

@user: Tôi tin rằng tất cả các trình biên dịch Microchip có các phiên bản miễn phí chỉ khác với các trình biên dịch đầy đủ ở chỗ một số tối ưu hóa bị vô hiệu hóa. Trình biên dịch, thủ thư, trình liên kết và trình giả lập đều được bao gồm trong gói MPLAB miễn phí. Thực sự không có vấn đề ở đây.
Olin Lathrop

6

Tôi muốn giới thiệu bộ điều khiển với CAN vì tính năng này có nghĩa chính xác cho mục đích kết nối mạng của bộ điều khiển.

RS232 có thể được thực hiện dễ dàng nhưng sẽ gặp khó khăn thực sự nếu bạn cố gắng thực hiện giao tiếp nhiều hơn 2 nút (vì nó không được xây dựng cho mục đích này).

Ethernet cũng có thể là một lựa chọn ngọt ngào vì bạn đã đề cập đến một số kết nối máy chủ và máy khách, điều này là tự nhiên đối với việc triển khai Ethernet.


Những lợi thế của CAN qua Ethernet chẳng hạn là gì? Có thể rẻ hơn, nhưng ngoài điều đó, những gì khác?
dùng51166

@ user51166 - CAN không chỉ rẻ hơn mà còn rẻ hơn nhiều . Nó không chỉ dễ dàng hơn, mà còn dễ dàng hơn nhiều .
Rocketmagnet

@Rocketmagnet: vui lòng giải thích thêm một chút. Trong hầu hết các trường hợp, bạn vẫn cần một IC tích hợp (mặc dù PIC và ARM và các loại khác thường tích hợp tính năng CAN, chúng hơi đắt). Từ quan điểm phần cứng, tôi không thấy làm thế nào điều này có thể rẻ hơn nhiều vì các IC có thể được tìm thấy với giá 0,5-1,0 đô la một mảnh. Tôi cho rằng bạn có nghĩa là dễ dàng hơn từ quan điểm phần mềm, phải không? CAN có thể có khoảng cách tối đa ~ 500 mét, điều này chắc chắn là đủ trong trường hợp của tôi, nhưng - chỉ cần thông tin - sẽ có những lựa chọn thay thế tương tự cho khoảng cách xa hơn (có thể là cáp quang)?
dùng51166

4

RS-485 sử dụng nhiều dây có thể hoạt động tốt ở đây, nếu có khả năng nối cùng một dây với tất cả các thiết bị.

Ví dụ, nếu nó được sử dụng với cáp mạng loại 5e truyền thống, bạn có thể có hai cặp để truyền dữ liệu theo cả hai hướng (sử dụng mô-đun song công hoàn toàn), có một cặp hoặc thậm chí là một dây làm mặt bằng chung và phần còn lại để đàm phán thiết bị nào sẽ truyền trong thời điểm nào. RS-232 phức tạp hơn một chút, nhưng các mô-đun rẻ hơn CAN và Ethernet và giới hạn cáp là 1200 m. Nhược điểm là bạn sẽ phải tạo giao thức giải quyết xung đột của riêng mình. Có thể có thiết bị muốn truyền kiểm tra một dây chuyên dụng và xem nó có cao không. Nếu không, hãy đưa nó lên cao và bắt đầu liên lạc và nếu có, hãy đợi trong một khoảng thời gian ngẫu nhiên. Tôi vẫn không chắc điều này sẽ hoạt động tốt như thế nào trên quãng đường dài.


Không phải lo lắng về khoảng cách quá dài, tôi không có kế hoạch đi hơn 100m vào lúc này.
dùng51166

Tại sao BTW ngày nay stackexchange không chấp nhận @ <tên người dùng>? Mỗi lần tôi đặt, nó sẽ bị xóa hoàn toàn (không chỉ là biểu tượng @) ...
user51166

@ user51166 - Người tạo câu trả lời sẽ tự động được thông báo, do đó "\ @ - tiếng ồn" sẽ tự động bị xóa. (\ \ User51166 của tôi không bị xóa, vì bạn không phải là người tạo ra câu trả lời này)
PetPaulsen

Điều thú vị là tôi đã không nhận được thông báo cho bất kỳ ý kiến ​​nào ở đây.
AndrejaKo

4

Tôi sẽ chọn xe buýt RS-485 hoạt động với dữ liệu Mã hóa Manchester .

RS-485 vì:

  • Rẻ
  • Dễ thực hiện
  • Là sử dụng lo điện
  • Cho phép khoảng cách xa (lên đến 1200 mét)
  • Tốc độ dữ liệu cao (tối đa 10 Mb / giây)
  • Khả năng miễn dịch cao
  • Có những bộ thu phát cho phép tối đa 256 thiết bị trên cùng một xe buýt
  • Số phần thấp

Mã hóa Manchester vì:

  • Dễ thực hiện
  • Tự đồng bộ

Đối với tính toàn vẹn dữ liệu, thông báo có thể bao gồm độ dài và trường CRC.

Ví dụ về hàm CRC:

unsigned char crc_calc(unsigned char buffer[], unsigned short size)
{
  unsigned long i;
  unsigned char crc;

  crc = CRC_INIT;

  for (i=0;i<size * 8;i++)
  {
    crc = (crc << 1) | (crc >> (7));

    if (buffer[i/8] & (0x80 >> (i%8)))
    {
      crc ^= CRC_POLY;
    }
  }

  return crc;
}

CRC_INITCRC_POLYlà các giá trị tùy ý được sử dụng để tính CRC.

Ví dụ về một thông báo có các trường độ dài và CRC:

Ví dụ tin nhắn


Bất kỳ đề nghị cho các máy thu phát tốt như vậy, có thể giá rẻ?
dùng51166

Hơn nữa, như @AndrejaKo đề xuất RS-485 dường như không cung cấp giao thức giải quyết xung đột.
dùng51166

Việc lựa chọn máy thu phát phụ thuộc vào điện áp bạn định sử dụng. Việc giải quyết xung đột phải được thực hiện trong phần mềm với kiểm tra CRC, giám sát đường dây hoặc cả hai.
Bruno Ferreira

Nếu bạn có một chủ, bạn cũng có thể thực hiện một số loại địa chỉ hoặc truyền theo lượt.
Bruno Ferreira

Không thực sự là một bậc thầy. Chỉ là "máy chủ" hoạt động như một giao diện với PC thông qua USB. Tuy nhiên, khách hàng phải tự động gửi tin nhắn cho anh ấy ...
user51166 15/07/12

3

Hãy để tôi so sánh lựa chọn ưa thích của bạn, Ethernet, với lựa chọn ưa thích của tôi, CÓ THỂ.

Các thành phần cần thiết:

  • Ethernet: Đầu nối RJ45, từ tính, chip Phy (trừ khi được tích hợp vào MCU). Cũng cần các công tắc và cáp từ công tắc đến từng nút. Mỗi PCB cần khá nhiều tụ điện và điện trở kết thúc, có thể cả ferrites nữa. Cần thiết kế PCB tốt.
  • CAN: Chip thu phát (giá rẻ), bất kỳ đầu nối, cáp giá rẻ nào cũng có thể nhảy từ nút này sang nút tiếp theo trong một vòng quanh trang web. Chỉ cần một tụ điện cho bộ thu phát và một điện trở kết thúc ở mỗi đầu của xe buýt.

Bạn đang nói về vi điều khiển $ 1. Chi phí xe buýt nhiều hơn MCU. Bạn sẽ phải cộng tổng chi phí của từng giải pháp để biết cái nào thực sự rẻ hơn. Thêm chi phí của MCU, đầu nối, bộ thu phát, linh kiện thụ động, PCB, cáp, v.v.


0

LPC11C24 từ NXP cũng đã tích hợp bộ thu phát CAN và CANOpen được hỗ trợ trong ROM (không ăn mất dữ liệu Flash 32 K của bạn). Bảng LPCXpresso 11c24 là 20 EUR (đã cung cấp không gian cho đầu nối DB9), vì vậy bạn thực sự chỉ cần thêm dây :-)


0

Đăng lại từ một câu hỏi tương tự khác. Chi phí thấp giao tiếp đơn giản giữa hai vi điều khiển

TLDR : Không đặc biệt rẻ nhưng phù hợp đáng tin cậy trong một số trường hợp sử dụng.

Nhìn bên ngoài hộp, có thể có một số giải pháp khác ở đây, chẳng hạn như con chip mà tôi đã va vào gần đây. Tất nhiên, tất cả phụ thuộc vào những gì bạn muốn làm. Một cái gì đó giống như UART xuất hiện trong tâm trí nếu bạn có cả hai MCU trên cùng một bảng hoặc thậm chí có kế hoạch bảo vệ chúng bằng tay nếu được tách ra.

Giải pháp tổng thể và thiết bị cho các ứng dụng IO-Link

L6360   Master
L6362A  Device

nhập mô tả hình ảnh ở đây

Khi nào bạn sẽ xem xét một giải pháp như thế này:

  1. Các chip biên giới được bảo vệ hoàn toàn, điều này rất quan trọng nếu bạn có mỗi MCU trên một bảng riêng biệt và xử lý các chân tiếp xúc, ví dụ như đầu nối vít.
    • Đảo cực
    • Quá tải với chức năng cắt
    • Nhiệt độ quá cao
    • Thiếu điện áp và quá điện áp
    • Dây mở GND và VCC
  2. Khả năng tương tác. Nếu ai đó sẽ thiết kế phía bên kia, tất cả những gì anh ta cần biết là chuyển dữ liệu qua IO-Link.
  3. Điều chỉnh tích hợp Vcc(in) 7~30v, Vdd(out) 3.3/5v

Nghe có vẻ thú vị đối với tôi, vì vậy tôi nghĩ tôi sẽ đưa nó ra khỏi đó.


-3

Nó phụ thuộc vào quy mô của ứng dụng của bạn và vi điều khiển của bạn. Bạn đã đề cập đến Atmel tiny / mega, chúng khá nhỏ. Trong trường hợp của họ, I2C / SPI / UART có lợi thế là chúng được triển khai trong phần cứng và do đó rất dễ sử dụng.


3
OK, nhưng làm thế nào để giải quyết vấn đề của OP? IIC là một chiếc xe buýt, nhưng thực sự không phù hợp với tất cả các khoảng cách xa như đi ngang qua một ngôi nhà. Nó là kết thúc duy nhất và trở kháng tương đối cao. SPI là một chiếc xe buýt, nhưng được điều khiển bởi một chủ duy nhất với một dòng chọn nô lệ riêng cho mỗi thiết bị. Bạn có thể triển khai mỗi dòng dưới dạng một cặp vi sai với trình điều khiển và bộ thu dòng, nhưng bạn vẫn có vấn đề điểm chính đối với chủ đề chọn nô lệ. UART là đúng điểm. Không rõ bạn dự định sử dụng những thứ này như thế nào trong tình huống của OP.
Olin Lathrop
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.