Cài đặt tốc độ truyền dữ liệu nối tiếp và thuật toán tốc độ truyền
Khi giao tiếp nối tiếp của máy vi tính chip đơn được sử dụng, tốc độ truyền phải được đặt và tốc độ truyền phải được đặt thành 9600, 19200 ...? Đây có phải là truyền thống không? Từ cái gì? Dao động tinh thể tương ứng cũng thường là 11.0592MHZ.
Là nó đầu tiên để thiết lập các dao động tinh thể và sau đó thiết lập tốc độ truyền hoặc thiết lập tốc độ baud đầu tiên và sau đó thiết lập các dao động tinh thể. Tại sao điều này nên được thiết lập?
Có hai câu lệnh đáng tin cậy hơn:
1: Theo đặc điểm vật lý của điện, phương tiện truyền dẫn, vv kết hợp với các yêu cầu của việc sử dụng thiết bị nối tiếp
Để đảm bảo truyền thông hiệu quả, theo đặc điểm vật lý của điện, phương tiện truyền dẫn, vv kết hợp với các yêu cầu sử dụng thiết bị nối tiếp, nó được xác định rằng tốc độ truyền tối đa của RS232 chỉ có thể là 115200, và sau đó thu được bằng hai bước để có được 57600, 28800, 19200; để thích ứng với các mức giá này, hãy thiết kế tần số tinh thể tương ứng.
2: Điều này được xác định bởi các đặc tính của đường viễn thông.
Băng thông của đường dây điện thoại là 300--3KHz. Vào thời điểm đó, cỏ khô đầu tiên tham gia vào modem, vì vậy tín hiệu 2400HZ được sử dụng, tốc độ truyền tương ứng là 2400. Vì tần số cơ bản được xác định, đường truyền được cải thiện đã áp dụng phương pháp của tỷ lệ được nhân lên trên cơ sở 2400 sau đó, sự hình thành của 9600.19200. . . .
Dù bằng cách nào, có một tốc độ truyền và sau đó là một tần số tinh thể.
Tính toán tốc độ truyền của truyền thông nối tiếp của máy vi tính chip đơn.
Ở chế độ 0 và chế độ 2, tốc độ truyền của cổng nối tiếp được cố định và chế độ 0 là Fosc / 12. Chế độ 2 là Fosc / 32 hoặc Fosc / 64, được xác định bởi bit SMOD của thanh ghi PCON.
Ở chế độ 1 và chế độ 3, tốc độ truyền là giá trị biến. Tốc độ truyền có thể được tạo ra bởi Timer 1 (8052 có thể được tạo ra bởi Timing 2). Tốc độ truyền là gì? Tốc độ truyền theo tốc độ tràn bộ đếm thời gian 1 được xác định:
Tốc độ truyền = (2SMOD / 32) * (Tốc độ tràn bộ đếm thời gian 1)
Lưu ý: 2SMOD ở đây SMOD là chỉ mục, SMOD là bit tốc độ truyền đôi tốc độ truyền, bit này nằm trong thanh ghi PCON.
Khi sử dụng bộ đếm thời gian 1 làm bộ tạo tốc độ truyền, thường cần phải định cấu hình bộ định thời 1 để hoạt động ở chế độ tự động tải lại 8 bit và cũng tắt hẹn giờ 1, sau đó tràn bộ hẹn giờ 1 cách tính? Tỷ lệ tràn là tần suất tràn. Giả sử tần số tinh thể là 12MHz và giá trị TH1 là 0xFE, chỉ có hai xung đồng hồ sẽ được yêu cầu tràn, và thời gian tràn là 2us, sau đó tần số tràn là 500KHz. Theo phần hẹn giờ, thời gian định thời có công thức sau:
Timing time = (giá trị đếm lớn nhất - giá trị ban đầu đếm) * chu trình máy = (giá trị đếm lớn nhất - giá trị ban đầu đếm) * (12 / tần số tinh thể (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ ( Hz)) (s).
Sau đó, tần suất tràn là tự nhiên:
OSC_FREQ (Hz) / ((256-TH1) * 12).
Vì vậy, tỷ lệ push-to-baud cuối cùng là:
(2SMOD / 32) * (OSC_FREQ (Hz) / ((256-TH1) * 12)).
Công thức tính toán của tốc độ truyền có sẵn, và tự nhiên, giá trị ban đầu của TH1 có thể được bắt nguồn theo tốc độ truyền:
BAUD_RATE = (2SMOD / 32) * (OSC_FREQ (Hz) / ((256-TH1) * 12))
32 * 12 * (256-TH1) = (2SMOD * OSC_FREQ (Hz)) / BAUD_RATE
256-TH1 = (2SMOD * OSC_FREQ (Hz)) / (BAUD_RATE * 32 * 12)
TH1 = 256- (2SMOD * OSC_FREQ (Hz)) / (BAUD_RATE * 32 * 12)
Giả sử tần số tinh thể là 11.0592MHz, tốc độ truyền là 9600, SMOD = 0, giá trị ban đầu của TH1 là bao nhiêu? Theo công thức trên, nó có thể được tính TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.





