2010-11-18 36 views
7

Câu chuyện sơ bộTôi có thể truy cập Cổng song song thông thường khi sử dụng USB với bộ điều hợp Cổng song song không?

Có chương trình này sử dụng Cổng song song để đồng bộ hóa với phần cứng khác. Nó sẽ đặt đầu ra Cổng song song thành một giá trị (byte) được chỉ định. Điều này làm việc không có vấn đề khi sử dụng Cổng song song tích hợp của PC. Các nền tảng mục tiêu là Windows XP đến 7, tất cả đều làm việc tốt cho đến nay. Mã nguồn nằm trong Delphi, có thể truy cập và có thể được sửa đổi.

Làm thế nào nó hoạt động

Trong Delphi Tôi có thể sử dụng io.dll để thiết lập giá trị của cổng song song, nhưng cũng có các giải pháp khác có sẵn, như inpout32.dll hoặc port.dll. Tôi gọi một cái gì đó như PortOut, chỉ định số cổng và giá trị byte và cổng được đặt.

gì bây giờ tôi muốn làm - và nơi tôi cần sự giúp đỡ

Bây giờ thay đổi: điều này cần phải làm việc trên một máy tính mà không có Parallel Port built-in (thậm chí không trên mainboard). Có một số tùy chọn có sẵn:

  • sử dụng một USB to Parallel Port adapter để thêm một cổng LPT với máy PC
  • sử dụng một card PCI có thêm một cổng LPT với máy PC
  • sử dụng một thẻ PCI Express thêm cổng LPT vào PC

Tôi hiện đang hướng đến và tập trung vào khả năng dễ dàng và rẻ nhất: bộ chuyển đổi USB sang cổng song song.

câu hỏi chính

Dường như có sự khác biệt giữa Cảng adapter song song được thực hiện để kết nối chỉ là một máy in và adapter khác mà dường như là mạnh hơn. Có gì khác sao? Hoặc tôi chỉ có thể sử dụng một trong 5 bộ điều hợp máy in này, cắm vào phần cứng của riêng tôi và truy cập cổng từ mã Delphi? Hay tôi cần một bộ chuyển đổi đặc biệt? Có ai có kinh nghiệm với điều này? Có một câu hỏi liên quan here, nhưng các loại bộ điều hợp khác nhau (nếu có) không được đề cập ở đó. This page cho thấy rằng có những khác biệt thực sự:

Tương phản với tất cả các cổng song song USB khác chỉ có thể kết nối với máy in, điều này giúp kết nối với hầu hết phần cứng.

Tôi hy vọng có giải pháp qua USB vì điều này bạn không phải mở PC, điều đó có nghĩa là bộ điều hợp có thể được thêm theo yêu cầu.

Sub-câu hỏi

Bạn có kinh nghiệm với PCI (Express) giải pháp? Tôi phải sử dụng một nếu cách tiếp cận USB không thành công.

Trả lời

9

Vì tôi đã vật lộn với điều này rất gần đây, đây là những gì tôi đã phát hiện ra; Nếu bạn có nghĩa là bằng cách sử dụng địa chỉ cổng IO (chỉ ra bởi tham chiếu của bạn để inpout32.dll), không có. Trừ khi trình điều khiển cổng song song USB của bạn hỗ trợ mô phỏng cổng đầy đủ hoặc ảo hóa, mà hầu hết không, điều này nói chung là không thể. Nếu bạn cần truy cập trực tiếp vào cổng để thực hiện "bit-twiddling" bình thường, bạn sẽ nhận được một cổng PCI-card song song riêng biệt. Hầu hết trong số họ trình bày mình như là IO bình thường tại địa chỉ tiêu chuẩn (es). Tôi cho rằng bạn không định sử dụng cổng song song để thực sự giao tiếp với máy in, đúng không? Điều thú vị là các bộ tiếp hợp USB-Serial dễ sử dụng hơn vì chúng xuất hiện dưới dạng các thiết bị ảo đơn giản, nơi bạn chỉ có thể "mở" chúng bằng cách sử dụng một luồng đơn giản; TFileStream.Create ("COM1", fmOpenRead) hoặc Windows.CreateFile ("COM2", ...);

Dưới đây là một số thiết bị mà dường như có ý để làm mô phỏng đầy đủ của một cổng song song thông qua USB:

https://www-user.tu-chemnitz.de/~ygu/bastelecke/PC/USB2LPT/index.en.htm

+1

Cảm ơn bạn rất nhiều vì chia sẻ hiểu biết của bạn! Chúng tôi bây giờ cũng đã làm một số xét nghiệm ở đây và phát hiện của chúng tôi tương ứng với của bạn. Có một số cách hacky để có được một grip trên thiết bị USB (cũng thông qua CreateFile), nhưng thiết lập các bit đơn thông qua WriteFile không thành công, (có thể) bởi vì adapter sau đó sẽ gửi một phản hồi và chờ câu trả lời. Và không, chúng tôi không có máy in kèm theo. Chúng tôi chỉ muốn thiết lập các bit đơn cho các thiết bị tùy chỉnh. Nhưng không có cách nào: (Tôi cũng đã đi dọc theo trang của TU Chemnitz, nhưng điều này dường như là quá mức cần thiết. Nó chỉ có hoạt động nhanh chóng và không có chi phí của các thiết bị tùy chỉnh. –

Các vấn đề liên quan