facebook

Giải mã bus nối tiếp trên máy hiện sóng: I2C, SPI, CAN-FD và LIN

Một khung CAN lỗi giữa hàng triệu khung bình thường trông giống hệt mọi khung khác nếu bạn chỉ nhìn dạng sóng thô. Đọc thủ công từng bit trên màn hình là việc không ai làm nổi ở tốc độ 5 Mbit/s. Đó là lý do giải mã bus nối tiếp trở thành chức năng bắt buộc trên máy hiện sóng dùng cho thiết kế nhúng và ô tô: máy tự dịch chuỗi bit thành khung có nghĩa, đồng thời cho phép kích khởi đúng vào điều kiện lỗi mà bạn đang truy tìm.

Bài viết đi qua cơ chế giải mã, bốn bus phổ biến nhất cùng lỗi đặc trưng của từng loại, và ma trận giấy phép thực tế trên dòng InfiniiVision — phần nhiều nhóm mua thiếu.

Giải mã bus nối tiếp trên máy hiện sóng hoạt động ra sao

Quy trình gồm ba lớp. Trước hết máy số hoá dạng sóng analog của từng đường tín hiệu. Sau đó nó áp một ngưỡng logic do bạn đặt để chuyển dạng sóng thành chuỗi bit — chọn sai ngưỡng là hỏng toàn bộ phần còn lại. Cuối cùng máy áp luật của giao thức lên chuỗi bit đó để dựng lại khung: địa chỉ, mã lệnh, dữ liệu, mã kiểm tra và bit báo nhận.

Điểm mấu chốt là lớp thứ hai. Vì máy hiện sóng giữ nguyên dạng sóng analog gốc, bạn có thể nhìn đồng thời khung đã giải mã và chất lượng tín hiệu tạo ra khung đó. Khi một khung báo lỗi CRC, bạn thấy ngay đó là lỗi phần mềm hay là do sườn tín hiệu bị bo tròn vì trở kháng kết thúc sai — điều mà một máy phân tích giao thức thuần logic không cho bạn thấy.

Giải mã phần cứng và vì sao nó quan trọng

Phần lớn máy hiện sóng giải mã bằng phần mềm chạy trên bộ xử lý: máy bắt một bản ghi, dừng lại, tính toán, rồi mới bắt bản ghi tiếp theo. Trong khoảng thời gian chết đó, hàng nghìn khung đi qua mà không được nhìn thấy. Dòng InfiniiVision của Keysight giải mã bằng phần cứng chuyên dụng trong đường xử lý, nên tốc độ cập nhật vẫn giữ ở mức một triệu dạng sóng mỗi giây trong khi vẫn giải mã. Với lỗi xuất hiện một lần trong hàng vạn khung, khác biệt này quyết định bạn có bắt được nó trong một buổi chiều hay không. Chúng tôi đã phân tích kỹ vấn đề thời gian chết và bộ nhớ phân đoạn trong bài bộ nhớ máy hiện sóng và sự kiện hiếm.

Bốn bus nối tiếp I2C, SPI, CAN-FD và LIN cùng lỗi đặc trưng
Mỗi bus hỏng theo một kiểu riêng — biết trước kiểu hỏng để chọn đúng điều kiện kích khởi.

Bốn bus thường gặp và lỗi đặc trưng của từng loại

I2C — hai dây, nhiều thiết bị, nhiều cách hỏng

I2C dùng hai đường hở cực máng SDA và SCL với điện trở kéo lên. Chính điện trở kéo lên là nguồn gốc của phần lớn sự cố: giá trị quá lớn làm sườn lên bo tròn, tới mức thiết bị đọc sai bit ở tốc độ cao. Khi giải mã I2C SPI, hãy tập trung vào ba điều kiện kích khởi: thiếu bit báo nhận (NACK), địa chỉ cụ thể kèm hướng đọc/ghi, và điều kiện khởi động lại. Một NACK lặp lại thường có nghĩa là thiết bị tớ chưa sẵn sàng, chưa được cấp nguồn, hoặc bạn đang gọi nhầm địa chỉ 7 bit so với 8 bit.

SPI — nhanh, đơn giản, và không có cơ chế báo lỗi

SPI song công với bốn đường: xung nhịp, dữ liệu vào, dữ liệu ra và chọn chip. SPI không có mã kiểm tra và không có bit báo nhận, nên mọi lỗi đều âm thầm. Hai điểm phải kiểm tra là cực tính cùng pha lấy mẫu của xung nhịp, và thời điểm đường chọn chip lên xuống so với khung dữ liệu. Kích khởi theo độ dài khung hoặc theo mẫu dữ liệu cụ thể là cách nhanh nhất để cô lập vấn đề.

CAN-FD — tốc độ đổi giữa chừng trong một khung

CAN-FD theo ISO 11898-1 mở rộng CAN cổ điển theo hai hướng: dữ liệu lên tới 64 byte mỗi khung, và tốc độ bit được chuyển sang mức cao hơn trong phần dữ liệu rồi quay lại tốc độ phân xử ở cuối khung. Việc đổi tốc độ ngay giữa một khung là điểm khiến CAN-FD khó debug hơn hẳn: máy giải mã phải bám đúng cả hai tốc độ, và mọi sai lệch nhỏ trong đồng bộ bit đều biểu hiện thành lỗi dạng khung ở phần tốc độ cao. Điều kiện kích khởi hữu ích nhất là khung báo lỗi và lỗi CRC — chúng chỉ thẳng tới đoạn bus có vấn đề vật lý.

LIN — rẻ, chậm, và phụ thuộc vào tệp mô tả

LIN là bus một dây chi phí thấp cho các chức năng thân xe như cửa sổ điện và gương chỉnh điện. Vì chỉ có mã định danh chứ không mang tên tín hiệu, khung LIN giải mã thô gần như vô nghĩa nếu không có tệp mô tả đi kèm.

Giải mã tượng trưng với tệp .dbc và .ldf

Đây là bước nâng cấp lớn nhất về năng suất. Thay vì đọc một khung dưới dạng mã định danh và các byte thập lục phân, bạn nạp tệp cơ sở dữ liệu của mạng vào máy: tệp .dbc cho CAN và CAN-FD, tệp .ldf cho LIN. Máy hiện sóng khi đó hiển thị trực tiếp tên tín hiệu và giá trị đã quy đổi sang đơn vị kỹ thuật — tốc độ động cơ tính bằng vòng/phút thay vì hai byte thô.

Quan trọng hơn, bạn có thể kích khởi theo giao thức ở mức tượng trưng: đặt điều kiện dừng khi một tín hiệu cụ thể vượt ngưỡng, thay vì phải tự tính xem ngưỡng đó tương ứng với mẫu bit nào. Trên dòng InfiniiVision 3000T và 3000G, khả năng kích khởi và giải mã tượng trưng bằng .dbc và .ldf được hỗ trợ cho cả CAN, CAN-FD và LIN.

Ma trận giấy phép giải mã bus nối tiếp trên InfiniiVision 3000G
I2C, SPI, UART và I2S là chuẩn; toàn bộ nhóm bus ô tô nằm trong gói D3000AUTB.

Ma trận giấy phép: cái gì có sẵn, cái gì phải mua thêm

Đây là chỗ nhiều dự án tính thiếu ngân sách. Trên dòng InfiniiVision 3000G X-Series, các giao thức có sẵn theo máy là I2C, SPI, UART/RS232/RS485, I2S và USB-PD. Nhóm giao thức ô tô không nằm trong cấu hình chuẩn.

Để có CAN, CAN-FD, LIN, FlexRay, SENT, PSI5 (Manchester tự định nghĩa), NRZ tự định nghĩa và CXPI, bạn cần gói phần mềm ô tô D3000AUTB dành cho dòng 3000A/T/G X-Series. Gói này đồng thời mang theo hai thứ đáng giá: kiểm tra mặt nạ biểu đồ mắt cho CAN và CAN-FD — tức đánh giá chất lượng lớp vật lý chứ không chỉ đọc khung — và phân tích đáp ứng tần số dạng biểu đồ Bode trên dòng 3000T/G.

Kết luận thực hành: nếu dự án của bạn có bất kỳ bus ô tô nào, hãy đưa D3000AUTB vào báo giá ngay từ đầu thay vì phát hiện thiếu sau khi máy đã về phòng lab.

Máy hiện sóng Keysight DSOX3104G giải mã bus nối tiếp bằng phần cứng
Keysight DSOX3104G — 4 kênh analog băng thông 1 GHz, giải mã giao thức bằng phần cứng.

Chọn máy hiện sóng cho công việc giải mã

Keysight DSOX3104G là lựa chọn gọn cho nhóm chỉ cần bốn kênh analog: băng thông 1 GHz, cùng nền tảng giải mã phần cứng và cùng danh mục giấy phép.

Khi hệ thống của bạn có cả bus nối tiếp lẫn tín hiệu điều khiển số — chân chọn chip, ngắt, tín hiệu bắt tay — thì Keysight MSOX3104G hợp lý hơn nhờ 16 kênh số bổ sung bên cạnh 4 kênh analog, tốc độ lấy mẫu 5 GSa/s và bộ nhớ 4 Mpts. Bộ nhớ sâu là điều kiện cần để bắt một chuỗi giao dịch dài đủ để lỗi hiếm xuất hiện.

Với hệ thống nhiều bus chạy song song — ví dụ một cụm điều khiển có hai nhánh CAN-FD, một nhánh LIN và vài đường SPI — số kênh trở thành nút thắt. Keysight MXR108B cung cấp 8 kênh analog băng thông 1 GHz (nâng cấp được tới 6 GHz) cộng 16 kênh số, lấy mẫu 16 GSa/s, bộ nhớ tối đa 1,6 Gpts và bộ số hoá 10 bit. Bộ nhớ lớn hơn hai bậc so với dòng 3000G cho phép bạn ghi trọn một chu trình khởi động của hệ thống rồi mới đi tìm khung lỗi.

Lưu ý thực hành trước khi bấm nút

  • Đặt ngưỡng logic đúng họ tín hiệu. Ngưỡng mặc định thường không khớp với mức 3,3 V hay mức vi sai của CAN. Ngưỡng sai làm khung giải mã ra rác dù tín hiệu hoàn toàn tốt.
  • Đo CAN và CAN-FD ở dạng vi sai. Đo từng dây so với đất sẽ bỏ sót đúng thứ cần thấy là chênh lệch giữa hai dây.
  • Kiểm tra trở kháng kết thúc trước khi đổ lỗi cho phần mềm. Sườn tín hiệu bo tròn và dao động phản xạ là nguyên nhân vật lý phổ biến nhất của lỗi CRC.
  • Bật bộ nhớ phân đoạn khi săn lỗi hiếm để dành toàn bộ bộ nhớ cho các khung thật thay vì cho khoảng lặng giữa chúng.

Kết luận

Giải mã bus nối tiếp trên máy hiện sóng mạnh ở chỗ nó giữ được cả hai lớp thông tin: nội dung khung và chất lượng tín hiệu vật lý tạo ra khung đó. Giải mã bằng phần cứng giữ tốc độ cập nhật cao nên lỗi hiếm không bị bỏ sót, còn giải mã tượng trưng bằng .dbc và .ldf biến các byte thô thành tên tín hiệu đọc được ngay. Điều cần nhớ khi lập ngân sách: trên dòng 3000G, I2C, SPI, UART và I2S là chuẩn, còn toàn bộ nhóm bus ô tô nằm trong gói D3000AUTB.

Techmaster Electronics là đại lý uỷ quyền của Keysight tại Việt Nam, tư vấn cấu hình máy hiện sóng cùng giấy phép giải mã phù hợp với đúng danh mục bus của dự án, và vận hành phòng hiệu chuẩn theo ISO/IEC 17025 cho thiết bị đo. Liên hệ 0908 173 345 để được hỗ trợ chọn cấu hình.

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