基于DSP和單片機(jī)通信的液晶顯示設(shè)計(jì)方案
圖2 電平轉(zhuǎn)換電路
在該電路中,單片機(jī)的TXD端電壓高于DSP的RXD端,故僅需要使用分壓電路,計(jì)算出合適的阻值即可滿足要求,而從DSP向單片機(jī)傳送數(shù)據(jù)時(shí),需要提升電平,因而采用了光耦電路,將電平提升到單片機(jī)的工作電平。這樣就能以簡(jiǎn)單的電路實(shí)現(xiàn)電平的轉(zhuǎn)換。需要注意的是,所采用的光耦速率要高于數(shù)據(jù)傳輸速率,這樣才能保證數(shù)據(jù)準(zhǔn)確高效的傳輸,以免出現(xiàn)數(shù)據(jù)丟失。
1.3 單片機(jī)與DSP通信的軟件實(shí)現(xiàn)
在異步通信中必須先規(guī)定3件事:一是字符格式,即傳輸?shù)拿恳粠瑪?shù)據(jù)的格式;二是通信雙方要設(shè)置為相同的波特率,且該波特率能適應(yīng)雙方的時(shí)鐘頻率;三是通信雙方要有約定的通信協(xié)議,也就是雙方要互相確認(rèn)后才能傳輸數(shù)據(jù)。
在本設(shè)計(jì)中,DSP和單片機(jī)采用的數(shù)據(jù)幀格式是1位起始位,8位數(shù)據(jù)位和1位停止位。由于數(shù)據(jù)包采用校驗(yàn)和的方式進(jìn)行校驗(yàn),因而在數(shù)據(jù)幀格式中沒(méi)有設(shè)置奇偶校驗(yàn)位。因而MCS51單片機(jī)應(yīng)設(shè)置工作在串口方式1狀態(tài)下,此時(shí)串行口為8位異步通信接口。為了保證數(shù)據(jù)傳輸具有較高的速率,同時(shí)又有比較低的傳輸誤碼率,因而選擇波特率為9600b/s。通過(guò)相應(yīng)的波特率設(shè)置計(jì)算公式計(jì)算出DSP和單片機(jī)的初始化時(shí)寄存器的初值,即可完成設(shè)置。這樣就保證了通信雙方幀格式的統(tǒng)一和波特率的統(tǒng)一,從而使數(shù)據(jù)通信正確、可靠。
DSP的串口初始化設(shè)置程序如下:
EALLOW;
GpioMuxReg s. GPGMUX. bit. SCIRXDB_GPIOG5 = 1;/ / 設(shè)置SCI??RX引腳外設(shè)功能
GpioMuxReg s. GPGMUX. bit. SCIT XDB_GPIOG4 = 1;/ / 設(shè)置SCI??TX引腳外設(shè)功能EDIS;
ScibRegs. SCICCR. all = 0x07; / / 1位停止位,無(wú)奇偶校驗(yàn),8位字符長(zhǎng)度,使用空閑線模式協(xié)議
ScibRegs. SCICTL1. all = 0x 03;/ / 使能發(fā)送和接收緩沖
ScibRegs. SCICTL2. all= 0x 02;/ / 使能RXRDY中斷,禁止T XRDY中斷
ScibRegs. SCIPRI. all = 0x0000;/ / 禁止接收錯(cuò)誤中斷和休眠模式
ScibRegs. SCIH BAUD= 0x01;/ / LSPCLK = 37.5MH z,波特率設(shè)為9600b/s
ScibRegs. SCILBAUD = 0xE1; ??
ScibRegs. SCICTL1. all = 0x 0023;/ / 重新使能SCI
51單片機(jī)串口初始化程序如下:
TMOD= 0x 21;/ / 定時(shí)器1工作在方式2,用于產(chǎn)生0串口的波特率
SCON= 0x 50;/ / 串行口0工作在方式1,允許接收,清標(biāo)志位
TH 0= 0xfd; / / 晶振12MHz,設(shè)置波特率為9600b/s
TH 1= 0xfd; PS= 1; / / 串口中斷優(yōu)先
PCON| = 0x 00; / / 波特率不加倍
TR1= 1;
評(píng)論