2 .GIỚI THIỆU TỔNG QUÁT VỀ PIC16F877A
2.6 TRUYỀN THÔNG NỐI TIẾP EUART
2.6.1.2 Bộ thu bất đồng bộ EUSART
Sơ đồ khối của bộ thu được chỉ ra ở hình vẽ 2.14. Dữ liệu nhận trên chân RC7/RX/DT và dồn vào khối khôi phục dữ liệu. Khối khôi phục dữ liệu thật ra là dịch dữ liệu tốc độ cao, hoạt động nhanh gấp 16 lần tốc độ Baud. Một khi chế độ bất đồng bộ được chọn thì việc tiếp nhận được phép bằng cách đặt Bit CREN (RCSTA<4>).
Trung tâm của bộ nhận là thanh ghi dịch nhận RSR. Sau khi lấy mẫu Bit Stop dữ liệu nhận trong RSR được truyền đến thanh ghi RCREG. Nếu việc truyền hồn tất thì Bit Cờ RCIF lên 1. Ngắt thật sự cho phép hoặc không cho phép bằng cách đặt hoặc xóa Bit RCIE. Cờ RCIF chỉ là 1 Bit chỉ đọc và được xó bởi phần cứng. Nó được xóa khi thanh ghi RCREG được đọc và hồn tồn khơng có dữ liệu. RCREG là 1 thanh ghi bộ đệm đơi (Bởi vì nó cho 2 Byte dữ liệu có thể truyền và nhận đồng thời đến RCREG
FIFO và Byte thứ 3 bắt đầu được dịch chuyển đến thanh ghi RSR). Khi phát hiện ra Bit Stop của Byte thừ 3 này, Nếu thanh ghi RCREG vẫn cịn đầy thì Bit bào lỗi trànOERR(RCSTA<1>), sẽ lên 1. Những dữ liệu trong RSR sẽ mất đi. Và thanh ghi RCREG có thể được đọc 2 lần để lấy lại 2 Byte trong FIFO. Bit báo tràn OERR phải được xóa trong phần mềm.
Để thiết lập chế độ thu bất đồng bộ, các bước sau được yêu cầu :
1. Khởi tạo thanh ghi SPBRGH:SPBRG, BRGH và BRG16 bit cho việc chọn sai số tốc độ Baud.
2. Set chân điều khiển RX/DT và TX/CK bằng “1”.
3. Cho phép nhận qua Port nối tiếp bất đồng bộ bằng cách xóa Bit SYNC và cho Bit SPEN lên 1.
4. Nếu ngắt xảy ra thì set Bit RCIE và Nếu sử dụng ngắt thì set bit GIE và PEIE của thanh ghi INTCON.
5. Nếu nhận 9-Bit dữ liệu thì set Bit RX9 .
6. Set bit CKTXP nếu dữ liệu nhận bị đảo ngược. 7. Cho phép nhận dữ liệu bằng cách set Bit CREN.
8. Sau khi dữ liệu được nhận , Bit Cờ ngắt RCIF sẽ được set và cờ ngắt được kích hoạt (nếu bit RCIE được set).
9. Đọc nội dung thanh ghi RCSTA để nhận bit dữ liệu thứ 9 và xác định các lỗi xảy trong quá trình thu dữ liệu.
10. Nhận 8 bit dữ liệu thu được bằng cách đọc nội dung thanh ghi RCREG. 11. Nếu xuất hiện lỗi trong q trình nhận thì xóa lỗi bằng cách xóa BitCREN
Hình 2.15 Các thanh ghi liên quan đến quá trình nhận dữ liệu bất đồng bộ