Thiết kế xe buýt của riêng tôi


8

Câu hỏi này tiếp tục là câu hỏi trước đây của tôi: Các lựa chọn thay thế cho SPI vì EMI . Tôi đang chơi với ý tưởng thiết kế xe buýt truyền thông của riêng tôi. Tôi sẽ biết ơn nếu ai đó có thể đưa mắt qua thiết kế sơ bộ của tôi và nói cho tôi biết tôi đang điên ở đâu ...

Tôi hiện đang sử dụng SPI 2 MHz mang trên các dây dài 10cm đến bảy ADC trên các PCB riêng biệt (CS chia sẻ, nhưng mỗi ADC có dòng MISO riêng. Vấn đề là không có nhiều ADC với một xe buýt vi sai, vì vậy tôi tự hỏi liệu có thể thiết kế xe buýt của riêng tôi không. Ít nhất là lớp vật lý, và có thể cả giao thức nữa.

Mục tiêu thiết kế của xe buýt mới:

  • sử dụng các thành phần vật lý nhỏ
  • EMI thấp
  • không quá 4 dây dữ liệu (hai cặp)
  • băng thông> 300kbps từ mỗi ADC. (Tổng cộng 2,1mbps)

Trước khi bạn viết cho tôi như điên vì nghĩ về điều này, hãy xem xét rằng nó có thể không quá khó để thực hiện trên PSoC5 . Trên con chip đó, tôi chắc chắn có thể thiết kế giao thức của riêng mình trong Verilog và thực hiện nó trong phần cứng. Và ở một mức độ nào đó, tôi cũng có thể bao gồm các thành phần lớp vật lý. Hơn nữa, tôi có thể có bảy thứ này cùng một lúc, tất cả đều chạy song song trong bản gốc, một cho mỗi nô lệ để tôi có thể có được băng thông tổng thể tốt.

Và đây là ý tưởng sơ bộ của tôi:

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

Nó sẽ dựa trên I2C, được sửa đổi một chút để giúp nó kết nối với các thành phần lớp vật lý. Các dòng SDA và SCL bây giờ là các cặp vi sai. Cặp SDA có thuộc tính OR-ing. Điều này đạt được bằng cách sử dụng một pin chỉ có thể lái cao và một pin chỉ có thể lái thấp. Cặp SCL được điều khiển độc quyền bởi chủ. Tốc độ dữ liệu sẽ được tăng lên ít nhất 1mbps.

Master sẽ là một PSoC5 với 7 mô đun chủ. Các nô lệ cũng sẽ là PSoC5, với một mô đun nô lệ và sẽ sử dụng ADC tích hợp.

Suy nghĩ:

  • Không quá chắc chắn cách tốt nhất để thực hiện các điện trở kéo lên và các thành phần giới hạn tốc độ xoay.
  • Tôi cho rằng tôi không cần chấm dứt. Nếu tôi giới hạn tốc độ quay ở khoảng 80ns, thì nó sẽ tốt cho cáp dài 10cm.
  • Đó rõ ràng không phải là một bộ thu phát vi sai thích hợp. Có phải tôi đang lãng phí thời gian để cố gắng làm cho một người ra khỏi cổng?
  • Những cổng Không gây ra một số sai lệch. Nó có khả năng là một vấn đề?

Có lẽ LVDS là đáng xem nếu bạn muốn tín hiệu khác biệt?
Saad

Tôi không nghĩ rằng tôi đã thấy bất kỳ thiết bị nô lệ kiểu I2C nào có đầu vào và đầu ra SDA riêng biệt. Ngoài ra, nếu bạn đang sử dụng nô lệ I2C dựa trên bộ vi xử lý, bạn phải cho phép nô lệ giữ SCK ở mức thấp để chủ nhân có thể nhìn thấy nó (chủ sau đó sẽ giữ việc gửi bit tiếp theo cho đến khi nô lệ phát hành SCK). Mặt khác, nếu chủ nhân gửi dữ liệu mà không đợi nô lệ sẵn sàng, mọi thứ sẽ thất bại nặng nề. Ngoài ra, bạn có thể sử dụng SPI và chỉ sử dụng các giá trị byte nhất định để gửi dữ liệu (vì vậy mỗi byte dữ liệu "thực" sẽ được truyền dưới dạng hai byte). Nếu bạn làm điều đó ...
supercat

... vì hầu hết các triển khai SPI sẽ giảm bội số của toàn bộ byte trong trường hợp dữ liệu bị tràn / tràn, bạn có thể phát hiện chủ khi nô lệ không thể theo kịp và truyền lại từng byte cho đến khi nô lệ có thể thừa nhận chúng.
supercat

Câu trả lời:


4

Chà, nếu bạn sắp có PSoC5, tôi mới đọc về IEEE 1355 . Biến thể liên kết tín hiệu DS-SE-02 có thể làm những gì bạn muốn. Nó gọi 4 đường tín hiệu: một đường dữ liệu và một đường nhấp nháy theo mỗi hướng. Phần cứng chuyên dụng duy nhất tôi có thể thấy rằng thực hiện 1355 là thiết bị Spacewire được làm cứng bằng rad , nhưng bài thuyết trình này của IEEE tuyên bố rằng nó có thể được thực hiện trên một FPGA với 1/3 cổng của UART và hoạt động với tốc độ nhanh hơn 100 lần so với UART .

Một bản sao công khai của tiêu chuẩn đầy đủ có sẵn với CERN nếu bạn muốn đọc một chút về ánh sáng. Tôi chưa có cơ hội ngồi xuống với toàn bộ, vì vậy tôi không thể nói về hiệu suất EMI của nó. Nhìn qua phần DS-SE, có vẻ như bạn phải kiểm soát trở kháng trong đường truyền và chấm dứt ở đầu nhận.


Cảm ơn ý tưởng này. Nghe thú vị. Bất cứ điều gì được gọi là Spacewire là tốt với tôi. Tôi sẽ xem ngay bây giờ ...
Rocketmagnet

4

Bạn đã cân nhắc sử dụng RS485 chưa?

Hiện đã có nhiều thành phần được thiết kế để hoạt động trên các xe buýt RS485.


Vâng, tôi đã nghĩ về nó. Đó chắc chắn là một lựa chọn. Tôi không nghĩ họ làm OR-ing, nhưng chủ có thể truyền không đồng bộ trên một cặp, trong khi các nô lệ thay phiên nhau trên cặp kia. Vấn đề duy nhất là tôi không thể tìm thấy các máy thu phát thực sự nhỏ. Tôi đã đề cập rằng tôi tuyệt vọng chặt chẽ về không gian.
Rocketmagnet

2
Là SOIC 8 quá lớn cho bạn yêu cầu? Gần đây tôi đã xem xét sử dụng bộ thu phát Intersil ISL83485IBZ hoặc bộ thu phát SN65HVD11D của Texas cho một trong các dự án của tôi. Cả hai đều có gói SOIC 8.
Bruno Ferreira

@Bruno - SOIC-8, bạn đang đùa à? :-) PCB có kích thước 11 mm x 13 mm .
stevenvh

@stevenvh Không để ý kích thước của câu hỏi khác. Tôi cho rằng gói MSOP không giải quyết được vấn đề của bạn. Nếu vậy, có lẽ bạn có thể sử dụng ADM1485
Bruno Ferreira
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.