CAN trên ô tô

Một phần của tài liệu Chuyên đề về xe điện renault zoe 2020 đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 122)

Chương 5 : MẠNG CAN VÀ CHẨN ĐOÁN TRÊN XE ĐIỆN RENAULT ZOE

5.1 CAN trên ô tô

5.1.1 Giới thiệu về mạng CAN

Controller Area Network (CAN hoặc CAN Bus) là công nghệ mạng giao tiếp hai dây, tốc độ cao. Ban đầu CAN được thiết kế dành cho ngành công nghiệp ô tô với mục tiêu kết nối các bộ điều khiển điện tử (ECU) trong xe. Tuy nhiên, hiện nay CAN cũng đã trở thành một tiêu chuẩn phổ biến trong tự động hóa cơng nghiệp và các ngành khác.

Hình 5.1:Mơ hình mạng CAN trên xe

CAN là một bus truyền thơng nối tiếp (Serial bus) có thể chứa nhiều master để kết nối các ECU như là những Node (nút mạng) trên đường truyền. Cần ít nhất hai node trên đường truyền CAN để có thể giao tiếp. Các node được kết nối với nhau trên một bus vật lý gồm 2 dây xoắn với điện trở 120Ω. Hệ thống bus này xác định mức logic dựa trên sai biệt điện áp.

Các bộ điều khiển điện tử (ECU) giống như các bộ phận của cơ thể, được kết nối với nhau thông qua bus CAN. Thông tin được cảm nhận bởi một bộ phận có thể được

107 chia sẻ với bộ phận khác. Trong hệ thống CAN trên ơ tơ, các ECU có thể là bộ điều khiển động cơ, túi khí, hệ thống âm thanh, v.v… Một chiếc ơ tơ hiện đại có thể có tới hơn 70 ECU và mỗi ECU có thể có thơng tin cần được chia sẻ với các phần khác của mạng. Hệ thống bus CAN cho phép mỗi ECU giao tiếp với tất cả các ECU khác mà không cần đi dây chuyên dụng phức tạp. Cụ thể, một ECU có thể thu nhận và phát thơng tin (ví dụ dữ liệu cảm biến) thơng qua CAN (bao gồm hai dây: CAN LOW và CAN HIGH).

CAN cũng có nhiều loại khác nhau: Single CAN, CAN tốc độ thấp (low speed CAN), CAN tốc độ cao (high speed CAN). Đặc điểm dễ nhận biết của mạng giao tiếp này là 2 dây xoắn với nhau, 2 điện trở 120Ω ở hai đầu đấu song song với nhau.

Dựa trên đặc điểm thông số kỹ thuật của Bosch. Phiên bản 2.0 của CAN được chia thành hai phần:

- CAN tiêu chuẩn (Phiên bản 2.0A): Sử dụng ID (Identifier) 11 bit. - CAN mở rộng (Phiên bản 2.0B): Sử dụng ID 29 bit.

Hai phần được định nghĩa bởi các ID khác nhau của thông điệp, với sự khác biệt chính là độ dài mã ID.

Có hai tiêu chuẩn ISO cho CAN. Sự khác biệt là ở lớp vật lý: ISO 11898 xử lý các ứng dụng tốc độ cao lên đến 1Mbit/giây và ISO 11519 có giới hạn trên là 125Kbit/giây.

5.1.2 Phân loại CAN

5.1.2.1 CAN High-speed (CAN–C)

Tốc độ giao tiếp có thể lên đến 1 Mbps, vì vậy được sử dụng chủ yếu trong các hệ thống truyền động (Powertrain) yêu cầu trao đổi dữ liệu tốc độ cao. Tín hiệu được truyền trên cặp dây xoắn (differential pair), do đó ít bị ảnh hưởng bởi nhiễu từ bên ngồi.

Ngoài ra, theo tiêu chuẩn, chênh lệch điện áp giữa CAN_H và CAN_L là 1.8V, bộ thu phát CAN được điều khiển bởi dòng điện 30mA bằng 2 điện trở kết thúc 120Ω.

108

Hình 5.2:Cấu trúc của CAN High-speed

5.1.2.2 CAN Low-speed (CAN-B)

Tốc độ giao tiếp có thể lên đến 125 Kbps, vì vậy được sử dụng chủ yếu trong các bộ phận hệ thống thân xe (khơng phải động cơ) hay các thiết bị giải trí, tiện ích trên xe nơi mà không yêu cầu trao đổi dữ liệu tốc độ cao.

Thông thường, kết nối bao gồm 2 dây giống như CAN High-speed. Tuy nhiên, khi xảy ra sự cố trong đường truyền, việc giao tiếp có thể tiếp tục chỉ với 1 dây. Điều này là do các dây nối có thể được đặt ở bên ngồi của xe nên có nguy cơ bị hư hỏng. Việc kết nối vẫn có thể tiếp tục chỉ với 1 dây sẽ làm giảm rủi ro khi xảy ra sự cố.

109

5.1.2.3 CAN một dây (Singal CAN Bus)

Ngoài CAN High-speed và CAN Low-speed được mô tả ở trên, cịn có một định nghĩa tiêu chuẩn về cấu trúc lớp vật lý CAN khác, tức là CAN một dây. CAN một dây có thể giảm một đường truyền, nhưng yêu cầu đặc tính nối đất chung tốt giữa các Node (tương đương với đường tín hiệu thứ hai). Khả năng miễn nhiễm tín hiệu của CAN một dây tương đối yếu.

Trong thiết kế, biên độ tín hiệu cần được tăng lên để tăng tỷ lệ tín hiệu trên nhiễu, do đó làm tăng khả năng bức xạ của chính nó. Do đó, tốc độ truyền tín hiệu phải được giảm xuống để đáp ứng các yêu cầu tương thích điện từ.

Tóm lại, CAN một dây chỉ phù hợp với thiết bị điện tử tốc độ thấp, điều khiển tiện nghi và giải trí. Do tốc độ tín hiệu thấp, bus CAN tốc độ thấp vẫn có thể hoạt động ở chế độ một đường trong trường hợp đường tín hiệu bị lỗi.

110

Bảng 5.1: Thông số kỹ thuật của CAN High Speed và CAN Low Speed

CAN High-Speed [CAN-C]

CAN Low-Speed [CAN-B]

Singal CAN bus

CAN H CAN L CAN H CAN L CAN bus

Tiêu chuẩn ISO 11898-2 ISO 11898-3, 11519-2 SAE J2411 Tốc độ 125 Kb/s đến 1Mb/s 125 Kb/s 33.3 đến 83.3 Kb/s

Dominant [0] 3.25 V 1.5 V 4 V 1 V 4V

Recessive [1] 2.5 V 2.5 V 1.75V 3.25V 1.75V

Mức điện áp 5V 5V 5V

Cable 2 x 120 Ohm ở 2 đầu Mắc điện trở từng node Tương tự như CAN Low-speed Độ lệch điện áp Độ lệch tối thiểu là

2.0V (Tính từ 3.5V đến 1.5V) - Độ lệch của mức Dominant > 2.3 V - Recessive < 0.6 V Khơng có (do đường truyền 1

dây)

5.1.3 Nguyên lý hoạt động

CAN sử dụng CSMA / CD + AMP. Trước khi gửi thông điệp, nút CAN sẽ kiểm tra xem bus có bận khơng. Nó cũng sử dụng để phát hiện khả năng trùng lặp. Những phương thức này cũng tương tự như Ethernet.

Tuy nhiên, khi một mạng Ethernet phát hiện xung đột, cả hai nút gửi sẽ ngừng truyền. Sau đó, nó đợi một khoảng thời gian trễ ngẫu nhiên trước khi thử gửi lại. Điều này làm cho mạng Ethernet rất nhạy cảm với tải bus cao. Có thể giải quyết vấn đề này với nguyên tắc xác định quyền ưu tiên rất thông minh trong mạng CAN.

 Nguyên tắc

Thông điệp dữ liệu được truyền từ bất kỳ nút nào trên bus CAN không chứa địa chỉ của nút truyền hoặc của bất kỳ nút nhận dự kiến nào.

111 Thay vào đó, nội dung của thơng điệp được gắn nhãn bởi một số nhận dạng (ID) là duy nhất trên toàn mạng. Tất cả các nút khác trên mạng đều nhận được thông điệp và mỗi nút thực hiện kiểm tra sự chấp nhận trên mã ID để xác định xem thơng điệp có liên quan đến nút đó hay khơng. Nếu thơng điệp có liên quan, nó sẽ được xử lý, nếu khơng thì nó bị bỏ qua.

Hình 5.5:Mơ hình phát - nhận tín hiệu của ECU thơng qua mạng CAN

5.1.4 Ưu điểm của CAN

Đơn giản, chi phí thấp: bus CAN chỉ có 2 dây giúp kết nối các module điều khiển với nhau dễ dàng hơn khi so sánh với cách làm truyền thống. Kèm theo đó là nhiều lợi ích về việc dễ lắp đặt và dễ sửa chữa, bảo trì khi có sự cố.

Tạo ra một giao thức chung để nhiều nhà cung cấp khác nhau có thể phát triển các module điều khiển tương thích với nhau

Tính ưu tiên của thông điệp (Prioritization of messages): mỗi thông điệp được truyền ra từ một nút (node) hay trạm (station) trên bus CAN đều có mức ưu tiên. Khi nhiều thơng điệp được truyền ra bus cùng lúc thì thơng điệp có mức ưu tiên cao nhất sẽ được truyền. Các thơng điệp có mức ưu tiên thấp hơn sẽ tạm dừng và được truyền lại khi bus rảnh. Việc xác định mức ưu tiên của thông điệp dựa trên cấu tạo (cấu trúc) thông điệp và cơ chế phân xử quy định trong chuẩn chuẩn CAN.

112 Cấu hình linh hoạt: cho phép thiết lập cấu hình thời gian bit, thời gian đồng bộ, độ dài dữ liệu truyền, dữ liệu nhận, …

Nhận dữ liệu đa điểm với sự đồng bộ thời gian: một thơng điệp có thể được nhận bởi nhiều node khác nhau trong bus cùng lúc. Tất cả các node trên bus đều có thể thấy thơng điệp đang truyền trên bus, tùy vào cấu hình ở mỗi node mà node sẽ quyết định có chấp nhận thơng điệp này hay không.

Nhiều master (multimaster): Về mặt lý thuyết, CAN có thể liên kết tới 2032 thiết bị (giả sử một nút với một mã ID) trên một mạng duy nhất.

Phát hiện và báo hiệu lỗi: Mỗi thơng điệp có kèm theo mã CRC để thực hiện kiểm tra lỗi. Nếu lỗi xuất hiện, node nhận sẽ bỏ qua thông điệp lỗi và truyền khung báo lỗi (Error frame) lên bus CAN. Mỗi node trong bus có bộ đếm quản lý lỗi truyền nhận riêng để xác định trạng thái lỗi của chính nó. Nếu lỗi xuất hiện q nhiều, một node có thể tự động ngắt khỏi bus. Ngồi ra cịn một số dạng lỗi khác có thể được phát hiện với chuẩn CAN.

Tự động truyền lại các thông điệp bị lỗi khi bus rảnh: Một thông điệp được truyền ra bus nếu bị lỗi thì sẽ khơng mất đi mà node truyền thơng điệp này sẽ giữ nó lại và tự động phát lại thơng điệp này khi bus CAN rảnh cho đến khi thành công. Điều này giúp đảm bảo tính tồn vẹn dữ liệu trong bus

5.2 Q trình truyền nhận thơng tin giữa OBD II và CAN

5.2.1 Lớp vật lý của CAN

ISO 11898 định nghĩa 02 lớp Physical Layer và Data-link Layer:

- Physical Layer định nghĩa cách biểu diễn cũng như cách thu nhận bit 0 và 1, cách định thời và cách đồng bộ hóa.

- Data-link Layer lại được chia làm 02 lớp con nhỏ hơn là LLC và MAC nhằm định nghĩa Frame truyền và những nguyên tắc về quyền ưu tiên.

113 - Trạng thái Dominant của CAN được định nghĩa: Là trạng thái mà tại đó, giá trị điện áp của CAN bus được chủ động thay đổi bởi CAN node muốn truyền tín hiệu. Giá trị tương ứng của trạng thái này là 0.

- Trạng thái Recessive của CAN được định nghĩa: Là trạng thái mà tại đó, giá trị điện áp của CAN bus bị động trả về giá trị mặc định bởi termination resistance → Trạng thái Recessive chỉ xảy ra khi khơng có bất kì CAN node nào muốn truyền tín hiệu. Giá trị tương ứng của trạng thái này là 1.

Hình 5.6: Lớp vật lý của CAN High-speed và CAN Low-speed

Đối với CAN High-Speed và CAN Low-Speed, giá trị của 02 trạng thái Dominant và Recessive là hoàn toàn khác nhau, nhưng cách định nghĩa vẫn giống nhau.

5.2.2 Cấu trúc của CAN

CAN Frame: Là chuỗi các bit liên tiếp với nhau để tạo nên một CAN message. CAN protocol định nghĩa 04 loại CAN Frames sau:

1.Data Frame: Dùng khi CAN node muốn truyền dữ liệu đến một (những) CAN

node khác. Dạng Frame này có một vùng DATA để chứa dữ liệu cần gửi.

2.Remote Frame: Còn gọi là Frame yêu cầu hoặc Frame điều khiển. Khi một CAN

node truyền đi một Remote Frame thì tức là node đó muốn u cầu 1 (hoặc nhiều) node khác gửi một Data Frame có ID trùng với ID mà node đó yêu cầu.

3.Error Frame: Dùng trong việc xử lí lỗi Frame. Có thể được gửi bởi bất kì node

114

4.Overload Frame: Dùng trong việc xử lí lỗi Overload. Frame này sẽ tạo ra độ trễ

giữa các Data Frame hoặc Remote Frame. Bất ki node nào cũng có thể dùng node này để ngăn sự truyền tiếp theo nếu node đó phát hiện đang phải nhận quá nhiều dữ liệu (tình trạng Overload).

Data Frame là dạng Frame thường gặp nhất vì tất cả các CAN message đều được truyền đi dưới dạng Frame này. Data Frame lại được chia thành 02 dạng:

- Standard Frame Format: phần Identifier chứa 11 bits, trong đó 07 bits đầu tiên

đóng vai trị Arbitration.

- Extented Frame Format: phần Identifier chứa 29 bits, đồng thời cũng đóng vai trị

là Arbitration.

Hình 5.7:Khung dữ liệu của CAN 2.0A (11bit) và CAN 2.0B (29bit)

5.2.2.1 Start-of Frame

SOF có độ dài 1 bit, là bit khởi đầu 1 CAN Frame → Luôn nằm ở đầu Frame. - Một CAN node muốn gửi một message nào đó thì node đó sẽ đặt SOF về

115 - SOF cịn có nhiệm vụ bắt đầu q trình đồng bộ giữa các CAN node (tính từ thời điểm xuất hiện cạnh xuống chuyển từ Recessive sang Dominant) đồng thời báo hiệu quá trình Arbitration sắp diễn ra.

5.2.2.2 Identifier/Arbitration Field

ID có 11 bit, chứa ID của message để thực hiện Arbitration. - CAN ID càng nhỏ thì có mức ưu tiên càng cao.

- CAN protocol không định nghĩa về việc phân chia ID cho từng hệ thống cụ thể mà chỉ đề cập đến vấn đề Arbitration.

- 11 bits ID sẽ được dánh dấu từ ID-10 đến ID-0 theo chiều từ trái qua phải → ID- 10 sẽ là LSB.

- 7 bits từ ID-10 đến ID-4 được sử dụng cho việc Arbitration và không được cùng là Recessive (111 1111 = 7F).

Lưu ý: Arbitration là một phương tiện ngăn chặn hoặc phát hiện sự va chạm của

dữ liệu được gửi bởi các ECU khác nhau trong cùng một thời điểm. Arbitration là cần thiết để nhận được phản hồi chính xác đối với yêu cầu.

5.2.2.3 Remote-Transmission-Request

RTR có độ dài 1 bit. Nhiệm vụ của RTR là phân biệt giữa Data-Frame với Remote- Frame.

- RTR = 0: Data Frame. - RTR = 1: Remote Frame

Về mặt ý nghĩa, Remote Frame mở ra khả năng cho phép 1 CAN node được quyền yêu cầu một (hoặc nhiều) CAN node khác truyền đi Data Frame với ID cho trước. RTR luôn nằm ngay sau ID (Kể cả CAN 2.0A hay CAN 2.0B, nhưng riêng CAN 2.0B dạng Standard thì RTR sẽ nằm sau bit ID-18).

116 IDE có độ dài 1 bit. IDE chính là bit để phân biệt giữa Standard Frame với Extended Frame, còn được một vài tài liệu gọi là R1.

- IDE = 0: Standard Frame. - IDE = 1: Extended Frame.

Vị trí của IDE sẽ khác nhau phụ thuộc vào CAN Frame Format.

- Standard Frame: IDE sẽ nằm ngay sau RTR, thuộc vùng Control như (Hình 5.7).

- Extended Frame: IDE sẽ nằm ngay sau SRR (lưu ý không phải là RTR), thuộc

vùng Arbitration Field.

Lưu ý: Đối với CAN 2.0A thì sẽ khơng có bit IDE, thay vào đó sẽ là bit dự trự R1

ln có giá trị bằng 1 và hồn tồn khơng có ý nghĩa.

5.2.2.5 Reserved

- Reserved hay còn gọi là R0, là bit dự trữ, có độ dài 1 bit. - Giá trị của bit này luôn là 1 nhưng sẽ ln bị bỏ qua.

5.2.2.6 Data-Length-Code

- DLC có độ dài 4 bits, có nhiệm vụ qui định số byte của vùng Data.

- DLC chỉ được mang giá trị (tính theo decimal) từ 0 đến 8, tương ứng với 8 bytes dữ liệu. → Hồn tồn có thể có trường hợp CAN Frame khơng chứa bất kì dữ liệu nào (DLC = 0).

-

5.2.2.7 Data-Field

- Data-Field chính là vùng chứa dữ liệu mà CAN Frame cần truyền. Data-Field sẽ có độ dài 8 bytes (64 bits).

- Độ dài của Data-Field phải tương ứng với giá trị của DLC. Nếu có sự khác biệt thì một lỗi CAN sẽ được phát và dữ liệu truyền/nhận sẽ bị sai lệch.

117

5.2.2.8 Cyclic-Redundancy-Check

CRC là vùng kiểm tra, gồm 16 bits, chia làm 02 phần:

 CRC Sequence - Gồm 15 bits.

- Được đánh dấu từ CRC-14 đến CRC-0.

- Giá trị của CRC sẽ ứng với một phép tính, thực chất là một phép chia đa thức (chia bit nhị phân).

CRC Delimiter

- Có độ dài 1 bit.

- Vị trí của CRC Delimiter ln nằm ngay sau CRC-0.

- Giá trị của CRC-Delimiter luôn là Recessive nhằm làm nhiệm vụ phân cách vùng CRC với vùng liền kề nó.

5.2.2.9 Acknowledge

Vùng ACK có độ dài 02 bits và được chia làm 02 phần:

ACK Slot

- Có độ dài 1 bit.

- Node truyền CAN Frame ban đầu sẽ đặt bit này ở giá trị Recessive (ACK = 1). - Khi một hoặc nhiều node nhận đầy đủ các dữ liệu trong vùng Data mà không trả

về lỗi nào đồng thời tính tốn CRC chính xác, thì các node đó sẽ phản hồi lại đến node nhận thơng qua ACK Slot bit.

- Thông tin phản hồi được thể hiện qua việc các node nhận Data Frame sẽ kéo giá

Một phần của tài liệu Chuyên đề về xe điện renault zoe 2020 đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 122)