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