Có vi điều khiển thay thế IC đơn giản hơn?


37

Có đáng để học không, ví dụ, làm thế nào để điều chỉnh bộ đếm thời gian 555 bằng điện trở và tụ điện, khi bạn có thể viết chương trình hẹn giờ cho vi điều khiển bằng ngôn ngữ lập trình có thể đọc được của con người?

Hoặc, nói một cách khác, có vấn đề gì là IC tốt cho vi điều khiển không?


4
@ jes5199 - Tôi không chắc chắn làm thế nào câu hỏi này xứng đáng với thẻ meta; bạn có thể nhận xét về lý do của bạn?
J. Polfer

3
quan niệm của tôi là tôi đã không hỏi một câu hỏi về một vấn đề cụ thể, nhưng về toàn bộ lĩnh vực. Đó dường như là một meta nhỏ đối với tôi.
dùng955

Một bảng mạch với các thành phần riêng biệt và một con chip được dán nhãn là bộ đếm thời gian 555 dễ đọc hơn nhiều so với chương trình được lưu trữ trên chip.
Kaz

Câu trả lời:


35

Hầu hết, vi điều khiển đã thay thế các IC rời rạc. Tôi thấy rằng ngay cả khi tôi có thể thiết kế một mạch với một chiếc 555, thì có khả năng rằng cùng một mạch sẽ cần phải được điều chỉnh trong một vài tuần để làm một cái gì đó khác, và một vi mô bảo tồn tính linh hoạt đó.

Nhưng có một vài ngoại lệ.

Logic rời rạc vẫn nhanh hơn hầu hết các vi điều khiển. Độ trễ lan truyền và thời gian chuyển đổi cho logic rời rạc nằm trong phạm vi 1-10 ns. Để phù hợp với điều khiển vi điều khiển, bạn phải có khả năng thực hiện bất kỳ logic nào bạn cần trong 1 lệnh và có đồng hồ trong phạm vi 100 MHz đến 1 GHz. Bạn có thể làm điều đó, nhưng có thể không phải trên một chiếc bánh mì trong nhà để xe của bạn.

Một ví dụ điển hình của việc này là bộ giải mã bậc hai HCTL2020. Nó mất hai chuỗi xung và cho bạn biết động cơ của bạn đang quay. Nó được triển khai như một con chip không lập trình được vì mục đích tốc độ.

Một lĩnh vực thú vị khác mà cả logic kỹ thuật số và vi điều khiển đều thất bại là lọc tín hiệu. Nếu bạn có tín hiệu tương tự mà bạn muốn lọc kỹ thuật số, bạn phải lấy mẫu ở tốc độ nào đó. Cho dù bạn lấy mẫu nhanh đến mức nào, nhiễu trong tín hiệu xuất hiện ở tần số lớn hơn một nửa tần số lấy mẫu của bạn sẽ được giảm xuống các tần số thấp hơn, nơi nó có thể gây nhiễu tín hiệu của bạn. Bạn có thể giải quyết vấn đề này bằng bộ lọc thông thấp, được làm bằng nắp và điện trở, trước khi lấy mẫu của bạn. Sau khi lấy mẫu, bạn bị vặn. (Tất nhiên, thường thì trường hợp nhiễu sẽ không chồng lấp tín hiệu của bạn theo tần số và sau đó bộ lọc kỹ thuật số sẽ hoạt động rất tốt.)


> Logic rời rạc vẫn nhanh hơn hầu hết các vi điều khiển. Trừ khi bạn đang sử dụng Cypress PSoC3.
Rocketmagnet

3
@Rocketmagnet - PSoC, giống như một đồ họa, vẫn là logic thô. Nó không rời rạc, chắc chắn, nhưng nó cũng nhanh như vậy.
Kevin Vermeer

29

Thật kỳ lạ, tôi vừa có một trong những nhà máy Trung Quốc của chúng tôi đang cố gắng thêm một vi mô vào một dự án nơi nó hoàn toàn quá mức cần thiết, và tôi đã bảo họ sử dụng một chiếc 555 thay thế. Một chiếc 555 có giá 6 xu, so với bộ vi điều khiển giá rẻ với giá 60 xu. Khi bạn sản xuất sản phẩm với số lượng lớn, sự khác biệt về chi phí là rất quan trọng và chắc chắn bạn sẽ muốn biết cách sử dụng IC rẻ hơn. Vì vậy, yeah, họ tốt hơn với chi phí ít hơn. :)


12
Bạn cũng có thể thêm độ tin cậy vào đó. Mỗi phần mềm có một lỗi còn lại sau khi phần cuối cùng được gỡ bỏ.
stevenvh

13

Một lĩnh vực có logic rời rạc vẫn vượt qua micros là sự ổn định phần dài hạn.

Là vi này sẽ có sẵn trong 10 năm? 20? IDE và toolchain vẫn sẽ hỗ trợ nó trong thời gian đó chứ?

Bạn có thể đảm bảo khá nhiều rằng logic rời rạc vẫn sẽ là logic rời rạc trong tương lai. Kính hiển vi, không nhiều lắm. Nếu bạn đang thiết kế một sản phẩm mà bạn mong muốn có tuổi thọ sản xuất dài, logic chung và càng nhiều càng tốt, các bộ phận chung sẽ giảm nhu cầu thiết kế lại thiết bị khi tính sẵn sàng của các bộ phận.

Ngoài ra, bạn không phải là SOL nếu nhà sản xuất chip của bạn được đặt hàng trước. Nhiều người tạo ra logic chung tương thích, trong khi về cơ bản không có vi mô chung.


11

Thông thường, nó sẽ trở nên rẻ hơn khi sử dụng các mạch rời rạc để thực hiện một nhiệm vụ đơn giản. Ví dụ, đèn LED nhấp nháy. PIC10F200 rẻ nhất, PIC10F200, khoảng 0,35 đô la Mỹ trong 5ku, và đó là trước khi chi phí lập trình và tính đến kích thước nhỏ (và các vấn đề liên quan đến sản xuất.) Mặt khác, bộ đếm thời gian NE555 có thể được chọn cho khoảng US 0,10 đô la từ TI trong 5ku và một giải pháp hoàn chỉnh có thể sẽ nặng khoảng 0,20 đô la Mỹ.

Một điều nữa cần tính đến là vi điều khiển vốn là thiết bị kỹ thuật số. Chắc chắn, hầu hết đều có ADC và một số thậm chí có bộ xử lý tín hiệu, nhưng chúng vẫn hoạt động trên các đơn vị thời gian riêng biệt và hoạt động trên các bit và byte riêng lẻ. Một mạch tương tự có thể được điều chỉnh chính xác để làm những gì người thiết kế cần bởi vì về lý thuyết, analog có độ phân giải vô hạn **. Một mạch kỹ thuật số bị giới hạn bởi thành phần chậm nhất của nó.

Cuối cùng là vấn đề cung cấp. Quay trở lại ví dụ đầu tiên của tôi, NE555. Điều đó đã tồn tại hơn 20 năm và có lẽ sẽ còn khoảng 50 năm nữa. Đó là một phần thạch như vậy mà nó có thể sẽ được sản xuất mãi mãi (hoặc ít nhất là cho đến khi các điện tử thông thường trở nên lỗi thời trong điện tử.) Trong khi đó, PIC10F có thể được tạo ra NRND bất cứ lúc nào. Với một nhà cung cấp duy nhất như Microchip, có một rủi ro đáng kể điều này có thể làm hỏng sản phẩm.

** Được rồi, điều này không hoàn toàn đúng. Trong thực tế, chúng ta bị giới hạn ở độ phân giải của các điện tử. 1 ampe = 6,24 × 10 18 electron / giây. Vì vậy, độ phân giải hiện tại tốt nhất bạn có thể nhận được là attoampere, hoặc 10 ^ -18 ampe, tức là khoảng 6 electron mỗi giây. Nhưng đối với hầu hết các mục đích thực tế, điều này là ổn. :)


4
bạn đang nhầm lẫn độ phân giải với độ chính xác, một lỗi thường được thực hiện. Không có điểm nào có độ phân giải> 10 chữ số nếu độ lệch khiến độ chính xác hiệu quả chỉ là hai chữ số. Giải pháp kỹ thuật số có thể có độ chính xác cao hơn mặc dùđộ phân giải rời rạc và do đó hạn chế hơn .
stevenvh

8

Đừng quên logic lập trình - CPLD và FPGA. Bằng cách thay thế logic rời rạc bằng CPLD, bạn không bị ảnh hưởng bởi các bộ phận bị gián đoạn và có thể có hiệu suất cao hơn nhiều, giảm kích thước và chi phí thấp hơn. Nếu bạn có một hệ thống đồ họa trong hệ thống, bạn có thể triển khai lõi mềm trong đó, có thể dễ dàng nâng cấp nếu yêu cầu thay đổi và toàn bộ điều này có thể dễ dàng được thực hiện "bằng chứng trong tương lai".


6

Tôi sẽ học lớp để điều chỉnh bộ đếm thời gian 555 là kiến ​​thức "chỉ trong trường hợp". Nó giống như mọi người nói "Tôi đã sống cả đời chỉ tốt khi không có đại số, tại sao chúng ta lại dạy nó cho trẻ em?" Nếu bạn không biết cách sử dụng một công cụ, bạn sẽ không bao giờ thấy vấn đề mà nó có thể được áp dụng.

Đối với một câu trả lời cụ thể: logic kỹ thuật số rất nhanh được triển khai trong các GPU / ASIC hiện nay vì nó quá chậm trên vi điều khiển / bộ xử lý (trừ khi nó là bộ xử lý được thiết kế đặc biệt như DSP).


6

Trong dự án hiện tại của tôi, chúng tôi đang sử dụng chip Marvell ARM9 chạy ở tốc độ 500Mhz với một GPU để cung cấp nhiều cổng DIO. Tuy nhiên, có những thứ được xử lý theo logic rời rạc. Ví dụ, điều khiển động cơ bước là cần thiết cho 4 động cơ bước được điều khiển riêng lẻ. Có một bộ tạo dao động để tạo ra một tần số với bộ đếm sẽ cho phép một số xung đi qua. Bộ đếm được đặt từ vi điều khiển, nhưng sau đó hoạt động mà không cần bất kỳ sự điều khiển nào nữa từ vi điều khiển, cho nó thời gian để làm việc với các tác vụ khác.

Chúng tôi có thể đã chọn cho nhiều vi điều khiển hơn. Nhưng một bộ điều khiển trung tâm làm việc với logic rời rạc truyền thống có thể chứng minh là một giải pháp mạnh mẽ và rất đáng tin cậy.

Ngoài ra, nếu bạn có một vấn đề được xác định rõ ràng, giải pháp phải luôn đơn giản nhất có thể, nhưng không đơn giản hơn (trích dẫn ẩn trong đó ;-)). Nếu một chiếc 555 hoạt động, tại sao bạn không sử dụng nó? Tính linh hoạt có thể là một đối số như người khác đã chọn, nhưng nó có thể không. Tất cả phụ thuộc vào vấn đề của bạn và cách giải thích của bạn về giải pháp đơn giản nhất là gì.


1
Tôi nghĩ rằng I / O mở rộng FPGA của bạn sẽ là một nơi tuyệt vời cho phần "logic" của điều khiển bước.
Chris Stratton

5

Các ứng dụng truyền thông tần số cao đến với tâm trí. Mặc dù hiện tại chúng ta có 'radio được xác định bằng phần mềm', sẽ rất ngạc nhiên nếu xử lý tín hiệu 100 MHz + vẫn không có ít nhất một số giai đoạn tương tự.


4

Rất ít thiết kế vi điều khiển gần đây của tôi yêu cầu bất kỳ logic rời rạc nào. Một ngoại lệ là thực hiện loại thiết lập lại Ctrl-Alt-Del, theo đó nhấn hai phím cụ thể trên bàn phím tùy chỉnh trong hai giây sẽ thực hiện thiết lập lại cứng cho micro. Tôi đã sử dụng cổng NOR (được sử dụng làm cổng AND với 2 đầu vào đảo ngược), cổng AND và 74HC123. Thật thuận tiện để có thể có được các cổng cụ thể mà tôi cần trong các cổng đơn trong gói SMT, thay vì 4 cổng / gói trong những ngày DIP.


4

Tôi đã có cơ hội trở thành một nhà phát triển phần mềm trong nhiều năm và hiện đang làm kỹ sư điện tử.

Bất kỳ hệ thống với sự phức tạp đi kèm với erros và lỗi. Cả vi điều khiển và IC đều có ưu điểm và nhược điểm dựa trên các lĩnh vực sử dụng.

Đối với các dự án quy mô nhỏ, IC nhanh hơn, rẻ hơn và đáng tin cậy hơn so với Vi điều khiển. Đối với các dự án quy mô lớn với hàng triệu đầu vào, phân tích và so sánh logic, chắc chắn các bộ vi điều khiển có lợi thế hơn IC.

Tất cả các phần mềm đều bị lỗi tại một số điểm, ngay cả mã không có lỗi cũng dễ bị sửa đổi bởi vì nó được lưu trên ROM, dẫn đến lỗi logic (ví dụ, rò rỉ bộ nhớ) rất khó phát hiện nhưng đôi khi kết thúc trong thảm họa.

Đối với các hệ thống dựa trên phần mềm chống đạn từ các lỗi trong các ứng dụng quan trọng (như cấp độ quân sự hoặc hệ thống cứu sinh như hệ thống điều khiển tàu), các khái niệm "không an toàn" được triển khai và phát triển.

Lỗi hệ thống an toàn trở lại trạng thái an toàn trong trường hợp xảy ra lỗi đặc biệt. Thông thường hai bộ xử lý chạy cùng một mã, so sánh kết quả của mỗi lệnh và nếu chúng bằng nhau, lệnh được thực thi. Mặt khác, hệ thống sử dụng rơle điện vật lý để trở về trạng thái an toàn.

Hệ thống dựa trên phần mềm không an toàn được sử dụng trong các hệ thống Interlocking và ATP (Automatic Train Protection).

Thiết kế cùng một hệ thống phức tạp với Ics là một vấn đề đau đầu với bất kỳ kỹ sư nào. Và đó là lý do tại sao phần mềm được thiết kế từ ngày 1!


3

IC có thể rất cụ thể miền. Tôi đang nghĩ về một bộ giải mã DTMF. Tôi có thể lập trình một vi điều khiển để giải mã hai tần số, nhưng sử dụng chip ngoài luồng dễ dàng hơn, nhanh hơn và rẻ hơn.

Tôi nghĩ điều quan trọng là phải có đủ kiến ​​thức về tất cả các công cụ để biết nên sử dụng công cụ nào.


Tất nhiên phụ thuộc vào việc bạn có cần một vi điều khiển trong mạch hay không. Gần đây tôi đã có một dự án mà tôi cần một bộ giải mã DMTF. Các chip có giá khoảng đô la về số lượng. Sự khác biệt về giá giữa PIC24F hoặc một DSPIC33F tương đương (cũng có DSP) cũng là khoảng một đô la về số lượng. Các thường trình DSP giải mã DTMF không có Microchip. Thêm vào đó bây giờ tôi có một DSP cho những thứ khác.
tcrosley

FYI, tôi đã viết một bộ giải mã DTMF khá tốt cho PIC 16C622 vài năm trước, chỉ sử dụng bộ so sánh làm đầu vào.
supercat

3

Có một sự khác biệt lớn giữa việc thiết kế một cái gì đó chỉ sử dụng các thành phần riêng biệt so với sử dụng bộ điều khiển vi mô; phần mềm có lỗi. Nếu độ tin cậy là một khía cạnh quan trọng, có thể xác minh thiết kế của một cái gì đó được làm từ các thành phần riêng biệt. Thậm chí Knuth không dám khẳng định rằng phần mềm của mình không có lỗi.

Tất nhiên, thiết kế của bạn cũng có thể có lỗi và chúng chỉ có thể xuất hiện trong những trường hợp rất hiếm, nhưng chúng sẽ đơn giản hơn để hiểu và sửa chữa. Có thể phần mềm bị lỗi theo những cách cực kỳ tối nghĩa và không rõ ràng, mà bạn sẽ không bao giờ tìm thấy.


2
Vì các thành phần riêng biệt trong trường hợp này có thể có nghĩa là IC và không phải là bóng bán dẫn, điều gì khiến bạn nghĩ rằng IC không có lỗi? Phần mềm được viết tốt kết thúc với lỗi không phải vì nó là phần mềm, mà vì nó giải quyết các yêu cầu phức tạp - một phiên bản có dây cứng cũng có thể bị lỗi. Khi bạn đã tìm thấy một lỗi, việc triển khai các bản sửa lỗi cho phần mềm sẽ rẻ hơn so với sửa đổi PCB, trừ khi bạn có ai đó đốt một kho lớn OTP micros cho bạn. Bạn có thể đào tạo ai đó cắm cáp lập trình viên và tuân thủ các quy tắc của ESD nhanh hơn rất nhiều so với việc bạn có thể đào tạo họ thành thạo trong việc làm lại PCB PCB.
Chris Stratton

IC tồn tại trong tất cả các loại mức độ phức tạp, bao gồm cả vi điều khiển. Xác suất lỗi trong một IC tỷ lệ thuận với độ phức tạp của IC. Câu hỏi là về các IC đơn giản hơn như bộ đếm thời gian 555 và tôi nghĩ rằng xác suất tích lũy của một IC như vậy và các thành phần bổ sung có lỗi thấp hơn nhiều so với xác suất của vi điều khiển thay thế chúng có lỗi. Tất nhiên, nếu bạn thay thế 1000 thành phần bằng một vi điều khiển, tỷ lệ cược có thể sẽ thay đổi, vì vậy hình ảnh không hoàn toàn là đen trắng. Nhưng đối với bất kỳ thiết bị nhấp nháy LED nào hoặc tương tự mà tôi ...
hlovdal

... Nhận thức được câu hỏi này, tôi vẫn tin rằng các thành phần riêng biệt có khả năng đáng tin cậy hơn. Và đối với các lỗi phần mềm, chúng không mang tính quyết định. Tất nhiên không có gì được đảm bảo 100%, nhưng nếu bạn triển khai bộ điều khiển đèn giao thông với các bộ phận, bạn có thể xác minh và triển khai nó, biết rằng nó sẽ tiếp tục hoạt động trong X năm cho đến khi hao mòn vật lý khiến thiết bị có thể bị hỏng và thay thế nó với một đơn vị mới trước đó. Không có cách nào bạn có thể ước tính rằng phần mềm sẽ hoạt động đáng tin cậy trong bất kỳ khoảng thời gian nào.
hlovdal

Phần mềm có độ phức tạp tương đương với một vài sự rời rạc có thể, trên cpu thích hợp, được chứng minh về mặt toán học. Logic rời rạc có độ phức tạp tương đương với phần mềm phổ biến hơn thực sự không thể được tạo ra hoàn toàn an toàn trước những điều không tưởng tượng - mặc dù trong cả hai trường hợp, bạn có thể sử dụng độ phức tạp bổ sung để cung cấp một số an toàn dự phòng trong trường hợp cơ chế chính bị lỗi.
Chris Stratton

3

Câu trả lời là CÓ!

Bạn cần xem nó như một nhà thiết kế phần cứng với định hướng chi phí sản xuất. 555 là một IC cũ được coi là rất cơ bản. Nếu bạn là một EE, hầu hết các cơ hội bạn đã thấy nó nhiều lần trong các lớp điện tử kỹ thuật số. Thiết lập nó rất dễ dàng vì bạn cần giải 2 hoặc 3 công thức cho hầu hết các ứng dụng phổ biến. Điều này hầu như không mất thời gian (vì bạn đã biết phần và cách sử dụng nó và toán học rất dễ). Lượng thời gian cần thiết để thiết lập phát triển cho ngay cả MCU 8 bit và xác thực phần mềm có thể mất từ ​​vài ngày đến vài tháng, tùy thuộc vào môi trường bạn làm việc. Vì vậy, điều này có thể giảm chi phí kỹ thuật theo số tiền bạn không thể tưởng tượng được và Ngoài ra, có thể, rút ​​ngắn thời gian để thị trường.

Câu chuyện có thật - Tôi từng làm việc cho một công ty y tế lớn. Tôi đã thiết kế đồ gá thử nghiệm để xác nhận sản phẩm. Các đồ gá lắp là một phần cứng và một phần phần mềm nhúng. Sản phẩm mà công ty tạo ra tương tác với các bộ phận dễ bị tổn thương trên cơ thể nên số lượng kiểm tra mọi thứ chúng tôi đã trải qua là các loại hạt. Lần này, tôi phải điều chỉnh giao thức truyền thông để phản ánh những thay đổi trong chính sản phẩm. Sự thay đổi có lẽ là 10 dòng mã trong C và bộ tạo dao động tinh thể cũng bị tráo đổi khi tốc độ baud bị thay đổi và những gì được cài đặt ban đầu không phải là 11.0592MHz ... Tôi mất khoảng 2 giờ để hoàn thành việc này bao gồm cả tài liệu. Chi phí cho công ty có thể là 300 đô la hoặc ít hơn với đơn đặt hàng từ Digikey cho các bộ phận mới. Việc xác nhận jig thử nghiệm được cải thiện mất vài tháng (! ) và giữ khoảng 3 hoặc 4 người bận rộn ít nhất vài lần một ngày trong các vấn đề liên quan. Cái này giá bao nhiêu cho công ty? Có lẽ ở phía bắc $ 10K - $ 15K. Chi phí này phản ánh chi phí thực sự của sự thay đổi nhỏ trong thiết kế. Nhiều lần bạn có thể lưu nó và biết một số giải pháp gần như đã sẵn sàng có thể tiết kiệm một khoản tiền nhỏ.

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.