Tải bản đầy đủ (.pdf) (45 trang)

NGHIÊN CỨU MẠNG CAN TRÊN Ô TÔ.

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.41 MB, 45 trang )

Bộ Giáo Dục và Đào Tạo
ĐH Sư Phạm Kỹ Thuật Tp. HCM
Khoa Đào Tạo Chất Lượng Cao

Cộng Hòa Xã Hội Chủ Nghĩa Việt Nam
Độc lập - Tự do - Hạnh phúc

NGHIÊN CỨU KHOA HỌC
TÊN ĐỀ TÀI:
NGHIÊN CỨU MẠNG CAN TRÊN Ô TÔ
GIÁO VIÊN HƯỚNG DẪN:
SINH VIÊN THỰC HIỆN:
I. Nội dung :
• Nghiên cứu lý thuyết về mạng truyền thông CAN.
• Tìm hiểu cách ứng dụng truyền tin bằng mạng CAN trên module CAN MCP2515.
• Tìm hiểu các thiết bị phần cứng hỗ trợ như Arduino, module CAN MCP2515 và
phần mềm Arduino.
• Tiến hành thực nghiệm.
• Sử dụng máy đo xung Hantek 6022BE để phân tích xung CAN.
• Đánh giá và đưa ra kết luận.
• Viết thuyết minh đề tài.
II. Trình bày :
Thuyết minh đề tài: 01 cuốn thuyết minh
III. Thời gian thực hiện :
1.
Ngày bắt đầu :
2.
Ngày hoàn thành :
Tp. Hồ Chí Minh, ngày…,tháng…,năm 2020
TRƯỞNG BỘ MÔN


GIÁO VIÊN HƯỚNG DẪN

i


NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………

Tp Hồ Chí Minh, ngày……, tháng……, năm 2020
GIÁO VIÊN HƯỚNG DẪN


ii


NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………

Tp Hồ Chí Minh, ngày……, tháng……, năm 2019

GIÁO VIÊN PHẢN BIỆN

iii


LỜI CẢM ƠN
Được sự phân công của Khoa Đào Tạo Chất Lượng Cao trường Đại học Sư phạm
Kỹ thuật Thành phố Hồ Chí Minh, cùng với sự đồng ý của thầy giáo hướng dẫn ThS.
Nguyễn Trung Hiếu, nhóm chúng tôi đã thực hiện nghiên cứu khoa học với đề tài “Nghiên
cứu mạng CAN trên ô tô”.
Trước hết cho phép chúng tôi được gởi một lời cảm ơn sâu sắc nhất dành cho thầy
người đã đi cùng chúng tôi trong suốt cuộc hành trình vừa rồi
.
Cảm ơn thầy vì sự chỉ bảo tận tình, sự lo lắng, sự hối thúc và động viên.
Nhóm chúng tôi cũng xin cảm ơn thầy PGS. Ts Đỗ Văn Dũng đã mang đến cho
chúng tôi một môi trường đào tạo tốt cùng với đó là tập thể quý giảng viên Trường Đại học
Sư Phạm Kỹ Thuật đã hết lòng dạy dỗ, truyền đạt kinh nghiệm, kiến thức trong quá trình
học tập và rèn luyện để chúng tôi có thể tiếp cận gần hơn ngành nghề mình đã chọn.
Bên cạnh đó chúng tôi cũng xin gửi lời cảm ơn tới gia đình, bạn bè đã hết lòng ủng hộ,
giúp đỡ và góp ý cho nhóm tôi trong suốt quá trình thực hiện.
Trong suốt quá trình thực hiện, mặc dù đã nỗ lực hết mình, song không thể tránh khỏi
những thiếu sót. Rất mong nhận được thêm những đóng ý kiến, phê bình từ thầy cô và các
bạn sinh viên.
Một lần nữa xin cảm ơn và chúc sức khỏe quý thầy cô và các bạn !
Tp,HCM, ngày 25 tháng 06 năm 2020
Nhóm thực hiện đề tài

iv



TÓM TẮT ĐỀ TÀI
Đề bài “ Nghiên cứu mạng truyền CAN trên ô tô” bao gồm:
Phần 1: Nghiên cứu cơ sở lý thuyết về mạng CAN
Phần 2: Tìm hiểu và truyền tín hiệu bằng mạng CAN sử dụng mạch MCP2515
Phần 3: Sử dụng máy đo xung Hantek 6022BE để đo và phân tích xung trên đường truyền
CAN. Đi đến kết luận và hướng phát triển tiếp theo.

v


MỤC LỤC

NGHIÊN CỨU KHOA HỌC ......................................................................................... i
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN .......................................................... ii
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ............................................................ iii
LỜI CẢM ƠN ................................................................................................................ iv
TÓM TẮT ĐỀ TÀI......................................................................................................... v
DANH MỤC CÁC TỪ VIẾT TẮT .............................................................................. ix
DANH MỤC CÁC HÌNH ẢNH .................................................................................... x
DANH MỤC CÁC BẢNG ............................................................................................ xi
CHƯƠNG 1: TỔNG QUAN .......................................................................................... 1
1.1

Giới thiệu ............................................................................................................ 1

1.2

Mục tiêu nghiên cứu ........................................................................................... 1

1.3


Phương pháp nghiên cứu .................................................................................... 1

1.4

Phạm vi nghiên cứu ............................................................................................ 1

1.5 Kế hoạch thực hiện: .................................................................................................... 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.............................................................................. 3
2.1. Lịch sử phát triển mạng CAN ................................................................................... 3
2.2. Cấu trúc mạng CAN .................................................................................................. 3
2.2.1 Hệ thống nút (node) trong mạng lưới CAN ........................................................ 3
2.2.2 Mã hóa tín hiệu truyền đi ..................................................................................... 5
2.2.3 Bộ phận truyền tín hiệu điện và dây dẫn ............................................................. 6
2.3. Giao thức CAN .......................................................................................................... 9

vi


2.3.1. Các tầng trong giao thức CAN ............................................................................ 9
2.3.2. Nguyên lý đa nút truyền không sử dụng bộ xử lý trung tâm ( multimaster) ...... 9
2.3.3 Nguyên tắc gửi tin dựa vào nội dung tin (Content-based addressing)................ 9
2.3.4 Quản lý đường truyền ........................................................................................ 10
2.3.5 Định dạng của tin nhắn trong CAN ................................................................... 12
2.3.6 Phát hiện lỗi trong CAN .................................................................................... 15
2.3.7 Xử lý lỗi trong CAN .......................................................................................... 16
2.4. Phần cứng ................................................................................................................ 17
2.4.1 Bộ điều khiển CAN (CAN controller) ............................................................... 17
2.4.2 Bộ thu phát CAN (CAN transceiver) ................................................................. 17
2.5 Nguyên lý truyền và nhận tin trong một hệ thống trên ô tô sử dụng mạng CAN .... 17

2.5.1 Truyền tín hiệu ................................................................................................... 17
2.5.2 Nhận tín hiệu ...................................................................................................... 18
CHƯƠNG 3: THỰC HÀNH TRUYỀN TÍN HIỆU SỬ DỤNG MODULE CAN
MCP2515 ....................................................................................................................... 20
3.1. Module CAN MCP2515:......................................................................................... 20
3.1.1 Thông số kỹ thuật .................................................................................................. 20
3.1.2. Sơ đồ chân ......................................................................................................... 21
3.2. Mạch Arduino .......................................................................................................... 21
3.3. Giao tiếp giữa hai Arduino sử dụng module CAN MCP2515 ................................ 22
3.3.1 Sơ đồ nối dây ..................................................................................................... 22
3.3.2 Đoạn chương trình vào Arduino ........................................................................ 23
3.3.3 Kết quả ............................................................................................................... 26
CHƯƠNG 4: KIỂM TRA XUNG TRUYỀN CAN TRÊN ĐƯỜNG TRUYỀN BẰNG
MÁY ĐO XUNG HANTEK 6022BE .......................................................................... 27

vii


4.1. Máy đo xung HANTEK 6022BE ............................................................................ 27
4.2. Sử dụng phần mềm HANTEK 6022BE .................................................................. 28
4.2.1 Tải phần mềm và driver ..................................................................................... 28
4.2.2 Cài đặt phần mềm và driver Hantek 6022BE .................................................... 28
4.4. Kết quả thực hiện và phân tích xung CAN ............................................................. 31
4.5. Đánh giá .................................................................................................................. 32
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .......................................... 33
5.1. Kết luận ................................................................................................................... 33
5.2. Hướng phát triển ...................................................................................................... 33
TÀI LIỆU THAM KHẢO ........................................................................................... 34

viii



DANH MỤC CÁC TỪ VIẾT TẮT
CAN: Control Network Area
ISO: International Organization for Standardization
ID: Identifier
RTR: Remote Transmission Request
SRR: Substitute Remote Request
IDE: Identifier Extension Bit
CRC: Cyclic Redundancy Checksum
ACK: Acknowledge)
SRR: Substitute Remote Request

ix


DANH MỤC CÁC HÌNH ẢNH
Hình 2.1: Cấu trúc một mạng CAN
Hình 2.2: Một nút trong hệ thống CAN
Hình 2.3: Phương pháp mã hoá Non-return-to-zero
Hình 2.4: Truyền tín hiệu vi sai và tính chất chống nhiễu trên đường truyền
Hình 2.5: Mức điện áp trên đường truyền CAN tốc độ cao
Hình 2.6: Mức điện áp trên đường truyền CAN tốc độ thấp
Hình 2.7: Điện trở hai đầu đường dây truyền CAN
Hình 2.8: Nguyên lý nhận tin dụa vào ID tin nhắn ở CAN
Hình 2.9: Phân giải trên đường truyền CAN
Hình 2.10: Khung yêu cầu truyền (Remote frame) trong CAN
Hình 2.11: Khung báo lỗi (Erro frame) trong CAN
Hình 2.12: Hai dạng khung dữ liệu trong CAN (Data frame
Hình 2.13 : Phương pháp bảo toàn, nhồi bit dữ liệu trong CAN

Hình 2.13 : Truyền và nhận tín hiệu một số hệ thống trên ô tô sử dụng mạng CAN
Hình 3.1 Module CAN MCP2515
Hình 3.2: Arduino Uno
Hình 3.3: Sơ đồ nối dây giữa module CAN MCP2515 và Arduino
Hình 3.4: Hiển thị Nút CAN gửi tin thành công
Hình 3.5: Nút CAN đã nhận thành công, hiển thị ID ,nội dung tin nhắn lên màn hình

Hình 4.1: Máy đo xung Hantek 6022BE
Hình 4.2: Tải phần mềm Hantek 6022 và driver từ trang chủ
Hình 4.3: Giao diện cài đặt Hantek 6022BE
Hình 4.4: Giao diện chọn nơi lưu trữ chương trình cài đặt Hantek 6022BE
Hình 4.5: Giao diện giao diện tiến trình cài đặt Hantek 6022BE
Hình 4.6: giao diện phần mềm hantek 6022BE
Hình 4.7: Kết quả thu được khi đo xung
Hình 4.8: Phân tích xung CAN

x


DANH MỤC CÁC BẢNG
Bảng 3.1: Sơ đồ chân của module MCP2515
Bảng 3.2: Sơ đồ chân giao tiếp SPI trên Arduino Uno
Bảng 3.3: Sơ đồ chân nối dây Arduino Uno và module CAN MCP2515

xi


CHƯƠNG 1: TỔNG QUAN
1.1 Giới thiệu
Xu hướng công nghệ gần đây trong ngành công nghiệp ô tô là mang sự an toàn hơn và

thoải mái lên một chiếc xe bằng cách kết hợp các kỹ thuật tự động như tránh va chạm, bung
túi khí và các thiết bị thông tin giải trí. Trong quá trình làm nên một chiếc xe tự động thì
xuất hiện ngày càng nhiều việc sử dụng các đơn vị điều khiển điện tử (ECU). Do đó, cần
có một hệ thống truyền thông đặc biệt làm nhiệm vụ thông tin liên lạc giữa các ECU trong
một chiếc xe. Ban đầu, giao tiếp đa kênh được thực hiện với mục đích làm giảm các kết
nối (cáp) giữa các ECU. Nhưng vấn đề chính với hệ thống truyền thông đa kênh đó là nó
không thể giao tiếp dữ liệu thời gian thực. Vì vậy, vào những năm 1980, tập đoàn BOSCH
đã thiết kế một giao thức truyền thông đa đơn vị chủ (multimaster), được gọi là giao thức
Network Area Network (CAN) nhằm phục vụ cho mục đích trên.
Chiếc xe đầu tiên với giao thức CAN được thực hiện vào năm 1986 và đã giảm 2km
hệ thống dây điện và 50kg trọng lượng trong xe. Kể từ đó, giao thức CAN đã trở thành
giao thức truyền thông được sử dụng rộng rãi nhất cho các mạng trong xe. Ngày nay, CAN
giao thức đang tiến vào nhiều hệ thống tự động như tự động hóa xe, nhà tự động hóa và
thiết bị y tế.
1.2 Mục tiêu nghiên cứu
Nắm được tầm quan trọng của mạng CAN trong việc truyền thông trên ô tô, nhóm
chúng tôi quyết tâm thực hiện đề tài với mục tiêu nắm bắt được lý thuyết bao gồm cấu trúc
và nguyên lý hoạt động, truyền tin của một mạng CAN và đi đến thực nghiệm, qua đó rút
ra được điểm mạnh thực tế của mạng CAN và dùng nó cho những dự án phát triển hệ thống
an toàn, tiện nghi cho xe trong tương lai.
1.3 Phương pháp nghiên cứu
Đi từ lý thuyết là tìm và đọc hiểu giáo trình, tài liệu và các bài báo nghiên cứu về mạng
CAN. Ứng dụng vào thực nghiệm, sử dụng hai Arduino truyền thông tin qua lại sử
dụng module CAN MCP2515.
1.4 Phạm vi nghiên cứu
1.4.1 Lý thuyết
Cấu tạo cơ bản một hệ thống CAN, đường truyền, mức điện áp truyền. Đi sâu vào
một nút trong hệ thống CAN, cách tạo, đóng khung một tin nhắn từ dữ liệu nhận được ở vi
xử lý tầng ứng dụng, cách một nút lọc nhận tin nhắn đi vào, cách phát hiện lỗi trong CAN,


1


cách chuyển một gói tin thành dòng bit để từ đó từ bộ chuyển đổi dòng bit được chuyển
thành tín hiệu điện áp.
1.4.2 Thực nghiệm
Tìm hiểu cách giao tiếp giữa hai Arduino thông qua module CAN MCP 2515:
• Tìm hiểu cách nối dây giữa Arduino và MCP 2515.
• Tìm hiểu cách thực hiện đoạn chương trình để có thể khởi tạo tốc độ truyền CAN
ban đầu, đặt ID cho tin truyền, gán nội dung vào tin truyền và cách để đọc ID lẫn
nội dung ở khi đã nhận được tin.
Tìm hiểu sử dụng máy đo xung Hantek 6022
1.5 Kế hoạch thực hiện:
ST
NỘI DUNG
T
1
Tìm kiếm và nghiên cứu các tài liệu liên quan đến đề tài.
2
Nghiên cứu cơ sở lý thuyết.
3
Chuẩn bị phần cứng, phần mềm và tiến hành thực nghiệm
4
Dùng máy đo xung để kiểm chứng
4
Viết báo cáo và hoàn thành đề tài

2

THỜI

GIAN
3/2020
3/2020
4/2020
5/2020
6/2020


CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Lịch sử phát triển mạng CAN
Một trong những yếu tố thúc đẩy trong ngành công nghiệp ô tô để phát triển mạng
giao tiếp CAN ( Controller Network Area) và các giao thức giao tiếp khác chính là nhu
cầu tìm ra các giải pháp mới cho vấn đề mạng giao tiếp, đi song song với nhu cầu hạn chế
sự phức tạp hệ thống đường dây điện trên xe. Hệ thống dây điện trong xe ô tô có thể dài
đến vài dặm và nặng hơn 100 kg. Điều đó gây cản trở không ít trong quá trình sản xuất,
bao gồm lắp đặt, chi phí cũng như quá trình bảo dưỡng.
Kể từ đầu những năm 1980, hầu hết tất cả các nhà sản xuất ô tô đã bắt đầu nỗ lực
chuyên sâu để tìm và phát triển các giao thức truyền thông phù hợp cho từng cụm hệ
thống điều khiển trên ô tô. Những hệ thống như 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 hơn nên sử dụng mạng truyền thông với tốc độ
truyền nhanh hơn . Ở những hệ thống điều khiển điện thân xe, ví dụ như đối với điều
khiển gương, cửa sổ điện, khóa cửa, điều chỉnh ghế ngồi, kiểm soát khí hậu, ánh sáng,
yêu cầu tốc độ truyền thông thấp hơn, do đó đòi hỏi băng thông truyền thấp hơn. Ngoài ra
để đáp ứng nhu cầu cho các nhiều ứng dụng khác nhau, các giao thức khác nhau đã xuất
hiện, như CAN, Mạng kết nối cục bộ (LIN), Truyền tải truyền thông (MOST) và
FlexRay.
Kể từ năm 1994111995, CAN là giao thức phổ biến nhất cho các ứng dụng ô tô.
Được mô tả bởi Tổ chức Tiêu chuẩn hóa Quốc tế ISO (International Organization for
Standardization), tính đến nay mạng CAN bao gồm 5 chuẩn, từ 11898-1 đến 11898-5.
Trong Phần 1 của ISO 11898 (ISO 11898-1), lớp liên kết dữ liệu và lớp vật lý được đặt

theo mô hình tham chiếu của ISO ISO / IEC 7498-1. Truy cập xe buýt tốc độ cao của
CAN (tối đa 1 Mbit / s) được chỉ định trong ISO 11898-2 và chủ yếu được sử dụng trong
dẫn động của xe. Tốc độ thấp tốc độ thấp CAN CAN (40 chụp 125 kbit / giây) cho phần
tiện nghi được mô tả trong 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 dữ liệu trơn tru với lưu lượng truyền
thông cao.
2.2. Cấu trúc mạng CAN
2.2.1 Hệ thống nút (node) trong mạng lưới CAN
Trong một 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 nhau bằng hai đường truyền CAN là CAN_H và CAN_L.

3


Hình 2.1: Cấu trúc một mạng CAN
Trong mỗi nút CAN gồm có vi điều khiển (microcontroller) phục vụ cho tầng ứng
dụng, bộ điều khiển CAN (CAN controller) và bộ thu phát CAN (CAN transceiver). Bộ
điều khiển CAN chịu trách nhiệm cho các chế độ truyền và nhận tin. Nó nhận thông tin
cần truyền đi từ vi điều khiển và đóng gói thông tin đó thành một khung truyền (Frames)
gồm dãy các bit tín hiệu theo chuẩn của CAN và chuyển tiếp đến bộ thu phát bằng kênh
TxD. Bộ thu phát khuếch đại các tín hiệu vừa nhận được, tạo ra mức điện áp cần thiết
theo tiêu chuẩn của truyền dữ liệu vi sai trên đường truyền CAN và đưa chuỗi bit vừa
được xử lý lên đường truyền (CAN_H và CAN_L).
Ngược lại, tin (message) đến được bộ thu phát xử lý và gửi đến bộ điều khiển CAN
bằng kênh RxD. Vi điều khiển ở tầng ứng dụng được dùng để chạy chương trình ứng
dụng (ví dụ như hệ thống chỉnh gương), quản lý và điều khiển bộ điều khiển CAN, chuẩn
bị dữ liệu gửi đi và đánh giá, xử lý dữ liệu nhận được.

4



Hình 2.2: Một nút trong hệ thống CAN
2.2.2 Mã hóa tín hiệu truyền đi
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) và recessive (bit 1). Mỗi bit trong mạng CAN được mã hóa bằng phương
pháp None‐return‐to‐zero. Trong suốt quá trình truyền của một bit, mức điện áp của dây
được giữ nguyên, có nghĩa trong suốt quá trình một bít được tạo, giá trị của nó giữ không
đổi. Với phương pháp này, không có bắt buộc về 0 giữa hai trạng thái truyền có cùng giá
trị. Khi nhận được tin nhắn, bộ thu phát CAN chuyển đổi mức tín hiệu trở lại trạng thái
logic. Trong quá trình này, bộ khuếch đại vi sai sẽ trừ mức điện áp CAN_L đi cho CAN_H
để quyết định xem đó là bit dominat hay bit recessive. Vì vậy, trên đường truyền khi gặp
xung nhiễu (ví dụ như trong hệ thống đánh lửa), thì xung nhiễu đó tác dụng đều trên cả hai
đường, điều này giúp cho việc loc nhiễu trở dễ dàng hơn.

Hình 2.3: Phương pháp mã hoá Non-return-to-zero

5


Hình 2.4: Truyền tín hiệu vi sai và tính chất chống nhiễu trên đường truyền’
Một số bộ thu phát cũng đánh giá mức điện áp trên dòng CAN_H và CAN_L một
cách riêng biệt, tức không dùng tín hiệu vi sai từ CAN_H và CAN_L. Do đó, có thể hoạt
động tiếp tục ở chế độ một đường dây nếu một trong hai bị hỏng do ngắn mạch hoặc đứt
cáp. Tuy nhiên, các nút sẽ phải sử dụng chung một mức điện áp tham chiếu (ground) để
đảm bảo chức năng khi đường dây gặp trục trặc.
2.2.3 Bộ phận truyền tín hiệu điện và dây dẫn
2.2.3.1 Truyền tín hiệu điện bằng hai dây dẫn
Hai dây phục vụ truyền tín hiệu trong CAN, gồm CAN_H và CAN_L. Cặp dây hỗ
trợ truyền dữ liệu đối xứng (symmetrical data transfer), trong đó các bit được đặt trên cả
hai dây và được áp bằng các mức điện áp khác nhau. Truyền bằng cách này giúp hạn chế

độ nhạy với tín hiệu nhiễu trên đường truyền vì như đã đề cập từ trước, tín hiệu nhiễu ảnh
hưởng đến hai đường truyền là như nhau và nhờ vậy mà có thể lọc ra. Ngoài ra việc tăng
cường thêm vỏ bọc trên dây dẫn làm giảm bớt bức xạ do chính dây dẫn phát ra khi truyền,
đặc biệt là khi truyền ở tốc độ cao.
2.2.3.2 Truyền tín hiệu điện bằng một dây dẫn
Để truyền dữ liệu bằng một dây dẫn thì tất cả các nút trong mạng CAN phải có chung
một điện áp tham chiếu, giả sử mức điện áp đó bằng với mức điện áp của đường truyền
còn lại. Việc truyền dữ liệu trên một đường dây dễ bị nhiễu hơn vì không thể lọc các xung
nhiễu như với đường dây hai dây. Vì điều này mà mức điện áp cao cấp cho tín hiệu khi
6


truyền cần được nâng lên. Truyền tín hiệu bằng dây dẫn đơn chỉ thích hợp khi truyền tín
hiệu ở tốc độ thấp (CAN low-speed).
2.2.3.3 Mức điện áp
Bộ thu phát CAN (CAN transceiver) chuyển đổi các bit logic 0 và 1 nhận được từ bộ
điều khiển CAN (CAN controller) thành tín hiệu điện với các mức điện áp khác nhau và
đưa lên đường truyền.
Mạng CAN tốc độ thấp (CAN low speed) và CAN tốc độ cao (CAN high speed) định
nghĩa mức điện áp trên đường truyền cho trạng thái dominant và trạng thái recessive khác
nhau.
Ở trạng thái recessive, CAN tốc độ cao sử dụng mức điện áp 2.5V cho hai đường
dây. Ở trạng thái dominant, sử dụng mức điện áp 3.5V cho đường CAN_H và điện áp 1.5V
cho đường CAN_L.
Ở CAN tốc độ thấp, mức điện áp 0V đặt trên đường truyền CAN_H khi ở trạng thái
recessive và 5V trên đường CAN_L. Ở trạng thái domiant, điện áp 3.6V cho đường
CAN_H và 1.4V cho đường CAN_L.

Hình 2.5: Mức điện áp trên đường truyền CAN tốc độ cao


7


Hình 2.6: Mức điện áp trên đường truyền CAN tốc độ thấp
2.2.3.4 Điện trở hai đầu đường dây truyền tín hiệu
Phản xạ tín hiệu điện ở cuối đường dây truyền có thể gây ảnh hưởng đến tính ổn định
của đường truyền. Để dampen nó, ở cuối hai đầu đường dây truyền thường được lắp thêm
điện trở giá trị 120 Ohm. Ở một số hệ thống, điện trở này được tích hợp bên trong bộ điều
khiển.

Hình 2.7: Điện trở hai đầu đường dây truyền CAN

8


2.3. Giao thức CAN
2.3.1. Các tầng trong giao thức CAN
Đối với các giao thức truyền thông, theo tiêu chuẩn người ta thường gộp các tác vụ
liên quan đến nhau thành một nhóm, gọi là tầng (layer), tạo độ linh hoạt cho hệ thống khi
thực hiện giao tiếp. Với mạng CAN, cả phần cứng và phần mềm của CAN được chia ra
thành một số tầng như Tầng ứng dụng (Application layer), tầng đối tượng (Object layer)
,tầng vận chuyển (Transport layer) và tầng vật lý (Physical layer).
2.3.1.1 Tầng ứng dụng (Application layer)
Tầng ứng dụng sắp xếp thông tin dưới dạng những cấu trúc dữ liệu được ứng dụng
sử dụng. Những cấu trúc dữ liệu đó khi cần được chuyển qua tầng đối tượng phục vụ cho
việc ứng dụng ở tầng ứng dụng của các nút CAN trong hệ thống.
2.3.1.2 Tầng đối tượng (Object layer)
Nhiệm vụ của tầng này là quản lý tin nhắn. Tầng này quyết định tin nhắn nào được
gởi đi và gởi vào thời điểm nào. Đối với tin nhắn đên, tầng này có nhiệm vụ lọc tin.
2.3.1.3 Tầng vận chuyển (Transport layer)

Tầng vận chuyển xử lý tin nhắn nhận được bởi tầng vật lý và gởi nó cho tầng đối
tượng. Ngược lại, nhận tin nhắn cần gởi đi từ tầng đối tượng và xử lý tin sao cho tầng vật
lý có thể truyền nó trên đường truyền. Tầng vận chuyển đảo nhận nhiệm vụ phân và phát
hiện lỗi giải khi truyền.
2.3.1.4 Tầng vật lý (Physical layer)
Tầng cuối cùng trong giao thức này bao gồm dây dẫn và điện áp dùng để truyền tín
hiệu.
2.3.2. Nguyên lý đa nút truyền không sử dụng bộ xử lý trung tâm ( multimaster)
Giao thức CAN hỗ trợ giao tiếp giữa các nút không mà không cần một đơn vị điều
khiển trung tâm (master). Mỗi nút đều có quyền truyền tin đi bất kỳ lúc nào. Tin có thể
truyền đi hay không phụ thuộc vào hai yếu tố: đường truyền có đang trống (free) hay không
và tin truyền đi có vượt qua khâu giải quyết tranh chấp hay không.
Thiết kế này cho phép hệ thống hoạt động bình thường dù có một vài nút gặp lỗi.
2.3.3 Nguyên tắc gửi tin dựa vào nội dung tin (Content-based addressing)
Không giống như những giao thức khác, CAN không đánh dấu địa chỉ trên nút truyền
mà ghi trực tiếp trên mỗi tin nhắn truyền đi. Mỗi tin truyền đi được gán một địa chỉ, gọi ID
(identifier). Chính ID này định nghĩa nội dung cho tin nhắn truyền đi. Mỗi một nút trong
hệ thống có thể phát tin cho tất cả các nút còn lại trong hệ thống. Các nút còn lại trong hệ
9


thống chỉ đọc tin này khi ID này nằm trong danh sách ID tin cần đọc được lưu trong bộ
nhớ của nó. Bằng cách này, mỗi một nút có thể tự quyết định xem có cần nhận tin nhắn
đang truyền trên đường dây dẫn vào hay không.

Hình 2.8: Nguyên lý nhận tin dụa vào ID tin nhắn ở CAN
ID tin nhắn của CAN cơ bản có hai phiên bản : bản tiêu chuẩn 11 bit (standard format,
phiên CAN 2.0A) và bản mở rộng 29 bit (extended format, CAN 2.0 B). Với bản 11 bit,
mạng CAN cho phép tối đa 2048 nội dung tin nhắn được truyền trên đường truyền. Con số
này lên đến 536 triệu đối với bản mở rộng.

Điểm mạnh của phương pháp đặt ID cho từng tin nhắn này là không cần có quá nhiều
ràng buộc giữa các nút trong hệ thống, các nút vì vậy có thể hoạt động độc lập với nhau,
tạo sự linh hoạt cho hệ thống. Nếu một nút cần một thông tin nào đó đã có sẵn trên đường
truyền, tất cả những gì nó cần làm là chỉ cần phát đi lệnh yêu cầu cho đường truyền. Có thể
thêm một nút bất kì vào hệ thống mà không cần hiệu chỉnh lại hệ thống.
2.3.4 Quản lý đường truyền
2.3.4.1 Phân giải
Nếu đường truyền đang trống (đang ở trạng thái recessive) và chỉ có một nút muốn
phát tin nhắn đi thì nút đó sẽ khởi tạo đường truyền và bắt đầu truyền tin nhắn đi. Tin nhắn

10


truyền đi bắt đầu với bit dominat ( gọi là Start-of-frame bit), theo sau là các bit ID. Khi có
nhiều nút bắt đầu truyền tin cùng một lúc, hệ thống bắt đầu can thiệp vào sử dụng thuật
phân giải “wire-and”. Tin nhắn với ưu tiên cao nhất (thường có giá trị nhị phân của ID thấp
nhất) được phép đưa tin lên đường truyền đầu tiên mà không có lỗi nội dung tin hay bị trễ.
Nguyên tắc phân giải ở đây là: đường truyền cho phép bit dominat ở một nút ghi đè
lên bit recessive bit ở một nút khác. Mỗi nút khi truyền các bit ID đi, các bit được truyền
lần lượt trên đường truyền, với bit ID quan trọng nhất được truyền đi đầu tiên. Ở khâu phân
giải, các nút đang truyền tin đi so sánh trạng thái bit của tin nó đang truyền đi với trạng thái
bit của hệ thống. Một nút khi truyền bit recessive gặp bit dominant sẽ bị mất lượt ưu tiên.
Nút nào với mức độ ưu tiên cao nhất sẽ được phát tin đi trước trong khi các nút còn lại trở
thành nút nhận tin, và đợi đến khi đường truyền trống mới có thể truyền tiếp.

Hình 2.9: Phân giải trên đường truyền CAN
Không có khâu phân giải, các tin truyền sẽ đụng chạm nhau khi truyền cũng một lúc,
sinh ra lỗi. Nhưng để đảm bảo khâu phân giải có thể hoạt động, bắt buộc ID của mỗi tin
truyền đi không được giống nhau.


11


2.3.4.2 Mức độ ưu tiên của tin nhắn
Tin nhắn với giá trị logic của ID bit thấp nhất có mức độ ưu tiên cao nhất. ID được
định bởi người dùng. Độ ưu tiên của tin nhắn tùy thuộc vào mức độ thay đổi của thông tin
mà tin nhắn đó truyền đi.
2.3.5 Định dạng của tin nhắn trong CAN
Để dữ liệu được truyền tin, khung tin nhắn (frame) được tạo ra. Khung (frame) tin
nhắn trên đường truyền CAN có bốn định dạng khác nhau:
• Data frame: frame để chứa dữ liệu hay thông tin cần truyền đi bởi một nút.
• Remote frame: các nút có thể yêu cầu thông tin hay dữ liệu từ nút khác sử dụng
Remote frame.

Hình 2.10: Khung yêu cầu truyền (Remote frame) trong CAN
• Error frame: nếu một nút phát hiện lỗi, nó sẽ phát tin báo lỗi sử dụng frame tin
này.

Hình 2.11: Khung báo lỗi (Erro frame) trong CAN

12


• Overload frame: frame được dùng để tạo tạo trễ giữa hai tin truyền. Nút truyền
dùng khung over frame này để thông báo nó không thể truyền thêm một tin nào
khác.
Ở đây chúng ta chú trọng vào khung Data frame. Dữ liệu cần truyền đi trong Data
frame trong CAN 2.0A và CAN 2.0B cơ bản được sắp xếp như nhau. Mở đầu bằng bit
Start-of-frame, vùng phân xử (Arbitration bit), vùng chứa dữ liệu cần truyền (data field) và
vùng CRC (CRC field).

2.3.5.1 Start-of-frame
Khi đường truyền đang trống, trạng thái bit lúc đó là recessive. Bit Start-of-frame là
bit dominant, biểu thị cho sự bắt đầu truyền dữ liệu cũng như đồng bộ hóa đường truyền
với các nút khác.
2.3.5.2 Vùng phân xử
Với CAN 2.0A, vùng phân xử bao gồm 11 bit ID và bit điều khiển (control bit), RTR
bit. Bit RTR (Remote Transmission Request).
Với khung CAN 2.0 B, vùng phân xử bao gồm 11 bit ID, theo sau là bit SRR
(Substitute Remote Request) và IDE Identifier Extension Bit). Cả hai bit đều ở trạng thái
recessive và do đó đảm bảo rằng khung CAN 2.0 A luôn được ưu tiên hơn khung CAN
2.0B nếu nó có cùng 11 bit ID và theo sau là 18 bit ID theo chuẩn CAN 2.0B . Bit RTR kết
thúc vùng phân xử.
Bit RTR cho biết khung truyền là Data frame hay Remote frame. Bit RTR ở trạng
thái dominant nếu đó là Data frame hoặc ở trạng thái recessive nếu đó là Remote frame.
Giả sử, nếu trạm A gửi Data frame và trạm B yêu cầu tin nhắn này bằng Remote frame
cùng một lúc, vùng phân xử không thể giải quyết trong tình huống này bằng cách nhận
dạng ID bit, khi ấy bit RTR là yếu tố quyết định cho phép truy cập. Trước hết, trạm A
chiếm ưu thế và giành quyền truyền đi tiếp tục truyền tin nhắn. Trạm B, đã yêu cầu chính
xác tin nhắn này, chuẩn bị nhận và có thể đọc các dữ liệu khác được gửi bởi trạm A.
2.3.5.3 Vùng điều khiển (Control field)
Với chuẩn CAN 2.0 A, vùng điều khiển bao gồm bit IDE (Identifier Extension Bit),
luôn được gửi ở trạng thái dominant, theo sau là một bit mở rộng ở trạng thái recessive.
Bốn bit còn lại trong vùng điều khiển biểu thị số lượng byte dữ liệu được truyền đi trong
trong vùng data field. Điều này cho phép bên nhận xác định xem tất cả dữ liệu đã được
nhận đầy đủ chưa.

13


Cấu trúc của khung CAN 2.0 B cũng tương tự. Tuy nhiên, vì bit IDE đã thuộc về

vùng phân xử, nên bit mở rộng sẽ thay thế cho IDE bit và bit này ở trạng thái recessive.
2.3.5.3 Vùng dữ liệu (Data field)
Vùng dữ liệu chứa thông tin cần truyền đi, có dung lượng từ 0 đến 8 byte. Vùng dữ
liệu có độ dài 0 byte cho ra khung dữ liệu có độ dài 44 hoặc 64 bit. Khung như thế có thể
được sử dụng để đồng bộ hóa hệ thống. Ngoài ra khung tin nhắn như thế có thể được dùng
để truyền tín hiệu như nhiệt độ động cơ hay tốc độ động cơ.
2.3.5.4 Vùng CRC (Cyclic Redundancy Checksum)
Vùng CRC (Cyclic Redundancy Checksum) chứa 15 bit checksum, biến checksum
như phương tiện được dùng để xác định xem có nhiễu trên đường truyền hay không. Bit
thứ 16 (CRC delimiter) trong trường này là recessive và kết thúc checksum tổng kiểm tra
2.3.5.5 Vùng ACK (Acknowledge)
Không giống như tất cả các vùng trước đó, vùng ACK (acknowledge) không được
đặt bởi nút gửi mà bởi một nút nhận để xác nhận trạng thái đã nhận được tin hay chưa.
Vùng này bao gồm một slot ACK và một ACK delimiter bit. ACK slot được truyền đi ở
trạng thái recessive và được ghi chồng lên thành dominant nếu bên nhận đã nhận được tin.
Chỉ có những nút mà trong bộ nhớ có chứa ID của tin nhắn vừa nhận mới có quyền xác
nhận và gửi lại bit ACK này.
2.3.5.6 End-of-frame
End-of-frame đánh dấu cho sự kết thúc của một Data hay Remote Frame, và luôn
luôn là bảy bit recessive. Với bảy bit recessive này, End-of-frame phá vỡ nguyên tắc Bit
stuffing trong CAN.
2.3.5.7 Interframe space
Interframe bao gồm ba bit recessive liên tiếp nhau để tách hai tin nhắn liên tiếp
nhau. SRR bit (Substitute Remote Request). Sau tổng cộng 10 bit recessive này, các trạm
được phép truyền tin lại trên đường truyền. Sau đó đường truyền trở lại trạng thái trống.
Chỉ data and remote frames sử dụng interframe space. Error and overload frames có thể
được gửi ngay sau khung cuối cùng được gởi . Điều này cho phép báo hiệu ngay lập tức
khi phát hiện hệ thống gặp lỗi.

14



×