2. 5.5.3 Mức ngắ tu tiên trong on-chip:
2.5.6.6. Hoạt động của chế độ 1:
ở chế độ này 10 bit đợc truyền (thông qua TxD) hoặc nhận (thông qua RxD) bao gồm: 1 bit khởi đầu(có giá trị 0), 8 bit dữ liệu (LSB đầu tiên) và 1 bit dừng (Có giá trị 1). Khi nhận tin, bit dừng chuyển vào RB8 trong SCON. Trong AT89C51, tốc độ Baud đợc xác định bằng tốc độ tràn của Timer 1. Trong AT89C52, tốc độ Baud đợc xác định bằng tốc độ tràn của Timer 1 hoặc tốc độ tràn của Timer 2 hoặc bằng tốc độ tràn của cả 2 bộ Timer này. Trong trờng hợp này, khi cả 2 bộ Timer đ- ợc sử dụng thì một bộ Timer sẽ xác định tốc độ truyền tin, còn bộ Timer kia xác định tốc độ nhận tin.
Hình 2.20 (Seriel Port Mode 1) là sơ đồ chức năng của cổng nối tiếp chế độ 1 và đồ thị thời gian liên quan tới quá trình truyền và nhận tin của chế độ này.
Quá trình truyền tin đợc khởi đầu bởi bất kỳ lệnh nào có sử dụng SBUF nh 1 thanh ghi đích. Tín hiệu “ghi vào SBUF” sẽ nạp giá trị 1 vào bit thứ 9 của thanh ghi dịch truyền và bật cờ báo cho khối điều khiển phát (Tx Control) về yêu cầu cần truyền tin. Quá trình truyền thực tế bắt đầu tại thời điểm S1P1 của chu kỳ máy theo sau quá trình quay vòng (rollover) kế tiếp ở trong bộ đếm chia 16 (-:-16). Do đó, các thời điểm của bit truyền đợc đồng bộ với nhịp bộ đếm chia16, chứ không phải với tín hiệu “ghi vào SBUF”.
Quá trình truyền tin bắt đầu khi /SEND đợc kích hoạt để mở cổng OR và bit khởi đầu đợc đặt tại TxD. Sau đó tín hiệu DATA đợc kích hoạt để mở tiếp cổng
AND. Điều này cho phép mở thông đờng truyền từ thanh ghi dịch truyền đến đầu ra TxD. Xung nhịp đầu tiên để dịch các bit trong thanh ghi dịch truyền sẽ xuất hiện ngay sau đó.
Khi các bit dữ liệu dịch sang phải, thì các giá trị 0 đợc đa vào từ bên trái. Khi MSB của Byte dữ liệu ở vị trí đầu ra của thanh ghi dịch thì giá trị 1(ban đầu đã đợc nạp vào bit thứ 9) sẽ đợc điền vào ngay bên trái của bit MSB, còn các bit kể từ nó sang trái đều có giá trị 0. Điều kiện này sẽ chỉ thị cho khối điều khiển phát thực
hiện lần dịch cuối cùng và sau đó đa trả /SEND về mức thụ động, đồng thời thiết lập cờ ngắt TI. Thời điểm này rơi vào chu kỳ thứ 10 của bộ đếm chia 16, sau thời điểm “ghi vào SBUF”.
Quá trình nhận tin đợc khởi đầu bằng việc phát hiện có sự chuyển trạng thái từ 1 về 0 ở đờng thu nối tiếp RxD. Để phát hiện chính xác, tín hiệu trên RxD đợc lấy mẫu ở tốc độ gấp 16 lần tốc độ Baud của đờng truyền. Khi sự chuyển trạng thái (từ 1 về 0) đợc phát hiện thì bộ đếm chia 16 đợc tái xác lập ngay và giá trị 1FFh đợc ghi vào thanh ghi dịch đầu vào (Input shift register). Việc tái thiết lập bộ đếm chia 16 sẽ đồng nhất thời điểm tràn của nó với các biên (ranh giới) thời gian của bit đang đi tới đầu thu.
Mỗi bit đợc chia thành 16 phần (States) thời gian bằng nhau (16 phần của bộ đếm). Tại các phần thời gian thứ 7, 8, 9 của mỗi bit, bộ phát hiện bit (Bit Detector) sẽ trích mẫu giá trị của RxD. Giá trị đợc chấp nhận là giá trị đã có ở ít nhất 2 trong 3 mẫu. Phơng pháp này đợc thực hiện để chống nhiễu đờng truyền. Nếu giá trị đợc chấp nhận đối với bit đầu tiên không phảI là 0 (không phảI bit START), thì các mạch thu đợc tái xác lập để quay lại chờ một đột biến từ 1 về 0 khác. Nếu bit khởi đầu (START) có giá trị hợp lệ thì dữ liệu đợc dịch vào thanh ghi dịch đầu vào, và quá trình nhận tin đợc tiếp tục.
Khi các bit dữ liệu đi vào từ bên phải của thanh ghi dịch, thì các giá trị 1 đợc dịch ra bên trái của nó. Khi bit khởi đầu đến vị trí tận cùng bên trái của thanh ghi dịch (ở chế độ 1, nó là thanh ghi 9 bit), nó sẽ chỉ thị cho khối điều khiển nhận (Rx Control) thực hiện phép dịch chuyển cuối cùng, rồi nạp SBUF và RB8, và thiết lập RI. Tín hiệu để nạp SBUF và RB8, và để thiết lập RI sẽ đợc tạo ra khi và chỉ khi các điều kiện sau đây đợc thoả mãn ở thời điểm xung nhịp cuối cùng đợc tạo ra:
1. RI=0, và
2. Hoặc SM2=0, hoặc bit STOP nhận đợc =1.
Nếu một trong hai điều kiện này không đợc thảo mãn, thì Byte tin nhận đợc sẽ bị mất. Nếu cả 2 điều kiện đợc thoả mãn, thì bit dừng chuyển vào RB8, 8 bit dữ liệu chuyển vào SBUF, và RI đợc kích hoạt. Tại thời điểm này, bất kể các điều kiện trên đợc thoả mãn hay không, thì khối điều khiển vẫn quay trở lại để tiếp tục chức năng phát hiện đột biến mới từ 1 về 0 trên đờng thu tin RxD.