Penetapan kadar baud komunikasi komunikasi dan algoritma kadar baud
Apabila komunikasi siri mikrokomputer cip tunggal digunakan, kadar baud mesti ditetapkan, dan kadar baud harus ditetapkan ke 9600, 19200 ...? Adakah ini tradisi? Dari apa? Pengayun kristal yang sepadan juga umumnya 11.0592MHZ.
Adakah ia terlebih dahulu untuk menetapkan pengayun kristal dan kemudian menetapkan kadar baud atau menetapkan kadar baud terlebih dahulu dan kemudian tetapkan pengayun kristal. Kenapa ini perlu ditetapkan?
Terdapat dua kenyataan yang lebih dipercayai:
1: Mengikut ciri-ciri fizikal elektrik, media penghantaran, dan lain-lain digabungkan dengan keperluan penggunaan peranti bersiri
Untuk memastikan komunikasi yang berkesan, mengikut ciri-ciri fizikal elektrik, media penghantaran, dan sebagainya yang digabungkan dengan keperluan penggunaan peranti bersiri, ditentukan bahawa kadar penghantaran maksimum RS232 hanya boleh 115200, dan kemudian diperoleh dengan dua langkah untuk mendapatkan 57600, 28800, 19200; untuk menyesuaikan diri dengan kadar ini, reka bentuk kekerapan kristal yang sepadan.
2: Ini ditentukan oleh ciri-ciri talian telekomunikasi.
Bandpass talian telefon adalah 300--3KHz. Pada masa itu, hayes mula-mula terlibat dalam modem, jadi isyarat 2400HZ digunakan, kadar baud yang sama adalah 2400. Sejak frekuensi asas ditentukan, lulus yang lebih baik mengamalkan metode laju didarabkan berdasarkan 2400 kemudian, jadi pembentukan 9600.19200. . . .
Sama ada, terdapat kadar baud dan frekuensi kristal.
Pengiraan kadar baud komunikasi siri mikrokomputer cip tunggal.
Dalam mod 0 dan mod 2, kadar bersudut port bersiri tetap, dan mod 0 adalah Fosc / 12. Mod 2 adalah Fosc / 32 atau Fosc / 64, yang ditentukan oleh bit SMOD dari daftar PCON.
Dalam Mod 1 dan Mode 3, kadar baud adalah nilai berubah. Kadar baud boleh dihasilkan oleh Pemasa 1 (8052 boleh dihasilkan oleh Masa 2). Apakah kadar baud? Kadar baud oleh pemasa 1 kadar limpahan hendaklah ditentukan:
Kadar Baud = (2SMOD / 32) * (Kadar Limpahan Pemasa 1)
Nota: 2SMOD di sini SMOD ialah indeks, SMOD adalah kadar baud double rate baud, bit ini dalam daftar PCON.
Apabila menggunakan pemasa 1 sebagai penjana kadar baud, biasanya diperlukan untuk mengkonfigurasi pemasa 1 untuk beroperasi dalam mod auto-reload 8-bit, dan juga untuk melumpuhkan pemasa 1, mengganggu pemasa 1 bagaimana untuk dikira? Kadar limpahan adalah kekerapan limpahan. Dengan mengandaikan kekerapan kristal adalah 12MHz dan nilai TH1 adalah 0xFE, hanya dua jam denyut yang diperlukan untuk melimpah, dan tempoh limpahan adalah 2us, maka frekuensi limpahan adalah 500KHz. Menurut bahagian pemasa, masa pemasaan mempunyai formula berikut:
Masa tamat = (nilai kiraan maksimum - nilai awal peniaga) * kitaran mesin = (nilai kiraan maksimum - nilai awal kaunter) * (12 / frekuensi kristal (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ Hz)) (s).
Kemudian kekerapan limpahan secara semula jadi:
OSC_FREQ (Hz) / ((256-TH1) * 12).
Jadi kadar push-to-baud terakhir ialah:
(2SMOD / 32) * (OSC_FREQ (Hz) / ((256-TH1) * 12)).
Formula pengiraan kadar baud tersedia, dan secara semula jadi, nilai awal TH1 boleh diperolehi mengikut kadar baud:
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)
Dengan mengandaikan kekerapan kristal adalah 11.0592MHz, kadar baud adalah 9600, SMOD = 0, apa yang harus nilai awal TH1 menjadi? Mengikut formula di atas, ia boleh dikira TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.





