CHƯƠNG 3: NGHIÊN CỨU TRỄ TRUYỀN THÔNG TRONG MỘT SỐ MẠNG TRUYỀN THÔNG CÔNG NGHIỆP TIÊU BIỂU
3.3. Trễ truyền thông trong mạng CAN
Mạng CAN (Controller Area Network) được phát triển lần đầu tiên tại hãng Robert Bosch (CHLB Đức) vào nămg 1986. Mục tiêu ban đầu được đặt ra là phát triển một hệ truyền thông kết nối các bộ điều khiển điện tử trong xe ôtô. CAN là mạng truyền thông nối tiếp sử dụng phương tiện truyền thông là hai dây, chế độ truyền bán song công. CAN phù hợp với các ứng dụng tốc độ cao và với thông điệp ngắn. Về mặt lý thuyết CAN cho phép kết nối 2032 nút mạng trên một phân đoạn nhưng do giới hạn về công suất của phần cứng CAN chỉ có thể kết nối tối đa 110 nút mạng trong một phân đoạn mạng. Về mặt tốc độ, CAN hỗ trợ tốc độ tối đa là 1Mbps. CAN sử dụng phương pháp điều khiển truy nhập mạng CSMA/AMP (hay CSMA/CA(*)) như đã trình bày trong mục 2.2.
Mạng CAN sau khi ra đời đã nhanh chóng trở thành chuẩn của Châu Âu và chuẩn quốc tế. Định dạng khung truyền tin chuẩn của CAN có mã căn cước 11-bit và sau này phát triển thêm phiên bản mạng CAN với mã căn cước 29-bit. Với 29 bits mã căn cước, phiên bản mới có thể hỗ trợ tới hơn 500 triệu loại thông điệp với mức ưu tiên khác nhau [11] [12]. Tuy nhiên điều này không có ý nghĩa vì CAN chỉ có thể liên kết tối đa 110 nút mạng. Phiên bản với mã căn cước 29-bit có nhiều nhược điểm hơn so với định dạng khung truyền tin chuẩn như thời gian truy nhập mạng lớn hơn, hệ số sử dụng đường truyền thấp hơn, xác suất xảy ra lỗi lớn hơn nên trong hầu hết các ứng dụng công nghiệp hiện nay là sử dụng định dạng khung truyền tin chuẩn của CAN với mã căn cước 11-bít.
3.3.1. Phát hiện lỗi và xử lý lỗi trong mạng CAN
Mạng CAN sử dụng cơ chế phát hiện lỗi và xử lý lỗi rất hiệu quả ở hai cấp:
cấp thông điệp và cấp bit. Ở cấp thông điệp CAN sử dụng mã CRC (Cyclic Ređunant Check) là các bits kiểm tra tại cuối khung truyền tin để đảm bảo tính
chính xác của thông tin truyền. Tại nút nhận, mã CRC được tính toán lại và kiểm tra đối với các bits nhận được.
Ở mức bit, nút mạng truyền tin sẽ giám sát tín hiệu bus truyền và phát hiện lỗi bằng cách so sánh sự khác nhau giữa bit truyền và bit nhận. Việc mã hoá của các bits riêng biệt, quá trình thực hiện nhồi bit được kiểm tra tại mức bit. Nếu một nút mạng phát hiện ra lỗi, quá trình truyền tin sẽ được yêu cầu dừng lại bằng cách gửi
“cờ lỗi”. Bằng cách như vậy sẽ không có nút mạng nào chấp nhận thông điệp đang nhận và tính tin cậy của dữ liệu truyền qua mạng sẽ được đảm bảo.
3.3.2. Đặc điểm của trễ truyền thông trong mạng CAN
Trễ truyền thông trong mạng CAN cũng bao gồm các thành phần trễ như đã nêu trong phần 3.1. Những điểm riêng của nó được thể hiện thông qua thời gian đợi giành quyền truyền tin và trễ trên đường mạng.
Theo hoạt động của phương truy nhập mạng CSMA/AMP (xem mục 2.2) thì thời gian đợi giành quyền truyền tin của một nút mạng bất kỳ bao gồm việc đợi nút mạng đang truyền tin kết thúc việc truyền tin và thời gian đợi tất cả các nút mạng có mức ưu tiên cao hơn hoàn tất việc truyền tin [21].
i tx j
bit j l k block N
j resid
block T
T T J T T
T
hp
( ) (3.52)
trong đó:
Tresid là thời gian cần thiết còn lại phải đợi nút đang truyền tin kết thúc truyền tin.
Nhp là tập các nút mạng có mức ưu tiên cao hơn nút mạng đang đợi truyền tin.
x là phép làm tròn lên, có nghĩa x là số nguyên nhỏ nhất lớn hơn hoặc bằng x.
Jj là jitter của tác vụ j.
Tbit là độ dài của một bit và Tj là chu kỳ của nút j.
Đối với nút mạng có mức ưu tiên thấp, trong khi đang đợi giành quyền truyền tin thì có thể xuất hiện yêu cầu truyền tin mới của nút mạng có mức ưu tiên
cao hơn và khi đó nút mạng với mức ưu tiên thấp hơn lại mất quyền truyền tin một lần nữa. Đây là hiện tượng tích luỹ của thời gian đợi giành quyền truyền tin. Khi nút mạng có mức ưu tiên cao nhất thì thời gian đợi giành quyền truyền tin chỉ bao gồm số hạng thứ nhất trong (3.52), thời gian đợi nút mạng đang truyền tin kết thúc việc truyền tin.
Khi lưu lượng truyền thông nhỏ thời gian đợi nút đang truyền kết thúc truyền tin trong trường hợp xấu nhất có thể tính được như sau:
j tx N j
resid m T
T
e
max
mod
(3.53)
Từ (3.3) và (3.4) có thể tính được trễ trên đường mạng trong mạng CAN như sau:
prop frame
tx T T
T
=> TtxNstuff 478xNdataTbitTpropN (3.54) Vì mạng CAN sử dụng phương pháp nhồi bit nên có thể tính được số bit nhồi tối đa là:
5
8
34 data
stuff
N
N x (3.55)
Trễ truyền thông trong mạng CAN được tính như (3.6):
Tcom.d = Tpre + Tqueue + Tblock + Tframe + Tprop + Tpost (3.56) Ta có thể nhận thấy tính bất định của trễ truyền thông trong mạng CAN là do tính bất định của Tqueue, Tblock và Tframe. Nút mạng có mức ưu tiên cao thì tính bất định của Tblock giảm dẫn tới giá trị và tính bất định của Tqueue cũng giảm. Trường hợp này ta có trễ truyền thông nhỏ và có thể coi nó gần là hằng số. Tuy nhiên điều này không hoàn toàn chính xác và nếu yêu cầu chính xác cao ta không thể bỏ qua tính bất định của nó. Cũng có thể nhận thấy là trễ truyền thông tăng khi lưu lượng truyền thông tăng, đặc biệt đối với các nút mạng có mức ưu tiên thấp.
3.3.3. Trễ truyền thông trong trường hợp truyền lại
Khi làm việc trong môi trường có nhiễu lớn, nhiều khả năng xảy ra lỗi do
lỗi nút mạng phát hiện ra lỗi sẽ gửi “cờ lỗi” hay khung truyền lỗi (error frame) lên mạng. Một trong những giải pháp khi xảy ra lỗi là thực hiện việc truyền lại.
Khi xảy ra lỗi thì cần một khoảng thời gian kể từ khi phát hiện ra lỗi tới khi bắt đầu thực hiện việc truyền lại gọi là khoảng thời gian phục hồi, Tph . Tph theo tiêu chuẩn cho phép chọn trong khoảng từ 17 lần tới 23 lần độ dài một bit. Trong một số trường hợp có nhiễu lớn có thể lấy Tph với độ dài tới 29 bits. Khi thực hiện truyền lại thì trễ trên đường mạng đối với thông điệp m bất kỳ sẽ là:
nm
l i
m i r prop bit data stuff
tx N xN T T t
T 47 8 , (3.57)
trong đó nm là số lần truyền lại của thông điệp m và trm,i là thời gian nữa lần truyền thứ i và thứ i-l của thông điệp m. Thời gian nữa hai lần truyền liên tiếp trong khi thực hiện việc truyền lại sẽ nằm trong khoảng [Tph Tph + Tframe]. Ta có thể tính được thời gian chiếm đường truyền tối đa là:
Ttx, max = Tframe + nm (Tfram + Tph) + Tprop (3.58) trong đó: Tframe = [Nstuff + 47 + 8 x Ndata] Tbit
Từ (3.6) ta có trễ truyền thông trong trường hợp này như sau:
Tcom.d = Tpre + Tqueue + Tblock + Ttx + Tpost (3.59) Với Ttx được tính theo (3.57)
So với trường hợp không phải truyền lại, Ttx lớn hơn và mang nhiều tính bất định hơn nên trễ truyền thông trong trường hợp này lớn hơn và bất định hơn.
3.3.4. Nhật xét
Trong mạng CAN những thông điệp có mức độ ưu tiên cao hơn luôn giành được quyền truyền tin trên mạng dẫn tới trễ truyền thông của nó nhỏ hơn và có thể coi gần như là hằng số. Các nút mạng có mức độ ưu tiên càng thấp thì trễ truyền thông lớn hơn càng ít tính tiền định. Khi đòi hỏi độ chính xác cao thì không thể coi trễ trong mạng CAN là hằng số. Trễ truyền thông tăng khi lưu lượng truyền thông tăng và mức độ ảnh hưởng của lưu lượng truyền thông đối với các nút mạng có mức ưu tiên càng thấp thì càng lớn.
Việc phân tích trễ truyền thông trong mạng CAN cũng cho thấy trễ truyền thông sẽ tăng lên trong trường hợp hệ thống chịu tác động của nhiễu. Sự tác động của nhiễu gây ra lỗi truyền thông và yêu cầu truyền lại đối với các thông điệp bị lỗi.
Việc truyền lại các thông điệp lỗi làm tăng lưu lượng truyền thông và điều này làm tăng tính bất định và giá trị của trễ truyền thông trong hệ thống mạng. Cũng giống như trường hợp mạng Ethernet, hệ thống mạng trong các trạng thái như vậy có thể bị bão hoà và chiều dài hàng đợi có thể tăng hoặc giảm do ảnh hưởng của các thành phần trễ khác và dẫn tới sự thay đổi nhảy bước của trễ truyền thông. Như vậy trễ truyền thông trong mạng CAN cũng không hoàn toàn là ngẫu nhiên.