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