Hình 6: Giao dịch đồng bộ IN và OUT

Một phần của tài liệu Thiết kế và thi công mạch hẹn giờ đa năng có thể cấu hình qua cổng USB (Trang 27 - 38)

http://www.ebook.edu.vn SV:Trần Quốc Gia Phú, Trần Hạ Long - 26

-Truyền đồng bộ như dòng chảy, một kiểu truyền thời gian thực. Kiểu truyền này thích hợp nhất với các ứng dụng cần truyền dữ liệu với một tốc độ nhất định, hay một thời gian

đã được xác định trước, với mức độ bỏ qua lỗi có thể chấp nhận được. Ở tốc độ full truyền đồng bộ truyền nhiều dữ liệu trên một frame hơn truyền ngắt. Nhưng bù lại kiểu truyền này không cung cấp cơ chế truyền lại các gói dữ liệu khi xảy ra lỗi như mất gói dữ

liệu, nhận sai dữ liệu. Các ứng dụng sử dụng truyền đồng bộ như là giải mã âm thanh và âm nhạc được vận hành ở thời gian thực.

-Thực tế là dữ liệu trong truyền đồng bô không được truyền ở một tốc độ cố định, Truyền đồng bộ chỉ là phương thức bảo đảm cho việc truyền một khối lượng lớn dữ liệu

được truyền nhanh chóng trong lúc bus không còn nhiều băng thông, ngay cả khi kiểu truyền này không bắt buộc phải vận chuyển ở thời gian thực. Không giống như kiểu truyền bulk, khi một lần truyền đồng bộđược bắt đầu, host phải bảo đảm thời gian tích cực để có thể gửi dữ liệu tại một tốc độ cốđịnh, vì nguyên nhân này nên việc kiểm tra tốc

độ trên đường truyền xảy ra định kỳ trong những khoảng thời gian rất nhỏ.

a)Tính sẵn sàng:

Kiểu truyền này chỉ thực hiện được ở tốc độ cao hoặc tốc độ full. Giống như truyền bulk kiểu truyền này không bắt buộc tất cả các thiết bị phải hỗ trợ. Một vài lớp thiết bị

chuyên biệt hỗ trợ kiểu truyền này theo mục đích của người sử dụng.

b)Cấu trúc:

-Do kiểu truyền có tên là đồng bộ nên nó có khả năng truyền với một tốc độ cốđịnh, với một sốđịnh nghĩa trước số byte được truyền trên mỗi frame hoặc microframe. Ngoài truyền đồng bộ ra thì không có kiểu truyền nào có thể truyền số byte được định nghĩa trước trên mỗi frame(ngoại trừ truyền ngắt có khả năng đảm bảo thời gian trễ ngắn nhất.

-Truyền đồng bộ hoạt động ở tốc độ full bao gồm một giao dịch IN hoặc OUT trên một hoặc nhiều frame có khoảng cách bằng nhau. Khi hoạt động ở tốc độ cao thì kiểu truyền có nhiều tính năng hơn, một yêu cầu có ba giao dịch trên một frame, và có thể nhỏ

hơn khi 1 giao dịch truyền trên 32,768 microframe. Truyền đồng bộ vận chuyển dữ liệu theo 1 hướng nhất định. Tất cả các truyền chỉ có thể là gồm giao dịch IN hoặc là giao dịch OUT thôi. Nếu người sử dụng có nhu cầu cấu hình kiểu truyền theo 2 hướng thì phải chia truyền và đường ống thành 2 phần cho mỗi hướng.

-Trước khi cấu hình 1 đường ống, host phải so sánh kích thước buffer(buffer size)

được yêu cầu với vùng buffer tích cực còn lại, băng thông đang được sử dụng trong

đường bus để quyết định khi nào băng thông yêu cầu được sẵn sàng sử dụng. Một lần truyền đồng bộ ở tốc độ full được phép tối đa 1023 byte trên frame sử dụng 69% băng thông, nếu lúc này tồn tại một thiết bị thứ hai sử dụng truyền đồng bộ trên cùng một hệ

thống thì host sẽ từ chối cung cấp đường ống cho nó vì băng thông còn lại không đủ cho phép thực hiện truyền. Nếu hai thiết bị này. Nếu thiết bị này này sử dụng một giao tiếp thay thế khác với các gói dữ liệu nhỏ hơn hay một microframe chứa nhiều gói dữ liệu nhỏ

hơn thì host có thể cho phép, hoặc driver cố gắng thử lại lần vào các lần sau với hy vọng bus được phép tích cực. Khi thiết bịđã được cấu hình, các lần truyền được bảo đảm thời gian cần thiết.

Phn 2: Giao tiếp USB

http://www.ebook.edu.vn SV:Trần Quốc Gia Phú, Trần Hạ Long - 27

Hình 6: Giao dịch đồng bộ IN và OUT.

c)Kích thước gói dữ liệu:

khi hoạt động ở tốc độ full kích thước gói tối đa là 1023 byte, ở tốc độ cao có thể lên

đến 1024 byte. Nếu một lượng dữ liệu không vừa một gói,host sẽ chia một lần truyền ra làm nhiều giao dịch

d)Tốc độ:

-Thực hiện việc truyền ở tốc độ full có thểđạt đến 1.023 MByte/giây, tốc độ nhỏ nhất là 1Kbyte/giây. Nó dành 31% băng thông bus cho các loại truyền khác. Giao thức có overhead là 9 byte tren một frame cho 1 lần truyền với một gói dữ liệu, hoặc thấp hơn 1% cho một lần giao dịch 1023 byte. Băng thông được yêu cầu tối thiểu cho truyền ở tốc độ

full là 1 byte trên frame hoặc một Kbyte/giây.

-Một giao dịch đồng bộ có thể vận chuyển được tới 1024 byte. Một điểm cuối đồng bộ

yêu cầu nhiều hơn 1024 byte trên microframe có thể yêu cầu 2 hoặc 3 giao dịch trên microframe, cho phép tốc độ tối đa là 24.576 MByte/giây. Một điểm cuối cần đa giao dịch trên một frame là điểm cuối có băng thông cao. Overhead giao thức có 38 byte trên một lần truyền với 1 gói dữ liệu.

Phn 2: Giao tiếp USB

http://www.ebook.edu.vn SV:Trần Quốc Gia Phú, Trần Hạ Long - 28

-Vì truyền đồng bộ ở tốc cao không được thực hiện một giao dịch trong mỗi frame hoặc microframe, nó có thể yêu cầu năng thông ít hơn khi trong tốc độ full. Băng thông thấp nhất là một byte cho 32,673 microframe, làm cho việc truyền 1 byte mất khoảng 4.096 giây. Tuy nhiên, các điểm cuối có thể truyền dữ liệu ít hơn số băng thông được truy xuất tối đa bằng việc bỏ qua giao dịch tích cực hoặc truyền ít hơn số dữ liệu tối đa trên một lần truyền.

-Giống như truyền ngắt, truyền đồng bộ có thể sử dụng nhiều hơn 80% của một microframe. Khi truyền tổ hợp gồm một truyền và một truyền ngắt ở cùng đồng bộ tốc độ

full có thể sử dụng nhiều hơn 90% của một frame. Các bus rảnh tốc độ cao khác có thể

mang một lúc 2 truyền đồng bộ với tốc độ tối đa.

-Cái giá phải trả cho việc đảm bảo sự phân phối thời gian một khối lớn các dữ liệu bằng viêc thực hiện truyền không có phát hiện lỗi. Do đó kiểu truyền này chỉ có thể sử

dụng được trong các ứng dụng có thể chấp nhận các lỗi nhỏ.

V)Sự điểm danh:

Trước khi ứng dụng có thể liên lạc được với thiết bị, host cấn phải nhận biết về thiết bị

và gán địa chỉ cho thiết bị. Điểm danh là sự trao đổi đầu tiên về thông tin của thiết bịđể

hoàn thành việc nhận biết. Tiến trình bao gồm gán một địa chỉ cho thiết bị, đọc cấu trúc dữ liệu từ thiết bị, cuối cùng là lựa chọn cấu hình từ các option đã được chọn thông qua dữ liệu đã truy xuất. Thiết bịđược cấu hình và sẵn sàng để vận chuyển dữ liệu thông qua các điểm cuối đã cấu hình.

1.Tiến trình:

-Một trong những nhiệm vụ của hub là phát hiện thiết bị gắn vào hoặc tháo ra khỏi máy tính. Mỗi hub có 1 đường ống ngắt(interrupt pipe) In dành cho việc báo các sự kiện về host. Khi hệ thống khởi động host dùng cơ chế poll tới hub gốc(root hub) để nhận biết các sự hiện diện của một thiết bị nào đó trên hub, các thiết bị đó có thể là một thiết bị

gắm trực tiếp vào host hoặc một thiết bị cắm vào một hub của một thiết bịđã được cắm vào máy trước đó. Sau khi khởi động, host tiếp tục dùng cơ chế poll theo định kỳđể nhận biết các sự kiện trên hub bao gồm việc cắm vào hoặc tháo ra khòi hub của một thiết bị .

-Trong việc nhận biết một thiết bị vừa cắm vào, host gửi một loạt các yêu cầu đến hub nơi có hiện diện thiết bị nhằm mục tiêu cung cấp một đường liên lạc giữa host và thiết bị. Sau đó host thử điểm danh thiết bị bằng cách gửi các truyền điều khiển chứa các yêu cầu USB chuẩn đến điểm cuối 0. Nếu điểm danh thành công, thiết bị phải trả lời bằng cách trả về thông tin đã yêu cầu và thực thi các hành động đã được host yêu cầu.

-Từ góc nhìn của người sử dụng, việc điểm danh là hoàn toàn tự động và gần như

không thể nhận biết được, ngoại trừ việc hệđiều hành thông báo việc phát hiện ra một thiết bị mới bất chấp sự điểm danh có thành công hay không. Nhiều lúc người sử dụng phải cung cấp một đĩa chứa file INF và driver cho thiết bị vừa cắm vào.

Phn 2: Giao tiếp USB

http://www.ebook.edu.vn SV:Trần Quốc Gia Phú, Trần Hạ Long - 29

-Trong các thiết bị ngoại vi điển hình, code chương trình của thiết bị chứa thông tin mà host sẽ yêu cầu, một tổ hợp phần cứng và phần dẻo có tác dụng giải mã và đáp ứng lại các yêu cầu cho việc thông tin liên lạc. Một vài chip chuyên dụng (ASICs) quản lý sự điểm danh hoàn toàn trong phần cứng và không cần sự hỗ trợ từ phần dẻo. Về phía host, user không cần phải viết code xử lý quá trình điểm danh, tất cả các công việc trong quá trình điểm danh được hệđiều hành xử lý hoàn toàn. Trong lúc điểm danh hệđiều hành sẽ

tìm kiếm một file đặc biệt gọi là file INF, loại file này dùng để định nghĩa driver dùng cho thiết bị.

-Khi quá trình điểm danh hoàn tất, Windows sẽ cập nhật thêm thiết bị mới vào phần Device Manager đượ thể hiện trong Control Nanel. Trong Windows ta có thể truy xuất

đến phần này thông qua đường dẫn Start menu > Setting > Control Panel > Performance and Mainternance > System > Hardware > Device manager. Khi ngoại được tháo bỏ kết nối với hệ thống, Windows tựđộng xóa tên thiết bị này ra khỏi màn hình hiển thị.

2.Các bước điểm danh:

-Trong quá trình điểm danh 1 thiết bị phải trải qua 4 trong tất cả 6 trạng thái USB đã

được định nghĩa trong của đặc tả:Powered; Default; Address và Configured(2 trạng thái không phải trải qua trong qua trình điểm danh là Attached và Suspen). Trong mỗi trạng thái trên ,thiết bịđã được định nghĩa hành vi và khả năng.

-Người viết phần dẻo của thiết bị không nên cho rằng các yêu cầu và sự kiện điểm danh sẽ thực thi trong một thứ tựđặc biệt. Tuy nhiên người viết nên cho thiết bị sẵn sàng chuẩn bị và đáp ứng các yêu cầu điều khiển tại mọi thời điểm.

a)Các bước:

1)Người dùng cắm thiết bị vào cổng USB:

Sự kiện này xảy ra tương dương với việc thiết bịđã cắm vào cổng USB trước khi máy tính khởi động. Cổng USB này có thểđược kết nối trực tiếp với hub gốc tại host hoặc thông qua 1 hub thứ cấp đã được đấu vào hub gốc trước đó. Sau khi kết nối vào hub, hub gốc lập tức cung cấp nguồn cho cổng, lúc này thiết bịđược gán trạng thái Powered.

2)Hub phát hiện ra thiết bị:

Hub giám sát hiệu điện thế trên 2 đường tín hiệu của mỗi cổng. Lúc đó trên hub xuất hiện điện trở kéo xuống 15KΩ trên từng đường tín hiệu của cổng(D+ và D-), trong khi đó bên thiết bị hoạt động ở tốc độ full lại có điện trở kéo xuống 1.5KΩ trên đường tín hiệu D+ ,nếu thiết bị hoạt động ở tốc độ thấp thì điện trở kéo xuống 1.5KΩ nằm trên đường tín hiệu D-. Nếu là thiết bị tốc độ cao thì sẽ bị gán tốc độ full. Khi thiết bị cắm vào cổng, kéo lên(pull-up) của thiết bị sẽđưa đường truyền lên cao, đây chính là nguyên nhân giúp hub phát hiện ra sự hiện diện của thiết bị mới. Sau khi phát hiện ra thiết bị, hub tiếp tục cung cấp năng lượng nhưng chưa thể thực hiện vận chuyển trao đổi dữ liệu, bởi vì thiết bị chưa sẵn sàng cho việc truyền nhận.

Phn 2: Giao tiếp USB

http://www.ebook.edu.vn SV:Trần Quốc Gia Phú, Trần Hạ Long - 30

Mỗi hub sử dụng đừơng ống ngắt(interrupt pipe) của nó để báo cáo sự các sự kiện xảy ra trên hub. Một bản báo cáo(report) chỉ thể hiện duy nhất các sự kiện vừa mới xảy ra trên hub hay cổng. Khi host nhận được môt sự kiện, nó liền gửi đến hub 1 yêu cầu Get_Port_Status để tìm hiểu thêm sự kiện vừa gửi đến. Get_port_Status là một yêu cầu nằm trong bộ các yêu cầu Hubclass chuẩn mà tất cả các hub phải hiểu được.Hub trà lời lại bằng một thông tin báo cho host biết lúc nào thì thiết bị cắm vào.

4)hub phát hiện tốc độ của thiết bị hỗ trợ:

Trước khi hub reset thiết bị, hiểu sẽ tìm hiểu loại tốc độ mà thiết bị hỗ trợ bằng cách thử hiệu điện thế trên hai đừơng tín hiệu. Thông qua việc xác dịnh hiệu điện thế của

đừơng nào cao hơn khi bus trống hub sẽ quyết định tốc độ cho thiết bị. Kế tiếp hub gửi thông tin đến host trong lần đáp ứng lại yêu cầu Get_Port_Status lần sau. USB 1.x cho phép hub lựa chọn để phát hiện tốc độ thiết bị sau reset. Ngược lại, USB 2.0 cần phải xác

định tốc độ để thực thi trước khi bị hub reset, làm như vậy nhằm xác định nó có được kiểm tra khả năng hoạt động ở tốc độ cao trong quá trình reset, như mô tảở bước kế tiếp.

5)Hub reset thiết bị:

Khi 1 host nhận biết một thiết bị mới, điều khiển host gửi đến hub 1 yêu cầu Set_Port_ Feature đòi hỏi hubs reset cổng. hub đặt các đường dữ liệu đến thiết bị trong trình trạng reset trong thời gian ít nhất là 10 ms. Reset là một điều kiện đặc biệt khi mà cả D+ cùng với D- đều ở mức luận lý thấp. Hub chỉ gửi yêu cầu reset chỉđối với các thiết bị mới cắm vào. Các hub và thiết bị khác nằm trên bus không bịảnh hưởng.

6)hub nhận biết khả năng hỗ trợ tốc độ cao của thiết bị:

-Việc phát hiện này thông qua 2 trạng thái tín hiệu đặc biệt là Chirp K và Chirp J. Trong trạng thái chirp J, chỉ có đường tín hiệu D+ được điều khiển và trạng thái chirp k, chỉđường tín hiệu D- được điều khiển.

-Trong quá trình reset, thiết bị tốc độ cao sẽ gửi một chirp k, hub tốc độ cao phát hiện trạng thái chirp k ngay, lặp tức hồi báo lại bằng một dãy các chirp k và chirp j. Khi thiết bị tốc độ cao bắt được một dãy các chirp KJKJKJ, nó liền loại bỏ kéo lên(pull-up) dành cho tốc dộ full và chuyển sang thể hiện các chức năng của thiết bị tốc độ cao. Nếu hub không hồi đáp lại chirp KJ, device hiểu được rẳng nó phải tiếp tục thông tin, liên lạc ở tốc

độ full. Tất cả các thiết bị tốc độ cao điều đựơc thiết kếđể có khả năng đáp ứng yêu cầu ở

tốc độ full.

7)Hub thiết lập một đường tín hiệu giữa thiết bị và bus:

-Host thẩm định lại rằng thiết bị ra khỏi trạng thái reset bằng việc gửi yêu cầu Get_Port_Status. Thiết bị phản ứng lại bằng việc trả về một gói dữ liệu, trong gói dữ liệu có chúa một bit thể hiện việc thiết bị có cỏn nằm trong trạng thái reset hay thôi. Nếu cần thiết , host sẽ lập lại yêu cầu Get_Port_Status cho đến khi thiết bị thoát khỏi trạng thái reset.

-Sau khi hub tháo bỏ quá trình reset, thiết bị bây giờ đã chuyển sang trạng thái Default. Các thanh ghi USB trong thiết bị cũng đã được chuyển sang trạng thái reset và thiết bị sẵn sàng cho việc đáp ứng truyền nhận thông qua đường ống mặc định tại điểm cuối 0.Thiết bị lúc này có thể giao tiếp với host, với địa chỉ mặc định được gán là 00h. Cường độ trong thiết bị có thểđưa lên 100mA từ bus.

Phn 2: Giao tiếp USB

http://www.ebook.edu.vn SV:Trần Quốc Gia Phú, Trần Hạ Long - 31

8)Host gửi yêu cầu Get_Descriptor để nhận biết kích thước lớn nhất có thể

vận chuyển trên đường ống mặc định:

Host gửi yêu cầu đến điểm cuối 0 của thiết bị với dịa chỉ là 00h. Do host chỉ điểm

Một phần của tài liệu Thiết kế và thi công mạch hẹn giờ đa năng có thể cấu hình qua cổng USB (Trang 27 - 38)