Sử dụng GPIO trong PC


9

Tôi đã có một dự án đơn giản trên thiết bị chủ nên lái 2 chân với mức logic cao (điện áp 3,3V, 5V hoặc 12V - không thành vấn đề) và chờ cho 2 chân khác được điều khiển ở mức cao bởi thiết bị ngoại vi.

Tôi có thể triển khai thiết bị chủ như vậy với PC tiêu chuẩn không và tôi nên sử dụng phần cứng nào (tích hợp hoặc bổ sung)?


2
Bạn đang tìm mua một cái gì đó như mccdaq.com ?
kenny

1
Tôi quan tâm, có lẽ PC đã có sẵn một số chức năng (bộ điều khiển, chân) tích hợp cho mục đích của tôi? Và nếu không - hãy tìm một số giải pháp để mua (btw, cảm ơn vì liên kết!)
Andrey Pesoshin

1
Một giải pháp tiềm năng, vừa đơn giản vừa tiết kiệm, sẽ sử dụng một cái gì đó như Launchpad MSP430, được kết nối với PC qua USB, được lập trình trong môi trường phần mềm giống như Arduino, được gọi là Energia, với giá 4,30 đô la bao gồm S / H (FedEx 2 ngày, trên toàn thế giới), hoặc thậm chí là bảng DIY rẻ hơn bằng cách sử dụng một AVR (như attiny85 với USB bitbanged) được lập trình trên PC trong Arduino (nếu bạn thích hoặc thích).
icarus74

Câu trả lời:


7

Không rõ bạn muốn PC làm gì và thiết bị phải làm gì ("thiết bị chủ" không có ý nghĩa gì), nhưng có vẻ như bạn muốn I / O kỹ thuật số cơ bản từ PC.

PC không thực sự được thiết kế cho I / O kỹ thuật số trực tiếp cho các thiết bị bên ngoài. Tuy nhiên, bạn có thể mua các mô-đun I / O kỹ thuật số kết nối với PC qua USB, sau đó cho phép bạn đọc và ghi các tín hiệu kỹ thuật số riêng lẻ. Bạn có thể tự làm điều này một cách dễ dàng nhất bằng cách có một vi điều khiển giao tiếp với PC thông qua cổng COM.

Tuy nhiên nếu đây thực sự chỉ là một vấn đề điều khiển đơn giản, tại sao bạn lại cần một PC? Có một vi điều khiển nhỏ làm toàn bộ nhiệm vụ. Đó chính xác là những gì micronctrollers dành cho. Chúng là những máy tính nhỏ có các dòng I / O kỹ thuật số và khác được phát hành nhằm kết nối trực tiếp với phần cứng bên ngoài.


1
Chúng tôi không có một mô tả đầy đủ về chức năng mong muốn, nhưng tôi đoán là anh ta cần một SR-flip-flop kép. Mà bạn có thể mô phỏng với CPU 1 tỷ bóng bán dẫn :-).
stevenvh

1
cảm ơn câu trả lời của bạn. Tôi hiểu rằng có một số lượng lớn các giải pháp để thực hiện, nhưng tôi muốn hỏi chắc chắn về kết nối trực tiếp của thiết bị bên ngoài với PC. Bây giờ tôi thấy rằng tôi không thể làm điều đó trực tiếp nhưng với bộ điều khiển bổ sung hoặc bảng I / O.
Andrey Pesoshin

@stevenvh Tôi đã đơn giản hóa mô tả của một dự án để hoàn tác tốt hơn;) Tôi cần làm rõ chỉ là phần giao
thoa

13

Nếu bạn vẫn có thể tìm thấy một cổng, điều đáng nói là một cổng song song thực sự gần với GPIO như bạn sẽ tìm thấy trong một PC ngoài luồng. Việc triển khai cổ điển thiếu một số tính linh hoạt ở chỗ nhiều chân có hướng cố định và một số bị đảo ngược, nhưng mọi người đã làm việc xung quanh đó trong nhiều năm.

Hạn chế lớn hơn là các cổng như vậy đang bị tuyệt chủng. Các thay thế trừu tượng hơn như bộ chuyển đổi song song USB thường chỉ có thể sử dụng để điều khiển máy in thực tế và thiếu các thanh ghi mà bạn có thể đọc / ghi trực tiếp để đặt hoặc theo dõi trạng thái pin. Đã có tin đồn là một số ít có khả năng này, nhưng chúng có thể khó tìm và đòi hỏi sự chú ý chi tiết đến các trình điều khiển.

Tại thời điểm đó, nó có xu hướng trở nên thiết thực hơn khi sử dụng thiết bị I / O được kết nối USB. Thường thì đây là một vi điều khiển chạy phần sụn đơn giản, từ nhà sản xuất hoặc tùy chỉnh.

Một lợi thế lớn của việc triển khai tùy chỉnh là khả năng giảm tải các phần quan trọng nhất, lặp đi lặp lại và / hoặc thời gian nhất của thao tác I / O cho bộ xử lý trên thiết bị, thay vì cố gắng thực hiện từ PC khi độ trễ Gói USB, đi qua nhiều xe buýt và hệ điều hành đa nhiệm có xu hướng làm cho hoạt động từng bit một bị chậm một cách đau đớn.

Nếu bạn chưa tìm ra chính xác hình thức mà giải pháp của bạn sẽ sử dụng, một khả năng là lấy một thứ giống như Arduino được đóng gói theo cả phần cứng và chuỗi công cụ để dễ sử dụng và có thể hoạt động như một giải pháp độc lập hoặc như một người trợ giúp I / O để thực hiện các nhiệm vụ cấp thấp theo lệnh từ PC đính kèm.


2
OP nên chọn tuyến cổng song song, điều đáng chú ý là HĐH dựa trên NT (tức là bất kỳ HĐH Windows nào được phát hành trong thập kỷ trước) sẽ yêu cầu trình điều khiển chế độ nhân đặc biệt để truy cập cổng song song. Nếu bạn đang sử dụng phiên bản Windows có Chính sách ký mã chế độ hạt nhân (ví dụ: Vista / W7 x64, thậm chí là W7 x86), thì trình điều khiển này cũng sẽ cần phải được ký điện tử.
ajs410

1
câu trả lời tuyệt vời, tôi sẽ bỏ phiếu nếu tôi có thể :-)
Andrey Pesoshin

1
@ ajs410 - các yêu cầu ký mã như vậy có thể áp dụng cho trình điều khiển cho bất kỳ giao diện nào khác, chẳng hạn như USB. Một kết thúc có thể có thể là sử dụng thứ gì đó mà hệ điều hành đã cung cấp mã trình điều khiển và tất cả những gì cần thiết là một tệp cấu hình / thông tin, ví dụ như cổng com ảo. Đó không phải là GPIO, nhưng nó có thể được sử dụng như một kênh lệnh / trạng thái để nói chuyện với một người trợ giúp vi mô có GPIO.
Chris Stratton

8

Tôi khuyên bạn nên sử dụng FTDI FT 232RL bằng trình điều khiển đặc biệt cho phép chế độ bitbang của nó . Phương pháp này sẽ hoạt động trên hầu hết tất cả các PC và cho phép truy cập độ trễ khá tốt vào GPIO đơn giản.
Có rất nhiều bảng đột phá chip FTDI ngoài kia, nhưng cá nhân tôi sử dụng bảng này .


cảm ơn vì lời khuyên, nó có vẻ giống như một hack nhưng nên hoạt động. Tôi đã tìm thấy giải pháp tương tự 8 CHANNEL USB GPIO MODULE
Andrey Pesoshin
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.