Danh mục sản phẩm

[ Lập Trình Pic] Bài 9: Giao tiếp UART với máy tính

time Thứ Ba, 28/05/2019
user Đăng bởi Đỗ Hữu Quang

[ Lập Trình Pic] Bài 9: Giao tiếp UART với máy tính

Chào các bạn!

Hôm nay mình sẽ giới thiệu với các bạn về cách lập trình giao tiếp UART giữa pic 16f877a và máy tính.

I, SƠ ĐỒ NGUYÊN LÝ KẾT NỐI UART Ở KIT PIC STARTER

II, SƠ LƯỢC VỀ UART

1. Thế nào là giao tiếp UART?

- UART là viết tắt của Universal Asynchronous Receiver – Transmitter. Thường là một mạch tích hợp được sử dụng trong việc truyền dẫn dữ liệu nối tiếp giữa máy tính và các thiết bị ngoại vi. Rất nhiều vi điều khiển hiện nay đã được tích hợp UART, vì vấn đề tốc độ và độ điện dụng của UART không thể so sánh với các giao tiếp mới hiện nay nên các dòng PC & Laptop đời mới không còn tích hợp cổng UART. Như các bạn đã biết giao tiếp SPI và I2C có 1 dây truyền dữ liệu và 1 dây được sử dụng để truyền xung clock (SCL) để đồng bộ trong giao tiếp. Với UART thì không có dây SCL, vấn đề được giải quyết khi mà việc truyền UART được dùng giữa 2 vi xử lý với nhau, đồng nghĩa với việc mỗi vi xử lý có thể tự tạo ra xung clock cho chính nó xử dụng.

 

Để bắt đầu cho việc truyền dữ liệu bằng UART, một START bit được gửi đi, sau đó là các bit dữ liệu và kết thúc quá trình truyền là STOP bit.

Như hình các bạn có thể thấy. Khi ở trạng thái chờ mức điện thế ở mức 1 (high). Khi bắt đầu truyền START bit sẻ chuyển từ 1 xuống 0 để báo hiệu cho bộ nhận là quá trình truyền dữ liệu sắp xảy ra. Sau START bit là đến các bit dữ liệu D0-D7 (Theo hình vẽ các bit này có thể ở mức High or Low tùy theo dữ liệu). Sau khi truyền hết dữ liệu thì đến Bit Parity để bộ nhận kiểm tra tính đúng đắn của dữ liệu truyền (vấn đề này mình sẽ giải thích rõ hơn trong tài liệu CRC trong thời gian tới). Cuối cùng là STOP bit là 1 báo cho thiết bị rằng các bit đã được gửi xong. Thiết bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm báo tính đúng đắn của dữ liệu.

2, Các thông số cơ bản trong truyền nhận UART:

Baund rate (tốc độ baund ): Khoảng thời gian dành cho 1 bit được truyền. Phải được cài đặt giống nhau ở gửi và nhận.
Frame (khung truyền ): Khung truyền quy định về số bit trong mỗi lần truyền.
Start bit : là bit đầu tiên được truyền trong 1 Frame. Báo hiệu cho thiết bị nhận có một gói dữ liệu sắp đc truyền đến. Bit bắt buộc.
Data : dữ liệu cần truyền. Bit có trọng số nhỏ nhất LSB được truyền trước sau đó đến bit MSB.

- Parity bit : kiểm tra dữ liệu truyền có đúng không.

Stop bit : là 1 hoặc các bit báo cho thiết bị rằng các bit đã được gửi xong. Thiết bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm bảo tính đúng đắn của dữ liệu. Bit bắt buộc.
Ok mình sẽ giới thiệu sơ lược với các bạn vậy thôi trong bài đăng sau sẽ giới thiệu rõ hơn về UART nên các bạn nhớ theo dõi. Trong bài đăng sau mình sẽ gửi tài liệu cho các bạn xem. Trong bài này mình sẽ hướng dẫn các bạn xuất 1 ký tự và 1 chuỗi ký tự lên của sổ VIRTUAL TERMINAL.

 

III, CHƯƠNG TRÌNH DEMO

 

Các bạn tải project demo: Tại đây.

Viết bình luận của bạn:
popup

Số lượng:

Tổng tiền: