Zero start with USB

1. Lược sử USB.
Viết tắt của chữ Universal Serial Bus, cái tên nói lên tất cả. Và không hổ danh với tên gọi, đây là chuẩn kết nổi phổ biến nhất, đã và đang thay thế dần các kết nối ngoại vi khác.
Đồ sộ về cả đặc tả lẫn mã nguồn (ví dụ USB stack trong Linux), nếu không phải thánh thì nên tiếp cận từ từ, tránh “đột-thức” (đột quị vì nhiều kiến thức cần nắm).

Lịch sử tóm gọn, có vẻ khi ứng dụng cách mạng nhất là USB Mass Storage(usb flash, thường gọi tắt là USB) bị lấn lướt bởi việc phát triển mạnh mẽ của điện toán đám mây(cloud) và các dịch vụ trực tuyến, thì USB 3.0 lại vùng lên, tuy chưa rõ có nên cơm cháo gì không.
– Khai sinh 1/1996: USB 1.0, Low Speed 1.5Mbit/s, Full Speed 12Mbit/s
– 04/2000: USB 2.0, High Speed 480Mbit/s
– 11/2008: USB 3.0, SuperSpeed 5Gbit/s
– 07/2013: USB 3.1, SuperSpeed+ 10Gbit/s
– 09/2017: USB 3.2, SuperSpeed+ 20Gbit/s

2. Lướt qua đặc tả USB.
Đầu tiên cần nắm đặc tả, vào [1] để lấy đặc tả. Đặt tả là một ma trận chữ nghĩa và khái niệm, nên đọc [3] để biết tiếp cận đặc tả, nếu lười đọc tiếng Anh thì đọc nội dung ở [4], của 1 blog rất có tâm. Ở đây chỉ giới thiệu các tiếp cập đặc tả phiên bản USB 2.0[2], tuy nhiên các chắc các phiên bản tiếp theo cũng có thể tiếp cận theo cách tương tự.
Đồ sộ quá nên cần nắm vững những câu thần chú cơ bản. Đây là chân lý, không bao giờ được buông. NHƯNG nó chỉ đảm bảo cho các phiên bản trước USB 2.0, về sau có thể có thay đổi, sử dụng cần tỉnh táo.
●USB là chuẩn giao tiếp đơn, chỉ có HOST(chủ) và DEVICE(thiết bị, client-khách) giao tiếp với nhau, không phải là giao thức mạng.
●DEVICE chỉ nghe và trả lời khi có lệnh từ HOST, kể cả trường hợp giao tiếp theo interrupt.

Về mặt đặc tính truyền dữ liệu, thì có 4 loại cơ bản:
– Control Transfers: Sử dụng để truyền command (lệnh) hoặc status (trạng thái), ở quá trình DEVICE bắt đầu kết nối với HOST.
– Bulk Data Transfers: Dùng kết nối truyền lượng dữ liệu lớn, không cho phép mất mát, ex: usb flash.
– Interrupt Data Transfers: Dùng cho kết nối đảm bảo tính phản ứng nhanh, ví dụ chuột, bàn phím…
– Isochronous Data Transfers: Dùng cho các kết nối có tính realtime, tốc độ ổn định, ex: Camera, Audio …

Song song với sự phát triển của các thiết bị nhúng (embedded, lai tạp) thì sinh ra USB OTG (On-The-GO), cho phép nó có thể đóng vai trò HOST hoặc DEVICE. Việc lựa chọn vai trò quyết định trong quá trình đàm phán lúc kết nối.

3.Tài liệu tham khảo.
[1]http://www.usb.org/
[2]http://www.usb.org/developers/docs/usb20_docs/
[3]https://www.beyondlogic.org/usbnutshell/usb3.shtml#USBProtocols
[4]https://lazytrick.wordpress.com/category/usb/

 

Ngụy khoa học

Khoảng cuối 2013, thằng ku em, giờ đang phD Vật lý ở Pháp, gọi lên viện Vật lý nghe seminar đủ mọi thứ từ Vật lý đến lịch vực nghệ thuật rồi nghe đâu có lúc ra cả Biển Đông… do thầy của nó, GS. Nguyễn Văn Liễn, tổ chức chủ yếu cho học sinh phổ thông, một việc làm rất đáng quí, không rõ đến giờ còn duy trì nữa không.
Giai đoạn đó công việc đang bận nên mình chỉ ghé qua vài lần, nhớ nhất là chuỗi câu chuyện về Feynman, nhà vật lý đa tài người Mỹ, đạt giải Nobel vật lý 1965, tham gia dự án Manhattan (dự án làm bom nguyên tử của Mỹ), học phá khóa két sắt và giải mã kí tự của người Maya làm thú tiêu khiển. Tiện thể xin giới thiệu phương pháp đơn giản để học nhanh kiến thức mới của Feynman ở đây[2], mời các bạn áp dụng để khám phá chân trời kiến thức bao la bát ngát.
Ấn tượng nhất để lại với mình là tính trung thực của Feynman, thể hiện rõ nhất là quá trình tham gia điều tra và đấu tranh với NASA để có báo cáo trung thực về nguyên nhân của vụ tai nạn tàu Challenger[4,5].
Ở đây trích dẫn 1 phần mà bản thân cũng thường hay mở ra xem lại nhất, nói về việc trung thực trong nghiên cứu khoa học, trong quyển “Feynman chuyện thật như đùa!“, do Nguyễn Văn Liễn và Nguyễn Huy Việt dịch từ “Surely you’re joking, mr.Feynman”. Bạn nào tò mò muốn đọc thêm thì có thể mua sách có hình như dưới.

feynman

… Một ví dụ: Milikan đo điện tích của electron bằng thí nghiệm các giọt dầu rơi và thu được kết quả, mà bây giờ ai cũng biết là không thực sự chính xác. Có một chút sai lệch do ông ấy đã dùng giá trị không chính xác của độ nhớt không khí. Thật thú vị khi nhìn vào lịch sử các phép đo điện tích electron được thực hiện sau Milikan. Nếu biểu thị các kết quả đó theo thời gian, bạn sẽ thấy một kết quả lớn hơn Milikan một chút, rồi một kết quả tiếp lại lớn hơn một chút, và cuối cùng chúng qui về một con số lớn hơn.

Vì sao họ lại không phát hiện ra ngay rằng, con số mới là số lớn hơn? Đây là câu chuyện, mà các nhà khoa học phải cảm thấy xấu hổ, bởi vì rõ ràng người ta đã hành xử như thế này. Khi họ thu được một kết quả quá cao so với kết quả của Milikan, họ nghĩ rằng chắc chắn có sai sót nào đó, họ tìm kiếm và rồi cũng tìm ra một nguyên nhân có thể dẫn đến sai sót. Còn, khi họ nhận được kết quả gần hơn với kết quả của Milikan, thì họ không xem xét cẩn thận. Rồi họ loại bỏ những sai lệch nhiều so với giá trị của Milikan, hay làm những việc tương tự như thế. Ngày nay, chúng ta đã biết những xảo thuật này, nên không còn mắc những bệnh như thế nữa.
Tuy vậy, lịch sử lâu dài của việc học cách không tự lừa phỉnh mình – của việc có được trung thực khoa học tuyệt đối là, tôi xin lỗi phải nói, cái mà chúng ta chưa chú tâm đưa vào bất cứ môn học nào, mà tôi biết. Chúng tôi hi vọng là, bạn sẽ học được bằng cách ngấm dần.
Nguyên tắc đầu tiên là bạn không được tự lừa phỉnh chính mình – bạn chính là người dễ bị lừa nhất. Vì thế bạn phải rất thận trọng với điều đó. Sau khi bạn không còn bị lừa phỉnh nữa, bạn sẽ dễ dàng không lừa phỉnh các nhà khoa học khác. Sau đó, bạn chỉ cần trung thực theo cách thông thường.

Tham khảo
[1]https://vi.wikipedia.org/wiki/Richard_Feynman
[2]http://genk.vn/nha-vat-ly-doat-giai-nobel-chia-se-phuong-phap-hoc-nhanh-moi-thu-tren-doi-chi-voi-3-buoc-20161204110349259.chn
[3]https://vi.wikipedia.org/wiki/Dự_án_Manhattan
[4]http://www.feynman.com/science/the-challenger-disaster/
[5]https://www.youtube.com/watch?v=6Rwcbsn19c0