Xem mẫu

Hội nghị toàn quốc lần thứ 7 về Cơ Điện tử - VCM-2014 Thiết kế công cụ đọc thông tin truyền thông trên mạng CAN Design of CAN Bus Data Reader Võ Duy Thành, Lê Tiến Sự, Nguyễn Hà Thành Long, Tạ Cao Minh Trường Đại học Bách Khoa Hà Nội Email: thanh.voduy@hust.edu.vn, su.letien91@gmail.com, thanhlonghl91@gmail.com, minh.tacao@hust.edu.vn Tóm tắt Giao thức truyền thông CAN (Controller Area Network) ban đầu được sử dụng để truyền thông tin giữa các ECU của ô tô. Tuy nhiên, do những ưu điểm của nó nên ngày nay, mạng CAN được sử dụng rất rộng rãi trong các ngành khác như robot, CNC, biến tần, lọc tích cực…. Bài báo đề xuất giải pháp thiết kế công cụ thu thập thông tin các bản tin truyền thông theo chuẩn CAN và ứng dụng trong việc thu thập các thông tin truyền thông trên xe ô tô điện nhằm mục đích giải mã các bản tin. Công cụ được xây dựng trên nền tảng Vi điều khiển dsPIC30F401 của hãng Microchip kết hợp với việc lập trình thiết kế giao diện trên máy tính phục vụ cho việc lưu trữ và phân tích thông tin thu thập. Thông tin truyền thông giữa dsPIC30F4011và máy tính sử dụng kết nối USB thông qua vi điều khiển trung gian PIC18F2550. Bộ công cụ được ứng dụng trên xe ô tô điện i-MiEV, đã có thể đọc đầy đủ, chính xác và lưu trữ các thông tin truyền thông trên mạng CAN của xe ô tô. chuẩn ISO 11898. Hiện nay, hầu như tất cả các xe ô tô đều sử dụng chuẩn CAN để truyền thông giữa các bộ điều khiển. Có thể tổng hợp một số ưu điểm khi một hệ thống sử dụng CAN như sau [2],[3]:  Gọn nhẹ và kinh tế hơn so với các chuẩn thông dụng. CAN là chuẩn truyền 2 dây, không đòi hỏi phải có xung đồng bộ để truyền nhận thông tin.  Phù hợp với các ứng dụng yêu cầu thời gian thực. Mạng CAN có thệ thống phân xử dựa trên ID của bản tin giúp cho việc truyền nhận tức thời của các bản tin có mức ưu tiên cao.  Tăng mức độ an toàn của hệ thống. Việc một module trong mạng CAN bị lỗi không gây ra ảnh hưởng tới các module còn lại, trừ khi hai module có liên hệ trực tiếp đến nhau và không thể hoạt động nếu thiếu một module còn lại. Đồng thời, việc thêm/bớt module trong hệ thống có thể được thực hiện ngay khi hệ thống đang làm việc mà không gặp vấn đề gì cho hệ thống điện. Abstract: CAN bus (Controller Area Network) is initially designed for automotive applications, but it has been now widely used in other industries e.g. robotics, CNC, inverters, power active filters…. In this paper, we propose a design of a device that helps collecting information transferred on CAN bus especially in electric vehicle for decoding CAN data. The device uses a Digital Signal Controller dsPIC30F4011 of Microchip as the main communication controller. A computer software is also built for saving and investigating collected data. The dsPIC30F4011 communicates with computer through USB connection that uses another Microchip’s microcontroller PIC18F2550 as a USB controller. The performance of the device is explainedby sucessfully recording and storing all CAN data on electric vehicle i-MiEV. 1. Mở đầu CAN là một giao thức truyền thông nối tiếp được phát triển lần đầu tiên bởi Công ty Robert Bosch vào năm 1983 và được công nhận chính thức vào năm 1986 bởi Hội các Kỹ sư Ô tô (SAE). Năm 1991, Bosch ban hành phiên bản CAN 2.0 và sau đó 2 năm trở thành H.1 Xe ô tô điện i-MiEV Sự phát triển của đất nước yêu cầu phải có nền công nghiệp ô tô vững mạnh. Chủ trương nội địa hóa từng phần sản phẩm nhập khẩu đồng nghĩa với việc thay thế dần các thành phần trong sản phẩm nhập khẩu bằng các đối tượng sản xuất trong nước. Đối với ô tô, muốn thay thế được các đối tượng trong một sản phẩm thương mại đòi hỏi người nghiên cứu phải “hiểu” các thông tin truyền thông trong mạng CAN trên xe. Điều này làm nảy sinh yêu cầu về một công cụ giúp đọc và thu thập thông tin truyền thông trên xe ô tô, từ đó có thể giải mã được các thông tin này. Trên thực tế, đã có một số nơi sản xuất được các sản phẩm tương tự như các module rời hoặc PCI Card của hãng National Instruments [1]. Tuy nhiên, giá thành của các sản phẩm này thường rất cao và tích hợp nhiều tính năng không sử dụng tới trong trường hợp chỉ với mục đích đọc thông tin để giải mã. VCM-2014 Hội nghị toàn quốc lần thứ 7 về Cơ Điện tử - VCM-2014 Với mục đích cung cấp cho người nghiên cứu một công cụ có thể đọc thông tin mạng CAN để phục vụ công việc giải mã các thông tin truyền thông trong ô tô và xa hơn là thay thế các ECU hoặc bộ điều khiển trên xe ô tô thương phẩm, bài báo trình bày thiết kế công cụ thu thập thông tin trên mạng truyền thông CAN với giá thành thấp và sử dụng các linh kiện sẵn có trên thị trường Việt Nam. Công cụ này sẽ được ứng dụng để thu thập thông tin trên xe ô tô điện i-MiEV như trong H.1. Đây là xe ô tô thuần túy chạy bằng năng lượng điện của hãng xe Nhật Bản Mitsubishi. Trong bài báo này, các tác giả trình bày bản thiết kế một bộ công cụ gồm cả phần cứng và phần mềm trên máy tính có nhiệm vụ thu thập toàn bộ các bản tin truyền thông trên mạng CAN trong ô tô bao gồm mã định danh ID của bản tin, nội dung bản tin, thời điểm xuất hiện bản tin. Các thông tin này sau đó được gửi về máy tính để phân tích và lưu trữ. Phần cứng của bộ công cụ được xây dựng trên nền tảng Vi điều khiển dsPIC30F4011 và PIC 18F2550 của hãng Microchip; phần mềm trên máy tính được viết bằng ngôn ngữ CVI do National Instruments phát triển. Phần còn lại của bài báo được tổ chức như sau. Phần 2 trình bày cấu hình thiết kế của hệ thống. Phần 3 là một số thông tin cơ bản và quan trọng về chuẩn truyền thông CAN.Thiết kế phần cứng và lập trình cho các Vi điều khiển được trình bày trong phần 4. Phần 5 đưa ra thiết kế phần mềm hiển thị và lưu trữ dữ liệu trên máy tính. Các kết quả của nghiên cứu được thể hiện trong phần 6. Cuối cùng, kết luận bài báo được trình bày trong phần 7. 2. Cấu hình hệ thống Cấu hình của hệ thống đọc dữ liệu bản tin CAN được trình bày trong H.2. Trong đó, toàn bộ hệ thống có thể chia làm 2 phần. Phần cứng gồm mạch vi điều khiển và phần mềm quản lý trên máy tính. Phần cứng của hệ thống với các thành phần chính gồm: Vi điều khiển dsPIC30F4011 và chíp MCP2551 được sử dụng để thực hiện giao tiếp CAN với đối tượng. Trong đó, dsPIC30F4011 đóng vai trò như một bộ điều khiển CAN, MCP2551 hoạt động như một bộ thu nhận tín hiệu và đảm bảo mức điện áp hoạt động của tín hiệu. Việc giao tiếp với máy tính được thực H.2 Mô hình hệ thống thu thập thông tin mạng CAN Như vậy, bất cứ khi nào trên mạng CAN của ô tô có xuất hiện bản tin từ bất kỳ thành phần nào phát ra, công cụ này đều phải thu nhận được và gửi lên máy tính để phân tích và lưu trữ. 3. Truyền thông CAN Đặc trưng của CAN là phương pháp định địa chỉ và giao tiếp hướng đối tượng, trong khi hầu hết các hệ thống truyền thông khác đều giao tiếp dựa vào địa chỉ các trạm. Mỗi thông tin trao đổi trong mạng được coi như một đối tượng và được gán một mã ID. Thông tin được gửi lên bus kiểu truyền thông báo với các độ dài khác nhau. Nội dung mỗi thông báo được các trạm phân biệt qua ID được cấp. Mã ID không nói lên địa chỉ đích của thông báo mà chỉ biểu diễn ý nghĩa của dữ liệu thông báo. Vì thế, mỗi trạm trên mạng có thể tự quyết định tiếp nhận và xử lý thông báo hay không tiếp nhận thông báo qua phương thức lọc thông báo, nhờ vậy nhiều trạm có thể nhận đồng thời nhiều thông báo và có các phản ứng khác nhau. MCU hiện thông qua giao tiếp USB. Tuy nhiên, do dsPIC30F4011 không hỗ trợ chuẩn USB nên vi điều khiển PIC18F2550 được sử dụng để làm bộ điều khiển giao tiếp USB giữa mạch phần cứng với máy tính. Việc truyền nhận dữ liệu giữa dsPIC30F4011 với PIC18F2550 được thực hiện thông qua chuẩn truyền thông phổ biến là SPI. Phần mềm trên máy tính được xây dựng trên nền tảng ngôn ngữ lập trình CVI (C for Virtual Instruments) do 120Ω National Instruments phát triển. Driver USB cho mạch CANController Node Transceiver Node 120Ω phần cứng khi kết nối với máy tính cũng sẽ được CVI H.3 Ghép nối trong mạng CAN hỗ trợ thực hiện. VCM-2014 Hội nghị toàn quốc lần thứ 7 về Cơ Điện tử - VCM-2014 H.4 Cấu trúc bản tin CAN Mạng CAN sử dụng 2 dây để truyền dữ liệu gồm CAN-H (hoặc CAN-HI) và CAN-L (hoặc CAN-LO). Ở đầu và cuối hệ thống mạng, các điện trở được nối để tránh hiện tượng phản xạ tín hiệu trên đường truyền. Trong xe ô tô, các ECU được nối chung vào hệ thống mạng CAN, mỗi một ECU phải bao gồm một bộ thu nhận tín hiệu và một bộ điều khiển CAN như trong H.3 thể hiện. Muốn trao đổi thành công dữ liệu trên mạng CAN, các phần tử kết nối với mạng cần phải được cài đặt tốc độ giống nhau. Tốc độ cao nhất mà mạng CAN đạt được là 1Mbit/s, tuy nhiên, để đảm bảo độ ổn định, trong xe ô tô nói chung thường sử dụng tốc độ 500kbit/s. Bản tin CAN có thể có 2 dạng (còn gọi là 2 dạng khung bản tin) gồm: dạng khung chuẩn với 11 bit dành cho ID và dạng khung mở rộng với 29 bit ID (gồm 11 bit của khung chuẩn và thêm 18 bit mở rộng). phân cách. Dãy bit đầu vào để tính bao gồm bit khởi đầu khung, các bit phân xử, vùng điều khiển và vùng dữ liệu.  Vùng xác nhậc ACK (Acknowlegment) gồm 2 bit để các thành phần trên mạng CAN thực hiện kiểm tra mã CRC.  Kết thúc khung được đánh dấu bằng 7 bit lặn. Các thành phần còn lại của 2 dạng khung là giống nhau. Về cơ bản, cấu trúc của một bản tin CAN như thể hiện trong H.4 gồm các thành phần sau:  Khởi đầu khung là một bit trội và đánh dấu khởi đầu của một bản tin. Tất cả các thành phần kết nối với mạng CAN sẽ phải đồng bộ hóa dựa vào bit khởi đầu này.  Các bit ID của bản tin, còn được gọi là các bit phân xử. Các bit ID ngoài việc được sử dụng để xác định đối tượng của bản tin, nó còn được sử dụng để xác định mức ưu tiên, quyết định quyền truy nhập bus khi có nhiều thông tin được gửi đi đồng thời. Vùng bit phân xử có chiều dài 12 bit với dạng khung chuẩn và 32 bit với dạng khung mở rộng, trong đó mã ID dài 11 hoặc 29 bit. Bit cuối cùng của ô phân xử là bit RTR (Remote H.5 Vùng ID được sử dụng để xác định mức ưu tiên Trong quá trình hoạt động, nếu 2 thành phần cùng gửi bản tin lên mạng CAN tại cùng một thời điểm, bản tin nào có ID thấp hơn, bản tin đó có mức ưu tiên cao hơn và được quyền sử dụng mạng để gửi đi yêu cầu hoặc dữ liệu. Ví dụ như trong H.5, có 2 thiết bị cùng sử dụng mạng CAN tại cùng một thời điểm. Tuy nhiên, chỉ có thiết bị 1 có ID thấp hơn được sử dụng mạng còn thiết bị 2 phải tạm dừng (tại thời điểm số 3). Đây chính là ưu điểm của giao thức CAN so với các chuẩn truyền thông khác. 4. Thiết kế module thu thập dữ liệu CAN 4.1. Thiết kế phần cứng Nhiệm vụ của module bao gồm:  Kết nối với mạng CAN thông qua chuẩn ODB2 Transmission Request), dùng để phân biệt giữa khung dữ liệu (bit trội) và khung yêu cầu dữ liệu (bit lặn).  Vùng điều khiển dài 6 bit, trong đó 4 bit cuối mã hóa chiều dài dữ liệu.  Vùng dữ liệu có chiều dài từ 0 đến 8 byte, trong đó mỗi byte được truyền đi theo thứ tự từ bit có trọng số cao nhất (MSB) đến bit có trọng số thấp nhất (LSB).  Vùng kiểm soát lỗi CRC bao gồm 15 bit được thực hiện theo phương pháp CRC và 1 bit lặn (dạng chuẩn cắm dây trên ô tô)  Thu nhận toàn bộ các bản tin truyền thông trên mạng CAN  Tách và xác định được các trường ID và Data của các bản tin  Xác định thời gian các bản tin được truyền trên hệ thống (Time Stamp) để tính chu kỳ  Truyền thông tin nhận được gồm ID, Data và Time Stamp lên máy tính thông qua chuẩn USB thông dụng. VCM-2014 Hội nghị toàn quốc lần thứ 7 về Cơ Điện tử - VCM-2014 H.6 Mạch nguyên lý dsPIC30F4011 và CAN Tranceiver MCP2551 Để thực hiện được các nhiệm vụ trên, giải pháp đưa ra trên hình 5 được sử dụng. Trong đó, IC MCP2551 [4] được sử dụng như một bộ thu phát CAN và là kết nối trung gian giữa Vi điều khiển dsPIC30F4011 [5] với hệ thống CAN trên ô tô. Vi điều khiển PIC18F2550 [6] đảm nhận việc kết nối với máy tính thông qua chuẩn USB và kết nối với Vi điều khiển trung tâm dsPIC30F4011 thông qua giao thức SPI.H.6 mô tả kết nối giữa Vi điều khiển trung tâm dsPIC30F4011 với IC giao tiếp CAN MCP2551. Bộ điều khiển CAN Controller được tích hợp trong dsPIC4011 và đưa ra tín hiệu ra ngoài thông qua các chân C1RX (nhận dữ liệu) và C1TX (truyền dữ liệu). Mạch điều khiển được kết nối với mạng CAN bên ngoài thông qua một cổng DB9 với các kết nối tương thích với chuẩn ODB2 trên ô tô.Giao tiếp với máy tính được thực hiện thông qua kết nối USB trực tiếp từ vi điều khiển PIC18F2550. Giữa PIC18F2550 với Vi điều khiển trung tâm được kết nối thông qua các chân SDI, SDO và SCK của giao thức SPI. Trong H.7, LCD được sử dụng cho mục đích hiển thị tạm thời thông tin nhận được và gỡ rối trong quá trình lập trình cho các Vi điều khiển. 4.2. Thiết kế phần mềm cho các Vi điều khiển 4.2.1. Thuật toán điều khiển cho dsPIC30F4011 H.7 Kết nối giữa PIC18F2550 thực hiện giao tiếp USB VCM-2014 Hội nghị toàn quốc lần thứ 7 về Cơ Điện tử - VCM-2014 H.8 Cài đặt tốc độ Baud 500kbit/s Như đã đề cập trong các yêu cầu của mạch thu thập thông tin CAN, ngoài yêu cầu về ID và Data của bản tin, mạch còn phải cung cấp cả mốc thời gian của các bản tin để phục vụ cho việc xác định chu kỳ của các bản tin cũng như thời điểm xuất hiện của bản tin so với các bản tin khác. Vì vậy, một bộ định thời được sử dụng để tạo ngắt sau mỗi khoảng thời gian 1ms. Giá trị đếm cần nạp vào thanh ghi định thời được tính theo phương trình (1). = (2 − 1) − . . . (1) Trong đó, là tần số thạch anh sử dụng, là giá trị bộ nhân tần số, là giá trị bộ chia tần số và là khoảng thời gian cần ngắt (1ms trong trường hợp này). H.9 Lưu đồ thuật toán chương trình chính trên dsPIC30F4011 Đồng thời do các bản tin trong hệ thống CAN trên ô tô được truyền nhận ở tốc độ Baud 500kbit/s, nên cần thiết phải có một số thiết lập cấu hình trong các thanh ghi liên quan tới bộ điều khiển truyền thông CAN trong dsPIC30F4011. Tốc độ truyền thông trên CAN được xác định theo số lượng tử thời gian (Time quanta). Để truyền 1 bit dữ liệu, mạng CAN sử dụng 20 và phân bố thành các giai đoạn như trình bày trong H.8. Thời gian được xác định theo phươnng trình (2). = 2. + 1 (2) Trong đó, là bộ chia tần số Baud, là tần số xung đồng hồ cấp cho module CAN trong vi điều khiển. Trong trường hợp này, để tạo được tốc độ Baud 500kbit/s thì = 100 . H.10 Lưu đồ chương trình trên PIC18F2550 VCM-2014 ... - tailieumienphi.vn
nguon tai.lieu . vn