《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于DSP和單片機通信的液晶顯示設計
基于DSP和單片機通信的液晶顯示設計
摘要: 本文中所采用的DSP 和單片機型號分別是T I 公司的TMS320F2812 和MCS51 系列。在系統(tǒng)中, DSP實現(xiàn)與單片機的串口異步通信, 單片機將用戶的原始設置數(shù)據(jù)傳輸?shù)紻SP, 而DSP 將采集到的實時數(shù)據(jù)信息返回給單片機, 單片機不斷刷新液晶的顯示。
Abstract:
Key words :

引言

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

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

  1   系統(tǒng)的結構原理

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

 

圖1  系統(tǒng)基本結構框圖

  1. 1   串口介紹

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

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

  1. 2   單片機與DSP 的通信接口電路

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

 

圖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ù)傳輸具有較高的速率, 同時又有比較低的傳輸誤碼率, 因而選擇波特率為9600 b/ 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. 5 MH z, 波特率設為9 600 b/ 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; / / 晶振12 MH z, 設置波特率為9 600 b/ s

  TH 1= 0xfd; PS= 1; / / 串口中斷優(yōu)先

  PCON| = 0x 00; / / 波特率不加倍

  TR1= 1;

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

 

圖3   DSP 和單片機的通信程序流程圖

 

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

  ScibRegs. SCITXBUF = Sci_VarRx [ i] ;/ / 將數(shù)據(jù)包寫入發(fā)送緩沖區(qū)

  i+ + ; / / 依次發(fā)送數(shù)據(jù)包

  if( i= = 12) i= 0; / / 重新計數(shù)

  IER | = M_INT1; / / 清除中斷標志位

  EINT;

  PieCtr lReg s. PIEACK. all = PIEACK_GROUP1;

  51 單片機串口中斷服務程序如下:

  Rx0_Buffer[ Rx0_Ptr] = SBUF; / / 讀取數(shù)據(jù)到接收數(shù)組

  RI= 0; / / 清除接收標志位

  Rx0_Ptr+ + ; / / 計數(shù)加1

  Rx_flag= 1;

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