UART0

Tài liệu tương tự
Modbus RTU - Modbus TCP/IP Converter

Lkgjlfjq?etyuiiofjkfjlsfjkslddghdgertt

Nội dung chương 3 IT1110 Tin học đại cương Phần I: Tin học căn bản Chương 3: Hệ thống máy tính 3.1. Giới thiệu 3.2. Chức năng và các thành phần của má

ETH-MOD-T BỘ CHUYỂN ĐỔI GIAO THỨC HAI CHIỀU MODBUS - ETHERNET 1 Thông tin chung: Tất cả dữ liệu của đồng hồ và relay trong đường dây được kết nối với

Dell Latitude 12 Rugged Extreme – 7214 Getting Started Guide

CÔNG TƠ ĐIỆN XOAY CHIỀU KIỂU ĐIỆN TỬ 3 PHA VSE3T TÀI LIỆU KỸ THUẬT Dùng cho công tơ điện xoay chiều kiểu điện tử 3 pha VSE3T o 230/400V - 5(6)A (VSE3T

Microsoft Word - TaiLieuTNKTD1PhanPLC-05[1].2008.doc

Chương II - KIẾN TRÚC HỆ ĐIỀU HÀNH

PHẦN MỀM QUẢN LÝ KHÁCH SẠN

PowerPoint Presentation

Kyõ Thuaät Truyeàn Soá Lieäu

mySQL - Part 1 - Installation

Kiến trúc tập lệnh1

Slide 1

Chapter 5

Internet Information Service - IIS Internet Information Service - IIS Bởi: Phạm Nguyễn Bảo Nguyên Chúng ta đã tìm hiểu về cách dựng một NAT Server...

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 11. Tệp tin Nội dung 1. Khái niệm cơ bản 2. Các thao tá

PowerPoint Presentation

Trường ĐHBK Hà Nội Khoa Điện Bộ môn Điều khiển Tự động Tài liệu hướng dẫn thực hành: KĨ THUẬT LẬP TRÌNH C/C++ Bài 1: Lập trình cơ sở 1 Mục đích bài th

Máy tính cá nhân Máy tính cá nhân Bởi: Wiki Pedia Định nghĩa Máy tính cá nhân (tiếng Anh: personal computer, viết tắt PC) là một máy điện toán siêu nh

Những cơ sở của ngôn ngữ C# Những cơ sở của ngôn ngữ C# Bởi: phamvanviet truonglapvy Trong chương này sẽ trình bày về hệ thống kiểu trong C#; phân biệ

PowerPoint Presentation

Hướng dẫn Board ISD9160 Vr2.1 HƯỚNG DẪN SỬ DỤNG BOARD ISD9160 Công ty TNHH Giải pháp TULA( & Tập đoàn Công nghệ Nuvoton( P

HỘI THI TIN HỌC TRẺ TỈNH AN GIANG ĐỀ CHÍNH THỨC ĐỀ THI LÝ THUYẾT BẢNG A - KHỐI TIỂU HỌC Khóa ngày: Thời gian : 20 phút (không kể thời gian

Microsoft Word - TUT02.01.PVN.NTCR doc

ĐỀ CƯƠNG ÔN THI 1. Khái niệm về điều khiển Logic khả trình Có rất nhiều định nghĩa về bộ điều khiển Logic khả trình (Programmable logic controller viế

Inspiron Series Sổ tay dịch vụ

Bài 1:

VIE_v5.pages

BỘ LAO ĐỘNG THƯƠNG BINH VÀ XÃ HỘI TỔNG CỤC GIÁO DỤC NGHỀ NGHIỆP KỲ ĐÁNH GIÁ KỸ NĂNG NGHỀ QUỐC GIA ĐỀ THI THỰC HÀNH TÊN NGHỀ Bậc trình độ kỹ năng nghề

Tìm hiểu ngôn ngữ lập trình Visual Basic Tìm hiểu ngôn ngữ lập trình Visual Basic Bởi: Khuyet Danh Tìm hiểu ngôn ngữ lập trình Visual Basic Tổng quan

Microsoft Word - cau-truc-du-lieu-hang-doi.docx

CHƯƠNG I CÁC KIẾN THỨC CƠ BẢN

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 9. Vào ra dữ liệu trong C Các lệnh vào ra dữ liệu C cun

Microsoft Word - Phan 1 - Kien thuc co so IFS-HANU 2011.doc

PowerPoint Template

Microsoft Word - bo_tien_xu_ly_trong_c.docx

Bài tập thực hành Chuyên đề 1 CNPM - Java Khoa CNTT- Trường ĐH Công nghệ TP.HCM Lab 01: LẬP TRÌNH JAVA CƠ BẢN VỚI NET BEANS A. MỤC TIÊU: Hướng dẫn tải

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 13. Hàm Nội dung 1. Khái niệm hàm 2. Khai báo và sử dụn

Microsoft Word - HDSD-QLHD.doc

Hàm và lớp template trong Lập trình hướng đối tượng Hàm và lớp template trong Lập trình hướng đối tượng Bởi: unknown Trong phần này, chúng ta tìm hiểu

Dell Latitude 14 Rugged — 5414Series Sổ tay hướng dẫn chủ sở hữu

TRƯỜnG ĐẠI HỌC BÁCH KHOA HÀ nội VIỆn CÔnG nghệ THÔnG TIn VÀ TRUYỀn THÔnG TIN HỌC ĐẠI CƯƠNG Bài 10. Các cấu trúc lập trình trong C Nội dung 1. Cấu trúc

Bài 7. Con trỏ Mục tiêu: 1. Luyện tập sử dụng con trỏ và địa chỉ của các biến 2. Sử dụng con trỏ khi thao tác với mảng. Giới hạn: không dùng các thư v

Chapter #

PowerPoint 演示文稿

HƯỚNG DẪN SỬ DỤNG ĐẦU GHI LILIN DVR 708/716/ Cấu tạo đầu ghi 1.1 Đầu ghi DVR 816 Mặt trước: Stt Tên Chức năng 1 Phím sang trái Di chuyển sang tr

XJ-UT311WN_XJ-UT351WN

Tài liệu Hướng dẫn sử dụng

Template and Exception Template and Exception Bởi: Thanh Hiền Vũ TEMPLATE Trong phần này, chúng ta tìm hiểu về một trong các đặc tính còn lại của C++,

Thành Phố và Quận San Francisco Kế Hoạch Đề Xuất Các Phương Án Củng Cố Giai Đoạn Được Xem Xét Công Khai Từ Ngày 29 Tháng 7 Năm 2019 đến Ngày

A+ Guide to Managing and Maintaining Your PC, 4e

Tủ lạnh Hướng dẫn sử dụng RT53K*/RT50K*/RT46K*/RT43K* Thiết bị không có giá đỡ Untitled :23:47

Animation, Modules 6 - Hoạt hình, tách file

Slide 1

Kyõ Thuaät Truyeàn Soá Lieäu

NGÔN NGƯ LÂ P TRIǸH Biên tập bởi: nguyenvanlinh

Bộ THÔNG TIN VÀ TRUYỀN THÔNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc số:0? /2019/TT-BTTTT Hà Nội, ngày/ị(> tháng $ năm 2019 THÔ

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 5. Kiểu dữ liệu và biểu thức trong C Nội dung 1. Các ki

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 11. Mảng và xâu kí tự Nội dung 1. Mảng 2. Xâu kí tự 2 1

Hướng dẫn bắt đầu sử dụng mozabook mozabook 2 Cài đặt, bắt đầu, Bản đồ màn hình Mở ấn phẩm, Nhập PDF và PPT Dẫn đường, Cập nhật ấn phẩm Ấn phẩm mới Nộ

Dell UltraSharp U2518D Trình Quản Lý Màn Hình Dell Sổ tay hướng dẫn sử dụng

Chương trình dịch

Chương trình dịch

Hệ điều hành Bài tập tuần 6 1 Quản lý bộ nhớ Bài tập 1 : Xem thông tin bộ nhớ 1. Sử dụng top, ps đọc thông tin về kích thước vùng nhớ của 1 tiến trình

TIẾNG VIỆT ENGLISH Hướng dẫn sử dụng User Guide LG-V400 MFL (1.0)

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ Ngành đào tạo: Điện Tử Công Nghiệp Trình độ đào tạo: Đại học Chương trình đào tạo: C

HƢỚNG DẪN BÀI TẬP NHÓM PHẦN THỰC HIỆN CÁ NHÂN Phần 1: Đề xuất dự án Phần 1 là nhiệm vụ cá nhân. Chỉ những sinh viên hoàn thành nhiệm vụ này mới được p

SM-N9208 SM-N920C SM-N920CD SM-N920I Sách hướng dẫn sử dụng Vietnamese. 08/2015. Rev.1.0

User manual TC cdr

Hướng dẫn Cài đặt NOTEBOOK Hướng dẫn Cài đặt Windows Đọc kỹ tài liệu này trước khi cài đặt. Sau khi đọc Hướng dẫn Cài đặt này, cất ở nơi dễ lấy để tất

A. ĐỐI TƯỢNG HỌC VIÊN TUYỂN SINH CHƯƠNG TRÌNH ĐÀO TẠO MODULE 2019 CẬP NHẬT CÔNG NGHỆ ABS VÀ SMART KEY XE MÁY (Lớp D) 1. Thợ sửa chữa ô tô, mô tô, xe m

Microsoft Word - danh-sach-lien-ket-doi-trong-c.docx

Loi vong lap lap vo tan - Worksheet_Change

Microsoft Word - HDSD digiTool.doc

2018 Nhận xét, phân tích, góp ý cho Chương trình môn Tin học trong Chương trình Giáo dục Phổ thông mới

Điểm ĐỀ THI HK 1 ( ) Môn: Kỹ thuật số Thời gian: 110 phút (SINH VIÊN KHÔNG ĐƯỢC SỬ DỤNG TÀI LIỆU) Chữ kí giám thị HỌ TÊN:. MSSV: NHÓM:.. SINH

Lỗi thường gặp ở Windows Lỗi thường gặp ở Windows Bởi: Vien CNTT DHQG Hanoi LỖI THƯỜNG GẶP Ở WINDOWS Khi hệ thống gặp bất ổn, hệ điều hành (HĐH) sẽ cố

CÔNG TY TNHH GIẢI PHÁP TRỰC TUYẾN TOTAL 60 Đường 18, Phường Hiệp Bình Chánh, Quận Thủ Đức, TP.HCM MST:

说明书_A32F_VN

IEEE Paper Template in A4 (V1)

MT4Y/MT4W Series ĐỒNG HỒ ĐO ĐA NĂNG HIỂN THỊ SỐ DIN W72 H36MM, W96 H48MM Đặc điểm Là phiên bản đa dụng của loại đồng hồ đo hiển thị số Có nhiều tùy ch

HEADING 1: PHẦN 1: QUẢN LÝ VÀ DUY TRÌ HỆ ĐIỀU HÀNH

HỆ THỐNG THÔNG BÁO KHẨN CẤP DÒNG VM-3000 CPD No CPD CPD No CPD-083. Integrated Voice Evacuation System VM-3000 series Cấu hình Tất c

Huong dan su dung phan mem Quan ly chat luong cong trinh GXD

Xu hướng phát triển của các hệ thống nhúng Xu hướng phát triển của các hệ thống nhúng Bởi: Khoa CNTT ĐHSP KT Hưng Yên Xu hướng phát triển của các hệ t

Microsoft Word - HDSD EH-DIH890 Tieng viet

Chương trình dịch

IPSec IPSec Bởi: Phạm Nguyễn Bảo Nguyên Chúng ta đã biết khi ta sao chép dữ liệu giữa 2 máy hoặc thông qua mạng VPN để nâng cao chế độ bảo mật người q

Danh sách tuyến tính kiểu hàng đợi Danh sách tuyến tính kiểu hàng đợi Bởi: Khoa CNTT ĐHSP KT Hưng Yên ĐỊNH NGHĨA Hàng đợi là một vật chứa (container)

HƯỚNG DẪN SỬ DỤNG INTERNET BANKING KHÁCH HÀNG CÁ NHÂN 1/56

PowerPoint Presentation

SM-G925F Sách hướng dẫn sử dụng Vietnamese. 04/2015. Rev.1.0

META.vn Mua sắm trực tuyến HƯỚNG DẪN SỬ DỤNG MÁY HÚT BỤI GIA ĐÌNH 1. Các loại máy hút bụi gia đình thông dụng hiện nay Trong các gia đình hiện nay sử

Microsoft Word - Module 2. Cau truc cua may tinh dien tu.doc

MÁY TOÀN ĐẠC ĐIỆN TỬ LEICA TCR1101

Luận đề cách mạng trong truyện ngắn Vợ nhặt của Kim Lân

Võ Đại Tôn - Hòang Phong Linh Đỗ Tiến Đức Phát biểu trong buổi sinh hoạt Hành trình công tâm để xây dựng lại niềm tin và ra mắt thơ văn của ông Võ Đại

Bản ghi:

UART Cổng truyền thông bất đồng bộ nối tiếp --ф ф Các đề mục chính: A. Chức năng: --------------------------------------------------------------------------------------------------------------3 B. Diễn tả các chân chức năng: -----------------------------------------------------------------------------------------3 C. Diễn tả các thanh ghi chức năng: -----------------------------------------------------------------------------------3 C.I. Thanh ghi đệm truyền thu <URBR - xec>: ------------------------------------------------------3 C.II. Thanh ghi giữ giá trị truyền phát<uthr - xec>: ----------------------------------------------3 C.III. Thanh ghi cho phép ngắt truyền thông nối tiếp <UIER - xec4>: ------------------------------4 C.IV. Thanh ghi nhận dạng ngắt truyền thông nối tiếp<uiir - xec8>: ------------------------------4 C.V. Thanh ghi điều khiển FIFO cho truyền thông nối tiếp<ufcr - xec8>: ---------------------5 C.VI. Thanh ghi điều khiển đường truyền cho truyền thông nối tiếp<ulcr - xecc>:-------------5 C.VII. Thanh ghi điều khiển trạng thái cho đường truyền cho truyền thông nối tiếp<ulsr - xec14>: --------------------------------------------------------------------------------------------------------------6 D. Kiến trúc của bộ truyền thông nối tiếp UART:-------------------------------------------------------------------7 D.I. Hình vẽ: -----------------------------------------------------------------------------------------------------------7 D.II. Chú thích: ---------------------------------------------------------------------------------------------------------8 E. Chương trình minh họa: Hello World! --------------------------------------------------------------------------8 E.I. Mã nguồn:---------------------------------------------------------------------------------------------------------8 I.1. Khai báo: ------------------------------------------------------------------------------------------------------8 I.2. Chương trình chính:------------------------------------------------------------------------------------------9 Hàm Serial.c: ------------------------------------------------------------------------------------------------------------9 E.II. Kết quả mô phỏng: -----------------------------------------------------------------------------------------------9 F. Kết luận: --------------------------------------------------------------------------------------------------------------- 1

Cổng truyền thông nối tiếp bất đồng bộ Trang 2 Danh mục các bảng: Bảng 1: Diễn tả các chân chức năng của UART... 3 Bảng 2: Thanh ghi đệm truyền thu (URBR - xec khi DLAB =, chỉ đọc)... 3 Bảng 3: Thanh ghi giữ giá trị truyền phát <UTHR-xEC khi DLAB =, chỉ ghi>... 3 Bảng 4: Byte thấp bộ chia sinh tốc độ baud cho UART (UDLL-xEC khi DLAB=1)... 3 Bảng 5: Byte cao bộ chia sinh tốc độ baud cho UART (UDLL-xEC4 khi DLAB=1)... 4 Bảng 6: Giải thích các bit của thanh ghi cho phép ngắt UART... 4 Bảng 7: Thanh ghi nhận dạng các ngắt của truyền thông nối tỉếp (UIIR - xec8, chỉ đọc) 4 Bảng 8: Thường trình ngắt UART... 5 Bảng 9: Ý nghĩa các bit của thanh ghi điều khiển UART FIFO... 5 Bảng 1: Ý nghĩa các bit của thanh ghi điều khiển đường truyền UART(ULCR - xecc).. 6 Bảng 11: Ý nghĩa các bit của thanh ghi trạng thái đường truyền truyền thông nối tiếp UART... 7 Danh mục hình vẽ: Hình 1: Sơ đồ khối bộ truyền thông nối tiếp bất đồng bộ UART... 7 Hình 2: Kết quả mô phỏng...1 Hình 3: Kết quả thực tế...1 Khởi tạo: 262221515 26 Bùi Trung Hiếu Webmaster: http://www.khvt.com

UART Trang 3 A. Chức năng: Thu phát 16 bit FIFOs. Vùng thanh ghi hợp chuẩn công nghiệp 55 Nhận điểm ngắt FIFO tại 1,4,8 và 14 bytes Tích hợp sẵn bộ sinh tốc độ Baud. B. Diễn tả các chân chức năng: Tên chân Hướng truyền Chức năng RxD Vào Serial Input. Nhận dữ liệu nối tiếp. TxD Ra Serial Output. Truyền dữ liệu nối tiếp. Bảng 1: Diễn tả các chân chức năng của UART C. Diễn tả các thanh ghi chức năng: UART có 1 thanh ghi chức năng 8 bit. C.I. Thanh ghi đệm truyền thu <URBR - xec>: URBR là byte trên cùng của UART Rx FIFO, byte này chứa các kí tự truyền nhận sau cùng và có thể đọc được nhờ bus giao tiếp. Bit (LSB) là bit cuối cùng của dữ liệu nhận, nếu kí tự truyền nhận ít hơn 8 bit, các bit cao của thanh ghi này sẽ tự cập nhật giá trị Bit DLAB(Divisor Latch Access Bit) trong thanh ghi ULCR phải bằng để có thể truy cập URBR. Thanh ghi đệm của truyền thu là thanh ghi chỉ đọc. URBR Chức năng Giải thích chức năng Thanh ghi đệm Thanh ghi đệm truyền thu chứa byte thu nhận sau nhất của UART Rx 7: truyền thu FIFO Bảng 2: Thanh ghi đệm truyền thu (URBR - xec khi DLAB =, chỉ đọc) Giá trị Reset Không biết C.II. Thanh ghi giữ giá trị truyền phát<uthr - xec>: Thanh ghi UTHR là thanh ghi chứa byte trên cùng của UART Tx FIFO. Thanh ghi này chứa kí tự gần nhất của quá trình truyền phát FIFO, có thể ghi giá trị vào thanh ghi này thông qua giao tiếp bus. Bit LSB là bit đầu tiên sẽ được truyền phát. Bit DLAB trong thanh ghi ULCR phải bằng để có thể truy cập UTHR. Thanh ghi đệm của truyền thu là thanh ghi chỉ được phép ghi. UTHR Chức năng Giải thích chức năng Giá trị Reset 7: Thanh ghi giữ giá Ghi giá trị vào thanh ghi giữ giá trị truyền thu UART thì byte đó sẽ trị truyền phát được xếp sau cùng vào FIFO. N/A Bảng 3: Thanh ghi giữ giá trị truyền phát <UTHR-xEC khi DLAB =, chỉ ghi> +Thanh ghi UART Divisor Latch LSB (UDLL - xec) truy cập được khi DLAB = 1. +Thanh ghi UART Divisor Latch MSB (UDLM - xec4) truy cập được khi DLAB = 1. +UART Divisor Latch là số chia của bộ tạo tốc độ Baud và giá trị của nó được dùng để chia xung clock VPB (PCLK-Xung nhịp hoạt động của ngoại vi) thành tốc độ baud, tốc độ xung nhịp ngoại vi bằng 16x tốc độ baud mong muốn. Hai thanh ghi UDLL và UDLM lập thành số chia 16 bit, UDLL chứa 8 bit thấp và UDLM chứa 8 bit cao. Giá trị UDLM- UDLL = x được xem như x1 <vì giá trị chia cho không tồn tại> Bit DLAB=1 để có thể truy cập UART Divisor Latches. UDLL Chức năng Giá trị Reset 7: Byte thấp của bộ chia sinh tốc độ baud x1 Bảng 4: Byte thấp bộ chia sinh tốc độ baud cho UART (UDLL-xEC khi DLAB=1) Thành phố Hồ Chí Minh, tháng 2 năm 26

Cổng truyền thông nối tiếp bất đồng bộ Trang 4 UDLM Chức năng Giá trị Reset 7: Byte cao của bộ chia sinh tốc độ baud x Bảng 5: Byte cao bộ chia sinh tốc độ baud cho UART (UDLL-xEC4 khi DLAB=1) Nói một cách vắn tắt, để thiết lập tốc độ baud mới, phải cho bit DLAB= 1,truy cập các thanh ghi UDLM- UDLL, khi cho DLAB=, khởi tạo bộ tạo tốc độ Baud. Và lúc đó, mới có thể truy cập các giá trị từ bộ đêm thu hoặc bộ giữ phát của UART. C.III. Thanh ghi cho phép ngắt truyền thông nối tiếp <UIER - xec4>: Thanh ghi UIER được dùng để cho phép các ngắt của UART(4 nguồn ngắt). UIER Chức năng Diễn giải các chức năng Giá trị Reset o UIER[] = : Không cho phép ngắt RDA. Cho phép ngắt o UIER[] = 1 : Cho phép ngắt RDA RBR Bit này cũng điều khiển ngắt do thời gian chờ truyền nhận kí tự bị Time-out. 1 o UIER[1] = : Không cho phép ngắt THRE. Cho phép ngắt o UIER[1] = 1 : Cho phép ngắt THRE THRE Trạng thái của bit ngắt này có thể được đọc từ thanh ghi ULSR[5]. Cho phép ngắt o UIER[2] = : Không cho phép ngắt trạng thái đường Rx 2 từ đường o UIER[2] = 1 : Cho phép ngắt trạng thái đường Rx bị lỗi. trạng thái Rx Trạng thái của bit ngắt này có thể được đọc từ thanh ghi ULSR[4:1] 7:3 Dự trữ Dự trữ, không được sử dụng NA Bảng 6: Giải thích các bit của thanh ghi cho phép ngắt UART C.IV. Thanh ghi nhận dạng ngắt truyền thông nối tiếp<uiir - xec8>: UIIR Chức năng Diễn giải các chức năng Giá trị Reset Chờ ngắt o UIIR[] = : Có ít nhât 1 ngắt đang chờ o UIIR[] = 1 : không có ngắt nào đang chờ Lưu ý rằng UIIR tích cực ở mức thấp. Các trạng thái ngắt có thể được diễn tả bởi các giá trị trong 3 bit trạng thái UIER3:1. 1 o UIIR[3:1] = 11 : Có ngắt do trạng thái đường truyền UART lên mức tích cực(rls). o UIIR[3:1] = 1 2a: Báo hiệu dữ liệu nhận sẵn sàng 3:1 Nhận dạng ngắt o UIIR[3:1] = 11 2b: Báo hiệu thời gian chờ truyền nhận kí tự bị Time-out. (CTI) o UIIR[3:1] = 1 3: Ngắt THRE o Các tổ hợp bit khác đều không hợp lệ. UIER[3:1] nhận dạng ngắt đáp ứng với UART Rx FIFO. 5:4 Dự trữ Dự trữ, không được sử dụng NA 7:6 Cho phép FIFO 2 bit này tương đương với UFCR. Bảng 7: Thanh ghi nhận dạng các ngắt của truyền thông nối tỉếp (UIIR - xec8, chỉ đọc) Các thường trình ngắt được đề cập ở bảng sau. Biết các giá trị của UIIR[3:], thường trình ngắt có thể biết nguồn sinh ngắt và cách để xóa ngắt đó. Thanh ghi UIIR phải được đọc để xóa các ngắt ưu tiên và thoát khỏi thường trình ngắt. Ngắt do đường truyền nhận UART bị lỗi là ngắt có độ ưu tiên cao nhất và nó có thể tích cực khi 1 trong 4 nguyên nhân gây lỗi Rx xuất hiện: lỗi tràn(oe), sai parity(pe), sai framing(fe) và break interrupt (BI). Điều kiện gây lỗi UART Rx tạo ngắt có thể được biết nhờ tổ hợp bit ULSR[4:1]. Thường trình ngắt sẽ xóa các bit này ngay sau khi đọc ULSR. Ngắt RDA (UIIR3:1=1) cùng mức ưu tiên (mức 2) với ngắt CTI(UIIR3:1=11). Ngắt RDA tích cực khi UART Rx FIFO bằng mức kích định nghĩa bởi UFCR[7:6] và nó được xóa nhờ UART Rx FIFO xuống thấp hơn mức kích. Khi ngắt này tích cực, CPU có thể đọc khối dữ liệu được định nghĩa bởi mức kích. 26 Bùi Trung Hiếu Webmaster: http://www.khvt.com

UART Trang 5 Ngắt CTI tích cực khi khi UART Rx FIFO chứa ít nhất 1 kí tự và không có UART Rx FIFO tích cực xuất hiện trong khoảng thời gian truyền 3.5 đến 4.5 kí tự. Nguồn ngắt UART Rx FIFO tích cực (đọc hoặc ghi UART RSR) sẽ xóa ngắt này. Thường trình phục vụ ngắt UART RBR sẽ hoàn tất khi dữ liệu truyền thông đã được nhận mà không vi phạm các mức kích. Ví dụ: Ngoại vi cần nhận 15 kí tự và mức kích ở 1 kí tự, CPU sẽ nhận được 1 ngắt RDA (tức là 1 kí tự) còn lại 5 kí tự chưa được nhận, sẽ sinh ra ngắt CTI, và mức kích cần phải điều chỉnh (ở 1 đến 5 kí tự) để hoàn tất quá trình truyền nhận. UIIR[3:] Mức ưu tiên Loại ngắt Nguồn ngắt Điều kiện để xóa ngắt 1 - không không - 11 Cao nhất 1 Mức 2 11 Mức 2 Lỗi trên đường truyền nhận Rx Dữ liệu Rx đã sẵn sàng Báo hiệu thời hạn truyền nhận bị Time-out OE hoặc PE hoặc FE hoặc BI Dữ liệu Rx đã sẵn sàng hoặc (UFCR=1) Thời gian Time-out = [(word length)x7-2]x8 + {(mức kích số kí tự)x8 + 1] RCLKs ULSR được đọc URBR được đọc hoặc UART FIFO xuống dưới mức kích U RBR được đọc 1 Mức 3 THRE THRE UIIR được đọc(nếu là nguồn ngắt) hoặc ghi vào THR Các giá trị UIIR[3:] = {"", 11, 11, 111, 1, 11, 11, 111, 111, 111, 1111 } đều không hợp lệ Bảng 8: Thường trình ngắt UART Ngắt UART THRE(UIIR3:1=1) có mức ưu tiên thứ 3 và được tích cực khi UART THR FIFO được làm rỗng. C.V. Thanh ghi điều khiển FIFO cho truyền thông nối tiếp<ufcr - xec8>: Thanh ghi này điều khiển hoạt động của bộ FIFO Rx và Tx. UFCR Chức năng Giải thích Giá trị Reset 1 Cho phép FIFO Reset FIFO Rx 2 Reset FIFO Tx Tích cực mức cao sẽ cho phép truy cập UART Rx, Tx FIFOs và UFCR[[7:1]. Bit này phải được cho bằng 1 để UART hoạt động đúng. Sự chuyển đổi trên bit này sẽ tự động xóa bộ UART FIFOs. Ghi mức 1vào bit UFCR[1] sẽ xóa tất cả các byte hiện đang lưu trữ trên UART Rx FIFO và Reset con trỏ về vị trí hợp lý. Bit này có thể tự xóa. Ghi mức 1vào bit UFCR[2] sẽ xóa tất cả các byte hiện đang lưu trữ trên UART Tx FIFO và Reset con trỏ về vị trí hợp lý. Bit này có thể tự xóa. 5:3 Dự trữ Dự trữ, không được sử dụng NA : ngắt ở mức (mặc định= truyền nhận 1 kí tự) 1: ngắt ở mức 1 (mặc định= truyền nhận 4 kí tự) 7:6 1: ngắt ở mức 2 (mặc định= truyền nhận 8 kí tự) Chọn mức 11: ngắt ở mức 3 (mặc định= truyền nhận 14 kí tự) ngắt Rx Tổ hợp 2 bit này cho biết có bao nhiêu kí tự được nhận từ UART FIFO sẽ gây ngắt. 4 mức kích này có thể được định nghĩa bởi người lập trình tùy vào số kí tự ở bộ FIFO. Bảng 9: Ý nghĩa các bit của thanh ghi điều khiển UART FIFO. C.VI. Thanh ghi điều khiển đường truyền cho truyền thông nối tiếp<ulcr - xecc>: Thanh ghi này cho biết dạng của kí tự dữ liệu truyền (phát hoặc nhận). Thành phố Hồ Chí Minh, tháng 2 năm 26

Cổng truyền thông nối tiếp bất đồng bộ Trang 6 ULCR Chức năng Giải thích Giá trị Reset 1: 2 Lựa chọn chiều dài từ Chọn số Bit dừng 3 Parity Enable 5:4 Chọn Parity 6 l 7 Break Control Divisor Latch Access Bit : Kí tự dài 5 bit 1: Kí tự dài 6 bit 1: Kí tự dài 7 bit 11: Kí tự dài 8 bit : 1 stop bit 1: 2 stop bits (1.5 nếu ULCR[1:]=) : không cho phép tạo và kiểm tra parity 1: cho phép tạo và kiểm tra parity : parity lẻ 1: parity chẵn 1: gán 1 là parity 11: gán là parity : Không cho phép dừng truyền dữ liệu 1: Cho phép dừng truyền dữ liệu Ngõ ra của chân UART TxD sẽ bj gán = khi ULCR6 tích cực mức cao. : Không cho phép truy cập Divisor Latches 1: Cho phép truy cập Divisor Latches Bảng 1: Ý nghĩa các bit của thanh ghi điều khiển đường truyền UART(ULCR - xecc) C.VII. Thanh ghi điều khiển trạng thái cho đường truyền cho truyền thông nối tiếp<ulsr - xec14>: Thanh ghi này cho biết trạng thái thông tin trên các khối UART Tx và Rx, thuộc tính chỉ đọc. ULSR Chức năng Sẵn sàng nhận dữ liệu (RDR) 1 Lỗi tràn (OE) 2 3 4 5 6 Kiểm tra lỗi Parity(PE) Khung lỗi (FE) Ngắt dừng truyền thông nối tiếp(bi) Thanh ghi giữ giá trị truyền phát đã rỗng (THRE) Quá trình truyền phát là rỗng (TEMT) Giải thích : URBR rỗng. 1: URBR chứa các giá trị hợp lệ ULSR= 1 khi URBR giữ các kí tự không đọc được và được xóa khi UART RBR FIFO được làm rỗng. : Không bị tràn. 1: bị tràn Điều kiện lỗi tràn ngay lập tức sẽ đưa bit này lên tích cực, ULSR được đọc sẽ xóa ULSR[1]. ULSR[1]= 1 khi UART RSR nhận được kí tự mới trong khi bộ UART RBR FIFO đã đầy. Trong trương hợp này, UART RBR FIFO sẽ không ghi đè lên và giá trị muốn vào UART RSR sẽ bị mất. : kiểm tra Parity không lỗi 1: kiểm tra Parity bị lỗi Khi bit parity từ kí tự nhận được bị lỗi, sẽ xuất hiện lỗi parity,ulsr đọc và xóa ULSR2. : Không có lõi khung 1: Lỗi khung. Khi bit dừng của kí tự truyền nhận=. Lỗi khung xuất hiện.ulsr đọc sẽ xóa bit này. : Trạng thái dừng ngắt truyền thông không tích cực 1: Trạng thái dừng ngắt truyền thông tích cực Khi RxD được giữ trong thời gian bằng 1 lần truyền kí tự (start, data, parity, stop), trạng thái ngắt truyền thông nối tiếp lên mức tích cực. Khi bit này lên mức tích cực, bộ nhận sẽ ở trạng thái rỗi (Idle). Bộ nhận sẽ bắt đầu hoạt động lại khi nào tất cả các bit(start, data, parity, stop) lên 1. ULSR đọc sẽ xóa bit này. : UTHR chứa dữ liệu hợp lệ 1: UTHR rỗng. THRE= 1 ngay sau khi phát hiện UART THR rỗng và được xóa khi ghi dữ liệu vào UTHR : UTHR và/hoặc UTSR chứa các dữ liệu hợp lệ 1: UTHR và UTSR rỗng. TEMT= 1 khi cả UTHR và UTSR đều rỗng. TEMT được xóa khi UTSR hoặc UTHR chứa các dữ liệu hợp lệ. Giá trị Reset 1 1 26 Bùi Trung Hiếu Webmaster: http://www.khvt.com

UART Trang 7 7 : URBR không có lỗi UART Rx hoặc UFCR=. 1: UART RBR có ít nhất 1 lỗi UART Rx. Lỗi do Rx ULSR[7]= 1 khi kí tự với lỗi truyền nhận như lỗi khung, lỗi parity, hay ngắt dừng FIFO (RxFE) truyền thông được load vào URBR. Bit này sẽ được xóa khi thanh ghi ULSR đọc và không có lỗi tương tự xuất hiện ở UART FIFO. Bảng 11: Ý nghĩa các bit của thanh ghi trạng thái đường truyền truyền thông nối tiếp UART D. Kiến trúc của bộ truyền thông nối tiếp UART: D.I. Hình vẽ: Hình 1: Sơ đồ khối bộ truyền thông nối tiếp bất đồng bộ UART Thành phố Hồ Chí Minh, tháng 2 năm 26

Cổng truyền thông nối tiếp bất đồng bộ Trang 8 D.II. Chú thích: Giao tiếp VPB cung cấp đường truyền thông giữa CPU hay host với UART. Khối thu UART: URx, quản lý đường vào nối tiếp, RxD, cho tín hiệu vào hợp lệ. thanh ghi dịch UART Rx (URSR) nhận các dữ liệu hợp lệ thông qua RxD. Sau khi các kí tự hợp lệ vào URSR, nó sẽ qua thanh ghi đệm UART Rx FIFO và chờ CPU hay máy chủ truy cập thông qua giao tiếp chung. Khối nhận UART: UTx, cho phép dữ liệu từ CPU hay host được giữ ở bộ đệm dữ liệu UART Tx FIFO (UTHR). Thanh ghi dịch UART Tx(UTSR) đọc dữ liệu chứa trong UTHR và tập hợp chúng để gởi qua chân TxD. Khối sinh tốc độ Baud UART: UBRG, tạo thời gian cho phép sử dụng khối UART Tx. Xung nhịp của UBRG bắt nguồn từ xung nhịp của VPB(PCLK), NBAUDOUT = PCCK/16x với x=[ UDLM-UDLL]. Giao diện ngắt bao gồm 2 thanh ghi UIER và UIIR. E. Chương trình minh họa: Hello World! E.I. Mã nguồn: I.1. Khai báo: Để giao tiếp MCU-PC, ta cần khai báo hoạt động UART <giả sử sử dụng UART>: +Các chân sử dụng. +Tốc độ Baud sử dụng. +Kiểu truyền dữ liệu, các thông số của truyền thông nối tiếp bất đồng bộ. +Cho DLAB=1. Ta thực hiện quá trình đó, như sau: +Các chân sử dụng: TxD và RxD PINSEL=x 1; <bảng 58, trang 11 hướng dẫn sử dụng> +Tốc dộ Baud: NBAUDOUT = PCCK/16/[UDLM-UDLL] Giả sử dùng thạch anh 11.592MHz, PCCK=5CCLK, PCLK=CCLK, chọn tốc độ Baud=1152 [UDLM-UDLL]=x1E UDLM=x; UDLL=x1E; +Kiểu truyền dữ liệu, các thông số thiết lập: dữ liệu 8 bits, không parity, 1 bit dừng, xem bảng 8, ta có: ULCR[1:] = 11; ULCR[2] = ; ULCR[3] = ; Tức là: ULCR=x3; Đoạn code khởi tạo truyền thông nối tiếp như sau: uart_init() { PINSEL=x 1; //Tích cực DLAB trước khi ghi giá trị vào các thanh ghi UDLM và UDLL ULCR = x83; UDLM=x; UDLL=x1E; // DLAB = cho máy khởi tạo tốc độ baud hoạt động ULCR = x3; }//end uart_init() 26 Bùi Trung Hiếu Webmaster: http://www.khvt.com

UART Trang 9 I.2. Chương trình chính: Ta dùng thư viện stdio.h sẵn có của Keil-uV3 viết chương trình Hello World như sau: //Khai bao cac header su dung #include <stdio.h> #include <lpc22xx> //vao chuong trinh chinh void main (void) { //Luu y phai thiet dat cac thong so MSEL, PSEL, PLLDIV truoc khi dung uart_init(); printf(" Khan thuong nho ai?\n Khan roi xuong dat\n Khan thuong nho ai?\n Khan vat len vai\n Khan thuong nho ai?\n Khan chui nuoc mat\n Den thuong nho ai?\n Ma den khong tat\n Mat thuong nho ai?\n Mat ngu khong yen!"); while(1); //Vong lap vo tan } Thực tế, các hàm khai báo trong thư viện stdio.h chỉ nhận dữ liệu vào bộ đệm hoặc đẩy dữ liệu ra bộ đệm mà không nhận về CPU hoặc gởi ra target, ta sử dụng thêm hàm khai báo getchar(int ch) và putchar(int ch) sẵn có trong ví dụ Hello của ARM để làm việc đấy: Hàm Serial.c: /****************************************************************************/ /* This file is part of the uvision/arm development tools */ /* Copyright KEIL ELEKTRONIK GmbH 22-24 */ /****************************************************************************/ /* */ /* SERIAL.C: Low Level Serial Routines */ /* */ /****************************************************************************/ #include <LPC22xx.H> /* Dinh nghia LPC22xx */ #define CR xd int putchar (int ch) { /* Ghi ki tu ra cong noi tiep Serial Port */ //Neu ki tu la dau xuong hang, tra ve CR if (ch == '\n') { while (!(ULSR & x2)); UTHR = CR; /* output CR */ } //Neu khong, nhan gia tri day vao thanh ghi UTHR while (!(ULSR & x2)); return (UTHR = ch); } int getchar (void) { /* Doc ki tu tu cong noi tiep */ //Neu co du lieu hop le trong bo dem, ghi vao thanh ghi URBR while (!(ULSR & x1)); return (URBR); } E.II. Kết quả mô phỏng: Thành phố Hồ Chí Minh, tháng 2 năm 26

Cổng truyền thông nối tiếp bất đồng bộ Trang 1 Hình 2: Kết quả mô phỏng Hình 3: Kết quả thực tế F. Kết luận: 26 Bùi Trung Hiếu Webmaster: http://www.khvt.com

UART Trang 11 Bài viết này tôi đã giới thiệu rất chi tiết cách dùng cổng truyền thông nối tiếp cho ARM7 LPC2214 của Philips Semiconductors. Các hình vẽ và nội dung được dịch từ tài liệu hướng dẫn sử dụng của LPC2214. Ví dụ minh họa có sử dụng chương trình viết sẵn của KeiluV3. Chương trình giao tiếp qua cổng COM1 có thể dùng bất kì, tuy nhiên, phải lưu tần số các thiết đặt thuộc tính, với mạch tôi đang sử dụng, DTR=RTS=. Các kết quả đã được kiểm tra đúng như lý luận Mọi liên hệ và thắc mắc khác <nếu có> xin trao đổi qua: Bùi Trung Hiếu Webmaster : http://www.khvt.com Email : buitrunghieu@khvt.com Cell : (+84)98.321.96 Cập nhật lần cuối vào lúc: 2/25/26 11:5:23 AM Thành phố Hồ Chí Minh, tháng 2 năm 26