Các thanh ghi thực hiện truyền – nhận USART

Một phần của tài liệu điều khiển từ xa các thiết bị bằng tin nhắn sms (Trang 57)

Thanh ghi dữ liệu vào/ra UDR

Các thanh ghi dữ liệu vào/ra USART trên thực tế là hai thanh ghi tách biệt nhau nhưng dùng chung một địa chỉ vật lý. Khi dữ liệu được ghi vào địa chỉ này, nó chỉ vào thanh ghi truyền dữ liệu, và khi đọc dữ liệu từđịa chỉ này nó đọc từ thanh ghi nhận dữ liệu.

Thanh ghi trạng thái và điều khiển A – USCRA

Thanh ghi trạng thái được sử dụng để giám sát trạng thái và điều khiển USART.

• Bit 7 – RXC (USART Receiver Complete): bit cờ này được thiết lập khi có dữ liệu chưa đọc trong bộđệm nhận và được xóa khi bộđệm này trống. Cờ RXC có thểđược dùng để tạo ngắt Receiver Complete.

• Bit 6 – TXC (USART Transmit Complete): cờ này được thiết lập khi toàn bộ khung trong thanh ghi dịch phát được dịch hết ra ngoài và không có dữ liệu mới đang tồn tại trong bộ đệm phát UDR. Bit cờ TXC được tự động xóa khi có ngắt Transmit Complete, hoặc nó có thểđược xóa bằng cách ghi 1 vào vị trí bit của nó. Cờ TXC có thể tạo ngắt Transmit Complete.

• Bit 5 – UDRE (USART Data Register Empty): cờ này chỉ ra khi nào bộđệm phát sẵn sàng để nhận dữ liệu mới. Khi UDRE là 1 thì bộ đệm rỗng và do đó sẵn sàng để ghi

Trang 58

vào. Cờ UDRE có thể sinh ngắt Data Register Empty. Cờ UDRE được Set sau một Reset để chỉ ra bộ phát đang sẵn sàng.

• Bit 4 – FE (Framing Error): bit này được Set nếu ký tự tiếp theo trong bộđệm thu có lỗi khung khi được nhận về. Bit này bằng 0 khi bit dừng của dữ liệu nhận được bằng 1. Luôn Set bit này về 0 khi ghi vào UCSRA.

• Bit 3 – DOR (Overrun Error): bit này được đặt thành 1 khi có hiện tượng tràn dữ liệu (một dữ liệu trong UDR không được đọc trước khi một dữ liệu mới được dịch chuyển vào UDR từ thanh ghi bộ nhận USART).

• Bit 2 – PE (Parity Error): bit này được Set nếu ký tự tiếp theo trong bộ đệm có lỗi chẵn lẻ khi nhận được về và việc kiểm tra chẵn lẻđược cho phép.

• Bit 1 – U2X (Double the USART Transmission Speed): bit này chỉ có tác dụng ở chế độ hoạt động không đồng bộ. Ghi bit này thành 0 khi sử dụng chế độ đồng bộ. Bit này khi Set lên 1 sẽ giảm số chia của bộ chia tốc độ Baud từ 16 xuống 8, từ đó nhân

đôi tốc độ truyền cho thông tin không đồng bộ.

• Bit 0 – MPCM (Multi-Processor Communication Mode): bit này cho phép chế độ

giao tiếp nhiều Vi điều khiển.

Thanh ghi trạng thái và điều khiển B – UCSRB

• Bit 7 – RXCIE (RX Complete Interrupt Enable): đặt bit này lên 1 sẽ cho phép ngắt trên cờ RXC. Chỉ tạo được ngắt nhận USART khi bit RXCIEn được thiết lập bằng 1, khi này cờ ngắt toàn cục trong thanh ghi SREG và bit RXC trong thanh ghi UCSRA

đều được đặt bằng 1.

• Bit 6 – TXCIE (TX Complete Interrupt Enable): đặt bit này lên 1 sẽ cho phép ngắt trên cờ TXC. Ngắt truyền USART chỉđược tạo ra khi bit TXCIE được thiết lập bằng 1, khi này cờ ngắt toàn cục trong thanh ghi SREG và bit TXC trong thanh ghi UCSRA đều được đặt bằng 1.

• Bit 5 – UDRIE (USART Data Register Empty Interrupt Enable): đặt bit này lên 1 sẽ cho phép ngắt trên cờ UDRE. Ngắt thanh ghi dữ liệu trống chỉ được tạo ra khi bit UDRIE

Trang 59

được thiết lập bằng 1, khi này cờ ngắt toàn cục trong thanh ghi SREG và bit UDRE trong thanh ghi UCSRA đều được đặt bằng 1.

• Bit 4 – RXEN (Receiver Enable): thiết lập bit này bằng 1 sẽ cho phép bộ thu USARTn. Khi này bộ thu không quan tâm đến hoạt động bình thường của cổng ứng với chân RxD. Khi không cho phép, bộ thu sẽ lấp đầy bộ đệm nhận làm mất hiệu lực của các cờ Fen, DOR và UPE.

• Bit 3 – TXEN (Transmitter Enable): thiết lập bit này lên 1 cho phép bộ phát USART. Khi đó bộ thu không quan tâm đến hoạt động bình thường của cổng ứng với chân TxD. Ngược lại khi đặt là 0 sẽ không cho phép bộ phát USART.

• Bit 2 – UCSZ2 (Character Size): bit UCSZ2 kết hợp với bit UCSZ1, UCSZ0 trong UCSRC để thiết lập số lượng bit dữ liệu (kích thước ký tự) trong khung dữ liệu thu và phát.

• Bit 1 – RXB8 (Receiver Data Bit 8): là bit dữ liệu thứ 9 của ký tự nhận khi hoạt động với khung 9 bit dữ liệu. Bit này phải được đọc trước khi đọc các bit thấp từ UDR.

• Bit 0 – TXB8 (Transmitter Data Bit 8): là bit dữ liệu thứ 9 của ký tự phát khi hoạt

động với khung 9 bit dữ liệu. Bit này phải được ghi trước khi ghi các bit thấp từ

UDR.

Thanh ghi trạng thái và điều khiển C – UCSRC

• Bit 7 – URSEL (Register Select): bit này lựa chọn giữa truy nhập thanh ghi UCSRC hay thanh ghi UBRRH (hai thanh ghi này chia sẻ chung địa chỉ). Khi bit này bằng 1 thì đọc UCSRC. URSEL phải bằng 1 khi ghi vào UCSRC.

• Bit 6 – UMSEL (USART Mode Select): bit này lựa chọn hoạt động đồng bộ hay không đồng bộ. Khi nó bằng 0 thì hoạt động ở mode không đồng bộ, ngược lại là mode đồng bộ.

• Bit 5, 4 – UPM1, 0 (Parity Mode): các bit này cho phép và thiết lập kiểu tạo và kiểm tra chẵn lẻ.

• Bit 3 – USBS (Stop Bit Select): bit này lựa chọn số bit dùng được chèn vào bởi bộ

Trang 60

cho phép 2 bit dừng.

• Bit 2, 1 – UCSZ1, 0 (Character Size): các bit UCSZ1, 0 kết hợp với UCSZ2 trong UCSRnB thiết lập số lượng bit dữ liệu (kích thước ký tự) trong một khung mà bộ

phát và thu sử dụng.

• Bit 0 – UCPOL (Clock Polarity): bit này chỉ được dùng ở chế độ đồng bộ. Đặt bit này bằng 0 khi sử dụng chế độ không đồng bộ. Bit UCPOL thiết lập quan hệ giữa việc thay đổi đầu ra dữ liệu và lấy mẫu đầu vào dữ liệu, và xung đồng bộ (XCK). Các thanh ghi tốc độ Baud – UBRRL và UBRRH

• Bit 15 đến bit 12 – Reserved Bits: các bit này được dự trữ để sử dụng về sau. Ở chế độ tương thích với các thiết bị sau này, các bit này phải được thiết lập bằng 0 khi thanh ghi UBRRH được sử dụng.

• Bit 11 đến bit 0 – USART Baud Rate Register: là một thanh ghi 12 bit chứa tốc độ

Baud. Thanh ghi UBRRH chứa 4 bit cao còn UBRRL chứa 8 bit thấp hơn trong tốc

độ Baud USART. Quá trình truyền dữ liệu sẽ bị ngắt nếu tốc độ Baud thay đổi khi

đang truyền.

Trên đây là những nghiên cứu cơ bản về Vi điều khiển Atmega 8. Kiến thức về Vi điều khiển Atmega 8 rất rộng. Tuy nhiên trong khuôn khổđề tài, những vấn đề em đã nghiên cứu

ở trên là những vấn đề quan trọng cần thiết phục vụ trực tiếp cho đề tài.

Ngoài việc nhận để xử lý tín hiệu từ Modem GSM SIM900 sau đó gửi phản hồi cho Modem, trung tâm xử lý là Vi điều khiển Atmega 8 còn nhận các tín hiệu từ Module điều khiển. Nhiệm vụ của Module điều khiển là thực hiện bật tắt các thiết bị thông dụng, đồng thời em còn mở rộng thêm hướng cảnh báo bằng việc sử dụng các loại cảm biến sẽ được giới thiệu ở phần sau.

3.3.3 Phương án lựa chọn các loại cảm biến

Cuộc sống của chúng ta tồn tại trong cùng lúc với nhiều thực thể vật lý, những thứ chúng ta nhận biết được như là các vận động cơ học, tác dụng của nhiệt (nhận biết qua lớp da), của

Trang 61

ánh sáng (nhận biết qua mắt), của âm thanh (nhận biết qua tai), của mùi (nhận biết qua mũi), của vị (nhận biết qua lưỡi) và nhất là của điện. Hiện nay, điện tử học là một công cụ phục vụ

con người nhiều nhất, chúng ta có radio, ti vi, máy ghi hình, máy tính… Ưu điểm của các thiết bịđiện là xử lý các vấn đề rất nhanh, nhưng các thiết bịđiện thì lại chỉ làm việc với tín hiệu thuộc điện. Tuy nhiên xung quanh chúng ta không phải chỉ có các hiện tượng thuộc

điện mà song song đó còn rất nhiều hiện tượng phi điện khác đang tồn tại. Từ đó, người ta nghĩ đến chế tạo Sensor. Sensor là các cảm biến, nó dùng để chuyển đổi các tín hiệu không thuộc điện ra dạng tín hiệu điện và đưa vào các dạng mạch điện để xử lý.

Ngày nay có rất nhiều loại cảm biến, nhưng trong chương này em đi nghiên cứu hai loại là cảm biến chuyển động – PIR, cảm biến mở cửa (Công tắc từ) và cảm biến khí gas nhằm phục vụ cho hai mục đích của đề tài là chống trộm và cảnh báo khi có sự rò rỉ khí gas.

3.3.3.1 Cảm biến mở cửa (Công tắc từ)

Một phần của tài liệu điều khiển từ xa các thiết bị bằng tin nhắn sms (Trang 57)

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

(107 trang)