Phát dữliệu trên UART

Một phần của tài liệu đề tài thiết bị thực tập lập trình vi điều khiển AVR (Trang 57)

IV. NGÀY HỒN THÀNH NHI ỆM VỤ:

2.8.1 Phát dữliệu trên UART

Sơđồ khối bên phát :

Quá trình truyền dữ liệu được khởi động bằng cách viết dữ liệu cần truyền đến thanh ghi dữ liệu I/O của bộ UART, gọi là thanh ghi UDR. Dữ liệu được truyền từ thanh ghiUDR đến thanh ghi dịch phát khi :

 Một kí tự mới được viết đến UDR sau khi bit stopcủa kí tự trước đĩ đã được dịch ra ngoài. Thanh ghi dịch sẽ được nạp giá trị mới ngay lập tức.

 Một kí tự mới được viết đến UDR trước khi bit stoptừ kí tự trước đĩ được dịch ra ngồi. Thanh ghi dịch sẽ được nạp khi bit stop của kí tự hiện đang truyền

đượcdịch ra ngoài.

Nếu thanh ghi dịch phát 10(11)-bit là rỗng, dữ liệu được truyền từ thanh ghi UDRđến thanh ghi dịch. Khi đĩ Bit cờ thanh ghi dữ liệu rỗng UDRE(UART Data Register Empty) trong thanh ghi trạng thái UART, USR (UART Status Register) được thiếtlập lên 1. Khi bit này được thiết lập lên 1 thì UART sẵn sàng nhận kí tự tiếp theo. Vào cùng thời điểm dữ liệu được truyền từ UDR đến thanh ghi dịch 10(11)-bit, bit 0 của thanh ghi dịch được xĩa (bit start) và bit 9 hoặc 10 được thiết lập lên 1 (bit stop). Nếu ta muốn truyền dữ liệu 9 bit (bit dữ liệu 9 cĩ thể là bit kiểm tra chẵn /lẻ), thì bitCHR9

trong thanh ghi điều khiển UART: UCR (UART control register) phải được thiết lập lên 1. Và bit TXB8 trong thanh ghi UCR được truyền đến bit 9 trong thanh ghi dịch phát. Nhưvậy bit dữ liệu 9 phải được chứa trong bit TXB8trong thanh ghiUCR. Theo nhịp đồng hồ tốc độ baud cung cấp cho thanh ghi dịch phát, bit start được dịch ra ngồiđầu tiên trên chânTXD. Theo sau là các bit dữ liệu, trong đĩ bit cĩ trọng số thấp sẽ được dịch ra trước.Và cuối cùng là bit stopđược dịch ra. Khi bit stop được dịch ra ngồi, thanh ghi dịch sẽ được nạp giá trị mới nếu nhưcĩ bất kỳ dữ liệu nào được viết

đến thanh ghi UDR trong suốt thời gian truyền. Trong thời gian nạp giá trị (load), bit

UDREđược thiết lập lên 1. Nếu khơng cĩ dữ liệu mới trong thanh ghi UDRđể truyền

đi khi bit stop được dịch ra ngoài, cờ UDRE sẽ duy trì trạng thái thiết lập lên 1 cho

đến khi thanh ghi UDR được viết giá trị một lần nữa. Khi khơng cĩ dữ liệu mới được ghi và bit stopđã ở trên chân TXD đúng một chiều dài bit, cờ phát hồn thành TXC

(TX Complete) trong thanh ghiUSRđược thiết lập lên 1.

Bit TXEN trong thanh ghi UCR khi thiết lập lên 1 thì bộ phát UART mới được cho phép. Khi bit này bị xĩa (trạng thái mặc định) thì bộ phát UART khơngđược cho phép và chânTXD chỉ cĩ thể sử dụng nhưmục đích I/O thơng thường. Khi bit TXENđược thiết lập lên 1, bộ phát UART sẽ được kết nối đến chân TXD(PD1), và chânTXD trở thành chân ngõ ra, bất kể sự thiết lập hướngcủa bit DDD1trong thanh ghi DDRD.

Một phần của tài liệu đề tài thiết bị thực tập lập trình vi điều khiển AVR (Trang 57)

Tải bản đầy đủ (PDF)

(181 trang)