Arduino vs Vi xử lý vs Vi điều khiển


Câu trả lời:


21

Một bộ vi xử lý:

thường được tìm thấy trong máy tính để bàn hoặc máy tính xách tay và chứa CPU và giao diện bộ nhớ ngoài cộng với nhiều bus I / O khác nhau để kết nối với thế giới bên ngoài như SPI, I2C, UART, USB, LCD và các loại khác. Một bộ vi xử lý cũng sẽ có một tinh thể bên ngoài để cung cấp đồng hồ.

Hầu hết các bộ vi xử lý không có bộ nhớ chỉ đọc trên chip; thay vào đó là một con chip bên ngoài trên bo mạch chủ nơi đặt mã khởi động ban đầu. Trên PC dựa trên Intel, hệ thống này được gọi là Hệ thống đầu vào / đầu ra cơ bản (BIOS) và cũng chứa các thường trình I / O bên cạnh mã khởi động ban đầu. Mã khởi động bắt đầu bằng cách thực hiện Tự kiểm tra bật nguồn (POST) và sau đó tìm xem nơi tải giai đoạn tiếp theo của mã khởi động - từ ổ đĩa cứng, CD (hoặc trong những ngày xưa) một đĩa mềm. Khởi động cấp thứ hai này sau đó tải hệ điều hành. (Thậm chí có thể có ba cấp mã khởi động trong một số hệ thống.)

Một số bộ vi xử lý (thường là các bộ vi xử lý dành cho điện thoại thông minh và máy tính bảng, có tùy chọn khởi động hạn chế) có một lượng nhỏ bộ nhớ chỉ đọc có chứa mã khởi động ban đầu.

Tôi đề cập đến mã khởi động là chỉ đọc; Trên thực tế trên một số hệ thống, nó có thể được cập nhật. Tuy nhiên điều này khá rủi ro; nếu có sự cố, hệ thống có thể không khởi động được nữa.

Không giống như các bộ vi điều khiển, thực thi các chương trình của chúng ra khỏi bộ nhớ chỉ đọc, sau khi khởi động lên, các bộ vi xử lý sẽ tải các chương trình của chúng vào RAM ngoài và thực thi nó từ đó.

Một vi điều khiển:

mặt khác là một IC đơn chip độc lập chứa CPU, bộ nhớ chỉ đọc để lưu trữ chương trình, RAM để lưu trữ các biến được sử dụng trong quá trình thực thi chương trình và các bus I / O khác nhau để kết nối với thế giới bên ngoài như vậy như SPI, I2C, UART và những người khác. Chính nó, nó không thể thực thi bất kỳ chương trình nào mà không được lập trình thông qua giao diện bên ngoài với PC. Một vi điều khiển cũng có thể cần một tinh thể bên ngoài để cung cấp đồng hồ, tuy nhiên một số có đồng hồ bên trong.

Một số bộ vi điều khiển (như PIC32 của Microchip) có hai phần bộ nhớ flash; một để giữ mã khởi tạo (khởi động) và một để lưu trữ ứng dụng. Điều này giúp dễ dàng cập nhật mã ứng dụng tại chỗ.

Với mục đích của bạn, bạn sẽ muốn sử dụng một bộ vi điều khiển, không phải bộ vi xử lý. Để sử dụng một vi điều khiển, bạn sẽ phải thiết kế bảng của riêng mình hoặc mua một số loại bảng phát triển.

Một Arduino:

là một bo mạch như vậy và chứa một bộ vi điều khiển, điển hình là một bộ vi xử lý 8 bit như ATmega8, ATmega168, ATmega328, ATmega1280 và ATmega2560, cùng với các bộ nguồn, pha lê và đầu nữ để giao tiếp với các bảng ngoại vi khác nhau.

Các bảng ngoại vi này được gọi là khiên và được thiết kế để xếp chồng lên nhau (có các chân nam ở dưới cùng của bảng để kết nối với chính Arduino hoặc một khiên khác, và các tiêu đề nữ ở trên cùng để chấp nhận các chân nam của một lá chắn xếp chồng lên nhau trên nó).

Tấm chắn ví dụ là bảng điều khiển động cơ, bảng I / O chung, bảng chuyển tiếp, bảng Ethernet và LCD, thường có màn hình cảm ứng. Tuy nhiên tôi không biết bất kỳ màn hình cảm ứng điện trở nào sẽ được sử dụng chỉ để phát hiện (không có màn hình LCD).

Ngoài phần cứng được mô tả ở trên, Arduino cũng đi kèm với Môi trường phát triển tích hợp (IDE) đa nền tảng được viết bằng Java. Nó được thiết kế để giới thiệu lập trình cho các nghệ sĩ và những người mới bắt đầu khác, giống như ngôn ngữ BASIC đã làm cách đây 50 năm. Một chương trình cho Arduino được gọi là một bản phác thảo .

Các chương trình Arduino được viết bằng C hoặc C ++, tuy nhiên nhiều chi tiết bị ẩn khỏi người dùng: chỉ cần xác định hai chức năng (được gọi bởi hệ thống) để tạo một chương trình liên tục lặp (thường dành cho các chương trình nhúng)

setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off

IDE đi kèm với một thư viện phần mềm gọi là "Đấu dây" có thể được sử dụng cho các hoạt động đầu vào / đầu ra phổ biến.


Tôi không thiết kế phần cứng nữa, sau 25 năm làm như vậy, nhưng tôi không biết bất kỳ bộ xử lý nào cho máy tính để bàn có chứa bất kỳ bộ nhớ chỉ đọc, ít hơn bất kỳ bộ nhớ nào có thể khởi động máy tính.
Rob

@Rob Bạn nói đúng rằng tất cả các máy tính để bàn mà tôi biết đều sử dụng chip khởi động ngoài. Nhưng kiến ​​trúc OMAP3 của TI là một ví dụ về bộ vi xử lý với ROM khởi động bên trong. Từ mô tả ở đây đang khởi động Linux, dòng đầu tiên ghi: "Khi khởi động, thiết bị OMAP3 bắt đầu khởi động từ ROM khởi động bên trong. Mã này được sửa trong quá trình sản xuất và không thể thay đổi. ROM khởi động đọc các chân cấu hình khởi động (SW4 trên EVAP OMAP3) cho ROM Boot biết nơi tìm bộ tải khởi động bên ngoài đầu tiên. " Tôi đã cập nhật câu trả lời của mình.
tcrosley

10

Arduino

Một Arduino là một PCB có chứa một vi điều khiển Atmel AVR và thường cung cấp một bộ các đầu nối theo một mẫu chuẩn. Bộ vi điều khiển thường được lập trình sẵn với chương trình "bộ nạp khởi động" cho phép chương trình (được gọi là "phác họa") được nạp vào vi điều khiển qua kết nối nối tiếp TTY (hoặc nối tiếp ảo qua kết nối USB) từ PC.

Bộ vi xử lý

Bộ vi xử lý là một IC chỉ chứa một bộ xử lý trung tâm (CPU). IC không chứa RAM, ROM hoặc các thiết bị ngoại vi khác. IC có thể chứa bộ nhớ đệm nhưng nó không được thiết kế để có thể sử dụng mà không có bộ nhớ ngoài.

Bộ vi xử lý không thể lưu trữ chương trình bên trong và do đó thường tải phần mềm khi được bật nguồn, điều này thường bao gồm một quá trình "khởi động" nhiều giai đoạn phức tạp trong đó "phần sụn" được tải từ ROM ngoài và cuối cùng một hệ điều hành được tải từ phương tiện lưu trữ khác (ví dụ: đĩa cứng ).

Nó thường được tìm thấy trong một máy tính cá nhân.

Vi điều khiển

Vi điều khiển là một vi mạch chứa CPU cũng như một số lượng hoặc RAM, ROM và các thiết bị ngoại vi khác. Vi điều khiển có thể hoạt động mà không cần bộ nhớ ngoài hoặc lưu trữ.

Thông thường, các bộ vi điều khiển được lập trình trước khi được hàn vào PCB hoặc được lập trình bằng cách sử dụng các đầu nối Lập trình trong hệ thống (ISP hoặc ICSP) thông qua một thiết bị "lập trình" đặc biệt được gắn vào máy tính cá nhân.

Bộ vi điều khiển thông thường đơn giản và chậm hơn nhiều so với bộ vi xử lý thông thường nhưng tôi tin rằng sự khác biệt chủ yếu là một trong các quy mô và ứng dụng.

Nó được tìm thấy, ví dụ, trong các thiết bị đơn giản như máy giặt cơ bản.


2

"Arduino" là một môi trường phát triển phần mềm bất kỳ bảng vi điều khiển nào mà môi trường phần mềm có thể phát triển các chương trình. Hầu hết các bo mạch đều sử dụng bộ vi điều khiển Atmel AVR.


2

Arduino là một nền tảng dựa trên vi điều khiển (ATMEGA 328 cho UNO). Nói chung, Bộ điều khiển vi mô phù hợp hơn bộ vi xử lý với bất kỳ thứ gì đòi hỏi phải cảm nhận đầu vào. Đó là bởi vì các bộ điều khiển vi mô như ATMEGA 328 có bộ chuyển đổi tương tự với bộ chuyển đổi kỹ thuật số (ADC) để cảm nhận điện áp và cũng có đầu ra PWM cũng như I / O kỹ thuật số.

Với Arduino bạn cũng có hệ thống Arduino Dev dễ lập trình hơn cho người mới và có một cộng đồng tốt để hỗ trợ và thư viện.

Một màn hình cảm ứng điện trở hoạt động như chiết áp; một cho x và một cho y. Vì vậy, bạn có thể đặt chúng vào đầu vào tương tự Arduino. Xem ở đây để biết chi tiết .

Một lựa chọn khác là chuyển đổi sang SPI hoặc I2C với nội dung như thế này và đọc bằng Arduino.

Dù bằng cách nào tôi nghĩ Arduino là một lựa chọn tốt.


@tcrosley hoặc bất kỳ thành viên lâu năm nào khác .. có lời khuyên nào cho một người đóng góp mới như tôi về việc tránh bỏ phiếu như thế này không? Câu trả lời của tôi là chính xác, trả lời câu hỏi và cung cấp thêm chi tiết để giao diện với màn hình cảm ứng điện trở. Bất cứ điều gì khác cần phải bao gồm?
akellyirl

3
Đừng bỏ phiếu quá nghiêm trọng. Tôi nghĩ rằng câu đầu tiên của bạn là một chút không chính xác mặc dù. Arduino giống như một nền tảng bao gồm phần cứng và phần mềm. Và một bảng Arduino không phải là một bộ điều khiển vi mô mà là một bảng được thiết kế xung quanh một bộ điều khiển vi mô.
Rev1.0

1
Giống như Rev1.0 nói: "Arduino là một vi điều khiển" là không đúng sự thật. Arduino là một SBC (Máy tính bảng đơn).
flup

1

Arduino bao gồm một bộ vi điều khiển (ATmega328on phiên bản UNO). Vì vậy, Arduino là một PCB với các chân của vi điều khiển được phân tách độc đáo, mạnh mẽ, tinh thể và FTDI cho kết nối USB với phần sụn trên bo mạch để bạn có thể dễ dàng lập trình nó với IDE của riêng mình. Dưới đây là danh sách về các thành phần arduino: http://learn.adafbean.com/arduino-tips-tricks-and-techniques/arduino-uno-faq

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.