(NB) Nối tiếp nội dung của phần 1 tập bài giảng Vi xử lý, phần 2 trình bày nội dung của các bài giảng sau: Truyền thông nối tiếp USART, ngắt, bộ chuyển đổi tương tự sang số (ADC), bộ nhớ dữ liệu EEPROM, PWM, SPI/I C, thiết kế hệ vi xử lí và hệ phát triển vi điều khiển. Mời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Vi xử lý: Phần 2 - Đại học Công nghiệp TP. HCM
100
Bài giảng số 5: Truyền dữ liệu đồng bộ và không đồng bộ (USART)( Số tiết: 3)
III.1. Mục tiêu:
- Truyền nhận dữ liệu đồng bộ, không đồng bộ: Giới thiệu USART, Thanh ghi
TXSTA, RCSTA, bộ tạo tốc độ baud USART, chế độ bất đồng bộ, chế độ chủ đồng bộ,
chế độ tớ đồng bộ.
- Bộ thu và phát radio.
-truyền thong nối tiếp PIC tới PIC, mạch giao tiếp RS232C PIC tới PC.
III.2. Đồ dung và phương tiện dạy học:
-Phấn trắng, bảng, khăn, bút long, micro có dây(hay không dây), máy tính, và đèn
chiếu (hay máy chiếu).
III.3. Giáo trình và tài liệu tham khảo:
Giáo trình Vi xử lí của trường Đại học công nghiệp Tp. HCM.
D.W. Smith, PIC in practice: a project-based approach, Elsevier, 2nd edition, 2006.
Trương Trác, Chip đơn 16C84 và ứng dụng của chúng.
Hồ Trung Mỹ, Vi xử lí, NXB ĐHQG Tp. HCM, 2003.
Tài liệu về vi điều khiển PIC của bọ môn Điện tử công nghiệp.
Datasheet c ủa PIC 16F84 v à 16F877A.
Website: http://www.microchip.com/
http://www.alldatasheet.com/
Myke Predko, Programming and customizing the PIC microcontroller, 3rd edition,
Tab Electronics, McGrawHill, 2008(Ebook).
Douglass V.Hall, Microprocessors and interfacing: Programming and Hardware, 2nd
ed., Macmillan/McGraw-Hill, 1992.
III.4.Nội dung bài giảng:
Nội dung chi tiết : xem bài giảng chi tiết.
Phương pháp giảng dạy: thuyết trình, nêu vấn đề và đàm thoại trao đổi với sinh
viên.
Chương 5: Truyền dữ liệu đồng bộ và không đồng bộ
1. Giới thiệu USART:
USART viết tắt cho Universal Aynchronous Asynchronous Receiver Transmitter (Bộ
thu phát bất đồng bộ đồng bộ đa năng) và cho phép vi điều khiển PIC giao tiếp với một
tầm rộng các thiết bị khác từ chip nhớ riêng biệt và LCD hiển thị tinh thể lỏng, tới
máy tính! Điều này bao gồm gửi hay nhận gói dữ liệu 8 bit hay 9 bit (nghĩa là 1 byte
hay 1 byte cộng them bit chẵn lẻ). Bit chẵn lẻ là bit phụ gửi kèm với dữ liệu mà giúp
kiểm tra lỗi. Nếu có 1 số lẻ số 1 trong byte dữ liệu (thí dụ b’00110100’), bit parity sẽ là
1 và nếu có một số chẵn số 1 (thí dụ b’00110011’) thì bit parity sẽ là 0. Trong bài
giảng này, nếu có lỗi (ví dụ lật bit) diễn ra đâu đó trong giữa lúc gửi 1 byte và nhận
nó bit parity sẽ không còn khớp loại dữ liệu. Bên nhận sẽ biết rằng có gì đó sai sót
và nó yêu cầu gửi lại byte. Nếu có 2 bit lỗi xảy ra trong một việc truyền, bit parity sẽ
101
xuất hiện đúng, tuy nhiên có thể hai lỗi diễn ra là nhỏ hơn, và vì vậy điều này thường
bị bỏ qua.
Chế độ USART có 2 chế độ (mode) chính: hoạt động đồng bộ và bất đồng bộ.
Trong hoạt động bất đồng bộ, chân phát (TX-transmitter) từ 1 thiết bị được nối với
chân thu (RX-Receiver) của thiết bị kia và dữ liệu được hoán đổi (được gọi là song
công-full duplex). Trong chế độ đồng bộ, xung clock (CK) và đường dữ liệu (DT) là
chia xẻ giữa một số thiết bị (một là chủ (master) và một hay nhiều tớ (Slaves)). Chủ
chịu trác nhiệm tạo ra xung clock. Trong cả hai trường hợp, tốc độ tại đó dữ liệu được
gửi bởi bộ phát (và tại đó nó được mong đợi bởi bộ thu) được biết đến như là tốc độ
baud.
Có hai thanh ghi để kiểm soát việc nhận và phát dữ liệu: RCSTA và TXSTA.
Dữ liệu mà được đọc thành công được lưu vào thanh ghi RCREG, và dữ liệu mà được
gửi đi nên được đặt trong thanh ghi TXREG. Tốc độ baud được đặt sử dụng thanh
ghi SPBRG (có bảng them vào trong datasheet minh họa làm thế nào chọn tốc độ baud
cho trước tần số dao động).
Trong chế độ bất đồng bộ, USART lấy kí tự 8 bit hay 9 bit để gửi, và them 1
bit bắt đầu (start bit) (1 zero,0) ở đầu, và bit dừng (1 bit) vào cuối để tạo nên chuỗi 10
hay 11 bit. Điều này được chuyển vào thanh ghi dịch mà quay bit vào chân phát (TX)
như hình 5.1
Môđun nhận sẽ lien tục kiểm tra trạng thái của chân thu RX, mà sẽ bình thường là
mức cao. Nếu nó dò thấy chân RX xuống mức thấp (bit start), nó sẽ làm them 3 mẫu
trong giữa bit (cho phép lên và xuống chậm các lần) và lấy giá trị chính của ba . Nếu
giá trị chính là 0, nó khẳng định đây thực sự là bit bắt đầu và tiến hành lấy mẫu các bit
tuần tự với 3 mẫu ở giữa mỗi bit. Thời gian của mẫu này được chỉ ra bởi tốc độ baud.
Khi nó đạt đến cái là bit dừng, nó phải đọc một (1), ngược lại nó sẽ khẳng định kí tự
thu được đóng khung tồi và đăng kí một lỗi.
Nhớ rằng với thiết lập phù hợp trong TXSTA và RCSTA, tất cả điều này được thực
hiện cho bạn bởi môđun USART.
Byte để gửi b’00101101’
Thanh ghi dịch 1001011010 TX pin
Điện áp trên TX
time
1 0 1 1 0 1 0 0
Start bit Stop bit
102
Hình 5.1.
Bạn có thể dung chế độ bất đồng bộ để giao tiếp với port nối tiếp RS232 trên
máy tính PC. Cách đơn giản để gửi byte thong qua port nối tiếp của PC là thong qua
một chương trình đi kèm Microsoft Windows được gọi là Hyper Terminal (Start
MenuÆProgramsÆAccessoriesÆCommunications). Bạn có thể tạo ra một kết nối với
cổng nối tiếp (ví dụ COM 1), chọn tốc độ baud, số bit, thiết lập parity.. Khi Hyper
Terminal kết nối với port nối tiếp, bất kì kí tự mà bạn gõ sẽ được gửi (như là mã
ASCII) thong qua port nối tiếp. Kí tự mà được nhận được hiển thị lên màn hình.
Cả hai chế độ đồng bộ và bất đồng bộ hỗ trợ đặc tính được biết như là dò tìm địa chỉ
mà cho phép một số thiết bị được kết nối. Khi gửi dữ liệu, một byte địa chỉ phải được
gửi đi đầu tiên để nhận diện nơi nhận dự định.
2.Thanh ghi TXSTA: thanh ghi điều khiển và trạng thái phát, địa chỉ 98H.
R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 ...