《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于DSP和單片機(jī)通信的液晶顯示設(shè)計(jì)方案
基于DSP和單片機(jī)通信的液晶顯示設(shè)計(jì)方案
來(lái)源:互聯(lián)網(wǎng)
摘要: 基于DSP和單片機(jī)通信的液晶顯示設(shè)計(jì)方案[圖],摘要:在含有人機(jī)界面的數(shù)字化電源系統(tǒng)中,為更好地發(fā)揮DSP的強(qiáng)大運(yùn)算功能,可采用DSP+51單片機(jī)的
關(guān)鍵詞: DSP 單片機(jī) 通信 液晶顯示
Abstract:
Key words :
摘要:在含有人機(jī)界面的數(shù)字化電源系統(tǒng)中,為更好地發(fā)揮DSP的強(qiáng)大運(yùn)算功能,可采用DSP+51單片機(jī)的雙CPU結(jié)構(gòu),因而二者之間的可靠通信至關(guān)重要。在此介紹了TMS320F2812型DSP和MCS51系列單片機(jī)的一種通信方案的設(shè)計(jì)與實(shí)現(xiàn),給出對(duì)應(yīng)的程序,并描述在此通信基礎(chǔ)上實(shí)現(xiàn)的液晶顯示電路和結(jié)構(gòu)。該系統(tǒng)具有硬件電路簡(jiǎn)單、通信可靠、程序編寫簡(jiǎn)單、界面友好等優(yōu)點(diǎn)。實(shí)驗(yàn)證明系統(tǒng)能完整可靠地實(shí)現(xiàn)了人機(jī)界面功能,具有較高的實(shí)用價(jià)值。

0 引言

隨著計(jì)算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理技術(shù)得到了迅速的發(fā)展。數(shù)字控制使得電力電子變換控制更為靈活,在CPU計(jì)算速度允許的情況下,可實(shí)現(xiàn)模擬控制難以做到的復(fù)雜控制算法,設(shè)計(jì)者可以根據(jù)自己的系統(tǒng)需求,方便地更改控制器參數(shù),即便是在控制對(duì)象改變的情況下,也無(wú)需對(duì)控制器硬件做修改,只要改變某些軟件參數(shù)即可,從而大大增強(qiáng)了系統(tǒng)的兼容性。隨著DSP的應(yīng)用逐漸普及,用DSP取代模擬電路中的專用PWM集成電路,已廣泛應(yīng)用于UPS和逆變器控制中。

作為智能化設(shè)備,液晶屏和鍵盤等人機(jī)交互裝置是數(shù)字化電源系統(tǒng)所必不可少的。而DSP的工作頻率較高,讀寫周期很短,主要用于處理實(shí)時(shí)性要求苛刻、算法復(fù)雜的關(guān)鍵性任務(wù),例如對(duì)功率開(kāi)關(guān)管的控制,數(shù)據(jù)采集、分析、處理等,而液晶顯示和鍵盤掃描的任務(wù)可由普通的51系列單片機(jī)來(lái)完成,而DSP和51單片機(jī)間的數(shù)據(jù)交流可采用異步通信方式,即系統(tǒng)采用雙CPU結(jié)構(gòu)。

1 系統(tǒng)的結(jié)構(gòu)原理

本文中所采用的DSP和單片機(jī)型號(hào)分別是TI公司的TMS320F2812和MCS51系列。在系統(tǒng)中,DSP實(shí)現(xiàn)與單片機(jī)的串口異步通信,單片機(jī)將用戶的原始設(shè)置數(shù)據(jù)傳輸?shù)紻SP,而DSP將采集到的實(shí)時(shí)數(shù)據(jù)信息返回給單片機(jī),單片機(jī)不斷刷新液晶的顯示。系統(tǒng)的基本結(jié)構(gòu)如圖1所示。

基于DSP和單片機(jī)通信的液晶顯示設(shè)計(jì)方案
圖1 系統(tǒng)基本結(jié)構(gòu)框圖

1.1 串口介紹

本文中DSP是基于串行通信接口模塊SCI實(shí)現(xiàn)通信的。SCI支持CPU與其他使用標(biāo)準(zhǔn)格式的異步外設(shè)之間的數(shù)據(jù)通信。SCI僅需要2根數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,雖然傳輸速度不快,但已經(jīng)能滿足一般的通信要求,而且外圍接口電路非常簡(jiǎn)單。傳輸?shù)臄?shù)據(jù)長(zhǎng)度在一定范圍內(nèi)也是可變的。

MCS51系列單片機(jī)內(nèi)部具有一個(gè)全雙工串行口,該串行口有4種工作方式,可以通過(guò)軟件進(jìn)行設(shè)置,由片內(nèi)定時(shí)/計(jì)數(shù)器產(chǎn)生波特率。串行口的接收和發(fā)送數(shù)據(jù)均可以觸發(fā)中斷,并含有接收、發(fā)送緩沖器SBUF,二者共用一個(gè)地址。

1.2 單片機(jī)與DSP的通信接口電路

SCI接口分為RXD和TXD兩個(gè)管腳,傳統(tǒng)的2個(gè)設(shè)備異步通信采用RS232或RS485的形式,須另配置對(duì)應(yīng)的RS232和RS485驅(qū)動(dòng)芯片。而本文所提及的采用雙CPU結(jié)構(gòu)的數(shù)字化電源設(shè)備,DSP和51單片機(jī)位于同一設(shè)備內(nèi),距離較短,可省去RS232和RS 485驅(qū)動(dòng)芯片,采用2個(gè)CPU的RXD和TXD直接交叉連接即可。但需注意的是,由于DSP的工作電壓為3.3V,而MCS51單片機(jī)的工作電壓為5V,因此二者之間的通信電路需要進(jìn)行電平轉(zhuǎn)換,如圖2所示。

基于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;

在本設(shè)計(jì)中,采用自己規(guī)定的通信協(xié)議,首先DSP發(fā)送出握手信號(hào),C51收到握手信號(hào)后,進(jìn)入中斷子程序,判斷握手信號(hào)是否正確,若正確才握手成功,開(kāi)始接收數(shù)據(jù)包,接收完成后對(duì)數(shù)據(jù)進(jìn)行和校驗(yàn),正確后刷新液晶的顯示數(shù)據(jù)存儲(chǔ)區(qū);若錯(cuò)誤則放棄本次數(shù)據(jù),并將接收數(shù)據(jù)存儲(chǔ)區(qū)清零,等待下一次通信。其程序流程圖如圖3所示。

基于DSP和單片機(jī)通信的液晶顯示設(shè)計(jì)方案
圖3 DSP和單片機(jī)的通信程序流程圖

DSP向單片機(jī)的定時(shí)發(fā)送程序如下:

ScibRegs. SCITXBUF = Sci_VarRx [ i] ;/ / 將數(shù)據(jù)包寫入發(fā)送緩沖區(qū)
     i+ + ; / / 依次發(fā)送數(shù)據(jù)包
     if(i= = 12)i= 0; / / 重新計(jì)數(shù)
     IER | = M_INT1; / / 清除中斷標(biāo)志位
     EINT;
     PieCtr lReg s. PIEACK. all = PIEACK_GROUP1;

51單片機(jī)串口中斷服務(wù)程序如下:

Rx0_Buffer[ Rx0_Ptr] = SBUF; / / 讀取數(shù)據(jù)到接收數(shù)組
     RI= 0; / / 清除接收標(biāo)志位
     Rx0_Ptr+ + ; / / 計(jì)數(shù)加1
     Rx_flag= 1;

1.4 單片機(jī)與液晶和鍵盤的接口

系統(tǒng)采用的是D6128×4圖形點(diǎn)陣液晶顯示器,它主要由行驅(qū)動(dòng)器/列驅(qū)動(dòng)器及128×64全點(diǎn)陣液晶顯示器組成,既可以完成圖形顯示,也可以顯示8×4個(gè)(16×16點(diǎn)陣)漢字。單片機(jī)與液晶模塊和鍵盤的接口電路如圖4所示。

基于DSP和單片機(jī)通信的液晶顯示設(shè)計(jì)方案
圖4 單片機(jī)與液晶和鍵盤的接口電路

單片機(jī)與液晶之間通過(guò)8位數(shù)據(jù)線進(jìn)行并口通信,將DSP傳來(lái)的實(shí)時(shí)數(shù)據(jù)傳輸?shù)揭壕э@示器進(jìn)行實(shí)時(shí)顯示。對(duì)液晶驅(qū)動(dòng)器的控制具體是通過(guò)各個(gè)內(nèi)部寄存器和標(biāo)志位的操作實(shí)現(xiàn)的,單片機(jī)寫入不同的控制字就能讓液晶執(zhí)行各種不同的功能。DG12864是點(diǎn)陣型液晶,它主要通過(guò)對(duì)點(diǎn)陣中各點(diǎn)的亮滅來(lái)顯示不同的內(nèi)容,通過(guò)取模軟件可以方便地獲得漢字和英文符號(hào)等的字模,將程序中所要用到的字模存儲(chǔ)在特定的文件中,在程序中根據(jù)所要顯示的內(nèi)容調(diào)用相應(yīng)的字模,最終通過(guò)并口傳輸?shù)揭壕?qū)動(dòng)器的顯示RAM區(qū)中實(shí)現(xiàn)顯示。

基于DSP和單片機(jī)通信的液晶顯示設(shè)計(jì)方案
圖5 展示了系統(tǒng)實(shí)際運(yùn)行時(shí)的界面

2 結(jié)語(yǔ)

本文設(shè)計(jì)了TMS320F2812和MCS51單片機(jī)的串行異步通信接口,并通過(guò)單片機(jī)實(shí)現(xiàn)驅(qū)動(dòng)液晶的實(shí)時(shí)顯示和鍵盤設(shè)置功能。經(jīng)過(guò)實(shí)驗(yàn),證明本方案能夠高效準(zhǔn)確地實(shí)現(xiàn)了上述功能,而且其硬件簡(jiǎn)單、操作方便。目前這種方案已經(jīng)可靠地應(yīng)用于智能充電器的人機(jī)界面模塊中。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。