新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于MSP430F149的串口服務(wù)器設(shè)計

基于MSP430F149的串口服務(wù)器設(shè)計

作者: 時間:2011-08-29 來源:網(wǎng)絡(luò) 收藏
2.1初始化模塊

本文引用地址:http://butianyuan.cn/article/155831.htm

  初始化模塊包括對主控制器和以太網(wǎng)控制器CS8900A的初始化;包括時鐘振蕩器的設(shè)置、I/O口初始化設(shè)置、定時器A的初始化和CS8900A片內(nèi)寄存器的初始化。

  初始化XT1上的8MHz晶振,并用作系統(tǒng)主時鐘MCLK。

  static void InitOsc(void)

  {

  WDTCTL = WDTPW + WDTHOLD; // 關(guān)閉看門狗

  BCSCTL1 |= XTS; // XT1工作在高頻模式

  __bic_SR_register(OSCOFF); // 啟動XT1晶振

  do

  {

  IFG1 = ~OFIFG; // 清除振蕩器失效標志 OFIFG

  DelayCycles(100); // 延時130?滋s

  }

  while (IFG1 OFIFG); // 判斷XT1是否起振

  BCSCTL2 = SELM_3; // 選擇MCLK為XT1

  }

  I/O口的初始化:P3.7和P3.6初始化用于控制CS8900A的IOW和IOR,P3.5和P3.4用于UART0,P3.3~P3.0用于CS8900的地址總線,P5用于CS8900A的數(shù)據(jù)總線,這些都在CS8900A的初始化程序中進行。

  以太網(wǎng)模塊CS8900A的初始化程序如下:

  void Init8900(void)

  {

  unsigned int i;

  P3OUT = IOR | IOW;

  P3DIR = 0xff;

  P5OUT = 0;

  P5DIR = 0xff;

  DelayCycles(40000);

  DelayCycles(40000);

  Write8900(ADD_PORT, PP_SelfCTL);

  Write8900(DATA_PORT,POWER_ON_RESET);

  do

  Write8900(ADD_PORT, PP_SelfST);

  while (!(Read8900(DATA_PORT) INIT_DONE));

  }

  2.2數(shù)據(jù)采集及處理

  這里包括網(wǎng)絡(luò)數(shù)據(jù)和數(shù)據(jù)的采集和處理。程序中設(shè)置了全局變量DonetworkStuff函數(shù)來檢查是否收到一個幀。當確定數(shù)據(jù)包是發(fā)給特定模塊時,開始調(diào)用函數(shù)ProcessFrame()來對數(shù)據(jù)進行處理。

  2.3 TCP/IP模塊

  層次結(jié)構(gòu)是描述協(xié)議棧普遍采用的方法,每一層都向上一層提供服務(wù),同時使用來自下層提供的服務(wù),低層的操作細節(jié)對上層來說是不透明的。根據(jù)嵌入式自身的特點和系統(tǒng)需求,對TCP/IP進行了精簡,以更適合嵌入式系統(tǒng)的需要。TCP/IP的4層結(jié)構(gòu)與OSI的7層參考模型對應(yīng)關(guān)系如圖3所示。

  

圖3 TCP/IP的4層結(jié)構(gòu)

  圖3 TCP/IP的4層結(jié)構(gòu)



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉