当前位置:首页 > 通信技术 > 通信技术
[导读]摘 要: MSP430微处理器具有功耗低和功能模块丰富的特点。采用MSP430F149为主控制器和以太网控制芯片CS8900A设计串口服务器,并且嵌入精简后的TCP/IP协议。以过程控制设备为目标进行调试,实现RS-232串口和网络接口R

摘 要: MSP430微处理器具有功耗低和功能模块丰富的特点。采用MSP430F149为主控制器和以太网控制芯片CS8900A设计串口服务器,并且嵌入精简后的TCP/IP协议。以过程控制设备为目标进行调试,实现RS-232串口和网络接口RJ45的转换。使串口设备联入以太网,实现远程网络控制。

  本文采用了TI公司生产的16位超低功耗的混合信号处理器(mixed signal processor)和Cirrus公司生产的高集成度的全面支持IEEE802.3标准的以太网控制器CS8900A来设计嵌入式串口服务器终端,以模块化设计思想提供软件设计,鉴于嵌入式系统有限的内存,对TCP/IP进行了精简,并进行了调试。
 

  1 硬件电路设计

  主控制器MSP430[1]是美国Texas Instruments(TI)公司于1996年开始推向市场的超低功耗微处理器,拥有5种低功耗模式,以适应不同的需要。CPU从低功耗模式被唤醒,这个过程最多只需要6 μs。灵活的时钟使用方式也是MSP430的一大特点,除了片内集成一个晶体振荡器外,还可外接1~2个晶体振荡器。不同的内部功能模块可根据需要使用不同的晶体振荡器,在不需要时可以通过设置寄存器将其关闭,以减低功耗。MSP430采用了16位的RISC架构,具有125 ns的指令周期,且内部具有丰富的功能模块,集成了多通道10~14位的A/D转换器、双路12位D/A转换器、比较器、电源电压检测、串行口USART(UART/SPI)、硬件乘法器、Flash存储器、看门狗定时器及多个16位、8位定时器等功能模块。这些结构使得MSP430微处理器可以应用到更多的场合,有更广泛的应用,也使得串口服务器的设计更为简单化。

  以太网控制芯片CS8900A[2]是Cirrus Logic公司生产的低功耗、性能优越的16位以太网控制器。其突出特点是使用灵活,物理层接口、数据传输模式和工作模式等都能根据需要而动态调整,通过内部寄存器的设置来适应不同的应用环境。

  系统的硬件框图如图1所示。

  

 

  图1 系统的硬件框图

  电源通过5 V电源适配器,经LD1117芯片转化为3.3 V稳压电源给主控制器MSP430、以太网芯片CS8900A及SP3223供电。MSP430接8 MHz的晶振,同时外接一个JTAG口,通过JTAG口接MSP430仿真器用于系统与MSP430开发软件IAR之间的程序调试 。

  主控制器负责控制以太网接口完成网络数据包的发送和接收,以及相应的封装和解包工作,根据上位机的指令完成相应的数据采集和处理,并且检测串口通信模块是否有事件发生然后做出相应的反应;负责完成系统上电复位、初始化以及低电压检测等功能。CS8900A内部的802.3介质访问控制[4]负责处理有关以太网数据帧的发送和接收,包括:数据检测、帧头的产生和检测、CRC校验码的生成和验证。以太网模块用于完成TCP/IP协议栈中的链路层功能,在发送时把网络层数据包转换成以太网物理帧格式用于物理信道上的传输;在接收时将物理信道上接收到的信号转换成网络层数据包。

  2 软件程序设计

  软件部分采用模块化的设计思想,把程序化繁为简,便于程序的设计、调试及维护。整个部分包括初始化模块、串口数据采集及处理模块、网络数据采集及处理模块和TCP/IP模块,另外还有定时器中断用于TCP的重发机制计时和数据采集计时、串口中断用于转发串口数据。

  程序工作流程如图2所示。

  

 

  图2 程序工作流程

   2.1初始化模块

 

  初始化模块包括对主控制器MSP430F149和以太网控制器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层结构TCP/IP协议中应用层、传输层、互联网层和网络接口层的基本功能如表1所述。

 

  表1 TCP/IP 协议各层功能

  

 

  当有串口数据需要发送或者收到网络数据后,系统进入TCP/IP协议模块对数据进行处理,TCP/IP协议模块的初始化程序如下:

  void TCP Init(void)

  {

  BCSCTL1 &= ~DIVA0;

  //ACLK=XT1/4=2MHz

  BCSCTL1 |=DIVA1;

  TACTL=ID_3+TASSEL_1+MC_2+TAIE;

  //选择ACLK为时钟源,1/8分频,连续计数模式

  Init8900();

  TransmitControl = 0;

  TCPFlags = 0;

  TCPStateMachine = CLOSED;

  SocketStatus = 0;

  }

  目前市场成型的串口服务器产品大多采用高性能32位微处理器在RTOS(实时多任务操作系统)上开发,成本高,开发周期长。采用16位的MSP430的串口服务器,成本较低,而且功耗较低,配置以太网控制器CS8900A,有很广泛的应用场合。采用16位微处理器、网络接口芯片和精简TCP/IP协议的设计,实现RS-232串口和网络接口RJ45的转换,既经济,又简单。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭