基于DSP和單片機(jī)通信的液晶顯示設(shè)計
基于DSP和單片機(jī)通信的液晶顯示設(shè)計
(合肥工業(yè)大學(xué),安徽 合肥 230009)
摘要:在含有人機(jī)界面的數(shù)字化電源系統(tǒng)中,為更好地發(fā)揮DSP的強(qiáng)大運(yùn)算功能,可采用DSP+51單片機(jī)的雙CPU結(jié)構(gòu),因而二者之間的可靠通信至關(guān)重要。在此介紹了TMS320F2812型DSP和MCS51系列單片機(jī)的一種通信方案的設(shè)計與實(shí)現(xiàn),給出對應(yīng)的程序,并描述在此通信基礎(chǔ)上實(shí)現(xiàn)的液晶顯示電路和結(jié)構(gòu)。該系統(tǒng)具有硬件電路簡單、通信可靠、程序編寫簡單、界面友好等優(yōu)點(diǎn)。實(shí)驗(yàn)證明系統(tǒng)能完整可靠地實(shí)現(xiàn)了人機(jī)界面功能,具有較高的實(shí)用價值。
關(guān)鍵詞:串行通信;DSP;數(shù)字化電源系統(tǒng);液晶
0 引言
隨著計算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號處理技術(shù)得到了迅速的發(fā)展。數(shù)字控制使得電力電子變換控制更為靈活,在CPU計算速度允許的情況下,可實(shí)現(xiàn)模擬控制難以做到的復(fù)雜控制算法,設(shè)計者可以根據(jù)自己的系統(tǒng)需求,方便地更改控制器參數(shù),即便是在控制對象改變的情況下,也無需對控制器硬件做修改,只要改變某些軟件參數(shù)即可,從而大大增強(qiáng)了系統(tǒng)的兼容性。隨著DSP的應(yīng)用逐漸普及,用DSP取代模擬電路中的專用PWM集成電路,已廣泛應(yīng)用于UPS和逆變器控制中。
作為智能化設(shè)備,液晶屏和鍵盤等人機(jī)交互裝置是數(shù)字化電源系統(tǒng)所必不可少的。而DSP的工作頻率較高,讀寫周期很短,主要用于處理實(shí)時性要求苛刻、算法復(fù)雜的關(guān)鍵性任務(wù),例如對功率開關(guān)管的控制,數(shù)據(jù)采集、分析、處理等,而液晶顯示和鍵盤掃描的任務(wù)可由普通的51系列單片機(jī)來完成,而DSP和51單片機(jī)間的數(shù)據(jù)交流可采用異步通信方式,即系統(tǒng)采用雙CPU結(jié)構(gòu)。
1 系統(tǒng)的結(jié)構(gòu)原理
本文中所采用的DSP和單片機(jī)型號分別是TI公司的TMS320F2812和MCS51系列。在系統(tǒng)中,DSP實(shí)現(xiàn)與單片機(jī)的串口異步通信,單片機(jī)將用戶的原始設(shè)置數(shù)據(jù)傳輸?shù)紻SP,而DSP將采集到的實(shí)時數(shù)據(jù)信息返回給單片機(jī),單片機(jī)不斷刷新液晶的顯示。系統(tǒng)的基本結(jié)構(gòu)如圖1所示。
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)能滿足一般的通信要求,而且外圍接口電路非常簡單。傳輸?shù)臄?shù)據(jù)長度在一定范圍內(nèi)也是可變的。
MCS51系列單片機(jī)內(nèi)部具有一個全雙工串行口,該串行口有4種工作方式,可以通過軟件進(jìn)行設(shè)置,由片內(nèi)定時/計數(shù)器產(chǎn)生波特率。串行口的接收和發(fā)送數(shù)據(jù)均可以觸發(fā)中斷,并含有接收、發(fā)送緩沖器SBUF,二者共用一個地址。
1.2 單片機(jī)與DSP的通信接口電路
SCI接口分為RXD和TXD兩個管腳,傳統(tǒng)的2個設(shè)備異步通信采用RS 232或RS 485的形式,須另配置對應(yīng)的RS 232和RS 485驅(qū)動芯片。而本文所提及的采用雙CPU結(jié)構(gòu)的數(shù)字化電源設(shè)備,DSP和51單片機(jī)位于同一設(shè)備內(nèi),距離較短,可省去RS 232和RS 485驅(qū)動芯片,采用2個CPU的RXD和TXD直接交叉連接即可。但需注意的是,由于DSP的工作電壓為3.3 V,而MCS51單片機(jī)的工作電壓為5 V,因此二者之間的通信電路需要進(jìn)行電平轉(zhuǎn)換,如圖2所示。
在該電路中,單片機(jī)的TXD端電壓高于DSP的RXD端,故僅需要使用分壓電路,計算出合適的阻值即可滿足要求,而從DSP向單片機(jī)傳送數(shù)據(jù)時,需要提升電平,因而采用了光耦電路,將電平提升到單片機(jī)的工作電平。這樣就能以簡單的電路實(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)雙方的時鐘頻率;三是通信雙方要有約定的通信協(xié)議,也就是雙方要互相確認(rèn)后才能傳輸數(shù)據(jù)。
在本設(shè)計中,DSP和單片機(jī)采用的數(shù)據(jù)幀格式是1位起始位,8位數(shù)據(jù)位和1位停止位。由于數(shù)據(jù)包采用校驗(yàn)和的方式進(jìn)行校驗(yàn),因而在數(shù)據(jù)幀格式中沒有設(shè)置奇偶校驗(yàn)位。因而MCS51單片機(jī)應(yīng)設(shè)置工作在串口方式1狀態(tài)下,此時串行口為8位異步通信接口。為了保證數(shù)據(jù)傳輸具有較高的速率,同時又有比較低的傳輸誤碼率,因而選擇波特率為9 600 b/s。通過相應(yīng)的波特率設(shè)置計算公式計算出DSP和單片機(jī)的初始化時寄存器的初值,即可完成設(shè)置。這樣就保證了通信雙方幀格式的統(tǒng)一和波特率的統(tǒng)一,從而使數(shù)據(jù)通信正確、可靠。
DSP的串口初始化設(shè)置程序如下:
在本設(shè)計中,采用自己規(guī)定的通信協(xié)議,首先DSP發(fā)送出握手信號,C51收到握手信號后,進(jìn)入中斷子程序,判斷握手信號是否正確,若正確才握手成功,開始接收數(shù)據(jù)包,接收完成后對數(shù)據(jù)進(jìn)行和校驗(yàn),正確后刷新液晶的顯示數(shù)據(jù)存儲區(qū);若錯誤則放棄本次數(shù)據(jù),并將接收數(shù)據(jù)存儲區(qū)清零,等待下一次通信。其程序流程圖如圖3所示。
DSP向單片機(jī)的定時發(fā)送程序如下:
51單片機(jī)串口中斷服務(wù)程序如下:
1. 4 單片機(jī)與液晶和鍵盤的接口
系統(tǒng)采用的是D6128×4圖形點(diǎn)陣液晶顯示器,它主要由行驅(qū)動器/列驅(qū)動器及128×64全點(diǎn)陣液晶顯示器組成,既可以完成圖形顯示,也可以顯示8×4個(16×16點(diǎn)陣)漢字。單片機(jī)與液晶模塊和鍵盤的接口電路如圖4所示。
單片機(jī)與液晶之間通過8位數(shù)據(jù)線進(jìn)行并口通信,將DSP傳來的實(shí)時數(shù)據(jù)傳輸?shù)?strong>液晶顯示器進(jìn)行實(shí)時顯示。對液晶驅(qū)動器的控制具體是通過各個內(nèi)部寄存器和標(biāo)志位的操作實(shí)現(xiàn)的,單片機(jī)寫入不同的控制字就能讓液晶執(zhí)行各種不同的功能。DG12864是點(diǎn)陣型液晶,它主要通過對點(diǎn)陣中各點(diǎn)的亮滅來顯示不同的內(nèi)容,通過取模軟件可以方便地獲得漢字和英文符號等的字模,將程序中所要用到的字模存儲在特定的文件中,在程序中根據(jù)所要顯示的內(nèi)容調(diào)用相應(yīng)的字模,最終通過并口傳輸?shù)揭壕?qū)動器的顯示RAM區(qū)中實(shí)現(xiàn)顯示。圖5展示了系統(tǒng)實(shí)際運(yùn)行時的界面。
2 結(jié)語
本文設(shè)計了TMS320F2812和MCS51單片機(jī)的串行異步通信接口,并通過單片機(jī)實(shí)現(xiàn)驅(qū)動液晶的實(shí)時顯示和鍵盤設(shè)置功能。經(jīng)過實(shí)驗(yàn),證明這種設(shè)計能夠高效準(zhǔn)確地實(shí)現(xiàn)了上述功能,而且其硬件簡單、操作方便。目前這種方案已經(jīng)可靠地應(yīng)用于智能充電器的人機(jī)界面模塊中。