1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn giao tiếp máy tính giao tiếp rs232 – i2c can

23 785 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 7,83 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

II GIAO TIẾP I2C 1 Giới thiệu  Là chuẩn giao tiếp giữa các vi điều khiển với nhau hay giữa vi điều khiển với các chip ngoại vi như EEPROM, IC thời gian thực DS1307…  Chỉ có ở các MCU t

Trang 1

BÁO CÁO BÀI TẬP LỚN GIAO TIẾP MÁY TÍNH

Trang 4

 Các MCU tầm cao cùng các chân giao tiếp RS232

 ATMEL Atmega 2560  Texas Instruments

LM4F120H5QR

Trang 5

2) Các câu lệnh lập trình trên Arduino

 Serial.begin(speed, config): khởi tạo

 Speed: tốc độ Baud

 Config: cài đặt số data, parity, stop bit

 Vd: Serial2.begin(115200, SERIAL_7N1): tốc độ Baud 115200, 7 bit data

 Serial.println(value, format): gửi data

 Value: giá trị cần gửi, có thể là kiểu string, int,…

 Format: định dạng, như HEX, DEC, BIN, OCT

 Vd: Serial.println(“CMNR”); Serial3.println(giatri_ADC, BIN)

 Serial.read(): đọc byte đầu tiên từ máy tính gửi xuống

 Vd: dieu_khien = Serial.read()

 Serial.readBytes(): đọc nhiều byte kí tự trong bộ đệm

Trang 6

 putc(): gửi đi chuỗi kí tự qua RS232

 Vd: for ( i = 0; i<= 10; i++)

Trang 7

II) GIAO TIẾP I2C

1) Giới thiệu

 Là chuẩn giao tiếp giữa các vi điều khiển với nhau hay giữa vi điều khiển với các chip ngoại

vi như EEPROM, IC thời gian thực DS1307…

 Chỉ có ở các MCU tầm trung theo cấu trúc Havard

 Gồm 1 chân xung clock (SCL) và 1 chân truyền dữ liệu SDA

 Tốc độ truyền: từ 10Kbit/s đến 3.4Mbit/s, tốc độ thường dùng (standard mode): 100Kbit/s

 Khoảng cách truyền: ngắn, trong phạm vi 1 board mạch

Trang 8

 Các MCU tầm trung cùng các chân

giao tiếp I2C

 PIC18f4620

 Atmega 32u4

Trang 9

 Các MCU tầm cao cùng các chân

giao tiếp I2C

 PIC24FJ64  Texas Instruments

LM4F120H5QR

Trang 10

2) Các câu lệnh lập trình trên Arduino

 Wire.begin(): khởi tạo I2C bus là master

 Wire.beginTransmission(address): truyền lệnh cho slave có địa chỉ address

 Vd: Wire.beginTransmission(1): truyền lệnh cho slave có địa chỉ trên bus là 1

 Wire.write(value) : truyền giá trị value cho slave có địa chỉ đã định

 Vd: Wire.write(dieukhien_LED)

 Wire.read(): nhận giá trị được truyền trên bus

 Vd: x = Wire.read()

 Wire.endTransmission(): dừng truyền, restart bus

 Wire.requestFrom(address, quantity, stop): yêu cầu slave

có address gửi data có số bit là quantity; nếu stop = true thì

stop truyền, trả lại bus trống, nếu stop = false

thì restart quá trình truyền nhận data

 Vd: Wire.requestFrom(1, 8)

Trang 11

3) Các câu lệnh lập trình trên CCS

 #use i2c(option): khởi tạo chuẩn truyền i2c cho MCU như là master/slave, địa chỉ của slave, các chân kết nối…

 Vd: #use i2c(master, sda=PIN_C4, scl=PIN_C3, force_hw)

 i2c_start(): khởi tạo, chuẩn bị truyền dử liệu lên bus i2c

 i2c_stop(): dừng truyền/nhận dữ liệu, cho bus i2c rảnh

 i2c_write(address), i2c_write(data): gửi lệnh đến slave có địa chỉ trên bus là address hay có thể

là 1 byte data

 Vd: i2c_write(0xA0); i2C_write(LED);

 i2C_read(): nhận về data được gửi trên bus

 Vd: giatri = i2c_read();

Trang 12

III) GIAO TIẾP CAN

1) Giới thiệu:

 Là chuẩn truyền có khoảng cách truyền là xa nhất và ổn định nhất hiện nay

 Tốc độ truyền: I2C < CAN < SPI

 Cơ chế kiểm tra lỗi phức tạp nhờ vậy dữ liệu truyền/nhận rất chính xác

 Chỉ có trên các MCU tầm cao hay các MCU có modun chuyên biệt (PIC18Fxx80), các MCU khác muốn giao tiếp CAN phải dùng MCP2515

Trang 13

 Các MCU cùng các chân giao tiếp CAN

 Dòng PIC18F có 1 modun CAN  Dòng ARM M4 có 3 modun CAN

Trang 14

2) Mạch CAN 2 node

Trang 15

1) Giao tiếp giữa RS232 giữa máy tính và Arduino

 Nhập số thứ tự nào trên máy tính thông qua giao diện COM thì con LED ứng với số thứ tự

đó sáng

IV) DEMO ỨNG DỤNG

Trang 16

2) Giao tiếp I2C giữa Arduino và DS1307

 Nạp thời gian trong máy tính vào DS1307 sau đó đọc thời gian do DS1307 đếm rồi hiển thị lên máy tinh thông qua giao diện COM

Trang 17

3) Giao tiếp Arduino và EEPROM

 Nạp giá trị vào eeprom sau đó ngắt điện Cấp điện lại cho eeprom rồi đọc giá trị trong eeprom

và hiển thị lên máy tính thông qua giao diện COM

Trang 18

4) Giao tiếp i2c giữa 2 board Arduino

 Nhận lệnh từ máy tính, master truyền dữ liệu cho slave làm sáng LED ứng với số được nhập

từ máy tính

 Nút nhấn được nối với 1 chân của slave, khi nhấn nút, slave truyền tín hiệu cho master rồi hiển thị lên máy tính thông qua giao diện COM

Trang 19

5) Giao tiếp i2c giữa PIC điều khiển LED

 Nhập số thứ tự trên máy tính thông qua giao diện COM thì master sẽ cho LED sáng theo số thứ tự nhập xuống

 Master gửi lệnh cho slave sáng LED

Trang 20

6) Giao tiếp i2C giữa PIC và EEPROM

 PIC đọc giá trị AD, ta có thể chọn ô nhớ eeprom để ghi vào Có thể chọn chế độ đọc hay ghi Kết quả sẽ hiển thị lên LCD

Trang 21

5) Giao tiếp i2c giữa PIC điều khiển động cơ RC servo

 Điều khiển góc mà động cơ muốn quay từ máy tính thông qua giao diện COM, nhận lệnh từ máy tính, master truyền lệnh qua slave, slave điều khiển động cơ

Trang 22

7) Giao tiếp CAN 2 node

 Node 1 cứ mỗi 1s thì lại gửi request Node 2 đọc giá trị AD rồi gửi tín hiệu lại cho Node 1 Node 1 nhận giá trị AD do node 2 gửi về rồi hiển thị lên máy tính

Ngày đăng: 27/10/2015, 12:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w