Truyền thông đồng bộ là phƣơng thức cơ bản thứ nhất của một chuỗi th ng tin đƣợc truyền đi. Khi đó bộ điều khiển nhận và bộ điều khiển gửi xác định thời điểm bắt đầu và kết thúc của dữ liệu bằng một bộ đếm chung, vì vậy bộ điều khiển gửi có thể đồng bộ với bộ điều khiển nhận trong việc truyền dữ liệu. Hệ thống truyền đồng bộ dƣới có hai đƣờng truyền dẫn dữ liệu và đƣờng tín hiệu phụ (bộ đếm).
Hình 3.2: Truyền th ng đồng bộ
Nhờ truyền th ng đồng bộ, mỗi ECU có thời gian điều chỉnh trƣớc khi gửi dữ liệu. Vì tất cả ECU đều đƣợc đồng bộ hóa với bộ đếm chung. Khi gửi khung dữ liệu sẽ không bị gián đoạn với chu ky là 58ms. Trong trƣờng hợp thông tin của tin nhắn kh ng đổi chúng ta có thể bố tr hai đƣờng dây cho việc truyền đồng bộ. Một dây đóng vai trò truyền tín hiệu, dây còn lại truyền tín hiệu bộ đếm. Nếu sự đồng bộ đƣợc tạo ra bởi một vùng đồng bộ tin nhắn thì hệ thống chỉ cần một đƣờng truyền duy nhất.
26
3.3. TRUYỀN TH NG KH NG ĐỒNG BỘ
Hình 3.3: Truyền th ng kh ng đồng bộ
Truyền thông không đồng bộ là phƣơng thức cơ bản thứ hai của một chuỗi thông tin đƣợc truyền đi. Phƣơng pháp truyền này thƣờng đƣợc dung khi truyền dữ liệu phát sinh theo những khoảng thời gian ngẫu nhiên. Ví dụ ngƣời lái xe bấm còi. Rõ ràng với dạng tín hiệu này,ngƣời lái xe bấm còi với một tốc độ kh ng xác định và khoảng thời gian giữa hai bấm là ngẫu nhiên. Nhƣ vậy bộ điều khiển nhận phải biết thời điểm tin nhắn mới đến. Vì vậy mỗi tin nhắn phải có bit khởi đầu và bit kết thúc để giúp cho bộ điều khiển nhận phát hiện ra bit khởi đầu sau một khoảng thời gian nhàn rỗi và phát hiện bit kết thúc để biết rằng kết thúc tin nhắn.Trong một hệ thống truyền dẫn kh ng đồng bộ chỉ có đƣờng truyền dữ liệu kh ng có đƣờng tín hiệu đếm chung.Đƣờng truyền dẫn có thể là một đƣờng hoặc hai đƣơng nhƣ hình trên.Trƣờng hợp có điện áp khác nhau giữa hai đƣờng dây dẫn để mã hóa dữ liệu đƣợc truyền dẫn.
3.4. SỰ TÁI ĐỒNG BỘ
Một hệ thống CAN có rất nhiều nút (ECU) khác nhau. Mỗi nút hoạt động với một tốc độ khác nhau nên khó tránh khỏi sự lệch pha giữa các nút. Nhƣ vậy mỗi bộ điều khiển CAN có nhiệm vụ tài đồng bộ để bù cho sự trễ pha trong quá trình nhận dữ liệu. Trong trƣờng hợp bộ truyền truyền chậm hơn, nghĩa là sự thay đổi mức logic (cạnh bit) nằm trong đoạn PROP_SEG thì bộ điều khiển nhận sẽ kéo dài đoạn PHASE_SEG1 với giá trị bƣớc nhảy tái đồng bộ (Resynchronization Jump Width) đã đƣợc lập trình, RJW có độ dài từ 1 đến 4 lƣợng tử thời gian (tq).
27
Hình 3.4: Tái động bộ (bộ truyền truyền chậm)
Trong trƣờng hợp bộ truyền truyền nhanh hơn, nghĩa là sự thay đổi mức logic (cạnh bit) nằm trong đoạn PHASE_SEG2 thì bộ điều khiển nhận sẽ rút ngắn đoạn PHASE_SEG2 với một giá trị bƣớc nhảy tái đồng bộ đã đƣợc lập trình, RJW có độ dài từ 1 đến 4 lƣợng tử thời gian (tq).
Hình 3.5: Tái động bộ (bộ truyền truyền sớm)
28
3.5. BIT-TIMING
Hình 3.6: Bit timing
Bit time đƣợc chia thành 4 đoạn riêng biệt (4 khoảng thời gian) không chồng lấn lên nhau. Mỗi đoạn đƣợc hình thành từ một lƣợng tử thời gian (Time Quantum). Lƣợng tử thời gian là độ phân giải thời gian nhỏ nhất đƣợc sử dụng trong CAN và độ dài đƣợc hình thành bởi tần số dao động (Oscillator) của các nút CAN. Trên một bit có 8 đến 35 lƣợng tử thời gian. Mỗi đoạn có số lƣợng tử thời gian khác nhau. Bit time hình thành trên việc lập trình độ rộng của lƣợng tử thời gian. Bộ điều khiển CAN (CAN Controller) có nhiệm vụ điều khiển bit time.
3.5.1. Các phân đoạn thời gian của CAN Bus
29 Chu kỳ của một CAN Bit chia nhỏ thành bốn phân đoạn thời gian. Mỗi phân đoạn thời gian gồm một số các lƣợng tử thời gian (Time Quanta).
- SYNC_SEG là phần có độ dài là một lƣợng tử thời gian. Đoạn này dành cho việc đồng bộ giữa các nút trên CAN Bus. Một nút luôn giám sát và tính toán thời gian bit. Trong khi truyền dữ liệu, bất cứ khi nào xuất hiện sự chuyển mức logic (cạnh bit) thì nút phải đồng bộ lại hoặc hiệu chỉnh cách tính toán thời gian bit để việc lấy mẫu bit đƣợc chính xác. Khi một cạnh bit xuất hiện mà hệ thống giám sát thấy nằm đúng trong đoạn Sync_seq thì đƣờng truyền đang ổn định và các Node đang có sự đồng bộ tốt.
- PROP_SEG là phần có độ dài từ 1 đến 8 phân từ thời gian. Đoạn này đƣợc dùng để bù cho các thời gian trễ tín hiệu trong mạng. Nó gấp hai lần khoảng thời gian lan truyền tín hiệu trên bus, độ trễ mạch so sánh ngõ vào và độ trễ mạch ngõ ra.
- PHASE_SEG1 và PHASE_SEG2 là phần có độ dài từ 1 đến 8 phân từ thời gian. Hai đoạn này dành cho việc bù lỗi pha của sự chuyển mức logic. Thời gian các đoạn này có thể đƣợc kéo dài hoặc rút ngắn khi thực thi tái đồng bộ.
- Sample Point (Vị trí lấy mẫu) là thời điểm tại đó mức trạng thái của bus CAN đƣợc đọc để xác định giá trị logic của bit. Vị trí lấy mẫu ở cuối đoạn PHASE_SEG1.
- Thời gian xử lý thông tin (Information processing time) là thời gian dự trữ tính từ vị trí lấy mẫu dành cho việc tính toán mức bit tiếp theo trong chuỗi. Độ dài của nó đƣợc xác định tùy vào phần cứng (chip)
3.5.2. Sự truyền tín hiệu trong CAN Bus
Khi truyền tín hiệu trên Bus, tín hiệu giữa các nút phải có một thời gian trễ nhất định. Tổng thời gian trễ của các bộ phận nhƣ bộ điều khiển CAN (CAN Controller), bộ truyền tín hiệu (Opto-coupler), bộ thu phát (Transceiver) phải nhỏ hơn phân đoạn thời gian truyền trễ (Prop_Seg) trên một bit.
Các bộ phân điện tử phải bù trừ thời gian trễ sao cho phù hợp. Bộ điều khiển CAN từ 50ns đến 62ns, bộ truyền tín hiệu (Opto-coupler) 40ns đến 140ns, bộ thu phát từ 120ns đến 250ns, dây cáp khoảng 5ns/m.
Sự trễ sẽ đƣợc hệ thống CAN kiểm tra lại sau khi đồng bộ nhằm đảm bảo đúng giới hạn yêu cầu. Nút xa nhất là cột mốc để tính thời gian trễ phù hợp cho việc truyền dữ liệu. Nhƣ vậy, chúng ta phải sử dụng các bộ phận điện tử (bộ thu phát, bộ điều khiển) đạt chuẩn ISO 11898, vi điều khiển phải xử lý tốc độ cao.
30
Hình 3.8: Truyền tín hiệu trong CAN BUS 3.5.3. Tỉ số tốc độ và chiều dài Bus (Data – Rate/ Bus Length)
Hình 3.9: Tỉ số giữa tốc độ và chiều dài Bus
Để đánh giá hệ thống CAN, chúng ta phải dựa tốc độ truyền dữ liệu và chiều dài Bus có thể truyền. Hai yếu tố này ảnh hƣởng lẫn nhau, ví dụ: tốc độ bit tối đa là 1Mbit/s với chiều dài Bus 40m, tốc độ truyền 50Kbit/s với chiều dài Bus 1000m. Theo tiêu chuẩn
31 ISO 11898, hệ thống CAN có chiều dài tối đa là 1000m nhƣng chúng ta có thể tăng chiều dài hơn 1000m bằng việc sử dụng thêm các thiết bị hỗ trợ hoặc bộ lặp.
3.5.4. Chiều dài của CAN Bus
Theo tiêu chuẩn ISO 11898, tốc độ truyền dữ liệu và chiều dài mạng đạt đƣợc với các thiết bị đạt tiêu chuẩn:
- Tốc độ 1Mbit/s tƣơng ứng với 40m - Tốc độ 500Kbit/s tƣơng ứng với 100m - Tốc độ 250Kbit/s tƣơng ứng với 250m - Tốc độ 125Kbit/s tƣơng ứng với 500m - Tốc độ 50Kbit/s tƣơng ứng với 1000m
Chiều dài tối đa có thể đạt đƣợc của đƣờng truyền Bus trong mạng CAN về cơ bản đƣợc xác định bởi các hiệu ứng vật lý sau:
- Sự trễ của các nút đƣợc kết nối với Bus và sự trễ trên đƣờng truyền Bus.
- Sự chênh lệch trong độ dài lƣợng tử thời gian của bit do sự dao động tƣơng đối của các hệ thống
- Sự giảm biên độ tín hiệu do các điện trở nối tiếp của dây cáp Bus và điện trở đầu vào của các nút.
3.6. MÃ HÓA BIT (BIT ENCODING)
3.6.1. Phƣơng pháp mã hóa không trở về 0 (Non – Return – to – Zero)
Hình 3.10: Phƣơng pháp mã hóa NRZ
Hệ thống CAN sử dụng phƣơng pháp NRZ để mã hóa dữ liệu. Dãy bit trong tin nhắn đƣợc mã hóa theo NRZ, nghĩa là các bit kh ng phải trở về 0 giữa hai trạng thái có giá trị giống nhau và trạng thái bit chỉ có thể là trội hoặc lặn.
32
3.6.2. Quy luật nhồi bit (Bit Stuffing)
Hình 3.11: Phƣơng pháp nhồi bit
Phƣơng pháp mã hóa NRZ là t n hiệu không có giới hạn trong sự tái đồng bộ. Vì vậy,phƣơng pháp nhồi bit đƣợc dùng để đảm bảo sự đồng bộ tất cả các nút trên Bus. Nhồi bit quy ƣớc rằng mỗi khung dữ liệu hoặc khung yêu cầu từ xa có tối đa 5 bit liên tiếp có trạng thái giống nhau tin nhắn. Khi năm bit có trạng thái giống nhau đƣợc truyền kế tiếp thì thiết bị gửi sẽ kèm theo một bit có trạng thái ngƣợc lại. Thiết bị nhận sẽ xóa những bit đƣợc chèn sau khi nhận. Phƣơng pháp này cho phép phát hiện các lỗi nhƣ: ngắn mạch, nhiễu sóng,…
Phƣơng pháp nhồi bit đƣợc áp dụng cho khung dữ liệu hoặc khung yêu cầu từ xa trong vùng bắt đầu (SOF), vùng phân xử (Arbitration fields), vùng điều khiển (Control fields), vùng dữ liệu (Data fields), vùng kiểm tra vòng lặp thƣờng (CRC fields).
3.6.3. Tỉ lệ bit dữ liệu và bit nhồi
33 Nhìn chung tỉ lệ bit dữ liệu và bit đƣợc nhồi có thể ƣớc lƣợng khoảng 5:1. Nhƣng trong trƣờng hợp xấu, số bit nhồi tối đa đƣợc t nh nhƣ sau:
S_max = ( n – 1) : 4 (3-2) Trong đó n là số bit dữ liệu.
3.6.4. Sự ƣớc lƣợng số bit nhồi
Bảng 3.1: Bảng ƣớc lƣợng số bit nhồi
Bảng trên là kết quả mô phỏng số lƣợng bit nhồi cho tất các khung tiêu chuẩn của CAN. Các khung CAN với mã độ dài dữ liệu là 7 byte, trung bình có nhiều bit nhồi hơn tất cả các khung khác.
34
CHƢƠNG 4: CAN BUS VÀ HỆ THỐNG XỬ LÝ 4.1. SƠ LƢỢC VỀ CAN BUS
4.1.1. Tổng quan
Hệ thống CAN Bus có một cặp dây xoắn nối tiếp với giao thức giao tiếp thời gian thực, nó rất thích hợp trên t nhƣ kết nối các cảm biến (giám sát) và các cơ cấu chấp hành (điều khiển). Tất cả các hệ thống điều khiển (nút) CAN nối song song trên đƣờng truyền dữ liệu và giao tiếp với nhau thông qua khung dữ liệu.
Hình 4.1 Sơ đồ mạng CAN trên ô tô
Hệ thống CAN hình thành bởi các ECU (nút). Mỗi ECU (nút) có thể giao tiếp với bất kỳ ECU khác trong mạng. Các ECU giao tiếp với nhau bằng cách truyền và nhận các gói dữ liệu đƣợc gọi là tin nhắn (message). Mỗi tin nhắn trong hệ thống CAN đƣợc gán một định danh (ID) theo mức độ ƣu tiên của tin nhắn.
35 Một ECU (nút) phải tuân theo tiêu chuẩn ISO 11898 về các thiết bị điện tử đi kèm nhƣ một bộ vi điều khiển, một bộ điều khiển CAN, bộ thu phát có đƣờng truyền dữ liệu ra (Tx), đƣờng truyền dữ liệu đầu vào (Rx). Điện áp chuẩn đầu ra (Vref) cung cấp điện áp đầu ra bằng 0.5xVcc. Bộ thu phát phải đƣợc cấp một nguồn điện áp 5v.
Khi ở một trạng thái (trội hoặc lặn), sự chênh lệch điện áp đầu vào tại một ECU (nút) có thể xác định thông qua sự chênh lệch dòng điện đi qua điện trở đầu vào của ECU (nút) đó. Trƣờng hợp bit trội, các điện trở đầu ra của nút truyền chuyển sang trạng thái On và cho dòng điện đi qua. Còn điện trở đầu ra chuyển trạng thái Off đƣợc sử dụng cho trƣờng hợp bit lặn.
Hình 4.2 Một nút CAN theo tiêu chuẩn ISO 11898-2
Hệ thống CAN hoạt động dựa vào địa chỉ của tin nhắn (Message Base System) khác với địa chỉ của nút (Address Base System), mỗi tin nhắn đƣợc gán một định danh (ID) nhƣng địa chỉ của nút thì mỗi nút đƣợc gán một định danh (ID). Nhƣ vậy hệ thống CAN có thể thêm hoặc bớt một ECU (nút) bằng một ECU khác sẽ không làm ảnh hƣởng đến cả hệ thống.
Một ECU có thể nhận đƣợc nhiều loại tin nhắn khác nhau ngƣợc lại một tin nhắn có thể đƣợc nhận bởi nhiều ECU và công việc sẽ đƣợc thực hiện một các đồng bộ trong hệ thống. Sƣ ƣu tiên của một th ng điệp sẽ dựa vào định danh (ID).Vì vậy hệ thống có thể phân tích thời gian phản hồi của tin nhắn. Điều này có ý nghĩa quan trọng trong việc phát triển ngành t nhƣ thiết kế hệ thống nhúng theo thời gian thực, hệ thống tự động lái,…
36
Hình 4.3: Cấu trúc phân lớp của giao thức CAN
Giao thức CAN đã đƣợc chuẩn hóa trong tiêu chuẩn ISO 11898, chuẩn quy định chi tiết các chức năng và hoạt động của các lớp trong giao thức CAN.Nhƣng đối với lớp ứng dụng (Application) kh ng đƣợc quy định trong chuẩn nhƣng hiện nay có hai giao thức phổ biến và CANopen và DeviceNet.
37 Lớp ứng dụng (Application layer): Là nơi các chƣơng trình mạng thƣờng dùng làm việc nhằm liên lạc giữa các nút trong một mạng. Nó thể hiện thông tin của dữ liệu đƣợc sử dụng bởi các lớp ứng dụng. Ví dụ: ECU ABS, ECU động cơ, ECU hộp số,… Những dữ liệu đƣợc truyền đến lớp quản lý với đúng mục đ ch của nó.
Lớp quản lý (Object layer): Có nhiệm vụ quản lý tin nhắn. Chức năng của lớp quản lý là quyết định thời gian gửi tin nhắn. Ví dụ: Khi cần tín hiệu vị tr bàn đạp ga thì nó sẽ ƣu tiên gửi tin nhắn chƣa dữ liệu đó trƣớc. Đối với tin nhắn đến, lớp quản lý có nhiệm vụ lọc tin nhắn.
Lớp giao vận (Transport layer): Lớp giao vận chuyển có nhiệm vụ chuyển tin nhắn cho lớp quản lý và xử lý tin nhắn để lớp quản lý chuyển tin nhắn đến lớp ứng dụng. Lớp giao vận còn có chức năng phân xử, phát hiện lỗi và báo hiệu.
Lớp vật lý (Physical layer): Là tầng thứ nhất trong khối giao vận. Nó thể hiện các thành phần vật lý của mạng nhƣ hệ thống dây điện, điện áp đƣợc dùng để gửi thông tin.
4.1.2. Độ dài của một Bus
Độ dài của Bus phụ thuộc vào các yếu tố sau: - Độ trễ trên đƣờng truyền Bus.
- Sự khác nhau về lƣợng tử thời gian (Time quantum) bởi mỗi ECU (nút) có xung lock khác nhau.
- Biên độ tin hiệu thay đổi theo điện trở của dây cáp và tổng điện trở của các ECU. Bảng 4.1: Bảng thống kê về tốc độ, chiều dài, thời gian
38
4.1.3. Tín hiệu trên CAN Bus
Lớp vật lý, CAN chuyển đổi giữa hai trạng thái:
- Trạng thái dominant, nghĩa là trạng thái trội hay còn gọi trạng thái chiếm ƣu thế, trạng thái logic 1.
- Trạng thái recessive, nghĩa là trạng thái lặn hay còn gọi trạng thái ẩn, trạng thái logic 0.
Vì tính chất vật lý của Bus, chúng ta cần phân biệt hai dạng truyền: Truyền tốc độ cao (CAN-HIGH), truyền tốc độ thấp (CAN-LOW). Bảng sau thể hiện sự khác nhau giữa hai dạng truyền:
Bảng 4.2: Sự khác nhau giữa CAN-L và CAN-H
Thông số CAN-LOW CAN-HIGH
Tốc độ 125Kb/s 125Kb/s đến 1 Mb/s
Số nút 10 24
Trạng thái Dominant CAN_H = 3.6V
CAN_L = 1.4V
CAN_H = 3.5V CAN_L = 1.5V
Trạng thái Receive CAN_H = 0.0V
CAN_L = 5.0V
CAN_H = 2.5V CAN_L = 2.5V
Tiêu chuẩn ISO 11898 ISO 11519
Ứng dụng Hệ thống điều khiển
điện thân xe
Hệ thống điều khiển động cơ, hệ thống điều khiển truyền lực, hệ thống phanh ABS, hệ thống cân bằng điện tử,…
39
Hình 4.6:Mức điện áp của CAN-H 4.1.4. Đƣờng truyền công suất trong CAN Bus
Hình 4.7: Hệ thống điện CAN Bus
Dòng điện chính đƣợc sinh ra từ nguồn trung tâm của Bus. Cuộn dây có nhiệm vụ ngăn chặn sự ngắt điện áp của tín hiệu. Hệ thống CAN truyền tín hiệu dữ liệu trên các đƣờng dây điện: Truyền theo từng dải cơ bản và điều biến (Modulation).
40
4.1.5. Sự truyền tần số cao (tần số vô tuyền) trong CAN Bus
Hình 4.8: Truyền tần số giữa các nút
Truyền tần số có rất nhiều ƣu điểm khi điều khiển một hệ thống không cần đến các dây dẫn. Trƣờng hợp điển hình khi hai hệ thống phụ di động giao tiếp với nhau. Ứng dụng đơn giản nhất cho một liên kết từ xa là liên kết điểm-điểm, ví dụ một hệ thống CAN Bus