View Single Post
Old 25-08-2009, 11:52 AM   #2
bqviet
PIC Bang chủ
 
Tham gia ngày: Jul 2007
Bài gửi: 43
:
Trích:
Nguyên văn bởi HaiAu2005 View Post
Mình không hiểu lắm khi Falleaf nói (hoặc có thể Falleaf chưa hiểu trao đổi của mình):

Anh Hùng, cái này làm cực kỳ đơn giản, nếu cần thiết anh gửi yêu cầu lên, em nghĩ sẽ có nhà thiết kế làm được cái này cho anh bằng PIC.

Tại sao lại phải dùng PIC nữa? Dùng PIC trong trường hợp này để làm gì khi mà đã có một bảng giao diện USB hoàn chỉnh rồi? Hay dùng PIC để thay PIC trong bảng giao diện USB của họ?

Khi mua thiết bị thí nghiệm về sau khi nạp xong chương trình điều khiển và driver thì thấy nó không hỗ trợ bất kỳ một ngôn ngữ lập trình khác và là chương trình "chết cứng" không thay đổi được nên mới nghĩ đến việc thay đổi chương trình đó mà không cần phải dùng tới một bảng giao diện dữ liệu nào khác vì thiết bị đã có sẵn một bảng giao diện USB cùng driver.

Mình nghĩ rằng về nguyên tắc khi một bảng giao diện nào đã kết nối với máy tính và đã có driver rồi thì có thể dùng Visual Studio hoặc có một cách nào đó có thể tiếp cận tới thiết bị đó để nhận và phát dữ liệu (vì các drivers đều xuất hiện trong Device Manager). Tuy nhiên không chắc chắn lắm vì chưa làm cái này bao giờ, mà chỉ làm các ứng dụng điều khiển với bảng giao diện từng dùng thì khi nạp drivers vào thì chúng đều đã "sẵn sàng" chạy rồi không cần phải làm thêm gì khác.

Nếu mất nhiều thời gian thì có lẽ phải tìm giải pháp khác đơn giản và mất ít thời gian hơn mà vẫn thay đổi được chương trình điều khiển, ví như thay bảng giao diện USB dùng loại khác và phần mềm khác mà ở Lab có. Nghĩa là nếu ý ở trên dùng PIC để thay thế cái bảng USB của nhà sản xuất & dùng Visual Studio thì có thể có giải pháp khác thay bằng một NI-DAQ card và chạy bằng LabVIEW đã có sẵn thì cực kỳ đơn giản và lập trình hệ điều khiển bằng LabVIEW dễ dàng hơn Visual Studio.

HA
Trích:
Nguyên văn bởi HaiAu2005 View Post
Có ai có kinh nghiệm lập trình nhận và xuất dữ liệu qua cổng USB của một bảng USB I/O board đã có Driver (của hãng sản xuất), xem trao đổi ở địa chỉ sau:

http://www.dieukhien.net/vn/discuss....3047&pagenum=1

xin trao đổi giùm. Tôi đang muốn dùng Visual Studio/.NET để nhận dữ liệu và xuất dữ liệu tới bảng giao diện USB đã nạp driver (có file dll) rồi liệu có thể được không?

Hải Âu

Quả thực chưa hiểu anh Hải Âu muốn làm theo cách nào. Có 2 hướng chính để kết nối máy tính (chạy phần mềm đo lường - điều khiển) với thế giới bên ngoài: sử dụng bo mạch vào/ra tín hiệu và đổ chương trình lên bo mạch / thiết bị.

Ở cách thứ nhất, bo mạch chỉ làm nhiệm vụ vào/ra tín hiệu, ngoài ra không làm gì khác. Toàn bộ chương trình nằm trên máy tính. Với cách này, phần mềm máy tính tương đối nặng, băng thông (tốc độ vào/ra) nói chung bị hạn chế và người sử dụng phải lập trình tương đối sâu khi can thiệp vào hoạt động của bo mạch. Chuẩn truyền thông có thể là ISA, PC104, PCI, PC104+, USB.

Ở cách thứ hai, ngay trên bo mạch đã có khả năng xử lý nhất định và chương trình sau khi biên dịch trên máy tính sẽ được "đổ" lên bo mạch và chạy ở đây, giải phóng khỏi chức năng tính toán của máy tính. Máy tính lúc này chỉ đóng vai trò giám sát, ít tham gia trực tiếp. Cách này giải quyết được những nhược điểm của cách trên, nhưng giá thành đắt hơn. Chuẩn truyền thông thường là Ethernet, PXI, PCI Express. Điển hình của phương pháp này là hãng dSPACE sử dụng cho dòng sản phẩm mô phỏng của mình.

Theo như anh Hải Âu đề cập trong bài viết đầu, có vẻ anh muốn đi theo cách thứ nhất. Tuy nhiên có mấy vấn đề khuyến cáo anh sẽ gặp phải
_ Lập trình trực tiếp bằng C/C++ vất vả đấy, khối lượng công việc cần làm tương đối lớn nếu so với các bo mạch hỗ trợ Matlab/Simulink.
_ Visual Studio chưa chắc đã cho phép can thiệp sâu tới cấp thấp của bo mạch. Đây là nhược điểm của môi trường Windows nói chung kể từ WinNT.
_ Bo mạch vào/ra kết nối cổng USB người rành về nhúng có thể làm tương đối đơn giản, tuy nhiên với người chuyên về học thuật và quen làm việc thì lại nằm ngoài tầm tay.
_ Làm kết nối USB thì dễ, nhưng vào/ra tín hiệu analog không bao giờ dễ dàng. Còn rất nhiều vấn đề sâu sa mà tay mơ dễ bỏ qua: thời gian lấy mẫu, độ phân giải ADC & DAC, lọc nhiễu bằng mạch hay bằng thuật toán, nếu bằng mạch thì mạch lọc kiến trúc nào, lọc bằng thuật toán thì dùng thuật toán nào, thay đổi hệ số khuếch đại, dòng thiên áp (bias current), điện áp lệch (offset voltage) ...
bqviet vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn