Các cơ chế giao tiếp mạng CAN

Một phần của tài liệu NGHIÊN CỨU CÔNG NGHỆ HỖ TRỢ LÁI TỰ ĐỘNG TRÊN XE ĐIỆN CỦA TESLA (Trang 49)

Đặc trưng của CAN là phương pháp định địa chỉ và giao tiếp hướng đối tượng, trong khi hầu hết các hệ thống bus thường khác đều giao tiếp dựa vào địa chỉ các trạm.Mỗi thông tin trao đổi trong mạng được coi như một đối tượng , được gắn một mã số căn cước.Thông tin được gửi trên bus theo kiểu truyền thông báo với độ dài có thể khác nhau.

Các thông báo không được gửi tới một địa chỉ nhất định mà bất cứ trạm nào cũng có thể nhận theo nhu cầu.Nội dung mỗi thông báo được các trạm phân biệt qua một mã căn cước ( IDENTIFIER).Mã căn cước không nói lên địa chỉ đích của thông báo, mà chỉ biểu diễn ý nghĩa của dữ liệu trong thông báo.Vì thế, mỗi trạm trên mạng có thể tự quyết định tiếp nhận và xử lý thông báo hay không tiếp nhận thông báo qua phương thức lọc thông báo(message

filtering).Cũng nhờ xử dụng phương thức lọc thông báo, nhiều trạm có thể đồng thời nhận cùng một thông báo và có các phản ứng khác nhau. Một trạm có thể yêu cầu một trạm khác gửi dữ liệu bằng cách gửi 1 khung REMOTE FRAME.Trạm có khả năng cung cấp nội dung thông tin đó sẽ gửi trả lại một khung dữ liệu DATA FRAME có cùng mã căn cước với khung yêu cầu.Bên cạnh tính năng đơn giản, cơ chế giao tiếp hướng đối tượng ở CAN còn mang lại tính linh hoạt và tính nhất quán dữ liệu của hệ thống.Một trạm CAN không cần biết thông tin cấu hình hệ thống ( ví dụ địa chỉ trạm), nên việc bổ sung hay bỏ đi một trạm trong mạng không đòi hỏi bất cứ một sự thay đổi nào về phần cứng hay phần mềm ở các trạm khác.Trong một mạng CAN , có thể chắc chắn rằng một thông báo hoặc được tất cả các trạm quan tâm tiếp nhận đồng thời, hoặc không được trạm nào tiếp nhận.tính nhất quán dữ liệu được đảm bảo qua các phương pháp gửi đồng loạt và xử lý lỗi.[7]

Chương 3: THIẾT KẾ MODULE NHẬN BIẾT VẬT CẢN VÀ XÂY DỰNG GIAO DIỆN TƯƠNG TÁC NGƯỜI DÙNG 1.5 Thiết kế module nhận biết vật cản

1.5.1 Giới thiệu phần mềm proteus

Proteus VSM ( Vỉtual Simulation Machine) của nhà sản xuất Labcenter Electronics là phần mềm (IDE) cho phép mô phỏng hoạt động của mạch điện tử, nó bao gồm phần thiết kế mạch điện tử và phần viết chương trình lập trình điều khiển cho các loại vi điều khiển có trong thiết kế mạch điện tử như PIC, AVR,... Proteus có khả năng mô phỏng hầu hết các linh kiện điện tử cơ bản như điện trở tụ điện, transistor, relay...

Phần mềm bao gồm hai chương trình :

 ISIS (Intelligent Schematic Input System) cho phép mô phỏng mạch

 ARES (Advanced Routing and Editing Software) dùng để vẽ mạch in. Hiện nay phần mềm proteus trên là nguồn mở trên internet, chúng ta hoàn toàn có thể cài đặt miễn phí. Nhà sản xuất đã đưa ra rất nhiều phiên bản, chúng ta có thể lự những phiên bản phù hợp với nhu cầu sử dụng và cấu hình laptop, các bạn có thể tải phần mềm tại

http://dammedientu.vn/download-proteus-8-9-pro-cai-dat/

a) Vẽ sơ đồ nguyên lý

Sơ đồ nguyên lý là sơ đồ thể hiện cách thức mà mạch hoạt động, ta thể xem theo dõi được hướng di chuyển của dòng điện, xác định được điện áp tại vị trí các nút chỉ với một vài thao tác click chuột đơn giản, thông qua sơ đồ nguyên lý ta có thể hiểu được cách mà mạch chạy, những lỗi về lý thuyết mà khi lắp mạch trong thực tế có thể gặp phải. Cung cấp điều kiện lý tưởng để mạch hoạt động mà không phải chịu những ảnh hưởng từ bên ngoài. Với phần mềm proteus, ta có thể thiết kế sơ đồ thể hiện nguyên lý hoạt động của mạch qua các bước sau:

Hình 3.1: Giao diện home page proteus 8.7

Bước 2: mở chương trình ISIS Professional

Click chuột vào biều tượng Schematic Capture trên thanh công cụ của giao diện để mở chương trình ISIS Professional.

Hình 3.2: Chọn chức năng vẽ sơ đồ nguyên lý

Sau khi chương trình ISIS Professional được mở ra, khoảng không gian làm việc với giao diện thiết kế mạch sẽ xuất hiện. Khi thiết kế mạch, cần đảm bảo các mạch được thiết kế gọn trong khung màu xanh để tiện quan sát, cũng như giúp cho người khác dễ hiểu hơn.Ngoài ra cần chú ý đến cách bố trí các linh kiện hợp lý, nên phân vùng theo chức năng để mạch rõ ràng, trong trường hợp các linh kiện nằm xa nhau thì nên sử dụng label để tránh việc các dây nối đè lên nhau gây rối mắt.

Hình 3.3: Giao diện schematic

Bước 3: lấy linh kiện có sẵn trong thư viện của proteus để sử dụng. Để lấy linh kiện của proteus, đầu tiên ta chọn Component Mode Để lấy linh kiện của proteus, đầu tiên ta chọn Component Mode

Hình 3.4: Chọn linh kiện

Tiếp theo, click vào P để đi đến thư viện chứa linh kiện

Khi thư viện mở ra, cửa sổ sau sẽ xuất hiện:

Hình 3.6: Cửa sổ chứa link chọn linh kiện

Trong đó :

Keywords: là vùng nhập từ khóa tìm kiếm linh kiện

Catergory: chứa các thư viện linh kiện có trong chương trình proteus Schematic Review: hiển thị hình dạng của linh kiện

PCB Preview: hiển thị sơ đồ chân PCB của linh kiện

Trong cửa sổ chọn linh kiện, chúng ta gõ tên linh kiện cần tìm kiếm vào ô keyword. Ví dụ, khi ta muốn tìm transistor, ta cần gõ vào ô keyword từ khóa “npn” hoặc từ khóa “pnp” thì transsistor và tất cả các linh kiện liện quan đến sẽ hiện ra trong phần result. Nếu chúng ta muốn lấy ra linh kiện để sử dụng, kích đúp vào linh kiện đó hoặc nút “ok” ở góc dưới phía bên phải màn hình, chúng sẽ xuất hiện trong phần Device để chúng ta có thể sử dụng. Vậy chỉ cần biết từ khóa của linh kiện thì có thể lấy ra sử dụng , đây là bảng chứa một số từ khóa của các lin kiện trong proteus:

Tụ điện CAP

Diode tên diode, ví dụ 1N4007, 1N4148...

Transistors NPN, PNP

Led gõ LED-<màu led>

Biến trở POT-HG

Loa Speaker hoặc Sounder

Nút nhấn Button công tắc Switch IC 555 555 Atmega Atmega Màn hình hiển thị Lcd Cảm biến Sensor Cuộn cảm Inductor

Bước 4: Đưa linh kiện ra ngoài màn hình thiết kế

Nhấp chuột vào linh kiện cần lấy trong ô Devices, sau đó di chuyển con trỏ ra ngoài màn hình thiết kế nơi cần đặt linh kiện và click chuột thì linh kiện sẽ được đặt tại đó.

Hình 3.7: Minh họa linh kiện trên mạch nguyên lý.

Để di chuyển linh kiện từ vị trí này đến vị trị khác, ta cần thao tác như sau:

Nhấp và giữ trái chuột vào linh kiện cần di chuyển, sau đó rê chuột đến vị trí mới và thả chuột ra. Bạn cũng có thể dùng lệnh Block Move trên thanh công cụ di chuyển linh kiện.

Xoay linh kiện .Để xoay các linh kiện bạn thao tác như sau. Đặt con trỏ lên linh kiện cần xoay sau đó bấm phải chuột, bạn chọn các lệnh xoay (rotate) theo chiều kim đồng hồ, ngược chiều kim đồng hồ, xoay 1800. Bạn có thể lật (mirror) linh kiện theo chiều ngang hay chiều dọc cũng từ cửa sổ tắt này. Bạn cũng có thể dùng công cụ Block Rotate trên thanh công cụ để xoay linh kiện. Xóa linh kiện: bạn để con trỏ lên linh kiện cần xóa rồi bấm phải chuột sau đó bạn chọn lệnh Delete Object từ shortcut menu. Bạn cũng có thể dùng phím Delete để xóa linh kiện hoặc dùng công cụ Block Delete trên thành công cụ để xóa linh kiện.

Bước 5: Thay đổi thông số kỹ thuật của linh kiện

Để vẽ mạch một cách nhanh chóng chúng ta không nhất thiết phải lấy linh kiện có các thông số chính xác, nhất là trong mạch có nhiều linh kiện giống nhau nhưng khác thông số kỹ thuật. Nếu lấy từng linh kiện đúng với các thông số yêu cầu thì sẽ mất rất nhiều thời gian và đôi khi trong thư viện không có linh kiện với thông số mình cần tìm. Vì vậy, ta cần phải thay đổi các thông số kỹ thuật cho linh kiện.

Bước 6: Bố trí, sắp xếp lại linh kiện cho hợp lý Bước 7: Nối dây

Sau khi lấy và sắp xếp các linh kiện theo mong muốn, bạn tiến hành nối các chân linh kiện cho mạch. Bạn tiến hành như sau:

Đặt con trỏ trên chân linh kiện cần nối dây cho đến khi ô vuông màu đỏ xuất hiện sau đó bạn click chuột vào chân linh kiện và chế độ nối dây được bắt đầu. Bạn rê chuốt đến chân linh kiện cần nối khác và click chuột một lần

nữa để kết thúc quá trình nối dây. Bạn thao tác tương tự như vậy cho đến khi hoàn thành sơ đồ mạch.

Để xóa đường nối dây sai, bạn nhấp phải chuột trên đường dây nối và chọn Delete Wire hoặc double click phải trên đường dây nối.

thúc quá trình nối dây. Bạn thao tác tương tự như vậy cho đến khi hoàn thành sơ đồ mạch.

Để xóa đường nối dây sai, bạn nhấp phải chuột trên đường dây nối và chọn Delete Wire hoặc double click phải trên đường dây nối.

Bước 8: Kiểm tra sơ đồ mạch nguyên lý

Kiểm tra sơ đồ mạch sau khi hoàn thành xong mạch thiết kế là rất quan trong, nó giúp bạn tìm được những lỗi mà trong quá trình thiết kế bạn chưa phát hiện ra được.

Để kiểm tra lỗi ta thao tác như sau:

Trên thanh công cụ, bạn chọn Tool >> Electrical Rule Check

Nếu có thông lỗi bạn tìm cách khắc phục cho đến khi không còn lỗi và nhận được dòng thông báo (No ERC errors found)

b) Cách cài đặt file lập trình điều khiển vào vi điều khiển trong mạch .

Để nạp code cho vi điều khiển trong mạch nguyên lý, tại mạch nguyên lý ta click đúp chuột phải vào vi điều khiển, tại giao diện xuất hiện trên màn hình, tại mục program file ta nhập vào đường dẫn chứa file mã nguồn mà ta đã viết. Nhấn “ok” và chạy chương trình. Lưu ý file chứa mã nguồn phải có định dạng và mà chương trình có thể đọc được như file có đuôi .hex, .cof,...

1.5.2 Thiết kế module nhận biết vật cản và tính toán khoảng cách với cảm biến siêu âm cảm biến siêu âm

a) Mục đích

Tính toán khoảng cách, và xác định được cách thức hoạt động ở điều kiện lý tưởng của hệ thống

So sánh đối chiếu kết quả thu được với kết quả thực tế =>Từ đó rút ra ảnh hưởng từ điều kiện môi trường đến độ chính xác của hệ thống.

Tạo tiền đề lắp ráp mô hình thực tế. b) Thiết kế mạch mô phỏng.

Chọn linh kiện.

- cảm biến: truyền phát và thu nhận tín hiệu

Trên thế giới hiện nay có nhiều loại cảm biến siêu âm, mỗi loại có những ưu điểm và nhược điểm khác nhau như cảm biến siêu âm vân tay s10 , cảm biến siêu âm srf05 ..., Trong phần này chúng ta cần xác định khoảng cách từ cảm biến đến vật thể nên ta sử dụng cảm biến siêu âm đo khoảng cách hc- sr04

Cảm biến siêu âm Ultrasonic HC-SR04 được sử dụng để nhận biết khoảng cách từ vật thể đến cảm biến nhờ sóng siêu âm, cảm biến có thời gian phản hồi nhanh, độ chính xác cao, phù hợp cho các ứng dụng phát hiện vật cản, đo khoảng cách bằng sóng siêu âm.

cách bằng sóng siêu âm.

Cảm biến siêu âm Ultrasonic HC-SR04 sử dụng cặp chân Echo / Trigger để phát và nhận tín hiệu.

Hình 3.8: Cảm biến siêu âm HC-SR04.

Thông số kỹ thuật:

Điện áp hoạt động: 5VDC Dòng tiêu thụ: 10~40mA Tín hiệu giao tiếp: TTL

Chân tín hiệu: Echo, Trigger. Góc quét:<15 độ

Tần số phát sóng: 40Khz

Khoảng cách đo được: 2~450cm (khoảng cách xa nhất đạt được ở điều khiện lý tưởng với không gian trống và bề mặt vật thể bằng phẳng, trong điều kiện bình thường cảm biến cho kết quả chính xác nhất ở khoảng cách <100cm).

Sai số: 0.3cm (khoảng cách càng gần, bề mặt vật thể càng phẳng sai số càng nhỏ).

Kích thước: 43mm x 20mm x 17mm Chức năng của các chân:

VCC Cấp nguồn cho cảm biến (5V) hoặc 3.3V ở cảm biến 3V3

TRIGGER Chân phát sóng âm. Là chu kỳ của của điện cao /thấp diễn ra.

ECHO Trạng thái ban dầu là 0V, khi có tín hiệu trả về sẽ là 5V và sau đó trở về 0V

GND Nối cực âm của mạch

Cách thức hoạt động của cảm biến hc-sr04: Để đo khoảng cách, ta sẽ phát 1 xung rất ngắn (5 microSeconds) từ chân Trig. Sau đó, cảm biến siêu âm sẽ tạo ra 1 xung HIGH ở chân Echo cho đến khi nhận lại được sóng phản xạ ở pin này. Chiều rộng của xung sẽ bằng với thời gian sóng siêu âm được phát từ cảm biển và quay trở lại.

-vi điều khiển: nhận tín hiệu từ cảm biến âm thanh rồi đưa ra xử lý. Arduino Uno là một board mạch vi điều khiển được phát triển bởi Arduino.cc, một nền tảng điện tử mã nguồn mở chủ yếu dựa trên vi điều khiển AVR Atmega328P. Với Arduino chúng ta có thể xây dựng các ứng dụng điện tử tương tác với nhau thông qua phần mềm và phần cứng hỗ trợ.

Arduino Uno R3 đi kèm với giao diện USB, 6 chân đầu vào analog, 14 cổng kỹ thuật số I / O được sử dụng để kết nối với các mạch điện tử, thiết bị bên ngoài. Trong đó có 14 cổng I / O, 6 chân đầu ra xung PWM cho phép các nhà thiết kế kiểm soát và điều khiển các thiết bị mạch điện tử ngoại vi một cách trực quan. Chúng được kết nối trực tiếp với máy tính thông qua USB để giao tiếp với phần mềm lập trình IDE, tương thích với Windows, MAC hoặc Linux Systems. Các ngôn ngữ lập trình như C và C ++ được sử dụng trong IDE.

Hình 3.9: Vi điều khiển arduino uno r3

Thông số kỹ thuật:

Vi điều khiển ATmega328 họ 8bit

Điện áp hoạt động 5V DC (chỉ được cấp qua cổng

USB)

Tần số hoạt động 16 MHz

Dòng tiêu thụ khoảng 30mA

Điện áp vào lý tưởng 7-12V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Số chân Analog 6 (độ phân giải 10bit)

Dòng tối đa trên mỗi chân I/O

30 mA

Dòng ra tối đa (5V) 500 mA

Dòng ra tối đa (3.3V) 50 mA

Bộ nhớ flash 32 KB (ATmega328) với 0.5KB

dùng bởi bootloader

SRAM 2 KB (ATmega328)

EEPROM 1 KB (ATmega328)

Chức năng các chân:

 GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau.

 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.

 3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.

 Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND.

 IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở chân này. Và dĩ nhiên nó luôn là 5V. Mặc dù vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn.

 RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ.

 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị

khác thông qua 2 chân này. Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây. Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết

 Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite(). Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác.

 Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác

Vậy nên ta sẽ sử dụng Arduino Uno R3 để mô phỏng.

- Màn hình LCD : hiển thị khoảng cách từ cảm biến đến vật cản.

Một phần của tài liệu NGHIÊN CỨU CÔNG NGHỆ HỖ TRỢ LÁI TỰ ĐỘNG TRÊN XE ĐIỆN CỦA TESLA (Trang 49)