新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于MSP430F149的串口服务器设计

基于MSP430F149的串口服务器设计

作者: 时间:2011-08-29 来源:网络 收藏
2.1初始化模块

本文引用地址:https://www.eepw.com.cn/article/155831.htm

  初始化模块包括对主控制器和以太网控制器CS8900A的初始化;包括时钟振荡器的设置、I/O口初始化设置、定时器A的初始化和CS8900A片内寄存器的初始化。

  初始化XT1上的8MHz晶振,并用作系统主时钟MCLK。

  static void InitOsc(void)

  {

  WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗

  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的数据总线,这些都在CS8900A的初始化程序中进行。

  以太网模块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数据采集及处理

  这里包括网络数据和数据的采集和处理。程序中设置了全局变量DonetworkStuff函数来检查是否收到一个帧。当确定数据包是发给特定模块时,开始调用函数ProcessFrame()来对数据进行处理。

  2.3 TCP/IP模块

  层次结构是描述协议栈普遍采用的方法,每一层都向上一层提供服务,同时使用来自下层提供的服务,低层的操作细节对上层来说是不透明的。根据嵌入式自身的特点和系统需求,对TCP/IP进行了精简,以更适合嵌入式系统的需要。TCP/IP的4层结构与OSI的7层参考模型对应关系如图3所示。

  

图3 TCP/IP的4层结构

  图3 TCP/IP的4层结构



评论


相关推荐

技术专区

关闭