UART thường cho phép bạn chọn giữa 1, 1,5 và 2 bit stop. Với hiệu suất tải trọng 1 bit dừng là 80% (8/10), với 2 bit stop giảm xuống 72,7% (8/11). Vì vậy, lợi thế của bit stop thứ hai là gì?
UART thường cho phép bạn chọn giữa 1, 1,5 và 2 bit stop. Với hiệu suất tải trọng 1 bit dừng là 80% (8/10), với 2 bit stop giảm xuống 72,7% (8/11). Vì vậy, lợi thế của bit stop thứ hai là gì?
Câu trả lời:
Các bit dừng thêm có thể là một cách hữu ích để thêm một chút thời gian xử lý nhận thêm, đặc biệt là ở tốc độ truyền cao và / hoặc sử dụng UART mềm, trong đó cần có thời gian để xử lý byte nhận được.
Khi tốc độ quá chặt và UART của bạn chỉ cung cấp tỷ lệ phân chia ở mức 2, việc thêm một điểm dừng bổ sung có thể là một lựa chọn để giảm tốc độ ít hơn so với tốc độ baud thấp nhất tiếp theo.
Tôi tin rằng đây có thể là một lý do khiến tiêu chuẩn DMX512 chỉ định 2 điểm dừng.
Một tình huống khác có thể hữu ích là nếu bạn có các thiết bị chuyển tiếp luồng dữ liệu mà không có bất kỳ bộ đệm hoặc gói nào - sự khác biệt nhỏ về tốc độ xung nhịp giữa các nút và độ chi tiết lấy mẫu hữu hạn có thể gây ra lỗi khi dữ liệu được nhận và truyền lại bởi một số nút trong một chuỗi, nhưng nếu dữ liệu được gửi với 2 điểm dừng và bộ thu được đặt thành một điểm dừng, nó sẽ thêm đủ biên để chứa các lỗi này và để lại ít nhất một khoảng thời gian dừng hợp lệ để các nút ở xa chuỗi nhận được một cách đáng tin cậy.
Tôi cũng đã gặp phải một tình huống trong đó một lần chạy dây cáp rất dài gây ra sự bất cân xứng trong thời gian tăng và giảm, dẫn đến độ dài điểm dừng không đủ - gửi 2 điểm dừng và yêu cầu người nhận chỉ yêu cầu một lần sửa lỗi này.
Trong những ngày dài, máy in là (hầu hết) các cấu trúc cơ khí. Baudrates đã được chuẩn hóa phần nào ngay cả sau đó, vì vậy việc thêm một bit stop sẽ giúp máy in có thêm thời gian để in ký tự. Các khía cạnh thời gian đã rõ ràng trở lại sau đó. Đối với máy in đầu tiên của tôi, một http://en.wikipedia.org/wiki/Teletype_Model_33 ồn ào , tôi đã phải chèn tạm dừng hai ký tự sau khi gửi Trả về vận chuyển.
Hai bit stop dường như không hữu ích hơn nhiều so với một trên một hệ thống có tỷ lệ thời gian dừng đáng kể và đang hoạt động trong môi trường có độ ồn thấp (BER thấp) như bên trong thiết bị hoặc trong giao diện ngoại vi với một vài mét của cáp và / hoặc không có giai đoạn modem-modem.
2 bit stop cung cấp cho bạn thời gian đồng bộ hóa lớn hơn, nhiều thời gian hơn để xử lý giữa các ký tự và có thể, tùy thuộc vào phần cứng và thuật toán, cơ hội tốt hơn để đạt được hoặc lấy lại đồng bộ hóa trong một luồng dữ liệu liên tục. Thời gian xen kẽ có giá trị ít hơn nhiều trên các hệ thống hiện đại so với khi tốc độ xung nhịp thấp và thông lượng bộ xử lý thấp hơn.
Nếu bạn có một luồng dữ liệu cơ bản liên tục, thì nếu không được đồng bộ hóa, bất kỳ bit cao nào cũng sẽ trông giống như một bit stop. Bất kỳ chuyển đổi cao thấp nào sẽ trông giống như một ranh giới byte. Nếu máy thu của bạn bắt đầu ở ranh giới 10 và đó không phải là ranh giới bắt đầu thực sự thì điều này sẽ chỉ được phát hiện 50% thời gian) (nghĩa là nếu "bit stop" cuối cùng được tìm thấy thực sự là một bit dữ liệu thấp và bạn cũng sẽ đã bỏ qua ranh giới dừng / bắt đầu chính hãng trên đường đi. Trung bình bạn có 1/4 triển vọng của một ranh giới byte là 1/0 và trông giống như một cặp dừng / bắt đầu. Ở trên cho thấy rằng nếu bạn chọn dừng dừng sai bắt đầu cặp sau đó có thể có khoảng 50% cơ hội bạn sẽ chọn một cái khác trong lần thử sau.
Nếu bạn sử dụng 2 bit stop (11) thì chuỗi bắt đầu dừng hợp lệ là 110 có khả năng xảy ra 1/8 trong lưu lượng dữ liệu ngẫu nhiên. Việc trộn các bit dừng và bắt đầu chính hãng trong luồng không đồng bộ sẽ thay đổi các sats một chút nhưng có vẻ như không chắc chắn rằng nếu bạn nhận được một chuỗi dừng / bắt đầu sai 110 trên một chu kỳ mà bạn sẽ thử một lần tiếp theo trước khi vấp phải 110 chính hãng trình tự tiếp theo xảy ra.
Như bạn lưu ý, 1 bit stop mang lại 8/10 = 80% thông lượng tối đa và 2 bit stop mang lại hiệu suất 8/11 = 72%. Sự khác biệt về thông lượng ở giới hạn hoàn toàn là 80% / 72% = ~ 11% nữa. đây là một lợi ích hữu ích trong hoàn cảnh khắc nghiệt nhưng không lớn và nếu mạch không hoạt động nhiều hơn khoảng 10% thì nó có giá trị tối thiểu. Nếu mạch của bạn bị nhiễu và dễ bị mất đồng bộ hóa thường xuyên thì bit dừng thêm có thể giúp ích rất nhiều. NHƯNG nếu bạn quan tâm nhiều đến thông lượng, bạn thường có thể tăng tốc độ truyền (không phải luôn luôn) hoặc thay đổi thành hoạt động đồng bộ hoàn toàn.
Để khuếch đại quan điểm của mike Electrical ware về thời gian nhận bằng "UART mềm", một ứng dụng nhận sẽ luôn biết khi nào nên chấp nhận dữ liệu và trên cơ sở bỏ phiếu thường có thể xử lý tốc độ truyền nhanh hơn so với thực tế với UART mềm điều khiển ngắt. Tuy nhiên, các ứng dụng như vậy chỉ có thể xử lý dữ liệu đến trong khoảng thời gian giữa lúc bắt đầu bit dừng của một byte và bit bắt đầu của byte tiếp theo; thời gian cần thiết để xử lý mỗi byte kết thúc là yếu tố giới hạn cho tốc độ truyền thông. Xử lý dữ liệu ở 115.200-N-8-2 không đòi hỏi nhiều hơn so với xử lý dữ liệu ở 57.600-N-8-1, nhưng nhanh hơn 80%.
Đôi khi người ta có thể đẩy mọi thứ đi xa hơn bằng cách sử dụng các định dạng dữ liệu dường như kém hiệu quả hơn. Ví dụ, người ta có thể gửi mỗi byte thành hai phần, một có bảy bit và một với một (tất cả các MSB của phần một bit đều được đặt). Nếu một người làm điều đó, thậm chí chỉ với một bit stop, sẽ có tám lần đánh dấu giữa điểm cuối của một cặp byte và điểm bắt đầu của lần tiếp theo, do đó cho phép một người đẩy tốc độ bit cao gấp bốn lần tốc độ bit có thể làm chỉ với hai bit stop (và cao gấp tám lần so với những gì người ta có thể làm với một bit). Mặc dù phải gửi gấp đôi số byte, tốc độ dữ liệu tăng gấp bốn lần sẽ là một chiến thắng lớn. Ngoài ra, mặc dù mỗi cặp byte truyền có thể được sử dụng để gửi tám bit dữ liệu, chỉ có 130 trong số 256 giá trị byte có thể được sử dụng bởi mã hóa,
Ngày xửa ngày xưa có những con quái vật điện cơ gọi là teletypes. Hầu hết chạy trên động cơ AC đồng bộ với tần số dòng điện. Do đó, luôn có khả năng hai máy giao tiếp có thể không được đồng bộ hóa với cùng một lưới điện hoặc thậm chí chạy trên dòng điện xoay chiều sử dụng các tần số khác nhau cho vấn đề đó.
Do đó, để cho phép một máy chậm hơn bắt kịp và không bị mất đồng bộ, hai bit stop đã được gửi.
Đối với các mục đích khác như cho phép cỗ máy in quay trở lại điểm bắt đầu của một dòng mới, CR, LF cộng với hai lần cọ xát đã được gửi (tất cả các lỗ trên băng 8 cấp).
Đó là thông lệ cho các mạch chạy ở tốc độ 110 Baud và chỉ chậm hơn.
Sự chậm chạp của các thiết bị cơ học nhận là lý do đằng sau việc thêm các bit dừng bổ sung, tuy nhiên các thiết bị ngày nay đủ nhanh và hoạt động với tốc độ truyền cao hơn mà không cần thêm bit stop