✓Giới thiệu ✓Cấu hình, thông số điện áp, dòng của các port ✓Truy xuất port điều khiển của vi điều khiển 8 bit ✓Giao tiếp vi điều khiển 8 bit với LCD 2 GIỚI THIỆU 3 UART (Universal Asynchronous Receiver Transmitter) là bộ truyền nhận dữ liệu nối tiếp không đồng bộ. •Baudrate : tốc độ truyền bit – số bit truyền đi trong 1 giây (bpsKbps). •Data Frame: khung truyền dữ liệu, gồm các data bits thường có độ dài 59 bits. •Quá trình truyền UART được điều khiển bởi 3 thành ghi: thanh ghi TXSTA (truyền), RCSTA (nhận), BAUDCTL (tốc độ truyền).
TRƯỜNG ĐẠI HỌC PHENIKAA KHOA ĐIỆN ĐIỆN TỬ KỸ THUẬT VI XỬ LÝ VÀ VI ĐIỀU KHIỂN Chương 4: Truyền thông UART Vi điều khiển GIẢNG VIÊN: ThS ĐÀO TÔ HIỆU Hà Nội, 01/2022 NỘI DUNG ✓Giới thiệu ✓Cấu hình, thơng số điện áp, dịng port ✓Truy xuất port điều khiển vi điều khiển bit ✓Giao tiếp vi điều khiển bit với LCD GIỚI THIỆU UART (Universal Asynchronous Receiver / Transmitter) truyền nhận liệu nối tiếp khơng đồng •Baudrate : tốc độ truyền bit – số bit truyền giây (bps-Kbps) •Data Frame: khung truyền liệu, gồm data bits thường có độ dài 5-9 bits •Quá trình truyền UART điều khiển thành ghi: ghi TXSTA (truyền), RCSTA (nhận), BAUDCTL (tốc độ truyền) GIAO TIẾP UART Giao tiếp giữa thiết bị tương đồng điện áp logic Giao tiếp thiết bị khác biệt điện áp logic UART VÀ CHUẨN RS232 UART VÀ CHUẨN RS232 - RS232 mức logic định nghĩa khác với logic TTL Mức 1: +3 đến +15 V, mức từ -5 đến -15 V - Cổng COM thường chia thành loại chân 25 chân SƠ ĐỒ KHỐI BỘ TRUYỀN DỮ LIỆU THANH GHI ĐIỀU KHIỂN UART (TRUYỀN) ❑ Bit 0: TX9D =>bit địa chỉ/dữ liệu bit chẵn lẻ ❑ Bit 1: TRMT => bit trạng thái Thanh ghi dịch truyền (TSR) = TSR trống, = TSR đủ ❑ Bit 2: BRGH => bit Chọn tốc độ truyền cao CHỈ CHO hoạt động chế độ Không đồng BRGH=1 (tốc độ cao), BRGH=0 (tốc độ thấp) ❑ Bit 3: SENDB Gửi ký tự ngừng truyền (chế độ không đồng bộ) SENDB = 1: Gửi ngắt đồng cho lần truyền SENDB = 0: Hoàn thành gửi ngắt đồng THANH GHI ĐIỀU KHIỂN UART (TRUYỀN) ❑ Bit 4: SYNC bit chọn chế độ EUSART SYNC = 1: chế độ đồng SYNC = 0: chế độ bất đồng ❑ Bit 5: TXEN=1/0 tương đương cho phép truyền/cấm truyền ❑ Bit TX9 : TX9=1 truyền data bit, ngược lại truyền data bit sử dụng Bit thứ chế độ truyền bit thường sử dụng làm bit chẵn lẻ ❑ Bit CSRC : Bit chọn nguồn đồng hồ, không sử dụng chế độ UART SƠ ĐỒ KHỐI BỘ NHẬN DỮ LIỆU 10 THANH GHI ĐIỀU KHIỂN UART (NHẬN) ❑ Bit 7: SPEN = 1/0: cho phép/cấm cổng nối tiếp (cấu hình chân truyền nhận liệu chân truyền liệu nối tiếp) Bit 6: RX9 = 1/0: nhận data bit/8 bit ❑ Bit 5: SREN bit nhận liệu (chế độ đồng bộ) ❑ Bit 4: CREN bit cho phép nhận liệu liên tục Chế độ bất đồng bộ: CREN = 1/0: cho phép/cấm Chế độ đồng bộ: CREN=1: cho phép bit CREN bị xóa, CREN=0 không cho phép 11 THANH GHI ĐIỀU KHIỂN UART (NHẬN) ❑ Bit 3: ADDEN quan tâm chế độ không đồng truyền data bits ADDEN = 1: cho phép xác định địa chỉ, cho phép ngắt nạp đệm nhận liệu bit RSR = ADDEN = 0: không cho phép xác định địa chỉ, tất byte nhận bit thứ dùng parity bit ❑ Bit 2: FERR=1 báo lỗi khung truyền FERR=0 khơng có lỗi ❑ Bit 1: OERR = 1: có lỗi tràn/khơng lỗi ❑ Bit 0: RX9D bit thứ liệu nhận được, dùng parity bit 12 THANH GHI TỐC ĐỘ TRUYỀN ❑ Bit 7: Quan tâm chế độ không đồng ABDOVF=1/0 tràn timer tạo tốc độ baud tự động/không tràn ❑ Bit 6: Quan tâm chế độ không đồng RCIDL=1 nhận ngừng RCIDL = nhận start bit nhận nhận ❑ Bit 4: Chế độ đồng bộ: SCKP=1: liệu dịch vào lúc sườn lên xung clock SCKP=0: liệu dịch vào lúc sườn xuống xung clock Chế độ bất đồng bộ: SCKP = 1: truyền liệu đảo đến chân RB7/TX/CK SCKP = 0: truyền liệu không đảo đến chân RB7/TX/CK 13 THANH GHI TỐC ĐỘ TRUYỀN ❑ Bit 3: BRG16=1/0: dùng tạo tốc độ truyền 16bits/bits ❑ Bit 1: Quan tâm chế độ không đồng WUE=1: nhận chờ đến sườn xuống (không nhận ký tự RCIF=1), WUE tự động xóa sau RCIF = WUE = 0: nhận hoạt động bình thường ❑ Bit 0: ABDEN=1/0 cho phép/cấm hoạt động với tốc độ baud tự động (chế độ bất đồng bộ) 14 TÍNH TỐN TỐC ĐỘ BAUD Ví dụ: Truyền với 9600 baud chế độ không đồng bit, tần số thạch anh PIC16F887 20MHz Giải: Cấu hình: SYNC=0 (chế độ khơng đồng bộ), BGR16=0 (truyền data bit), BGRH=1 𝐹𝑜𝑠𝑐 20000000 n= -1 = -1 ≈ 129.02≈ 129 16∗𝑏𝑎𝑢𝑑𝑟𝑎𝑡𝑒 16∗9600 => Calculated Baudrate = => Error = 9615−9600 9615 𝐹𝑜𝑠𝑐 16∗(𝑛+1) ≈0.16% 15 = 20000000 16∗(129+1) ≈9615 GHÉP NỐI PIC VỚI MAX232 16 GHÉP NỐI PIC VỚI CH340 17 GHÉP NỐI PIC VỚI PL2303 18 GHÉP NỐI PIC VỚI ESP8266 19 GHÉP NỐI PIC VỚI BLUETOOTH 20