Kỹ thuật

Góc kỹ thuật

2022.12.12
Truyền thông CN

Giới thiệu LIN BUS

Tóm tắt

Local Interconnect Network (LIN) - Mạng kết nối cục bộ là một tiêu chuẩn mạng nhúng chi phí thấp để kết nối các thiết bị thông minh. LIN phổ biến nhất trong ngành công nghiệp ô tô.

Tổng quan về LIN

LIN bus được phát triển để tạo ra một tiêu chuẩn cho truyền thông đa kênh cấp thấp, chi phí thấp trong các mạng ô tô. Mặc dù CAN bus đáp ứng nhu cầu về các mạng xử lý lỗi nâng cao, băng thông cao, nhưng chi phí phần cứng và phần mềm của việc triển khai CAN đã trở nên khó khăn đối với các thiết bị hiệu suất thấp hơn, ví dụ như cửa sổ điện và bộ điều khiển ghế ngồi. LIN cung cấp khả năng liên lạc tiết kiệm chi phí trong các ứng dụng không yêu cầu băng thông và tính linh hoạt của CAN. Bạn có thể triển khai LIN tương đối rẻ bằng cách sử dụng bộ thu/phát không đồng bộ nối tiếp vạn năng (UART) tiêu chuẩn, được nhúng vào hầu hết các bộ vi điều khiển 8 bit giá rẻ hiện đại.

Các mạng ô tô hiện đại sử dụng kết hợp LIN cho các ứng dụng chi phí thấp chủ yếu trong thiết bị điện tử trên thân xe, CAN cho hệ thống truyền động chính và truyền thông ở thân xe, và FlexRay bus để truyền dữ liệu đồng bộ tốc độ cao trong các hệ thống tiên tiến như hệ thống giảm xóc chủ động.

LIN bus sử dụng phương pháp Master/Slave bao gồm một máy Master và một hoặc nhiều máy Slave.

Hình 1: Khung dữ liệu LIN

Header bao gồm một dấu ngắt (break) được sử dụng để xác định điểm bắt đầu của khung và Sync được sử dụng bởi Slave node để đồng bộ hóa đồng hồ. Identifier bao gồm ID thông điệp 6 bit và Parity 2 bit. Identifier biểu thị một địa chỉ tin nhắn cụ thể nhưng không phải là đích đến. Sau khi nhận và giải thích ID, một Slave bắt đầu phản hồi thông báo, gồm 1 đến 8 byte dữ liệu và 8 bit check-sum.

Master kiểm soát trình tự của các khung tin nhắn, được cố định trong một lịch trình. Bạn có thể thay đổi lịch trình khi cần thiết.

Có một số phiên bản của tiêu chuẩn LIN. Phiên bản 1.3 đã hoàn thiện giao tiếp lớp byte. Các phiên bản 2.0 và 2.1 đã thêm nhiều thông số kỹ thuật và dịch vụ thông điệp hơn nhưng tương thích ở cấp độ byte với LIN 1.3.

Tính năng NI USB LIN hỗ trợ
LIN 1.3
LIN 2.0
+ Check-sum nâng cao
+ Khái niệm Slave node có sẵn
+ Định dạng NCF
+ Chẩn đoán là cấu hình Slave node
+ Các mảng byte
LIN 2.1
+ Dịch vụ cấu hình Slave Node mới
+ Chẩn đoán Slave lớp I-III
+ Định địa chỉ chức năng
+ Bảng độ phân giải

Bảng 1. So sánh các Phiên bản LIN 1.3, 2.0 và 2.1

Định dạng khung LIN

LIN bus là bus được thăm dò với một thiết bị Master và một hoặc nhiều thiết bị Slave. Thiết bị Master chứa cả tác vụ chính và tác vụ phụ. Mỗi thiết bị Slave chỉ chứa một tác vụ của Slave. Giao tiếp qua LIN bus được điều khiển hoàn toàn bởi tác vụ chính trong thiết bị chính. Khối truyền cơ bản trên LIN bus là khung, được chia thành HeaderResponse. Header luôn được truyền bởi Master node và bao gồm ba phần riêng biệt: Break, SyncIdentifier (ID). Response, được truyền bởi một tác vụ Slave và có thể nằm trong Master node hoặc Slave node, bao gồm tải trọng dữ liệu và checksum.

Thông thường, tác vụ Master thăm dò từng tác vụ Slave trong một vòng lặp bằng cách truyền Header, bao gồm chuỗi Break-Sync-ID. Trước khi bắt đầu LIN, mỗi tác vụ Slave được cấu hình để xuất bản dữ liệu lên bus hoặc đăng ký dữ liệu để phản hồi với từng Header ID nhận được. Khi nhận được Header, mỗi tác vụ Slave sẽ xác minh tính chẵn lẻ (parity) của ID và sau đó kiểm tra ID để xác định xem nó cần xuất bản hay đăng ký.

  • Nếu tác vụ Slave cần xuất một Response, nó sẽ truyền một đến tám byte dữ liệu tới bus, sau đó là một byte checksum.
  • Nếu tác vụ Slave cần đăng ký, nó sẽ đọc tải trọng dữ liệu và byte checksum từ bus và thực hiện hành động nội bộ thích hợp.

Đối với giao tiếp giữa Slave-Master tiêu chuẩn, Master phát ID tới mạng và chỉ một Slave phản hồi với tải trọng dữ liệu.

Giao tiếp từ Master đến Slave được thực hiện bằng một tác vụ Slave riêng biệt trong Master node. Tác vụ này tự nhận tất cả dữ liệu được xuất bản lên bus và phản hồi như thể nó là một Slave node độc lập. Để truyền các byte dữ liệu, trước tiên Master phải cập nhật phản hồi của tác vụ Slave bên trong với các giá trị dữ liệu mà nó muốn truyền. Sau đó, Master xuất bản khung Header thích hợp và tác vụ Slave bên trong truyền tải trọng dữ liệu của nó tới bus.

Hình 2: Khung dữ liệu LIN

1.Break

Mỗi khung LIN bắt đầu bằng Break (dấu ngắt), bao gồm 13 bit “dominant” (danh nghĩa), theo sau là dấu Break một bit. Phần này phục vụ như một thông báo bắt đầu của khung cho tất cả các node trên bus.

2.Sync

Sync là trường thứ hai được truyền bởi tác vụ Master trong Header. Sync được định nghĩa là ký tự x55. Sync cho phép các thiết bị Slave thực hiện dò tìm tốc độ truyền tự động để đo khoảng thời gian của tốc độ truyền và điều chỉnh tốc độ truyền bên trong của chúng để đồng bộ hóa với bus.

3.ID

ID là trường cuối cùng được truyền bởi tác vụ Master trong Header. ID cung cấp nhận dạng cho từng thông báo trên mạng và xác định node nào trong mạng nhận hoặc phản hồi mỗi lần truyền. Tất cả các tác vụ Slave liên tục nhận các trường ID, xác minh parity của chúng và xác định xem chúng có vai trò là xuất bản hay đăng ký với thông tin ID cụ thể này. LIN bus cung cấp tổng cộng 64 ID. Các ID từ 0 đến 59 được sử dụng cho các khung mang tín hiệu (dữ liệu), 60 và 61 được sử dụng để mang dữ liệu chẩn đoán, 62 được dành riêng cho các phần mở rộng do người dùng định nghĩa và 63 được dành riêng cho các cải tiến giao thức trong tương lai. ID được truyền qua bus dưới dạng một byte ID được bảo vệ, với sáu bit dưới chứa ID thô và hai bit trên chứa parity.

ID được bảo vệ (7:6)   ID được bảo vệ (5:0)
P(1) P(0) ID(5:0)
ID(1) ^ ID(3) ^ ID(4) ^ ID(5) ID(0) ^ ID(1) ^ ID(2) ^ ID(4) 0–63

4.Data byte

Data byte được truyền bởi tác vụ nô lệ trong phản hồi. Trường này chứa từ một đến tám byte byte dữ liệu tải trọng.

5.Checksum

Checksum được truyền bởi tác vụ Slave trong Response. LIN bus định nghĩa việc sử dụng một trong hai thuật toán Checksum để tính giá trị trong trường Checksum 8 bit. Checksum cổ điển được tính bằng cách chỉ tính tổng các byte dữ liệu và Checksum nâng cao được tính bằng cách tính tổng các byte dữ liệu và ID được bảo vệ.

Thông số kỹ thuật LIN 2.0 định nghĩa quy trình tính toán Checksum là tổng của tất cả các giá trị và trừ đi 255 mỗi khi tổng lớn hơn hoặc bằng 256 (không giống như modulo-255 hoặc modulo-256). Theo thông số kỹ thuật của LIN 2.0, Checksum cổ điển được sử dụng với các Slave node LIN 1.3 và Checksum nâng cao được sử dụng với các Slave node LIN 2.0. Nó định nghĩa thêm rằng các ID từ 60 đến 63 sẽ luôn sử dụng Checksum cổ điển. Giao tiếp NI LIN cung cấp một thuộc tính để đặt loại Checksum thành loại cổ điển hoặc nâng cao. Cài đặt mặc định là cổ điển. Theo thông số kỹ thuật của LIN 2.0, các ID từ 60 đến 63 luôn sử dụng Checksum cổ điển, bất kể cài đặt của thuộc tính Checksum.

Hình 3 minh họa cách Header của Master task và Response của Slave task kết hợp để tạo ra một khung đầy đủ của LIN.

Hình 3: Tạo các khung LIN

LIN Bus Timing

Trong LIN bus, quá trình xử lý mỗi khung được phân bổ một khe thời gian danh nghĩa như sau:

THeader_Nominal = 34 * TBit TResponse_Nominal = 10 * (NData + 1) * TBit TFrame_Nominal = THeader_Nominal + TResponse_Nominal

Xử lý mỗi khung được phân bổ một khe thời gian tối đa như sau: THeader_Maximum = 14 * THeader_Nominal TResponse_Maximum = 1,4 * TResponse_Nominal TFrame_Maximum = THeader_Maximum + TResponse_Maximum

Cấu trúc liên kết và hành vi của LIN

LIN bus kết nối một thiết bị Master (node) và một hoặc nhiều thiết bị Slave (node) với nhau trong một cụm LIN. Hành vi của mỗi node được mô tả bởi file (quy định) khả năng của node của nút riêng. Các file khả năng của node là đầu vào cho xác định nghĩa hệ thống, công cụ này tạo file mô tả LIN (LDF) mô tả hành vi của toàn bộ cụm. LDF được phân tích cú pháp bởi bộ tạo hệ thống để tự động tạo hành vi được chỉ định trong các node mong muốn. Tại thời điểm này, Master task của Master node bắt đầu truyền các Header trên busvà tất cả các Slave task trong cụm (bao gồm cả Slave task của Master node) phản hồi, như được chỉ định trong LDF.

Nói chung, LDF được sử dụng để định cấu hình và tạo hành vi lập lịch trình của cụm LIN. Ví dụ: nó xác định tốc độ truyền, thứ tự và độ trễ thời gian cho việc truyền Header của Master task và hành vi của từng Slave task trong Response. Phần cứng NI LIN và NI-CAN Frame API dành cho LIN vốn không cung cấp hỗ trợ đầy đủ cho LDF, nghĩa là bạn không thể tải hành vi lập lịch trình xuống phần cứng. Tuy nhiên, hỗ trợ cấp thấp truy cập bus (viết Header và xuất bản hoặc đăng ký đén Response) được cung cấp để người dùng có thể tạo hành vi lập lịch trình này ở cấp ứng dụng.

Như đã đề cập trong phần mô tả cho loại khung mục nhập Response của NI LIN, phần cứng NI LIN có Response Queue để lưu trữ Response của Slave task. Response Queue chứa 64 Response, mỗi Response tương ứng với số lượng tối đa 64 ID được chỉ định cho LIN. Điều này đảm bảo rằng Slave task của giao tiếp LIN có thể phản hồi các Header trong thời gian phản hồi được định nghĩa bởi thông số kỹ thuật LIN.

NI-CAN Frame API dành cho LIN cung cấp một phương tiện mạnh mẽ để tương tác hoàn chỉnh, ở mức độ thấp với LIN bus. Công cụ này cung cấp cho end-user chức năng cơ bản để từ đó phát triển các ứng dụng phức tạp liên quan đến phân tích và tạo mẫu mạng LIN. NI-CAN Frame API dành cho LIN vốn không hỗ trợ chẩn đoán hoặc cấu hình LIN, LDF hoặc bảng lịch trình. Tuy nhiên, bạn có thể triển khai các tác vụ này trong các ứng dụng sử dụng NI-CAN Frame API cho LIN.

Các thiết bị giao tiếp LIN được đề xuất

  • NI-XNET LIN

Dòng sản phẩm NI-XNET là sự kết hợp của các giao tiếp CAN, LIN và FlexRay đã được tăng tốc; driver được tối ưu hóa; API dễ sử dụng; được trang bị các tiện ích cấu hình và gỡ lỗi. Với các giao tiếp NI-XNET, bạn có thể phát triển các ứng dụng để tạo nguyên mẫu, mô phỏng và thử nghiệm các mạng CAN, LIN và FlexRay nhanh hơn và dễ dàng hơn trong NI LabVIEWLabVIEW Real-Time cũng như C/C++.

Giao tiếp NI-XNET PCI/PXI và LIN của C Series cũng có tính năng hỗ trợ LDF tích hợp, lập lịch định thời cho phần cứng cho các Mastet task cũng như giao tiếp khung và tín hiệu.

Hình 4: Nền tảng NI-XNET cho CAN, LIN và FlexRay

  • NI USB LIN

Hình 5: Thiết bị giao tiếp LIN - NI USB-8476

   

Các thông tin liên quan