Soros kommunikáció baud rate beállítás és baud rate algoritmus
Ha az egy chip mikroszámítógép soros kommunikációját használja, akkor a baud rate-ot be kell állítani, és a baud rate-ot 9600, 19200 ... -ra kell állítani. Ez egy hagyomány? Honnan? A megfelelő kristály oszcillátor általában 11,0592MHZ.
Először állítsa be a kristály oszcillátort, majd állítsa be a baud sebességet, vagy állítsa be a baud sebességet, majd állítsa be a kristály oszcillátort. Miért kellene ezt beállítani?
Két másik megbízható megállapítás van:
1: A villamos energia, átviteli média stb. Fizikai jellemzői szerint kombinálva a soros készülék használatának követelményeivel
A hatékony kommunikáció biztosítása érdekében, a villamos energia, az átviteli közeg stb. Fizikai jellemzői alapján, valamint a soros készülékhasználat követelményeivel összhangban meghatározva, hogy az RS232 maximális átviteli sebessége csak 115200, majd két lépésben 57600, 28800, 19200; hogy alkalmazkodjon ezekhez az arányokhoz, alakítsa ki a megfelelő kristályfrekvenciát.
2: Ezt a távközlési vonal jellemzői határozzák meg.
A telefonvonal sávszélessége 300-3 kHz. Abban az időben a hayes először bekapcsolódott a modembe, így a 2400HZ jelet használta, a megfelelő átviteli sebesség 2400. Mivel az alapfrekvencia meg van határozva, a továbbfejlesztett átvitel elfogadta a sebesség módját 2400 után a 9600.19200 képződés. . . .
Akárhogy is, van egy átviteli sebesség, majd egy kristályfrekvencia.
Egy chip mikroszámítógép soros kommunikációjának adatátviteli sebességének kiszámítása.
A 0 és a 2 üzemmódban a soros port adatátviteli sebessége rögzített, és a 0 mód Fosc / 12. A 2. mód Fosc / 32 vagy Fosc / 64, amelyet a PCON regiszter SMOD bitje határoz meg.
Az 1. és a 3. módban a baud rate egy változó érték. Az adatátviteli sebességet az 1. időzítő generálhatja (8052-et az időzítés 2 hozhat létre). Mi a baud rate? Baud rate az 1. időzítővel meghatározandó túlfolyási sebesség:
Baud Rate = (2SMOD / 32) * (időzítő 1 túlcsordulás sebessége)
Megjegyzés: 2SMOD itt SMOD az index, a SMOD a baud rate double baud rate bit, ez a bit a PCON regiszterben van.
Ha az 1. időzítőt Baud rate generátorként használja, akkor általában az 1-es időzítőt kell konfigurálni a 8 bites auto-reload üzemmódban történő működtetésre, valamint az 1-es időzítő kikapcsolására, majd az 1. időzítő túlcsordulásának kiszámítására. A túlcsordulás sebessége a túlfolyás gyakorisága. Feltéve, hogy a kristályfrekvencia 12MHz és a TH1 érték 0xFE, akkor csak két óraimpulzusra lesz szükség a túlcsorduláshoz, és a túlfolyási periódus 2us, akkor a túlcsordulás gyakorisága 500KHz. Az időzítő szakasz szerint az időzítés ideje a következő:
* (12 / kristályfrekvencia (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ ( Hz)) (s).
Ezután a túlcsordulás gyakorisága természetesen:
OSC_FREQ (Hz) / ((256-TH1) * 12).
Tehát az utolsó push-to-baud sebesség:
(2SMOD / 32) * (OSC_FREQ (Hz) / ((256-TH1) * 12)).
A baud rate számítási formula rendelkezésre áll, és természetesen a TH1 kezdeti értéke a baud rate alapján állítható elő:
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 = vagy 256 (2SMOD * OSC_FREQ (Hz)) / (BAUD_RATE * 32 * 12)
Feltéve, hogy a kristályfrekvencia 11,0592 MHz, a baud rate 9600, SMOD = 0, mi legyen a TH1 kezdeti értéke? A fenti képlet szerint kiszámítható TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.





