Đồ án chuyên ngành, tốt nghiệp cho bộ môn hệ thống điện điện tử: Nghiên cứu chuẩn USB và ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550, Chuẩn USB và ứng dụng với máy tính PIC 18F4550, Nghiên cứu chuẩn USB, Ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550
SVTH: VĂN TRỌNG TIẾN GVHD: ĐÀO TÔ HI ỆU CHƯƠNG 1: GIỚI THIỆU USB VÀ PIC 18F4550 I Giới thiệu chung chuẩn USB: Khái niệm USB: USB (Universal Serial Bus) chuẩn kết nối đa dụng máy tính USB sử dụng để kết nối thiết bị ngoại vi với máy tính, chúng thường thiết kế dạng đầu cắm cho thiết bị tuân theo chuẩn cắm-làchạy mà với tính cắm nóng thiết bị (nối ngắt thiết bị không cần phải khởi động lại hệ thống) Các mục tiêu hướng tới sử dụng USB: - Dễ dàng mở rộng thiết bị đầu cuối máy tính Cung cấp giải pháp chi phí thấp song hỗ trợ truyền dẫn tốc độ cao lên đến 480 Mb/s Hỗ trợ ứng dụng thời gian thực như: voice, audio, video, … Giao thức linh hoạt cho chế độ hỗn hợp Tích hợp cơng nghệ thiết bị tiện nghi Được Windows hệ điều hành khác hỗ trợ khơng cần driver mức thấp cho thiết bị USB Đa năng, nhiều thiết bị ghép nối với PC thơng qua chuẩn USB Độ tin cậy cao Mô tả hệ thống USB: Một hệ thống USB mô tả định nghĩa: - Kết nối USB Các thiết bị USB USB host Kết nối USB hiểu kiểu kết nối mà thiết bị USB kết nối giao tiếp với máy tính chủ Kết nối USB bao gồm vấn đề sau: • Kiến trúc BUS: mơ hình kết nối thiết bị USB Host • Những mối quan hệ Inter- Layer: dàng tập khả năng, tác vụ USB thực lớp hệ thống • Các mơ hình luồng liệu là: hình thức mà liệu di chuyển hệ Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 TRANG SVTH: VĂN TRỌNG TIẾN GVHD: ĐÀO TƠ HI ỆU thống USB Lập trình USB: USB cung cấp kết nối dùng chung Việc truy cập tới kết nối lập trình theo thứ tụ để hỗ trợ truyền liệu đẳng thời khử xự phân xử ban đầu Kiến trúc BUS: Bus đa nối thiết bị USB với Host USB Về mặt kết nối vật lý USB kiến trúc tầng Một Hub trung tâm đoạn dây kết nối từ điểm tới điểm Host Hub chức đó, Hub nối tới Hub khác chức khác Với bit địa chỉ, ngồi máy chủ USB quản lý tối đa 127 thiết bị ngoại vi Hình sau minh hoạ kiến trúc USB • Máy chủ USB: Chỉ có Host hệ thống USB Giao diện USB tới hệ thống máy chủ xem điều khiển Host Bộ điều khiển Host thực kết hợp gồm phần cứng, vi chương trình (firmware) phần mềm Một Hub gốc (root hub) tích hợp hệ thống Host để cung cấp nhiều điểm lắp thêm Các thiết bị USB: Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 TRANG SVTH: VĂN TRỌNG TIẾN GVHD: ĐÀO TÔ HI ỆU Thiết bị USB thiết bị sau: - Hub: cung cấp điểm lắp thêm vào USB - Các chức năng: cung cấp khả cho hệ thống kết nối ISDN, Digital Joystick Speaker - Thiết bị hiểu giao thức USB Cáp USB: - USB truyền tín hiệu qua cáp sợi hình Có tốc độ truyền liệu: USB tốc độ cao (USB high-speed): 480Mb/s USB toàn tốc (USB full-speed): 12Mb/s USB tốc độ thấp (USB low-speed): 1.2Mb/s Cáp USB bao gồm dây, D+ D- dùng để truyền tín hiệu, Vbus GND để cấp nguồn cho thiết bị ( Thường Vbus =5V GND=0V nguồn) USB cho phép chiều dài đoạn cáp thay đổi lên tới vài mét Ở phía máy chủ Host D+ D- nối đất qua điện trở R pd phía thiết bị ngoại vi, đầu dây D+, D- bảo vệ điện trở cuối (đó điện trở Rpu Thiết bị tốc độ cao tồn tốc cần có điện trở nối +3.3 V cho đầu D+, thiết bị tốc độ thấp cần có điện trở nối lên 3.3 V cho đầu D- Những điện trở tạo nên mức điện khác D+ Dgiúp cho máy chủ phát việc cắm vào hay rút thiết bị tốc độ truyền liệu thiết bị II Mơ hình luồng liệu USB: Các thành phần việc thực kết nối USB: Việc thực kết nối USB gồm thành phần: - Thiết bị USB vật lý: phần cứng đầu cuối cáp USB thi hành vài chức hữu dụng với người sử dụng Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 TRANG SVTH: VĂN TRỌNG TIẾN - - - GVHD: ĐÀO TÔ HI ỆU Client Software: phần mềm thi hành máy chủ, đáp ứng cho thiết bị USB Phần mềm cung cấp hệ điều hành cung cấp với thiết bị USB USB System Software: phần mềm hỗ trợ USB hệ điều hành cụ thể Phần mềm hệ thống USB thường cung cấp kèm với hệ điều hành, khơng phụ thuộc vào thiết bị USB cụ thể USB Host Controller: bao gồm phần cứng phần mềm cho phép thiết bị USB kết nối tới Host Hình sau tương tác số lớp thực thể kết nối đơn giản host thiết bị - USB Bus interface Layer cung cấp kết nối vật lý, gói tin, báo hiệu Host thiết bị - USB Decive Layer cho thấy hệ điều hành hỗ trợ thiết bị USB cần có phần mềm hệ thống để thực việc quản lý thiết bị USB logic - Function Layer cung cấp khả thêm vào cho Host qua phần mềm khách (client software) Chính client software giúp thể chức thiết bị USB Host Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 TRANG SVTH: VĂN TRỌNG TIẾN GVHD: ĐÀO TÔ HI ỆU Bus Topology: - Bus topology có thành phần chính: Host thiết bị: thành phần sơ cấp hệ thống USB Cấu trúc vật lý: cho thấy thành phần USB nối với Cấu trúc logic: cho thấy vai trò trách nhiệm thành phần USB khác USB xuất từ hình phối cảnh Host thiết bị Mối liên quan chức phần mềm khách (client software) 2.1 USB Host: - Kết cấu logic Host hình 2.2 gồm có: Bộ điều khiển Host Phần mềm hệ thống USB gộp chung Phần mềm khách (Client Software) 2.2 Các thiết bị USB: - Kết cấu logic thiết bị USB vật lý hình 2.3 gồm : Giao diện bus USB - Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 TRANG SVTH: VĂN TRỌNG TIẾN - GVHD: ĐÀO TÔ HI ỆU Thiết bị USB logic Chức Các thiết bị USB vật lý cung cấp chức bổ sung cho Host Các thiết bị USB khác cung cấp chức khác Mặc dù thiết bị USB logíc có nối ghép tới Host giống 2.3 Kiến trúc vật lý (Physical Bus Topology): Kết nối vật lý thiết bị USB thông qua kiến trúc tầng (tiered star topology) hình 2.4 Các điểm nối USB thông qua lớp thiết bị USB đặc biệt hiểu Hub Các điểm nối bổ sung kết nối thông qua Hub gọi cổng Host bao gồm Hub nối với gọi Hub gốc (root hub) Các kết nối thực cổng Hub gốc Các thiết bị cung cấp chức bổ sung cho Host hiểu Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 TRANG SVTH: VĂN TRỌNG TIẾN GVHD: ĐÀO TÔ HI ỆU chức (function) 2.4 Kiến trúc Bus Logic: Trong thiết bị vật lý kết nối tới Host theo kiến trúc tầng trình truyền thơng Host với thiết bị logic xem kết nối trực tiếp tới cổng gốc (root port) Trong trường hợp thân hub thiết bị logic, hình 2.5 khơng vẽ hình vẽ đơn giản dễ hiểu Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 TRANG SVTH: VĂN TRỌNG TIẾN 2.5 GVHD: ĐÀO TÔ HI ỆU Mối quan hệ chức phần mềm khách: Trong trình hoạt động, phần mềm khách nên độc lập với thiết bị khác gắn tới USB Luồng truyền thông USB: Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 TRANG SVTH: VĂN TRỌNG TIẾN GVHD: ĐÀO TÔ HI ỆU USB cung cấp dịch vụ truyền thông phần mềm Host chức USB Các chức có u cầu luồng truyền thơng khác cho tương tác client-to-function khác USB cung cấp sử dụng bus toàn diện cách tách luồng truyền thông khác tới chức USB Mỗi luồng truyền thông kết thúc điểm cuối trên thiết bị Điểm cuối thiết bị sử dụng để xác định hướng luồng truyền thơng Hình 2.6 thuyết minh cách luồng thơng tin truyền qua ống dẫn (đường truyền) điểm cuối nhớ đệm phía Host Phần mềm Host giao tiếp với thiết bị logic qua tập luồng truyền thông Tập luồng truyền thông chọn nhà thiết kế phần cứng/phần mềm để đáp ứng cách có hiệu nhu cầu thiết bị tới đặc tính truyền tải cung cấp USB C c loại truyền liệu USB: USB truyền liệu qua ống dẫn (đường truyền) bên nhớ đệm liên kết với phần mềm khách máy chủ với bên làmột điểm cuối thiết bị USB USB cung cấp dạng truyền tải khác nhauđã tối ưu hoá để đáp ứng cách thích hợp nhu cầu phần mềm khách chức USB cung cấp loại truyền liệu: truyền điềukhiển (control transfer); truyền ngắt (interrupt transfer); truyền đẳng thời (isochronous transfer) truyền khối (bulk transfer) Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 TRANG SVTH: VĂN TRỌNG TIẾN GVHD: ĐÀO TÔ HI ỆU 4.1 Truyền điều khiển: Truyền điều khiển truyền theo kiểu hai chiều Loại truyền thường sử dụng để cài đặt thiết bị ngoại vi Giao thức truyền điều khiển bắt đầu giai đoạn thông báo (token stage), giai đoạn liệu (data stage) kết thúc giai đoạn bắt tay (handshake stage) Mọi thiết bị ngoại vi USB phải xử lý loại truyền 4.2 Truyền ngắt: Truyền ngắt kiểu truyền chiều Loại truyền dùng cho thiết bị ngoại vi bàn phím, chuột, joystick Vì Host khơng thể ngắt nên ngắt từ thiết bị ngoại vi xử lý vòng đợi Người lập trình hệ thống có nhiệm vụ xử lý vòng đợi Giao thức truyền ngắt khởi động máy chủ (Host) bắt đầu thông báo IN (IN Token) Thiết bị ngoại vi trả lời gói NAK khơng có ngắt Trong trường hợp có ngắt thiết bị ngoại vi trả lời gói liệu Khi nhận hết liệu máy chủ trả lời gói ACK liệu khơng có lỗi khơng trả lời có lỗi Nếu bị nghẽn điểm cuối thiết bị ngoại vi, gửi đến máy chủ gói STALL đợi phần mềm hệ thống máy chủ xử lý 4.3 Truyền đẳng thời: Truyền đẳng thời phương pháp truyền chiều, hướng truyền từ thiết bị ngoại vi máy chủ ngược lại Vì truyền cần hai điểm cuối thiết bị ngoại vi hai đường ống dẫn phần mềm phía máy chủ thiết bị cần dùng kiểu truyền để thông tin chiều Giao thức truyền đẳng thời bắt đầu gói IN OUT từ máy chủ tuỳ thuộc vào hướng truyền loại điểm cuối Ví dụ trường hợp gói IN, thiết bị truyền liệu máy chủ Trong trường hợp OUT, máy chủ tiếp tục cách truyền liệu Truyền đẳng thời khơng dùng gói bắt tay để thơng báo kết truyền nên thơng tin bị thất lạc Loại truyền thường dùng cho điệnthoại hay loa 4.4 Truyền khối: Truyền khối phương pháp truyền chiều Hướng truyền từ điểm cuối máy chủ hay ngược lại Như thiết bị ngoại vi cần hai chiều liệu cần có hai điểm cuối Giao thức truyền khối gồm có giai đoạn: Thơng báo, liệu gói bắt tay Nếu thiết bị bị kẹt khơng có giai đoạn liệu mà có thơng báo bắt tay Dữ liệu truyền qua ống dẫn từ vùng đệm liệu nhớ chương trình tương ứng tới điểm cuối thiết bị ngoại vi III Các lớp thiết bị định nghĩa: Các thành phần đặc tả lớp thiết bị: Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 10 TRANG SVTH: VĂN TRỌNG TIẾN Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 29 GVHD: ĐÀO TÔ HI ỆU TRANG SVTH: VĂN TRỌNG TIẾN GVHD: ĐÀO TÔ HI ỆU Tiếp theo ta tiến hành viết code Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 30 TRANG SVTH: VĂN TRỌNG TIẾN GVHD: ĐÀO TÔ HI ỆU Code: sbit LCD_RS at RE0_bit; sbit LCD_EN at RE2_bit; sbit LCD_D4 at RD4_bit; Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 31 TRANG SVTH: VĂN TRỌNG TIẾN GVHD: ĐÀO TÔ HI ỆU sbit LCD_D5 at RD5_bit; sbit LCD_D6 at RD6_bit; sbit LCD_D7 at RD7_bit; sbit LCD_RS_Direction at TRISE0_bit; sbit LCD_EN_Direction at TRISE2_bit; sbit LCD_D4_Direction at TRISD4_bit; sbit LCD_D5_Direction at TRISD5_bit; sbit LCD_D6_Direction at TRISD6_bit; sbit LCD_D7_Direction at TRISD7_bit; unsigned char readbuff[64] absolute 0x500; unsigned char writebuff[64] absolute 0x540; char cnt; char kk,tam; char i,j; void interrupt(){ USB_Interrupt_Proc(); } void main(void){ ADCON1 |= 0x0F; CMCON |= 7; TRISB = 0x00; Nghiên cứu chuẩn USB ứng dụng giao tiếp với máy tính sử dụng PIC 18F4550 32 TRANG SVTH: VĂN TRỌNG TIẾN GVHD: ĐÀO TÔ HI ỆU Lcd_Init(); HID_Enable(&readbuff,&writebuff); Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF); while(1){ while(!HID_Read()) ; for(cnt=0;cnt