UART– Uniseral Asynchronous Receiver/Transmitter – bộ truyền nhận dữ liệu nối tiếp bất đồng bộ, thường được dùng để truyền nhận dữ liệu giữa hai hay nhiều thiết bịkhác nhau, được giao tiếp với nhau qua chuẩn UART. Trong giao thức UART
Xóa Port/Slave
Hình 4.8: Lưu đồ giải thuật các chương trình con tại Slave
Bắt đầu Kết thúc Xóa Port 1 Clear EEPROM của Port 1 Xóa Port 2 Xóa Port 3 Xóa Slave Clear EEPROM của Port 2 Clear EEPROM của Port 3 Clear EEPROM của Slave S Đ S S S Đ Đ Đ
SVTH: Huỳnh Văn Biên –Nguyễn Nhật Linh Trang 46
cần phải kết hợp với một số thiết bị chuyển đổi mức điện áp gồm các thông số khung truyền như baud rate – tốc độ truyền, độ dài khung, stop –điểm dừng, start –điểm bắt đầu, data bits – các bit dữ liệu nhất định, bit kiểm tra chẵn lẽ - parity,...
Lưu ý:
- UART : giao tiếp không đồng bộ , vì thế hai bên muốn giao tiếp với nhau cần quy định các đặc điểm tốc độ truyền , cấu trúc khung truyền .. giống nhau
- Tốc độ truyền nhận dữ liệu của UART gọi là Baud Rate (tốc độ Baud) : Số bit truyền được trong 1s .Ví dụ Baud rate là 9600 : tức là truyền 9600 bit/1s
- UART có 2 đường truyền và nhận dữ liệu riêng biệt do đó nó có thể đồng thời vừa truyền, vừa nhận dữ liệu một lúc (truyền song công)
Hình 4.9 là sơ đồ phần cứng của giao tiếp UART
Hình 4.9: sơ đồ phần cứng UART
Giao tiếp UART được thực hiện qua 2 chân TX và RX, trong đó: - RX: Chân nhận dữ liệu
- TX: Chân truyền dữ liệu
Yếu tổ nhỏ nhất của quá trình truyền dữ liệu là UART frame –hay còn gọi là UART character. UART frame có cấu trúc như sau:
SVTH: Huỳnh Văn Biên –Nguyễn Nhật Linh Trang 47
Trong đó:
Start bit : bit đầu tiên trong khung truyền, báo hiệu quá trình truyền dữ liệu
Data Bits : dữ liệu cần giao tiếp , có thể gồm 5,6,7,8,9 bit, nhưng thông thường hay để định dạng dữ liệu 8 bits (1 byte).
Parity bit : Bit kiểm tra chẵn lẻ , dùng khi muốn kiểm tra lỗi
Stop bit : gồm 1 hoặc 2 bitdùng để kết thúc một khung truyền
IDLE : trạng thái nghỉ , phải ở mức cao
Các thanh ghi trong UART của MSP430G2553
- UCA0CTL0: Thanh ghi 8 bits dùng để thiết lập chế độ truyền thông trong
UART.
- UCA0CTL1: Thanh ghi 8 bits dùng để thiết lập nguồn xung clock cho UART.
- UCA0MCTL: Thanh ghi 8 bits dùng để thiết lập tốc độ baud giữa thiết bị truyền vànhận.
- UCA0TXBUF: Thanh ghi đệm truyền dữ liệu 8 bits.
- UCA0RXBUF: Thanh ghi đệm nhận dữ liệu 8 bits. Ngắt truyền thông UART:
- Ngắt truyền: Dữ liệu truyền được đưa vào thanh ghi đệm UCA0TXBUF sau
đó được truyền ra chân TXD thông qua thanh ghi dịch. Cờ TXIFG được set lên khi bộ đệm và thanh ghi dịch ở trạng thái rỗng và reset khi dữ liệu được đưa vào UCA0TXBUF và truyền đi. Khi cờ ngắt được set lên 1, một yêu cầu ngắt phát sinh nếu bit TXIE và GIE được set
- Ngắt nhận: Khi có dữ liệu truyền đến chân RXD đi qua thanh ghi dịch vào
thanh ghi đệmRXBUF thì cờ ngắt được set lên. Khi đó, một yêu cầu ngắt phát sinh nếu bit RXIE và GIE được set. Cờ RXIFG sẽ được reset khi thực hiện xong chương trình phục vụ ngắt hoặc dữ liệu đã được đọc từ thanh ghi RXBUF.