
Chương 8
Cổng nối tiếp (Serial port)
Nguyễn Lý Thiên Trường 1
Tài liệu tham khảo:
1. Chương 8: Cổng nối tiếp (Giáo trình VXL)
2. Muhammad Ali Mazidi, AVR Microcontroller and Embedded Systems: Using Assembly and C,
Pearson New International Edition, 2014.
3. Datasheet ATmega324P
4. https://nicerland.com/avr/
5. http://www.hocavr.com/
6. https://www.youtube.com/watch?v=Fr2K9pzec8g&list=PLgwJf8NK-
2e55CdbY_WnY6pejPHoojCkJ

Nguyễn Lý Thiên Trường 2
8.1 Giới thiệu
8.2 Giao thức USART trên ATmega324P
8.2.1 Cài đặt tốc độ truyền nối tiếp (baud rate)
8.2.2 Khối truyền/nhận dữ liệu
8.2.3 Các thanh ghi điều khiển và trạng thái UCSRnA, UCSRnB
và UCSRnC
8.2.4 Lập trình giao tiếp UART với ATmega324P
8.3 Giao thức SPI trên ATmega324P
8.4 Giao thức TWI trên ATmega324P

8.1 Giới thiệu
3
Nguyễn Lý Thiên Trường
▪Việc truyền dữ liệu giữa các vi điều khiển hoặc giữa vi điều khiển với
thiết bị ngoại vi được thực hiện theo hai cách: song song và nối tiếp.
▪Trong truyền dữ liệu song song: nhiều bit được phát (truyền)/thu
(nhận) cùng lúc trên đường truyền (được gọi là bus).
▪Trong truyền dữ liệu nối tiếp: từng bit được phát/thu trên đường
truyền (sử dụng 1hoặc một vài đường dây).

8.1 Giới thiệu
4
▪Truyền thông nối tiếp sử dụng hai phương thức:đồng bộ (synchronous) và bất
đồng bộ (asynchronous).
▪Trong phương thức đồng bộ thì mỗi lần truyền/nhận một khối dữ liệu (các ký tự
liên tiếp nhau) với tốc độ phát/thu dữ liệu không đổi.Phương pháp này yêu cầu
giữa phía phát và phía thu phải được đồng bộ bởi tín hiệu xung clock (còn gọi là tín
hiệu xung nhịp, hay xung đồng hồ).
▪Trong phương thức truyền nối tiếp bất đồng bộ chỉ truyền một byte cho mỗi lần
truyền.Phương pháp này không sử dụng xung clock để đồng bộ mà sử dụng định
dạng khung (frame).

8.1 Giới thiệu
5
▪Một định dạng khung cơ bản trong truyền nối tiếp bất đồng bộ gồm:
oStart bit (St): luôn là bit 0, dùng để báo hiệu bắt đầu khung truyền.
oTiếp theo là các bit dữ liệu (từ 5đến 9 bit, LSB được truyền/nhận trước).
oKết thúc là stop bit (Sp) luôn là bit 1 (có thể là 1hoặc 2 bit 1), dùng để báo
hiệu kết thúc khung dữ liệu.
▪Để tăng thêm độ tin cậy của dữ liệu trong quá trình phát, 1 bit kiểm tra chẵn
lẻ (gọi là parity-check bit) P có thể được thêm vào giữa bit dữ liệu cuối cùng
(MSB) và stop bit.
▪Bit rate = 1/Tb với Tb là thời gian truyền 1 bit.
▪Bit rate = N x Baud rate với N là số bit để biểu diễn cho một tín hiệu (hay một symbol).
Ví dụ: điều chế BPSK: N = 1, QPSK: N = 2. Trong chương này, sử dụng N = 1.