Truyền thông UART

Một phần của tài liệu hệ thống báo trộm và điều khiển thiết bị qua tin nhắn điện thoại (Trang 43 - 49)

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT

2.3 GIỚI THIỆU VI ĐIỀU KHIỂN MSP430F5418A

2.3.3 Truyền thông UART

Truyền thông UART là một trong các chuẩn truyền thông được tích hợp trong hai module USART1 và USCI_Ax của MSP430F5418A. Trong phần này nhóm thực hiện chỉ trình bày UART trong module USCI_A0, module USCI_A1 cũng tương tự như module USCIA_0.

USCI là module hỗ trợ nhiều chế độ truyền thông phổ biến, được chia làm hai loại là USCI_Ax và USCI_Bx. Tùy theo từng module mà sẽ được hỗ trợ các chế độ truyền thông khác nhau. Với các module USCI_Ax thì hỗ trợ các chế độ giao tiếp: UART, IrDA, SPI; Với các module USCI_Bx thì hỗ trợ các chế độ giao tiếp: I2C, SPI. Để thiết lập chế độ truyền thông UART ta phải tiến hành xóa bit UCSYNC trong thanh ghi UCA0CTL0. Trong chế độ truyền bất đồng bộ UART module USCI_A0 kết nối MSP430 với một hệ thống bên ngoài qua hai chân: UCA0TXD (P3.4 hoặc P5.6) và UCA0RXD (P3.5 hoặc P5.7).

Đặc đim UART trong module USCI_A0:

– 7 hoặc 8 bit dữ liệu, có hoặc không có bit kiểm tra chẳn lẽ. – Có thanh ghi dịch, thanh ghi đệm truyền và nhận độc lập. – Bắt đầu truyền và nhận dữ liệu từ bit LSB hoặc MSB.

– Có khả năng phát hiện cạnh bắt đầu được truyền đến và tự động được đánh thức từ chế độ tiết kiệm nguồn.

– Tốc độ baud có thể lập trình, có sự điều chỉnh và bổ sung để nâng cao độ chính xác.

– Có cờ trạng thái dùng cho phát hiện và ngăn chặn lỗi. – Có khả năng ngắt truyền và nhận độc lập.

Hình 2.

Mt s thanh ghi th

• USCI_A0 Control Register

Hình 2.6: Sơđồ khi module USCI_A0

ộ ố thanh ghi thường được s dng trong USCI_A0:

Bng 2.4: Chc năng các bit trong thanh ghi UCA0CTL0

Tên Bit Chức năng

UCPEN

Cho phép kiểm tra chẳn lẽ 0 Không cho phép kiểm tra 1 Cho phép kiểm tra

UCPAR

Chọn chế độ kiểm tra. Không sử dụng khi UCPEN=0 0 Kiểm tra chẵn

1 Kiểm tra lẽ

UCMSB

Chọn bit truyền đầu tiên là MSB 0 Bit truyền đầu tiên là LSB 1 Bit truyền đầu tiên là MSB

UC7BIT

Độ dài chuỗi dữ liệu truyền/nhận 0 8-bit dữ liệu 1 7-bit dữ liệu UCSPB Chọn số bit stop 0 1 bit stop 1 2 bit stop UCMODEx Chọn chế độ USCI 00 UART mode

01 Idle-Line Multiprocessor Mode 10 Address-Bit Multiprocessor Mode

11 UART Mode with automatic baud rate detection

UCSYNC

Synchronous mode enable 0 Asynchronous mode 1 Synchronous Mode SWRST Cho phép phần mềm reset 0 Không cho phép 1 Cho phép

Bng 2.5: ChTên Bit Tên Bit UCSSELx Chọn nguồ 00 UCLK 01 ACLK UCRXEIE Cho phép ng 0 Nh 1 Nh UCBRKIE Cho phép ng 0 Nh 1 Nh UCDORM 0 Không cho đ nh 1 Đặ ở ế độ ủ ỉ đ khi kí t UCTXADDR 0 Xác đ 1 Khung truy

UCTXBRK 0 Khung truy 1 Khung truy

UCSWRST

Cho phép reset USCI thông qua ph 0 Cho phép

1 Không

• USCI_A0 Modulation Control Register (UCA0MCTL)

Chc năng các bit trong thanh ghi UCA0CTL1

Chức năng

ọn nguồn cho xung clock cho BRCLK 00 UCLK 10 SMCLK 01 ACLK 11 SMCLK Cho phép ngắt khi ký tự nhận được không đúng 0 Nhận ký tự sai và không set bit UCA0RXIFG 1 Nhận ký tự sai và set bit UCA0RXIFG Cho phép ngắt khi ký tự nhận bị gián đoạn

0 Nhận ký tự bị gián đoạn và không set bit UCA0RXIFG 1 Nhận ký tự bị gián đoạn và set bit UCA0RXIFG

0 Không cho đặt USCI ở chếđộ ngủ, tất cả các ký tự đ

nhận sẽ set bit UCA0RXIFG

ặt USCI ở chếđộ ngủ, bit UCA0RXIFG chỉđ

khi kí tự nhận được là một địa chỉ

0 Xác định khung truyền kế tiếp là dữ liệu 1 Khung truyền kế tiếp là địa chỉ

0 Khung truyền kế tiếp không bị gián đoạn

1 Khung truyền kế tiếp gián đoạn hoặc gián đoạn/synch Cho phép reset USCI thông qua phần mềm

0 Cho phép 1 Không cho phép

USCI_A0 Modulation Control Register (UCA0MCTL)

ác bit trong thanh ghi UCA0CTL1

à không set bit UCA0RXIFG UCA0RXIFG

ặ ở ế độ ủ ấ ả các ký tự được

ặ ở ế độ ủ, bit UCA0RXIFG chỉđược set lên

– UCBRFx: Các bit này dùng đ

này xác định mô h

– UCBRSx: Các bit này dùng đ

này xác định mô h – UCOS16: Khi bit này đư

Định dng chui dữ ệ ủ ế độ

Hình 2.7: Định dng chuỗ ữ ệ ủ ế độ

Trong định dạng chuỗ ữ

dữ liệu, một hoặc không bit kiể ẵ ẻ ộ đị ỉ

address-bit), và một hoặc hai bits stop. Bit UCMSB d trên đường truyền cho phép lự ọ ứ ự

truyền thông UART thì bit truy

Thiết lp tc độ baud:

USCI có khả năng tạ ố độ

chuẩn. Bao gồm hai chếđộ ạ độ

BITCLK Baud Rate Timing with UCOS16 = 0:

UCBRFx: Các bit này dùng để chọn giai đoạn điều chế thứ ấ ịnh mô hình điều chế cho BITCLK16 khi bit UCOS16=1. UCBRSx: Các bit này dùng để chọn giai đoạn điều chế thứ

ịnh mô hình điều chế cho BITCLK.

UCOS16: Khi bit này được set thì chếđộ Oversampling đư

ị ạ ỗi d liu ca chếđộ UART trong USCI_A0:

nh dng chui d liu ca chếđộ UART trong USCI_A0

ị ạng chuỗi dữ liệu này bao gồm: một bit start, bả ặ ữ ệ ộ ặc không bit kiểm tra chẵn lẻ, một địa chỉ bit (dùng trong ch

ộ ặc hai bits stop. Bit UCMSB dùng đểđiều khiể đị

ờ ền cho phép lựa chọn thứ tự truyền đầu tiên là LSB hay MSB. Trong ì bit truyền đầu tiên thường là LSB (UCMSB=0).

ế ậ ố độ baud:

ả ăng tạo ra tốc độ baud theo tiêu chuẩn từ nguồn tầ ố ẩ ồ ếđộ hoạt động và được lựa chọn thông qua bit UCOS16.

Baudrate f

N= BRCLK

BITCLK Baud Rate Timing with UCOS16 = 0:

ể ọ đ ạ đ ề ế thứ nhất. Các bit ề ế cho BITCLK16 khi bit UCOS16=1.

ể ọ đ ạ đ ề ế thứ hai. Các bit

ược chọn. ị ạ ỗ ữ ệ ủ ế độ UART trong USCI_A0:

ị ạ ỗ ữ ệ ủ ế độ UART trong USCI_A0

ồ ột bit start, bảy hoặc tám bit ùng trong chế độ ể đ ều khiển định hướng ên là LSB hay MSB. Trong à LSB (UCMSB=0).

ẩ ừ ồn tần số phi tiêu thông qua bit UCOS16.

• Khi UCOS16=0:

UART hoạt động ở ế độ

thiết lập tốc độ baud ở nguồ ầ ố ấ ụ ố độ

clock từ thạch anh ngoài dao đ

phép sử dụng trong chế độ ằ ầ ầ ố ủ ồ

BRCLK.

Giá trị nạp cho thanh ghi UCA0BR0 v thức: UCA0BRx = INT(N). Giá trị ạ

thức: UCBRSx = round((N − INT(N))× 8).

• Khi UCOS16=1:

UART hoạt động ở ế độ ế độ

thiết lập tốc độ baud ở tầ ố đ ầ ố ủ ị ỏ

hơn hoặc bằng 1/16 lần tầ ố

trong chếđộ UART bằng 1/16 lầ ầ ố ủ ồ

Giá trị nạp cho hai thanh ghi UCA0BR0 v

công thức: UCBRx = INT(N/16). Giá trị ạ đ

công thức: UCBRFx = round(((N/16) − INT(N/16)) × 16).

ạ động ở chế độ Low-Frequency Baud Rate, chế độ ế ậ ố độ ở nguồn tần số thấp (Ví dụ: tốc độ baud là 9600, s

oài dao động ở tần số 32768Hz). Tốc độ baud tố đ đ ử ụng trong chế độ UART bằng 1/3 lần tần số của nguồ

ị ạp cho thanh ghi UCA0BR0 và UCA0BR1 được xác đị ằ

ức: UCA0BRx = INT(N). Giá trị nạp cho các bit UCBRS được tính theo công

ức: UCBRSx = round((N − INT(N))× 8).

ạ động ở chế độ Oversampling Baud Rate, chế độ

ế ậ ố độ ở tần số cao. Khi đó, tần số của BITCLK luôn có giá trị ỏ ặ ằ ần tần số của BRCLK.Tốc độ baud tối đa được phép sử ụ

ế độ ằng 1/16 lần tần số của nguồn xung clock BRCLK.

ị ạp cho hai thanh ghi UCA0BR0 và UCA0BR1 được xác đị ằ ức: UCBRx = INT(N/16). Giá trị nạp cho các bit UCBRS đ

ức: UCBRFx = round(((N/16) − INT(N/16)) × 16).

ếđộ này dùng cho à 9600, sử dụng xung ộ ở ầ ố ố độ baud tối đa được ử ụ ế độ ằ ầ ầ ố ủa nguồn xung clock

ợc xác định bằng công ợc tính theo công

ạ độ ở ế độ ế độ này dùng cho

ế ậ ố độ ở ầ ố đ ầ ố ủa BITCLK luôn có giá trị nhỏ ợc phép sử dụng ế độ ằ ầ ầ ố ủ ồn xung clock BRCLK.

ợc xác định bằng ứ ị ạp cho các bit UCBRS được tính theo

Một phần của tài liệu hệ thống báo trộm và điều khiển thiết bị qua tin nhắn điện thoại (Trang 43 - 49)

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

(81 trang)