Chương 1.1 Lịch sử của CAN CAN (Controller Area Network) là một giao thức giao tiếp nối tiếp dùng bus chia sẻ bắt ñầu phát triển vào năm 1986 bởi Robert Bosch GmbH. Sự gia tăng số lượng của các hệ thống ñiều khiển phân bố trên xe hơi và sự gia tăng chi phí ñi dây ñiện trên thân xe ñã dẫn ñến sự ra ñời của giao thức CAN nối tiếp dùng cho ô tô. Mặc dù ban ñầu nó chỉ ñược sử dụng trong công nghiệp ô tô, nhưng nó ñã nhanh chóng ñược ứng dụng trong các hệ thống nhúng ví dụ như hệ thống ñiều khiển trong công nghiệp nơi mà giao tiếp tốc ñộ cao ñược yêu cầu. Với sự công nhận của ngày càng nhiều ngành công nghiệp, giao thức ñã ñược ñổi tên ngắn gọn là CAN.2 Cái nhìn tổng quát về CAN Một hệ thống CAN gởi ñi các thông ñiệp qua một mạng lưới bus nối tiếp.
Mỗi nút ñược kết nối với nhau thông qua mạng lưới. Không cần thiết phải có một bộ ñiều khiển trung tâm. Sơ ñồ khối của một mạng CAN ñiển hình ñược trình bày trong 1.1 Ứng dụng 1 Ứng dụng 2 Bộ ñiều khiển Bộ ñiều khiển CAN Ứng dụng 3 Ứng dụng 4 Bộ ñiều khiển Bộ ñiều khiển Hình 1-1 Giao tiếp dùng CAN CAN là một giao thức giao tiếp multi-master nên mỗi nút trong hệ thống ngang hàng với nhau. Mỗi bộ xử lí có thể gởi thông ñiệp tới các bộ xử lí còn lại.
Nếu một bộ xử lí nào ñó gặp thất bại, các bộ xử lí khác trong hệ thống vẫn tiếp tục hoạt ñộng bình thường. Khi một nút nào ñó muốn truyền thông ñiệp trên mạng thì phải ñợi cho ñến khi bus rãnh. Mỗi thông ñiệp có một phần nhận dạng và mọi nút ñều nhận ñược thông ñiệp. Nút sẽ chọn ra thông ñiệp thích hợp và bỏ qua các thông ñiệp còn lại.
Giao thức CAN ñược thiết kế dùng cho những thông ñiệp ngắn dài không quá 8 byte. Giao thức không ngắt quãng dữ liệu ñang truyền nhưng nó gán ñộ ưu tiên cho các thông ñiệp ñể ngăn chặn sự xung ñột và ñể ñảm bảo rằng những thông ñiệp khẩn cấp ñược truyền ñi trước. Giao thức CAN còn bao gồm các cơ chế dò lỗi và hạn chế lỗi mạnh mẽ Luận Văn Tốt Nghiệp Trang 8 HV: Phan Phúc Cường Thiết Kế Bộ Điều Khiển CAN cài ñặt trên FPGA GVHD: Th.S Hồ Trung Mỹ nhằm ñảm bảo cho sự truyền nhận với ñộ tin cậy cao. Tính mạnh mẽ còn thể hiện ở chỗ mỗi nút bị lỗi sẽ ñược loại bỏ khỏi mạng lưới mà không ảnh hưởng tới phần còn lại của mạng lưới.
Không giống như một mạng lưới truyền thống như USB hay Ethernet, CAN không gởi những block lớn dữ liệu từ nút A sang nút B dưới dự giám sát của một bộ ñiều khiển bus. Trong một mạng CAN, nhiều thông ñiệp ngắn ñược truyền ñi rộng rãi trong toàn bộ mạng lưới, cho phép tính nhất quán về mặt dữ liệu ở mỗi nút của hệ thống. Giao tiếp qua lại trong một CAN bus bắt ñầu khi ứng dụng cung cấp cho bộ ñiều khiển dữ liệu cần truyền. Bộ ñiều khiển cung cấp giao tiếp giữa ứng dụng và CAN bus.
Chức năng của bộ ñiều khiển CAN là biến ñổi dữ liệu ñược ứng dung cung cấp thành thông ñiệp dạng frame ñể truyền ñi trên bus. Một bộ thu phát nhận dòng dữ liệu nhập nối tiếp từ bộ ñiều khiển và biến ñổi thành một tín hiệu vi sai. Những tín hiệu vi sai ñược truyền vật lý trên CAN bus. CAN bus bao gồm ñường tín hiệu CAN CAN-High và CAN-Low.
Hai ñường tín hiệu này ñược phân cực ñể loại nhiễu. CAN sử dụng một kĩ thuật phân xử bit trong ñó thứ tự ưu tiên truy cập bus ñược xác ñịnh bởi một phần nhận dạng 11 bit. Nhờ vào kiến trúc này mà một nút với phần nhận dạng thấp hơn sẽ có thứ tự ưu tiên cao hơn. Mỗi bộ ñiều khiển trong mạng sẽ nhận bất kì thông ñiệp nào ñược truyền trên bus.
Dựa vào cơ chế lọc, bộ ñiều khiển quyết ñịnh liệu thông tin nhận ñược có thích hợp với ứng dụng mà nó giao tiếp hay không và sau ñó tiến hành xử lí thông tin.3 Vấn ñề ñược nhắm tới Vấn ñề cuối cùng ñược nhắm tới là thiết kế và phát triển một con chip hiện thực bộ ñiều khiển CAN. Con chip này sẽ giao tiếp với ứng dụng qua một bộ cảm biến (sensor) và một bộ phát (actuator). Cảm biến cung cấp tín hiệu tương tự ñể truyền trên mạng. Tín hiệu tương tự gởi từ bộ cảm biến của ứng dụng tới bộ chuyển ñổi ADC và ñược chuyển sang tín hiệu số.
Tín hiệu số sau ñó gởi tới bộ vi xử lí ñể xử lí dữ liệu và quyết ñịnh việc truyền thông ñiệp thông qua mạng CAN. Nó cũng xử lí các thông ñiệp nhận ñược từ mạng CAN. Sơ ñồ khối của bộ ñiều khiển CAN ñược trình bày trong hình vẽ 1. Luận Văn Tốt Nghiệp Trang 9 HV: Phan Phúc Cường Thiết Kế Bộ Điều Khiển CAN cài ñặt trên FPGA GVHD: Th.S Hồ Trung Mỹ Bộ cảm biến Bộ phát Bộ chuyển ñổi ADC Tín hiệu tương tự từ cảm biến ñược chuyển sang tín hiệu số và gởi tới bộ vi xử lí Bộ vi xử lí Cung cấp thông ñiệp sẽ truyền ñi và nhận thông ñiệp từ bộ ñiều khiển giao thức Bộ ñiều khiển giao thức CAN Tạo frame từ thông ñiệp theo giao thức và tái tạo thông ñiệp từ các frame nhận ñược Bộ thu phát Chuyển tín hiệu nhị phân sang tín hiệu ñiện ñể tương thích với môi trường truyền vật lí CAN bus Hình 1-2 Giải pháp cho Bộ ñiều khiển CAN Bộ ñiều khiển giao thức CAN nhận thông ñiệp chưa ñược ñịnh dạng từ bộ vi xử lí, tạo frame theo ñặc tả của giao thức và cũng tái tạo thông ñiệp từ frame nhận ñược.
Các tín hiệu số truyền ñi bởi bộ ñiều khiển giao thức ñược chuyển thành tín hiệu ñiện bởi bộ thu phát ñể tương thích với ñường truyền vi sai. Sự tích hợp các khối riêng rẽ này lại tạo nên bộ ñiều khiển CAN.4 Hiện thực bộ ñiều khiển giao thức CAN trên FPGA Sự quan tâm ñến hệ thống CAN ñang gia tăng một cách nhanh chóng bởi vì sẽ có ngày càng nhiều các ứng dụng dùng CAN và thêm vào ñó nhiều thiết bị hiện có trên thị trường có khả năng giao tiếp với hệ thống CAN. Những yêu cầu ngày một tăng của các ứng dụng liên quan tới mức ñộ tích hợp, khả năng sử dụng lại của code và sản phẩm cuối cùng dẫn tới nhu cầu phát triển một hệ thống hoàn chỉnh trên một con chip. Mục tiêu của luận văn này là thiết kế, hiện thực và trình bày công việc của một bộ ñiều khiển giao thức CAN.
Luận Văn Tốt Nghiệp Trang 10 HV: Phan Phúc Cường Thiết Kế Bộ Điều Khiển CAN cài ñặt trên FPGA GVHD: Th.S Hồ Trung Mỹ 1.5 Tiến hành Mục tiêu của luận văn này là hiện thực bộ ñiều khiển CAN trên. Mô hình RTL (Register Transfer Level) của bộ ñiều khiển giao thức ñược phát triển dựa trên Verilog HDL và việc mô phỏng chức năng của mô hình ñược ñã ñạt ñược kết quả. Việc truyền nhận các frame thông ñiệp khác nhau ñược kiểm tra với mô hình mạng CAN có 4 bộ ñiều khiển giao thức. Hành vi chính xác của bộ ñiều khiển giao thức CAN ñược kiểm tra nhiều hơn bằng việc gây ra lỗi và kiểm lại cơ chế dò lỗi.
Mô hình tổng hợp của bộ ñiều khiển giao thức CAN ñã ñạt ñược và kiểm tra tương ñương ñược thực hiện. Mô phỏng ñộng ñược thực hiện trên FPGA ñể kiểm tra tính năng của bộ ñiều khiển giao thức. Luận Văn Tốt Nghiệp Trang 11 HV: Phan Phúc Cường Thiết Kế Bộ Điều Khiển CAN cài ñặt trên FPGA GVHD: Th.S Hồ Trung Mỹ Chương 2.GIAO TIẾP NỐI TIẾP SỬ DỤNG GIAO THỨC MẠNG ĐIỀU KHIỂN 2.1 Giới thiệu về giao thức giao tiếp Nhu cầu giao tiếp tăng mạnh dẫn ñến sự phát triển ña dạng của các loại giao thức giao tiếp. Các giao thức khác nhau tùy theo ứng dụng mà chúng thiết kế.
Cụ thể là, các giao thức nhắm vào các ứng dụng công nghiệp là giao thức “ñầu cuối cấp cao” (higher end) “ñầu cuối cấp thấp” (lower end). Giao thức “ñầu cuối cấp cao” hay còn gọi là “factory bus” nhắm ñến hệ thống thông tin toàn bộ factory, trong ñó giao thức “ñầu cuối cấp thấp” hay còn gọi là “fieldbus” nhắm ñến hệ thống thông tin xử lý nội hay còn gọi là hệ thống thông tin bộ cảm biến/ bộ phát. Thuận lợi về chi phí và tính năng cao cấp bởi kĩ thuật bán dẫn cùng với sự phát triển của mạng và hệ thống truyền thông kết quả là xuất hiện nhu cầu về các phương tiện tiên tiến hơn cho hệ thống thông tin chuẩn hóa cao cấp trong lĩnh vực ứng dụng fieldbus. Ngành công nghiệp này ñòi hỏi những hệ thống ñiều khiển linh ñộng mà có mức ñộ chuẩn hóa cấp cao.
Mức ñộ chuẩn hóa cấp cao này dẫn ñến các các giải pháp có thể dùng lại ñược dưới dạng các mô ñun phần cứng và phần mềm mà chúng dễ dàng thích ứng các nhu cầu và các giải pháp ña dạng. Số lượng giao thức fieldbus ñã tăng ñều ñặn trong 2 thập kỉ vừa qua, trong ñó Profibus, Interbus-S, P-Net, LON hay FIP là các chuẩn giao thức ñược chấp nhận. Ngành công nghiệp xe hơi ñã phát triển một số hệ thống ñiện tử ñáp ứng nhu cầu ngày càng cao về sự tiện lợi, tiện nghi và ñộ an toàn ñồng thời là yêu cầu về giảm sự tiêu thụ nhiên liệu và cải thiện mức ñộ ô nhiễm. Kết quả là mức ñộ phức tạp của hệ thống ñiều khiển và nhu cầu về trao ñổi dữ liệu ñòi hỏi ngày càng nhiều dây dẫn và các tín hiệu kết nối.
Điều ñó thúc giục sự thay thế phương pháp ñi dây hiện tại bằng kiến trúc mạng ở ñó tất cả các nút trong mạng giao tiếp với nhau qua bus chung. Sử dụng CAN, bộ ñiều khiển, bộ cảm biến, và bộ phát giao tiếp với nhau theo thời gian thực, tốc ñộ lên ñến 1Mbits/s, qua 2 dây bus dữ liệu nối tiếp. Giao thức CAN ñược mô hình bởi Virtual Leveled Systems Architecture (VLSA) dựa trên khái niệm “biến chia sẻ” (Shared Variables). Trong mô hình này, các tác vụ riêng lẻ nằm trên hệ thống ñiều khiển truyền tin có nhiệm vụ như là một phần của chương trình ñiều khiển.
Luận Văn Tốt Nghiệp Trang 12 HV: Phan Phúc Cường Thiết Kế Bộ Điều Khiển CAN cài ñặt trên FPGA GVHD: Th.S Hồ Trung Mỹ Hình 2-1 Sơ ñồ ñơn giản của mạng truyền tin Trong hình trên, tất cả các nút kết nối ñến bus CAN chung. Các nút tương tác với quá trình xử lý thực qua các cảm biến và bộ phát.