facebook

Kiểm thử CAN FD và LIN: định thời bit, bù trễ phát và giải mã trên máy hiện sóng

Khi một khối điều khiển ô tô báo lỗi truyền thông ngắt quãng, phản xạ đầu tiên thường là mở phần mềm chẩn đoán và đọc mã lỗi. Nhưng nếu lỗi nằm ở lớp vật lý — méo dạng bit, phản xạ trên đường truyền, trễ bộ thu-phát vượt ngân sách — thì mã lỗi chỉ nói với bạn rằng có lỗi, không nói vì sao. Đó là lúc kiểm thử CAN FD bằng máy hiện sóng trở thành công cụ duy nhất trả lời được câu hỏi gốc.

Bài viết này đi vào phần kỹ thuật thường bị bỏ qua: cấu trúc khung CAN FD và điều gì đã đổi so với CAN cổ điển, vì sao định thời bit ở pha dữ liệu lại là điểm gãy phổ biến nhất, cơ chế bù trễ phát, và cách LIN — bus rẻ tiền nằm cạnh CAN trong cùng chiếc xe — đòi hỏi một cách đo hoàn toàn khác.

CAN FD đổi những gì so với CAN cổ điển

CAN cổ điển (CAN CC) và CAN FD hiện được chuẩn hoá chung trong ISO 11898-1:2024. CAN FD giữ nguyên cơ chế phân xử theo mức ưu tiên của CAN cổ điển nhưng thêm ba bit điều khiển và hai thay đổi cấu trúc:

  • FDF — bit phân biệt khung CAN FD với khung CAN cổ điển.
  • BRS (Bit Rate Switch) — khi ở mức recessive, tốc độ bit thứ hai được áp dụng cho pha dữ liệu.
  • ESI (Error State Indicator) — mức dominant cho biết nút đang ở trạng thái error active.
  • Trường dữ liệu tới 64 byte, không còn giới hạn 8 byte.
  • CRC 17 bit cho khung có tải trọng tới 16 byte và CRC 21 bit cho khung lớn hơn 16 byte; kèm bộ đếm bit nhồi 3 bit mã hoá Gray, được bảo vệ bằng một bit chẵn lẻ.

Tốc độ pha phân xử vẫn giới hạn ở 1 Mbit/s. Pha dữ liệu thì bị giới hạn bởi đặc tính bộ thu-phát chứ không bởi giao thức, và CiA khuyến nghị tỉ lệ 1:8 giữa tốc độ pha phân xử và pha dữ liệu như một điểm khởi đầu hợp lý.

Ý nghĩa với người đo rất trực tiếp: một khung CAN FD có hai tốc độ bit trong cùng một khung. Máy hiện sóng phải nhìn thấy cả hai, và bộ giải mã phải chuyển tốc độ đúng tại bit BRS. Nếu bạn cấu hình bộ giải mã bằng một tốc độ duy nhất, phần đầu khung sẽ giải mã đúng còn phần dữ liệu ra rác — triệu chứng này rất hay bị đọc nhầm thành “lỗi CRC”.

Khung CAN FD hai tốc độ bit và cơ chế bù trễ phát dùng khi kiểm thử CAN FD
Khung CAN FD theo ISO 11898-1:2024: ba bit điều khiển mới, dữ liệu tới 64 byte, CRC 17/21 bit và hai pha tốc độ.

Định thời bit: chỗ khó nhất của kiểm thử CAN FD

Định thời bit CAN FD là chỗ khó nhất, vì CAN FD cần hai bộ cấu hình định thời: một cho pha phân xử và một cho pha dữ liệu. Mỗi bộ chia thời gian bit thành các phân đoạn — đoạn đồng bộ, đoạn truyền lan, và các đoạn pha — tính theo lượng tử thời gian, cùng với độ rộng bước nhảy đồng bộ. Điểm lấy mẫu là vị trí trong bit mà bộ điều khiển quyết định mức logic.

Vấn đề xuất hiện khi tốc độ pha dữ liệu tăng: thời gian bit ở pha dữ liệu có thể ngắn hơn trễ vòng của bộ thu-phát. Khi đó nút đang phát không thể so sánh bit vừa phát với bit nhận về tại điểm lấy mẫu thông thường, vì tín hiệu của chính nó chưa quay về kịp.

Bù trễ phát và điểm lấy mẫu thứ cấp

ISO 11898-1 giải quyết bằng cơ chế bù trễ phát (Transmitter Delay Compensation — TDC). Thay vì lấy mẫu sau đoạn pha thứ nhất của bit dữ liệu, bộ điều khiển tính ra một điểm lấy mẫu thứ cấp (Secondary Sample Point — SSP) và dùng nó để kiểm lỗi bit trong pha dữ liệu: dữ liệu phát đã được làm trễ sẽ được so với dữ liệu nhận tại SSP. Nhờ vậy cấu hình có thời gian bit dữ liệu ngắn hơn trễ bộ phát vẫn hoạt động được.

Chuẩn cho hai cách đặt SSP: TDC tự động, trong đó bộ điều khiển CAN FD tự đo trễ truyền thực tế rồi đặt SSP theo giá trị đo được; và TDC cố định, trong đó SSP đặt ở một vị trí cấu hình sẵn. Khi gỡ rối, đây là tham số phải hỏi tới sớm: một mạng chạy ổn ở 2 Mbit/s nhưng lỗi rải rác ở 5 Mbit/s, mà dạng sóng nhìn vẫn “đẹp”, thường là chuyện SSP đặt sai chứ không phải chuyện suy hao cáp.

Topology và bộ thu-phát SIC

Bộ tiêu chuẩn CiA 601 bổ sung phần mà ISO không đi sâu. CiA 601-1 quy định thiết kế giao diện lớp vật lý, gồm yêu cầu đối xứng trễ của bộ thu-phát cho các tốc độ 1, 2 và 5 Mbit/s. CiA 601-3 đưa ra quy tắc cấu hình định thời bit cho cả hai pha kèm tính toán biên pha. CiA 601-5 dành cho ứng dụng “tốc độ thấp” với pha phân xử dưới 1 Mbit/s như thang máy và tàu thuỷ. CiA 601-6 quy định yêu cầu cơ và điện cho cáp.

Riêng CiA 601-4 — phần về khả năng cải thiện tín hiệu (SIC) — đã được rút và nội dung chuyển vào ISO 11898-2. Đây là chi tiết đáng nhớ khi viết tài liệu kỹ thuật: trích dẫn CiA 601-4 như một tiêu chuẩn còn hiệu lực là sai. Nội dung thì vẫn quan trọng: với topology không lý tưởng, bạn phải chọn giữa hạ tốc độ pha dữ liệu hoặc dùng bộ thu-phát SIC để dập dao động dội, nhờ đó có được độ linh hoạt topology lớn hơn và tốc độ cao hơn.

Máy hiện sóng Keysight EXR254A Infiniium dùng soi sườn tín hiệu khi kiểm thử CAN FD tốc độ cao
Keysight EXR254A — 2,5 GHz trên cả 4 kênh, 16 GSa/s, ADC 10 bit, mở rộng được lên 8 kênh.

LIN: cùng chiếc xe, khác hoàn toàn cách đo

Nằm cạnh CAN trong cùng cụm dây là LIN — bus một dây, chi phí thấp, dùng cho gương, ghế, cảm biến mưa. Chuẩn ISO 17987 quy định một mạng dựa trên UART với tốc độ từ 1 kbit/s đến 20 kbit/s. ISO 17987-3 đặc tả giao thức: quản lý tín hiệu, truyền khung, xử lý bảng lịch, hành vi tác vụ và quản lý trạng thái.

Cấu trúc khung LIN buộc phép đo phải chú ý những chỗ rất khác CAN:

  • Trường break do nút chủ phát là tín hiệu mức dominant dài từ 13 bit trở lên; nút tớ nhận diện break khi thấy mức thấp từ 11 bit trở lên. Hai ngưỡng khác nhau này là biên an toàn, và cũng là chỗ dễ hỏng khi sườn tín hiệu bị bo tròn do tải dung lớn.
  • Trường sync là một byte dữ liệu chuẩn có giá trị 0x55 — chuỗi bit đan xen giúp nút tớ khoá tốc độ baud. Nếu đo thấy 0x55 méo, mọi byte phía sau sẽ sai vì tốc độ baud đã khoá lệch.
  • Trường định danh gồm 6 bit ID và 2 bit chẵn lẻ, tạo thành PID.
  • Checksum có hai biến thể — cổ điển và mở rộng — và chọn sai biến thể khi cấu hình bộ giải mã sẽ cho ra “lỗi checksum” trên một bus hoàn toàn khoẻ mạnh.

Không có phân xử trong LIN: nút chủ điều phối theo bảng lịch. Vì thế giải mã LIN chủ yếu là bài toán định thời và dạng sóng, không phải bài toán tranh chấp bus. Ngược lại, phần lớn lỗi bus ô tô trên CAN lại đến từ tranh chấp, phân xử và trễ — nên cùng một máy hiện sóng phải được cấu hình theo hai tư duy khác nhau.

Khung LIN theo ISO 17987 và bảng chọn máy hiện sóng cho kiểm thử CAN FD
Ba bẫy của phép đo LIN — break, sync 0x55 và biến thể checksum — cùng bảng chọn máy và gói giải mã.

Chọn máy hiện sóng và gói giải mã

Phần mềm giải mã là thứ quyết định, không phải băng thông. Với dòng InfiniiVision 3000A/3000T/3000G X-Series, gói D3000AUTB mở khoá kích khởi và giải mã CAN, CAN FD, LIN, FlexRay, SENT, PSI5 và CXPI, kèm kiểm thử mặt nạ biểu đồ mắt cho CAN và CAN FD. Với dòng Infiniium MXR, EXR và các dòng cao hơn, gói tương ứng là D9010AUTP, phủ CAN, CAN FD, CAN XL, LIN, FlexRay và SENT.

Bốn cấu hình theo mức độ bài toán:

  • Gỡ rối bus trên bàn, kèm tín hiệu số của vi điều khiển → Máy hiện sóng Keysight MSOX3104G: băng thông 1 GHz, 4 kênh tương tự cộng 16 kênh số, lấy mẫu 5 GSa/s, bộ nhớ 4 Mpts, ADC 8 bit. Điểm mạnh cho bài toán này là tốc độ cập nhật 1.000.000 dạng sóng/giây — sự kiện lỗi CAN thưa thớt chỉ lộ ra khi máy quét đủ nhanh — cộng với kích khởi vùng chạm để khoanh nhanh một khung bất thường.
  • Chỉ cần bus tương tự, không cần kênh số → Máy hiện sóng Keysight DSOX3054G: 500 MHz, 4 kênh tương tự, 2 GSa/s. Cùng họ 3000G nên cùng dùng được D3000AUTB.
  • Cần soi sườn tín hiệu ở pha dữ liệu tốc độ cao → Máy hiện sóng Keysight EXR254A Infiniium EXR-Series: băng thông 2,5 GHz trên cả 4 kênh, mở rộng được lên 8 kênh — hữu ích khi phải xem đồng thời CAN, LIN và các đường nguồn/đánh thức.
  • Phòng thí nghiệm dùng chung cho ô tô và tín hiệu tốc độ cao khác → Máy hiện sóng Infiniium MXR Keysight MXR404B: 4 GHz, 4 kênh, 16 GSa/s trên mọi kênh, ADC 10 bit. ADC 10 bit đáng giá khi cần nhìn nhiễu chế độ chung nhỏ chồng trên tín hiệu vi sai.

Nếu bạn đang cân nhắc một máy hiện sóng đa dụng cho bàn thí nghiệm nói chung chứ không riêng bus ô tô, bài Ứng dụng Keysight DSOX3014G trình bày các nhóm ứng dụng điển hình và thông số nào chi phối từng nhóm.

Quy trình đo thực tế: sáu bước

  1. Đo bằng đầu dò vi sai, không phải hai kênh đơn trừ nhau. CAN là bus vi sai; trừ hai kênh làm nhiễu chế độ chung lọt vào kết quả.
  2. Xác nhận tốc độ hai pha trước khi bật giải mã. Đo trực tiếp độ rộng bit ở pha phân xử và ở pha dữ liệu; đừng tin thông số ghi trong tài liệu thiết kế.
  3. Cấu hình bộ giải mã đúng hai tốc độ và đúng vị trí điểm lấy mẫu. Sai bước này sẽ tạo ra lỗi CRC giả.
  4. Chạy kiểm thử mặt nạ biểu đồ mắt để tách vấn đề lớp vật lý khỏi vấn đề giao thức, thay vì đọc từng khung.
  5. Với LIN, kiểm break và sync trước tiên. Nếu 0x55 méo hoặc break ngắn hơn 13 bit, mọi phân tích phía sau đều vô nghĩa.
  6. Chỉ khi lớp vật lý sạch mới quay lại đọc mã lỗi phần mềm.

Kết luận

CAN FD không phải là CAN cổ điển chạy nhanh hơn. Hai tốc độ bit trong một khung, CRC đổi theo kích thước tải, và cơ chế bù trễ phát với điểm lấy mẫu thứ cấp là ba thứ khiến bài đo khác hẳn. Ngược lại, LIN đơn giản về giao thức nhưng khắt khe về dạng sóng — break, sync 0x55 và biến thể checksum là ba chỗ sinh ra hầu hết báo động giả. Cấu hình bộ giải mã đúng ngay từ đầu tiết kiệm nhiều giờ hơn bất kỳ nâng cấp băng thông nào.

Techmaster Electronics là đại lý uỷ quyền của Keysight tại Việt Nam, có phòng hiệu chuẩn theo ISO/IEC 17025. Để chọn đúng cặp máy hiện sóng và gói giải mã ô tô cho dây chuyền hoặc phòng R&D của bạn, hoặc để hiệu chuẩn thiết bị đang dùng, hãy gọi 0908 173 345.

Biên soạn bởi Khanh Nguyen — Marketing Manager, Techmaster Electronics JSC.

Leave a Reply

Your email address will not be published. Required fields are marked *

Liên hệ Techmaster
Liên hệ chúng tôi
support techmaster