Hình vẽ dới đây cho ta thấy bít thứ 5 của bản tin căn cớc của nút 1 và 3 truyền đi là bít trội, trong khi đó nút 2 phát đi ở thẻ một bít lặn và đồng thời đọc đờng bus ngợc trở lại thì nó
Trang 1Môc lôc
Lêi nãi ®Çu
PH N 1 GI I THI U CHUNG Ầ – Ớ Ệ 3
1 Thực trạng và giải pháp cho bài toán điều khiển máy hàn lăn 3
1.1 Máy hàn lăn 3
1.2 Hệ thống điều khiển hiện nay của máy hàn lăn .3
1.3 Giải pháp .5
PH N 2 GIAO TH C CAN Ầ – Ứ 7
2 Lớp DataLink 7
2.1 Giới thiệu 7
2.2 Quá trình truyền thông trong mạng CAN 7
2.3 Cấu trúc các bản tin 11
2.4 Lỗi và xử lý lỗi 17
3 Lớp Physical 21
3.1 Lớp PLS (Physical Signaling) 22
3.2 Lớp PMA( Physical Medium Attachment) 29
3.3 Lớp MDI (Medium Dependent Interface ): CiA DS-102 38
PH N 3 - TH C HI N Ầ Ự Ệ 40
4 Thiết kế thiết bị vào/ra phân tán 40
4.1 Thiết kế phần cứng 41
4.2 Xây dựng thuật toán chung thực hiện giao thức CAN cho một nút mạng 45
4.3 Xây dựng phần mềm điều khiển trên máy tính: 54
Phô lôc : Hä vi ®iÒu khiÓn 8051……….57
Tµi liÖu tham kh¶o……… 61
Trang 2Lời nói đầu
Trong công cuộc Công nghiệp hoá - Hiện đại hoá của đất nớc cùng với sự phát triển không ngừng của khoa học kỹ thuật, tự động hoá trong các dây chuyền công nghệ là vấn đề cấp bách, có ảnh hởng trực tiếp đến
sự phát triển kinh tế nớc ta Một trong những yếu tố quan trọng cấu thành nên dây chuyền sản xuất hiện đại là hệ thống điều khiển tự động Nó góp phần làm giảm chi phí , tăng năng suất và chất lợng sản phẩm
Trong thực trạng nền công nghiệp của nớc ta đa số là các dây truyền lạc hậu, cơ cấu điều khiển vẫn mang nặng tính chất sử dụng sức ngời hơn là kĩ thuật tự động hoá Bên cạnh những dây chuyền mới nhập về chúng ta vẫn có thể nghiên cứu nhằm thay thế hệ thống điều khiển cũ trong các máy còn sử dụng tốt phần cơ khí
Trong kì đồ án tốt nghiệp này, em đợc giao nhiệm vụ thiết kế hệ thống
điều khiển tự động cho hai tay máy của thiết bị hàn lăn thay thế cho hệ thống điều khiển cũ của nó Với sự hớng dẫn tận tình của thầy giáo Vũ Vân Hà, em đã từng bớc tiếp xúc trực tiếp với những vấn đề thực tiễn, và cách giải quyết vấn đề đó Trong thiết kế đồ án này,em đã nghiên cứu và
đa ra hệ thống điều khiển có cấu trúc phân tán thay thế cho hệ thống cũ của máy hàn Sau đây là nội dung đồ án tốt nghiệp của em
Phần 1 : Giới thiệu chung
I Thực trạng và giải pháp cho bài toán điều khiển máy hàn lăn
Phần 2 :Giao thức CAN
II Lớp Datalink
III Lớp Physical
Phần 3 : Thực hiện thiết kế các thiết bị phân tán
IV Xây dựng hệ thống điều khiển.
V Kết luận
Trang 3PHẦN 1 – GIỚI THIỆU CHUNG
1 Thực trạng và giải phỏp cho bài toỏn điều khiển mỏy hàn lăn 1.1 Mỏy hàn lăn.
Mỏy hàn lăn là một thiết bị được sử dụng rộng rói trong cỏc ngành cụng nghiệp sản xuất cỏc sản phẩm sử dụng vỏ kim loại như đồ hộp, sơn Mỏy hàn lăn cú cấu tạo rất phức tạp nhưng cú thể hỡnh dung cấu tạo của nú theo sơ đồ sau :
Cấu tạo cơ bản của máy gồm ba phần :
- Bộ phận đa phôi vào là một tay máy công nghiệp
- Bộ phận hàn
- Bộ phận đa sản phẩm ra là một tay máy khác
Chu trình hoạt động của một tay máy nh sau (T1,T2,P1,P2 là các sensor vị trí của tay máy)
P1 Sang trái P2
T1
Sang phải Lên Xuống Lên Xuống
Bộ phận hàn có cấu tạo rất phức tạp và cơ chế hoạt động không phải là vấn đề ta quan tâm nên không đợc trình bày ở đây
1.2 Hệ thống điều khiển hiện nay của mỏy hàn lăn
Là một thiết bị được dựng phổ biến, mỏy hàn lăn đó sớm cú mặt trong cụng nghiệp Cựng với nú, cỏc bộ điều khiển cũng đó được chế tạo từ rất sớm mà chủ yếu là với cụng nghệ analog Do đặc thự của chức năng, cỏc
bộ phận của mỏy hàn thường nằm cỏch xa nhau trong một phõn xưởng, mặt khỏc do cụng nghệ lạc hậu nờn cỏc bộ phận này phải cú một bộ điều
Bộ phận đưa
phôi liệu vào Bộ phận hàn
Bộ phận đưa sản phẩm ra
Trang 4thường cồng kềnh, hệ thống dây dẫn phức tạp khiến cho công tác giám sát, điều khiển khó khăn, cộng với chi phí bảo hành, bảo dưỡng rất tốn kém Hình sau cho ta một hình dung về hệ thống điều khiển cũ.
Trong đó, bộ phận 1 là một tay máy, bộ phận 2 là sensor đo vị trí của tay máy, bộ phận 3 là một động cơ làm nhiệm vụ uốn tấm phôi liệu do tay máy 1 đưa vào thành hình trụ
Nhu cầu nâng cấp hệ thống điều khiển này là rất cấp bách vì nó ảnh hưởng trực tiếp đến quá trình sản xuất, chất lượng sản phẩm
Một hệ thống điều khiển mới sẽ được chấp nhận nếu đạt được các mục tiêu sau :
Đáp ứng tốt các yêu cầu về chất lượng điều khiển như tính năng thời gian thực, ít xảy ra sự cố
Thuận lợi cho người vận hành giám sát và điều khiển các bộ phận khác nhau của máy từ trung tâm điều khiển
Chi phí lắp đặt và bảo dưỡng thấp
Dễ dàng trong việc thay thế các thiết bị điều khiển khi xảy ra hỏng hóc
Từ những yêu cầu trên ta thấy rằng hệ thống điều khiển mới không thể không sử dụng mạng truyền thông công nghiệp với cấu trúc phân tán và một giao thức truyền thông hợp lý vì mạng truyền thông công nghiệp sẽ cho phép ta kết nối các thiết bị trường cũng như các bộ điều khiển, máy tính điều khiển giám sát vào một đường bus duy nhất Cấu trúc phân tán cho phép phân tán các chức năng xuống cấp trường, giảm chi phí và công nối dây
Vậy vấn đề còn lại ở đây chỉ còn là chọn được một giao thức truyền thông công nghiệp phù hợp với bài toán đã cho cũng như phải tính đến khả năng áp dụng và mở rộng cho nhiều bài toán khác
Bộ điều khiển 1
khiển 3
Trang 51.3 Giải pháp
Như phần trên đã đề cập, việc chọn cho hệ thống điều khiển có cấu trúc phân tán của ta một giao thức truyền thông là rất quan trọng Một giao thức phù hợp sẽ cho chất lượng điều khiển tốt nhưng cũng không quá phức tạp sẽ dễ dẫn đến chi phí lớn
Hiện nay, một số giao thức truyền thông đang được dùng phổ biến là: Fieldbus, Profibus, CAN, Modbus
Fieldbus, Profibus (mở rộng của Fieldbus) là những hệ thống bus trường có nhiều ưu điểm, nhưng có cấu trúc tương đối phức tạp và thường áp dụng cho những bài toán có phạm vi rộng, cho phép sự tham gia của nhiều thiết bị điều khiển tự động, các trạm kỹ thuật cũng như các phụ kiện phân tán của các hãng khác nhau cùng làm việc trên cùng mạng bus Việc áp dụng chúng trong phạm vi hẹp sẽ khó khăn và không cần thiết
Modbus thực chất là một chuẩn giao thức và dịch vụ thuộc lớp ứng dụng (Application Layer) Nó định nghĩa một tập hợp rộng các dịch vụ phục vụ trao đổi dữ liệu quá trình, dữ liệu điều khiển và dữ liệu chẩn đoán Modbus mô tả quá trình giao tiếp giữa một bộ điều khiển với các thiết bị khác thông qua cơ chế yêu cầu/ đáp ứng Modbus hay được dùng trong các hệ thống thu thập dữ liệu và điều khiển giám sát (SCADA) Trong khi đó, CAN (Controller Area Network) là một hệ thống bus, đầu tiên được dùng để nối mạng các phương tiện giao thông cơ giới để thay thế cách nối điểm-điểm, sau này được chuẩn hoá quốc tế trong ISO
11898 đã từng bước xâm nhập vào một số lĩnh vực tự động hoá nhờ những ưu thế của nó như tốc độ truyền dẫn tương đối cao ở khoảng cách ngắn và một vài đặc tính kỹ thuật khác
Với bài toán trên, giao thức CAN tỏ ra phù hợp bởi nó có những ưu điểm phù hợp với yêu cầu của bài toán như:
Có thể đặt cấu hình một các mềm dẻo ( nghĩa là có thể thêm vào mạng 1 nút mà không cần phải thay đổi gì về phần cứng, phần mềm)
Tính toàn vẹn của dữ liệu cao (rất thích hợp với môi trường công nghiệp nhiễu lớn)
Tự động phát hiện và báo lỗi
Tự động truyền lại bản tin đã sửa lỗi khi bus rỗi ( nâng cao hiệu suất sử dụng bus)
Trang 6 Và như trên đã nói, tốc độ truyền dẫn tương đối cao ở khoảng cách ngắn rất thích hợp với bài toán có phạm vi địa lý hẹp.
Việc áp dụng mạng truyền thông với giao thức CAN sẽ cho phép kết nối tất cả các thiết bị điều khiển, thiết bị vào/ra phân tán, máy tính (có phần giao tiếp theo chuẩn CAN) vào một đường bus duy nhất, sẽ giảm được chi phí dây nối
Mô hình tổng quát :
Để có thể hiểu thêm về CAN và những đặc tính kỹ thuật của giao thức này, phần 2 sẽ trình bày chi tiết cấu trúc và đặc điểm của nó, góp phần làm rõ lý do lựa chọn giao thức truyền thông cho bài toán điều khiển máy hàn lăn
Bộ điều khiển 1
Bộ điều khiển 2
Máy tínhđiều khiển
Đối tượng
1
Đối tượng 2
Đối tượng 3I/O
CAN bus
Trang 7PHẦN 2 – GIAO THỨC CAN
CAN (Controller Area Network) là một giao thức thụng tin nối tiếp Giao thức này thực hiện kết nối cỏc bộ điều khiển dưới chế độ thời gian thực và phõn tỏn với độ an toàn, tốc độ cao
Theo tiờu chuẩn CAN 2.0 thỡ CAN bao gồm 2 lớp của mụ hỡnh OSI là:
Datalink
Physical
2 Lớp DataLink
2.1 Giới thiệu
này đã đợc chuẩn hoá theo tiêu chuẩn ISO 11898 Nó gồm hai lớp con:
- Lớp Logical Link Control(LLC)
- Lớp Medium Access Control (MAC)
Lớp LLC đa ra các dịch vụ nh : Lọc bản tin ,khai báo chồng ,điều tiết các dịch vụ
Lớp MAC chịu trách nhiệm đóng gói dữ liệu, mã hoá khung dữ liệu,
điều tiết quá trình truy nhập trung gian, phát hiện lỗi, báo lỗi, nhận thông báo lỗi, sắp xếp thứ tự thực hiện các quá trình trên
2.2 Quỏ trỡnh truyền thụng trong mạng CAN.
2.2.1 Cơ chế truyền thụng
Ta xét một mạng CAN có 4 trạm tham gia truyền thông có sơ đồ :
Trang 8Mạng Can cho phép nhiều trạm cùng tham gia truyền thông Quá trình truyền thông đợc thực hiện nh sau:
Khi một trạm đợc quyền phát đi bản tin (ở sơ đồ trên trạm 2 đang truyền), các trạm khác lắng nghe Sau khi nhận đợc khung bản tin phát đi
từ trạm 2 thì nhiệm vụ của các trạm còn lại là quyết định xem liệu bản tin đó có đợc chấp nhận hay không Quá trình truyền thông trong mạng CAN có thể xem tơng tự nh quá trình truyền nhận của một trạm truyền thanh, thông tin về tình hình tắc nghẽn của các tuyến đờng đợc gửi đến tất cả các lái xe đang tham gia giao thông để từ đó họ chọn cho mình con
đờng tốt nhất
2.2.2 Khả năng truy nhập dữ liệu từ xa
CAN cho phép thực hiện phơng thức truy cập dữ liệu của một trạm ở
xa khi có một yêu cầu gửi đến Yêu cầu truyền dữ liệu từ xa giống nh dạng một câu hỏi và trạm có câu trả lời sẽ đa ra dữ liệu đợc yêu cầu trong lần giao tiếp thứ hai Các trạm đều có thể nhận câu trả lời này nếu cần thiết Các khung dữ liệu này đều đợc xác định cụ thể bởi một trờng bit
đặc biệt, nó đợc coi nh là thẻ căn cớc (có thể gọi tên là Identifier) Hình dới đây minh hoạ :Trạm 1 phát ra một yêu cầu gửi (RTR) cho trạm 2, trạm 2 nhận đợc yêu cầu gửi, nó sẽ đáp ứng bằng khung bản tin trả lời
2.2.3. Cơ chế truy nhập Bus
Giao thức CAN cho phép nhiều trạm cùng tham gia truy nhập bus Nếu có nhiều hơn một trạm cùng đồng thời truy nhập bus thì sẽ có một cơ chế trọng tài bit đứng ra phân xử Phơng thức truy nhập bus ở đây gọi
là truy nhập không tích cực, sử dụng cơ chế trọng tài bit “thông thái”
Ph-ơng thức này đợc gọi là “Cơ chế phân xử đa truy nhập bus thông qua khả năng tự phát hiện tranh chấp và va chạm trên cơ sở bản tin u tiên”(CSMA/CD+AMP) Sự ưu tiên của bản tin đợc xác định thông qua thẻ căn cớc(Identifier) Khi bus ở trạng thái rỗi, một số trạm có thể bắt
Trang 9đầu tiến hành truyền một khung bản tin Các trạm đều có thể đồng thời
đọc từng bít một từ bus trong khi đang tiến hành gửi từng bít của một khung bản tin và so sánh với bít vừa đợc phát đi Nếu nút nào đó phát đi một bit lặn mà lại đọc về một bit trội hoặc ngợc lại thì nó sẽ mất quyền truy nhập bus Hình vẽ sau đây cho ta thấy cả ba nút 1,2 ,4 cùng truy nhập đờng truyền nhng chỉ có nút 2 dành đợc quyền truy nhập đờng truyền Điều này sẽ đợc thực hiện thông qua cơ chế bit trọng tài
mà bộ truyền xác định đợc rằng không có xung đột xảy ra trên đờng truyền
Hình vẽ dới đây cho ta thấy bít thứ 5 của bản tin căn cớc của nút 1 và 3 truyền đi là bít trội, trong khi đó nút 2 phát đi ở thẻ một bít lặn và đồng thời đọc đờng bus ngợc trở lại thì nó thu đợc một bít trội, do đó nút này mất quyền tham gia truyền tin và chuyển sang chế độ nghe đờng truyền tức là đóng vai trò trung chuyển các bít lặn Qúa trình truyền từng bít bản tin căn cớc của nút 1 đến bít 2 thì bị mất quyền tham gia việc phân xử xung đột bởi nút 3 (lúc này nó gửi đi bit trội nhng nhận lại là bit lặn)
Điều đó có nghĩa là bản tin căn cớc của nút 3 dành đợc quyền u tiên cao nhất mà không cần phải lặp lại việc phát đi các bản tin căn cớc Nút 3 đã dành đợc quyền phát tin, nút 1 và nút 2 sẽ gửi bản tin sau khi nút 3 báo kết thúc quá trình truyền của nó
Trang 102.2.5 Cỏc dịch vụ truyền thụng
Giao thức CAN cung cấp hai dịch vụ truyền thông Dịch vụ Write Object truyền một khung dữ liệu (Data Frame) từ một nút (gọi là nút phát)và nhiều nút khác có thể nhận bản tin này (các nút này gọi là nút nhận) Quá trình này không tính đến một nút nào đó chấp nhận bản khung bản tin theo nghĩa đến một điểm nào đó nó mới sử dụng bản tin này Dịch vụ này đợc gọi là lớp dịch vụ truyền thông của mạng CAN Dịch vụ truyền thông thứ hai sẽ là gọi một bản tin cụ thể ,dịch vụ này
có tên là Read Object Nó đợc khởi tạo bởi một hay nhiều nút nhận(Consumer) Do đó các nút này sẽ truyền trở lại một khung dữ liệu
8 bit (Remote Frame) Một nút nào đó sau khi đã nhận Remote Frame
nó sẽ gửi lại một bản tin báo đã nhận đợc tơng ứng Các điều nói trên đợc minh hoạ rất rõ trên hình vẽ dới đây
Trang 112.3 Cấu trỳc cỏc bản tin
2.3.1 Cấu trỳc khung bản tin dữ liệu
Cấu trúc của một khung dữ liệu (Data Frame) đợc quy định bởi mỗi nút của mạng CAN khi nút đó muốn tham gia truyền tin hoặc nó nhận đ-
ợc bản tin yêu cầu gửi của một nút nào đó.Độ dài tối đa của một khung dữ liệu là 8 byte
Cấu trúc của Data Frame :
Bít trội SOF ,bít này có tác dụng đồng bộ các nút tham gia truyền thông
Trờng trọng tài bít Arbitrtion Field cho biết nội dung và thứ tự u tiên của bản tin
Trờng bít tiếp theo Control Field chỉ rõ sổ các byte dữ liệu có trong bản tin
Trờng bít CRC(Cyclic Redundancy Check) dùng để phát hiện lỗi truyền thông có thể có Trờng bit CRC gồm 15 bit liên tiếp nhau và kết thúc bởi một bít lặn
Trong thời gian truyền 2 bit ACK(Acknowledgement ) nút nhận sẽ gửi ra một bít lặn Mọi nút đều thừa nhận bản tin báo lỗi nh một bản tin đúng bằng cách gửi lại một bít trội Cuối (End of Frame) của Data Frame là chuỗi 7 bít lặn Giữa hai khung dữ liệu phải là một bít lặn và
3 bit tạm dừng (Intermision Field)
2.3.1.1 Bit mở đầu Start of Frame(SOF)
Sự đồng bộ hoá chặt chẽ đợc thực hiện bất cứ khi nào xảy ra chuyển mức tín hiệu từ trạng thái “ lặn” sang ”trội”(recessive-to-dominant edge) khi:
Bus ở trạng thái rỗi
Đờng truyền ở trạng thái tổng trở cao(treo cao)
Bít cuối của chuỗi bít dừng(Intermission)
Luật thực hiện sự đồng bộ của giao thức CAN yêu cầu quá trình đồng
bộ đặc biệt chặt chẽ để thực hiện đồng thời các bớc nhảy từ trạng thái
Trang 12“lặn” sang “trội” trong khi bus ở trạng thái rỗi Ngoài ra, mỗi lần xảy ra việc nhận SOF bit đều phải thực hiện việc đồng bộ chặt chẽ Một bít SOF
có thể đợc nhận trong hợp bus ở trạng thái rỗi cũng nh treo cao và cuối của khoảng trống nối hai khung dữ liệu Với mô hình chuẩn Bosch CAN
có thể đồng bộ chặt chẽ không chỉ cho trạng thái bus rỗi mà còn cho cả trạng thái treo cao và bít cuối của chuỗi ngăn cách giữa hai khung dữ liệu
2.3.1.2 Tr ờng Arbitration Field
Trờng này có nhiệm vụ phân xử khi có tranh chấp bus xảy ra
Định dạng chuẩn(Standard Format) của thẻ căn cớc là 11 bit và tơng thích với thẻ căn cớc chuẩn trong trờng hợp định dạng mở rộng (Extend Format) Từ hình vẽ ta thấy theo sau 11 bit Identifier là bit RTR Trong một khung dữ liệu thì bit RTR phải là bit trội Trong Remote Frame thì bít RTR phải là bít lặn Theo sau thẻ trọng tài (Base ID) là bit IDE đợc truyền ở trạng thái trội và đợc truyền dới dạng bít lặn trong khung Extended Format Vì vậy mà khung Standard Format “đánh bại” Extend Format trờng hợp xảy ra xung đột bus
Extended Format gồm hai phần :Base ID (11 bít) và Extended ID (18 bít) Bit SRR(Substitute Remote Request) thay thế bit RTR và đợc truyền dới dạng bít lặn Trong trờng hợp SRR thay đổi và truyền dới dạng bít trội thì nút nhận sẽ bỏ qua điều đó Nhng đối với bít trọng tài và nhồi bít thì giá trị của nó không đợc bỏ qua Vì bít SRR đợc nhận trớc bít IDE nên nút nhận không thể quyết định chắc chắn là nó nhận đợc bít SRR hay bít RTR Điều đó có nghĩa là bít IDE là cách thức duy nhất giúp ta phân biệt đợc một khung là Standar Frame hay Extended Frame
Định đạng của Control Field cũng tơng tự nh Standar Format hay Extended Format Control Field trong Standar Format chứa Data Length , Code(DLC) và bít IDE Bít này sẽ trở thành bít trội và bít dự bị r0 cũng trở thành bít trội Control Field trong Extended Format bao gồm bít DLC
Trang 13và hai bít dự trữ r0, r1 Hai bít này phải đợc chuyển thành bít trội nhng các nút thu có thể nhận bít trội hoặc bít lặn
2.3.1.3 Tr ờng Control Field
Số byte của trờng dữ liệu trong giao thức CAN đợc xác định bởi Data Length Code (DLC) có độ rộng là 4 bit và đợc chuyển vào trong trờng
điều khiển Control Field Độ dài của khung dữ liệu có thể nằm trong khoảng 0 đến 8 byte Các DLC nằm trong khoảng 0 đến 7 cho biết độ dài của trờng dữ liệu (0 đến 7 byte) Các DLC khác dành cho các trờng dữ liệu có độ dài là 8 byte Điều đó có nghĩa là các DLC nằm trong khoảng
từ 9 đến 15 có thể đợc dùng cho các ứng dụng đặc biệt khác Không có giới hạn cụ thể cho các DLC có thể có
2.3.1.4 Tr ờng Data Field
Trờng này chứa dữ liệu của bản tin
2.3.1.5 Tr ờng CRC Field
Trờng này nhằm thực hiện kiểm soát lỗi của khung dữ liệu đợc gửi đi bằng phơng pháp check sum toán học
Trang 14Mã kiểm tra vòng CRC gồm 15 bít liên tục và 1 bit lặn CRC cuối cùng làm nhiệm vụ đánh dấu ranh giới Quá trình kiểm tra liên tục khung dữ liệu thông qua một chu kì phụ lên rất phù hợp với các khung bản tin có
số lợng bit nhỏ hơn 127 Mã kiểm tra vòng CRC yêu cầu một khoảng cách Hamming là 6, nghĩa là cứ 5 bít lỗi ngẫu nhiên xuất hiện trong SOF, Arbitration, Control and Data Field có thể bị phát hiện Ngoài ra, nếu nh
có sự xuất hiện các bít lỗi đột biến thì có thể tăng lên đến 15 bit lỗi cũng
có thể bị phát hiện
2.3.1.6 Tr ờng Acknowledge Field
Nh hình vẽ ta thấy trờng ACK có hai bit là AKC Slot và AKC Delimiter Bộ truyền của khung gửi cả hai bit đó dới dạng bít lặn Nút nhận sẽ đáp lại một bit trội trong thời gian nhận bít ACK Slot qua bộ truyền khi nó nhận đợc một bản tin đúng Và nếu nh nút phát hiện ra một bít trội trong trờng ACK thì nó hiểu rằng đã có ít nhất một nút đã nhận đ-
ợc bản tin mà nó phát đi và nó ngừng phát sau khi truyền hết bản tin đó.2.3.1.7 Tr ờng End Of Frame (EOF)
Trang 15Mỗi khung dữ liệu Data hay Remote đợc xác định bởi một cờ bit gồm một chuỗi 7 bít lặn Trờng EOF đợc đa ra là bởi vì nếu nh có một lỗi toàn cục CRC thì bộ nhận sẽ phát ra một bản tin báo lỗi Error Frame và nó đ-
ợc truyền đi cùng với khung Data Frame hoặc Remote Frame
2.3.2 Khung Remote Frame
Một nút nguồn có thể yêu cầu gửi dữ liệu từ nút khác (nút đích) bằng cách gửi một Remote Frame cùng với một thẻ căn cớc mà thẻ này phù hợp với thẻ căn cớc của khung Data Frame yêu cầu Sau khi nhận đợc khung yêu cầu dữ liệu thì nút đích sẽ gửi một Data Frame tơng ứng với yêu cầu từ xa đã gọi đến Có hai sự khác biệt giữa hai khung Data Frame
do có bít trội RTR trong thẻ căn cớc của nó Vì vậy mà nút đã truyền khung Remote Frame sẽ nhận đợc trờng dữ liệu mong muốn tức thì
Còn lại tất cả các trờng khác của Remote Frame đều giống các trờng của Data frame
2.3.3 Khung bỏo lỗi Error Frame
2.3.3.1 Khung báo lỗi tích cực
Trang 16Một khung báo lỗi sẽ đợc tạo ra bởi nút phát hiện ra lỗi Khung này bao gồm Error Flag và Error Delimiter Các bít trội của Error Flag ghi chồng lên dữ liệu bị lỗi của khung Data Frame làm cho qúa trình truyền đợc tiếp tục.Có thể xảy ra sự trùng chập cờ lỗi do cơ chế quảng bá lỗi.Trờng Error Delimiter bao gồm 8 bit lặn và cho phép các nút bus khởi động lại
sự truyền thông trên bus một cách rõ ràng sau khi một lỗi xảy ra
2.3.3.2 Khung báo lỗi bị động
Để ngăn cho bus khỏi tình trạng treo đờng bus do hàng loạt các bản tin
đợc gửi đi từ các nút mặc định lẫn các nút đang bị nhiễu cao thì các nút này phải đợc hạn chế khả năng chỉ ra lỗi Một nút trong trạng thái lỗi tích cực có thể gửi đi một cờ lỗi tích cực trong khi đó nút có lỗi bị động chỉ
Trang 17Nút nhận trong trạng thái lỗi chủ động có thể không còn ngắt việc truyền dữ liệu bởi vì một cờ lỗi lặn không là ảnh hởng đến các mức của dờng bus.
Một bộ truyền có lỗi bị động có thể vẫn truyền bản tin của chính nó bằng cách gửi đi một cờ lỗi thụ động.Chú ý ,nếu nh một nút thu đang trong chế
độ lỗi bị động thì sẽ không thể đảm bảo đợc dữ liệu một cách đều đặn
Để tránh xảy ra việc khoá bus do các nút bị nhiễu đang gửi đi bản tin có
độ u tiên cao, các nút đang ở trạng thái lỗi bị động nên có một khoảng thời gian trễ truyền Sau khi truyền, nút ở trạng thái lỗi bị động phải đợi 3+8 bit lặn trớc khi bắt đầu truyền lại
2.3.4 Khung quỏ tải
Một khung quá tải (Overload Frame) đợc phát ra bởi một nút nếu nh
điều kiện bên trong nút này không thể bắt đầu nhận bản tin tiếp theo hoặc nếu nh trong thời gian ngừng một trong hai bit đầu tiên của trờng Intermission là bit trội.Một điều kiện quá tải khác là nếu nh một bản tin nào đợc các nút thu nhận đúng nhng bít cuối của EOF là bit trội nhng bít trội này không đợc coi nh là lỗi.Hay nói cách khác, trờng EOF đợc định dạng cố định chứa một bít không hợp lệ.Quá trình nhận bít trội này có thể làm mất sự đồng bộ, do đó một khung quá tải phải đợc phát đi Mô hình CAN chuẩn theo dõi bit trội tiêu biểu đó nh là bít cuối cùng của tr-ờng Error Delimiter và Overload Delimiter.Đó là hai trờng của khung quá tải
Việc truyền Overload Frame yêu cầu một khoảng trễ cho quá trình bắt
đầu truyền Khung Overload Frame giống nh khung Active Error Frame,
điều khác biệt duy nhất là Overload Frame không tăng bộ đếm lỗi và không gây ra sự truyền lại của một khung.Mỗi nút chỉ có thể truyền liên tục 2 khung Overload Frame
2.4 Lỗi và xử lý lỗi
Trang 182.4.1 Lỗi nhồi bit
Các trờng bit còn lại của Data Frame và Remote Frame vẫn đợc định dạng cố định và không bị nhồi bit Khung báo lỗi (Error Frame) và khung qúa tải (Overload Frame) cũng đợc giữ không thay đổi, không bị mã hoá bằng phơng pháp nhồi bit
Nếu nh có một nút phát hiện ra tại thời điểm truyền của bít thứ 6 trùng với mức bit trên bus trong vùng nhồi bit của khung thì nó sẽ phát ra một Error Frame bắt đầu với thời gian bit tiếp theo
Bất cứ khi nào bộ truyền phát hiện ra có 5 bit liên tiếp (kể cả bit đợc nhồi) của một giá trị xác định trong dòng bít đó đợc truyền đi thì nó tự
động chèn thêm 1 bit vào dòng bít thực sự đợc truyền Bit nhồi sẽ đợc loại bỏ tự động bởi nút nhận Nếu có hơn 5 bit liên tiếp với cùng trạng thái đợc phát hiện giữa Start of Frame và CRC Delimiter, thì luật nhồi bit đã bị vi phạm.Một Stuff-Error xảy ra và một khung Error Frame phát ra.Việc gửi bản tin lại đợc lặp lại
2.4.2 Lỗi bit
Tất cả các nút đều thực hiện việc quan sát bit.Nếu 1bit lỗi xảy ra khi
bộ truyền gửi một bít trội nhng lại phát hiện ra một bit lặn trên đờng bus
Trang 19hoặc gửi một bit lặn nhng lại phát hiện ra một bit trội trên bus Lúc đó một khung Error Frame đợc phát ra và bắt đầu gửi ngay sau thời gian bít tiếp theo.
Khi một bít trội đợc phát hiện thay vì một bit lặn thì sẽ không có lỗi xảy ra trong Arbitration hoặc Acknowledge Slot bởi vì các trờng bit này phải có khả năng bị ghi đè bởi một bit trội để đạt đợc thẻ trọng tài và khả năng nhận biết bản tin là đúng hay sai
Khi bộ truyền đang gửi một cờ báo lỗi tích cực (Passive Error Flag) nhng
đồng thời lại phát hịên một bit trội thì không thể hiểu đợc cờ lỗi đó
2.4.3 Lỗi CRC
Với cơ cấu kiểm tra vòng bộ truyền thực hiện kiểm tra check sum cho chuỗi bit CRC vòng tròn bắt đầu từ bit Start of Frame cho cho đến cuối của trờng dữ liệu.Chuỗi bit CRC này đợc truyền đi trong trờng CRC Field của Data Frame hoặc Remote Frame Một bit lỗi CRC đợc phát hiện nếu nh kết quả kiểm tra của nút thu khác với chuỗi bit CRC nhận đ-
ợc Trong trờng hợp này nút thu loại bỏ bản tin và truyền một bản tin báo lỗi ngay sau ACK Delimiter trừ khi một cờ lỗi cho một điều kiện lỗi khác đã đợc bắt đầu
Trang 20Bit kiểm tra check sum CRC chỉ dùng cho việc phát hiện lỗi Nó không đợc dùng cho xác định lỗi Khoảng cách Hamming của mã CRC
đợc coi là bằng 6.Với giả thiết đó nó có thể phát hiện tới 5 bit lỗi xuất hiện phân tán trong bản tin hay cái gọi là lỗi bất thờng có thể lên tới 15 bit
2.4.4 Lỗi do khụng thoả món khoảng cỏch Hamming
Giả thiết rằng chuỗi đợc thực hiện trong CAN đảm bảo một khoảng cách Hamming là 6 Nghĩa là các bít lỗi xuất hiện phân tán ngẫu nhiên sẽ
có thể đợc phát hiện ra Nhng cũng có một số trờng hợp ngẫu nhiên mà ở
đó hai bit lỗi địa phơng không thể phát hiện đợc bởi các nút nhận của mạng CAN
Vấn đề này có thể khắc phục đợc bằng việc loại bỏ các đối tợng mà thẻ căn cớc có sử dụng nhồi bit
2.4.5 Lỗi Acknowledgement
Lỗi này xảy ra khi một nút nhận phát hiện ra bản tin mà nó nhận đợc là sai
Khi gửi đi một khung dữ liệu thì hai bit trong trờng ACK Field luôn
là bit lặn Nếu nh bộ truyền phát hiện ra trong ACK Slot là một bit trội thì nó hiểu rằng bản tin mà nó phát ra đã có ít nhất một nút nào đó nhận
đợc đúng bản tin của nó Trong trờng hợp ngợc lại Acknowledge Error phát ra cho biết bản tin phát đi đã bị sai
Trang 212.4.6 Lỗi Form.
Nếu nh bộ truyền phát hiện một bít trội trong trong các trờng định dạng sẵn CRC Delimiter, ACK Delimiter, End of Frame thì một Form Error
đợc phát ra và một khung Error Frame tạo ra
* Đánh giá khả năng không phát hiện ra lỗi của mạng CAN
Tỉ lệ xác suất xảy ra lỗi đợc tính theo công thức:
ρ < 4.7 *10-11 *error rate
Khả năng xuất hiện lỗi trong bản tin là rất nhỏ, nếu giả sử rằng tốc độ mỗi bít lỗi là 0.7s tốc độ bít là 500kbit/s, 8h/day, 365day/year nh vậy thống kê trung bình sẽ là : trong vòng khoảng 1000 năm mới có một bit lỗi không phát hiện đơc
Những lớp PMA và MDI tuõn theo những chuẩn quốc tế,quốc gia và cụng nghiệp khỏc nhau vỡ liờn quan đến quyền sở hữu trớ tuệ.Tiờu chuẩn chung nhất tuõn theo ISO 11898, đặc tả việc truyền tốc độ cao cho mạng
Trang 223.1 Lớp PLS (Physical Signaling)
3.1.1 Mã hoá bit
Các bit trong 1 bản tin của mạng CAN được mã hóa theo phương pháp NRZ(Non-Return–to-Zero) Khi đó trong toàn bộ thời gian bit, mức bit được sinh ra chỉ có thể là “trội”(dominant) hoặc
“lặn”(recessive) Phương pháp mã hoá khác như là Manchester thì yêu cầu trong mỗi bit một sườn lên hoặc một sườn xuống, dẫn đến tần số cao hơn
Một đặc tính của mã NRZ là tín hiệu không có sườn do đó có thể được dùng để đồng bộ hoá lại nếu truyền một số lượng lớn các bit liên tục có mức như nhau Vì vậy phương pháp nhồi bit được dùng để đảm bảo sự đồng bộ hoá của tất cả các nút bus Như vậy trong suốt quá trình truyền một bản tin, chỉ tối đa 5 bit liên tục là có thể có cùng mức
Khu vực nhồi bit trong một khung CAN bao gồm SOF (Start Of Frame),trường trọng tài,trường điều khiển, trường dữ liệu và trường CRC (Cyclic Redundancy Check)
Tỉ lệ bit nhồi trên tổng số bit sử dụng có thể lấy gần đúng là 1:5, nhưng trong trường hợp xấu nhất thì số bit nhồi có thể tính theo công thức sau :
Physical Signaling (PLS)
Mã hoá/ Giải mã bit Định thời gian bit Đồng bộ hoá
Physical Medium Attachment(PMA)
Đặc tính truyền nhận tin
Medium Dependent Inteface(MDI)
Cáp/Đầu nối
Trang 23s_max = (n-1) : 4 với n là số bit dữ liệu
Còn với format chuẩn thì s-max được tính theo công thức sau :
s-max = (34 + 8 dlc –1): 4 = 8+2 dlc (dlc :data length code )
Do trường điều khiển của khung dữ liệu của CAN chứa 2 bit dành sẵn
của giá trị “trội” và độ dài mã dữ liệu (Data Length Code) nên số bit nhồi cực đại thực tế không giống như tính theo lý thuyết
Bảng dưới đây là kết quả mô phỏng của tất cả các khung chuẩn có thể của CAN Không có khung nào là có số bit nhồi cực đại Những khung CAN có độ dài mã dữ liệu là 7 thì có số bit nhồi trung bình nhiều hơn những khung khác Đó là vì sao DLC có giá trị là 0111
( 0 = trội ,1 = lặn)
Trang 243.1.2 Định thời gian bit
Thời gian cho một bit theo lý thuyết là bốn khoảng thời gian không chồng lên nhau.Mỗi khoảng được tạo bởi một số nguyên lần mức thời
gian đã định trước(Time Quantum – tq).tq là độ phân giải thời gian rời
rạc nhỏ nhất được dùng cho một nút CAN Độ dài của nó được chia bởi một bộ phát dao động tần số có thể lập trình được của nút CAN Có ít
nhất là 8 và nhiều nhất 25 tq cho mỗi bit.Thời gian bit được chọn bằng cách lập trình độ rộng của tq và số lượng tq trong các khoảng khác
nhau.Bộ điều khiển CAN sẽ làm việc này
Về cơ bản,khoảng thời gian bit trong CAN có thể chia thành bốn
khoảng nhỏ.Mỗi khoảng đó sẽ gồm một số tq.
SYNC_SEG có độ dài 1 tq Nó dùng để đồng bộ hoá những nút bus
khác nhau
PROP_SEG có thể lập trình được để có độ dài từ (1 , 2 … 8) tq Nó
dùng để bù lại trễ tín hiệu khi qua mạng
Trang 25PHASE_SEG1 có thể lập trình được để có độ dài từ (1 , 2 … 8) tq Nó
dùng để bù lại trễ những lỗi sườn pha và có thể được kéo dài ra trong suốt quá trình đồng bộ hoá lại
PHASE_SEG2 là giá trị lớn nhất của PHASE_SEG1 và khoảng thời gian quá trình thông tin ( Information Processing Time long) Nó cũng dùng
để bù lại những lỗi sườn pha và có thể được rút ngắn trong quá trình đồng bộ hoá lại
Khoảng thời gian quá trình thông tin (Information Processing Time long)
nhỏ hơn hoặc bằng 2 lần tq.
Tổng số tq phải từ 8 đến 25.
Lập trình điểm lấy mẫu( Sample Point ) cho phép tối ưu thời gian bit :
ví dụ lấy mẫu chậm cho phép độ dài bus lớn nhất còn lấy mẫu sớm cho phép làm chậm những sườn lên và sườn xuống
a) Sự lan truyền tín hiệu :
Cần thiết phải bù lại trễ lan truyền tín hiệu trên đường bus và qua các
mạch điện tử giao diện của các nút bus Tổng thời gian trễ lan truyền của
bộ điều khiển ,bộ cách điện tuỳ chọn, bộ phát và đường bus phải nhỏ hơn
độ dài của khoảng thời gian lan truyền (Propagation Time Prop_Seg) bên trong một bit
Ta phải tính thêm các khoảng trễ dưới đây tuỳ theo bộ phận được chọn : bộ điều khiển CAN (50ns tới 60ns), bộ nối quang học (optocoupler) (40ns tới 140ns), bộ truyền nhận (120ns tới 250ns) và dây cáp (khoảng 5ns/m) Những khoảng trễ này phải tính hai lần vì sau sự đồng bộ hoá chặt ,hầu hết các nút ở xa nhận được sự thay đổi sườn với
độ trễ của thời gian lan truyền, và bit của bộ phát phải đợi một thời gian
Trang 26được(Acknowledge) của bộ nhận là hợp lệ Theo chuẩn ISO 11898 của
bộ truyền nhận và bộ nối quang học thì ta có thể có độ dài bus cực đại là 9m ở tốc độ 1Mbit/s
Trang 27b) Tỉ lệ dữ liệu /độ dài bus:
Ở tỉ lệ bit thấp hơn 1Mbit/s, chiều dài bus có thể kéo dài đáng kể Tỉ
lệ dữ liệu ở 50kbit/s cho phép độ dài bus lên đến 1km Bộ truyền nhận theo chuẩn ISO 11898 đặc tả độ dài bus cực đại khoảng 1km.Nhưng nó cho phép sử dụng thiết bị cầu nối hoặc bộ lặp để tăng khoảng cách cho phép giữa những nút theo chuẩn ISO 11898 lên hơn 1km
Độ dài đường bus lớn nhất có thể đạt được trong mạng CAN được xác định cơ bản theo những hiệu quả vật lý sau:
- Trễ vòng lặp của những nút bus đã kết nối và trễ của đường bus
- Sự khác nhau về khoảng thời gian bit do dung lượng của bộ phát dao động giữa những nút
- Sự sụt giảm biên độ tín hiệu do điện trở nối tiếp của đường dây cáp và điện trở đầu vào của nút bus
Trang 28Bảng trên cho ta độ dài bus có thể đạt được với bộ truyền phát và đường cáp bus theo tiêu chuẩn ISO 11898.Chú ý ở đây không xem xét đến những bộ nối quang học.
3.1.3 Sự đồng bộ hoá lại
Một mạng CAN bao gồm một vài nút , mỗi nút được cấp xung đồng hồ bởi một bộ phát dao động riêng.Do đó,sự chuyển pha có thể xảy ra trong các nút khác nhau.Mỗi bộ điều khiển CAN cung cấp một cơ chế đồng bộ hoá lại (đồng bộ hoá mềm) để bù lại sự chuyển pha khi nhận một khung CAN
Sườn xung thông thường được chứa trong Sync_Seg.Nhưng khi bộ phát chậm hơn, nghĩa là sườn xung được phát hiện trong Prop_Seg ,thì bộ nhận sẽ kéo dài Phase_Seg1 với giá trị lớn nhất được lập trình của RJW (Resynchronization Jump Width - độ rộng nhảy đồng bộ hoá lại)( RJW
=1 4 tq ).(hình trên)
Trong trường hợp bộ phát nhanh hơn nghĩa là sườn xung được phát hiện trong Phase_Seg2 đằng trước thì bộ nhận sẽ rút ngắn Phase_Seg2 với giá
trị lớn nhất được lập trình của RJW (RJW = 1 4 tq) (hình dưới đây)
Chỉ có duy nhất một sự đồng bộ hoá lại được cho phép bên trong một thời gian bit
Trang 293.2 Lớp PMA( Physical Medium Attachment)
Những phương tiện truyền thông kèm theo :
- CAN tốc độ cao (ISO 11898-2)
- CAN tốc độ thấp (ISO 11519-1)
- Bộ truyền nhận chịu lỗi (ISO 11898-3)
- Bộ trao đổi/móc nối (ISO 11992)
- Dây đơn (SAE 2411)
- Truyền bằng cáp quang
- Truyền không dây
Có một số tiêu chuẩn chính thức và chuẩn công nghiệp qui định về phương tiện truyền thông kèm theo của giao thức CAN
Quan trọng nhất cho những ứng dụng thông thường là chuẩn CAN tốc
độ cao ISO 11898
Các chuẩn kỹ thuật ISO 11519-1 trong tương lai gần sẽ không được sử dụng mà chỉ được tiêu chuẩn LBS của Đức( DIN 9684) dùng trong các máy nông nghiệp
Các bộ truyền nhận có khả năng chịu lỗi được dùng trong các mạch điện tử của xe hơi ,sẽ được tiêu chuẩn hoá bởi ISO TC22 SC3 WG1 Tiêu chuẩn ISO 11992 đầu tiên được phát triển cho việc kết nối trao đổi/móc nối ,và có khả năng chịu lỗi
Giải pháp cáp quang cũng như truyền không dây cũng khả thi
Trang 303.2.1.Chuẩn CAN tốc độ cao ISO 11898-2
3.2.1.1 Chuẩn khởi tạo mạng ISO 11898-2
Chuẩn ISO 11898-2 giả thiết rằng kỹ thuật nối dây gần với cấu trúc dây đơn để giảm thiểu ảnh hưởng của sự phản xạ trên đường bus.Các đường bus phải được nối với những điện trở ở cả 2 đầu
3.2.1.2 Chuẩn ISO 11898-2 về nút
Nút bus tuân thủ chuẩn ISO 11898-2 yêu cầu một bộ vi điều khiển và một bộ điều khiển CAN , được nối với bộ truyền nhận thông qua một đường dữ liệu ra nối tiếp (Tx) và một đường dữ liệu vào nối tiếp (Rx) Điện áp chuẩn đầu ra Vref theo lý thuyết là 0.5xVcc.Bộ truyền nhận phải được cấp nguồn với điện áp danh định là +5V
Ở điều kiện tĩnh,hiệu điện thế đầu vào tại một nút bus được xác định bằng dòng điện chạy qua điện trở vi sai đầu vào của nút đó.Trong trường hợp một bit trội đầu ra những tranzitor của nút phát được bật lên ,gây ra một dòng điện chạy qua, trong khi những tranzitor đó được khoá cho một bit lặn
3.2.1.3 Những mức Bus danh định
Những nút bus sẽ kiểm tra điều kiện “lặn” của bus nếu điện áp của
CAN_H không cao hơn điện áp của CAN_L +0.5V.Nếu điện áp của CAN_H cao hơn ít nhất 0.9V so với CAN_L thì sau đó điều kiện bus
Trang 31“trội” sẽ được kiểm tra Điện áp danh định cho tình trạng trội là 3.5V đối với đường CAN_H và 1.5V cho đường CAN_L.
3.2.1.4 Nhiễu điện từ
Do sự vi sai tự nhiên của tín hiệu truyền nên CAN không nhạy cảm với nhiễu ,bởi vì cả hai đường bus bị ảnh hưởng theo cùng một cách dẫn đến sinh ra tín hiệu vi sai không bị ảnh hưởng(Vdiff = constant)
3.2.1.5 Những mức tín hiệu của chuẩn ISO tốc độ cao:
Một bộ điều khiển CAN được kết nối với một bộ truyền nhận tuân thủ ISO 11898 thông qua đường dữ liệu ra nối tiếp Tx và đường dữ liệu vào nối tiếp Rx.Bộ truyền nhận sẽ được gắn vào đường bus thông qua hai đầu nối bus của nó là CAN_H và CAN_L.Hai đầu nối này sẽ cung cấp khả năng truyền ,nhận vi sai.Tx và Rx là những tín hiệu liên hệ trực tiếp.Tín hiệu vi sai giữa CAN_H và CAN_L là gián tiếp Mỗi nút CAN phát sẽ đọc đầu ra quay lại nhưng có sự trễ giữa những bit được phát đi
và những bit đã được nhận tuỳ theo sự xem xét