機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
基于MSP430F149單片機(jī)的SDRAM控制程序設(shè)計(jì)
基于MSP430F149單片機(jī)的SDRAM控制程序設(shè)計(jì)
 更新時(shí)間:2009-12-2 16:54:32  點(diǎn)擊數(shù):0
【字體: 字體顏色
摘 要:本文介紹了德州儀器公司新一代16位Flash型MSP430F149系列單片機(jī)的結(jié)構(gòu)、特性和功能,闡述了基于該單片機(jī)控制系統(tǒng)的硬件組成和軟件設(shè)計(jì),并給出了該控制器在SDRAM控制系統(tǒng)中的應(yīng)用,具有功耗低、功能齊全、人機(jī)界面友好等優(yōu)點(diǎn)。

1 引言
MSP430系列微控制器是美國(guó)德州儀器(Texas Instruments)公司推出的功能強(qiáng)大的超低功耗Flash型16位RISC指令集微處理器。在運(yùn)算速度方面,MSP430系列單片機(jī)能在8MHz晶體的驅(qū)動(dòng)下,實(shí)現(xiàn)125ns的指令周期。16位數(shù)據(jù)寬度、125ns的指令周期以及多功能的硬件乘法器(能實(shí)現(xiàn)乘加)相配合,能實(shí)現(xiàn)數(shù)字信號(hào)處理的一些算法(如FFT等)。MSP430具有非常高的集成度,單片集成了多通道12bit的A/D轉(zhuǎn)換、片內(nèi)精密比較器、多個(gè)具有PWM功能的定時(shí)器、斜邊A/D轉(zhuǎn)換、片內(nèi)USART、看門狗定時(shí)器、片內(nèi)數(shù)控振蕩器(DCO)、大量的I/O端口以及大容量的片內(nèi)存儲(chǔ)器,單片可以滿足絕大多數(shù)的應(yīng)用需要。

SDRAM控制系統(tǒng)采用MSP430F149單片機(jī)。該單片機(jī)具有強(qiáng)大的處理能力、豐富的片上外圍模塊和方便高效的開(kāi)發(fā)方式, 是MSP430系列中功能最強(qiáng)大的一款。MSP430F149采用馮--紐曼結(jié)構(gòu),RAM、ROM和全部外圍模塊都位于同一個(gè)地址空間內(nèi), 具有一個(gè)硬件乘法器、6個(gè)I/O端口(每個(gè)有8個(gè)I/O口)、1個(gè)精確的模擬比較器、2個(gè)具有捕捉/比較寄存器的定時(shí)器、8路12位A/D轉(zhuǎn)換器、片內(nèi)看門狗定時(shí)器、2個(gè)串行通信接口和60KB的FlashROM,2KB RAM。MSP430F149還具有強(qiáng)大的擴(kuò)展功能,其具有48個(gè)I/O引腳,每個(gè)I/O口分別對(duì)應(yīng)輸入、輸出、功能選擇、中斷等多個(gè)寄存器,使得功能口和通用I/O口可以復(fù)用,大大增強(qiáng)了端口功能和靈活性,十分適合開(kāi)發(fā)的要求,所以選用其作為SDRAM系統(tǒng)的控制主芯片。

2 硬件系統(tǒng)組成

國(guó)家重大科學(xué)工程HIRFL-CSR(蘭州重離子加速器冷卻存儲(chǔ)環(huán))的控制系統(tǒng)由兩部分構(gòu)成:總體控制和前端控制服務(wù)器?傮w控制包括網(wǎng)絡(luò)通信支持系統(tǒng)、集群服務(wù)系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)。前端控制服務(wù)器用來(lái)提供對(duì)受控目標(biāo)和裝置的完全控制,它們可以接收命令和數(shù)據(jù),運(yùn)行算法,向設(shè)備送出控制信號(hào),返回設(shè)備的狀態(tài)和數(shù)據(jù),提供人機(jī)界面等。按照現(xiàn)場(chǎng)要求執(zhí)行開(kāi)環(huán)或閉環(huán)控制,從而完成對(duì)CSR電源系統(tǒng),注入引出系統(tǒng),內(nèi)靶系統(tǒng),真空系統(tǒng),溫度測(cè)控系統(tǒng), 電子冷卻系統(tǒng)等各個(gè)分系統(tǒng)的監(jiān)視測(cè)量,故障報(bào)警,操作和控制。

基于MSP430F149單片機(jī)的SDRAM控制系統(tǒng)包括:PC機(jī)、微控制器、CPLD、FPGA、SDRAM。數(shù)據(jù)通過(guò)PC傳送給微控制器MSP430F149,單片機(jī)收集到數(shù)據(jù)以后,經(jīng)過(guò)一定的算法發(fā)送適當(dāng)?shù)拿罱o雙向數(shù)據(jù)轉(zhuǎn)換器和SDRAM控制器,從而完成對(duì)SDRAM數(shù)據(jù)的讀寫和刷新等控制操作。

3軟件設(shè)計(jì)

MSP430的內(nèi)核結(jié)構(gòu)采用具有高透明格式的精簡(jiǎn)指令集(RISC)設(shè)計(jì)。指令分為硬件實(shí)現(xiàn)的內(nèi)核指令和利用這一硬件結(jié)構(gòu)的具有更高效率的模擬指令,使用起來(lái)非常方便。在本控制系統(tǒng)中,單片機(jī)完成初始化任務(wù)(設(shè)置標(biāo)志位、看門狗的工作方式)后,就進(jìn)入低功耗睡眠狀態(tài)。中斷將其喚醒,轉(zhuǎn)而進(jìn)入相應(yīng)的子程序;贛SP430F149單片機(jī)的SDRAM控制程序如下。

#include <msp430x14x.h>

void Init(void);

void Send(char* Data, unsigned int Length);

void SendAddress(unsigned int Address);

void SendData(unsigned int Data);

unsigned int ReceiveData(void);

char ReadData[20], Buffer[20];

unsigned char i=0, j, k, flag=0;

unsigned int Data;

unsigned int DisplayData;

char DisplayString[20];

 

void main(void)

{

 WDTCTL = WDTPW + WDTHOLD; // Stop WDT

 Init();                   // UART1 inition

 _EINT();                  // enable interrupt

 while(1)
 {
  DisplayData = ReceiveData();

  if (DisplayData == 0)
  {
    k = 0;
    if (DisplayData != 0)
     {
      DisplayString[k] = 0 + DisplayData % 10;

      DisplayData = DisplayData / 10;

      k++;
     }

    Send(DisplayString, k);

   }

  }

}

void Init(void)
{

  UCTL1 &= ~SWRST; // reset swrst and usart1 enable
  UCTL1 = 0x10; // 8-bit character
  UBR01 = 0x03; // 8MHz 38400
  UBR11 = 0x00; // 8MHz 38400

  UMCTL1 = 0x4A; // U1CLK = SMCLK=TX2
  UTCTL1 = 0x10;

  ME2 |= 0x30; // Enable USART1 TXD/RXD

  P3SEL= 0xC0; // enable P3.6,7 USART1 TXD/RXD

  P3DIR= 0x40; // P3.6 output direction

  IE2 |= URXIE1; // Enable USART1 RX interrupt

 }

interrupt [UART1RX_VECTOR] void UART1RX(void) // read data
{
    if (flag == 0)    // wait for strat char of 0xAA or 0xDD
  {

  if (RXBUF1 == 0xAA) // alter flag
  {
   flag = 1;
   }

else if (RXBUF1 == 0xDD) // alter flag
 {
  flag = 2;
  }

   i = 0;

}

else
{
 ReadData = RXBUF1;
if (ReadData[i++] == 0xFF) // end char of 0xFF
{
  Data = 0;
 for (j=i-1; j!=0; j--)
 {

  Data = Data * 10 + (ReadData[j] - 0);

 }

if (flag == 1) // send address
 {
 SendAddress(Data);
 }

  else if (flag == 2) // send data
   {
    SendData(Data);
   }

   flag = 0;
  }

 }

}

void Send(char* Data, unsigned int Length) // send data
{
 unsigned int i;
 UCTL1 |= TXWAKE;
 TXBUF1 = 0x01;
 while ((UTCTL1&0x01) == 0);

 UCTL1 &= ~TXWAKE;

 for(i=0; i<=Length; i++)
 {
   TXBUF1 = Data;
   while ((UTCTL1&0x01) == 0);
  }

}

void SendAddress(unsigned int Address) // send address
{
 // address buses
 P1DIR |= 0xE0; // P1.5-1.7 address buses

 P2DIR = 0xFF; // P2.0-2.7 address buses

 P3DIR |= 0x1F; // P3.0-3.5 address buses

 P4DIR |= 0x1F; // P4.0-4.5 address buses

 P1OUT |= (Address & 0x07);

 P2OUT |= (Address & 0x7F8) >> 3;

 P3OUT |= (Address & 0x1F800) >> 11;

 P4OUT |= (Address & 0x7E0000) >> 17;
}

void SendData(unsigned int Data) // send data
{
// data buses
 P4DIR |= 0xC0; // P4.6-4.7 data buses
 P5DIR |= 0x1F; // P5.0-5.5 data buses
 P4OUT |= (Data & 0x03);
 P5OUT |= (Data & 0xFC) >> 2;
}

 

unsigned int ReceiveData(void) // send data
{
  unsigned int Data;
// data buses

 P4DIR &= 0x3F; // P4.6-4.7 data buses

 P5DIR &= 0xE0; // P5.0-5.5 data buses

 Data = ((P5IN & 0x1F) << 2) | ((P4IN & 0xC0) >> 6);
 return Data;
}

4 結(jié)語(yǔ)

MSP430F149是一種新型的混合信號(hào)處理器,采用了美國(guó)德州儀器(Texas Instruments)公司最新低功耗技術(shù)(工作電流為0.1~400uA)。該系列將大量的外圍模塊整合到片內(nèi),特別適合于開(kāi)發(fā)和設(shè)計(jì)單片系統(tǒng)。基于MSP430F149單片機(jī)的SDRAM控制系統(tǒng),具有較強(qiáng)的通用性和擴(kuò)展性,滿足了高速數(shù)據(jù)采集和處理的實(shí)時(shí)要求。

基金項(xiàng)目:HIRFL-CSR國(guó)家實(shí)驗(yàn)室國(guó)家“九五”重大科學(xué)工程項(xiàng)目

 

參考文獻(xiàn)
[1]    敬嵐,朱海君,梁義海,等.基于AT89C51的云臺(tái)鏡頭監(jiān)控系統(tǒng)設(shè)計(jì)及其應(yīng)用[J].電氣自動(dòng)化,2003,25(Z06): 29~30.
[2]    敬嵐,朱海君,張碩成,等.加速器控制系統(tǒng)中的32路數(shù)字I/O模塊設(shè)計(jì)[J].電氣自動(dòng)化,2003,25(Z06):59~60.
[3]    敬嵐,朱海君,張碩成,等.基于MSP430F149單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)[J].電氣自動(dòng)化,2003,25(Z06):125~126.
[4]    朱海君,敬嵐. 微控制器及其在控制系統(tǒng)中的應(yīng)用[J].電子元器件應(yīng)用,2004(1):39~42.
[5]      朱海君,劉彩虹,敬嵐.智能控制芯片HD7279A及其應(yīng)用設(shè)計(jì)[J].中國(guó)儀器儀表,2004,(3):36~37.
[6]      朱海君,敬嵐,陸軍. 基于MSC1210單片機(jī)的串口通訊設(shè)計(jì)[J].微計(jì)算機(jī)信息,2004,(4): 48~36.
[7]    朱海君,敬 嵐,喬衛(wèi)民.SDRAM控制器的設(shè)計(jì)及其在CSR控制系統(tǒng)中的應(yīng)用[J].電氣自動(dòng)化,2004,26(Z04):43~44.
  • 上一篇: MSP430點(diǎn)對(duì)多點(diǎn)通信原理
  • 下一篇: 沒(méi)有了
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1