Thành viên:Zxcduc/1-Wire

Bách khoa toàn thư mở Wikipedia
Một nút nhấn iButton nhựa được sử dụng cho vé xe thông minh ở Istanbul
Một chiếc nhẫn Java với iButton tích hợp

1-Wire là một hệ thống bus giao tiếp với thiết bị được thiết kế bởi Dallas Semiconductor Corp. Chuẩn này cung cấp cả dữ liệu tốc độ thấp, truyền tín hiệu, và nguồn nuôi qua cùng một chân tín hiệu đơn.[1] 1-Wire cũng tương tự như I²C, nhưng với tốc độ truyền dữ liệu thấp và khoảng cách xa hơn. Nó thường được sử dụng để giao tiếp với các thiết bị nhỏ giá rẻ như nhiệt kế kĩ thuật số và công cụ đo thời tiết. Một mạng lưới của các thiết bị 1-Wire với một thiết bị điều khiển chính được gọi là mộtMicroLAN.

Một tính năng đặc biệt của bus là khả năng chỉ sử dụng hai dây tín hiệu: data và GND. Để thực hiện điều này, các thiết bị 1-Wire bao gồm một tụ điện 800pF để trữ điện, và cung cấp nguồn trong quá trình đường data đang hoạt động.

Ứng dụng[sửa | sửa mã nguồn]

Dựa trên chức năng, các thiết bị 1-Wire thường đóng gói thành một phần tử duy nhất dạng mạch tích hợp và TO92, và một số trường hợp là một hình thức di động gọi là iButton tương tự như pin đồng hồ. Các nhà sản xuất cũng sản xuất các thiết bị phức tạp hơn là dạng một thành phần đơn sử dụng bus 1-Wire để giao tiếp.

Các thiết bị 1-Wire có thể là một trong nhiều thành phần trong một bảng mạch bên trong một sản phẩm, có thể là một thành phần duy nhất bên trong một thiết bị như đầu dò nhiệt độ, hoặc cũng có thể được gắn luôn vào thiết bị cần giám sát. Một số hệ thống thí nghiệm và hệ thống điều khiển, thu thập dữ liệu kết nối với các thiết bị 1-Wire sử dụng các cáp với các module kết nối hoặc cáp CAT-5, với các thiết bị tự gắn trên một socket, định hình trong một hộp nhỏ, hoặc gắn trên đối tượng được giám sát. Trong các hệ thống như vậy, chân cắm RJ11 (module cắm 6P2C hoặc 6P4C, thường được sử dụng cho điện thoại) được sử dụng phổ biến nhất.

Các hệ thống cảm biến và truyền động có thể được xây dựng bằng cách nối các thành phần 1-Wire lại với nhau. Mỗi thành phần đều chứa toàn bộ các logic cần thiết để vận hành trên bus 1-Wire. Ví dụ như theo dõi nhiệt độ, thời gian, điện áp và các cảm biến hiện tại, theo dõi pin và bộ nhớ. Chúng có thể được kết nối đến một máy tính bằng cách dùng bus converter. Giao tiếp USB, RS-232 nối tiếp, và parallel port là các giari pháp phổ biến để kết nối MicroLan đến máy tính. Các thiết bị 1-Wire cũng có thể được kết nối trực tiếp với vi điều khiển.

iButton (còn được gọi là Dallas Key) là một tiêu chuẩn đóng gói cơ khí có chứa một thành phần 1-Wire bên trong một "nút bấm" bằng thép không gỉ nhỏ tương tự như pin đồng hồ hình cúc áo. iButton được kết nối đến hệ thống bus 1-Wire bằng cách sockets kết nối với nút bấm khi được nhấn. Ngoài ra, kết nối có thể được gắn bán cố định với một socket mà iButton kẹp vào, nhưng dễ dàng được gỡ bỏ.

Nhẫn Java, một chiếc nhẫn được gắn iButton với Java Virtual Machine tương thích với đặc tả Java Card 2.0 bên trong đã được trao cho những người tham dự hội nghị JavaOne năm 1998.[2]

Mỗi chip 1-Wire có một mã ID duy nhất. Tính năng này làm cho chip, đặc biệt là trong một iButton, phù hợp để sử dụng như một chìa khóa để mở khóa, cánh tay, và tắt báo động trộm, xác thực người dùng các hệ thống máy tính,... iButton có thể được sử dụng như vé thông minh Akbil cho phương tiện giao thông công cộng ở Istanbul.

Bộ nguồn Dell[sửa | sửa mã nguồn]

Các bộ nguồn laptop Dell chính hãng sử dụng giao thức 1-Wire để gửi dữ liệu thông qua dây thứ ba đến laptop (về năng lượng, dòng và điện áp). Laptop sẽ từ chối sạc nếu củ sạc không đáp ứng được các yêu cầu này.[3]

Giao thức kết nối[sửa | sửa mã nguồn]

Trong MicroLan bất kì, luôn có một thiết bị chủ (master), có thể là một máy tính hoặc một vi điều khiển. Thiết bị chủ khởi tạo hoạt động trên bus, đơn giản hóa việc tránh va chạm trên bus. Các giao thức được xây dựng vào phần mềm để phát hiện các va chạm. Sau một vụ va chạm, thiết bị chủ thực hiện lại các giao tiếp cần thiết.

Nhiều thiết bị có thể chia sẻ cùng một bus. Mỗi thiết bị trên bus có một mã serial 64-bit duy nhất. Byte thấp nhất của mã serial là một mã 8-bit cho biết loại thiết bị. Byte cao nhất là một tiêu chuẩn CRC 8-bit (cho bus 1-wire).[4]

Có một số lệnh broadcast tiêu chuẩn, cũng như lệnh để đến địa chỉ của một thiết bị cụ thể. Thiết bị chủ có thể gửi một lệnh lựa chọn, sau đó là địa chỉ của thiết bị cụ thể. Lệnh tiếp theo được thực hiện chỉ bởi thiết bị có địa chỉ này.

Giao thức liệt kê bus 1-wire (mô tả sau), giống như các giao thức đơn khác, là một thuật toán thiết bị chủ dùng để đọc địa chỉ của mọi thiết bị trên bus. Kể từ khi địa chỉ bao gồm loại thiết bị và một CRC, khôi phục bảng địa chỉ cũng sản sinh một bảng địa chỉ tin cậy của các thiết bị trên bus. Không gian địa chỉ 64-bit được tìm kiếm như một cây nhị phân, cho phép lên đến 75 thiết bị được tìm thấy trong một giây.

Mạng 1-Wire Dallas được thực hiện tự nhiên giống như một thiết bị chủ open drain được kết nối với một hoặc nhiều thiết bị open drain phụ thuộc (slave).[5] Một điện trở kéo lên đơn dùng chung cho tất cả các thiết bị và hoạt động để kéo bus lên đến 3 - 5V, và có thể cung cấp năng lượng cho các thiết bị phụ thuộc. Giao tiếp diễn ra khi một thiết bị chủ hoặc phụ thuộc xác nhận bus thấp, nghĩa là kết nối điện trở kéo lên vào cực nối đất thông qua MOSFET đầu ra của nó. Các chip driver and bridge 1-Wire chính xác cũng sẵn sàng. Tốc độ truyền dữ liệu có thể đạt đến 16.3 kbit/s. Ngoài ra còn có một chế độ ép tốc độ giao tiếp tăng gấp 10 lần.

Thiết bị chủ bắt đầu truyền với một xung reset, xung mà kéo dây tín hiệu xuống 0 volt trong ít nhất 480 µs. Việc này reset toàn bộ thiết bị phụ thuộc trên bus. Sau đó, bất kì thiết bị phụ thuộc, nếu có, cho biết rằng nó tồn tại với một xung "hiện diện (presence)": nó giữ bus thấp trong ít nhất 60 µs sau khi thiết bị chủ giải phóng bus.

Để gửi "1", thiết bị chủ bus gửi một xung thấp rất ngắn (1–15 µs). Để gửi "0", thiết bị chủ gửi một xung thấp 60 µs. Cạnh đi xuống (tiêu cực) của xung được sử dụng để bắt đầu một monostable multivibrator trên thiết bị phụ thuộc. Multivibrator trong đồng hồ của thiết bị phụ thuộc để đọc dòng dữ liệu trong khoảng 30 µs sau khi cạnh xung đi xuống. Multivibrator của thiết bị phụ thuộc không thể tránh khỏi có dung sai tương tự ảnh hưởng đến thời gian chính xác của nó, đó là lí do tại sao xung "0" phải dài 60 µs, và xung "1" không thể dài hơn 15 µs.

Khi một giao tiếp 1-Wire chuyên dụng không có sẵn, một UART có thể được sử dụng để thực hiện một thiết bị chủ bus 1-wire.[6] Chip "cầu nối (bridge)" USB hoặc nối tiếp cũng sẵn sàng để xử lí các yêu cầu thời gian và dạng sóng của bus 1-Wire bus, và đặc biệt hữu ích trong việc sử dụng cáp dài (trên 100m) hiệu qủa. Lên đến 300m bus dài bao gồm cáp điện thoại xoắn đôi đơn giản đã được thử nghiệm bởi nhà sản xuất. Tuy nhiên nó sẽ yêu cầu điều chỉnh điện trở kéo từ 5 thành 1 kΩ.

Khi nhận dữ liệu, thiết bị chủ gửi một xung 0 volt 1–15-µs để bắt đầu mỗi bit. Nếu đơn vị truyền phụ thuộc muốn gửi "1", nó không làm gì, và bus quay lại điện áp cao. Nếu thiết bị truyền phụ thuộc muốn gửi "0", nó kéo đường data xuống điện áp thấp trong 60 µs.

Tham khảo[sửa | sửa mã nguồn]

  1. ^ 1-Wire Products
  2. ^ An introduction to the Java Ring, by Stephen M. Curry, JavaWorld.com, April 1st, 1998.
  3. ^ “HACKING DELL LAPTOP CHARGER IDENTIFICATION”. hackaday.com. Truy cập ngày 30 tháng 11 năm 2015.
  4. ^ “iButton Overview” (PDF). Bản gốc (PDF) lưu trữ ngày 27 tháng 1 năm 2009. Truy cập ngày 18 tháng 12 năm 2008.
  5. ^ “1-Wire online tutorial. This tutorial will give you an overview of the 1-wire protocol, its device operation and application solutions”. Bản gốc lưu trữ ngày 25 tháng 4 năm 2009. Truy cập ngày 13 tháng 3 năm 2009. Đã bỏ qua tham số không rõ |deadurl= (gợi ý |url-status=) (trợ giúp)
  6. ^ “Using a UART to Implement a 1-Wire Bus Master”.

Liên kết ngoài[sửa | sửa mã nguồn]

[[Thể loại:Bus nối tiếp]]