Khi một byte mới được viết để UART0_DR_R, nó được đưa vào truyền FIFO. Byte bởibyte, UAR T lấy dữ liệu từ FIFO và tải chúng vào sự thay đổi 10-bit truyềnĐăng ký. Đăng ký 10-bit thay đổi bao gồm một chút bắt đầu, dữ liệu 8 bit, và dừng lại 1 chút. Sau đó, cáckhung được chuyển ra một chút tại một thời điểm được chỉ định bởi đăng ký tỷ lệ tốc độ. Nếu cóđã có dữ liệu trong FIFO hoặc trong theshift đăng ký khi UART0_DR_R được viết,khung mới sẽ chờ đợi cho đến khi các khung hình trước đó đã được truyền đi, trước khi nó quá làtruyền. FIFO đảm bảo dữ liệu được truyền theo thứ tự chúng được viết.Phần cứng cổng nối tiếp thực sự được điều khiển bởi một chiếc đồng hồ 16 lần nhanh hơn so với cáctốc độ baud, được gọi trong thông số kỹ thuật là Baud16. Khi dữ liệu đang được chuyển ra ngoài, cáckỹ thuật số phần cứng trong UAR T đếm 16 lần ở giữa các thay đổi để đầu ra U0Txdòng.Các phần mềm thực sự có thể viết 16bytes để UART0_DR_R, và phần cứng sẽgửi cho họ tất cả cùng một lúc theo thứ tự đúng. FIFO này làm giảm phản ứng phần mềmthời gian yêu cầu của hệ điều hành để phục vụ phần cứng cổng nối tiếp.Thật không may, nó phức tạp thời gian phần cứng/phần mềm. Tại 9600 bit/giây, nó mất1,04 ms để gửi một khung. Do đó, sẽ có một sự chậm trễ khác nhau, từ 1,04 và 16,7 msgiữa viết để đăng ký dữ liệu và hoàn thành việc truyền dữ liệu. Điều nàytrì hoãn phụ thuộc vào bao nhiêu dữ liệu đã FIFOat thời gian phần mềm viếtđể UART0_DR_R.
đang được dịch, vui lòng đợi..