So sánh việc thực hiện một thiết kế tự động đơn giản trên MCU so với một FPGA / CPLD


8

Tôi đã làm việc với MCU từ những năm 90 và gần đây tôi đã mạo hiểm tham gia vào lĩnh vực đồ họa với các chip dòng Spartan6 của Xilinx. Giả sử một thiết kế tự động hóa nhà máy đơn giản với các cảm biến và động cơ, và một số thông minh để liên kết mọi thứ với nhau, trên loại thiết bị nào tôi có thể hoàn thành thiết kế nhanh hơn và dễ dàng hơn, MCU hay FPGA? Điểm nhỏ hoặc "rõ ràng" cũng được đánh giá cao vì nói chung tôi chưa quen với FGPA.


Ngay cả một giải pháp FPGA gần như chắc chắn cũng sẽ liên quan đến một bộ xử lý, hoặc bên cạnh FPGA, được triển khai bên trong nó, hoặc trong một máy tính lớn hơn được kết nối. Các cấu trúc chương trình được lưu trữ chỉ nhắm mục tiêu dễ dàng hơn để thực hiện các phần phức tạp của thuật toán so với logic chuyên dụng hoặc máy trạng thái, vì vậy bạn chỉ lưu sau này cho những thứ phải nhanh (hoặc song song ồ ạt) nhưng đơn giản.
Chris Stratton

Câu trả lời tuyệt vời từ richard & Martin dưới đây. Có thể rất hấp dẫn khi cố gắng áp dụng một kỹ năng hoặc công nghệ mới học được cho vấn đề tiếp theo, nhưng trong trường hợp này (vì những lý do được các quý ông mô tả ở trên) tôi nghĩ rằng MCU là con đường để đi.
Radian

Câu trả lời:


11

Không có lý do để sử dụng các GPU trừ khi bạn cần . Ngay cả hai kỹ sư tài năng tương tự trong các lĩnh vực MCU và FPGA cũng sẽ sử dụng MCU cho một nhiệm vụ tự động hóa tương đối đơn giản.

MCU chuyên nghiệp:

  • MCU thường có tất cả các thiết bị ngoại vi với thế giới bên ngoài sẵn sàng hoạt động
  • Quá trình biên dịch mất vài giây (FPGA mất vài phút đến vài giờ)
  • Có một số lượng lớn (hoặc hai!) Nhiều kỹ sư có thể giúp đỡ, hoặc chọn nơi bạn rời đi. (Để giải trí, không nhất thiết phải có giá trị thống kê, so sánh - so sánh số lượng Q & A trên Stack Overflow cho C vs VHDL hoặc FPGA )

Sử dụng một FPGA nếu bạn phải bởi vì:

  • Yêu cầu số giòn không thể được đáp ứng trong ngân sách công suất, trọng lượng, kích thước hoặc chi phí với bộ vi xử lý
  • Có những thời hạn thực tế khó có thể được đảm bảo bằng phần mềm (ví dụ thời gian phản hồi trong vương quốc micro giây)
  • Sử dụng logic Logic có thể giúp dễ dàng đưa ra các xác nhận mạnh mẽ về thời gian phản hồi
  • Bạn có thể tiết kiệm lớn về chi phí, năng lượng, v.v. bằng cách sử dụng các loại dữ liệu tùy chỉnh (ví dụ như dấu phẩy động 12 bit chẳng hạn)

Hoặc là:

  • Nhiệm vụ của bạn cho bạn biết bạn phải :)

+1 Đối với viên đạn thứ 3 với "một thứ tự cường độ (hoặc hai!) Nhiều kỹ sư có thể giúp đỡ". Lần trước tôi đã sử dụng tiêu chí này, nó là để chọn ngôn ngữ lập trình.
Nick Alexeev

5

Một vài lý do tại sao tôi tin rằng sử dụng vi điều khiển (MCU) sẽ dễ dàng hơn cho bạn:

  • Bạn có kinh nghiệm với MCU. Học các phần mở rộng của bất kỳ chip mới nào cũng cần có thời gian.
  • MCU có các thiết bị ngoại vi sẵn có mà bạn sẽ phải tự thực hiện (hoặc mua) trên một đồ họa. Ví dụ, hầu hết các MCU đều có cổng I2C sẽ hữu ích nếu bạn đọc từ cảm biến I2C. Ngoài ra, hầu hết các MCU đều có một số loại bộ chuyển đổi tương tự sang bộ chuyển đổi số và bộ điều chế độ rộng xung, cả hai đều rất có thể sẽ cần thiết cho việc điều khiển động cơ tốt.
  • Các thuật toán phức tạp dễ thể hiện bằng C hơn trong VHDL (Tôi không có kinh nghiệm về Verilog).
  • Độ trễ ở quy mô con người rất dễ dàng trong MCU, nhưng lấy tài nguyên quan trọng trong một đồ họa.
  • Đối với tự động hóa nhà máy đơn giản, độ rộng bit ngắn, tiêu chuẩn và tốc độ chậm của MCU rất có thể là đủ.

Trong cả hai trường hợp, cần phải cẩn thận với mã bạn viết, để nó hoạt động đúng trong mọi tình huống, đặc biệt là các điều kiện nguy hiểm.

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.