1 HỌC VIỆN CÔNG NGHÊ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG KĨ THUẬT ĐIỆN ĐIỆN TỬ BÁO CÁO THIẾT KẾ NGOẠI VI VÀ KỸ THUẬT GHÉP NỐI ĐỀ TÀI Tìm hiểu về chuẩn giao thức CAN NHÓM 8 Họ và tên sinh viên Ngô Thanh Gia[.]
HỌC VIỆN CƠNG NGHÊ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG KĨ THUẬT ĐIỆN ĐIỆN TỬ BÁO CÁO THIẾT KẾ NGOẠI VI VÀ KỸ THUẬT GHÉP NỐI ĐỀ TÀI: Tìm hiểu chuẩn giao thức CAN NHÓM: Họ tên sinh viên: Ngô Thanh Giang – B18DCDT060 Nguyễn Quốc Công - B19DCDT020 Lê Văn Mạnh – B19DCDT138 Lưu Hải Nam - B19DCDT149 Giảng viên hướng dẫn: Dương Quang Duy Hà Nội, năm 2023 LỜI NÓI ĐẦU Hiện thiết kế ngoại vi & kỹ thuật ghép nối bước phát triển Việt Nam Sau kết thúc mơn học này, sinh viên phân biệt chuẩn ghép nối ngoại vi thông dụng COM, LPT, USB, IEEE1394, bên cạnh trình bày cấu tạo nguyên tắc hoạt động số thiết bị ngoại vi bản: chuột, bàn phím, hình, modem, lập trình ghép nối với thiết bị ngoại vi thông qua cổng COM, LPT cổng USB Thông qua môn học Thiết kế ngoại vi & kỹ thuật ghép nối thầy/cô Học viện Cơng nghệ Bưu Viễn thơng giúp cho sinh viên học viện hiểu luyện tập thêm kiến thức số thiết bị ngoại vi Trong trình tiến hành làm báo cáo thực tập, thân nhóm em cố gắng tham khảo tài liệu tìm hiểu thực tế, thời gian kinh nghiệm hạn chế nên báo cáo tránh khỏi thiếu sót Do đó, chúng em mong nhận ý kiến đóng góp nhận xét đánh giá quý báu thầy cô để báo cáo tập lớn nhóm em hồn thiện Chúng em xin chân thành cảm ơn hướng dẫn tận tình chu đáo Thầy DQ Duy giúp đỡ chúng em nhiều để chúng em hoàn thành đồ án Chúng em xin chân thành cảm ơn! Hà Nội, ngày 11 tháng 04 năm 2023 GIỚI THIỆU VỀ CHUẨN GIAO TIẾP CAN Controller Area Network (CAN) giao thức truyền thông nối tiếp hỗ trợ hệ thố ng điều khiển thời gian thực; đường bus truyền tải số (broadcast digital bus) với nhiều Master, thiết kế với tốc độ truyền từ 20kb/s tới 1Mb/s, với ứng dụng tốc độ cao (500kbit/s) tiêu chuẩn hóa ISO/DIS 11898:1993, ứng dụng tốc độ thấp (125kbit/s) tiêu chuẩn hóa ISO 11519-2:1994, với độ ổn định, bảo mật đặc biệt chống nhiễu tốtHệ thống nhúng ứng dụng tích hợp phần ng phần mềm nhằm phục vụ toán chuyên dụng lĩnh vực công nghiệp, y tế, quân CAN công nghệ mạng ghép nối tiếp khởi nguồn thiết kế dùng cho công nghiệp xe ô tô, đặc biệt loại xe Châu Âu CAN phát triển lần Robert Bosch GmbH, Đức vào năm 1986 họ Mercedes yêu cầu phát triển hệ thống liên lạc ba ECU (bộ điều khiển điện t ử) xe Trong hệ thống mạng CAN, liệu truyền nhận Data Frame Data Frame mang liệu từ nút truyền đến nhiều nút nhận.Để thay đổi chức hệ thống nhúng thông thường người ta dựa công cụ pháttriển công việ c chuyên gia phát triển hệ thống nhúng thực thiện Quá trình xây dựng lại chức hệ thống nhúng giống trình thay đổi chức hệ điều hành, thơng thường người ta thay đổi, sửa chữa, thêm, xóa trình điều khiển, hoạt động hệ thống sau tiến hành biên dịch lại cho hệ thống nhúng Ngay từ đời, giao tiếp CAN chấp nhận ứng dụng cách rộng rãi lĩnh vực công nghiệp, chế tạo ô tô Với thời gian, CAN trở nên thông d ụng tính hiệu quả, ổn định, đơn giản, mở đặc biệt chi phí rẻ Ngồi giao thức CAN ứng dụng hoạt động tự động hóa cơng nghiệp hoạt động điều khiển phân phối, truyền tốc độ cao cho ngành công nghiệp xe hơi, máy nông nghiệp, tàu ngầm, dụng cụ y khoa, máy dệt, v.v… I ƯU ĐIỂM CỦA CHUẨN GIAO TIẾP CAN Đơn giản, chi phí thấp: bus CAN có dây giúp kết nối module điều khiển với dễ dàng hơn, dễ lắp đặt dễ sửa chữa, bảo trì có cố Tạo giao thức chung để nhiều nhà cung cấp khác phát triển module điều khiển tương thích với Tính ưu tiên thông điệp (Prioritization of messages): thông điệp truyền từ nút (node) hay trạm (station) bus CAN có mức ưu tiên Khi nhiều thơng điệp truyền bus lúc thơng điệp có mức ưu tiên cao truyền Các thơng điệp có mức ưu tiên thấp tạm dừng truyền lại bus rảnh Việ c xác định mức ưu tiên thông điệp dựa cấu tạo thông điệp chế phân xử quy định chuẩn chuẩn CAN 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 liệu truyền, liệu nhận, … Nhận liệu đa điểm với đồng thời gian: thơng điệp nhận nhiều node khác bus lúc Tất node bus thấy thơng điệp truyền bus Nhiều master (multimaster) Phát báo hiệu lỗi: Mỗi thơng điệp có kèm theo mã CRC (Cyclic Redundancy Code) để thực kiểm tra lỗi Nếu lỗi xuất hiện, node nhận bỏ qua thông điệp lỗi truyền khung báo lỗi (error frame) lên bus CAN Mỗi node bus có đếm quản lý lỗ i truyền nhận riêng để xác định trạng thái lỗi Nếu lỗi xuất q nhiều, m ột node tự động ngắt khỏi bus Ngồi cịn số dạng lỗi khác phát với chuẩn CAN Tự động truyền lại thông điệp bị lỗi bus rảnh: Một thơng điệp truyền bus bị lỗi không mà node truyền thông điệp giữ lại tự động phát lại thơng điệp bus CAN rảnh thành cơng, đảm bảo tính tồn vẹn liệu bus II CÁCH THỨC HOẠT ĐỘNG CỦA CHUẨN GIAO TIẾP CAN • • • • • Sử dụng CSMA/ CD + AMP (Carrier Sense Multiple Access/ Collision Detection with Arbitration on Message Priority) Trước gửi thông điệp, CAN check trước xem BUS có bận khơng, sử d ụng để phát khả trùng lặp Nguyên tắc: Thông điệp truyền từ nút BUS CAN không chứa địa nút truyền nút dự kiến Nội dung gắn nhãn số nhận dạng ID, tất nút nhận thông điệp nút kiểm tra chấp nhận mã ID để kiểm tra thông điệp liên quan không, liên quan xử lý IV ID & TRƯỜNG XÁC ĐỊNH QUYỀN ƯU TIÊN ID thấp mức độ ưu tiên cao, mức độ ưu tiên cao đảm bảo quyền truy cập bus thể thơng điệp Thơng điệp có mức ưu tiên thấp tự động truyền lại chu kỳ bus ho ặc chu kỳ bus tiếp cịn thơng điệp có mức cao chờ gửi Mỗi thơng điệp CAN có mã ID 11 bit (A) 29 bit (B) ID phần nguyên tắc Arbitration Field CAN, trường nằm đầu thông điệp CAN ID xác định loại thông điệp, mức độ ưu tiên thông điệp Các bit thơng điệp mạng CAN gửi dạng cao thấp Các bit thấp chiếm ưu thế, có nghĩa nút cố gắng g ửi mức thấp nút khác cố gửi mức cao, kết bus mức thấp Một nút truyền lắng nghe bus truyền Một nút gửi mức cao Arbitration Field phát mức thấp biết quyền ưu tiên Nó ngừng truyền, nút khác, với thơng điệp có mức độ ưu tiên cao hơn, tiếp tục mà không bị gián đoạn III Hai nút mạng khơng phép gửi thơng điệp có ID Nếu hai nút cố gắng gửi thông điệp với ID thời điểm, trường xác định quyền ưu tiên khơng hoạt động Thay vào đó, nút truyền phát hi ện thơng điệp bị bóp méo bên ngồi Arbitration Field Sau đó, nút sử dụng trường xử lý lỗi CAN, trường hợp này, cuối dẫn đến việc nút truyền bị tắt (chế độ tắt bus) IV V CÁC LOẠI CAN FRAME • Data Frame (khung liệu): khung mang liệu từ truyền liệu đến nhận liệu • Remote Frame (khung yêu cầu hay điều khiển): khung truyền từ Node để yêu cầu liệu từ Node khác, node khác nh ận yêu cầu truyền lại liệu có ID (Identifier) trùng với ID gửi Remote Frame • Error Frame (khung lỗi): khung truyền Node Node phát lỗi từ Bus • Overflow Frame (khung báo tràn): Node CAN Bus truyền phát Bus rảnh Hoặc Node nh ận nhiều liệu khơng xử lý kịp, gửi Frame để Node khác không gửi thêm liệu cho VI CÁC LOẠI GIAO THỨC CAN CAN tiêu chuẩn (CAN 2.0A): Standard Data Frame CAN mở rộng (CAN 2.0B): Extra Data Frame Data Frame CAN 2.0A Data Frame CAN (Phiên 2.0A) tiêu chuẩn bao gồm bảy trường bit khác nhau: Trường bắt đầu khung (Start Of Frame Field – SOF) Với định dạng chuẩn CAN 2.0 trường bắt đầu vị trí bit khung Trường chiếm bit liệu Bit Dominant Bit (mức logic 0) đánh dấu bắt đầu Data Frame Trường xác định quyền ưu tiên (Arbitration Field) Định dạng vùng xác định quyền ưu tiên khác dạng khung chuẩn khung mở rộng • Định dạng chuẩn: vùng xác định quyền ưu tiên có độ dài 12 bit, bao gồm 11 bit ID bit RTR • Định dạng mở rộng: trường xác định quyền ưu tiên có độ dài 32 bit, bao gồm có 29 bit ID, bit SRR, bit IDE bit RTR Trong đó: Bit RTR (Remote Transmission Request) • • • • Là bit dùng để phân biệt khung Data Frame hay Remote Frame Nếu Data Frame, bit (Dominant Bit) Nếu Remote Frame, bit (Recessive Bit) Vị trí bit ln nằm sau bit ID Trường hợp Data Frame Remote Frame có ID gửi đ ồng thời Data Frame ưu tiên Bit SRR (Substitute Remote Request) • Bit có khung mở rộng • Bit có giá trị (Recessive Bit) • So với vị trí tương ứng khung chuẩn bit trùng với vị trí bit RTR nên gọi bit thay (Substitute) Giả sử có hai Node truyền, Node truyền Data Frame chuẩn, mộ t Node truyền Data Frame mở rộng có ID giống Node truyền khung chuẩn thắng phân xử quyền ưu tiên đến vị trí sau ID, khung chuẩn bit RTR = 0, khung mở rộng bit SRR = Như vậy, khung chuẩn chiếm ưu so với khung mở rộng có ID Bit IDE (Identifier Extension) • Đây bit phân biệt loại khung chuẩn khung mở rộng: IDE = quy định khung chuẩn, IDE = quy định khung mở rộng • Bit nằm trường xác định quyền ưu tiên với khung mở rộng trường điều khiển với khung chuẩn Trường điều khiển (Control Field) Khung chuẩn khung mở rộng có định dạng khác trường này: • Khung chuẩn gồm IDE, r0 DLC (Data Length Code) Khung mở rộng gồm r1, r0 DLC Trong đó: Bit IDE Dùng phân biệt loại khung (đã trình bày trên) Bit r0, r1 (hai bit dự trữ) Tuy hai bit phải truyền Recessive Bit truyền b ộ nhận không quan tâm đến giá trị bit Bộ nhận nhận tổ hợp 00, 01, 10 11 r1 r0 khơng coi lỗi mà bỏ qua nhận thơng điệp bình thường DLC (Data Length Code) • Có độ dài bit quy định số byte trường liệu Data Frame • Chỉ mang giá trị từ đến tương ứng với trường liệu có t đến byte liệu Data Frame khơng có byte liệu DLC = • Giá trị lớn khơng phép sử dụng Hình mơ tả loại mã bit mà DLC chứa để quy định số byte trường d ữ liệu Trường liệu (Data Field) Trường có độ dài từ đến byte tùy vào giá trị DLC trường ều khiển Trường kiểm tra (Cyclic Redundancy Check Field – CRC) Trường kiểm tra hay trường CRC gồm 16 bit chia làm hai phần là: • CRC Sequence: gồm 15 bit CRC • CRC Delimiter: Recessive Bit làm nhiệm vụ phân cách trư ờng CRC với trường ACK • Mã kiểm tra CRC phù hợp cho khung mà chuỗi bit kiểm tra có chiều dài 127 bit, mã thích hợp cho việc phát trường hợp sai nhóm (Bus Error) Ở đây, tổng bit từ trườ ng bắt đầu (SOF) đến trường liệu (Data Field) tối đa 83 bit (khung định dạng chuẩn) 103 bit (khung định dạng mở rộng) => Trường CRC bảo vệ thông tin Data Frame Remote Frame bằ ng cách thêm bit kiểm tra dự phòng đầu khung truyền Ở đầu khung nhận, tính tốn CRC truyền nhận liệu so sánh kết với CRC Sequence mà nhận được, khác tức có lỗi, giống tức nhận từ trường SOF đến trường liệu Trường báo nhận (Acknowledge Field – ACK) Trường báo nhận hay trường ACK có độ dài bit bao gồm hai phần ACK Slot ACK Delimiter • ACK Slot: có độ dài bit, Node truyền liệu thiết lập bit Recessive Khi nhiều Node nhận xác giá trị thơng điệp (khơng có lỗi so sánh CRC Sequence trùng khớp) báo lại cho truyền cách truyền Dominant Bit vị trí ACK Slot để ghi đè lên Recessive Bit truyền • ACK Delimiter: có độ dài bit, ln Recessive Bit Như vậy, ta thấy ACK Slot đặt hai Recessive Bit CRC Delimiter ACK Delimiter Trường kết thúc (End Of Frame Field – EOF) Trường EOF trường thông báo kết thúc Data Frame hay Remote Frame Trường gồm Recessive Bit Cách gửi – nhận liệu hệ thống mạng giao tiếp CAN Trong mạng CAN, thành phần nối với mạng có quyền ngang việc truyền nhận thông tin ( multi master ), thành phần truyền nhận thông tin mà chúng cần từ thành phần khác Tuy nhiên, thứ tự truyền tùy thuộc vào độ ưu tiên thông tin mà chúng muốn truyền ( quy định cấu trúc tập tin truyền đi), để chống tải có nhiều thành phần truyền nhận Mỗi module gắn vào mạng lưới liệu có khả gửi nhậ n tín hiệu chúng có địa mạng lưới cho phép module nhận thông tin đầu vào liệu cần thiết để hoạt động Khi module truyền thông tin qua mạng lưới, thơng tin mã hóa để tất module khác nhận đến từ đâu gửi thơng tin Dữ liệu gửi loạt bit kỹ thuật số bao gồm “0” “1 “ Thông số điện áp thấp tương ứng với giá trị “0”, giá trị đo điện áp cao tương ứng với “1” Thông thường điện áp thực tế hoạt độ ng phạm vi 5-7 volt Thông thường module điều khiển cụm mô đun xe giao nhiệm vụ quản lý lưu lượng mạng Khi module thấy thông điệp tới, nhìn vào bit dịng liệu Nếu bit “0”, ưu tiên thông điệp khác, gọi “trội tin nhắn” Nếu bit “1” cho ưu tiên thấp đư ợc gọi “lặn tin nhắn” Như vậy, thông điệp ưu tiên cao thông qua đến địa ểm dự định thơng điệp ưu tiên thấp tạm thời bị chặn “giao thông đường truyền giảm tốc” Có thể thấy mạng giao tiếp CAN giúp xe tơ bình thường trở nên “thông minh” tiện lợi nhiều Hi vọng qua viết trên, bạn hiểu mạng giao tiếp CAN tơ 10 VII Ví Dụ 1.Sơ đồ khối 2.Mạch nguyên lí 11 12 Nguyên lí hoạt động: mạch hoạt động dựa truyền nhận liệu thông qua giao tiếp can khung tin gửi qua bus bao gồm byte điều khiển đèn led byte chứa liệu nhiệt độ, độ ẩm Arduino gửi liệu trạng thái nút nhấn đến arduino số 2, đồng thời kiểm tra có liệu nhiệt, ẩm bus hiển thị liệu LCD Arduino nhận liệu nút nhấn đáp ứng cách bặt tắt led tương ứng, đồng thời gửi liệu cảm biến đo đến arduino arduino trao đổi qua lại thông tin liên tục bus cách đồng thời, liệu kiểm tra phương pháp Polling 3.Lưu đồ thuật toán 13