Chuẩn giao tiếp CAN docx HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG BÁO CÁO MÔN HỌC THIẾT KẾ NGOẠI VI VÀ KỸ THUẬT GHÉP NỐI Đề số 08 Tìm hiểu về chuẩn giao tiếp CAN Giảng viên hướng dẫn Cô T T T Hà Sinh viên Vũ Đình Long B18DCDT138 Hầu Nhật Hoa B18DCDT082 Đào Công Minh B18DCDT149 Nhóm môn học Nguyễn Đắc Hưng 02 B18DCDT102 Hà Nội, tháng 3 năm 2022 2 Mục lục I Khái niệm 1 II Lịch sử phát triển 1 III Kiến trúc của CAN 2 IV Ứng dụng của CAN 2 1 Sử dụng trong chế tạo phương tiện giao thông (thời kỳ đầu).
Trang 1BÁO CÁO MÔN HỌC: THIẾT KẾ NGOẠI VI VÀ KỸ THUẬT GHÉP NỐI
Đề số 08: Tìm hiểu về chuẩn giao tiếp CAN
Giảng viên hướng dẫn: Cô T.T.T Hà
Nhóm môn học:
Nguyễn Đắc Hưng 02
B18DCDT102
Hà Nội, tháng 3 năm 2022
Trang 2Mục lục
1 Sử dụng trong chế tạo phương tiện giao thông (thời kỳ đầu) 2
5 ID & Trường xác định quyền ưu tiên (Arbitration Field) 7
VII Ưu điểm và nhược điểm của chuẩn giao tiếp CAN 11
Trang 3I.Khái niệm
Controller Area network (CAN bus) là một chuẩn bus ổn định dùng cho
các phương tiện giao thông, đặc biệt là xe hơi CAN được thiết kế để các vi điều khiển và các thiết bị giao tiếp với nhau mà không cần thông qua máy tính CAN là một giao thức hoạt động dựa trên các gói tin (message-based protocol), ban đầu được thiết kế ghép kênh (multiplex) các dây điện trong ô tô để tiết kiệm số lượng dây dẫn, nhưng sau đó được sử dụng rộng rãi hơn trong các trong các hệ thống tự động hóa công nghiệp hay hàng không
CAN cho phép các module khác nhau và các máy tính trên xe ô tô nói chuyện với nhau Nó như một nhóm các đường dẫn với tốc độ rất cao cho phép các
dữ liệu và các lệnh được nén qua lại từ một module khác nhau Điều này cho phép các hệ thống như hệ thống điều khiển điện tử của hệ thống động cơ ECU, hệ thống phanh chống bó cứng ABS, hệ thống kiểm soát độ bám đường, hệ thống kiểm soát tay lái, hệ thống cân bằng điện tử, hệ thống treo điện tử, hệ thống kiểm soát làm lạnh tự động, module điều khiển ánh sáng và hàng chục, hàng trăm hệ thống khác… tất cả được kết nối với nhau bằng điện tử
II.Lịch sử phát triển
CAN được phát triển lần đầu tiên bởi Robert Bosch GmbH, Đức vào năm 1986 khi
họ được Mercedes yêu cầu phát triển một hệ thống liên lạc giữa ba ECU (bộ điều khiển điện tử) trên xe Họ nhận thấy rằng UART không còn phù hợp trong tình huống này vì nó được sử dụng trong giao tiếp điểm – điểm Nhu cầu về một hệ thống liên lạc đa chủ trở nên cấp thiết Bởi vậy, mạng CAN đầu tiên đã xuất hiện vào năm 1987 bởi Intel chế tạo Tóm tắt lịch sử:
● Năm 1983: Bắt đầu dự án phát triển mạng trên xe hơi trong nội bộ hãng Bosch
● Năm 1986: Chính thức giới thiệu giao thức CAN
● Năm 1987: Những chíp điều khiển CAN đầu tiên xuất hiện ở nhà sản xuất linh kiện bán dẫn Intel và Philips
● Năm 1991: Bosch xuất bản thông số kỹ thuật CAN 2.0
● Năm 1992: Thành lập nhóm các nhà sử dụng và sản xuất CAN quốc tế: Hội CAN tự động hóa (CiA) Hội CiA xuất bản giao thức Lớp ứng dụng CAN (CAN Application Layer, CAL) Những chiếc xe Mercedes-Benz đầu tiên được trang bị CAN xuất hiện
● Năm 1993: Xuất bản tiêu chuẩn ISO 11898
● Năm 1994: CiA tổ chức Hội nghị CAN quốc tế lần thứ nhất (iCC) Allen-Bradley giới thiệu giao thức DeviceNet
● Năm 1995: Xuất bản Tiêu chuẩn ISO 11898 sửa đổi (định dạng khung mở rộng) CiA xuất bản giao thức CANopen
Trong đó:
CiA (CAN in Automation): Là nhóm các nhà sản xuất và sử dụng trên thế giới phát triển và hỗ trợ CANopen và các giao thức CAN cơ bản lớp cao hơn khác Đây là tổ chức phi lợi nhuận được thành lập từ năm 1992 để cung cấp thông tin về công nghệ CAN cơ
Trang 4bản, sản xuất và tiếp thị Có khoảng 500 công ty là thành viên của tổ chức phi lợi nhuận này và có trụ sở chính đặt tại Nuremberg, Đức
DeviceNet và CANopen: là hai chuẩn quy định hoạt động của CAN ở lớp cao hơn (Application Layer) dựa trên chuẩn CAN (Chuẩn CAN quy định việc thực thi giao thức ở lớp Liên kết dữ liệu (Data Link Layer) và lớp vật lý (Physical Layer))
III.Kiến trúc của CAN
CAN là một bus truyền thông nối tiếp (serial bus) có thể chứa nhiều master (multi-master) để kết nối các ECU (Electronic Control Unit) 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 Trên bus, một node có thể giao tiếp với các dạng thiết bị như PLD hay máy tính nhúng (embedded computer)
(ví dụ mô hình sử dụng CAN trên phương tiện giao thông)
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 trở kháng đặc tính (characteristic impedance) 120 Ω Hệ thống bus này xác định mức logic dựa trên sai biệt điện áp (differential signals)
IV.Ứng dụng của CAN
1 Sử dụng trong chế tạo phương tiện giao thông (thời kỳ đầu)
- Khi các hãng xe yêu cầu phát triển một hệ thống liên lạc giữa ba ECU (bộ điều khiển điện tử) trên xe Họ nhận thấy rằng UART không còn phù hợp trong tình huống này vì nó được sử dụng trong giao tiếp điểm – điểm Nhu cầu về một hệ thống liên lạc đa chủ trở nên cấp thiết
- 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 Nó cung cấp tốc độ truyền thông tốc
độ cao lên đến 1 Mbits / giây do đó cho phép điều khiển thời gian thực
Trang 5Ngoài ra, tính năng hạn chế lỗi và phát hiện lỗi làm cho nó đáng tin cậy hơn trong môi trường nhiễu nghiêm trọng
2 Mạng điều khiển nhúng
- Tự động hóa công nghiệp, ứng dụng y tế, xây dựng tự động hóa, máy dệt, máy móc sản xuất
- Tự động hóa trong nhà máy: việc điều khiển tự động hóa các thiết bị có thể sử dụng giao thức DeviceNet, một giao thức xay dựng trên chuẩn CAN
- Hệ thống thang máy: Các bo điều khiển thông tin với nhau qua bus CAN
ở các tầng và bo mạch chính
Trang 6- Trong bệnh viện, mạng CAN có thể sử dụng để điều khiển các thiết bị trong phòng như đèn, bảng điện tử, máy nội soi, máy X-quang, camera, máy in… (giao thức có thể sử dụng là CANOpen)
V.Cách thức hoạt động, tổ chức của CAN
CAN sử dụng CSMA / CD + AMP (Carrier Sense Multiple Access / Collision Detection with Arbitration on Message Priority) 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
1 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
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
Trang 72 Cách truyền dữ liệu
Chọn chế độ trong 4 chế độ Data Frame, Remote Frame, Error Frame và Overflow Frame
Các chế độ đều có cách truyền dữ liệu giống nhau, ta xét chế độ Data Frame (bit RTR =
0)
Khi thiết lập CAN, đầu tiên ta chọn cách truyền:
● chế độ CAN 2.0A – RTR= 0, IDE = 0
● chế độ CAN 2.0B – RTR= 0, SRR = 1, IDE = 1, cấu hình thêm ID mở rộng (18 bit)
Sau khi thiết lập, cấu hình ID cho từng Node, cấu hình các bit DLC để chọn số dữ liệu sẽ
truyền trong 1 nhịp
Ta chọn chế độ Data Frame, CAN 2.0A và truyền 8 byte dữ liệu (~DLC = 0100)
Khung truyền dữ liệu của Chuẩn giao tiếp CAN
Khi truyền dữ liệu, bit SOF sẽ bắt đầu, sau đó dựa trên các thông số thiết lập sẽ nhảy vào chế độ cụ thể Ở đây ta nhảy vào chế độ truyền Data Frame với CAN 2.0A, ở các Node trên mạng lưới sẽ so sánh địa chỉ ID của chúng Nếu ID giống sẽ bắt đầu nhận dừ liệu từ Node phát Khi nhận xong dữ liệu (8 byte) sẽ tiến hành check hàng (so sánh trường CRC
ở Node thu và Node phát) Nếu đúng thì cho bit ACK về 0, rồi kết thúc nhịp truyền bằng bit kết thúc EOF Quá trình truyền hoàn tất
3 Độ chính xác của chuẩn giao tiếp CAN
2 đường dây CAN_H và CAN_L đều để truyền dữ liệu Ở đầu ra của bộ thu phát CAN, hình ảnh bên dưới, sẽ điều chế tín hiệu TX thành 2 dạng, đưa vào CAN_H
và CAN_L
Trang 8Các thành phần của 1 Node Trên CAN_H và CAN_L tín hiệu sẽ có dạng đối xứng với nhau Đối xứng để làm
gì, đối xứng để trên đương dây sai số tạo ra trên CAN_H và CAN_L là như nhau
Khi đưa ngược lại bộ thu phát CAN để biến đổi, đưa tín hiệu tổng hợp ra dây RX.
Tín hiệu tổng hợp trên dây RX chính là hiệu của CAN_H và CAN_L Do sai số tạo
ra trên CAN_H và CAN_L là như nhau, nên khi trừ tín hiệu, sai số này sẽ bị triệt tiêu
Bus CAN
Đó chính là lý do khiến chuẩn giao tiếp CAN có thể truyền cực xa từ 40m -> 6km
mà vẫn đảm bảo độ chính xác Các bit ở trường CRC (15bit so sánh) và ACK (bit
xác nhận) giúp tăng độ chính xác của dữ liệu
Trang 94 Mức độ ưu tiên của các địa chỉ của Node trong hệ thống
ID là duy nhất và cũng để xác định mức độ ưu tiên của thông điệp Giá trị số của
mã ID càng thấp thì mức độ ưu tiên càng cao Điều này cho phép phân xử nếu hai (hoặc nhiều) nút cạnh tranh để truy cập vào bus cùng một lúc
Thông điệp có mức độ ưu tiên cao hơn được đảm bảo có được quyền truy cập bus như thể nó là thông điệp duy nhất được truyền đi Các thông điệp có mức ưu tiên thấp hơn sẽ tự động được truyền lại trong chu kỳ bus tiếp theo hoặc trong một chu kỳ bus tiếp theo nếu vẫn còn các thông điệp khác mà có mức ưu tiên cao hơn đang chờ được gửi
Mỗi thông điệp trong CAN có một mã ID là 11bit (A) hoặc 29 bit (B) ID này là phần nguyên tắc của Arbitration Field trong CAN, trường này nằm ở đầu mỗi thông điệp CAN ID xác định loại thông điệp, nhưng cũng là mức độ ưu tiên của thông điệp
Các bit trong thông điệp mạng CAN có thể được gửi ở dạng cao hoặc thấp Các bit thấp luôn chiếm ưu thế, có nghĩa là nếu một nút cố gắng gửi mức thấp và nút khác cố gửi mức cao, kết quả trên các bus sẽ là mức thấp Một nút truyền luôn lắng nghe trên bus trong khi truyền Một nút gửi mức cao trong Arbitration Field và phát hiện mức thấp biết rằng nó đã mất quyền ưu tiên Nó ngừng truyền, để cho nút khác, với một 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
Hai nút trên mạng không được phép gửi thông điệp có cùng ID Nếu hai nút cố gắng gửi một thông điệp với cùng một ID tại cùng một thời điểm, trường xác định quyền ưu tiên sẽ không hoạt động Thay vào đó, một trong các nút truyền sẽ phát hiện ra rằng thông điệp của nó bị bóp méo bên ngoài Arbitration Field Sau đó, các nút sẽ sử dụng trường xử lý lỗi của CAN, trong trường hợp này, cuối cùng sẽ dẫn đến việc một trong các nút truyền bị tắt (chế độ tắt bus)
VI.Ứng dụng của giao thức CAN trên ô tô
CAN là hệ thống mạng giao tiếp trên ô tô phổ biến nhất hiện nay Hệ thống
mạng giao tiếp trên ô tô được phát triển từ những năm 1980 tuy nhiên phải đến những năm đầu thế kỷ 21 thì CAN mới bắt đầu thực sự thịnh hành và xuất hiện trong các xe mới
Kể từ đó cho đến nay, ngày càng nhiều xe ô tô đã được trang bị hệ thống CAN, và ở Mỹ, đến năm 2008 khi hầu như tất cả các xe ô tô chở khách và xe tải nhẹ bán ra tại Mỹ được trang bị mạng giao tiếp này
Trang 10CAN là một chuẩn giao tiếp cho phép các module khác nhau và các máy tính trên xe ô tô nói chuyện với nhau Nó như một nhóm các đường dẫn với tốc độ rất cao cho phép các dữ liệu và các lệnh được nén qua lại từ một module khác nhau Điều này cho phép các hệ thống như hệ thống điều khiển điện tử của hệ thống động
cơ ECU, hệ thống phanh chống bó cứng ABS, hệ thống kiểm soát độ bám đường,
hệ thống kiểm soát tay lái, hệ thống cân bằng điện tử, hệ thống treo điện tử, hệ thống kiểm soát làm lạnh tự động, module điều khiển ánh sáng và hàng chục, hàng trăm hệ thống khác… tất cả được kết nối với nhau bằng điện tử
Trang 11Sơ đồ tổng quát của đường truyền CAN
* Các ecu và cảm biến trong hệ thống CAN:
– ECU điều khiển trượt
– Cảm biến độ lệch thân xe
– Cảm biến góc quay vô lăng
– Đến ECU chính thân xe
– Cảm biến túi khí trung tâm
– ECM
Trang 12– ECU trung tâm.
– ECU chứng nhận
– ECU điều khiển gương ngoài
– ECU chân máy điều khiển chủ động
– Bộ khuyếch đại điều hoà
– Đồng hồ táp lô
– ECU báo khoảng cách
– ECU điều khiển vị trí ghế (ghế trước trái)
– AFS ECU
– ECU nghiêng và trượt đa năng
* Cách các thiết bị trong ô tô gửi – nhận dữ liệu trên hệ thống CAN
Trong mạng CAN, các thành phần nối với mạng có quyền ngang nhau trong việc truyền và nhận thông tin ( multi master ), và bất kỳ các thành phần đó đều có thể truyền cũng như nhận thông tin mà chúng cần từ các thành phần khác Tuy nhiên,
về thứ tự truyền thì tùy thuộc vào độ ưu tiên của thông tin mà chúng muốn truyền ( cái này được quy định trong cấu trúc của tập tin được truyền đi), cái này là để chống quá tải khi có nhiều thành phần cùng truyền và nhận
Mỗi module được gắn vào một mạng lưới dữ liệu có khả năng gửi và nhận tín hiệu
và chúng đều có địa chỉ của mình trên mạng lưới cho phép các module nhận được các thông tin đầu vào và các dữ liệu cần thiết để hoạt động Khi module truyền thông tin qua mạng lưới, các thông tin này sẽ được mã hóa để tất cả các module khác nhận ra nó đến từ đâu và gửi thông tin gì
Dữ liệu được gửi là một loạt các bit kỹ thuật số bao gồm “0” và “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ế tại đây sẽ được hoạt động trong phạm vi 5-7 volt
Thông thường các module điều khiển hoặc cụm mô đun trên xe được giao nhiệm
vụ quản lý lưu lượng mạng Khi các module thấy một thông điệp tới, nó sẽ nhìn vào bit đầu tiên trong dòng dữ liệu Nếu bit là một “0”, nó sẽ được ưu tiên hơn các thông điệp khác, được gọi là một “trội tin nhắn” Nếu bit đầu tiên là một “1” được cho một ưu tiên thấp hơn được gọi là một “lặn tin nhắn”
Như vậy, thông điệp ưu tiên cao nhất luôn được thông qua đến các địa điểm dự định của nó và những thông điệp ưu tiên thấp sẽ có thể tạm thời bị chặn cho đến khi
“giao thông trên đường truyền giảm tốc”
Có thể thấy mạng giao tiếp CAN đã giúp 1 chiếc xe ô tô bình thường trở nên
“thông minh” và tiện lợi hơn rất nhiều.
Trang 13VII.Ưu điểm và nhược điểm của chuẩn giao tiếp CAN.
1, Ưu điểm.
● Đơ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á 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
● 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)
● Phát hiện và báo hiệu lỗi: Mỗi thông điệp có kèm theo mã CRC (Cyclic Redundancy Code) để 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 quá nhiều, một node có thể tự động ngắt khỏi bus Ngoà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 toàn vẹn dữ liệu trong bus
2, Nhược điểm.
Khó tiếp cận hơn, phức tạp hơn các chuẩn giao tiếp khác như I2C, SPI, UART…