http://www.ebook.edu.vn SV:Trần Quốc Gia Phú, Trần Hạ Long - 34
- Một số driver thuộc loại monolithic xử lý mọi thứ từ giao tiếp với ứng dụng đểđọc và ghi đến cổng hoặc các địa chỉ nhớ nối đến phần cứng thiết bị. Các loại driver khác, gồm driver cho thiết bị USB, sử dụng mô hình driver phân lớp cho mỗi driver trong một loạt các thể hiện từng bước của việc liên lạc. Lớp đỉnh chứa một driver hàm quản lý liên lạc giữa các ứng dụng và các driver bus cấp thấp. Lớp dưới cùng chứa các driver bus quản lý liên lạc giữa các driver hàm và phần cứng. Một hoặc nhiều bộ lọc driver có thể
thêm vào các driver hàm và driver bus. Mặc dù mô hình driver phân lớp rất phức tạp,nhưng lại đơn giản cho việc viết driver vì các thiết bị có thể chia sẽ code cho các task giống nhau. Nên có thể nói rằng các driver xử lý liên lạc với hệ thống phần cứng USB
đươc tích hợp vào Windows, vì vậy người viết driver không cần phải cung cấp chúng. Do
đó việc viết driver cho môt thiết bị USB đơn giản hơn nhiều so với việc viết driver truy xuất cac thiết bị phần cứng khác.
VII)Giao tiếp trên host:
Một thiết bị ngoại vi USB sẽ là vô dụng nếu PC không biết cách liên lạc với nó. Để
thực hiện liên lạc được với tất cả các loại ngoại vi thì hệđiều hành phải thông qua driver thiết bị. Vì chỉ có river thiết bị mới thực hiện liên lạc giữa hệ thống các driver USB và các ứng dụng nhằm mục tiêu truy xuất thiết bị.
1.Căn bản về driver thiết bị:
Driver thiết bị là một tổ hợp phần mền cho phép ứng dụng có thể truy xuất được một thiết bị phần cứng. Thiết bịđó có thể là máy in, modem , bàn phím, đầu phát video, đơn vị thu dữ liêu, hay một thiết bị nào đó mà CPU có thể truy xuất thông qua các đường mạch. Thiết bị cũng có thể nằm ngay trong máy tính như các ổ đĩa cứng và nó cũng có thể sử dụng cáp để nối với máy tính(chuột, bàn phím).Một vài lớp driver có thể giao tiếp xử lý giao tiếp với nhiều loại thiết bị có cùng các chức năng.
2.Che dấu ứng dụng từ các chi tiết:
-Driver che dấu các ứng dụng từ việc phải hiểu các chi tiết về các kết nối vật lý,tín hiệu, giao thức cần thiết để có thể giao tiếp với một thiết bị. Các ứng dụng này là các chương trình mà người dùng đang chạy, như là các chương trình xử lý word và cơ sở dữ
liệu đến các ứng dụng đặc biệt mà thiết bị có thể hỗ trợ.
-Một driver có khả năng cho phép code ứng dụng được truy xuất một ngoại vi với điều kiện ứng dụng phải biết tên ngoại vi hoặc chức năng thiết bị. ứng dụng không cần phải biết địa chỉ vật lý của cổng mà thiết bị gắn vào, và cũng không phải giám sát tường tận và
điều khiển tín hiệu bắt tay mà ngoại vi cần. Ứng dụng cũng không cần phải biết thiết bị đó giao tiếp theo chuẩn USB hay các chuẩn khác. Code ứng dụng có thể giống nhau cho tất cả các giao tiếp, với các chi tiết đặc tảđã được xử lý ở cấp thấp hơn.
Phần 2: Giao tiếp USB
http://www.ebook.edu.vn SV:Trần Quốc Gia Phú, Trần Hạ Long - 35
- Driver hoàn thành trách nhiệm của nó bằng việc thông dịch trung gian giữa code cấp
ứng dụng và code đặc tả phần cứng. Code cấp ứng dụng sử dụng các hàm được hỗ trợ bởi hệđiều hành để giao tiếp với các driver thiết bị. Code đặc tả thiết bị xử lý các giao thức cần thiết để truy xuất các mạch ngoại vi, gồm việc phát hiện các trạng thái của các tính hiệu status và các tín hiệu điều khiển toggle tại các thời điểm thích hợp. Trong windows có tích hợp một số hàm API(giao tiếp của các ứng dụng người viết) cho phép các ứng dụng giao tiếp với các driver thiết bị. Các ứng dụng được viết bằng Visual Basic, Visual C++, Delphi có thể gọi được các hàm API. Ba hàm mà driver có thể hỗ trợ việc đọc, ghi cho thiết bị USB là Readfile, Writefile, DeviceIocontrol. Mặc dù API là các hàm đơn giản cho việc xử lý liên lạc với phần cứng, nhưng nó đòi hỏi phải có đặc tả và các yêu cầu khắt khe cho các giá trị chúng mang di và trả về. Thường rất ít khi xảy ra lỗi trong việc gọi hàm API ngay cả khi hệ thống bị lỗi.
-Một số driver thuộc loại monolithic xử lý mọi thứ từ giao tiếp với ứng dụng đểđọc và ghi đến cổng hoặc các địa chỉ nhớ nối đến phần cứng thiết bị. Các loại driver khác, gồm driver cho thiết bị USB, sử dụng mô hình driver phân lớp cho mỗi driver trong một loạt các thể hiện từng bước của việc liên lạc. Lớp đỉnh chứa một driver hàm quản lý liên lạc giữa các ứng dụng và các driver bus cấp thấp. Lớp dưới cùng chứa các driver bus quản lý liên lạc giữa các driver hàm và phần cứng. Một hoặc nhiều bộ lọc driver có thể thêm vào các driver hàm và driver bus. Mặc dù mô hình driver phân lớp rất phức tạp,nhưng lại đơn giản cho việc viết driver vì các thiết bị có thể chia sẽ code cho các task giống nhau. Nên có thể nói rằng các driver xử lý liên lạc với hệ thống phần cứng USB đươc tích hợp vào Windows, vì vậy người viết driver không cần phải cung cấp chúng. Do đó việc viết driver cho môt thiết bị USB đơn giản hơn nhiều so với việc viết driver truy xuất cac thiết bị
phần cứng khác.
VIII)Host lựa chọn driver
Khi windows phát hiện một thiết bị ngoại vi mới, một trong những thứ nó phải quyết
định là loại driver của thiết bị nào mà ứng dụng có thể sử dụng để liên lạc được với thiết bị và nếu cần thiết, nạp vào driver được lựa chọn. Đây là công việc của Device manager trong Windows, nó sử dụng chương trình cài dặt tự động dành cho cho thiết bị và lớp thiết bị và các file INF để tìm ra driver thích hợp.
1.Tiến trình:
-Device manager là một applet(chương trình vi mã) cho phép đáp ứng mọi cài đặt, cấu hình, gỡ bỏ thiết bị. Device manager còn bổ sung thêm vào thông tin về mỗi loại thiết bị đến đăng ký vào hệ thống(system registry), hệ thống này là một cơ sở dữ liệu mà windows lưu trữ thông tin then chốt về phần cứng và phần mền được cài đặt vào hệ
thống.
-Trình tự động cài đặt thiết bị và lớp thiết bị là các DLL. Windows có các trình tự động cài đặt mặc định cho phép device manager sử dụng để định vị và nạp các driver thiết bị trong các lớp được hỗ trợ bởi hệđiều hành( như là lớp HID). Device manager và các trình tựđộng cài đặt cùng với nhau đều có khả năng đáp ứng cho sử thể hiện các hộp dialog như là sự cần thiết để nhắc nhở ngừơi sử dụng qua các thông báo.
Phần 2: Giao tiếp USB
http://www.ebook.edu.vn SV:Trần Quốc Gia Phú, Trần Hạ Long - 36
-File INF là file văn bản chứa các thông tin nhằm giúp đỡ Windows định dạng một thiết bị. File báo cho windows biết các driver và các driver được dùng và bất cứ thông tin lưu trên registry.
2.Tìm kiếm các file INF
-Khi windows điểm danh một thiết bị USB mới, Device manager so sánh dữ liệu trong tất cả các hệ thống file INF với thông tin trong descriptor truy xuất từ thiết bị trong quá trình điểm danh. Một máy tính cá nhân điển hình có thể lưu trữ hàng trăm file INF. Để
tránh trường hợp phải đọc tất qua tất cả các file INF mỗi lần một thiết bị mới được phát hiện. Windows lưu trữ cơ sở dữ liệu thông tin về driver với thông tin được chọn lọc từ
các file INF của nó. File cơ sở dữ liệu này là các file drvdata.bin và drvidx.bin được lưu trữ trong thư mục windows/inffolder. Ta có thể thấy được kích thước của những file này trong bằng chương trình text editor. Nhưng không đựơc thay đổi các giá trị.
-Drvidx.bin liệt kê tên mỗi Vendor ID và Product ID trong các file INF, đi kèm theo là tên các nhà sản xuất, tên nhà cung cấp, và sự mô tả.
-Drvdata.bin so trùng các nhà sản xuất với các file INF chứa các thông tin về sản phẩm của họ. Sau khi truy xuất xong Vendor ID và PID từ thiết bị, Device manager sử
dụng thông tin trong 2 file này để tìm nhà sản xuất với thông tin về sản phẩm đặc tả.
3.Vai trò của registry:
Registry hệ thống lưu trữ thông tin về tất cả các thiết bị đã install, dù chúng có vừa
được kết nối và điểm danh hay không. Khi một thiết bịđược điểm danh, Device Manager lưu thông tin về thiết bị trong registry. Ta có thể tìm thấy các thông tin thiết bịđã lưu trữ
trong regedit.exe. Vì hệ thống registry là cấu thành rất quan trọng của Windows, do đó