1. Trang chủ
  2. » Luận Văn - Báo Cáo

Mạng truyền dữ liệu Can Bus trên xe ô tô đời mới mô hình ứng dụng arduino

54 93 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Trong những năm gần đây, một đặc tính của ôtô hiện đại là sự phát triển việc điều khiển điện tử một cách nhanh chóng, có nhiều hệ thống điều khiển khác nhau và việc điều khiển đòi hỏi phải chính xác. Vấn đề đặt ra là sự gia tăng một cách mạnh mẽ số lượng dây điện, tổng khối lượng dây điện xấp xỉ 50 kg và tổng chiều dài dây gần 2 km. Để giải quyết vấn đề này, các nhà sản xuất ôtô đã chủ động phát triển một hệ thống thông tin đa dẫn Multiplex gọi tắt là MPX. MPX là một hệ thống giao tiếp dùng để nhận hay truyền 2 hay nhiều dữ liệu trở lên thông qua 1 đường dây giao tiếp. Mỗi ECU điều khiển từng hệ thống và được kết nối với nhau trong MPX.Mô hình ứng dụng arduino sẽ giúp chúng ta hiểu được về hệ thống mạng truyền dữ liệu.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA: CÔNG NGHỆ Ô TÔ BÁO CÁO BÀI TẬP LỚN CƠ ĐIỆN TỬ Ô TÔ Chủ đề: Mạng truyền liệu Can-Bus ô tô đời Giáo viên hướng dẫn: Nguyễn Mạnh Dũng Sinh viên: Ngô Gia Thăng - 2018601017 Phạm Tùng Dương -2018603255 Lê Khắc Lâm - 2018602200 Nguyễn Việt Hà - 2018601458 Vũ Tất Thắng - 2018600830 Lớp ô tô – khóa k13 Hà Nội-2020 LỜI NĨI ĐẦU Trong năm gần đây, đặc tính ơtơ đại phát triển việc điều khiển điện tử cách nhanh chóng, có nhiều hệ thống điều khiển khác việc điều khiển địi hỏi phải xác Vấn đề đặt gia tăng cách mạnh mẽ số lượng dây điện, tổng khối lượng dây điện xấp xỉ 50 kg tổng chiều dài dây gần km Để giải vấn đề này, nhà sản xuất ôtô chủ động phát triển hệ thống thông tin đa dẫn Multiplex gọi tắt MPX MPX hệ thống giao tiếp dùng để nhận hay truyền hay nhiều liệu trở lên thông qua đường dây giao tiếp Mỗi ECU điều khiển hệ thống kết nối với MPX Ngày hệ thống điều khiển chia thành nhiều cụm khác điều khiển máy tính riêng rẽ khác Do số lượng dây dẫn cảm biến ngày tăng, dẫn đến việc chẩn đoán sữa chữa gặp nhiều khó khăn Chính điều thúc đẩy cho đời số hệ thống mạng điều khiển, có mạng CAN CAN viết tắt Controller Area Network, tạm dịch “Mạng ECU” hay gọi tắt mạng CAN, công nghệ mạng ghép nối tiếp, phát triển Robert Bosch GmbH vào năm đầu thập niên 1980 Vào thời gian đầu, mạng CAN sử dụng rộng rãi cơng nghiệp tự động hóa ứng dụng xe hơi, xe tải ngày mạng CAN thể tính ưu việt lĩnh vực khác hàng không, vũ trụ, y học thiết bị sử dụng cho gia đình như: máy giặt, máy sấy….Mạng CAN có lợi hệ thống kênh ghép nối tiếp lược bớt dây dẫn, tăng cường khả điều khiển, giảm bớt số lượng cảm biến, phát lỗi dễ dàng, thuận tiện việc chẩn đoán sữa chữa Với lợi nhóm em định nghiên cứu nguyên lý hoạt động mạng giao tiếp canbus ô tô đại với hướng dẫn thầy Nguyễn Mạnh Dũng CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Lịch sử phát triển mạng CAN Một yếu tố thúc đẩy ngành công nghiệp ô tô để phát triển mạng giao tiếp CAN ( Controller Network Area) giao thức giao tiếp khác nhu cầu tìm giải pháp cho vấn đề mạng giao tiếp, song song với nhu cầu hạn chế phức tạp hệ thống đường dây điện xe Hệ thống dây điện xe ô tơ dài đến vài dặm nặng 100 kg Điều gây cản trở khơng q trình sản xuất, bao gồm lắp đặt, chi phí trình bảo dưỡng Kể từ đầu năm 1980, hầu hết tất nhà sản xuất ô tô bắt đầu nỗ lực chuyên sâu để tìm phát triển giao thức truyền thơng phù hợp cho cụm hệ thống điều khiển ô tô Những hệ thống quản lý động cơ, truyền động, phanh, ổn định xe yêu cầu xử lý thời gian thực lớn nên sử dụng mạng truyền thông với tốc độ truyền nhanh Ở hệ thống điều khiển điện thân xe, ví dụ điều khiển gương, cửa sổ điện, khóa cửa, điều chỉnh ghế ngồi, kiểm sốt khí hậu, ánh sáng, u cầu tốc độ truyền thơng thấp hơn, địi hỏi băng thơng truyền thấp Ngồi để đáp ứng nhu cầu cho nhiều ứng dụng khác nhau, giao thức khác xuất hiện, CAN, Mạng kết nối cục (LIN), Truyền tải truyền thông (MOST) FlexRay Kể từ năm 1994111995, CAN giao thức phổ biến cho ứng dụng ô tô Được mơ tả Tổ chức Tiêu chuẩn hóa Quốc tế ISO (International Organization for Standardization), tính đến mạng CAN bao gồm chuẩn, từ 11898-1 đến 11898-5 Trong Phần ISO 11898 (ISO 11898-1), lớp liên kết liệu lớp vật lý đặt theo mô hình tham chiếu ISO ISO / IEC 7498-1 Truy cập xe buýt tốc độ cao CAN (tối đa Mbit / s) định ISO 11898-2 chủ yếu sử dụng dẫn động xe Tốc độ thấp tốc độ thấp CAN CAN (40 chụp 125 kbit / giây) cho phần tiện nghi mô tả ISO 118983 ISO 11898-4 cho phép giao tiếp kiểu kích hoạt theo thời gian ( time-triggered) để đảm bảo truyền liệu trơn tru với lưu lượng truyền thông cao 1.2 Cấu trúc mạng CAN 1.2.1 Hệ thống nút (node) mạng lưới CAN Trong hệ thống CAN thông thường bao gồm nhiều nhiều nút (node) Các nút giao tiếp với hai đường truyền CAN CAN_H CAN_L Hình 2.1: Cấu trúc mạng CAN Trong nút CAN gồm có vi điều khiển (microcontroller) phục vụ cho tầng ứng dụng, điều khiển CAN (CAN controller) thu phát CAN (CAN transceiver) Bộ điều khiển CAN chịu trách nhiệm cho chế độ truyền nhận tin Nó nhận thơng tin cần truyền từ vi điều khiển đóng gói thơng tin thành khung truyền (Frames) gồm dãy bit tín hiệu theo chuẩn CAN chuyển tiếp đến thu phát kênh TxD Bộ thu phát khuếch đại tín hiệu vừa nhận được, tạo mức điện áp cần thiết theo tiêu chuẩn truyền liệu vi sai đường truyền CAN đưa chuỗi bit vừa xử lý lên đường truyền (CAN_H CAN_L) Ngược lại, tin (message) đến thu phát xử lý gửi đến điều khiển CAN kênh RxD Vi điều khiển tầng ứng dụng dùng để chạy chương trình ứng dụng (ví dụ hệ thống chỉnh gương), quản lý điều khiển điều khiển CAN, chuẩn bị liệu gửi đánh giá, xử lý liệu nhận Hình 2.2: Một nút hệ thống CAN 1.2.2 Mã hóa tín hiệu truyền Trên đường truyền, mạng CAN sử dụng hai trạng thái bit để giao tiếp thông tin, dominant (bit 0) recessive (bit 1) Mỗi bit mạng CAN mã hóa phương pháp None‐return‐to‐zero Trong suốt trình truyền bit, mức điện áp dây giữ nguyên, có nghĩa suốt q trình bít tạo, giá trị giữ khơng đổi Với phương pháp này, khơng có bắt buộc hai trạng thái truyền có giá trị Khi nhận tin nhắn, thu phát CAN chuyển đổi mức tín hiệu trở lại trạng thái logic Trong trình này, khuếch đại vi sai trừ mức điện áp CAN_L cho CAN_H để định xem bit dominat hay bit recessive Vì vậy, đường truyền gặp xung nhiễu (ví dụ hệ thống đánh lửa), xung nhiễu tác dụng hai đường, điều giúp cho việc loc nhiễu trở dễ dàng Hình 2.3: Phương pháp mã hố Non-return-to-zero Hình 2.4: Truyền tín hiệu vi sai tính chất chống nhiễu đường truyền’ Một số thu phát đánh giá mức điện áp dòng CAN_H CAN_L cách riêng biệt, tức khơng dùng tín hiệu vi sai từ CAN_H CAN_L Do đó, hoạt động tiếp tục chế độ đường dây hai bị hỏng ngắn mạch đứt cáp Tuy nhiên, nút phải sử dụng chung mức điện áp tham chiếu (ground) để đảm bảo chức đường dây gặp trục trặc 1.2.3 Bộ phận truyền tín hiệu điện dây dẫn 1.2.3.1Truyền tín hiệu điện hai dây dẫn Hai dây phục vụ truyền tín hiệu CAN, gồm CAN_H CAN_L Cặp dây hỗ trợ truyền liệu đối xứng (symmetrical data transfer), bit đặt hai dây áp mức điện áp khác Truyền cách giúp hạn chế độ nhạy với tín hiệu nhiễu đường truyền đề cập từ trước, tín hiệu nhiễu ảnh hưởng đến hai đường truyền nhờ mà lọc Ngồi việc tăng cường thêm vỏ bọc dây dẫn làm giảm bớt xạ dây dẫn phát truyền, đặc biệt truyền tốc độ cao 1.2.3.2 Truyền tín hiệu điện dây dẫn Để truyền liệu dây dẫn tất nút mạng CAN phải có chung điện áp tham chiếu, giả sử mức điện áp với mức điện áp đường truyền lại Việc truyền liệu đường dây dễ bị nhiễu khơng thể lọc xung nhiễu với đường dây hai dây Vì điều mà mức điện áp cao cấp cho tín hiệu 10 Ngắt kết nối đường CAN với rắc chẩn đốn ※ Communication Failure 40 *Điều quan trọng để chẩn đoán để phân biệt điều khiển giao tiếp điều khiển không giao tiếp  Trường hợp ngắn mạch làm đường truyền kết nối với tất hộp  Mạng kết nối bị lỗi hồn toàn xảy ngắn mạch với dây CAN Tuy nhiên trường hợp ngắn mạch với dây low, giao tiếp thực đầu CAN High có dạng song bình thường  Tách dòng CAN ( Ngắt kết nối) phần kết nối máy chẩn đoán nhằm phát phần bị ngắn mạch Trong trường hợp ngắt kết nối – Có thể thành phần bị ngắt kết nối hệ thống kết nối 41 ▶ Diagnostic Process (C-CAN Main Twist Wiring Line Disconnected (High or Low)) 42 43 CHƯƠNG : MƠ HÌNH MẠNG GIAO TIẾP CANBUS ỨNG DỤNG MODULE CAN MCP 2515 3.1 Module CAN MCP2515 44 Hình 3.1 Module CAN MCP2515 3.1.1 Thông số kỹ thuật Module CAN MCP2515 board mạch bao gồm CAN controller MCP 2515 CAN trasceiver hỗ trợ tốc độ truyền cao TJA1050 Kết nối với vi xử lý sử dụng giao thức truyền SPI Kích thước 40x28 mm Thạch anh tạo xung 8MHz Tích hợp điện trở 120Ohm mạch Hỗ trợ truyền với tốc độ Mb/s Chế độ standby tiêu thụ dòng thấp Hỗ trợ kết nối 120 nút cho toàn hệ thống 3.1.2 Sơ đồ chân Tên chân Chức VCC Nguồn (5V) GDN Chân Ground CS SPI Slave (chân giao thức SPI) SO SPI MISO (chân giao thức SPI) SI SPI MOSI (chân giao thức SPI) SCLK SPI Clock (chân giao thức SPI) INT Chân ngắt Bảng 3.1: Sơ đồ chân module MCP2515 3.2 Mạch Arduino Mạch Ardino sử dụng để gởi liệu ( số) thông qua mạng CAN đế đưa qua cho mạch Arduino thứ 45 Giữa Arduino giao tiếp với module CAN sử dụng giao thức SPI Trong chân phục cho giao thức SPI Arduino là: Chân Chức D10 SPI SS D13 SPI SCK D12 SPI MISO D11 SPI MOSI 3.3 Cảm biến Nhiệt độ LM 35 Cảm biến nhiệt độ LM35 loại cảm biến tương tự hay ứng dụng ứng dụng đo nhiệt độ thời gian thực ( sai số lớn) Với kích thước nhỏ giá thành rẻ ưu điểm Vì cảm biến tương tự (analog sensor) nên ta dễ dàng đọc giá trị hàm analogRead() Nhiệt độ xác định cách đo hiệu điện ngõ LM35 → Đơn vị nhiệt độ: °C → Nhiệt độ thay đổi tuyến tính: 10mV/°C Độ xác thực tế: 1/4°C nhiệt độ phịng 3/4°C ngồi khoảng 2°C tới 150°C công suất tiêu thụ 60uA Cảm biến LM35 hoạt động cách cho giá trị hiệu điện định chân Vout (chân giữa) ứng với mức nhiệt độ Như vậy, cách đưa vào chân bên trái cảm biến LM35 hiệu điện 5V, chân phải nối đất, đo hiệu điện chân pin A0 arduino (giống y hệt cách đọc giá trị biến trở), bạn có nhiệt độ (0-100ºC) công thức: float temperature = (5.0*analogRead(A0)*100.0/1024.0); 46 Với LM35, bạn tự tạo cho mạch cảm biến nhiệt độ sử dụng LM35 tự động ngắt điện nhiệt độ vượt ngưỡng tối đa, đóng điện nhiệt độ thấp ngưỡng tối thiểu thông qua module rơ le 3.4 Biến trở Biến trở điện trở thay đổi giá trị Qua tính chất biến trở ứng dụng nhiều xe để thức chức cảm biến cảm biến vị trí bàn đạp ga , cảm biến vị trí bướm ga 3.5 Giao tiếp hai Arduino sử dụng module CAN MCP2515 3.5.1 Sơ đồ nối dây Trên Arduino truyền tín hiệu : Chân Arduino Chân bo mạch A1 Chân tín hiệu cảm biến nhiệt độ A0 Chân tín hiệu biến trở Chân Arduino Chân MCP2515 +5V MPC2515 - VCC GND MPC2515 - GND D10 (SPI_SS) MPC2515 - CS D12 (SPI_MISO) MPC2515 - SO D11 (SPI_MOSI) MPC2515 - SI D13 (SPI_SCK) MPC2515 - SCK 47 Trên Arduino nhận tín hiệu : Chân Arduino Chân MCP2515 +5V MPC2515 - VCC GND MPC2515 - GND D10 (SPI_SS) MPC2515 - CS D12 (SPI_MISO) MPC2515 - SO D11 (SPI_MOSI) MPC2515 - SI D13 (SPI_SCK) MPC2515 - SCK Chân arduino Chân LCD 1602 A5 SCL A4 SDA +5V VCC 48 GND GND 3.5.2 Đoạn chương trình vào Arduino Bên truyền : #include //Library for using SPI Communication #include //Library for using CAN Communication #define potPin A0 #define lm35Pin A2 int potValue=0; float tempValue; // variable to store celcius float vout; // temporary variable to hold sensor reading struct can_frame canMsg1; //pot message struct can_frame canMsg2; // lm35 message MCP2515 mcp2515(10); // chip select pin 10 49 void setup() { Serial.begin(9600); SPI.begin(); //Begins SPI communication mcp2515.reset(); mcp2515.setBitrate(CAN_500KBPS,MCP_8MHZ); //Sets CAN at speed 500KBPS and Clock 8MHz mcp2515.setNormalMode(); canMsg1.can_id = 0xAA; canMsg1.can_dlc = 2; //CAN id as 0xAA for potentiometer //CAN data length as canMsg2.can_id = 0xBB; canMsg2.can_dlc = 1; //CAN id as 0xBB for LM35 //CAN data length as } void loop() { Serial.print(canMsg1.can_id); potValue = analogRead(potPin); tempValue=analogRead(lm35Pin); potValue=map(potValue,0,1023,0,255); tempValue=(tempValue/1023)*5000; vout=tempValue/10; int temp =int(vout); Serial.print("Temp value deg C :"); Serial.println(vout); Serial.print("pot value :"); Serial.println(potValue); canMsg1.data[0] = potValue; //Update pot value in [0] canMsg1.data[1]= 0x00; mcp2515.sendMessage(&canMsg1); //Sends the CAN message delay(200); canMsg2.data[0] = temp; //Update lm35 value in [0] 50 // canMsg1.data[1]= 0x00; mcp2515.sendMessage(&canMsg2); delay(200); } Bên nhận : #include #include //Sends the CAN message //Library for using SPI Communication //Library for using CAN Communication Bên Nhận : #include #include LiquidCrystal_I2C lcd(0x3F,16,2); // set the LCD address to 0x3F for a 16 chars and line display struct can_frame canMsg1; struct can_frame canMsg2; struct can_frame canMsg3; MCP2515 mcp2515(10); // SPI CS Pin 10 void setup() { lcd.init(); //initialize i2c LCD lcd.backlight(); delay(1000); SPI.begin(); Serial.begin(9600); //Begins SPI communication //Begins Serial Communication at 9600 baudrate mcp2515.reset(); mcp2515.setBitrate(CAN_500KBPS,MCP_8MHZ); //Sets CAN at speed 500KBPS and Clock 8MHz mcp2515.setNormalMode(); //Sets CAN at normal mode } void loop() { if (mcp2515.readMessage(&canMsg1) == MCP2515::ERROR_OK) // To receive data (Poll Read) { if(canMsg1.can_id==0xAA) { int x = canMsg1.data[0]; Serial.println(x); lcd.setCursor(1,0); 51 lcd.print("pot value: "); lcd.print(x); delay(200); } } if (mcp2515.readMessage(&canMsg2) == MCP2515::ERROR_OK) // To receive data (Poll Read) { if (canMsg2.can_id==0xBB) { int y = canMsg2.data[1]; Serial.println(y); lcd.setCursor(0,1); lcd.print("lm35_T: "); lcd.print(y); delay(200); } } if (mcp2515.readMessage(&canMsg3) == MCP2515::ERROR_OK) // To receive data (Poll Read) { } delay(20); } 3.6 Kết Quả sau thực mơ hình 52 TÀI LIỆU THAM KHẢO 53 Tiếng Anh [1] Bosch Automotive Electrics and Automotive Electronics: Systems and Components, Networking and Hybrid Drive (Bosch Professional Automotive Information) [2] Wolfhard Lawnrenz, “CAN System Engineering, From Theory to Practical Applications” Trang web [1] https://www.academia.edu/14283909/CONTROLLER_AREA_NETWOR K [2] https://circuitdigest.com/microcontroller-projects/arduino-can-tutorialinterfacing-mcp2515-can-bus-module-with-arduino [3] https://www.electronicshub.org/arduino-mcp2515-can-bustutorial/#:~:text=The%20MCP2515%20CAN%20Bus%20Controller%20is %20a%20sim ple%20Module%20that,shown%20in%20the%20image %20below 54

Ngày đăng: 24/01/2022, 19:27

Xem thêm:

TỪ KHÓA LIÊN QUAN

Mục lục

    CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

    1.1 Lịch sử phát triển mạng CAN

    1.2. Cấu trúc mạng CAN

    1.2.1 Hệ thống nút (node) trong mạng lưới CAN

    1.2.2 Mã hóa tín hiệu truyền đi

    1.2.3 Bộ phận truyền tín hiệu điện và dây dẫn

    1.2.3.1 Truyền tín hiệu điện bằng hai dây dẫn

    1.2.3.2 Truyền tín hiệu điện bằng một dây dẫn

    1.2.3.4 Điện trở hai đầu đường dây truyền tín hiệu

    1.3.1 Các tầng trong giao thức CAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w