Настройка на скоростта на предаване на серийна комуникация и алгоритъм за скоростта на предаване
Когато се използва серийната комуникация на микрокомпютъра с един чип, скоростта на предаване трябва да бъде зададена и скоростта на предаване да бъде зададена на 9600, 19200 ...? Дали това е традиция? От това, което? Съответният кристален осцилатор също е общо 11.0592MHZ.
Първо е да зададете кристалния осцилатор и след това да зададете скоростта на предаване или първо да зададете скоростта на предаване и след това да настроите кристалния осцилатор. Защо трябва да се постави това?
Има две по-достоверни твърдения:
1: Съобразно физическите характеристики на електроенергията, преносните носители и др., Комбинирани с изискванията за използване на серийните устройства
За да се осигури ефективна комуникация, съобразно физическите характеристики на електроенергията, преносната среда и др., Комбинирани с изискванията за използване на серийните устройства, се определя, че максималната скорост на предаване на RS232 може да бъде само 115200 и след това да се получи чрез две стъпки да получите 57600, 28800, 19200; за да се адаптира към тези скорости, проектирайте съответната кристална честота.
2: Това се определя от характеристиките на телекомуникационната линия.
Bandpass на телефонната линия е 300--3KHz. По това време, първо се занимава с модема, така че използваният 2400HZ сигнал, съответната скорост на предаване е 2400. Тъй като основната честота се определя, подобреният пропуск приема метода на скоростта, умножен на базата на 2400 по-късно, така че образуването на 9600.19200. , , ,
Така или иначе, има скорост на предаване и след това кристална честота.
Изчисляване на скоростта на предаване на серийна комуникация на микрокомпютър с един чип.
В режим 0 и режим 2 скоростта на предаване на серийния порт е фиксирана и режим 0 е Fosc / 12. Режим 2 е Fosc / 32 или Fosc / 64, който се определя от бита SMOD на регистъра на PCON.
В Режим 1 и Режим 3 скоростта на предаване е променлива стойност. Скоростта на предаване може да бъде генерирана от таймер 1 (8052 може да бъде генериран от времето 2). Каква е скоростта на предаване? Скорост на предаване по таймер 1 скорост на преливане, която трябва да се определи:
Скорост на предаване = (2SMOD / 32) * (таймер 1 преливник)
Забележка: 2SMOD тук SMOD е индексът, SMOD е скоростта на предаване с двойна скорост на базата данни, този бит е в PCON регистъра.
При използване на таймер 1 като генератор на скорост на предаване, обикновено е необходимо да се конфигурира таймер 1, за да работи в 8-битов режим на автоматично презареждане, както и да изключи таймер 1 прекъсване, а след това преливане на таймер 1 как да се изчисли? Скоростта на преливане е честотата на преливане. Ако приемем, че кристалната честота е 12MHz и стойността TH1 е 0xFE, само две часови импулси ще бъдат необходими за преливане и периодът на преливане е 2us, тогава честотата на преливане е 500KHz. Съгласно секцията таймер времето за синхронизиране има следната формула:
(12) / кристална честота (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ Hz)) (а).
Тогава честотата на преливане е естествено:
OSC_FREQ (Hz) / ((256-ТН1) * 12).
Така че крайната скорост на предаване към байд е:
(2SMOD / 32) * (OSC_FREQ (Hz) / ((256-ТН1) * 12)).
Формулата за изчисление на скоростта на предаване е налична и естествено първоначалната стойност на TH1 може да бъде изведена в зависимост от скоростта на предаване:
BAUD_RATE = (2SMOD / 32) * (OSC_FREQ (Hz) / ((256-ТН1) * 12))
32 * 12 * (256-ТН1) = (2SMOD * OSC_FREQ (Hz)) / BAUD_RATE
256-ТН1 = (2SMOD * OSC_FREQ (Hz)) / (BAUD_RATE * 32 * 12)
ТН1 = 256- (2SMOD * OSC_FREQ (Hz)) / (BAUD_RATE * 32 * 12)
Ако приемем, кристалната честота е 11.0592MHz, скоростта на предаване е 9600, SMOD = 0, какво трябва да бъде първоначалната стойност на TH1? Съгласно горната формула, може да се изчисли TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.





