Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 29

TRƯỜNG ĐH GIAO THÔNG VẬN TẢI TP.

HCM
KHOA ĐIỆN – ĐIỆN TỬ VIỄN THÔNG

BÁO CÁO HỌC PHẦN


ĐO LƯỜNG VÀ ĐIỀU KHIỂN HỆ THỐNG GIAO
THÔNG

ĐỀ TÀI
CẢM BIỆN NHIỆT ĐỘ LM35 VÀ HỆ THỐNG
GIÁM SÁT SỬ DỤNG MẠNG CAN

Giảng viên hướng dẫn: TS LƯU HOÀNG MINH


Sinh viên thực hiện:
LÊ MINH HẢO 2051210097 DG20

Tp. Hồ Chí Minh, ngày 21 tháng 10 năm 2023

1
Nhận xét của giảng viên hướng dẫn
...............................................................................................................
...............................................................................................................
...............................................................................................................
...............................................................................................................
...............................................................................................................
...............................................................................................................
TP.Hồ Chí Minh, ngày…..tháng…..năm 2023

Giảng viên hướng dẫn

(ký và ghi rõ họ tên)

LỜI CẢM ƠN

2
Sau thời gian học tập, tìm hiểu và được thầy chỉ dạy, nhóm em đã nắm
được những kiến thức cơ bản của môn học đo lường và điều khiển hệ
thống giao thông . Để áp dụng lý thuyết của môn học với thực tế, em đã
được giao đề tài: “cảm biến nhiệt độ LM35 và hệ thống giám sát sử dụng
mạng can ”.
Tuy nhiên, do kiến thức còn hạn chế, tài liệu tham khảo giới hạn nên báo
cáo còn xảy ra sai sót. Em rất mong thầy và các bạn góp ý, bổ sung để báo
cáo của em được hoàn thiện hơn và giúp em rút được thêm kinh nghiệm
cho các báo cáo khác ở các môn học sau.
Em xin chân thành cảm ơn thầy!

3
MỤC LỤC
LỜI CẢM ƠN

LỜI MỞ ĐẦU

CHƯƠNG 1. TỔNG QUAN VỀ CẢM BIẾN NHIỆT ĐỘ LM35...........................6


1.1 Giới thiệu..............................................................................................................6
1.2 Sơ đồ đấu chân của cảm biến nhiệt độ LM35...................................................7
1.3 Thông số kỹ thuật LM35....................................................................................7
1.4 Nguyên lý hoạt động của cảm biến nhiệt độ LM35..........................................8
1.5 Các dạng mạch đo nhiệt độ................................................................................8
1.6 Các bước tính toán nhiệt độ bằng cảm biến nhiệt độ LM35...........................9
1.7 Công thức chuyển đổi điện áp thành nhiệt độ..................................................9
1.8 Ứng dụng của cảm biến nhiệt độ LM35..........................................................10
1.9 LM35 VỚI ARDUINO......................................................................................10
CHƯƠNG 2. MẠNG TRUYỀN THÔNG CÔNG NGHIỆP...................................12
2.1 Mạng truyền thông công nghiệp?....................................................................12
2.2 Trình bày sơ lược phần lý thuyết cơ sở kỹ thuật mạng truyền thông công
nghiệp được giao của nhóm........................................................................................12
2.2.1 Các khái niệm cơ bản....................................................................................12
2.2.2 Chế độ truyền tải...........................................................................................13
2.2.3 Cấu trúc mạng – Toplogy..............................................................................15
2.2.4 Kiến trúc giao thức........................................................................................16
2.2.5 Truy nhập bus................................................................................................18
2.3 Trình bày về mạng CAN...................................................................................18
2.3.1 Sơ lược phần lý thuyết mạng CAN được giao của nhóm...........................18
2.3.2 Sơ lược về module can bus MCP2515..........................................................19
2.3.3 Hệ thống giám sát tốc độ động cơ sử dụng mạng CAN..............................21
2.3.4 Viết chương trình cho hệ thống giám sát tốc độ động cơ...........................22

4
LỜI MỞ ĐẦU
Trong thời đại công nghiệp 4.0, việc triển khai ứng dụng điều khiển,
xử lý giao thông thông minh ngày càng phổ biến vì sự phát triển vượt bậc
của lĩnh vực này không chỉ áp dụng trong công nghệ mà còn hữu dụng triệt
để trong đời sống xã hội. Khi áp dụng các kĩ thuật này vào mô hình hệ
thống giao thông, còn những bất cập mà không chỉ dừng lại việc điều khiển
các vi điều khiển mà còn điều khiển cả hệ thống tuyến đường giao thông
lớn … mà nó ngày càng trở nên phức tạp.
Với sự phát triển mạnh mẽ của nền công nghiệp hóa – hiện đại hóa,
đặc biệt là ngành điện, điện tử, sự phát minh ra các linh kiện điện tử hay
các con IC đã và đang ngày càng đáp ứng được yêu cầu của các hệ thống
trong lĩnh vực công nghiệp. Việc sử dụng các linh kiện điện tử giúp cho hệ
thống trở nên linh hoạt và đa dạng hơn, giá thành thấp hơn và độ chính xác
cao hơn.

5
CHƯƠNG 1. TỔNG QUAN VỀ CẢM BIẾN NHIỆT ĐỘ LM35
1.1 Giới thiệu
Nhiệt độ là một trong những thông số được đo phổ biến nhất trên thế giới.
Chúng được sử dụng trong các thiết bị gia dụng như lò vi sóng, tủ lạnh, máy
điều hòa, v.v.. cho đến các thiết bị được sử dụng trong công nghiệp. Cảm biến
nhiệt độ về cơ bản đo nóng/lạnh được tạo ra bởi một đối tượng mà nó được kết
nối. Cảm biến cung cấp một giá trị điện trở, dòng điện hoặc điện áp ở đầu ra tỷ
lệ với nhiệt độ cần đo, sau đó các đại lượng này được đo hoặc xử lý theo ứng
dụng của chúng ta.

Cảm biến nhiệt độ về cơ bản được phân thành hai loại:

 Cảm biến nhiệt độ không tiếp xúc: Các cảm biến nhiệt độ này sử dụng đối
lưu và bức xạ để theo dõi nhiệt độ.
 Cảm biến nhiệt độ tiếp xúc: Cảm biến nhiệt độ tiếp xúc được chia thành
ba loại:

1. Cơ điện (Cặp nhiệt điện – Thermocouple)

2. Cảm biến nhiệt độ điện trở (RTD – Resistance Temperature


Detector)
3. Dựa trên chất bán dẫn (LM35, DS1820, v.v..)
LM35 là một cảm biến nhiệt độ tương tự, điện áp ở đầu ra của cảm biến tỷ lệ
với nhiệt độ tức thời và có thể dễ dàng được xử lý để có được giá trị nhiệt độ
bằng oC.

Ưu điểm của LM35 so với cặp nhiệt điện là nó không yêu cầu bất kỳ hiệu chuẩn
bên ngoài nào. Lớp vỏ cũng bảo vệ nó khỏi bị quá nhiệt. Chi phí thấp và độ
chính xác cao đã khiến cho loại cảm biến này trở thành một lựa chọn đối với
những người yêu thích chế tạo mạch điện tử, người làm mạch tự chế và các bạn
sinh viên.

Vì có nhiều ưu điểm nêu trên nên cảm biến nhiệt độ LM35 đã được sử dụng
trong nhiều sản phẩm đơn giản, giá thành thấp. Đã hơn 15 năm kể từ lần ra mắt
đầu tiên nhưng cảm biến này vẫn tồn tại và được sử dụng trong nhiều sản phẩm
và ứng dụng đã cho thấy giá trị của loại cảm biến này.

6
1.2 Sơ đồ đấu chân của cảm biến nhiệt độ LM35

Hình 1.2:

chân Tên chân Chức năng

1 VCC hay +VS Chân cấp nguồn với điện áp từ 4V đến 30V

Chân lấy điện áp ra, điện áp ở chân này thay


2 VOUT
đổi 10mV/oC

3 GND Chân nối đất

1.3 Thông số kỹ thuật LM35

 Hiệu chuẩn trực tiếp theo oC


 Điện áp hoạt động: 4-30VDC
 Dòng điện tiêu thụ: khoảng 60uA
 Nhiệt độ thay đổi tuyến tính: 10mV/°C
 Khoảng nhiệt độ đo được: -55°C đến 150°C
 Điện áp thay đổi tuyến tính theo nhiệt độ: 10mV/°C
 Độ tự gia nhiệt thấp, 0,08oC trong không khí tĩnh
 Sai số: 0,25°C
 Trở kháng ngõ ra nhỏ, 0,2Ω với dòng tải 1mA

7
 Kiểu chân: TO92
 Kíchthước: 4.3 × 4.3mm
LM35 có thể đo nhiệt độ trong phạm vi từ -55oC đến 150oC. Độ chính xác thực
tế của cảm biến: ±1/4°C ở nhiệt độ phòng và ±3/4°C trong phạm vi nhiệt độ từ -
55°C đến 150°C. Việc chuyển đổi điện áp đầu ra sang oC cũng dễ dàng và trực
tiếp.

Trở kháng đầu ra nhỏ, đầu ra tuyến tính và hiệu chuẩn chính xác là những đặc
tính vốn có của LM35, giúp tạo giao tiếp để đọc hoặc điều khiển mạch rất dễ
dàng.

Điện áp cung cấp cho cảm biến LM35 hoạt động có thể từ +4 V đến 30 V. Nó
tiêu thụ dòng điện khoảng 60μA. LM35 có nhiều họ là LM35A, LM35CA,
LM35D, LM135, LM135A, LM235, LM335. Tất cả các thành viên trong họ
LM35 đều hoạt động theo nguyên tắc giống nhau nhưng khả năng đo nhiệt độ
khác nhau và chúng cũng có nhiều kiểu chân khác nhau (SOIC, TO-220, TO-92,
TO).

1.4 Nguyên lý hoạt động của cảm biến nhiệt độ LM35


Cảm biến LM35 hoạt động bằng cách cho ra một giá trị điện áp nhất định tại
chân VOUT (chân giữa) ứng với mỗi mức nhiệt độ. Như vậy, bằng cách đưa vào
chân bên trái của cảm biến LM35 điện áp 5V, chân phải nối đất, đo hiệu điện thế
ở chân giữa, bạn sẽ có được nhiệt độ (0-100ºC) tương ứng với điện áp đo được.

Vì điện áp ngõ ra của cảm biến tương đối nhỏ nên thông thường trong các mạch
ứng dụng thực tế, chúng ta thường dùng Op-Amp để khuếch đại điện áp ngõ ra
này.

1.5 Các dạng mạch đo nhiệt độ


LM35 có thể được sử dụng một trong hai cấu hình mạch như hình bên dưới. Cả
hai đều mang lại kết quả khác nhau.

Hình 1.5

8
Trong cấu hình mạch phía bên trái, cảm biến chỉ có thể đo nhiệt độ dương từ
2 oC đến 150 oC. Theo cấu hình mạch này, chúng ta chỉ cần cấp nguồn cho
LM35 và kết nối đầu ra trực tiếp với bộ chuyển đổi tương tự sang số.

Trong cấu hình mạch thứ hai, chúng ta có thể đo nhiệt độ toàn dải từ -55 oC đến
150 oC. Cấu hình mạch này hơi phức tạp nhưng mang lại kết quả cao. Trong
trường hợp này, chúng ta phải kết nối một điện trở bên ngoài (R1) để chuyển
mức điện áp âm lên dương. Giá trị điện trở bên ngoài có thể được tính toán theo
công thức ghi bên dưới cấu hình mạch.

Mặc dù cấu hình mạch đầu tiên không cần điện trở ở phía đầu ra nhưng tôi
khuyên bạn nên kết nối điện trở 80 kΩ đến 100 kΩ giữa chân VOUT và chân
GND. Khi tôi thực hiện một số thí nghiệm, tôi nhận thấy rằng các số đọc bị dao
động và ngõ ra VOUT có hiện tượng thả nổi. Vì vậy, một điện trở giữa
VOUT và GND sẽ cố định chân VOUT ở mức thấp và ngăn không cho chân này
bị thả nổi.

Các thông số về độ chính xác cho cả hai cấu hình mạch là khác nhau. Mức độ
chính xác trung bình là ± 1 oC cho cả hai cấu hình. Nhưng mức độ chính xác
giảm đối với khoảng nhiệt độ từ 2 oC đến 25 oC.

1.6 Các bước tính toán nhiệt độ bằng cảm biến nhiệt độ LM35

 Thiết kế mạch.
 Cấpnguồn cho cảm biến với điện áp từ 4V đến 30V. Chân GND được nối
đất.
 Kếtnối chân VOUT với đầu vào bộ chuyển đổi tương tự sang số hay vi
điều khiển.
 Lấy mẫu đọc ADC để xác định điện áp đầu ra VOUT.
 Chuyển đổi điện áp thành nhiệt độ.

1.7 Công thức chuyển đổi điện áp thành nhiệt độ


Công thức để chuyển đổi điện áp sang nhiệt độ độ C cho LM35 là:

Nhiệt độ đo được (oC) = Điện áp được đọc bởi bộ ADC/10 mV

Tôi chia cho 10 mV vì độ nhạy của cảm biến LM35 là 10mV.


9
Làm theo các bước và hướng dẫn ở trên, bạn có thể dễ dàng giao tiếp cảm biến
LM35 với bất kỳ bộ vi điều khiển nào có chân chuyển đổi tín hiệu tương tự sang
số được tích hợp sẵn. Hầu hết tất cả các bộ vi điều khiển ngày nay đều có bộ
ADC tích hợp sẵn.

1.8 Ứng dụng của cảm biến nhiệt độ LM35


Cảm biến nhiệt độ LM35 phù hợp cho các ứng dụng:

 Học tập nghiên cứu


 Đo nhiệt độ của một môi trường cụ thể
 Giám sát nhiệt độ trong hệ thống HVAC
 Kiểm tra nhiệt độ pin
 Cung cấp thông tin về nhiệt độ của một linh kiện điện tử khác
1.9 LM35 VỚI ARDUINO

Sơ đồ đấu nối
Arduino Uno Cảm biến nhiệt độ LM35
VCC +Vs (4 – 20V)
GND GND
A0 VOUT

Hình 1.9
CODE

10
int sensorPin = A0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int reading = analogRead(sensorPin);
float voltage = reading * 5.0 / 1024.0;
float temp = voltage * 100.0;
Serial.println(temp);
delay(1000);
}
GIẢI THÍCH CODE

reading = analogRead(sensorPin);

Hàm analogRead() có nhiệm vụ đọc giá trị điện áp từ một chân Analog (ADC),
hàm này luôn trả về 1 số nguyên nằm trong khoảng từ 0 đến 1023 tương ứng với
thang điện áp (mặc định) từ 0 đến 5V. Hàm analogRead()cần 100 micro giây để
thực hiện.

Vậy reading = analogRead(sensorPin) có nghĩa là đọc giá trị điện áp từ cảm


biến nhiệt độ LM35.

float voltage = reading * 5.0 / 1024.0;

Công thức tính ra giá trị hiệu điện thế từ giá trị cảm biến (đơn vị Volt) Voltage
= giá trị điện áp từ cảm biến chia cho mức analog cao nhất (1024) rồi nhân với
mức điện áp 5V.

Như ở trên ta thấy nhiệt độ thay đổi tuyến tính 10mV/°C nên đổi từ Vol sang °C
thì ta chỉ cần nhân giá trị điện thế với 100 là ra nhiệt độ.

float temp = voltage * 100.0;

11
CHƯƠNG 2. MẠNG TRUYỀN THÔNG CÔNG NGHIỆP
2.1 Mạng truyền thông công nghiệp?
Sự phổ biến của các giải pháp tự động hóa sử dụng hế thống truyền thông số là
kết quả tổng hợp của các tiến bộ trong kỹ thuật vi điện tử, kỹ thuật máy tính, kỹ
thuật thông tin và đương nhiên là của cả kỹ thuật tự động hóa. Mạng truyền
thông công nghiệp (MCN) là một khái niệm chung chỉ các hệ thống mạng truyền
thông số, truyền bit nối tiếp , được sử dụng để ghép nối các thiết bị công nghiệp.
Các hệ thống truyền thông công nghiệp phổ biến hiện nay cho phép liên kết
mạng ở nhiều mức khác nhau, từ cảm biến, cơ cấu chấp hành dưới cấp trường
cho đến các máy tính điều khiển, thiết bị quan sát, máy tính điều khiển giảm sát
và các máy tính cấp điều hành xí nghiệp, quản lý công ty.

2.2 Trình bày sơ lược phần lý thuyết cơ sở kỹ thuật mạng truyền thông
công nghiệp được giao của nhóm
2.2.1 Các khái niệm cơ bản

- Thông tin: Là sự thông báo, trao đổi, giải thích về một đối tượng cụ thể nào đó
nhằm mang lại một sự hiểu biết nào đó cho đối tượng nhận tin. Một hệ thống xử lí
thông tin hoặc 1 hệ thống truyền thông là 1 hệ thống kĩ thuật chỉ quan tâm tới các đầu
vào và đầu ra là thông tin.Tuy nhiên, đa số các hệ thống kỹ thuật khác thường có đầu
vào và đầu ra hỗn hợp.

- Dữ liệu: Là một đại lượng khá trừu tượng, vì vậy cần được biểu diễn dưới một
hình thức khác . Khả năng biểu diễn thông tin rất đa dạng , ví dụ qua chữ viết, hình
ảnh, cử chỉ…Thông tin có thể được mô tả bằng dữ liệu để có thể lưu trữ và xử lí trong
máy tính.

- Tín hiệu: Việc trao đổi thông tin( giữa người và người, người và máy) hay dữ
liệu( giữa máy và máy) chỉ có thể thực hiện được nhờ tín hiệu. Có thể định nghĩa , tín
hiệu là biểu diễn của đại lượng vật lí chứa đựng tham số thông tin/dữ liệu và có thể
truyền dẫn được.

12
Hình 2.2.1: Các dạng tín hiệu

- Giao tiếp và truyền thông: Là quá trình trao đổi thông tin giữa 2 chủ thể với
nhau, được gọi là đối tác giao tiếp, theo một phương pháp được quy định trước. Để
thực hiện việc giao tiếp hay truyền thông ta cần các tín hiệu thích hợp, có thể là tín
hiệu tương tự hay tín hiệu số.

- Tính năng thời gian thực: Là một trong những đặc trưng quan trọng nhất đối
với các hệ thống tự động hóa nói chung và các hệ thống bus trường nói riêng. Sự hoạt
động bình thường của một hệ thống kĩ thuật làm việc trong thời gian thực không chỉ
phụ thuộc và độ chính xác, đúng đắn của một kết quả đầu ra, mà còn phụ thuộc vào
thời điểm đưa ra kết quả.

Để đảm bảo tính năng thời gian thực, một hệ thống bus phải đảm bảo về độ
nhanh nhạy, tính tiền định, độ tin cậy kịp thời, tính bền vững.
2.2.2 Chế độ truyền tải

Chế độ truyền tải được hiểu là phương pháp các bit dữ liệu được chuyển giữa
các đối tác truyền thông. Có các chế độ truyền tải như sau:

• Truyền bit song song hoặc bit nối tiếp

• Truyền bit đồng bộ hoặc không đồng bộ

• Truyền tải dải cơ sở, truyền tải dải mang

- Truyền bit song song: được dùng phổ biến trong các bus nội bộ của máy tính
như bus địa chỉ, bus dữ liệu và bus điều khiển. Tốc độ truyền tải phụ thuộc vào số các

13
kênh dẫn, hay cũng chính là độ rộng của một bus song song, ví dụ 8 bit, 16 bit, 32 bit
hay 64 bit.

- Truyền bit nối tiếp: Từng bit được chuyển đi 1 cách tuần tự qua 1 đường
truyền duy nhất.

Hình 2.2.2: Mô tả truyền bit song song và truyền bit nối tiếp

- Truyền bit đồng bộ và không đồng bộ: Trong chế độ truyền đồng bộ, các đối
tác truyền thông làm việc theo cùng một nhịp, tức là cùng tần số và độ lệch pha cố
định. Trong chế độ truyền không đồng bộ, bên gửi và bên nhận không làm việc theo
một nhịp, dữ liệu trao đổi thường được chia thành từng nhóm 7-8 bit, gọi là kí tự . Các
kí tự được chuyển đi vào những thời điểm không đồng đều, vì vậy cần thêm 2 bit để
đánh dấu khởi đầu và kết thúc cho mỗi kí tự.

- Truyền tải dải cơ sở: Một tín hiệu mang một nguồn thông tin có thể biểu diễn
bằng tổng của nhiều dao động có tần số khác nhau nằm trong một phạm vi hẹp, được
gọi là dải tần cơ sở hay dải hẹp. Tín hiệu được truyền đi cũng chính là tín hiệu được
tạo ra sau khi mã hóa bit, nên có tần số cố định hoặc nằm trong một khoảng hẹp nào
đó, tùy thuộc vào phương pháp mã hóa bit.

- Truyền tải dải mang: Dải tần này thường lớn hơn nhiều so với tần số nhịp. Dữ
liệu cần truyền tải sẽ dùng để điều chế tần số, biên độ hoặc pha của tín hiệu để khắc
phục tình trạng tín hiệu có thể bức xạ nhiễu ảnh hưởng tới hoạt động của các thiết bị
điện tử khác, hoặc ngược lại, bị các thiết bị khác gây nhiễu.

14
2.2.3 Cấu trúc mạng – Toplogy

- Cấu trúc bus: Trong


cấu trúc đơn giản này, tất cả
các thành viên của mạng
đều được nối trực tiếp với
một đường dẫn chung. Đặc
điểm cơ bản của cấu trúc
bus là việc sử dụng chung
một đường dẫn duy nhất
cho tất cả các trạm, vì thế
tiết kiệm được cáp dẫn và Hình 2.2.3.1: Các cấu trúc dạng bus
công lắp đặt.

- Cấu trúc mạch vòng: Cấu trúc


mạch vòng được thiết kế sao cho các
thành viên trong mạng được nối từ điểm
này đến điểm kia một cách tuần tự trong
một mạch vòng khép kín. Mỗi thành
viên đều tham gia tích cực vào việc
kiểm soát dòng tín hiệu. Khác với cấu
trúc đường thẳng, ở đây tín hiệu được Hình 2.2.3.2: Cấu trúc mạch vòng
truyền đi theo một chiều qui định.

- Cấu trúc hình sao: Cấu trúc hình sao là


một cấu trúc mạng có một trạm trung tâm quan
trọng hơn tất cả các nút khác, nút này sẽ điều
khiển hoạt động truyền thông của toàn mạng.
Các thành viên khác được kết nối gián tiếp với
nhau qua trạm trung tâm. Tương tự như cấu
trúc mạch vòng, có thể nhận thấy ở đây kiểu
liên kết về mặt vật lý là điểm-điểm. Tuy nhiên,
liên kết về mặt logic vẫn có thể là nhiều điểm. Hình 2.2.3.3: Cấu trúc hình sao

15
- Cấu trúc hình cây: Cấu trúc cây
thực chất không phải là một cấu
trúc cơ bản. Một mạng có cấu trúc
cây chính là sự liên kết của nhiều
mạng con có cấu trúc đường thẳng,
mạch vòng hoặc hình sao Đặc trưng
của cấu trúc cây là sự phân cấp
đường dẫn.

2.2.4 Kiến trúc


giao thức
Hình 2.2.3.4: Cấu trúc hình cây
- Dịch vụ truyền thông: Các
dịch vụ truyền thông được thực hiện bằng phần cứng hoặc phần mềm. Việc khai thác
các dịch vụ đó từ phía người sử dụng phải thông qua phần mềm giao diện mạng. Ví
dụ: Giao diện người – máy HMI và điều khiển giám sát SCADA, các giao diện mạng
này có thể được cài đặt sẵn trên các phần mềm như PLC, SCADA hoặc qua các thư
viện phần mềm phổ thông khác dưới dạng các hàm dịch vụ như C/C++, Visual Basic,

Hình 2.2.4.1: Thiết kế giao diện điều khiển nút nhấn và đèn trên phần mềm PLC

16
- Giao thức UART: Là một mạch vi điện tử, được sử dụng rộng rãi cho việc
truyền bit nối tiếp cũng như chuyển đổi song song/nối tiếp giữa đường truyền và bus
PC. Việc truyền tải được thực hiện theo từng ký tự 7 hoặc 8 bit, được bổ sung 2 bit
đánh dấu đầu cuối và 1 bit kiểm tra lỗi chẵn lẻ. Bit khởi đầu luôn là bit 0 và bit kết
thúc bao giờ cũng là 1. Các bit được truyền luôn theo thứ tự từ bit thấp đến bit cao.

Hình 2.2.4.2: Ứng dụng giao thức UART: điều khiển vi điều khiển bằng PC qua
cổng RS232

- Mô hình lớp: Để thực hiện 1 dịch vụ truyền thông, mỗi bức điện được xử lý
qua nhiều lớp trên cơ sở các giao thức quy định, gọi là xử lý giao thức theo mô
hình lớp.

- Kiến trúc giao thức OSI: OSI chỉ là một mô hình kiến trúc phân lớp với
mục đích phục vụ việc sắp xếp và đối chiếu các hệ thống truyền thông có sẵn.

17
2.2.5 Truy nhập bus

Hình 2.2.5: Phân loại các phương pháp truy nhập bus

2.3 Trình bày về mạng CAN


2.3.1 Sơ lược phần lý thuyết mạng CAN được giao của nhóm

- Bảo toàn dữ liệu trong mạng CAN: Mỗi trạm CAN đều sử dụng kết hợp
nhiều biện pháp để tự kiểm tra, phát hiện và báo hiệu lỗi; theo dõi mức tín hiệu
của mỗi bit truyền đi và so sánh với với tín hiệu nhận được trên bus; kiểm soát
qua mã CRC; thực hiện nhồi bit (nhồi một bit nghịch đảo sau năm bít giống
nhau); kiểm soát khung thông báo.

- Kỹ thuật truyền dẫn trong mạng CAN: CAN thực chất chỉ là chuẩn giao
thức từ phần trên của lớp vật lí cho tới hết lớp liên kết dữ liệu, vì vậy không có
quy định cụ thể về chuẩn truyền dẫn cũng như môi trường truyền thông. CAN
phân biệt 2 trạng thái logic của tín hiệu là mức trội(dominant) và mức
lặn(recessive), tuy nhiên không quy định rõ giá trị bit nào ứng với mức tín hiệu
nào. Trong trường hợp cả bit trội và bit lặn được phát đồng thời thì bit trội sẽ lấn
át và tín hiệu trên BUS sẽ có mức trội.

- Mã hóa bit: Trước khi được chuyển đổi thành tín hiệu trên đường truyền,
CAN sử dụng phương pháp nhồi bit (bit stuffing). Phương pháp này được sử
dụng với mục đích chính là tạo một dãy bit thuận lợi cho việc đóng gói dữ liệu
18
và mã hóa bit. Khi 5 bit giống nhau liên tục, bộ phát sẽ tự động bổ sung bit
nghịch đảo vào cuối, bên nhận sẽ phát hiện ra bit được nhồi và tái tạo thông tin
ban đầu.

Ví dụ:

+ Cho một dãy thông tin nguồn: A = 0111111

+ Khi đó, thông tin gửi đi sẽ là: D = 01111101

+ Nếu thông tin nhận được là D’ = 01111101 thì bên nhận sẽ phát hiện được ra
bit được nhồi và sẽ tái tạo lại thông tin nguồn.

+ Nếu thông tin nhận được là D’’= 11111101, bên nhận sẽ phát hiện ra lỗi.

Cuối cùng, dãy bit được mã hóa theo phương pháp Non return to zero
(NRZ). Đây là mã nhị phân được sử dụng trong truyền dẫn viễn thông, bit dữ
liệu 1 là điện áp dương, bit dữ liệu 0 là điện áp âm, nghĩa là trong suốt một chu
kỳ bit, mức tín hiệu hoặc là TRỘI hoặc là LẶN.

2.3.2 Sơ lược về module can bus MCP2515

Module CAN-BUS dùng chip CAN Controller MCP2515 và CAN Transceiver
TJA1040 là module mở rộng ngoại vi CAN cho vi điều khiển không tích hợp
chuẩn giao tiếp hiện đại này. MCP2515 sử dụng giao tiếp SPI nên bất kỳ một
loại vi điều khiển nào cũng có thể giao tiếp với nó thông qua ngoại vi SPI có sẵn
hoặc thậm chí là dùng các chân IO thông thường cũng được.

CAN-BUS là một trong số những chuẩn giao tiếp trên các thiết bị hiện đại ngày
nay như hệ thống điện trên Ô tô OBD II hay hệ thống điện trong nhà máy công
nghiệp, máy phát điện, tàu thủy,... Các vi điều khiển đời mới gần như tích hợp
ngoại vi giao tiếp CAN là bắt buộc, như STM32, LPC, PIC32, ... thậm chí đến
ESP32 cũng hỗ trợ CAN.

Tuy nhiên, cũng chính vì thế mà các dòng vi điều khiển cũ như 8051 hay PIC,
AVR không được tích hợp sẵn ( PIC thì các dòng từ PIC18F trở lên mới hỗ trợ,
giá thành cũng khá cao). Module MCP2515 là CAN controller do MicroChip
sản xuất nhằm mục đích bổ sung tính năng này cho bất cứ vi điều khiển nào. Chỉ
cần dùng 3 đến 5 chân IO hoặc ngoại vi SPI có sẵn trên chip là chúng ta có thể
biết những dòng chip này có khả năng làm việc với mạng CAN-BUS một cách
trơn tru.

19
Module sử dụng chip MCP2551 làm CAN Controller và TJA1040 làm CAN
Transceiver nên các thông số kỹ thuật là thông số của hai chip này ( xem
datasheet bên dưới), ngoài ra Module còn tích hợp các Jump J1 J2, trong đó:

- J1 là jump chọn chế độ tốc độ giao tiếp, nếu Jump 1 được nối thì chip
TJA1040 cho phép giao tiếp trên mạng CAN- BUS với tốc độ cao nhất có thể.
Nếu Jump 1 không được kết nối thì TJA1040 giao tiếp với BUS CAN tốc độ
thấp, ở chế độ này cho phép khoảng cách truyền xa hơn và nối được nhiều node
mạng CAN trên bus vật lý hơn.

- J2 là jump nối điện trở liên kết. Mỗi BUS CAN có 2 điện trở 120 Ohm ở hai
đầu bus. Nếu J2 nối thì module sẽ là nốt mạng đầu hoặc node mạng cuối. J2
không nối khi sử dụng ở module giao tiếp với mạng CAN BUS đã có sẵn điện
trở ở 2 đầu.

Hình 2.3.2: Module can bus MCP2515

Về thông số kỹ thuật:

 Hỗ trợ CAN V2.0 B,


 Tốc độ độ truyền dữ liệu: 1 Mb/giây
 Trường data 0-8 byte
 Nguồn cấp: 2.8~5.5 VDC,
 Giao tiếp: SPI
 Điện trở phối hợp trở kháng: 120 ohm

20
 Đường truyền dài, chống nhiễu tốt
 Kích thước: 4.4 x 2.8cm
 Dòng làm việc: 5mA, dòng tĩnh 1uA
 Nhiệt độ làm việc: -40°C ~ 85°C

2.3.3 Hệ thống giám sát tốc độ động cơ sử dụng mạng CAN

Hình 2.3.3: Sơ đồ đấu nối mạch giám sát tốc độ động cơ sử dụng can bus

Đầu tiên về các thiết bị cần sử dụng để thiết kế mạch này bao gồm: 1 động cơ
giảm tốc mini, 1 module L298N, 2 arduino uno, 1 module encoder, 1 chiết áp
10k, 2 module can bus MCP2515, 1 pin 9V, 1 đĩa encoder, test boad, dây điện.

21
Về sơ đồ đấu dây: Arduino thứ nhất đóng vai trò truyền dữ liệu: đấu 2 đầu
động cơ vào 2 đầu domino OUT1 của module L298N; đấu 2 đầu của pin 9V vào
1 đầu dương và 1 đầu âm của module L298N; đấu chân ENA, IN1, IN2 của
module L298N lần lượt với chân 9,8,7 của arduino; đấu chân GND của module
encoder, chiết áp, module L298N, module can bus MCP2515 chung với chân
GND của arduino thứ nhất; chân Vcc của module encoder, module can bus
MCP2515, chiết áp đấu chung với chân 5V của arduino; chân D0 của module
encoder đấu với chân 2 của arduino; chân tín hiệu của chiết áp đấu với chân A0
của arduino thứ nhất; các chân 13,12,11,10 của arduino thứ nhất đấu với lần lượt
chân SCK, SO, SI, CS của module can bus MCP2515. Arduino thứ hai đóng vai
trò nhận dữ liệu để hiển thị lên màn hình: chân 13,12,11,10 của arduino thứ hai
đấu với lần lượt chân SCK, SO, SI, CS của module can bus MCP2515 còn lại,
Vcc và GND của module MCP2515 đấu lần lượt với 5V và GND của arduino
thứ hai. Đối với 2 module can bus MCP2515: chân L của 2 module được đấu
với nhau, chân H của 2 module được đấu với nhau. Cụ thể chi tiết đấu nối ở
hình bên trên.

2.3.4 Viết chương trình cho hệ thống giám sát tốc độ động cơ

Chương trình con arduino truyền:

#include <SPI.h>

#include <mcp2515.h>

struct can_frame canMsg;

MCP2515 mcp2515(10);

int in1 = 8;

int in2 = 7;

int enA = 9;

int bientro = A0;

int encorder = 2; // chân D0 của module nối vào chân 3 của chân aruduino

int dem = 0; // đặt biến đếm ban đầu bằng 0

int rpm = 0; // đặt tốc độ ban đầu bằng 0 vòng/phút

22
unsigned long thoigian;

unsigned long hientai;

void demxung()

dem++;

void setup()

while (!Serial);

Serial.begin(9600);

SPI.begin();

mcp2515.reset();

mcp2515.setBitrate(CAN_500KBPS, MCP_8MHZ);

mcp2515.setNormalMode();

pinMode(encorder, INPUT);

pinMode(in1, OUTPUT);

pinMode(in2, OUTPUT);

pinMode(enA, OUTPUT);

attachInterrupt(0, demxung, RISING); // cái đặt 1 hàm ngắt để thực


hiện void demxung

void loop()

23
digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

int docbientro = analogRead(bientro);

int tocdo = map(docbientro, 0, 1023, 0, 255); // giới hạn phát xung từ 0 đến
255 nên ta phải quy đổi từ tín hiệu analog đọc được từ biến trở

analogWrite(enA, tocdo);

thoigian = millis(); // khởi tạo biến thoigian là giá trị hiện tại
của hàm millis

if (thoigian - hientai >= 1000) // cứ sau 1000ms là thực hiện việc bên
dưới 1 lần

hientai = thoigian; // cập nhật biến hientai

rpm = (dem / 20) * 60;

dem = 0; // sau mỗi 1 lần đo thì reset biến đếm về 0 để


lần đo tiếp theo đếm xem được bao nhiêu xung

canMsg.can_id = 0x036; //CAN id as 0x036

canMsg.can_dlc = 8; //CAN data length as 8

canMsg.data[0] = rpm;

canMsg.data[1] = 0x00;

canMsg.data[2] = 0x00; //Rest all with 0

canMsg.data[3] = 0x00;

canMsg.data[4] = 0x00;

canMsg.data[5] = 0x00;

canMsg.data[6] = 0x00;

24
canMsg.data[7] = 0x00;

mcp2515.sendMessage(&canMsg); //Sends the CAN message

delay(500);

Chương trình con arduino nhận:

#include <SPI.h>

#include <mcp2515.h> struct can_frame canMsg;

MCP2515 mcp2515(10); // SPI CS Pin 10

int x=0;

int y=0;

void setup()

Serial.begin(9600); //Begins Serial Communication at 9600 baudrate

SPI.begin(); //Begins SPI communication

mcp2515.reset();

mcp2515.setBitrate(CAN_500KBPS, MCP_8MHZ); //Sets CAN at speed


500KBPS and Clock 8MHz

mcp2515.setNormalMode(); //Sets CAN at normal mode

void loop()

25
if (mcp2515.readMessage(&canMsg) == MCP2515::ERROR_OK) // To
receive data (Poll Read)

y = canMsg.can_id;

if(y==0x036)

x= canMsg.data[0];

Serial.print("RPM: ");

Serial.println(x);

delay(500);

26
KẾT LUẬN

Môn học “Đo lường và điều khiển hệ thống giao thông” dưới sự chị dẫn
của thầy Lưu Hoàng Minh đã giúp chúng em thu nhận được nhiều kiến thức hơn
về mảng giám sát và điều khiển một hệ thống giao thông. Thầy kết hợp giữa cả
lý thuyết và thực hành để môn học không bị nhàm chán, ngoài ra còn khiến sinh
viên thích thú khi được tiếp xúc trực tiếp với nhiều ứng dụng của môn học.

Cảm biến là một thiết bị sử dụng khá phổ biến hiện nay, đặc biệt là trong
lĩnh vực công nghiệp và truyền thông, được tiếp xúc với nhiều loại cảm biến
trong môn học này đã giúp bản thân em hiểu rõ hơn nguyên lý hoạt động của
chúng. Không thể không nhắc tới mạng CAN, do tính mạnh mẽ và đáng tin cậy
của chúng nên đã được sử dụng trong các ngành công nghiệp. Lần đầu được học
tập và thực hành về mạng CAN trong môn học này, cảm nhận của bản thân đây
là một mạng truyền thông có quá nhiều ưu điểm, có cấu hình linh hoạt và dễ kết
nối.

27
28
29

You might also like