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 hệ thống tương tác của riêng bạn?

các mảng cửa sổ có thể được lập trìnhvà các bộ điều khiển nhỏ là hai sản phẩm được sử dụng nhiều nhất cho các kỹ sư điện hay người nghiệp dư. Cả hai đều có thể được lập trình để thực hiện một số chức năng. khả năng là vô hạn nếu bạn biết những điều cơ bản, và đó là những gì chúng ta sẽ xem xét. tuy nhiên, trước khi chúng ta bắt đầu, bạn có biết sự khác biệt nào 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 chi tiết về sự khác biệt của các bộ phận khác nhau để dự án của bạn thành công và có hiệu quả.

 

nội dung

1, FPGA

2, bộ điều khiển vi

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

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

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

6, kết luận

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 để đượ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 rộng rãi 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

 

Lập trình FPGA là quá trình cấu hình hoặc cấu hình lại các IC sử dụng các ngôn ngữ mô tả phần cứng như VHDL và Verilog. 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

 

D. Wormick đã tạo ra ngôn ngữ này. Năm 1984, Huang, P. Gore và P. Moore đã thực hiện một mô phỏng và mô phỏng cửa trong một trình giả lập logic. Cadence tiếp quản dự án vào năm 1990 và đạt 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 FPGA như một sản phẩm độc lập hoặc một bo mạch FPGA dùng 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ể thấy công tắc,đèn ledcác đầu nối mở rộng chân, khởi động và các cổng i/ o 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

 

Nó sẽ rất hữu ích nếu bạn hiểu thiết kế logic kỹ thuật số và hiểu rõ các khái niệm như các cửa số logic, mạch logic chuỗi thời gian và mạch logic kết hợp. 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 muốn được giúp đỡ, rất nhiều video trực tuyến có thể được sử dụng để có cá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, bộ điều khiển vi

 

Microcontroller giống như một máy tính với 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 các kết hợp chân khác nhau từ 6 chân đế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 bằng các ngôn ngữ biên tập. Có rất 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.

ngôn ngữ chung có thể có một số hạn chế, nhưng cũng có một số đặc điểm hỗ trợ duy nhấtkhả năngmột bộ vi điều khiển. 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.

trong chương tiếp theo, chúng ta sẽ xem xét sự khác biệt giữa bộ vi xử lý và bộ vi điều khiển.

 

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ể tìm thấy một số điểm tương đồng giữa chúng, và cả hai đều được thiết kế cho 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ý. ví dụ, 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, ROM và các thiết bị khác trên chip. các nhà thiết kế cung cấp các thiết bị ngoại vi bên ngoài của con chip để thực hiện các chức năng.

Bộ vi điều khiển chính là một máy tính được nhúng 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ỏ. có rất nhiều bộ vi điều khiển với 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 tính toán, và các bộ vi điều khiển điều khiển các 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 làm giảm đáng kể việc sử dụng cổng I/O, RAM, ROM và có thể được thực hiện trên một con chip.

Các lợi ích bao gồm giảm chi phí và có thể được tìm thấy trong các thiết bị như đ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 tần số cao nhất từ 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 điều khiển thay thế bộ xử lý là không phù hợp, và vi điều khiển thay thế bộ vi đ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 đỏ.

các bộ điều khiển có một hệ thống tiết kiện năng lượng, nhưng các bộ vi xử lý không có. so với các bộ vi xử lý, các bộ vi xử lý cũng tiêu thụ ít năng lượng hơn 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 đã có một sự hiểu biết rõ ràng về 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

 

các bộ điều khiển vi và fpga là hai công cụ quan trọng nhất được sử dụng bởi những người nghiệp dư và các 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 đều được thiết kế để kiểm tra các giá trị đầu ra và các hiệu ứng của các giá trị đầu ra theo nghĩa rộng hơn. bạn có thể sử dụng fpga để 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

 

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ó các bộ điều khiển nhúng để thực hiện các công việc và tương tá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. 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.

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, c ++. Các kết nối lập trình cho FPGA được đặt ở các mạch logic và 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 để thực hiện quy mô mã hóa mà bạn mong muốn.

các fpga có tính linh hoạt và linh hoạt hơn. Chúng” có thể lập trình” – bạn có thể lập trình lại FPGA để thực hiện bất kỳ nhiệm vụ logic nào trong các cửa logic có sẵn. các cửa logic có thể được định lại nhiều lần khi 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ã.

chúng cũng khác nhau trong cách xử lý các lệnh. các bộ điều khiển vi mạch được đọc từng dòng theo thứ tự; điều đó có nghĩa là 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ũng được đặt dây như một mạch điện tử để bạn có được một mạch 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 một mức độ song song. bạn sẽ thấy rằng việc viết mã sau trên microcontroller sẽ dễ dàng hơn so với việc viết mã 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 thích hợp cho việc 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.

Tạo các hàm FPGA mất thời gian, vì bạn cần phải biên dịch tất cả các mã từ đầu và sau đó chuyển chúng sang ngôn ngữ máy. Đối với các bộ điều khiển vi mạch, bạn có thể tìm được các gói phần mềm 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 cũng cầ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 chú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. So với FPGAs, 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.

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 microcontroller, làm cho chúng trở thành một lựa chọn bền vững trong nhiều trường hợp. Một số sản phẩm này có dòng điện ngủ ít hơn 1 A và có thể hoạt động ở 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. đó là lý do tại sao nhiều hệ thống fpga sử dụng vi điều khiển trên bo mạch để tăng hiệu suất.

 

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, kết luận

 

chúng tôi có thể giúp mua các công cụ tích hợpmạch điện và bảng sản xuấttuân theo các đặc điểm kỹ thuật chính xác và ưa thích của bạn.

Còn câu hỏi nào nữa khôngsản xuất pcbvà lắp ráp, hãy liên lạc với chúng tôi; chúng tôi luôn sẵn sàng giúp đỡ.