fpga và microcontroller-cái nào phù hợp hơn với nhu cầu của bạn

Photo of author

By Lisa chen

bạn có thích tạo ra các hệ thống tương tác và nhúng?

các fpga và các bộ điều khiển vi mạch là hai sản phẩm được sử dụng nhiều nhất cho các kỹ sư điện hay những người đam mê. Cả hai đều có thể được lập trình để thực hiện một số chức năng.

nếu bạn biết những điều cơ bản, khả năng là vô hạn; chúng ta sẽ xem xét chúng dưới đây. nhưng trước khi chúng ta bắt đầu, bạn có biết sự khác biệt là gì không?

Hiểu sự khác biệt giữa FPGAs, microprocessors và microcontroller là rất quan trọng để chọn đúng thiết bị cho dự án của bạn.

Chúng tôi đã chuẩn bị một hướng dẫn chi tiết về sự khác biệt giữa các bộ phận khác nhau để dự án của bạn có thể thành công và hiệu quả.

1, FPGA

1.1 FPGA là gì?

fpga là viết tắt của mạng lưới cửa tự động và là một mạch tích hợp. các kỹ sư hoặc nhà thiết kế có thể được lập trình sau khi sản xuất để thực hiện các công việc khác nhau.

các fpga có rất nhiều khối lô-gic và khung kết nối có thể được cấu hình lại và được cắt lại. các cửa sổ logic có thể được kết nối với nhau với các cấu hình khác nhau, cho phép chúng được kết nối với nhau.

bạn có thể thực hiện các chức năng kết hợp phức tạp bằng cách cấu hình các khối logic và các cửa sổ an toàn như xor và and.

bạn cũng có thể tìm các bộ phận bộ nhớ trong fpga, bao gồm các khối bộ nhớ đầy đủ và các kích hoạt đơn giản.

Các FPGA được sử dụng trong các lĩnh vực như ô tô, trung tâm dữ liệu, thiết bị y tế, công cụ xử lý hình ảnh và video, truyền thông có dây…

fpga và microcontroller-cái nào phù hợp hơn với nhu cầu của bạn_1

hình 1: fpga và vi điều khiển

1.2 Lập trình FPGA

Chương trình FPGA sử dụng ngôn ngữ mô tả phần cứng như VHDL và Verilog để cấu hình hoặc cấu hình lại các IC.

bởi việc lập trình, fpga có thể thực hiện một chức năng cụ thể bằng cách kết nối các khối logic và kết nối.

ngôn ngữ lập trình fpga

Ngôn ngữ lập trình FPGA được gọi là ngôn ngữ HardwareDescription, vì nó được sử dụng để thiết kế hoặc mô tả phần cứng. Hai ngôn ngữ thường được sử dụng trong lập trình FPGA bao gồm VHDL và Verilog HDL.

lipoprotein mật độ cao

Bộ Quốc phòng Hoa Kỳ đã phát triển VHDL, một ngôn ngữ VHSIC (Hyper-Speed Integrated Circuit). bộ phận nghiên cứu ngôn ngữ này vào những năm 1980 để tạo ra các mạch điện tốc độ cao.

nó đã được thông qua vào năm 1987 như là tiêu chuẩn ieee 1076.

nó được sử dụng rộng rãi trong thiết kế mô phỏng và mạch tín hiệu kỹ thuật số.

Verilog HDL

Huang, P. Gore và P. Mooreby đã thực hiện một mô phỏng và mô phỏng cửa vào năm 1984 cho một mô phỏng logic. D. Wormick đã tạo ra ngôn ngữ này.

Cadence tiếp quản dự án vào năm 1990 và mua lại tiêu chuẩn IEEE 1364.

nó được sử dụng để xác nhận và thiết kế các mạch điện tử và các mạch điện tử mô phỏng hoặc hỗn hợp.

1.3 Bo mạch FPGA

fpga là các mạch tích hợp để thực hiện một nhiệm vụ cụ thể. Bạn có thể mua các bộ điều khiển FPGA như là một sản phẩm độc lập hoặc các bộ điều khiển FPGA cho mục đích mô phỏng và phát triển.

Bộ điều khiển FPGA làm việc của bạn dễ dàng hơn và không yêu cầu bạn phải mua các thiết bị ngoại vi bổ sung.

bảng điều khiển có một số hình thức bộ nhớ bên ngoài và đi kèm với ram và rom để thực hiện các nhiệm vụ. Bạn cũng có thể tìm thấy các công tắc, đèn LED, đầu nối mở rộng chân, khởi động và các cổng Nhập/ Xuất cần thiết.

mua bo mạch fpga có thể là một lựa chọn kinh tế hơn là đầu tư vào phần cứng riêng.

1.4 Giáo trình FPGA

Bạn có thể tìm hiểu về việc thiết kế logic kỹ thuật số và làm quen với các cửa sổ logic, mạch logic chuỗi thời gian và mạch logic kết hợp sẽ rất hữu ích.

Sau đó bạn có thể học ngôn ngữ lập trình Verilog hoặc VHDL để cấu hình FPGAs của bạn.

nếu bạn cần được giúp đỡ, rất nhiều video trực tuyến có thể được sử dụng để được hướng dẫn từng bước một.

có rất nhiều hướng dẫn và hướng dẫn về lập trình fpga trên internet.

bây giờ, chúng ta sẽ xem xét các bộ vi điều khiển trong chương tiếp theo.

2, fpga và microcontroller-microcontroller

Các vi điều khiển giống như máy tính, có RAM, ROM, cổng I/O và các thiết bị ngoại vi khác để thực hiện một nhiệm vụ cụ thể.

Bạn có thể tìm thấy các microcontroller khác nhau như microcontroller Arduino và microcontroller Pic.

fpga và microcontroller-cái nào phù hợp hơn với nhu cầu của bạn_2

hình 2: fpga và vi điều khiển

Các bộ điều khiển PIC

Microchip Technology sản xuất các bộ vi điều khiển PIC dựa trên PIC1650 do General Instruments phát triển. Phiên bản đầu tiên xuất hiện vào năm 1976 và đến năm 2013, công ty đã bán được hơn 12 tỷ bản.

các bộ điều khiển vi mạch có thể được lập trình lại và lưu trữ bằng bộ nhớ flash. Các bộ vi điều khiển có các mô hình khác nhau, các bộ vi điều khiển hiện đại sử dụng các chip mạnh mẽ với các hướng dẫn xử lý tín hiệu kỹ thuật số.

bạn có thể mua sự kết hợp kim từ 6 đến 144 chân.

Nó cũng bao gồm các cổng liên lạc, USB, chân I/ O, và các mô-đun ADC và DAC. bạn có thể sử dụng phần mềm của công ty để lập trình cho bộ điều khiển vi.

chương trình vi điều khiển

các bộ điều khiển vi mạch có thể được lập trình sử dụng nhiều ngôn ngữ. hiện đang sử dụng nhiều ngôn ngữ lập trình cao cấp như javascript, python và c.

một số ngôn ngữ được thiết kế dựa trên mục đích, trong khi các ngôn ngữ khác là ngôn ngữ lập trình chung, như c.

các ngôn ngữ chung có thể có một số hạn chế và chức năng hỗ trợ các tính năng duy nhất của các bộ điều khiển vi.

các nhà sản xuất cũng phát hành một môi trường lập trình để giúp bạn phát triển.

chương tiếp theo sẽ nghiên cứu sự khác biệt giữa bộ vi xử lý và bộ vi điều khiển. các bộ điều khiển và fpga

bộ vi xử lý và bộ vi điều khiển

nhiều người sử dụng các thuật ngữ vi xử lý và vi điều khiển tương tác, nhưng chúng là hai thứ hoàn toàn khác nhau. bạn có thể thấy một số điểm tương đồng; cả hai đều được thiết kế cho các hoạt động thời gian thực.

các bộ xử lý và bộ điều khiển không thể phân biệt được bằng cách nhìn thấy bằng hình ảnh, cả hai đều là các kiểu ic. Tùy thuộc vào mục đích và tính năng, bạn có thể tìm thấy các phiên bản khác nhau trên thị trường từ 6 chân đến 100 chân.

fpga và microcontroller-cái nào phù hợp hơn với nhu cầu của bạn_3

hình 3: fpga và vi điều khiển

sự khác biệt giữa bộ vi xử lý và bộ vi điều khiển

bộ vi xử lý là một mạch tích hợp tích hợp của một máy tính hoặc cpu có khả năng xử lý. các ví dụ bao gồm các bộ xử lý pentium 3, 4, i 5, core 2 duo và các bộ xử lý khác trong máy tính của bạn.

Bạn sẽ không tìm thấy các thiết bị ngoại vi như RAM hoặc ROM trên chip. các nhà thiết kế cung cấp các thiết bị ngoại vi bên ngoài chip để thực hiện các chức năng.

Microcontroller là một máy tính với RAM, ROM, thời gian, cổng I / O và các thiết bị ngoại vi khác. vì vậy, chúng cũng được gọi là các máy tính một con chíp hoặc các máy tính nhỏ. hiện nay, nhiều bộ điều khiển vi mạch có các phiên bản khác nhau.

Do các thiết bị ngoại vi, các bộ xử lý rất lớn trong khi các bộ điều khiển nhỏ hơn. bộ vi xử lý là cốt lõi của hệ thống điện toán, và bộ vi điều khiển điều khiển hệ thống nhúng.

các bộ điều khiển vi mạch được thiết kế để thực hiện một công việc cụ thể, trong đó đầu vào và đầu ra đã được xác định. thực hiện một số thao tác dựa trên các thuộc tính của ứng dụng và tạo ra công việc.

Đặc tính của các nhiệm vụ này đòi hỏi việc giảm đáng kể việc sử dụng cổng I/O, RAM và ROM, và có thể chứa một chip duy nhất.

các bộ điều khiển và fpga

Các lợi ích bao gồm giảm chi phí và có thể được tìm thấy trong các điều khiển từ xa, điện thoại di động, bàn phím, ổ bút, máy ảnh kỹ thuật số…

Thay vì sử dụng bộ vi xử lý cho một nhiệm vụ cụ thể, bạn sẽ sử dụng nó cho nhiều nhiệm vụ, chẳng hạn như phát triển trò chơi, phần mềm, trang web và chỉnh sửa video. trong trường hợp này, mối quan hệ giữa đầu vào và đầu ra không được xác định.

Các bộ vi xử lý được thiết kế để xử lý các nhiệm vụ phức tạp và đạt được tốc độ đồng hồ cao hơn nhiều so với các bộ vi điều khiển.

Các bộ vi xử lý hiện đại có thể vượt quá 1 GHz, trong khi các bộ vi điều khiển có thể đạt đến 30 đến 50 MHz.

một khác biệt khác liên quan đến chi phí. bạn có thể mua một bộ vi điều khiển với giá rẻ hơn rất nhiều so với một bộ vi xử lý.

Tuy nhiên, vi bộ điều khiển không phù hợp với vi bộ xử lý, và vi bộ xử lý thay thế bộ điều khiển có thể gây ra chi phí cao cho các ứng dụng.

chi phí thấp hơn vì vi điều khiển được cài đặt bằng công nghệ cmos. các bộ vi xử lý đòi hỏi nhiều thành phần bên ngoài để làm việc và cuối cùng trở nên đắt đỏ.

vi điều khiển có một hệ thống tiết kiệm năng lượng, và vi xử lý không có chức năng này.

Các bộ vi xử lý cũng tiêu thụ ít năng lượng hơn các bộ vi xử lý vì chúng không cần sự đóng góp của các thành phần bên ngoài.

kiến trúc harvard được sử dụng để thiết kế các bộ điều khiển việc lưu trữ và lập trình thông tin cụ thể.

bộ vi xử lý được thiết kế theo kiến trúc von neumann, bộ nhớ được chuyển sang các mô-đun bộ nhớ tương đương.

bộ vi xử lý không cần nhiều bộ vi điều khiển. trước đó có hoạt động dựa trên bộ nhớ, thứ hai làm cho việc viết chương trình dễ dàng hơn.

chúng tôi đã nói về sự khác biệt giữa bộ vi xử lý và bộ vi điều khiển, và bây giờ bạn nên hiểu rõ cả hai.

bây giờ chúng ta sẽ nói về sự khác biệt giữa fpga và vi điều khiển.

4, fpga và vi điều khiển-fpga và vi điều khiển

Microcontroller và FPGAs là hai công cụ quan trọng nhất được sử dụng bởi các nhà nghiệp dư và kỹ sư điện. chúng ta cần thảo luận về sự khác biệt giữa fpga và vi điều khiển.

tuy nhiên, đầu tiên, chúng ta cũng sẽ xem xét sự tương đồng! cả hai cấu phần này để kiểm tra các giá trị đầu ra và các hiệu ứng dựa trên các giá trị đầu ra dưới ý nghĩa rộng hơn.

với fpga, bạn có thể tạo ra cấu trúc bộ điều khiển vi, nhưng ngược lại thì không thể.

fpga và microcontroller-cái nào phù hợp hơn với nhu cầu của bạn_4

hình 4: fpga và vi điều khiển

fpga và microcontroller – sự khác biệt giữa fpga và microcontroller

Hầu hết mọi thiết bị máy tính đều có một bộ điều khiển nhúng để làm việc và tương tác. nó có thể được lập trình để thực hiện các công việc đơn giản cho phần cứng khác.

Bạn có thể so sánh cấu trúc của một bộ điều khiển vi mạch với một máy tính có tất cả các thiết bị ngoại vi cần thiết như bộ nhớ, các cổng đầu ra và thời gian.

FPGA là một mạch tích hợp với hàng triệu cửa logic có thể được lập trình để thực hiện các nhiệm vụ.

các ứng dụng fpga đòi hỏi các thiết bị ngoại vi như ram và rom.

vi điều khiển sử dụng các chương trình phần mềm để thực hiện các lệnh liên tục, như c hoặc c ++.

Các kết nối lập trình cho FPGA được đặt ở một mạch logic, sử dụng các giải pháp lập trình như VHDL và Verilog.

Sự xử lý của các bộ điều khiển nhỏ có giới hạn thời gian và dựa trên các vòng lặp bộ xử lý của chúng.

không gian fpga bị giới hạn; bạn cần tạo ra nhiều mạch logic hơn để đạt được quy mô mã hóa mà bạn muốn.

các fpga có tính linh hoạt và linh hoạt hơn. Chúng có thể được lập trình trực tiếp – bạn có thể lập trình lại FPGA để thực hiện bất kỳ nhiệm vụ logic nào với các cửa logic có sẵn.

các cửa logic có thể được định dây lại nhiều lần như cần thiết để thay đổi các thủ tục và thực hiện các công việc khác nhau.

các bộ điều khiển vi mạch có thể thực hiện các công việc hạn chế vì chúng có các lệnh và mạch điện.

các lập trình viên phải tuân thủ những hạn chế này khi phát triển mã. các bộ điều khiển và fpga

chúng cũng khác nhau trong cách xử lý các lệnh. trình điều khiển vi mạch được đọc từng dòng chương trình; các lệnh cũng được xử lý theo thứ tự.

FPGAs có thể xử lý các đơn đặt hàng cùng một lúc và có thể thực hiện nhiều dòng mã tại một thời điểm nhất định.

chúng được kết nối với nhau như một mạch điện để có được một mạch điện song song thích hợp.

tuy nhiên, trong một bộ điều khiển vi, bộ xử lý chuyển từ một mã sang một mã khác để thực hiện sự song song. bạn sẽ thấy rằng việc viết các mã sau trên microcontroller sẽ dễ dàng hơn so với trên fpga.

khả năng xử lý song song của fpga cho phép bạn kiểm soát sự gián đoạn một cách hiệu quả bằng cách sử dụng một máy trạng thái giới hạn (fsm).

trong trường hợp các bộ điều khiển vi, bạn phải tính đến thời gian ISR cần để giải quyết các gián đoạn.

chỉ cần lập trình lại, bạn có thể dễ dàng định tuyến lại fpga. khi nguồn điện được bật lên, cấu hình trong fpga được nạp vào các ô logic có thể cấu hình được.

bạn không cần phải thực hiện bất cứ thay đổi phần cứng nào để lập trình lại fpga.

các bộ điều khiển vi mạch có thể thực hiện các chương trình và hoàn thành các công việc thông thường. nếu bạn muốn thay đổi tập hợp lệnh của bảng mạch, bạn cần thay đổi bố trí của các ics silicon.

các fpga cho phép xử lý dữ liệu song song với tốc độ cao và khả năng tùy chỉnh cao. tuy nhiên, chúng cũng có những nhược điểm về nguyên mẫu và cấu hình phức tạp. các bộ điều khiển và fpga

Tạo các tính năng FPGA mất thời gian, vì bạn phải biên dịch tất cả các mã từ đầu và chuyển chúng sang ngôn ngữ máy.

Bạn có thể tìm được các bộ vi điều khiển đã sẵn sàng thực hiện các công việc cụ thể và được tùy chỉnh theo nhu cầu của bạn.

các bộ điều khiển vi mạch dễ dàng sử dụng và cấu hình và có thể xử lý dữ liệu theo thứ tự cao.

tuy nhiên, chúng thiếu một số tính chất của fpga. các bộ điều khiển vi mạch linh hoạt hơn trong việc lập trình, nhưng không thể xác định chính xác bằng phần cứng.

khi làm việc với lập trình fpga, bạn cũng sẽ phải đối mặt với một đường cong học tập dốc. bạn có thể thử nghiệm và sử dụng các bộ điều khiển vi điều khiển để thử nghiệm phát triển của bạn.

khi xử lý sự khác biệt giữa bộ vi điều khiển và fpga, bạn phải xem xét mức tiêu thụ điện. chúng ta sẽ nói về chủ đề này trong chương tiếp theo.

mối quan hệ giữa fpga và vi điều khiển

như bạn đã biết, vì nhiều lý do, fpga tiêu thụ nhiều năng lượng hơn bộ vi điều khiển. đây là một thách thức đối với các kỹ sư làm việc để tạo ra các hệ thống điện hiệu quả.

Các FPGA có thể vượt quá giới hạn tiêu thụ năng lượng của các hệ thống nhúng và không phù hợp với tất cả các mục đích.

Các FPGAs đã được sử dụng cho mô phỏng và tạo mẫu, nhưng không hiệu quả như các thành phần khác như ASICs.

bạn có thể lập trình lại fpga, nhưng nó mang lại những điều khiển kém hiệu quả vì các hạn chế của đường dẫn bố trí dẫn đến việc sử dụng logic kém.

nó cũng tiêu thụ năng lượng cao vì nó không sử dụng bóng bán dẫn. Cây đồng hồ không hiệu quả và các đường dẫn tín hiệu dài cũng dẫn đến việc tiêu thụ năng lượng tăng lên.

các fpga hỗ trợ các công việc tốc độ cao hơn vi điều khiển. vì vậy, fpga không được tối ưu hóa cho việc tiêu thụ năng lượng.

Tốc độ xử lý của bộ vi điều khiển chỉ vài MHz, và tiêu thụ điện năng thấp hơn nhiều so với FPGAs.

Trong nhiều trường hợp, bạn cũng có thể tìm thấy các chế độ không hoạt động hoặc tiết kiệm năng lượng trên các bộ điều khiển vi mạch, làm cho chúng trở thành các lựa chọn bền vững.

Một số sản phẩm có dòng ngủ đông ít hơn 1 A và có thể làm việc với vài A ở tốc độ đồng hồ thấp hơn.

không có thị trường nào có yêu cầu năng lượng thấp như vậy.

nhiều hệ thống fpga sử dụng các bộ điều khiển trên bo mạch để tăng hiệu quả.

fpga và microcontroller-cái nào phù hợp hơn với nhu cầu của bạn_5

hình 5: fpga và vi điều khiển

6, fpga và vi điều khiển- kết luận

Chúng tôi có thể giúp bạn mua các mạch tích hợp và sản xuất bảng mạch dựa trên các đặc điểm kỹ thuật chính xác và sở thích của bạn. các bộ điều khiển và fpga

nếu bạn có bất cứ câu hỏi nào về việc sản xuất và lắp ráp một thiết bị bộ phận, xin liên hệ với chúng tôi; chúng tôi luôn sẵn sàng giúp đỡ.