3 1 BÌA SỔ khổ giấy 210 x 297 mm N G U Y Ễ N T H Ị H U Y Ề N BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠO HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ KHOA HỌC Đ O L Ư Ờ N G & C Á C H Ệ T H Ố N G Đ IỀ U K H IỂ N NGÀNH[.]
CƠ SỞ GIAO TIẾP USB
Trong một máy tính thông thường, CPU và bộ nhớ được gắn trên bo mạch chính cùng với một số linh kiện thiết yếu khác Thông tin được truyền tải giữa các linh kiện thông qua một mạch lưới gọi là bus, với các bus có thể có kích thước 8, 16 hoặc 32 bit.
Các bus 8 bít, 16 bít và 32 bít cho phép truyền tải thông tin với lưu lượng lớn hơn, tương tự như xa lộ đa luồng Việc sử dụng bus với số bít cao giúp tăng cường khả năng chuyển tải dữ liệu, từ đó nâng cao đáng kể tốc độ hoạt động của hệ thống.
Trong máy tính, có nhiều bus kết nối các linh kiện với nhau, trong đó một số bus nối với các khe cắm trên bo mạch, cho phép người dùng mở rộng tính năng bằng cách lắp đặt các bo mạch cạc chuyên dụng Ngoài ra, một số bus khác kết nối với các cổng ngoài, giúp kết nối các thiết bị ngoại vi dễ dàng thông qua các cổng có sẵn hoặc thông qua các card chuyên biệt Điều này mang lại sự tiện lợi cho người dùng trong việc nâng cấp và mở rộng chức năng của máy tính.
Giao diện cổng máy in trên PC tương thích là một trong những giao diện linh hoạt nhất để kết nối PC với các thiết bị ngoại vi Ban đầu, giao diện này được phát minh cho máy in, nhưng sau đó đã được áp dụng cho nhiều loại thiết bị khác nhau Sự đơn giản của nó cho phép dữ liệu được truyền đi hoặc nhận về một cách hiệu quả Giao diện này có thể truy cập và đo lường trực tiếp trên các thiết bị tương thích.
Khác với các công nghệ truyền thống sử dụng chip để chuyển đổi dữ liệu, dữ liệu song song được quản lý hoàn toàn thông qua phần mềm Điều này có nghĩa là bạn có thể hoàn thành việc điều khiển hành động một cách tự động chỉ bằng phần mềm mà không cần đến phần cứng phức tạp.
Nguyễn Thị Huyền – Đo lường & các hệ thống điều khiển – CH2005_2007 n àyđược hoàn thành bằng cách viết ữ d liệu ới t c ác khu vực đặcbiệt ủa ộ c b nhớI/O của m táy ính
Cổng máy in có 3 thanh ghi: một cho dữ liệu ra, một cho các đường điều khiển đầu ra, và một cho các đường điều khiển đầu vào Chuẩn PC bắt đầu các cổng I/O cho giao diện song song đầu tiên tại 0x378, và thứ hai tại 0x278 Cổng đầu tiên là một thanh ghi dữ liệu hai chiều, cho phép nối trực tiếp với máy in qua chân 9 trên giắc cắm Cổng thứ hai là một thanh ghi trạng thái chỉ dành cho việc đọc, ghi lại những trạng thái quan tâm của máy in như online, giấy ra, hay là bận Cổng thứ ba là một thanh ghi điều khiển chỉ dành cho đầu ra.
Có ba loại cổng m áy in khác nhau có th th trể ấy ên máy tính:
• Cổng ột m chiều: Cổng n là cày ổng xuấthiện đầu êti n trong 3 loại ổng ể c k êtr n
Cả bao loại ổng đều c có thểchạytrong chế độ ổng ột c m chiều
• Cổng hai chiều: Cổng n ày cho phép d ữ liệu truyền theo cả hai chiều êtr n cùng m ột đường d ây
• Cổng song song nhanh: Cổng n ôày kh ng chỉ cho phép d ữ liệu chuyển đổi theo kiêu hai chiều mà c òn chạy ới ột ốc độ v m t cao hơn.
Cổng hai chiều cho phép truyền dữ liệu theo cả hai hướng trên cùng một đường, hỗ trợ các cổng loại hai và ba có khả năng hoạt động với hiệu suất cao Cổng này có thể thực hiện chuyển đổi dữ liệu ở ba mức khác nhau, giúp tối ưu hóa quá trình truyền tải thông tin.
Cổng nối tiếp, hay còn gọi là cổng COM (Communication), truyền dữ liệu dưới dạng từng bít một Trong máy tính, thường có hai cổng COM1 và COM2, cùng với các cổng dự trữ COM3 và COM4.
Dữ liệu được truyền từng bít một qua cổng nối tiếp, dẫn đến tốc độ truyền chậm nhưng đảm bảo tính chính xác Phương pháp này cho phép truyền tải dữ liệu ở khoảng cách xa, là giải pháp thuận tiện để kết nối máy tính với các thiết bị đầu cuối ở xa.
Nguyễn Thị Huyền – Đo lường và các hệ thống điều khiển – CH2005_2007 cho biết rằng phương pháp truyền thông RS232 được sử dụng để trao đổi thông tin với các thiết bị ở khoảng cách lớn.
Card RS232 cho phép trao đổi thông tin không đồng bộ giữa máy tính và thiết bị bên ngoài, quy định 25 tín hiệu và tín hiệu hội thoại cho quá trình truyền dữ liệu Chuẩn này xác định mức điện áp, trở kháng, tốc độ và dung lượng truyền tối đa Trong máy tính, RS232 được sử dụng để giao tiếp với MODEM, chuyển đổi tín hiệu máy tính thành tín hiệu điện thoại và ngược lại Ngoài ra, chuẩn này cũng được áp dụng để kết nối máy tính với các máy in chất lượng cao.
Trong cuộc cạnh tranh giữa các máy tính sổ tay nhỏ, PCMCIA là giải pháp giúp giảm kích thước Trước đây, bàn phím và bộ nguồn là những yếu tố chính cần chú ý, khiến máy tính thiếu tính di động và khe cắm mở rộng Tuy nhiên, giờ đây, người dùng không còn lo lắng về vấn đề này, nhờ vào thiết kế các bản mạch có kích thước thẻ tín dụng, cho phép bổ sung cổng giao tiếp, mở rộng bộ nhớ và lưu trữ phần mềm Với trọng lượng nhẹ và độ dày từ 3 đến 10,5 mm, các thẻ PCMCIA hy vọng sẽ trở thành tiêu chuẩn tương đương với ISA trong các máy tính để bàn.
The Personal Computer Memory Card International Association (PCMCIA) is a group of 300 industrial manufacturers dedicated to standardizing the specifications of PCMCIA cards, enabling users to easily interchange cards between different computers.
Nguyễn Thị Huyền – Đo lường & các hệ thống điều khiển – CH2005_2007
Vào cuối năm 1990, chuẩn PCMCIA được thiết lập với phiên bản 1.0, đáp ứng nhu cầu bộ nhớ cho máy tính di động Tháng 9-1991, phiên bản 2.0 ra mắt, thiết lập chuẩn cho modem, LAN, băng tần radio cầm tay và các thiết bị ngoại vi I/O Phiên bản 2.0 hoàn toàn tương thích với phiên bản 1.0, cho phép các card của phiên bản mới hoạt động trên khe cắm của phiên bản cũ Phiên bản 2.0 bao gồm ba kích thước card tương thích.
• Loại I: Loại card đầu tiên xuất hiện trên thị trường, dày 3 mm và thường được dùng để mở rộng bộ nhớ
• Loại II: Dày hơn 5 mm Loại này được sử dụng cho các ứng dụng như Fax- modem, LAN
• Loại III: Dày 10,5 mm, có chứa bộ phận lưu trữ quay và chủ yếu dùng trong liên lạc viễn thông, kể cả liên lạc không dây.
Phiên bản 2.01 đã được phát hành để điều khiển quá trình đọc dữ liệu trên thẻ Phiên bản này bao gồm các chỉnh sửa về kiểu chữ mà không bổ sung thêm bất kỳ tính năng kỹ thuật mới nào.
THIẾT KẾ BỘ THU THẬP DỮ LIỆU LÊN MÁY TÍNH THEO CHUẨN USB
MÁY TÍNH THEO CHUẨN USB
II.1 GIỚI THIỆU VỀ PIC18F2 550
PIC18F2550 là vi xử lý 8 bit thuộc dòng PIC18, được phát triển bởi Microchip với khả năng hỗ trợ truyền thông USB Ngoài chức năng truyền thông USB, vi xử lý này còn tích hợp đầy đủ các chức năng của một vi điều khiển PIC thông thường.
Nguyễn Thị Huyền – Đo lường & các hệ thống điều khiển – CH2005_2007
• B ộvi xử lý v c ới ấutrúc arvard H
+ Tốc c b độ ủa ộvi xử lý lên đến48 MHz
+ Có c ác chế độ hoạt động êti u thụ nít ăng lượng: Sleep 1 Mode, Idle 2 Mode
+ Dải i đ ệnáp hoạt động ừ t 2.0V tới5.5V
1 Chế độ Sleep tiêu thụ 0.1uA
2 Ch ế độ Idle ti u th ê ụ 5.8uA
Nguyễn Thị Huyền – Đo lường & các hệ thống điều khiển – CH2005_2007
+ 3 ngắt ngoài INT0, INT1, INT2
+ 4 bộ Timer/Count (Timer0 tớier Timer3)
- Capture 16 bit, thời gian bắt ẫu m nhỏ nhất là 6.25nS
- Compare 16 bit, thời gian bắt ẫu m nhỏnhất là 100nS
+ 10 đầu v ào biến đổiADC 10 bit
+ Cổng truyền ôth ng nối tiếp đồng ộ b MSSP
- 3 đường SPI cho chép c ả4 chế độ truyền ô th ng
- 2 đườngI2C cho 2 chế độ Master v Slaveà
+ Khối truyền ôth ng không đồng b ộ USART cho tốc độ truyền lên t i 115 ớ
+ Khốitruyền ôth ng USB hỗ c trợ ả4 kiểutruy : truyền ền đ ều i khiển, truyền đẳngth , truyời ềnkhối và truyềnngắt
+ Không gian bộ nhớchương trình 24K byte với chu kỳghi xoá 100,000 lần
+ Ngăn xếp có sâđộ u 32 mức
+ Không gian bộ nhớ ữ d liệu: 2K byte SRAM, 256 byte EEPROM
+ Chíp có thể ập l trình th ng qua chu ô ẩn ối n tiếpICSP
+ Phần mềmphát triểnmiễn í ph MPLAB IDE cung cấp chức năng soạn th , gảo ỡ lỗi và lập trình
+ C ng cô ụsoạnthảo ằng b ông n ngữ – C C18 hỗ trợnhiềuthưviệnCode
Nguyễn Thị Huyền – Đo lường & các hệ thống điều khiển – CH2005_2007
Pic18f2455 hỗ trợ hai tốc độ truyền thông USB: low-speed (dưới 1M bit/s) và full-speed (12M bit/s) Khối giao diện USB (SIE) cho phép giao tiếp trực tiếp với USB thông qua một bộ điều khiển truyền nhận nội bộ, hoặc có thể kết nối với một bộ truyền nhận bên ngoài Ngoài ra, một bộ điều chỉnh điện áp 3.3V cũng có thể được sử dụng cho các ứng dụng của bộ truyền nhận nội 5V.
Pic18f2455 hỗ c trợ ả4 kiểu truyền USB: truyền iđ ều khiển, truyền khối, truyền ngắt, v truyà ềnđẳngthời
M v ột ài chức ă n ng phần cứng được ải ến c ti đểđạt ệu hi xu ấtcao Vùng b ộnhớ ữ d liệuRAM USB c dung ló ượng tới1K byte.
1.2.2 ác C trạngth và i ái đ ềukhiển B US
Hoạtđộng ủa c khốiUSB được c ấuhình v quà ản lý bởi 3 thanh ghi điềukhiểntrong tổng s ố 19 thanh ghi dùng cho truyền ôth ng USB Các thanh ghi đó là:
Nguyễn Thị Huyền – Đo lường & các hệ thống điều khiển – CH2005_2007
• Thanh ghi điều i khểnUSB USB Control regis er (UCON)– t
• Thanh ghi cấu hình USB USB Configuration register (UCFG)–
• Thanh ghi trạng thái truyền USB – USB Transfer Status register (USTAT)
• Thanh ghi địa chỉ thiết b ị USB – USB Device A ress regdd ister (UADDR)
• 2 thanh ghi số khung bản tin – Frame Number register (UFRMH:UFRML)
• 16 thanh ghi (từ 0 tới15) hiệu ực đ ểm l i cuối – Endpoint Enable register (UEPn)
I.4.12.1.1 a Thanh ghi điều khiểnUSB (UCON)
Thanh ghi điềukhiểnUSB chứa c ác bit cầnthiết để đ ều i khiểnhoạt động ủa c khối USB Đó là c ác bit cấu hình cho mục đíchsau:
• Cho phép hoạt động ủa c khốingoạivi USB (bit USBEN)
• Thiết l l ập ạicon trỏ ộ đệm b Ping-Pong (bit PPBRST)
• Điều khiển ch ếđộ Suspend (bit SUSPND)
• Vô hiệu á ho việctruyền g ói(bit PKTDIS)
I.4.12.1.2 b Thanh ghi cấu hình USB (UCFG)
Thanh ghi cấu hình USB thựchiệnnhiệm ụ v chính sau:
• Chọn tốc độ b là us full speed hoặc low speed (bit FSEN)
• Cho phép s dử ụng đ ện i trởpull up tr n chip (bit UPUEN)ê
• Cho phép s dử ụng ộ b truyềnnhận êtr n chip (bit UTRDIS)
Nguyễn Thị Huyền – Đo lường & các hệ thống điều khiển – CH2005_2007
• C hấu ình ác c b ộ đệmPing Pong ( bit PPB1:PPB0) -
Hình 2.2 Thanh ghi 4: UCFG I.4.12.1.3 c Thanh ghi trạng ái USB (th USTAT)
Thanh ghi Trạngthái USB mô t ảtrạngthái c ủakhốitruyền ôth ng USB (SIE) Khi SIE hoàn t ấtviệctruyền/nhận, USTAT sẽđược đọc để x ácđịnh c ôác th ng tin:
• S iố đ ểmcuối(bits ENDP3:ENDP0)
• Giá trịcon trỏ ủa ộ đệm c b ping pong (bit PPB)-
1.2.3 Sơ đồ ghép n ối(chế độ full speed)
Nguyễn Thị Huyền – Đo lường & các hệ thống điều khiển – CH2005_2007
THIẾT KẾ P HẦN MỀM QUẢN LÝ CỔNG USB TRÊN MÁY TÍNH
CỔNG USB TRÊN MÁY TÍNH
Phần mềm trên máy tính cần có khả năng đọc thông tin từ các thiết bị ngoại vi, giúp thu thập dữ liệu từ thế giới thực như nhiệt độ và điện áp Sau khi thu thập, thông tin này sẽ được gửi lên máy chủ Do đó, phần mềm cần sở hữu giao diện thân thiện, giúp người dùng dễ dàng quan sát và theo dõi kết quả đã gửi lên.
I.6 Nhìn lại về Visual Basic
Tôi chọn Visual Basic để phát triển giao diện phần mềm vì ngôn ngữ này dễ hiểu và dễ học Một điểm nổi bật của Visual Basic là chương trình được xây dựng dựa trên các giao diện hình ảnh, sử dụng các đối tượng như nút ấn, hình ảnh và văn bản để tạo ra trải nghiệm người dùng trực quan.
Hình34 M ộtgiao diện c Vủa isual Basic
Nguyễn Thị Huyền – Đo lường & các hệ thống điều khiển – CH2005_2007
Một chương trình Visual Basic bao gồm các Form, là các thành phần có thể quan sát trên giao diện Windows, cho phép người dùng tương tác với các đối tượng trên Form.
Mỗi đối tượng trong Visual Basic có các đặc tính riêng có thể được thiết lập và kiểm tra Khi một trong những đặc tính này thay đổi, Visual Basic sẽ kiểm tra xem bạn đã định nghĩa chương trình con hoặc tập lệnh nào để phản hồi tương tác đó Đối tượng nút sẽ được định dạng khi chuột di chuyển qua và khi người dùng nhấp chuột Visual Basic giúp chúng ta tập trung vào các ứng dụng liên quan đến hành động trên các đối tượng phím hữu hình Hộp thoại ListBox trong Visual Basic có thể hiển thị như một danh sách đa dạng với thanh cuộn hoặc như một đường đơn với nội dung phong phú và menu ẩn bên trong.
ListBox cung cấp hai dạng hộp thoại giúp người dùng quản lý thông tin một cách nhanh chóng Người lập trình có thể điều khiển các thành phần hiển thị một cách linh hoạt Khi người dùng chọn một mục trong danh sách, Visual Basic sẽ phát ra một sự kiện tương ứng, xác nhận rằng mục chức năng đã được chọn.
Một ListBox bao gồm hai giá trị dữ liệu liên kết với mỗi đường hiển thị: văn bản hiển thị (gọi là giá trị List (n)) và một thành phần ẩn (ITEMDATA (n)) Các thông số này giúp lập trình viên và người dùng truy cập thông tin hữu ích.
I.6.1 User – Defined – Data – Types (Các dạng dữ liệu được người sử dụng định nghĩa)
Các dạng dữ liệu phức hợp có thể được tạo ra từ các dữ liệu cơ bản trong Visual Basic Một cấu trúc dữ liệu phong phú có thể được áp dụng để mô phỏng chức năng và thông số của USB.
Nguyễn Thị Huyền – Đo lường & các hệ thống điều khiển – CH2005_2007 đã định nghĩa các kiểu dữ liệu do người dùng xác định (UDDT), giúp phần mềm trở nên đơn giản và dễ hiểu hơn.
Tất cả các thư viện hệ điều hành mà chúng ta sẽ sử dụng được viết trong ngôn ngữ C, với các thông số truy cập là các giá trị hoặc tham chiếu tới địa chỉ
Microsoft cung cấp nhiều thư viện linh hoạt, giúp đảm bảo tính tương thích Việc gửi thông số không đúng quy định đến các thư viện có thể dẫn đến kết quả không thể đoán trước Để hạn chế tổn thất, chúng ta nên sử dụng các con số "phù thủy" hoặc các giá trị hex điển hình.
Nguyễn Thị Huyền – Đo lường & các hệ thống điều khiển – CH2005_2007
I.7 Xây dựng phần mềm quản lý cổng USB
I.7.1 Thuật toán tìm kiếm một thiết bị PC
Hình35 S ơ đồ thuật toán tìm kiếm một thiết bị USB
Khi phát hiện một bộ điều khiển USB, hệ thống sẽ nhận dạng hub gốc tương ứng Các cổng của hub này sẽ được kiểm tra để xác định xem có thiết bị hoặc hub khác kết nối hay không Nếu có, các cổng tương ứng sẽ tiếp tục được truy vấn Quá trình này diễn ra đệ quy, với số lượng tầng tối đa có thể lên tới 5.
Nguyễn Thị Huyền – Đo lường & các hệ thống điều khiển – CH2005_2007
I.7.2 Các bước điểm danh thiết bị của Host
Máy chủ khởi tạo tất cả các yêu cầu để theo dõi Nếu thiết bị được đặt địa chỉ là các Hub, sử dụng tiền tố TOHub; nếu thiết bị mới được gắn vào máy chủ, sử dụng tiền tố TOIO.
TOHub: Get-Port-Status - Host phát hiện ra một thiết bị mới
TOHub: Clear-Port Feature (C Port Connection) - - Xoá cờ trong thanh ghi Status- Change và quá trình điểm danh được bắt đầu.
TOHub: Set-Port-Feature (Port-Reset) - Hub gửi tín hiệu Reset tới thiết bị I/O và duy trì trạng thái này ít nhất 10ms Sau khoảng thời gian này, bít Reset-Change sẽ được cập nhật trong thanh ghi Port-Change, cho phép cổng giao tiếp bằng cách đặt bít Port Enable = 1 trong thanh ghi Port-Status Máy chủ sẽ theo dõi trong chu kỳ quét tiếp theo đã được phân hoạch.
TOHub: Get-Port Status - Sau khi phát hiện ta một Reset được hoàn tất thì máy chủ - sẽ gửi yêu cầu này.
TOHub: Clear-Port-Status (C Port Reset) - Xoá cờ trong thanh ghi Status-Change Khi thiết bị I/O được cấp nguồn và Reset, nó sẽ ở trạng thái “mặc định” Trong trạng thái này, thiết bị sẽ không phản hồi các yêu cầu từ máy chủ gửi đến địa chỉ thiết bị số không Nếu có thiết bị khác được kết nối cùng lúc, phần mềm máy chủ sẽ không phục vụ thiết bị mới cho đến khi việc điểm danh thiết bị cũ hoàn tất Điều này có nghĩa là chỉ có một thiết bị được phục vụ tại địa chỉ số không tại một thời điểm.
TOIO: Yêu cầu Get-Device Descriptor được máy chủ gửi đi đầu tiên để xác định loại thiết bị vừa kết nối Thiết bị sẽ xử lý yêu cầu này và gửi lại cho máy chủ thông tin mô tả thiết bị (Device Descriptor).