PIC18F4550 VÀ THÔNG TIN USB ỨNG DỤNG NGÔN NGỮ PICC

PIC18F4550 VÀ THÔNG TIN USB ỨNG DỤNG NGÔN NGỮ PICC


Người lập: Ahmed ATA PIC18F4550 và USB cho một bước làm việc xuất sắc bước usb 18f tìm kiếm thông tin Thổ Nhĩ Kỳ về hàng loạt các khó khăn đặc biệt là sẽ katşıla nhiều người hihtiyac USB khó khăn hơn mô tả chi tiết cũng có sẵn trong các chương trình ứng dụng mẫu. Thật không may, làm việc một nửa ba chương đầu tiên là trên cơ sở thông tin USB và thông tin đầy đủ về pic18f4550 mplab và C18 sẽ rất hữu ích để sử dụng ngôn ngữ. Nhờ những người đã chuẩn bị quá khứ

TỪNG BƯỚC USB VÀ ỨNG DỤNG

Mọi thứ bạn cần để có thể sử dụng giao diện USB để minh họa cho prroj ....... 
Bởi: Ahmet ATAR
MỤC LỤC
Phần 1

Ưu điểm và nhược điểm về lịch sử của USB
Phần 2
USB Dự án Yêu cầu Elements để phát triển 
USB điều khiển Selection 
pıc18f4550'n USB Tính năng 
biên dịch Selection và Lập trình Ngôn ngữ 
lập trình viên 
kiểm tra mạch và thông số kỹ thuật 
Ngôn ngữ lập trình cho Windows ứng dụng 
để sử dụng các dự án USB cho việc phát triển các chương trình thử nghiệm 
thiết bị giám sát Studio 
USB Xác
Phần 3
Thông tin chi tiết về 
Quản lý chuyển giao qua USB trong các 
yếu tố chuyển xe buýt 
Điểm cuối là gì? 
Ống USB là gì? 
Các loại gói và Nội dung 
các loại Chuyển and Features 
Transfers kiểm soát 
cắt chuyển và 
Mass Transfer trong 
Transfers đẳng thời 
giới thiệu về hệ thống USB Device 
danh Quy trình và bước 
Định nghĩa và nội dung 
thiết bị nhận diện 
cấu hình của Descriptor 
Interface Descriptor 
endpoint Descriptor 
Chuỗi Descriptor 
kiểm soát Transferium tin chi tiết của 
giao dịch Các giai đoạn 
yêu cầu
Giới thiệu: Ngày nay, chúng ta thấy rằng nhiều thiết bị điện tử bao gồm giao diện USB Các ổ đĩa MP3 của chúng tôi, chúng tôi không tách rời chúng tôi, là những ví dụ tốt nhất về ổ đĩa USB cho phép chúng tôi mang thông tin của mình vào túi. Vì lý do này, nếu chúng ta cần giao tiếp với máy tính nếu chúng ta thiết kế các sản phẩm điện tử, nó là không thể tránh khỏi để hỗ trợ USB như một giao diện.
Bởi vì ngày nay, nhiều nơi tiêu chuẩn như nối tiếp và song song được để lại cho USB, ngay cả các nhà văn cổng nối tiếp hoặc nối tiếp của chúng tôi được thiết kế với giao diện USB ngày nay. Do đó, việc chuẩn bị bài viết này nhằm mục đích thiết kế các thiết bị giao diện USB của riêng mình theo cách đơn giản nhất mà không cần sử dụng "phần mềm và phần cứng sẵn sàng" cho người quan tâm đến điện tử, sở thích hoặc chuyên nghiệp.
Những người muốn thiết kế một thiết bị có giao diện USB trên nhiều trang web nội dung điện tử đều hài lòng với việc sử dụng các tệp và phần cứng HEX được tạo sẵn này, hoặc sử dụng các giao thức cũ hoặc bất lực cũ. Đó là mục đích của việc chuẩn bị của bài viết này thợ điện "hazırc tâm" đẩy khái niệm để loại bỏ những yếu tố này và Thổ Nhĩ Kỳ trong tài liệu Thổ Nhĩ Kỳ là để loại bỏ những thiếu sót tìm thấy ít hoặc không có hầu hết về nó.
Bài viết bao gồm mười chương, phần đầu tiên giới thiệu sơ lược về lịch sử phát triển và lợi thế của USB.Trong phần thứ hai, các mạch và chương trình được sử dụng trong quá trình thiết kế được giới thiệu. Trong chương thứ ba, các chi tiết của giao thức USB và các phần tử được kiểm tra mà không có sự nhầm lẫn.
Để có ích cho tất cả các thợ điện với mong muốn của bạn .... 
Ahmet ATAR

CHƯƠNG 1 LỊCH SỬ USB

Phát triển giao diện USB bắt đầu với Hewlett Packard. Nhưng những ngày đó được gọi là Bus giao diện HP. Vì giao diện này chỉ thuộc sở hữu của HP hoặc một công ty duy nhất nên một tổ chức đã được thiết lập để xác định các tiêu chuẩn USB vì đây là một tình huống không mong muốn do phí giấy phép và các lý do tương tự.
Các công ty được bao gồm trong tổ chức này là Intel, Microsoft, NEC, Philips HP và Compaq. Vào tháng 1 năm 1996, USB 1.0 lần đầu tiên được giới thiệu, tiếp theo là USB 1.1 vào tháng 9 năm 1998.
Một trong những tính năng đi kèm với USB 1.1 là việc bổ sung loại chuyển Cut OUT và hỗ trợ tốc độ cao. (Loại chuyển này và các loại khác sẽ được kiểm tra trong các thiết bị tương lai.) Vào tháng 12 năm 2000, một đầu nối loại mini-B đã được thêm vào. Hệ điều hành đầu tiên hỗ trợ giao diện USB là Windows 95, mạnh tới 98. Tuy nhiên, giao diện này đã trở nên phổ biến với 98 hệ điều hành.
Sau khi tất cả các cải tiến, USB 2.0 đã được phát triển, tốc độ truyền được thiết lập 40 lần 20 lần và tốc độ truyền là 480MBit, 60MB vào lúc này.
Ưu điểm và nhược điểm
Khi được hỏi lợi thế của giao diện USB là cực kỳ an toàn olmasıdır.böyle nhà thiết kế đầu tiên từ tốc độ xử lý cao và kiểm tra lỗi tránh được rắc rối đối phó với kiểm tra lỗi trong phần mềm và phần cứng. thiết bị giao diện USB thực hiện chức năng khác nhau trên cùng một dòng cắm vào một cổng USB, báo hiệu cho một số chức năng, xem xét việc cài đặt một thiết bị gắn liền với getirebilir.paralel cảng. Nếu bạn đang sử dụng thiết bị này cho một mục đích cụ thể, cho dù việc phân bổ của một hoặc nhiều bit của cổng song song chính nó sẽ tạo ra một trở ngại cho các thiết bị khác.
Một ưu điểm khác là do olmasıdır.tasarım tiêu thụ điện năng thấp của cắt đứt sức mạnh của các thiết bị không sử dụng là cần thiết, nhưng sẵn sàng để giao tiếp một lần nữa.
yếu tố mạch để được sử dụng trong thiết kế USB değildir.örneg đắt của bài viết này, trong đó chúng tôi sử dụng trong các dự án của chúng tôi Công ty điều khiển Microchip PIC18F4550 được sản xuất bởi, nó được kết hợp USB modülünü với các tính năng bổ sung và giá là khoảng 15YTL kadardır.b của SPI con chip I / O, ĐCSTQ, USART, ADC, tính giờ và Các tính năng bổ sung như cắt-off cho phép cả hai giao tiếp USB được thực hiện chăm sóc và các hoạt động liên quan đến thiết kế bổ sung có thể được thực hiện với một chip đơn.
Nếu những nhược điểm của USB được đề cập, nó không tương thích với phần cứng cũ đến đầu tiên. Cách duy nhất để kết nối thiết bị USB với hệ thống hỗ trợ không phải USB là sử dụng chuyển đổi. Nhưng đây là cái bóng của chức năng USB. Giao diện USB được thiết kế như giao diện máy tính để bàn, kích thước cáp có thể là 3 mét đối với các thiết bị tốc độ thấp và 5 mét đối với các thiết bị tốc độ cao 
, tuy nhiên, giới hạn này có thể vượt quá nếu sử dụng hub .
Đây không phải là trường hợp với các hệ thống USB, nơi hai chip vi điều khiển có thể giao tiếp với tốc độ 9600 baud bằng cách sử dụng giao thức nối tiếp, ví dụ. Chỉ PC quản lý, bắt đầu và kết thúc giao tiếp. Một ví dụ nữa về nhược điểm của USB là giao thức rất phức tạp. Đồng thời, việc bán thiết bị USB phải có bản sắc của nhà sản xuất.
Điều này có thể được mua với giá $ 1500 từ USB-IF Nếu bạn muốn thiết kế các dự án có dung lượng lớn, USB không đủ rẻ. Bên cạnh đó tất cả những bất lợi, làm việc với các giao thức khác là không có gì nhiều hơn một sự lãng phí thời gian khi xem xét những lợi thế khác của giao diện USB.

PHẦN 2 CÁC YẾU TỐ CẦN THIẾT ĐỂ PHÁT TRIỂN MỘT DỰ ÁN USB

Lựa chọn bộ điều khiển USB: Có nhiều bộ điều khiển USB trên thị trường được thiết kế cho các dự án khác nhau để sử dụng trong các dự án USB. Một số có thể giao diện như một vi điều khiển, trong khi những người khác là trực tiếp trong bộ điều khiển.
Chip giao diện USB có thể được kết nối như một giao diện để một sự thừa yếu tố chi phí điều khiển và thiết bị đầu cuối đầu vào / đầu ra do các yếu tố như bố trí cho họ một số được ưa thích edilmemelidir.fakat nó thay đổi theo thiết kế và USB chip giao diện để làm. Ví dụ, một chip giao diện USB, chẳng hạn như USBN9604, có thể được kết nối với bộ điều khiển cả song song và trong chuỗi.
Đồng thời giá thị trường một lần nữa ucuzdur.fakat hơn chip khác trong thể loại của nó là một giá chip điều khiển so với On-Chip chip USB đang trở nên rẻ hơn. Bên cạnh những vấn đề này, chip USB được thiết kế có thể dễ dàng được tìm thấy. Đồng thời để nắm vững kiến ​​trúc nội bộ của chip được sử dụng, việc tìm kiếm mã và tài nguyên có sẵn trên internet cũng là những yếu tố rất quan trọng.
Dưới đây xem xét những vấn đề này trong các dự án của chúng tôi trên một chip duy nhất như là một thay thế cho mô-đun giao diện USB và thiết bị ngoại vi khác nằm kullanacağız.b PIC18F4550 con chip chip đầu vào / đầu ra số có thể được sử dụng trong vòng chưa đầy PIC18F2550. Các tính năng của PIC18F4550 USB PIC18F4550 có thiết bị USB tích hợp và các tính năng cơ bản của nó được liệt kê dưới đây;
* Tương thích với USB 2.0. 
* Hỗ trợ tốc độ thấp (1.5Mb / s) và tốc độ tối đa (12Mb / giây). 
* Hỗ trợ điều khiển, cắt, chuyển đổi Isochron và Bulk. 
* Có 32 thiết bị đầu cuối (16 cổng kép) 
* Bộ nhớ USB Ram 1KB (Truy cập kép) 
* Bộ điều chỉnh điện áp tích hợp 
* Điện trở kéo được tích hợp sẵn
PIC18F4550 có tổng cộng 22 thanh ghi được dành riêng cho các hoạt động USB, những cái quan trọng nhất và những cái chúng ta sẽ sử dụng thường xuyên trong các dự án của chúng ta sẽ được thảo luận bên dưới.
Như với bất kỳ cổng USB được kích hoạt trong vi điều khiển pıc18f4550'n động cơ SIA nằm. (Serial giao diện Engine) SIA sẽ đóng một vai trò quan trọng trong việc chuyển đổi định dạng gói USB của dữ liệu cũng sẽ được gửi trong các thiết lập và đăng ký liên quan đến việc giải quyết các gói tin. pıc18f4550'n SIA cơ tranceiver'a trong bağlanabilir.dahil Như có thể hưởng lợi từ một máy thu phát bên ngoài có một điều 3.3 volt nội bộ và 5 ở cả sức mạnh thu phát nội sağlar.he SIEM Trong ứng dụng volt trực tiếp đến RAM USB của CPU truy cập bộ nhớ có sẵn.
Hình-1) Trình điều khiển USB
UCO the-USB-control-đăng ký
PPBRST được trái như sağlar.0 bộ chạy được đặt trên bumpers tổ chức tất cả các Ping-Pong Buffer con trỏ cô dâu của Ping-Pong đệm bỏ qua. Tính năng đệm ping-pong được tìm thấy trong nhiều bộ điều khiển.
Tính năng này cho phép bộ đệm được ghi vào tập thứ hai ngay sau khi bộ đệm được ghi, do đó, dữ liệu đầu tiên được gửi và bộ dữ liệu thứ hai sẵn sàng để truyền.
Bit SE0 được thiết lập khi bus USB có trạng thái Single Ended Zero.Đây là trường hợp đặc biệt khi các đường D + và D- cao.
PKTDIS cắn chuyển gói Siem hoặc nhận sau khi nhận được một bayraktır.b kết thúc một gói SETUP sử dụng để làm hoạt động được thiết lập bởi SIA và xử lý gói tin truyền / nhận thụ động olunur.sıe thực hiện để nhận được các gói tin / quá trình chuyển đổi để cho phép một lần nữa bit này chỉ có thể được xóa bởi CPU.
Bit USBEN kích hoạt / hủy kích hoạt mô-đun USB Nếu thiết bị bên ngoài được kết nối với bus và bit này được thiết lập, thiết bị sẽ chuyển sang trạng thái đính kèm.Nếu nó bị xóa, thiết bị dường như bị ngắt kết nối khỏi bus. (Tách rời) Như vậy, mối quan hệ của thiết bị với bus có thể được điều khiển bằng phần mềm. Đồng thời, khi bit này được đặt, tất cả các thanh ghi PPBI được đặt thành 0, bộ điều chỉnh USB kích hoạt các điện trở kéo lên bên trong (nếu được đặt)
Bit RESUME được sử dụng để gửi tín hiệu tiếp tục tới PC Để gửi tín hiệu tiếp tục, bit này phải được đặt trong khoảng từ 1 đến 13 ms và sau đó được xóa.
SUSPND mô-đun chút USB đình chỉ trạng thái rất tốt.Chúng tôi vượt qua đình chỉ chút do Siem thiết bị nguồn đồng hồ 3ms mù giao dịch trong khoản nợ phải trả olunur.bus' đình chỉ tư cách geçmelidir.b nhà nước từng chút một SUSPND được thiết lập anlaşılabilir.b trường hợp trong đó các bộ IDLEIF cờ đình chỉ chế độ nếu các hoạt động bắt đầu từ bit ACTVIF geçilmelidir.bus takrar được thiết lập trong trường hợp olur.Bir sạch chút SUSPND và Siem nguồn đồng hồ để được kích hoạt.
Hình-2) Trình soạn thảo cấu hình USB
ucfg-usb-configuration-đăng ký
UTE một chút ở các thiết bị tốc độ thấp jkjk, trong khi ở tốc độ đầy đủ thiết bị để thử nghiệm kjkj sinyel được dành riêng để biết thêm thông tin, xem datasheet.
UPU các chút kéo lên nội tích cực để cho kullanılır.eg bit FS nếu nó được thiết lập D + pin, không nếu Dp các çekilir.böyle cao bởi các nội pull-up, nhờ bên ngoài đầy đủ tốc độ hoặc tốc độ thấp D + và Dpin bằng cách kéo cao sức đề kháng không nên. bit này được thiết lập khi nào pin D- và D + được kéo trực tiếp thông qua cơ quan quản lý 3.3V nội bộ.
Bit FSEN được sử dụng để lựa chọn tốc độ cao hoặc tốc độ thấp, PIC18f4550 chỉ hỗ trợ các tốc độ này. Nếu bit này được thiết lập, đầu vào đồng hồ bên ngoài phải là 48MHz, nếu không nó sẽ là 6MHz.
PPB0-PPB1 bit của Ping-Pong Buffer Cấu hình kullanılır.b cho chấy sẽ thảo luận sau.
Hình-3) Trình soạn thảo trạng thái USB
Master-USB-trạng thái đăng ký
Các bit từ ENDP0 đến ENDP3 cho biết thiết bị đầu cuối nào mà các yêu cầu hoặc dữ liệu đã đến. Nếu PIC18f4550 có tổng cộng 16 cổng, bốn bit này xác định địa chỉ điểm cuối.
DIR bit chỉ định hướng truyền, bộ bit được chuyển từ thiết bị truyền sang PC (IN transfer) nếu không PC được kết nối với thiết bị (SETUP hoặc OUT transfer)
Bit PPBI cho biết trạng thái Odd / Even của con trỏ Ping-Pong Buffer sau thao tác cuối cùng.
Nó chứa thông tin về chuyển chủ sau TRNIF bộ hoàn thành quá trình important.I bởi bậc thầy cắn SIA tự động güncellenir.ustat trong khi một FIFO đầy đủ sahiptir.Bu bảo vệ bởi SIA 4-byte FIFO như một yêu cầu mới đến với SIA tự động TIỀN USTAT sẽ được SIE cập nhật tự động sau khi hoàn tất.
Hình-4) Trình ghi cổng USB n
uepn-USB-endpoint-n-control-register-uep0-qua-uep15
EPHSHK chút nếu nó được thiết lập nếu nó không được đưa vào tập decoder chút trở nên elsıkışma đang hoạt động trong thiết bị đầu cuối Handshake olmaz.b của nhiều dữ liệu đẳng thời trong chuyển kullanılır.çünk các đẳng thời việc chuyển giao được coi là vô điều kiện và dữ liệu dòng chảy süreklidir.fakat bit này được thiết lập bởi Handshake hoạt động trong các loại chuyển khác nó là không thế.
EPCONDIS điểm cuối chút SETUP, nếu nhập hoặc eder.eg kiểm soát việc sử dụng cho OUT EPOUT và Epineu các bit được thiết lập, bit này được thiết lập để nếu thiết bị đầu cuối duy nhất tôi và SETUP giao dịch không được điều trị kullanılır.eg thiết lập để hoạt động OUT, tức là chuyển quyền kiểm soát. Tuy nhiên, các hoạt động IN và OUT cũng được cho phép.
Nếu bit EPOUTEN được thiết lập, thiết bị đầu cuối có thể được sử dụng như OUT.
Nếu bit EPINEN được đặt, nó có thể được sử dụng làm điểm cuối IN.
Khi EPSTALL chút STALL ngắt xảy ra (UIR.STALL) thiết lập nếu olur.hang để đáp ứng với thiết bị đầu cuối STALL nó nên được làm sạch öğrenilir.yazılımsal nhờ vào bit này. Trong UADD tiếp theo đăng ký niêm yết của các thanh ghi điều khiển sử dụng để lưu trữ các yêu cầu địa chỉ set_address gửi bằng điện thoại. Thanh ghi URFM lưu trữ số khung 11 bit trong thanh ghi URFMH và URFML.

BỐ CỤC RAM USB

khe PIC18F4550 2k RAM khu vực sahiptir.ra oluşur.bank 4-7, tổng cộng 15 khu vực băng ghế dự bị, khu vực SFA và used.This được chia sẻ bởi các lõi vi điều khiển là phải giữa 0x400 và 0x7ff tổng 1KB. Khu vực rộng lớn này đủ lớn cho mọi hoạt động của USB. Ngoài chuyển isokron, chế độ full-speed có thể gửi và nhận các khối tối đa lên đến 64KB.
Trong chuyển isocron, giới hạn này là 1024. 0x7ff giữa 0x400 và khu vực Ram USB, kể cả giữa 0x400 và 0x4ff tổng cộng 256 byte của không gian đệm cho used.This Descriptor tại kullanılabilir.şi trong các quá trình khác Buffer Descriptor cấu trúc và kiểm tra những gì nó làm.
Bộ mô tả bộ đệm và bộ mô tả bộ đệm
Dưới đây là hình từ bộ mô tả bộ đệm lấy từ biểu dữ liệu của PIC18F4550. Hình 5) Vùng đệm
đệm-descriptor-đệm-descriptor-bảng
Như bạn có thể thấy ở trên, Bộ mô tả bộ đệm bao gồm vùng đệm gồm bốn byte. Vùng đệm cung cấp thông tin SIE về không gian bộ nhớ thực tế được sử dụng, cũng như mã chip.
Miền BDnSTAT đã được kiểm tra chi tiết trong các chương tiếp theo. Trường BDnCNT cho biết có bao nhiêu byte thông tin sẽ được truyền trong khi truyền đang được thực hiện và có bao nhiêu byte thông tin được đọc trong khi nhận. Các trường BDnADRL và BDnADRH trỏ đến đầu vùng đệm trong đó thông tin được lưu trữ.
Trường bộ mô tả bộ đệm được sử dụng bởi 16 cổng. Nghĩa là, mỗi điểm cuối có một bộ mô tả bộ đệm và một bộ đệm. Trường BDnCNT được cấu hình theo kích thước gói tối đa của điểm cuối. Trong ví dụ sau, 0x40 được tải trong trường BDnCNT và kích thước bộ đệm của điểm cuối được đặt thành 64, nghĩa là kích thước gói tối đa là 64.
SIA hồi dữ liệu từ một lớn hơn khu vực này trong khi gói dữ liệu alamaz.çünk endpoint kích thước gói tin tối đa là 64 byte'dır.b quá trình geçerlidir.izokro truyền dữ liệu của việc chuyển giao sử dụng trong tình trạng thiết bị đầu cuối duy nhất với khu vực bdncnt có thể lên đến 1024. Tất cả không gian bộ nhớ được cấp cho USB được cấp phát cho thiết bị đầu cuối này.
Nhưng bdncnt 1 thấp hơn hai bit còn lại trên hai bit bdnstat vùng này sang vùng 1KB xác định byte đó được ghi vào BC8 và chút BC9. Bạn sẽ có được một sự hiểu biết tốt hơn về những điều này khi kiểm tra cổng, định danh và phần mềm PIC. Trường BDnSTAT được sử dụng theo hai cách: Chế độ CPU và Chế độ SIE. Dưới đây là mô tả về trường BDnSTAT theo cả hai cách.
Hình 6) Trình soạn thảo trạng thái bộ đệm n (Chế độ CPU)
bdnstat-CPU-mode
UOWN không gian đệm chút USB để xác định việc sử dụng bởi CPU, hoặc SIA, semaphore đơn giản trong bộ nhớ çalışır.usb với logic của lõi CPU và đồng thời CPU trong cả không gian bộ nhớ được chia sẻ bởi bit erişemez.b SIA SIA đệm riêng nếu 0 (sở hữu đệm) của CPU và bất kỳ chức năng kiểm soát nếu kullanılabilir.b bit được sử dụng để thiết lập các vùng đệm của SIA và không có cách nào truy xuất bởi CPU.
UOWN được thiết lập, nghĩa là, UFF sẽ tự động bị xóa khi quá trình truyền hoàn tất trong khi bộ nhớ đang được SIE sử dụng, và quyền sở hữu bộ đệm được giải phóng cho CPU. Ngoại lệ duy nhất là khi bit KEN được thiết lập. Trong trường hợp này, bộ đệm được SIE sử dụng vô điều kiện và không được phát hành.
DST được sử dụng để đồng bộ hóa dữ liệu bit Dữ liệu bit0 được thiết lập, Data1 là 0, Data0 là gói. Bảng sau đây cho thấy cách đồng bộ hóa dữ liệu.
Hình 7) Đồng bộ hóa dữ liệu
dst-dữ liệu đồng bộ hóa
DTS được sử dụng như bit thay đổi giá trị, bit DTSEN phải được thiết lập để sử dụng bit DTS, bit thay đổi cho biết liệu có mất dữ liệu hay không. Các bit thay đổi giá trị cho các hoạt động IN và OUT được di chuyển trong trường PID (ID gói). DATA0 0011 và DATA1 là 1011. Thay đổi duy nhất là bit thứ 3. Bit thay đổi giá trị được theo sau bởi cả bộ thu và bộ phát và ban đầu được đặt là DATA0 ở cả hai bên. Bên nhận sẽ so sánh giá trị của bit thay đổi giá trị mà nó được gửi bởi người gửi của bên nhận.
Nếu nó giống nhau, nó thay đổi trạng thái của kết thúc thay đổi giá trị của nó và gửi ACK. Nếu máy phát gặp ACK, nó cũng thay đổi bit trao đổi giá trị của nó. Do đó, các bit thay đổi giá trị là như nhau trên cả hai mặt, vòng tiếp theo sẽ là DATA1. Trong chuyển isocron, bit thay đổi giá trị luôn là DATA0. Bởi vì ACK không được gửi tại thời điểm giao tiếp, người ta cho rằng biên nhận được cấp vô điều kiện.
Trạng thái của bit UOWN và TRNIF được đưa ra khi bit DTS được đồng bộ hóa và gói tin sai được nhận như trên. Trong trường hợp nhận dữ liệu không đúng, đồng bộ hóa dữ liệu không xảy ra. Trong trường hợp này, vùng bộ nhớ không được để lại và vẫn còn ở SIE. (Có thể là một lần nữa các dữ liệu ông vẫn UOWN bộ) Đồng thời ACK được gửi trong thậm chí chút TRNIF này của trạng thái với các ngắt phần cứng değiştirmez.dola không xảy ra và tin tức olmaz.alıc phần gửi nhầm lẫn hoặc là bận rộn, các NAK nó đến dữ liệu từ mã chip.
Trong trường hợp này, các bit UOWN và TRNIF không thay đổi. Người nhận gửi ACK nhưng nếu máy phát không nhận được, dữ liệu sẽ được gửi lại với cùng thông tin thay đổi giá trị. Tuy nhiên, thời gian này bit thay đổi giá trị không được thay đổi bởi người nhận Vì giá trị bit của thay đổi không thay đổi và bit thay đổi giá trị mới giống với giá trị cũ, nó được đồng bộ lại ở cả hai bên.
Các bit KEN được sử dụng để giữ cho khu vực bộ nhớ trong SIE ngay cả sau khi tiếp nhận dữ liệu được hoàn thành.
Bit INCDIS được sử dụng để tự động tăng địa chỉ bộ nhớ của SIE sau mỗi lần ghi vào vùng bộ nhớ.Nếu bit được đặt, địa chỉ sẽ tự động tăng lên, nếu không nó sẽ không được tăng lên (cho SSP điểm cuối)
DTSEN bit xác định liệu có đồng bộ hóa dữ liệu hay không, nếu bit được thiết lập, đồng bộ hóa dữ liệu không có sẵn, bit này có thể được xóa trong các dịch chuyển đẳng thời.
BSTALL bit được sử dụng và hỗ trợ trong thường kiểm soát yêu cầu chuyển nhượng, yêu cầu kiểm soát nhận diện các thất bại hoặc thiết bị đầu cuối có thể đáp ứng với STALL uçnokt trong quá trình thất bại. Nếu như sử dụng USB tên Specification Nghị định thư Stall vermiştir.ayn thời uçnokt tính năng HALT được thiết lập với một set_featur yêu cầu nếu nó là sau đó không có khả năng trao đổi dữ liệu trên thiết bị đầu cuối, và mỗi yêu cầu STALL với yanıtlamalıdır.b của việc sử dụng các đặc điểm kỹ thuật của tên Stall chức năng vermiştir.y MỚI BSTALL bit được thiết lập yêu cầu STALL .
Các bit BC8-BC9 được sử dụng để ghi các bit trên vào các bit này nếu dữ liệu vượt quá trường BDnCNT.Vì vậy, BDnCNT có thể tối đa là 1024.
Hình-8) Thanh ghi trạng thái bộ đệm n giới hạn (Chế độ SIE)
bdnstat-si-mod
Bit UOWN phải được đặt ở chế độ này Thông tin về bit này được đưa ra khi chế độ CPU đang được giải thích.
Các bit PID0-PID chỉ ra các ID gói sau khi nhận được gói, bằng cách kiểm tra các bit, có thể xác định gói tin là IN, OUT hoặc SETUP.

TÍNH NĂNG ĐỆM PING-PONG

PPB0 của khía cạnh này UCFG đăng ký: Nếu PPB1 với bit cấu hình .A mô tả ping-pong đệm để các thiết bị đầu cuối hai Buffer Descriptor entry thiết edilir.Bu ngày Thậm chí chuyển và transfer'dir.b Odd để qua đó nhận được một Buffer Descriptor cho các hoạt động của CPU, hoạt động SIA khác Buffer Descrptor sẽ được đưa ra. Có tổng cộng bốn chế độ Ping-Pong được xác định cho một điểm cuối;
• Ping-Pong không được hỗ trợ 
• Ping-Pong Buffering chỉ được hỗ trợ cho thiết bị đầu cuối 0 
• Ping-Pong Buffering cho tất cả uçnokt được hỗ trợ 
• Ping-Pong Buffering uçnokt được hỗ trợ bởi tất cả ngoại trừ các thiết bị đầu cuối 0.
USB Module, sau khi hoàn thành mỗi thiết bị đầu cuối cho các vị trí giám sát của Ping-Pong quá trình con trỏ tutar.b (UOWN cắn SIA bằng sạch, sau chút TRNIF được thiết lập) PPB sau đó con trỏ Toggle By Odd BD tuần setlenir.h sau khi hoàn thành các hoạt động tiếp theo Ping-Pong Buffer Trạng thái Odd / Even BD của con trỏ được theo sau bởi bit PPBI của thanh ghi USTAT. Cài đặt chế độ đệm cho Bảng mô tả bộ đệm được đưa ra trên trang 177 của PIC18F4550.

GIÁN ĐOẠN USB

Hình-9) Trình soạn thảo cắt USB
USB-ngắt-usb-ngắt-tình trạng đăng ký-u
Bit SOFIF được thiết lập bởi SIE khi nhận được mã thông báo Start-Of-Frame. Start-Of-Frame, tức là mã khởi động khung, sẽ được kiểm tra trong các phần sau. Bit này phải được xóa bằng phần mềm.
STALL chút uçnokt về bởi tập SIA xảy ra khi trạng thái STALL olur.Bir gửi đi, được thiết lập trong lĩnh vực nhận dạng đệm BSTALL đặc trưng gerekir.b làm sạch phần mềm chút.
Bit IDLEIF được thiết lập khi thiết bị không hoạt động trong 3ms trên bus, bit phải được xóa bằng phần mềm.
Bit TRNIF được đặt khi quá trình truyền dự kiến ​​hoàn thành.
Các bit ACTVIF được thiết lập khi xe buýt bắt đầu một lần nữa.Một thiết bị đi vào trạng thái đình chỉ sau khi thiết lập của IDLEIF đi ra khỏi trạng thái đình chỉ nếu bit này được thiết lập.
Bit UERRIF được thiết lập nếu một trong các bit UEIE đã được thiết lập trước đó và một lỗi xảy ra, nó chỉ có thể được xóa theo chương trình.
Bit URSTIF được thiết lập khi phát hiện tình trạng reset trên bus. Nó phải được làm sạch bằng phần mềm. Sổ đăng ký UIE chứa các bit mặt nạ cho sự xuất hiện của các ngắt trong thanh ghi UIR. Điều này cũng có nghĩa là sẽ không có giải thích chút nào. Xem Datasheet để biết thông tin chi tiết. Đồng thời, các thanh ghi như các bộ đếm lỗi khác không được sử dụng ở đây vì chúng không được sử dụng nhiều trong khi thiết kế.

CÀI ĐẶT CẤU HÌNH USB OSCILLATOR

Các PIC18F4550 có các tùy chọn dao động tiên tiến cho các hoạt động USB và các hoạt động khác.Các PIC18F4550 cũng có tính năng chuyển giao USB tốc độ đầy đủ, do đó, nó có thể hoạt động với 48MHz đồng hồ freakiness. Dưới đây là bảng cấu hình dao động từ DataSheet.
bảng-usb-dao động-Cấu hình-settings
Hình-11) Cài đặt cấu hình dao động (tiếp theo)
table2-usb-dao động-Cấu hình-settings
Khi chúng ta thiết kế các ứng dụng của chúng ta ở chế độ full-speed, chúng ta sẽ cần 48MHz. Chúng ta có thể áp dụng điều này trực tiếp cho đầu vào OSC cũng như bằng cách áp dụng các tần số dao động khác được hiển thị ở 20MHz hoặc bảng. Nhưng chúng ta cần phải điều chỉnh các thiết lập cấu hình cho việc này. PIC18F4550 có một PLL 96MHz bên trong.
cho các hoạt động đầy đủ tốc độ bên trong phân chia này PLL 2 (FS-bit "1") nguồn đồng hồ 48mhz'lik thu được. Tuy nhiên, PLL 96MHz luôn yêu cầu tín hiệu đồng hồ 4MHz làm đầu vào. Trong trường hợp này, vì chúng ta có thể áp dụng 4MHz trực tiếp từ bên ngoài, chúng ta có thể sử dụng PLLDIV cho các nguồn dao động khác nhau.
Hãy nói rằng bạn đang làm một tốc độ đầy đủ chế độ USB thiết kế và 20MHz nguồn đồng hồ trường hợp kullanıyoruz.b 96mhz đến 4MHz PLL Prescaler để có được đầu vào "100" phải được cài đặt trên các thông tin nhị phân. Trong trường hợp này, tín hiệu đồng hồ bên ngoài áp dụng được chia cho 5 và 4mhz'lik PLL nguồn đồng hồ được cung cấp cho 96mhz. Làm thế nào nhiều Mhz sẽ tần số CPU được khi 48Mhz được sử dụng cho các hoạt động USB nhanh? CPU nguồn đồng hồ trước khi nó phát triển thành 96mhz 48MHz từ đầu ra PLL, ví dụ: CPU nội bộ được chia thành hai freakans sẽ đến từ prescaler cho 96mhz.
Nhưng điều này freakans CPUDIV CPUDIV vì nó xuất phát từ đi đến CPU PLL prescaler đến "00", trong khi các tín hiệu đồng hồ được chia thành hai lõi CPU trong CPU bằng cách sử dụng USB 48MHz 48MHz nguồn đồng hồ MỚI gider.y trở thành. Nhưng điều này có thể được thay thế bằng các giá trị được nạp vào CPUDIV.
Ví dụ, nếu chúng ta muốn sử dụng tần số CPU 10 Mhz
FOSC3: FOSC0 HS, CPUDIV1: CPUDIV0 "01" là / 2 như ayarlanmalıdır.b trường hợp nội bộ xung nhịp CPU 10MHz olur.fosc3: Nếu FOSC0 HS-thiết PLL cùng các thiết lập như những mô tả olacaktır.b tần số CPU 48MHz được áp dụng như trong bảng trên.

PIC18F4550 VÀ THÔNG TIN USB ỨNG DỤNG NGÔN NGỮ PICC


Pic18f4550 và thông tin usb ứng dụng ngôn ngữ picc

LỰA CHỌN TRÌNH BIÊN DỊCH VÀ NGÔN NGỮ LẬP TRÌNH

Một bộ vi xử lý, lắp ráp gerekir.fakat ngôn ngữ lắp ráp sử dụng ngôn ngữ để thực sự chiếm lĩnh phần cứng khi làm việc với các bộ điều khiển gây khó khăn cho cả hai mã theo chương trình lâu dài và phức tạp do việc duy trì lý do engeller.b và phát triển của cả hai sẽ bị chi phối bởi phần cứng như lắp ráp, sẽ chiếm ít không gian cả trong bộ nhớ chương trình, nó sẽ là hợp lý nhất để chọn một ngôn ngữ mà sẽ làm việc gần như nhanh như lắp ráp.
Ngôn ngữ duy nhất có thể được chọn trong ngữ cảnh của mô tả này là ngôn ngữ C. Chúng tôi sẽ sử dụng ngôn ngữ C khi chúng tôi phát triển các dự án của mình. Lệnh hướng dẫn mà công ty Microchip phát triển cho bộ điều khiển dòng 18xxx được tối ưu hóa cho C và chỉ có trình biên dịch C18 được sử dụng với bộ xử lý dòng 18xxx. Để cài đặt trình biên dịch C18, kích đúp vào C18Compiler trong thư mục StepByStepUSBTools \ PIC Tools \ C18 và bắt đầu cài đặt.
Đây là phiên bản 1.1 của C18. Sau khi cài đặt xong, bấm đúp vào Nâng cấp trong cùng một thư mục và hoàn tất cài đặt. Về số này, phiên bản trình biên dịch C18 sẽ được nâng cấp lên phiên bản mới nhất. Nếu MPLAB không được cài đặt trên máy tính của bạn, bạn có thể cài đặt phiên bản mới nhất dưới thư mục StepByStepUSBTools \ PIC Tools \ MPLAB.
Bây giờ chúng ta hãy xem những bước nào cần được theo sau để tạo một dự án mới. Vì bài viết này không kiểm tra phần mềm MPLAB và C18 dự định, chúng ta hãy xem xét cách xây dựng và biên dịch một dự án một cách đơn giản, thay vì giải quyết chủ đề này một cách thiên vị.
Đầu tiên mở chương trình MPLAB, từ menu Project, khởi động Projet Wizard.
Hình-12) Màn hình chào mừng của Project Wizard
MPLAB
Nhấp vào nút Advanced và chọn Từ đây, chúng ta sẽ sử dụng bộ điều khiển này cho một cửa sổ pıc18f4550'y pıc'l çıkacaktır.b cửa sổ từ đó chúng ta muốn làm việc với ứng dụng seçmeliyiz.biz của chúng tôi từ danh sách, như sau này PIC geçin.karşı đến giai đoạn tiếp theo.
Hình-13) Cửa sổ lựa chọn bộ điều khiển
Trình biên dịch-sec-window-picci
Khi bạn đã thực hiện lựa chọn bộ điều khiển, hãy nhấp vào nút Tiếp theo. Sau đó, bạn sẽ nhận được một cửa sổ nơi bạn có thể chọn mà bạn muốn làm việc với các trình biên dịch. Cửa sổ này chứa các trình biên dịch có thể được sử dụng với MPLAB. Bạn có thể biên dịch với assembly bằng cách chọn MPASM. Nhưng chúng ta sẽ làm gì với việc biên soạn C18, bạn phải thực hiện cài đặt của bạn xuất hiện trong cửa sổ tiếp theo.
Hình 14) Cửa sổ lựa chọn trình biên dịch
Trình biên dịch-sec-window-picc2
Sau khi bạn hoàn thành bước này để chỉ định thư mục để tạo ra dự án của bạn, bạn sẽ được chào đón với một cửa sổ như sau.
Hình -15) Cửa sổ lựa chọn thư mục dự án
Up-window-sec-thư mục dự án
Trong cửa sổ này, bạn có thể nhập thủ công thư mục nơi dự án sẽ được tạo hoặc bạn có thể chọn nó từ cửa sổ được mở bằng cách nhấp vào nút Duyệt qua. Bạn sẽ được yêu cầu cung cấp tên dự kiến ​​khi thiết kế thư mục dự án. Khi bạn đã đặt tên mình cần, hãy nhấp vào nút Tiếp theo để chuyển sang bước tiếp theo. Bạn sẽ nhận được một cửa sổ giống như bên dưới mà bạn có thể thêm và xóa bất kỳ tệp nào khỏi dự án của mình.
dự án MPLAB
Từ cửa sổ này, bạn có thể, ví dụ, thêm một tập tin PDF vào chương trình. Cuối cùng, sau khi tất cả các hoạt động này được hoàn thành, thiết kế dự án sẽ được hoàn thành và một cửa sổ như sau sẽ được hiển thị.
Hình-16) Cửa sổ hiển thị hoàn thành của Project Wizard
MPLAB-dự án-wizard-end
Sau khi dự án kết thúc, chúng tôi sẽ có một cửa sổ như sau: Các tệp nguồn mới có thể được thêm hoặc xóa khỏi cửa sổ.
Hình 17) Khu vực dự án
MCW-thử nghiệm
Ví dụ: chọn Mới từ trình đơn Tệp. Mã của bạn sẽ xuất hiện với một trang mã mới.
#include

void chính (void)
{
PORTCbits.RC0 = 1;
for (;;);
}
Bây giờ lưu các mã này trong thư mục bạn đã tạo ra con cháu của bạn bằng cách chọn tùy chọn File / Save. Sau đó, nhấp chuột phải vào biểu tượng Tệp nguồntrong hình ảnh và nhấp vào Thêm tệp. Tìm tệp của bạn trong cửa sổ tìm kiếm và thêm nó. Điều duy nhất cần làm bây giờ là thêm tệp Linker cho quá trình biên dịch.
Cần có tệp liên kết để các địa chỉ của các hàm trong các tệp bị phân mảnh và địa chỉ biến của chúng được biết và có thể được sử dụng bởi các tệp khác. Để thêm tập tin này, bạn hãy kích chuột phải vào biểu tượng Linker Scripts và vào thư mục C: \ mcc18 \ lkr. Tìm tệp có tên 18f4550_i.lkr trong tệp liên kết ở đó và thêm tệp đó. Bây giờ dự án đã sẵn sàng để được biên soạn. Bây giờ chọn Build All từ thực đơn Project, dự án sẽ được biên dịch mà không có lỗi nếu không có gì bị thiếu.

CÁC LẬP TRÌNH VIÊN

Một lập trình viên là cần thiết để tải mã nhúng được viết cho ứng dụng được thiết kế với PIC. Nhiều sơ đồ mạch có thể được tìm thấy trên internet cho việc này. Nhưng nếu bạn đang đối phó với lập trình PIC, đó là một sự lãng phí thời gian để chuẩn bị một lập trình từ đầu.
Có nhiều thẻ có thể lập trình được bán trên thị trường cho công việc này, giá của chúng sẽ gần như bằng với giá của bộ điều khiển PIC. Một mình, bạn có thể mua một lập trình viên làm sẵn, giúp bạn tránh được việc xử lý các lỗi và sử dụng nó để ghi lại thời gian bạn quan tâm.
Tất nhiên đây là giống nhau cho PIC cấp trung bình. Các lập trình viên cho bộ điều khiển 16FXXX có thể ở mức giá thấp, trong khi các thẻ lập trình được thiết kế cho các bộ điều khiển như dòng 18FXXX có thể đắt hơn. Trong suốt các ứng dụng của chúng tôi, chúng tôi sẽ sử dụng lập trình ICD2, một sản phẩm của Microchip.
Tính năng quan trọng nhất của lập trình viên này là khả năng gỡ lỗi mạch với sự hỗ trợ của chương trình MPLAB. (In-Circuit Debugging) Với lập trình viên này, bạn có thể bước qua các mã bạn đã viết và thực hiện theo các giá trị thực tế của các thanh ghi trong PIC cùng một lúc. Một ưu điểm khác của ICD2 là nó có một danh sách lớn các thiết bị. Vì vậy, với lập trình viên này, bạn có thể lập trình hầu như tất cả các công ty PIC của Microchip. Lợi ích lớn nhất của việc này là bạn 
không phải thay đổi mạch lập trình khi bạn cần làm việc với bất kỳ PIC nào khác trong khi làm việc với bất kỳ PIC nào khác .
Những người muốn mua ICD2 phải trả khoảng 250-300 $ + VAT 
Đối với những người không có sức mạnh để mua lập trình viên này 
, một số sơ đồ mạch đã được đưa ra dưới thư mục PIC Tools / Programmers, chúng sẽ được kiểm tra xem chúng có hoạt động hay không vì chúng không được thử nghiệm.

KIỂM TRA MẠCH VÀ TÍNH NĂNG

Dưới đây là một sơ đồ mạch điện cơ bản thông qua đó chúng tôi sẽ phát triển các ứng dụng của chúng tôi trong suốt bài viết này. mạch này cần thiết cho kết nối trong khi kurabilirsiniz.dig mạch mảng đục với ý nghĩ rằng chúng ta phải mạnh mẽ nếu chúng ta thoát ra khỏi bảng mạch này hoặc cài đặt một tấm đục lỗ hoặc bánh mì sẽ có ý nghĩa hơn.
PIC18F4550-test-mạch
Đây là nơi mà cáp kết nối của tiêu đề ICD2 có tên CONN-5 được cài đặt. Nhân viên với một lập trình viên khác ngoài ICD2 không cần phải cài đặt phần này. Các chân cần được kết nối với cổng USB được hiển thị bên ngoài. số pin được hiển thị cho các chân như được chỉ ra bởi số loại 1,2,3,4 gösterir.aşağı trong đó chân phải được kết nối với konnnektör USB và B-type mini-USB kết nối.
Hình 17) Định nghĩa pin
cập nhật USB-pin nét
Mạch ứng dụng nhận được điện áp cung cấp từ cổng USB, tuy nhiên, nó là cần thiết để cung cấp nguồn cung cấp cho Motor Control và các ứng dụng tương tự khác từ một nguồn cung cấp riêng biệt.

NGÔN NGỮ LẬP TRÌNH CHO ỨNG DỤNG WINDOWS

Bài viết này DotNet một trong những ngôn ngữ, trong đó để kiểm tra tất cả các ứng dụng trên khắp kullanılmıştır.b có thể chạy các ứng dụng C # trong vòng một thêm mã lý do cho tập tin mở và chúng tôi cần phải thực hiện một số ngành nghề. Trước tiên, bạn có máy tính của mình bằng C # dưới dạng ngôn ngữ DOTNET. NET Framework 2.0 hoặc cao hơn là bắt buộc.
Các phiên bản NET Framework 2.0 và 3.0 có thể được tìm thấy trong thư mục StepByStepUSBTools / DOTNET. Sau khi cài đặt gói này, bây giờ bạn có thể chạy các chương trình ứng dụng.Nhưng để kiểm tra mã nguồn của các chương trình ứng dụng, 
bạn cần phải cài đặt Visual Studio 2005 IDE.
Nếu IDE này không được cài đặt trên máy tính của bạn, bạn có thể tải xuống và cài đặt Visual C # 2005 Express Edition từ trang chính thức của Microsoft.

CHƯƠNG TRÌNH THỬ NGHIỆM PHÁT TRIỂN DỰ ÁN USB

Thiết bị giám sát Studio giao thức USB chắc chắn sẽ làm việc một cách hoàn hảo nếu được thiết kế nhiều hơn nữa zordur.siste là đúng theo các giao thức khác, nhưng nếu ở đâu đó trong việc loại bỏ lỗi lầm nhỏ nhất thực hiện nếu điều này là cực kỳ phức tạp alır.Bu phần trăm của tất cả các lỗi của các gói dữ liệu vào và ra, một giám sát trang bị đầy đủ bắt tay Sốt rét Bằng cách theo dõi các thông tin liên lạc trên trang web này, các chi tiết của giao thức USB có thể được hiểu dễ dàng hơn và các lỗi có thể được phát hiện dễ dàng hơn.
Chúng tôi sẽ sử dụng hai công cụ kiểm tra trong suốt ứng dụng của chúng tôi. Đầu tiên là Device Monitor Stdio và thứ hai là USB Verify. Bạn có thể tìm và cài đặt phiên bản dùng thử 14 ngày của Device Monitoring Studio từ thư mục StepByStepUSBTools / USB Test Tools. Phiên bản đầy đủ của chương trình này được thanh toán, bạn nên truy cập trang web của nhà sản xuất chương trình để biết chi tiết. Bạn có thể tìm thấy chương trình này trong cùng một thư mục và chạy trực tiếp mà không cần cài đặt nó. Dưới đây là hình ảnh về giao diện của các chương trình này Chi tiết về chương trình sẽ được đưa ra khi kiểm tra thiết kế mà chúng tôi đã hoàn thành trong các phần sau.
Hình 17) Chương trình Studio giám sát thiết bị
thiết bị giám sát-studio-chương trình

PIC18F4550 VÀ THÔNG TIN USB ỨNG DỤNG NGÔN NGỮ PICC

Pic18f4550 và thông tin usb ứng dụng ngôn ngữ picc

THÔNG TIN CHI TIẾT VỀ USB TRANSFER

giao tiếp USB Như đã nói trước đó trong một loại truyền thông, chẳng hạn như một phức tạp hơn thông tin liên lạc cấu trúc sahiptir.ser dữ liệu hơn các giao thức khác, một bit bắt đầu, theo sau là một byte dữ liệu và ngăn chặn bit gönderilir.b haberleşmedir.oys chút dễ dàng và đơn giản để hoạt động các gói tin trong giao tiếp USB Trong một giao dịch, các giá trị như một hoặc nhiều gói dữ liệu, bit lỗi và bit bắt tay được gửi và nhận.
Phần cứng USB cũng khác với các giao thức khác, USB có một bus dữ liệu và tất cả các thiết bị đều sử dụng bus dữ liệu này. Tuy nhiên, trong một cổng nối tiếp, mỗi cổng có bus dữ liệu riêng của nó, các cổng USB giao tiếp với các cửa sổ trên một bus dữ liệu duy nhất. Xe buýt được chia sẻ bởi Windows tại các khoảng thời gian bằng nhau. Bây giờ chúng ta hãy kiểm tra lưu lượng dữ liệu này chi tiết hơn.

QUẢN LÝ VERININ TRÊN XE BUÝT

USB có hai đường tín hiệu, đây là các chân D + và D, các ký hiệu + và - ở giữa không nên được coi là cao hoặc thấp. Ý nghĩa của các biểu thức này được kiểm tra trong Chương 10, Mã và Mã hóa. Hai đường tín hiệu này được chia sẻ bởi tất cả các thiết bị và dữ liệu được thực hiện theo các hướng ngược nhau. BUS được chia thành các phần được gọi là các khung để chúng có thể được chia sẻ bởi tất cả các thiết bị ở các khoảng thời gian đều nhau. Khung này là 1ms ở các thiết bị tốc độ thấp và đầy đủ. Chúng tôi đã tuyên bố rằng mỗi quá trình bao gồm một hoặc một số gói Nếu quá trình này quá lớn để hoàn thành trên một khung, quá trình này được chia thành nhiều khung.Thiết bị tốc độ cao, khung được chia thành tám phần và được gọi là vi khung. Mỗi khung hình bắt đầu với tham chiếu thời gian được gọi là Start-Of-Frame (SOF).
Hình 18) Khung 1ms
usb-millisecond-cerceve
Sau mỗi frame bắt đầu với gói SOF theo thiết bị và quy trình trong eder.çerçev tiếp tục với các giao dịch dữ liệu với địa chỉ của thiết bị đầu cuối, theo yêu cầu của các thiết bị PC düzenlenebilir.t trên địa chỉ đích của dữ liệu trong mỗi quá trình họ sử dụng như một chiếc xe buýt thông thường và bạn phải lấy thêm thông tin.
Thiết bị này sẽ bị bỏ qua khi điều trị miễn phí về địa chỉ của mình, địa chỉ của thiết bị cụ thể phải bao gồm địa chỉ của thiết bị và thiết bị đầu cuối, như thể hiện trong hình trên mỗi giao dịch vì vậy một bulunur.b địa chỉ của các máy tính giao trong danh sách các thiết bị alacaktır.h phần từ quá trình này.
Máy tính luôn bắt đầu truyền tải thông tin, bất kỳ thiết bị nào cũng không thể gửi bất kỳ dữ liệu nào đến bất kỳ máy tính nào theo ý muốn của chúng tôi.

PHẦN TỬ CHUYỂN

điểm cuối là gì? Tiêu chí là nhiều byte lưu trữ một bội olabilir.pc thiết bị có nguồn gốc từ các máy tính hoặc trong các điểm cuối kullanılır.uçnokta trong các dữ liệu thông tin liên lạc hoặc một điểm khởi đầu để giao tiếp với cấp phát dữ liệu bulunur.pc uçnokt đang được gửi đi có thể là một đăng ký trong phạm vi điều khiển nhưng điểm cuối PC là đệm kullanılır.h trong truyền dữ liệu và quá trình tiếp nhận thay vì điểm cuối yoktur.b mang dữ liệu theo một hướng.
Vì vậy, có một thiết bị đầu cuối hoặc dữ liệu (OUT) gửi hoặc dữ liệu. (Trong) một uçnokt cặp để được linh hoạt trong một sử dụng trong một durumdur.örneg đặc biệt thiết bị đầu cuối chuyển quyền kiểm soát cả trong và ngoài có thể be.We địa chỉ điểm cuối là một con số khi anh uçnokt và 0x00 giá trị cho 0x0F là từ. (tổng cộng bao gồm cả trong và ngoài 16) như trong và ngoài sử dụng một địa chỉ theo mọi hướng trong một thiết bị đầu cuối có thể cấu hình hai chiều.
Mỗi thiết bị hỗ trợ zorundadır.ilav Uçnokta0 để uçnokt là tùy bağlıdır.uçnokta0 gereklidir. Để kiểm soát chuyển theo mặc định và OUT khi yapar.sade giao tiếp hai chiều của thiết bị đầu cuối kiểm soát sau một hoạt động kiểm soát thiết bị chứa (danh sách) các phương pháp để được hiển thị sau việc trao đổi dữ liệu, tuy nhiên, Mỗi quá trình trong chuỗi giao tiếp bao gồm một mã chỉ ra hướng của luồng dữ liệu.
Các mã này là IN, OUT và SETUP.Trong các phần sau, các chi tiết sẽ được giải thích chi tiết.Với IN, thiết bị sẽ gửi dữ liệu đến PC và nhận dữ liệu với OUT Nó được thực hiện bằng cổng tương ứng Cổng OUT gửi thông tin đến cổng OUT. nó sẽ được sử dụng.
Trên PIC18F4550, mỗi điểm cuối tương ứng với một pad và có bộ đệm riêng của nó. Dữ liệu đến được ghi vào bộ đệm này, dữ liệu cũng được ghi vào bộ đệm tương ứng của điểm cuối tương ứng. Như đã nói ở trên, bộ đệm này BDnADRL bắt đầu ở dải địa chỉ được chỉ định bởi thanh ghi BDnADRH và dài BDnCNT.

ỐNG USB LÀ GÌ?

thông tin liên lạc giữa các thiết bị và máy tính, nơi mà nó cho là thiết bị hậu PC thích hợp cho việc bố trí niêm yết "Ống" gerçekleşir.b thông qua các đường ống tạo ra một cầu nối giữa các thiết bị trên phần mềm điều khiển máy tính với thiết bị đầu cuối. Khi một thiết bị đã được liệt kê và cài đặt, các đường ống sẽ tự động bị xóa bởi bộ điều khiển PC.
Trong khi cấu hình (liệt kê) một số mô tả được gửi đến máy tính cho mỗi điểm cuối. açıklanacaktır.b trong nhận dạng phần tiếp tục định danh địa chỉ điểm cuối, sự chỉ đạo của thiết bị đầu cuối, chuyển nó hỗ trợ loại, kích thước gói tin tối đa như thông tin içerir.iş trong döşenir.boru phải giao tiếp với các đường ống cần thiết tại các thiết bị đầu cuối của thông tin này để máy tính phù hợp với các đối tượng không phải là đối tượng vật lý phần mềm.
Trong một số trường hợp, ống không thể lay đặt yếu tố băng thông vì engellenebilir.yeterl của băng thông cung cấp có thể ống PCR và các yêu cầu kết nối có thể chờ đợi reddeder.Bu trường hợp thiết bị cho đến khi băng thông yêu cầu được cung cấp hoặc theo yêu cầu tái kết nối với một cấu hình băng thông thấp. Hình minh họa sau cho thấy mối quan hệ giữa các điểm cuối và đường ống.
usb ống
Nó được chia thành dòng chảy và thông điệp, các đường ống thông điệp được sử dụng nếu luồng thông tin là hai chiều.Ví dụ, việc chuyển điều khiển sử dụng các đường ống thông điệp. Tất cả các phương tiện vận chuyển khác đều sử dụng ống dẫn lưu lượng.

CÁC LOẠI GÓI VÀ NỘI DUNG

Hình 20) Các giai đoạn xử lý và các gói
gói
Mỗi lần chuyển giao bao gồm một vài bước (giao dịch) theo kiểu truyền, đây là các bước SETUP, DATA và STATUS, trong hình trên chỉ có một trong các bước được hiển thị. Như bạn thấy, ít nhất ba gói được gửi trong mỗi bước. Các gói này là các gói JETON, DATA và ELSING Như bạn có thể thấy, mỗi gói chứa một ID gói, một bit chắp thêm và kiểm soát lỗi. Trong thực tế, mỗi gói có cấu trúc chung và được xác định theo các giá trị trong trường PID. Hình minh họa sau đây cho thấy nội dung của một gói chung.
Hình-21) Cấu trúc của một gói
gói cấu trúc
Bây giờ chúng ta hãy kiểm tra các trường trong gói riêng lẻ, như trong hình trên.
SYNC Tất cả các gói bắt đầu bằng Sync.Sync được gửi để cung cấp đồng bộ hóa bộ thu và máy phát. Nó là 8 bit ở các thiết bị tốc độ thấp và đầy đủ và 32 bit ở các thiết bị tốc độ cao. PID bắt đầu ngay sau khi kết thúc đồng bộ hóa. Các ví dụ được đưa ra trong tốc độ đầy đủ SYNC thiết bị của 8 bit, dưới hình thức KJKJKJKK. (Tín hiệu này sẽ được thảo luận sau.) Switch Nhàn rỗi được phát hiện như là các bit K đầu tiên từ xe buýt bắt đầu, và chỉ ra rằng một gói tin mới đến.
ID gói PID là giá trị 8 bit được sử dụng để xác định loại gói tin được gửi đi, 4 bit dưới chỉ ra loại gói trong khi 4 bit trên là bit hoàn chỉnh của bit thấp hơn và được sử dụng để kiểm tra lỗi. 16 PID được định nghĩa cho JET, DATA, HANDSET và các gói đặc biệt. Các giá trị này được đưa ra trong bảng dưới đây.
Bảng-1) Giá trị ID gói
Packet-id
Như thể hiện trong hình trong hình 20, ít nhất ba gói được gửi ở mỗi bước hoạt động. Các gói này là cấu trúc trong Hình 21. Trường PID chỉ định các gói tin là các gói JETON, DATA và ELISSION.
ADDR Trường này chứa địa chỉ thiết bị. Địa chỉ thiết bị có thể từ 0 đến 127.
ENDP Trường này dài 4 bit và hiển thị số điểm cuối. Có thể chọn tối đa 16 cổng với độ dài 4 bit (32 cổng, hai chiều) Các thiết bị tốc độ thấp chỉ hỗ trợ 2 cổng.
CRC Trường này chứa các bit kiểm tra dự phòng tuần hoàn (CRC). 5 bit cho tất cả các gói tiền xu và 16 bit cho gói dữ liệu.
EOP Tín hiệu này đặt xe buýt vào chế độ Chờ (nhàn rỗi), vì vậy xe buýt đã sẵn sàng cho SYNC tiếp theo. Đối với các thiết bị tốc độ thấp và đầy đủ, nó có thể rộng hai bit và được tham chiếu bởi chính nó.
Bây giờ bạn biết nội dung của các loại gói inceleyelim.setup gói tổng thể, dữ liệu và xử lý gói TÌNH TRẠNG trong mỗi bước cho dữ liệu và bắt tay thẻ ít nhất ba ngày gönderilir.b gói. Cấu trúc của gói này tuy nhiên là như mô tả trong hình 21, PID loại của gói (TOKEN, dữ liệu, bắt tay) và trình bày các thông tin chứa trong các yêu cầu đối với gói dữ liệu gönderilir.b sẽ được hiểu rõ hơn bằng cách nghiên cứu các chuyển kiểm soát sự lạc đề. Bây giờ chúng ta hãy xem xét cấu trúc của ba gói này.
Gói JETON Gói tiền xu có thể có ba loại, PID được xác định bởi giá trị trong trường;
• IN - Cho biết thông tin sẽ được gửi ở đường DATA PC. 
• OUT - Cho biết dữ liệu sẽ được nhận từ PC trong bước DATA. 
• SETUP - Được sử dụng để truyền điều khiển.
Hình 22) Gói JETON
xu-gói-khối-sơ đồ
Dữ liệu gói gói dữ liệu có thể be.We thiết bị tốc độ thấp với hai loại gói trong lĩnh vực giá trị PID để belirlenir.b 8 byte và các thiết bị đầy đủ tốc độ 1023 byte và 1024 byte thiết bị tốc độ cao có thể gửi dữ liệu.
• DATA0
• DATA1
Hình-23) Gói dữ liệu
dữ liệu dữ liệu gói
XỬ LÝ GÓI Các gói bắt tay được gửi bởi người nhận và cho biết sự thành công của hoạt động. Gói bắt tay có thể có bốn loại.
• ACK - Cho biết rằng dữ liệu được nhận thành công. 
• NAK - Người gửi không có dữ liệu, sau đó PC yêu cầu lại. 
• STALL - Chỉ ra các tình huống như một yêu cầu không được hỗ trợ, một sự cố điểm cuối. 
• NYET - Chỉ ra rằng dữ liệu có thể được lấy ra nhưng thiết bị đầu cuối chưa sẵn sàng.
Hình-24) Gói bắt tay
elpkt
BẮT ĐẦU GÓI FRAME Gói này chứa số khung hình 11 bit, tốc độ bit được gửi ở 1ms trong các thiết bị và 125us ở các thiết bị tốc độ cao.
Hình 25) Bắt đầu của gói Frame
bắt đầu-of-frame-pack

PIC18F4550 VÀ THÔNG TIN USB ỨNG DỤNG NGÔN NGỮ PICC


Pic18f4550 và thông tin usb ứng dụng ngôn ngữ picc

CHUYỂN CÁC LOẠI VÀ THUỘC TÍNH

chuyển quyền kiểm soát cấu hình các thiết bị sử dụng để thực hiện các yêu cầu dữ liệu, nó cũng hỗ trợ một khối truyền dữ liệu là türüdür.h điểm cuối mặc định iletimini của thiết bị USB, mà phải hỗ trợ việc chuyển giao quyền kiểm soát trong tổng số 0 trong thiết bị đầu cuối. Khi một thiết bị mới được cắm vào PC vì PC để tìm hiểu các tính năng của thiết bị này, lấy thông tin cần thiết và đánh vào đầu của bạn về việc chuyển nhượng quyền kiểm soát để cấu hình thiết bị. Quá trình này là quá trình liệt kê và được thực thi bởi Device Manager.
Một thiết bị thể hiện chính nó liền mạch được thêm vào danh sách bởi Device Manager, thường không cần thiết bị bổ sung được cấu hình cho việc truyền điều khiển.
Cấu trúc chuyển số kiểm soát gồm ba chữ số gồm SETUP, DATA và STATUS. Có ít nhất ba gói tin được truyền đi trong mỗi bước, đây là các gói JETON, DATA và ELSING. Cấu trúc của các gói này đã được kiểm tra trước đây. Phải có các bước SETUP và STATUS trong mỗi lần truyền điều khiển. Bước DATA là tùy chọn vì nó không cần thiết trong mọi trường hợp. Bởi vì một số điều khiển chuyển yêu cầu dữ liệu có thể được gửi trong gói DATA của bước SETUP. Trong điều khiển chuyển, cổng được cấu hình cho công việc này phải hỗ trợ cả chuyển IN và OUT. Bởi vì thông điệp vay của việc chuyển giao điều khiển sử dụng cùng một địa chỉ cho các hoạt động IN và OUT của điểm cuối này.
Trong quá trình truyền điều khiển, thiết bị nhận được ghi điều khiển và thông tin được gửi bởi các hoạt động Read Control. Ngoài ra, các loại và nội dung gói trước đó được giải thích dựa trên Kiểm soát Chuyển.
Hình 26) Điều khiển ghi chuyển
write-control-chuyển giao
Hình 27) Kiểm soát đọc chuyển
kiểm soát-read-chuyển giao
Kiểm soát ghi chuyển nhận được thông tin từ máy tính.Trước tiên PC khởi tạo số SETUP. Ở đây, gói JETON được gửi đi và trường PID của gói này là SETUP. Do đó, thiết bị phát hiện rằng lệnh SETUP đã được khởi động, gói DATA được gửi ngay lập tức sau thao tác này. Trường PID của gói này là DATA0 và chứa thông tin mà bạn yêu cầu. Nếu thiết bị đã nhận được tất cả các gói này một cách trơn tru, nó sẽ gửi gói ELUSITION. Trường PID của gói này là ACK và nó phát hiện rằng dữ liệu máy tính được nhận trơn tru. Một thiết bị phát hiện lỗi trong các bước SETUP hoặc DATA sẽ không gửi ELSE.
Sau khi gửi ACK cuối cùng, lệnh SETUP được hoàn thành, do đó PC khởi động bước dữ liệu, một lần nữa gói JETON được gửi đi. Nếu bước SETUP chỉ định rằng dữ liệu được truyền từ PC sang thiết bị là chính xác, trường PID OUT sẽ là IN nếu không nó sẽ là IN. Nếu trường PID là IN, thiết bị sẽ gửi gói DATA ngay sau gói JETON, trường PID của gói là DATA1 và chứa một số hoặc tất cả thông tin chứa trong đó. Thông tin được gửi trong gói DATA sẽ gửi gói FIXING tới PC mà không gặp bất kỳ sự cố nào. Gói này có ACK trong trường PID. Bước DATA cũng được hoàn thành.Nếu trường PID là OUT, gói dữ liệu được gửi đến thiết bị PC và thiết bị nhận đáp ứng với ACK trong gói LUMINOX. Sau khi hoàn thành bước DATA, nó bắt đầu số PC STATUS. PC gửi gói JETON cho việc này.
Nếu gói này là PID của một gói dữ liệu mới nhận ngược yönündedir.y người nhận của gói dữ liệu từ thiết bị đến bước trước (OUT) của miền PID của IN, OUT đã nhận được nó sẽ là một máy tính. Trong PID thiết bị hiện trường, PC, chỉ lĩnh vực PID và gửi một lỗi gói DỮ LIỆU kiểm tra bit zero chiều dài. Bên cạnh đó, ACK, NAK, hoặc STALL bắt tay gói tin được gửi gönderilebilir.pc cũng đưa ra xác nhận rằng nhận được gói DATA. PID lĩnh vực OUT thiết bị PC chỉ nếu trường PID và gửi một số không dài bit kiểm soát lỗi gói dữ liệu. thiết bị hiện trường gói trả lời bằng một gói bắt tay. bước TÌNH TRẠNG sau khi hoàn thành việc chuyển giao được hoàn tất.
LƯU Ý: Chữ số STATUS cho biết toàn bộ quá trình chuyển thành công. Thông tin STATUS được thực hiện trong gói DATA của bước này và chứa một gói có độ dài bằng không hoặc các giá trị như ACK, NAK, STALL. Một gói có chiều dài bằng không cho biết rằng hoạt động đã hoàn tất thành công.
Logic trong chuyển đổi Read Control không khác với chuyển giao của Control Write. Trong điều khiển chuyển, kích thước của các gói dữ liệu (gói dữ liệu) có thể là 8, 16, 32, 64 byte ở các thiết bị tốc độ cao. Trong các thiết bị tốc độ thấp, kích thước gói dữ liệu tối đa là 8 byte, trong trường hợp này gói dữ liệu chỉ chứa dữ liệu chứ không phải các trường PID và CRC. Kích thước gói tối đa được hỗ trợ bởi các cổng được xác định trong định danh cổng. Nếu thiết bị đầu cuối mặc định (terminal 0) là kích thước gói tối đa, nó được học từ Device Identifier khi nó được kết nối với hệ thống đầu tiên.
Băng thông được phân bổ cho điều khiển chuyển là 10% Tuy nhiên, nếu còn lại băng thông, mỗi lần điều khiển truyền đều chia sẻ điều này. Chuyển giao điều khiển có thể được sử dụng cho các hoạt động danh sách và cấu hình cũng như chuyển thông tin khối. Tuy nhiên, đây là một phương pháp không mong muốn để sử dụng hiệu quả băng thông. Việc chuyển điều khiển nên được sử dụng cho các yêu cầu USB càng nhiều càng tốt. Các thiết bị tốc độ thấp được giới hạn ở ba hoạt động trên mỗi khung vì chúng có thể truyền dữ liệu tối đa 8 byte ở mức tối đa. Nếu chỉ có một truyền dữ liệu 8 byte được thực hiện bằng cách truyền điều khiển, 29% băng thông sẽ được sử dụng. Nếu một thiết bị không gửi gói bắt tay, PC sẽ thực hiện thêm ba lần thử. Nếu chưa nhận được phản hồi, việc liên lạc với điểm cuối bị gián đoạn.

CẮT CHUYỂN

Cắt chuyển giao chủ yếu được sử dụng trong các thiết bị như bàn phím và chuột Khi một yêu cầu được gửi từ máy tính đến thiết bị, một sự cố trong phần cứng thiết bị xảy ra. Đó chính xác là chuyển giao là gì. Khi một phần cứng gián đoạn xảy ra trên thiết bị, nó đi đến thói quen ngắt có liên quan và gửi hoặc nhận thông tin được gửi đến máy tính theo yêu cầu. Cắt nên có thể phát hiện những gì các yêu cầu từ các mã trong các thói quen, các thông tin cần thiết nên được đặt trong bộ đệm hoặc đệm nên đọc thông tin cần thiết, sau đó thoát khỏi cắt thường xuyên nên mang sẵn sàng để chuyển giao cho các điểm cuối ngắt tiếp theo. PIC18F4550 thiết lập bit TRNIF khi nhận được một gói tin.
Nếu vết cắt này bị che khuất, nó sẽ chuyển sang chế độ cắt tương ứng ngay sau khi nó được thiết lập. Các ngắt phần cứng xảy ra tại thời điểm máy tính dò ​​tìm thiết bị, không phải tại bất kỳ thời điểm nào, nhưng trong một thời gian được chỉ định bởi một giá trị trong một vùng của các định danh điểm cuối. Các giao dịch cut-off bao gồm nhiều hoạt động IN và OUT Cấu trúc này được thể hiện trong Hình 28 và giống hệt với cấu trúc của chuyển giao stack. Như bạn có thể thấy, tất cả các hoạt động là một chiều, mỗi giao dịch là IN hoặc OUT, vì vậy, để trao đổi dữ liệu theo hai hướng, cần phải chuyển giao riêng rẽ và đường ống cho cả hai hướng.
Đối với một thiết bị tốc độ đầy đủ, kích thước gói tối đa là 64 byte, trong khi đối với các thiết bị tốc độ thấp, giá trị này được đặt thành 8 byte. PC sẽ tìm hiểu các đại lượng này từ các định danh mà chúng ta sẽ thấy sau này. Như đã đề cập trước đó, các ngắt phần cứng xảy ra theo thứ tự mà PC dò tìm thiết bị. Trong khi các thiết bị như chuột và bàn phím liên tục bị thăm dò bởi ổ đĩa, các thiết bị khác không cần phải được thăm dò trừ khi ứng dụng trên PC gửi bất kỳ dữ liệu nào. Khoảng thời gian bỏ phiếu được xác định trong bộ định danh điểm cuối và xác định số lần thực hiện IN và OUT là bao nhiêu mili giây, việc chuyển giao gián đoạn phải được thực hiện chính xác tại các khoảng thời gian đã chỉ định này.
Ví dụ, chúng tôi sẽ thiết lập thời gian bỏ phiếu là 10ms trong tất cả các ứng dụng của chúng tôi. Nếu ba hoạt động được yêu cầu trong trường hợp này, ba hoạt động này sẽ được hoàn thành trong 30ms. (3 x 10 mili giây)
Tuy nhiên, vì điều này được xử lý bởi PC, nó cũng có thể được hoàn thành ở 4ms.Một hoạt động được bắt đầu bằng cách lấy thời gian khi kết thúc hoạt động trước đó. Nếu kích thước bộ đệm mong muốn lớn hơn băng thông, yêu cầu bị từ chối, trong trường hợp này, thiết bị phải được yêu cầu với kích thước bộ đệm thấp hơn. Nhưng kể từ khi chuyển giao cut-off bị giới hạn bởi băng thông thấp, điều này không thường xảy ra.
Hình-28) Cắt chuyển IN và OUT hoạt động
cut-and-chuyển giao-in-out
Đối với tất cả các thiết bị không nhận được gói Handicap trên tất cả các lần chuyển, máy tính sẽ được kiểm tra hai lần. Do đó, nếu gói chưa được nhận, thông tin liên lạc với điểm kết thúc bị gián đoạn.

CHUYỂN CHỒNG

Chuyển số lượng lớn là loại chuyển được sử dụng để gửi dữ liệu đến xe buýt với số tiền lớn hơn nhiều. Theo cách này, dữ liệu được gửi tới bus mà không gây ra xếp chồng, mỗi lần truyền dữ liệu bao gồm các hoạt động IN và OUT giống như trong quá trình truyền ngắt, và cấu trúc của nó giống như cấu trúc truyền ngắt như trong Hình 28. Hai đường ống riêng biệt, IN và OUT, được yêu cầu cho giao tiếp được thực hiện hai mặt.
Mặc dù bảo đảm để gửi dữ liệu trong băng thông được phân bổ cho việc chuyển nhượng chồng loại chuyển edilmez.çünk chồng chuyển nó luôn luôn là chuyển giao thứ hai hơn người kia. chuyển quyền kiểm soát băng thông 10% khi sử dụng (ít thiết bị tốc độ đầy đủ) băng thông còn lại của kullanılır.b bởi chuyển đẳng thời và ngắt, vì vậy tất cả các băng thông được sử dụng, do đó xe buýt là hoàn toàn tham gia khi việc chuyển nhượng chồng luôn giữ thực hiện việc chuyển giao số lượng lớn có thể mất một thời gian rất dài.
Nhưng xe buýt là không bận rộn, cái IDLE (idle) Trong trường hợp kullanır.örnek tất cả việc chuyển giao khối lượng của băng thông đoạn 19 64 byte được hoàn thành trong một khung với một tỷ lệ đầy đủ của 1216 byte mỗi giây trong thiết bị và phát hành 18% băng thông . Chúng tôi sẽ sử dụng các loại chuyển giao được kiểm tra cho đến nay khi chúng phát triển trong các ứng dụng chúng tôi sẽ phát triển.

CHUYỂN KHOẢN KHÔNG ĐỒNG BỘ

Trong kiểu truyền này, giả định rằng dữ liệu được truyền trong một luồng và với tốc độ không đổi, nhưng chắc chắn nó không cần thiết. Trong hầu hết các trường hợp, do đó các thiết bị sử dụng loại chuyển kullanılır.b vaccine uygulamalarıdır.s âm thanh hơn sau khi hàn các dữ liệu kỹ thuật số đã nhận được chuyển đổi một cách nhanh chóng và được gửi đến máy tính như một gerekir.b khối có sẵn trong chuyển số lượng lớn có thể được sử dụng để chuyển điều khiển đồng bộ.
Tuy nhiên, việc truyền tải isochrone cho phép khối được truyền đến PC một cách nhanh nhất ngay cả khi Bus bận. Như bạn nhớ lại xem xét Tuy nhiên, nếu xe buýt đang bận, chuyển Khối lượng bị đình chỉ chuyển stack.
Từ isochrone có nghĩa là dữ liệu đồng bộ và liên tục được gửi trong một số tiền nhất định trong mỗi khung. Tất cả các loại chuyển ngoại trừ 1ms (thời lượng khung) của việc truyền tải gián đoạn xảy ra không đồng bộ. Nó không chắc chắn rằng một số lượng nhất định của byte sẽ được gửi cho mỗi khung hình. Chuyển giao không đồng bộ bao gồm một hoạt động IN và OUT trong mỗi khung. Do đó, mỗi lần chuyển chỉ là một hướng, và các đường ống riêng biệt được yêu cầu cho giao tiếp hai chiều. Hình 29 cho thấy cấu trúc của một chuyển isochron.
Để xử lý bước này nếu chú ý rằng chỉ bao gồm IN và OUT và từng bước xử lý không chỉ bao gồm tiền xu, và các gói dữ liệu, kể từ khi içermez.çünk gói bắt tay của dữ liệu được gửi ở tốc độ liên tục và trong một thời trang trực tuyến, thực hiện cùng với các lỗi dữ liệu nhận được. Khi các loại chuyển giao khác đã được kiểm tra, nó đã được đề cập bao nhiêu băng thông đã được sử dụng trong BUS. Việc chuyển giao đẳng thời có thể gửi và nhận tối đa 1023 byte dữ liệu trên mỗi khung hình trên mỗi khung hình.
Trong trường hợp này, kullanılır.b bởi việc chuyển nhượng 69% băng thông, do đó, một đường truyền trước khi được thể hiện như là đẳng thời mong muốn kích thước bộ đệm (nơi 1023 byte) so với băng thông trống bằng phương pháp PCR, để xác định xem có sự hiện diện hay vắng mặt của băng thông. Nếu băng thông không có sẵn, thiết bị sẽ yêu cầu lại với kích thước bộ đệm nhỏ hơn. Ở đây và các loại chuyển khác được giải thích, từ "thiết bị phải được làm lại" phải được trình điều khiển thiết bị nhận thức là yêu cầu lại nếu có các lựa chọn thay thế khác sau khi thiết bị bị từ chối bởi cấu hình hiện tại. Vì vậy, quá trình này được thực hiện bởi người lái xe.
Hình 29) Chuyển giao không đồng bộ
đẳng thời chuyển giao

PIC18F4550 VÀ THÔNG TIN USB ỨNG DỤNG NGÔN NGỮ PICC

Pic18f4550 và thông tin usb ứng dụng ngôn ngữ picc

GIỚI THIỆU THIẾT BỊ USB CHO HỆ THỐNG

Chúng tôi đã nhấn mạnh rằng giao diện USB là khó khăn hơn và phức tạp hơn so với các giao thức khác trong các đơn vị trước đó. Một thiết bị sử dụng cổng RS232 hoặc song song sẵn sàng giao tiếp khi kết nối với hệ thống. Nếu phần mềm ứng dụng và phần mềm thiết bị có cùng cấu hình (tốc độ truyền, bit chẵn lẻ ...), thông tin liên lạc có thể bắt đầu ngay lập tức. Nhưng tình hình là rất khác nhau trên các thiết bị USB. Khi một thiết bị USB được cắm vào hệ thống, không thể bắt đầu liên lạc ngay lập tức. Thiết bị này được Windows liệt kê lần đầu tiên và bắt đầu được xem xét.
Trong Bảng liệt kê một số yêu cầu chúng ta sẽ thấy các thiết bị Windows sau bulunur.cihaz có thể phát hiện những yêu cầu này, và họ sẽ phản ứng như họ nên mong muốn hỗ trợ và thúc đẩy một phản ứng thích hợp, nó phải là có khả năng báo cáo về tình hình trong mã chip đa tác vụ rơi.
Ngoài ra, các thiết bị phải hỗ trợ một số thiết bị như thể chúng không phải hỗ trợ mọi yêu cầu. Họ phải quay trở lại các khách hàng không được hỗ trợ để STALL theo cách phù hợp. Các yêu cầu sẽ được kiểm tra sau, cũng như cho PC để có thể tìm hiểu khả năng của thiết bị (kiểu truyền và thiết bị đầu cuối, vv). Nếu không có vấn đề gì trong quá trình liệt kê, PC chỉ định địa chỉ cho thiết bị và trao đổi dữ liệu diễn ra thông qua địa chỉ này.
Mỗi thiết bị phải hỗ trợ Point 0 làm cổng điều khiển mặc định cho các hoạt động liệt kê. Đồng thời, điểm cuối này phải hỗ trợ cả chuyển giao IN và OUT. Danh sách được thực hiện bằng cách tham chiếu đến việc chuyển giao điều khiển và cả dữ liệu và dữ liệu được gửi qua điểm cuối này.
Kể từ khi danh sách được thực hiện bằng cách sử dụng chuyển quyền kiểm soát, loại chuyển khoản này sẽ được kiểm tra chi tiết hơn sau. Nếu danh sách được hoàn tất thành công, thiết bị sẽ được đặt trong Trình quản lý thiết bị và sẵn sàng trao đổi dữ liệu.

QUY TRÌNH VÀ CÁC BƯỚC CỦA DANH SÁCH

Bây giờ chúng ta hãy xem xét từng bước các sự kiện xảy ra khi thiết bị USB được cắm vào hệ thống. Khi thiết kế thiết bị được hoàn thành trong các phần sau và nó được cài đặt trong hệ thống lần đầu tiên, nó được kiểm tra chi tiết bằng công cụ Device Monitoring Studio. Một thiết bị có thể chỉ có một trong sáu trạng thái tại bất kỳ thời điểm nào.
• Tách rời: Thiết bị này không được kết nối với xe buýt 
• THUỘC: Thiết bị kết nối với xe buýt 
• DEFAULT: Các thiết bị trong trường hợp khởi động mặc định 
• POWERED: Device trên 
• ĐỊA CHỈ: Thiết bị này được gán một địa chỉ 
• Cấu hình: Thiết bị hoàn tất việc cấu hình và sẵn sàng
Mỗi thiết bị chuyển tiếp tuần tự thông qua sáu trạng thái này ở giai đoạn danh sách và cuối cùng đã sẵn sàng để trao đổi dữ liệu bằng cách gán giá trị cấu hình cho thiết bị.
1- Phát hiện thiết bị USB của HUB của PC
Việc phát hiện một thiết bị được cắm vào cổng USB của PC là do sự thay đổi điện áp trong đường tín hiệu. Vì Hub của PC điều khiển mức điện áp trên các đường tín hiệu của các cổng USB. Trên D + và D- dòng của mỗi cổng USB trên PC có điện trở xuống xuống đến 15 KiloHm. (Kéo xuống) nếu thiết bị là một thiết bị USB ở đầy đủ nhanh hơn nếu D + dòng pull-up resistor nếu các thiết bị nên được 1,5 kiloohmluk với tốc độ thấp hơn nếu D-line.
Các PIC18F4550 có những điện trở nội bộ và nó là phần mềm kiểm soát mà dòng được kéo lên đến 1.5K. Khi thiết bị được cắm vào một cổng USB, thiết bị D + hoặc kéo lên 1.5K'lık tìm thấy trong kháng D-line, phát hiện dù máy tính cũng nên 15K'lık xuống trong dòng cổng feed çeker.böyle bởi hệ thống máy tính Hub với một thiết bị mới được cài đặt. Hình 30 cho thấy dòng được nạp.
Hình 30) Phát hiện thiết bị USB
USB-thiết bị-phát hiện
Trong HUB của PC, có một đường ống Cut-off IN cho bạn biết rằng những sự kiện này đang diễn ra. Sự kiện này xảy ra trên một trong các cổng USB hoặc trên HUB. Nếu sự kiện xảy ra ở một trong các cổng, thông báo sẽ được gửi để cho biết cổng nào đang được bật. Sau các hoạt động này, máy tính sẽ gửi yêu cầu Get_Port_Status tới HUB để biết chi tiết.Trong trường hợp này, 
thiết bị được TẮT.
2- Đặt lại thiết bị bằng PC
PC hub sau khi nó phát hiện rằng một thiết bị mới được gắn vào hub reset thiết bị bằng cách gửi một yêu cầu đến PCA hub set_port_featur istenir.normal D + và D- dòng của mức logic là đối diện với nhau. Tuy nhiên, khi yêu cầu đặt lại được gửi, các đường D + và D- được giữ ở mức thấp trong 10ms bởi HUB. Khi HUB được đặt lại, thiết bị đang ở trạng thái DEFAULT, trong trường hợp này, thiết bị 
sẵn sàng giao tiếp thông qua thiết bị đầu cuối 0 và địa chỉ 0.
Trong trường hợp này, thiết bị không thể vẽ hơn 100mA từ BUS. Như sẽ thấy sau này, thiết bị chỉ có thể rút dòng điện từ BUS đến 500mA sau khi phát hiện lỗi cấu hình và giá trị hiện tại tối đa được xác nhận. Nhưng trong trường hợp DEFAULT, BUS chỉ cung cấp dòng điện 100mA. PC sẽ biết liệu thiết bị có thoát trạng thái đặt lại hay không, nghĩa là, HUB có hoàn thành việc đặt lại hay không bằng cách gửi yêu cầu Get_Port_Status tới HUB. Một chút trong người gửi cho biết thiết bị vẫn được đặt lại hoặc đặt lại.
3- Phát hiện tốc độ thiết bị bằng HUB
Ngay sau khi đặt lại, HUB sẽ theo dõi các mức điện áp trên các đường tín hiệu. D + và D- dòng để xác định đó là ở mức cao và quyết định xem thiết bị có tốc độ cao hay tốc độ thấp.
4- Học tối đa kích thước gói của điểm 0
Tất cả quá trình chuẩn bị này sau khi hoàn thành sự khởi đầu của quá trình niêm yết gerekir.listel với các thiết bị máy tính, như đã nói trước đó trong tiêu chuẩn và đáp ứng với việc gửi yêu cầu bắt buộc và phản ứng xếp hạng işlemidir.Bu làm như vậy mà điều đầu tiên trong thiết bị đầu cuối sẽ được tiến hành bằng cách kiểm soát các con đường chuyển của quá trình niêm yết từ 0 đến tối đa các thiết bị máy tính với kích thước gói là quá trình öğrenilmesidir.b get_descript gửi yêu cầu. Yêu cầu này là "mô tả Send" gói COIN là tùy chọn và SETUP paketıd của, dữ liệu nội dung gói tin theo yêu cầu và nhận diện được đóng gói với các thông tin bổ sung khác.
Chúng được giải thích chi tiết trong các phần sau. 0 kích thước tối đa gói của dạng thiết bị đầu cuối byte'ındadır.b PC trăm thứ tám để đọc tám byte đầu tiên và sẽ ngừng ngay lập tức sau khi bắt đầu TRẠNG bước chuyển. ngay sau khi hoàn thành việc chuyển giao hiện nay là kích thước gói PC endpoint 0 hub biliyordur.pc thiết bị tối đa cho máy chủ để thiết lập lại nó một lần nữa.
Các yêu cầu này được gửi tới thiết bị đầu cuối 0 của thiết bị có thông tin địa chỉ 0. Các yêu cầu này sẽ không ảnh hưởng đến các thiết bị khác vì chỉ có thể có một thiết bị có thông tin địa chỉ 0 trên hệ thống. Vì chỉ có địa chỉ thiết bị mới có thể là 0 và chỉ một thiết bị được liệt kê tại một thời điểm nhất định.
5- Chỉ định địa chỉ mới cho thiết bị
Bởi vì mỗi thiết bị sử dụng xe buýt thông thường được gán trong việc niêm yết bằng một địa chỉ là PC địa chỉ có sẵn địa chỉ riêng và gerekmez.cihaz của nó cũng giống như kalır.b của địa chỉ này trong danh sách tiếp theo cho đến khi nó được lấy ra từ hệ thống thiết bị trong các thiết bị olabilir.artık CHỈ giữa 0 và 127.
6- Tìm hiểu các tính năng của thiết bị
Thiết bị này sau đó ngay lập tức giao đến địa chỉ bạn muốn toàn bộ get_descript Device định danh có chứa thiết bị PCI sẽ gửi yêu cầu. Cấu hình tối đa của Mã định danh thiết bị chứa thông tin như kích thước gói tối đa VendorID, ProductID của thiết bị đầu cuối 0.
Ngay sau khi máy tính để đọc tin định danh này, một yêu cầu get_descript nói rằng muốn chín byte đầu tiên của bộ mô tả Cấu hình quy định trong gönderir.dah mô tả thiết bị sau này trong một lĩnh vực cấu hình như vậy cung cấp nhận dạng để kiểm tra (wtotallength) sẽ được đọc ngoài việc cấu hình cung cấp các thiết bị đầu cuối, tổng chiều dài của các định danh, chẳng hạn như giao diện và lớp nằm. Sau khi cấu hình ban đầu chứa chín byte nhận dạng đọc (định danh này đã kích thước là chín byte), tổng chiều dài của định danh khác đã thu được. Cấu hình thời gian này PCR get_descript rằng ông muốn gửi lại nhận dạng yêu cầu.
Vì tổng thời lượng lên đến 255 byte được yêu cầu lần này, sau khi định danh cấu hình nó được gửi trong định danh giao diện và các định danh điểm cuối. PC sẽ sử dụng thông tin được gửi trong quá trình liên lạc và lựa chọn trình điều khiển.
7- Cài đặt trình điều khiển thiết bị
PC bắt đầu tìm kiếm trình điều khiển phù hợp nhất cho thiết bị phù hợp với thông tin trong các bộ mô tả được đọc từ thiết bị, quá trình này được thực hiện với các tệp INF. VendorID, ProductID, Số phiên bản được đọc từ các bộ mô tả và thông tin về lớp mà thiết bị tương thích được tìm kiếm trong các tệp INF. Khi tệp INF khớp với thông tin này được tìm thấy, trình điều khiển tại vị trí được chỉ định bởi tệp INF này được nạp vào bộ nhớ. Ngay lập tức sau khi trình điều khiển được tải, PC có thể yêu cầu thiết bị gửi lại các mô tả lớp liên quan của nó.
8- Thiết lập cấu hình thích hợp bằng PC
Việc đầu tiên cần thực hiện ngay lập tức sau khi trình điều khiển được cài đặt là thiết lập cấu hình mong muốn trong thiết bị với một yêu cầu Set_Configuration Bây giờ giao diện của thiết bị đã được bật và được CONFIGURED.
Thiết bị này có thể ở trạng thái SUSPEND ngoài sáu trạng thái được mô tả trước đây Điều này xảy ra khi thiết bị không hoạt động trong BUS trong 3 ms và dòng điện được thiết bị thu được từ BUS ở chế độ này rất thấp. Nhưng nó luôn sẵn sàng để giao tiếp. Các bước liệt kê được mô tả ở trên sẽ được xem xét kỹ hơn với chương trình Device Monitoring Studio khi kiểm tra mạch chúng tôi thiết kế.

ĐỊNH DANH VÀ NỘI DUNG

Mô tả là các khối dữ liệu được sắp xếp theo một định dạng cụ thể, bao gồm loại chuyển, mã sản phẩm và nhà sản xuất, số sê-ri, tính năng điểm cuối, tùy chọn nguồn và hơn thế nữa.
PC yêu cầu các khối dữ liệu này theo yêu cầu và thu thập thông tin về thiết bị. Ví dụ, trong mạch mà chúng ta sẽ thiết kế sau, nội dung String Identifier được định nghĩa cho PIC18F4550 là ở dạng "Ứng dụng USB JabbaSoft". Nếu PC gửi yêu cầu Get_Descriptor và nội dung của yêu cầu này là String_Descriptor, tức là một String Identifier, thiết bị sẽ gửi "String Identifier", tức là chuỗi ký tự trên.
Bạn sẽ nhận được một tin nhắn như thế này trong quả bóng tin nhắn. Bây giờ tôi nghe tất cả các bạn nói "Vì vậy, khi tôi cài đặt bộ nhớ flash của tôi, các thông điệp sắp ra tại thời điểm này là các chuỗi ký tự được xác định bởi nhà sản xuất worm" hoặc tôi hy vọng như vậy. :)
Hình 31) Đọc số nhận dạng chuỗi
Đọc chuỗi
Bạn sẽ có một sự hiểu biết tốt hơn về cách các khối dữ liệu được định nghĩa khi kiểm tra phần mềm PIC và bây giờ kiểm tra các loại định danh. Các bộ mô tả có cấu trúc phân cấp. Cấu trúc này được thể hiện trong hình 32. Như bạn có thể thấy, Mã nhận dạng thiết bị chỉ chứa thông tin cụ thể về toàn bộ thiết bị. Trình nhận dạng cấu hình có thể là một hoặc nhiều và adedi được chỉ định trong Mã định danh thiết bị. Mỗi giao diện Trình định cấu hình mang tổng chiều dài của điểm cuối và các mã định danh lớp.
Tại cùng thời điểm với số lượng giao diện tối đa nó có chứa một mô tả ngay sau khi đề cập một chút thời gian trước, nhận dạng cấu hình trong số định danh giao diện được định nghĩa bao gồm gelir.h Interface Định danh phần của thiết bị đầu cuối và các thông tin bổ sung khác được hỗ trợ. Nó cũng bao gồm thông tin về lớp mà thiết bị tương thích. Ngay sau mã định danh này là Trình mô tả lớp và điểm cuối.
Nó phải bằng số được chỉ định trong Bộ mô tả giao diện mong muốn của các bộ mô tả cổng. định danh này được xác định bởi các điểm cuối có hỗ trợ loại chuyển, kích thước gói tin tối đa và phạm vi của içerir.şi thăm dò Bây giờ chúng ta sẽ xem xét các thông tin chi tiết hơn như nhận dạng này.
Hình 32) Cấu trúc phân cấp của các bộ mô tả
Cấu trúc phân cấp
Mỗi số nhận dạng có một giá trị chỉ định loại của nó. Các số nhận dạng được xác định trong Đặc tả USB của bảng sau được hiển thị. Các số nhận dạng được đưa ra ở đây được phân biệt bằng các giá trị không đổi được xác định trước. 7.bit luôn là 0. bit bit có thể lấy bất kỳ giá trị nào sau đây: 00 Chuẩn, 01 Class, 10 Generator và 11 Reserved Bits giữa 0 và 0 xác định định danh.
Bảng 2) Các loài mô tả
xác định loại bảng 2
Lưu ý các giá trị của số nhận dạng trong phần tiêu chuẩn . 7. Bit 0, 6 và 5. Bitler 00 là kiểu tiêu chuẩn và các bit khác là kiểu mô tả (1,2,3 ..)
Nếu chúng ta lấy HID làm ví dụ từ các định danh trong phần lớp, chúng ta có thể thấy rằng bit thứ 7 hiển thị 0, 6 và 5 bitler 01 tức là lớp và các bit nhận dạng của các bit 4-0 khác.

TRÌNH MÔ TẢ THIẾT BỊ

USB Số nhận dạng đầu tiên mà PC yêu cầu từ thiết bị khi nó được kết nối đầu tiên với hệ thống là Mã định danh Thiết bị. PC alır.dah với định danh này trong yêu cầu get_descript trước như nhận định khác, PC, hãy nhớ để bắt đầu liệt kê các gói kích thước tối đa của thiết bị đầu cuối 0 được đọc từ định danh này. Nó chứa thông tin cơ bản về thiết bị nhận dạng thiết bị và các thông tin cần thiết khác.Trong bảng 3, các trường của số nhận dạng này được hiển thị.
Bảng 3) Mã định danh thiết bị
số nhận dạng thiết bị
định danh này tổng 18 của kích thước tính bằng byte là khu vực vardır.h edilir.dig bắt đầu với thông tin chỉ ra rằng độ dài và kiểu nhận dạng như trong nhận dạng. PC xác định loại định danh được gửi bởi thông tin này. Hãy kiểm tra các trường của từ định danh này vào lúc này.
bLength Trường này giữ tổng kích thước của Bộ mô tả thiết bị.Kích thước tổng của Bộ mô tả thiết bị là 18 byte vì nó có thể được hiểu từ cuối giá trị OffSet.
bDescriptorType Trường này nhận giá trị của DEVICE (0x01) như trong Bảng 2. Máy tính sẽ nhận dạng số nhận dạng này làm Số nhận dạng thiết bị.
BCDUSB chứa số phiên bản USB Specification, trường này có định dạng BCD và có thể lấy giá trị 0110 cho phiên bản 1.1, 0100 cho phiên bản 1.0 chẳng hạn.
bdeviceclass Khu vực này là một trong một trong những lớp được định nghĩa cho içerebilir.usb USB cho lớp được định nghĩa 0x01 để 0xFE, giá trị 0xFF được rằng quy định bởi nhà sản xuất của lớp lớp gösterir.hıd và các lớp khác mã, một số trong những thiết bị được định nghĩa trong định danh giao diện không phải là trong lĩnh vực này. Do đó, trường này là 0x00.
bDeviceSubClass Trường này giữ giá trị lớp con của bDeviceClass.Nếu giá trị của bDeviceClass là 0x01 - 0xFE, trường này phải có giá trị xác định. Nếu bDeviceClass là 0x00, trường này phải là 0x00.
bDeviceProtocol Trường này giữ mã giao thức, mã giao thức sẽ được tham chiếu khi kiểm tra định danh giao diện.
bMaxPacketSize Trường này giữ kích thước gói tối đa của Điểm 0. Hãy nhớ rằng máy tính đầu tiên đọc trường này từ Mã định danh Thiết bị trong giai đoạn tiền liệt kê.
idVendor Trường này chứa thông tin đăng nhập của nhà sản xuất và mỗi thiết bị phải có mặt trong bộ mô tả Như đã đề cập trước đó, PC tải các giá trị được đọc từ các trường idVendor và idProduct trong các tệp INF và tải trình điều khiển thích hợp. Giá trị trong lĩnh vực này thực sự được cung cấp bởi USBIF (Diễn đàn người triển khai Usb) chỉ cho các thành viên và nhà cung cấp dịch vụ.
idProduct Giá trị này chứa ID sản phẩm được nhà sản xuất chỉ định cho sản phẩm.
bcdDevice Trường này chứa số phiên bản của thiết bị, có định dạng CD và được nhà sản xuất thiết bị cấp. Nó có thể được sử dụng trong lựa chọn trình điều khiển nếu nó là bắt buộc để xác định nó.
imanufactur là khu vực sản xuất tutar.pc chỉ số chuỗi này sẽ học được những chỉ số của chuỗi khi bạn đọc các nhà sản xuất của lĩnh vực này và String Descriptor với get_descript sử dụng giá trị chỉ số này chỉ ra rằng trong khi cố gắng để tìm hiểu trước những gì bạn muốn chuỗi sản xuất. Nếu không được sử dụng, 0 sẽ được thông qua.
iProduct Trường này giữ chỉ mục của chuỗi sản phẩm Các quy trình được mô tả trong khi trường iManufacturer được giải thích. Nếu không được sử dụng, 0 sẽ được thông qua.
iSerialNumber Trường này giữ chỉ mục của chuỗi số sê-ri của thiết bị. Nhưng cùng loại kết nối với nhiều thiết bị xe buýt khi thiết bị PCI số serial xác định bằng cách phân biệt các startnol_alp.eps lần số serial chuỗi định nghĩa các thiết bị gắn liền với các cảng khác nhau PC sẽ xác định xem quá trình cài đặt trước của thiết bị và có sẵn trong nỗ lực cài đặt trình điều khiển mới.
bNumConfigurations Trường này chứa tên của cấu hình được thiết bị hỗ trợ.

TRÌNH MÔ TẢ CẤU HÌNH

Có một cấu trúc của mô tả thứ bậc, như thể hiện trong hình 32 và chuỗi này từ thiết bị bulunur.pc Device định danh đầu ngay lập tức sau khi đọc cấu hình mô tả chứa giao diện sẽ hỏi bạn nếu nhận dạng lớp và nhận dạng trong Açnok. Mỗi yêu cầu liên quan đến một phần tử nhỏ hơn của thiết bị. Chứa thông tin về các tính năng và khả năng của Trình nhận dạng cấu hình. Ví dụ bao gồm việc sử dụng điện và đánh thức từ xa, số lượng giao diện.
định danh giao diện và các khu vực của các cấu hình được gửi bởi các thiết bị trong tất cả các trình nhận dạng trong gerekir.tablo-4 nếu một hoặc nhiều số nhận dạng thiết bị đầu cuối muốn tổng chiều dài mong muốn rằng các cấu hình elemanlarıdır.pc dưới của nhận dạng của các cấu hình của bộ nhận diện được hiển thị.
Bảng-4) Bộ mô tả cấu hình
Trình mô tả cấu hình
Tổng chiều dài của bộ mô tả này là 9 byte. Giống như các số nhận dạng khác trong bộ mô tả cấu hình, Get_Descriptor được đọc với yêu cầu.
bLength Trường này giữ tổng kích thước của Bộ mô tả cấu hình và là một 9 byte cố định.
bDescriptorType Trường này nhận giá trị CONFIGURATION (0x02) được hiển thị trong Bảng 2. PC nhận ra rằng số nhận dạng này là Trình nhận dạng cấu hình với giá trị này.
wTotalLength Trường này giữ tổng chiều dài của con cháu, bao gồm Bộ mô tả thành phần. Các số nhận dạng phụ là các số nhận dạng Giao diện, Lớp và Điểm cuối. Tổng chiều dài của tất cả các mô tả này nên được đưa ra trong lĩnh vực này.
bnumınterfa của giao diện trong lĩnh vực này, tổng số tutar.bura hỗ trợ các định danh giao diện cần được xác định.
bconfigurationvalu trong này get_configuratio khu vực và định nghĩa về giá trị của nội dung của định danh içerir.örneg 0x01 PCI lĩnh vực này set_configuratio được yêu cầu và sau khi đọc cấu hình của thiết bị đặt sẵn sàng với set_configuratio sau khi phù hợp. Đây là trường wValue của yêu cầu Set_Configuration (sẽ được kiểm tra sau)
Chứa giá trị được xác định trong trường bConfigurationValue . Khi cấu hình hoạt động được yêu cầu với Get_Configuration, thông tin cấu hình được thiết lập bởi Set_Configuration được gửi đi.
iConfiguration Trường dữ liệu này giữ chỉ mục của chuỗi Cấu hình. Nếu không được sử dụng, 0 có thể được thông qua.
bmAttributes Kích thước của trường này là 1 byte như trong Bảng-4. Nếu thiết bị có nguồn cung cấp riêng, tức là nếu thiết bị tự cấp nguồn, 6.bit 1 không phải là 0 nếu không. Nếu thiết bị tự cấp nguồn thì điều này có nghĩa là sẽ không có nguồn điện nào được lấy từ BUS. Trong trường hợp này, PC sẽ chỉ cung cấp dòng điện 100mA cho thiết bị trong giai đoạn danh sách sau đó nó sẽ dừng lại.
Nếu thiết bị được cấp nguồn từ BUS, bit này 0 có nghĩa là thiết bị có thể vẽ tới 500mA từ BUS sau khi niêm yết. 5.bit 1 có thể được thiết lập nếu thiết bị hỗ trợ wakeup từ xa (RESUME). Trong trường hợp này, thiết bị ở chế độ tạm dừng có thể báo cáo yêu cầu liên lạc tới máy tính, các bit từ 4 đến 0 không được sử dụng và phải giữ nguyên 0.
MaxPower Trường này chỉ định dòng BUS được thiết bị yêu cầu, trường MaxPower được cung cấp một nửa giá trị hiện tại của BUS. Ví dụ, nếu nhu cầu thiết bị để 100mA gán một giá trị của 50, khu vực này đã đưa ra một nửa giá trị của lưu trữ một byte trong sự biểu hiện của giá trị lớn olur.normal kích thước của lĩnh vực này là một byte. Thiết bị có thể lên tới 500mA dòng điện từ BUS. Khi kích thước của trường này là một byte, không có cách nào để biểu thị giá trị 500. (1 byte chiếm tới 255 giá trị) Vì vậy, giá trị 500 là giá trị giới hạn và được biểu thị dưới dạng giá trị là 250. Máy tính sẽ đánh giá mức này là 500mA. Số lượng dòng điện được đưa ra bị giới hạn bởi milliamper.

BỘ MÔ TẢ GIAO DIỆN

Mã định danh giao diện có thể được sử dụng để nhận dạng toàn bộ thiết bị USB, nhưng nó thực sự nhóm một hoặc nhiều thiết bị đầu cuối Thông tin như thông tin lớp và mã giao thức mà thiết bị hỗ trợ là tất cả trong vùng này. Các trường của số nhận dạng này được hiển thị trong Bảng-5.
Bảng 5) Mã định danh giao diện
định danh giao diện
bLength Trường này giữ tổng kích thước của Bộ mô tả giao diện và là hằng số 9 byte.
bDescriptorType Trường này nhận giá trị INTERFACE (0x04) được hiển thị trong Bảng 2. PC nhận ra rằng số nhận dạng này là Mã định danh Giao diện.
bInterfaceNumber Chúng ta đã thấy trong một cấu trúc phân cấp trong Hình 32 rằng một thiết bị tổng hợp có thể có nhiều giao diện. Vì vậy, mỗi giao diện phải có một số duy nhất được xác định trong trường này để nó có thể được phân biệt với những người khác. Giá trị ban đầu bắt đầu từ 0.
bAlternateSetting Bộ mô tả cấu hình có cùng ý nghĩa như trong trường bConfigurationValue. PC sử dụng giá trị của giao diện được định nghĩa ở đây trong khi Set_Interface được định nghĩa, nó cũng sử dụng giá trị được định nghĩa trước đó với Get_Interface. Giá trị ban đầu bắt đầu từ 0.
bNumEndPoints Cho biết địa chỉ điểm cuối  giao diện này hỗ trợ ngoại trừ cổng 0 (cổng điều khiển mặc định). Nếu thiết bị sẽ sử dụng điều khiển truyền trong giao tiếp dữ liệu, ngoại trừ các hoạt động liệt kê và cấu hình, và nếu không có điểm cuối nào khác được xác định, trường này có thể lấy giá trị 0.
bInterfaceClass Trường này tương tự như DeviceClass được tìm thấy trong Mã định danh Thiết bị. Hầu hết các thiết bị đều chỉ định giao diện của trường này. Ví dụ, thiết bị HID xác định mã lớp trong trường này, không phải trong trường DeviceClass của số nhận dạng thiết bị và trường này nhận giá trị 0x03 (mã HID)
bInterfaceSubClass Trường này tương tự với DeviceSubClass được tìm thấy trong Mã định danh Thiết bị, hầu hết các mã lớp con thiết bị chỉ định trường này một lần nữa. Trường bInterfaceClass Đối với một giao diện với HID, các giá trị mà trường này có thể thực hiện;
bınterfacesubclass
Nếu đây là giá trị của 0x01 thiết bị hiện trường hỗ trợ giao diện khởi động cho giao diện demektir.boot để hỗ trợ lái xe HID của thiết bị máy tính được cài đặt khi bạn rời khỏi cũng cung cấp hỗ trợ used.For một thiết bị để khởi động giao diện sẽ làm việc tốt trên máy tính mở trong chế độ DOS.
bInterfaceProtocol Trường này tương tự như bDeviceProtocol được tìm thấy trong Mã định danh Thiết bị và chỉ định giao thức nào hỗ trợ giao diện. Nếu trường bInterfaceSubClass là 0 thì trường này phải là 0.
Một lần nữa, nếu chúng tôi đưa ra một ví dụ, nếu lĩnh vực này chỉ hỗ trợ các khu vực được xác định lớp HID bınterfacesubclass giao diện khởi động nó có giá trị là 0 nếu ngược lại. Nếu giao diện hỗ trợ giao diện khởi động, bInterfaceProtocol có thể lấy một trong các giá trị sau;
bInterfaceProtocol
iInterface Trường này giữ chỉ mục của Chuỗi giao diện.

TRÌNH MÔ TẢ ENDPOINT

Các bộ mô tả điểm cuối chứa thông tin cho biết kiểu truyền mà chúng hỗ trợ, kích thước gói tối đa và cho dù chúng là IN hay OUT. Mỗi cổng được chỉ định trong Bộ mô tả giao diện phải có số nhận dạng riêng. Ví dụ, nếu trường bNumEndPoints của Bộ mô tả giao diện là 0x02, thì hai Bộ mô tả cổng được xác định. Các trường của Mã định danh cổng được hiển thị trong Bảng 6 -).
Trình mô tả EndPoint
bLength Trường này giữ tổng kích thước của Port Descriptor và là hằng số 6 byte.
bDescriptorType Trường này nhận giá trị của ENDPOINT (0x05) được hiển thị trong Bảng 2. PC nhận ra rằng mã định danh này là Mã định danh cổng.
bendpointaddress lĩnh vực này được định nghĩa uçnokt IN hoặc OUT tutar.0-3 giữa thông tin và số cho biết số bit trong thiết bị đầu cuối trong thiết bị đầu cuối. Thiết bị tốc độ thấp có thể xác định tối đa 3 điểm đến, trong khi thiết bị tốc độ cao có thể có 16 điểm đến. Ở đây, các bit 0 đến 3 trong vùng này có thể xác định địa chỉ điểm cuối tối đa. (0-3 bit từ 2n định nghĩa endpoint 16) hướng 7.bit bitidir.b bit 0 có nghĩa là uçnokt OUT, và IN là một trong đó được sử dụng để belirtir.4-6 bit.
bmAttributes Trường này lưu trữ kiểu truyền được hỗ trợ bởi thiết bị đầu cuối và thông tin khác theo thao tác kéo. Các bit 0 và 1 được sử dụng để thể hiện kiểu truyền và có thể lấy một trong các giá trị sau, kiểu truyền của cổng điều khiển mặc định luôn là Điều khiển;
bmattributes
Trong phiên bản USB 1.1, tổng cộng năm bit (Dự trữ) từ 2 đến 7 (Dành riêng) được sử dụng, nhưng bốn bit từ 2 đến 5 được sử dụng trong USB 2.0. Dòng 2 và 3 thể hiện loại đồng bộ hóa và có thể lấy các giá trị sau;
loại đồng bộ
Các bit thứ 4 và thứ 5 khác cho biết loại sử dụng và có thể lấy các giá trị sau;
4-5-bit
Các bit 6 và 7 luôn bằng 0, các bit 2 đến 5 phải bằng 0 trong các thiết bị đầu cuối không đẳng thời.
wMaxPacketSize Trường này xác định kích thước gói tối đa mà thiết bị đầu cuối có thể gửi và nhận trên mỗi lần truyền. Trong các phiên bản dưới chuẩn USB 2.0, các bit từ 0 đến 10 thể hiện kích thước gói, giá trị có thể là 0-1023 và các bit 11 và 12 luôn là 0. Trong các thiết bị USB 2.0 tốc độ đầy đủ 11 và 12 bit Xác định số lượng các hoạt động bổ sung khi một mikroçerçeve uçnokt và được hỗ trợ trên một trong các giá trị sau;
wmaxpacketsiz để
bınterval khu vực này của các thiết bị dựa trên một số nghĩa là có sẵn trên thiết bị đầu cuối của thiết bị cắt hỗ trợ chuyển giao nếu sự chậm trễ tối đa cho bỏ phiếu khi nó uçnokt lĩnh vực này, nếu thiết bị hỗ trợ việc chuyển giao khoảng polling đẳng thời và OUT thiết bị tốc độ cao gửi vực này uçnokt được sử dụng việc chuyển giao quyền kiểm soát bao nhiêu lần gói tin có thể đáp ứng với NAK.
Một giá trị bınterval thiết bị tốc độ thấp đáng mili giây và một giá trị từ 10 đến 255 cho alabilir.ta cắt nhanh và giá trị đẳng thời 1.x giữa 1-255 các khu vực này mili giây cho uçnokt là alabilir.spesifikasyo đầy đủ tốc độ uçnokt đẳng thời họ nói nó nên là một trong những giá trị . giá trị này cho các thiết bị đẳng thời 2.0 đầy đủ tốc độ để được từ 1 đến 18 và được tính bằng 2bınterval-1. Do đó, các giá trị trong khoảng từ 1 ms đến 32768 giây có thể được đưa ra. Trong thiết bị đầu cuối tốc độ cao, giá trị này được đo tại 125 đơn vị c CV được xác định và khoảng cách giữa chúng tôi 125 khung từ 16 đến 4096 giây genişliğindedir.1 giá trị nhất định.
Đối với các thiết bị đầu cuối OUT và điều khiển tốc độ cao, trường này chỉ định địa chỉ NAK có thể cho tối đa yêu cầu được truyền đi.Nếu PC gửi gói đến thiết bị và thiết bị không muốn nhận gói này vì bất kỳ lý do gì, nó phản hồi với NAK. Trong trường hợp này, trường này sẽ giữ số lượng NAK tối đa có thể được đưa ra để đáp ứng với PC và có giá trị từ 0 đến 255. Trường này được bỏ qua cho tốc độ toàn bộ ngăn xếp và chuyển điều khiển.

TRÌNH MÔ TẢ CHUỖI / BỘ MÔ TẢ CHUỖI

Bộ mô tả này chứa thông tin chuỗi được định nghĩa cho thiết bị và được định nghĩa riêng cho từng mục. Ví dụ, sau khi đọc Bộ mô tả thiết bị PC, iManufacturer và iProduct sẽ yêu cầu Bộ nhận dạng chuỗi tương ứng bằng cách sử dụng các giá trị chỉ mục được xác định trong các trường.
Vị trí của các bộ mô tả chuỗi trong mảng này phải liên quan đến các giá trị chỉ mục được chỉ định trong các bộ mô tả khác. Ví dụ, chuỗi định danh sản xuất thiết bị trong chỉ mục để imanufactur 1 với nhà sản xuất yêu cầu tên của các yếu tố quy định tại thư mục Chuỗi Chuỗi định danh 1. mô tả muốn saklanmalıdır.pc là get_descript. Yêu cầu này truyền lĩnh vực Windex trong gói (chúng tôi sẽ xem xét sau) yêu cầu các chuỗi mô tả của lợi nhuận chỉ là trong gösterir.biz định danh chỉ số tương ứng trong mảng chúng ta tạo ra sử dụng chỉ số này là. Các trường của String Identifier được hiển thị trong bảng-7.
Bảng 7) Mã định danh chuỗi
Mã định danh chuỗi
blength lĩnh vực Chuỗi định danh của tổng kích thước của một lĩnh vực hai byte từ tutar.baş, trong khi kích thước của những thay đổi khu vực bstring theo chuỗi ký tự quy định.
bDescriptorType Trường này nhận giá trị STRING (0x03) được hiển thị trong Bảng 2. Máy tính sẽ nhận ra rằng số nhận dạng này là một Mã định danh Chuỗi.
bString, wLangId Trường này giữ chuỗi liên kết với thiết bị. Mỗi bộ mô tả chuỗi có chỉ mục riêng của nó, và nếu các bộ mô tả khác xác định một chuỗi, nó chỉ định nghĩa chỉ mục trong một trường đã cho. Do đó, khi PC muốn đọc một chuỗi ký tự liên kết với bộ mô tả tương ứng, nó xem xét giá trị chỉ mục được chỉ định trong một trong các trường và chọn Chuỗi phân định tương ứng theo chỉ mục này. Bạn sẽ hiểu điều này tốt hơn khi kiểm tra PIC Frimware. Mã định danh chuỗi là phần tử đầu tiên của các trình nhận dạng chuỗi phải là 0 .eleman và trường này phải cho biết ID ngôn ngữ.
chứa thông tin về mô tả chung như các thiết bị nhìn thấy, xếp hàng trên các quy tắc định dạng cụ thể byte byte dizeleridir.b của chuỗi byte gửi để đáp ứng với yêu cầu của PC Lý do mảng theo các quy tắc trong định dạng này değerlendirilmesidir.örneg PC muốn Device Nhận dạng 0x18, 0x05 , 0x98 byte 0. ... .. blength rằng theo định dạng này chúng tôi gửi mẫu đơn, 1 byte bdescriptortyp biết điều đó và làm cho các hoạt động cần thiết.
bộ đệm [bLength] = 0x18, bộ đệm [bDescriptorType] = 0x05
Bây giờ bạn hiểu những gì quá trình xác định những bước khi đối mặt với những mô tả mà bây giờ sẽ xem xét liệu và bằng cách nào có thể được gửi đi. Trước đây chúng tôi lưu ý rằng việc thực hiện giai đoạn niêm yết và phù hợp tham chiếu để chuyển quyền kiểm soát việc đọc định danh có liên quan. Đó là lý do tại sao chúng ta cần kiểm tra cấu trúc của các gói dữ liệu một cách chi tiết hơn trong mỗi giao dịch.

PIC18F4550 VÀ THÔNG TIN USB ỨNG DỤNG NGÔN NGỮ PICC


Pic18f4550 và thông tin usb ứng dụng ngôn ngữ picc

CHI TIẾT VỀ CHUYỂN KHOẢN

Chúng tôi đã kiểm tra các giao dịch chuyển khoản theo Mục 3, Các loại chuyển khoản và nội dung của chúng. Tuy nhiên, trong nhóm này, chỉ có các bước quy trình và các cấu trúc gói được gửi ở mỗi bước đã được kiểm tra, bây giờ chúng ta sẽ kiểm tra thông tin và các trường có trong các gói này trong phần này.
Các giai đoạn xử lý Trước đây chúng tôi đã nói rằng việc chuyển giao điều khiển là ba chữ số, đây là các bước SETUP, DATA và STATUS, có ít nhất ba gói được gửi ở mỗi bước. Đây là các gói JETON, DATA và ELSHIQUE, hãy xem xét các bước và gói này chi tiết hơn.
Cài đặt Bước để cho biết rằng một thiết bị của cấu hình này cung cấp quá trình bước yürütülür.h nhận ra các bước thiết bị và thiết lập để đáp ứng với một ACK được truyền trong bước COIN thiết lập zorundadır.şi, kiểm tra các nội dung của DATA và Handshake gói.
Mã trọn gói
gói nội dung ID: SETUP (0x0D)
Nguồn gốc của gói: PC
dữ liệu bổ sung: Device địa chỉ endpoint và
gói Ý nghĩa: Gói này sẽ được gửi đến các bước xử lý thiết bị cho sự hiểu biết rằng SETUP.
Gói dữ liệu gói
ID nội dung: DATA0
Nguồn gói: PC
Dữ liệu bổ sung: bmRequestType, bmRequest, wValue, wIndex, wLength
Gói Ý nghĩa: Gói này chứa thông tin theo yêu cầu của yêu cầu. Thiết bị phải giải thích thông tin này và gửi nó đến máy tính chính xác hoặc dịch nó thành một phản ứng thích hợp, điều này có nghĩa là thiết bị sẽ được gửi dưới dạng một mảng byte theo một định dạng nhất định. Hãy kiểm tra các khu vực này ngay bây giờ.
bmRequestType Độ dài của trường này là một byte và đại diện cho thông tin nguồn, loại yêu cầu và thiết bị nhận để gửi dữ liệu trong IN DỮ LIỆU. 7 bit là kết thúc của hướng. Đó là để nói hướng DATA IN. Bit này chỉ ra rằng thiết bị sẽ đi đến máy tính (IN), nếu nó là 0 nó sẽ đi đến thiết bị (OUT) từ máy tính. Dòng 6 và 5 chỉ định loại yêu cầu và lấy các giá trị sau;
bmrequesttyp để
Các bit từ 4 đến 0 cho biết phần tử nào của thiết bị được dự định và nhận một trong các giá trị sau;
bmrequesttyp A-2
bRequest Độ dài của trường này là một byte và biểu thị yêu cầu. Giá trị của trường này được xác định bởi bit 6 và 5 của bmRequestType. Ví dụ, điều này sẽ là dấu chấm hết 0x00 một trong mười một định nghĩa yêu cầu USB tiêu chuẩn cho khu vực này. Khu vực này là đẳng cấp cụ thể yêu cầu 0x01, 0x02 là trường hợp nếu nhà sản xuất tuyên bố rằng một yêu cầu sẽ được xác định.
wValue Trường này bao gồm hai byte và PC gửi thông tin cần thiết trong khu vực này. Ví dụ, khi máy tính gửi yêu cầu Set_Address, trường này sẽ là thông tin ADDRESS, trong trường hợp này, không cần DATA PRINT.
Windex Khu vực này bao gồm hai byte và một định danh Chuỗi định danh Chuỗi liên quan bởi các yêu cầu trong đó các giá trị chỉ số như đã đề cập trước mục đích khác nhau kullanılır.dah gönderilir.örneg Nhà sản xuất, ví dụ: nhà sản xuất chuỗi, chuỗi nhận dạng chuỗi 2 là một Hãy bù đắp .Đây là trường hợp belirlemeliyiz.çünk như thiết bị nhận diện khu vực imanufactur 2 thiết bị máy tính sau khi đọc giá trị này Định nghĩa của Ürtetic sẽ áp dụng cho get_descript yêu cầu để đọc các chuỗi trong yêu cầu này số 2 (Windex = 2) sẽ muốn mô tả STRING.
Trường này thay đổi tùy theo thông tin được yêu cầu. Ví dụ STRING quá trình nhận trong đi bộ có chức năng như mô tả ở trên, một tính năng giao diện thiết lập trong khi (set_ınterfa bởi) nội dung của lĩnh vực này đại diện cho số giao diện và 0-7 bit nếu kullanılır.eg một bộ tính năng thiết bị đầu cuối là (set_featur a) trong trường hợp này thể hiện các con số trong lĩnh vực Windex chứa thiết bị đầu cuối và bit 0 đến 3 được sử dụng.
wLength Trường này bao gồm hai byte và đề cập đến nút dữ liệu được gửi hoặc nhận trong bước dữ liệu. Nếu giá trị này bằng 0, không có thao tác nào được thực hiện trong bước dữ liệu.

Nội dung ID gói gói được tổ chức cầm tay : 
Nguồn gốc của gói ACK : Thiết bị USB đượccung cấp
: pakette này không có tệp đính kèm. 
Ý nghĩa của gói: gói cài đặt và gói dữ liệu trong một thiết bị quay ACK bắt tay gói liên tục khu vực, khẳng định hoạt động và bước thiết lập sẽ được hoàn thành. Thiết bị USB không thể gửi một cái bắt tay nếu nó phát hiện lỗi.
Bước dữ liệu Trong bước này, thông tin được yêu cầu bởi bước Thiết lập được thực hiện hoặc thông tin được truyền từ PC sang thiết bị. Vì vậy, bước này luôn luôn là IN hoặc OUT hoạt động. Bước này được thông báo trước cho thiết bị với 7 bit của bmRequestType trong gói Dữ liệu trong bước SETUP nơi dữ liệu sẽ chính xác với thiết bị hoặc thiết bị sẽ được trỏ tới máy tính. Thiết bị đánh giá nội dung của yêu cầu và bit này nhận dữ liệu ở bước dữ liệu hoặc truyền dữ liệu cần thiết đến máy tính.
Ví dụ thông tin cầm tay theo yêu cầu của đề nghị của dữ liệu bước khi get_descript nhận được yêu cầu. (Trong) Nếu lớp PC HID, lần này các thiết bị nhận dữ liệu từ một máy tính ở bước này sẽ gửi set_report yêu cầu (OUT) từng xử lý một kích thước của dữ liệu được vận chuyển thiết bị đầu cuối trong việc xác định được giới hạn ở kích thước gói tối đa được xác định bởi điểm cuối. Đồng thời, nếu dữ liệu được gửi không phù hợp trong một gói duy nhất, có nhiều quá trình xảy ra. Như đã đề cập trước đó, dữ liệu của kích thước gói tối đa của điểm cuối được gửi từ mỗi quá trình.
Quá trình thiết bị đầu cuối với số lượng dữ liệu được gửi và số lượng các gói kích thước tối đa của 
phân chia bulunur.örneg thiết bị 18 byte dữ liệu được gửi đi và điểm cuối của kích thước gói tin tối đa là tám trong khi số lượng các giao dịch xảy ra ở bước này trong trường hợp này 18/8 là ba. Lưu ý rằng kết quả được làm tròn đến số gần nhất. Nếu trường wLength được định nghĩa trong gói dữ liệu trong bước thiết lập là 0, thì bước Dữ liệu sẽ không xảy ra.
Đây có thể là trường hợp như vậy bởi vì các máy tính đôi khi đây không phải là một bước để gửi dữ liệu đến thiết bị theo quy định tại các gói dữ liệu cài đặt bước của gói dữ liệu được xác định trong lĩnh vực wvalu để kullanır.örneg thiết bị PC nói đến yêu cầu set_address khi chuyển nhượng địa chỉ và các thông tin địa chỉ để các bước cài đặt cho thiết bị, bổ nhiệm mà trong lĩnh vực wvalu nó sẽ gửi. Trong trường hợp này, trường wLength là 0 vì không cần in dữ liệu. Bây giờ chúng ta hãy xem xét nội dung của các gói Token, Data và Handshake ở bước này.
Gói thẻ
nội dung gói ID: Nếu nội dung của các yêu cầu dữ liệu máy tính xác định bằng cách khác gönderileceğer IN OUT
Gói Nguồn: PC 
dữ liệu bổ sung: Device và địa chỉ chi tiết của thiết bị đầu cuối 
Nghĩa gói: Gói này sẽ được gửi đến quá trình chuyển giao để xác định các phương hướng. Do đó, bên nhận phát hiện rằng hoạt động là IN hoặc OUT.
Dữ liệu gói
Packet ID nội dung: Luôn-data1 DATA0 lĩnh vực PID data1'dir.b Trong quá trình tiếp theo từ gói đầu tiên được gửi .... .
Gói Supply: Nếu OUT PID lĩnh vực PC gói thẻ, Trong thiết bị 
dữ liệu bổ sung: Gửi dữ liệu 
gói Ý nghĩa: kích thước của dữ liệu đến các dữ liệu gönderir.gönderil gói thông tin này theo yêu cầu của yêu cầu quy định tại bước SETUP được CK hoặc PC thiết bị với diện tích wLength ở các vị trí SETUP vẫn xác định.
Hand Held Packet
Packet ID nội dung: Khi thiết bị có thể gửi ACK, NAK, STALL và NYET (tốc độ cao) đến yêu cầu, máy tính chỉ trả về ACK.
Gói Nguồn: Gói này gửi dữ liệu đến bên nhận. Nếu trường PID của gói Token là IN, gói này sẽ gửi PC, nếu OUT nó sẽ gửi thiết bị.
Bổ sung: pakette này không có bổ sung. Chỉ tìm thấy PID.
Ý nghĩa gói: Gói tin này được gửi bởi bên nhận để thực hiện một xác nhận (ACK) đối với dữ liệu nhận được.Nếu bên nhận phát hiện lỗi, tuy nhiên, nó có thể không gửi gói bắt tay.
Bước trạng thái Bước này tương tự như gói bắt tay, nhưng chỉ cho dù toàn bộ quá trình chuyển đã thành công hay không, cho dù gói có được nhận thành công hay không. Mỗi thiết bị, bất kể bước nào đang được xử lý, phải để lại các bước khác theo yêu cầu của PC và phản hồi bước STATUS. Bây giờ chúng ta hãy kiểm tra các gói Token, Data và Handshake được gửi ở bước này.
Token Package
Packet ID nội dung: Nếu thiết bị của bước dữ liệu là thiết bị nhận (OUT) trường này là IN nếu không thì nó là OUT. 
Nguồn gói: PC
Dữ liệu bổ sung: Thông tin địa chỉ cổng và thiết bị Đóng gói
Ý nghĩa: Gói này được gửi để xác định hướng của gói dữ liệu của bước này, tức là trang Trạng thái.
Dữ liệu gói
gói ID nội dung: DATA1
Packet Nguồn: Nếu bước này, tức là, Token Packet PID của Status Bước là IN, sau đó thiết bị gửi dữ liệu OUT.
Dữ liệu bổ sung: Thành công chuyển giao chỉ định một gói dữ liệu có chiều dài 0. Một gói dữ liệu có độ dài 0 chỉ chứa các bit PID và CRC, không có bit dữ liệu. Nếu máy tính đang gửi dữ liệu trên dòng trạng thái, nó sẽ chỉ gửi một gói có độ dài 0. Nếu thiết bị đang gửi gói tin có độ dài 0, hãy gửi NAK hoặc STALL.
Gói Ý nghĩa: Gói này chứa một gói có độ dài bằng không nếu không có lỗi nếu nó được khai báo sớm hơn một chút. Một gói tin có độ dài bằng không cũng được sử dụng cho các mục đích khác.Một gói tin có độ dài bằng không được gửi từ phía trước cho biết rằng yêu cầu đang được tiến hành trong khi yêu cầu được gửi đi.

Nội dung gói ID gói Handoff : Nếu thiết bị đang gửi gói dữ liệu, máy tính sẽ tạo một trình tự lệnh và trường PID sẽ là ACK. Nếu dữ liệu được gửi bởi PC, tức là người nhận là thiết bị, trường này có thể là ACK, NAK và STALL.
Cung cấp gói: Nếu bước này, tức là gói Trạng thái, là gói dữ liệu nhận PC, PC sẽ gửi Gói Xử lý tới PC nếu không nó sẽ gửi thiết bị.
Tệp đính kèm: pakette này không chứa bất kỳ dữ liệu bổ sung nào.
Gói Ý nghĩa: Gói này được gửi bởi người nhận nhận gói dữ liệu của cột Trạng thái và gói cuối cùng là toàn bộ quá trình chuyển.
Như bạn có thể thấy, có một số sắp xếp và sắp xếp các gói được truyền đi ở mỗi bước, giống như các mô tả được mô tả ở trên. cần. Vì vậy, tất cả các dữ liệu được thiết kế như là một mô hình cụ thể. Bằng cách này, một mã thiết bị được thiết kế theo quy tắc này sẽ biết byte nào trong chuỗi có nghĩa là byte nào, byte nào trong chuỗi tương ứng với bit nào. Ví dụ, chúng tôi đã xem xét bố cục của các byte được gửi trong gói dữ liệu của bước Thiết lập.
Vì thiết bị nhận thức được thiết lập này, byte bmRequestType đầu tiên biết rằng byte thứ hai là bmRequest .... Vì vậy, bit quan trọng nhất của byte đầu tiên (7.bit) cho biết hướng truyền, thực hiện các hoạt động và các chế phẩm cần thiết Bây giờ chúng ta hãy xem những giá trị nào mà các khuôn mẫu này được lấp đầy khi gửi các yêu cầu. Bất kỳ byte nào được gửi trong cấu trúc này sẽ thay đổi, theo bất kỳ yêu cầu nào. Do đó, thiết bị sẽ có thể đánh giá các yêu cầu và hoạt động khác nhau dựa trên điều này.
Yêu cầu tiêu chuẩn Như đã đề cập trước đó, khi một thiết bị USB được kết nối với bất kỳ cổng nào trên PC, PC sẽ thực hiện một loạt các yêu cầu để nhận biết, phân loại và tìm hiểu các khả năng của nó. Thiết bị có thể không hỗ trợ một số yêu cầu này, nhưng nó phải hỗ trợ một số yêu cầu.
Ngay cả khi thiết bị không hỗ trợ nó, nó phải đáp ứng với STALL. Có tổng số mười một yêu cầu được xác định cho các thiết bị danh sách, nằm trong khoảng từ 0x00 đến 0x0C. Các yêu cầu này được gửi đến thiết bị theo cấu trúc được đề cập ở trên trong bước THIẾT LẬP. Bây giờ chúng ta hãy kiểm tra các hoạt động này chặt chẽ hơn.

GET_DESCRIPTOR (0X06)

Mô tả: Yêu cầu này được gửi trên đường SETUP để cho thiết bị biết rằng nó đã gửi một mã định danh.
bmRequestType Content: Trường dữ liệu này trong gói dữ liệu của lệnh SETUP sẽ có bit sau nếu yêu cầu này được gửi;
Hình 33) nội dung bmRequestType cho Get_Descriptor
Một get-descriptor-bmrequesttyp
Nội dung bRequest: Trường dữ liệu này trong gói dữ liệu của lệnh SETUP chứa một trong mười một yêu cầu USB chuẩn từ bmRequestType 6 và bit 5 00. Số yêu cầu này là 0x06 cho Get_Descriptor.
wValue Content: SETUP chữ số Trường này trong gói dữ liệu có một giá trị mô tả trong byte cao và một giá trị bộ mô tả trong byte thấp.
Ví dụ, với yêu cầu này, String Identifier sẽ nhận được byte cao 0x03 (xem Bảng mô tả Bảng 2) nếu muốn.
wIndex Nội dung: SETUP Trường dữ liệu này trong gói dữ liệu luôn là 0, ngoại trừ Mã định danh String, trong String Identifier nó chứa chỉ mục của String mong muốn, như được mô tả trước đó.
Nội dung wLength: Gửi lĩnh vực này trong bước SETUP gói dữ liệu mong muốn ,, cho thấy tổng chiều dài của dữ liệu cần thiết bởi giá trị yêu cầu nếu thiết bị chiều dài dữ liệu có thể gửi đến thiết bị đầu cuối lớn hơn thiết bị sẽ gửi dữ liệu cho đến kích thước của thiết bị đầu cuối sau đó gửi một gói zero-length.
Trong trường hợp này, PC sẽ yêu cầu dữ liệu còn lại. Yêu cầu này là mong muốn được đón nhận bởi các định danh giao diện Bảng 2 tiếp theo là định danh và nhận dạng của yêu cầu nhận dạng thiết bị đầu cuối listelenmiştir.konfigrasyo ​​phải được gửi đi. (Xem cấu trúc phân cấp trong hình 32)

SET_DESCRIPTOR (0X0B)

Mô tả: Yêu cầu này thêm thẻ cụ thể vào thiết bị hoặc cập nhật mọi trường hiện có. Nó không được hỗ trợ bởi nhiều thiết bị vì nó trực tiếp thay đổi phần sụn của thiết bị.
bmRequestType Content: Trường dữ liệu này trong gói dữ liệu của lệnh SETUP sẽ nằm trong cấu trúc thể hiện trong Hình 33 về yêu cầu này.
bRequest Nội dung: nơi SETUP bmrequesttype nằm ở khu vực này của 6 và 5.bit những yêu cầu này cho các gói dữ liệu 00 khi mười một içerir.set_descript USB là một trong số các ý kiến 0x0B yêu cầu.
wValue Content: SETUP chữ số Trường này trong gói dữ liệu có một giá trị mô tả trong byte cao và một giá trị bộ mô tả trong byte thấp.
wIndex Nội dung: SETUP Trường dữ liệu này trong gói dữ liệu luôn là 0, ngoại trừ Mã định danh String, trong String Identifier nó chứa chỉ mục của String mong muốn, như được mô tả trước đó.
wLength Content: SETUP Trường này trong gói dữ liệu chứa độ dài của các byte của định danh mà PC muốn cập nhật hoặc đính kèm.

GET_CONFIGURATION (0X08)

Mô tả: Yêu cầu này được sử dụng để lấy giá trị cấu hình đã được thiết lập trước đó từ thiết bị, giá trị này thực sự là giá trị được lưu trữ trong trường bConfigurationValue của Trình mô tả cấu hình. Khi liệt kê thiết bị PC, giá trị này sẽ được đặt nếu thiết bị đáp ứng các điều kiện được chỉ định. (Xem Set_Configuration)
bmRequestType Content: Trường dữ liệu này trong gói dữ liệu của lệnh SETUP sẽ nằm trong cấu trúc thể hiện trong Hình 33 về yêu cầu này.
Nội dung bRequest: Trường dữ liệu này trong gói dữ liệu của lệnh SETUP chứa một trong các yêu cầu chuẩn của chuẩn mười một chuẩn vì bit thứ 6 và thứ 5 của bmRequestType là 00. Đối với Get_Configuration, số yêu cầu này là 0x08.
wValue Content: Giá trị của trường này trong gói dữ liệu của lệnh SETUP là 0 cho yêu cầu này.
wIndex Nội dung: Giá trị của trường này trong gói dữ liệu của lệnh SETUP là 0 cho yêu cầu này.
wLength Content: SETUP Trường dữ liệu này trong gói dữ liệu của tiêu đề chứa độ dài của giá trị cấu hình mong muốn. Nếu trường bConfigurationValue của Bộ mô tả cấu hình là 1 byte, độ dài này sẽ là 1 byte trong khu vực này.

SET_CONFIGURATION (0X09)

Lưu ý: Với yêu cầu này, PC giả định rằng thông tin do thiết bị xác định và đọc là thích hợp và đặt giá trị Cấu hình được chỉ định trong Trình nhận dạng cấu hình.
bmRequestType Content: Trường dữ liệu này trong gói dữ liệu của lệnh SETUP sẽ nằm trong cấu trúc thể hiện trong Hình 33 về yêu cầu này.
Nội dung bRequest: Trường dữ liệu này trong gói dữ liệu của lệnh SETUP chứa một trong các yêu cầu chuẩn của chuẩn mười một chuẩn vì bit thứ 6 và thứ 5 của bmRequestType là 00. Đối với Set_Configuration, số yêu cầu này là 0x09.
wvalu nội dung: byte thấp của các cấu hình thiết bị xác định bởi giá trị của lĩnh vực này trong các cửa hàng bước SETUP bulunur.cihaz gói dữ liệu mà đánh giá cao trong một khu vực nơi mà nó muốn mà đọc lĩnh vực này và được xác định trước. Giá trị này có thể được đọc sau bằng Get_Configuration. Nếu yêu cầu này chưa được gửi đến thiết bị trước đó, trường này sẽ là 0 trong thiết bị. Trong trường hợp này, thiết bị ở trạng thái ADDRESS.
wIndex Nội dung: Giá trị của trường này trong gói dữ liệu của lệnh SETUP là 0 cho yêu cầu này.
wLength Content: Giá trị của trường này trong gói dữ liệu của lệnh SETUP là 0 cho yêu cầu này.
Bởi: Ahmet ATAR
PIC18F4550 mã chương trình ứng dụng và các tập tin tài nguyên: Thổ Nhĩ Kỳ pic18f4550 và thông tin usb ứng dụng ngôn ngữ picc
Tệp tải xuống danh sách LINK (ở định dạng TXT) link-802.zip mật khẩu-pass: 320volt.com
Phần mềm PIC USB, ứng dụng Kiểm tra USB, Quản lý USB DLL, Điều khiển USB Motor, USB-AutoRun, usb-monitor, USBMonitorFree, usbverfy, USB-Debug,

Post a Comment

[disqus] [facebook] [blogger]

MKRdezign

Biểu mẫu liên hệ

Name

Email *

Message *

Powered by Blogger.
Javascript DisablePlease Enable Javascript To See All Widget
Hỗ trợ trực tuyến