基于MSP430F149的串口服务器设计
- 格式:pdf
- 大小:241.47 KB
- 文档页数:3
《电子技术应用》2009年第1期随着计算机网络技术的发展,各种工业设备、试验设备以及家电等正在走向网络化,“让全世界的设备连入网络”已成为全球共识,所以把具有串口通信接口的设备连入网络,进行远程数据交换和网络控制,显得尤为重要。本文采用了TI公司生产的16位超低功耗的混合信号处理器(mixedsignalprocessor)和Cirrus公司生产的高集成度的全面支持IEEE802.3标准的以太网控制器CS8900A来设计嵌入式串口服务器终端,以模块化设计思想提供软件设计,鉴于嵌入式系统有限的内存,对TCP/IP进行了精简,并进行了调试。1硬件电路设计主控制器MSP430[1]是美国TexasInstruments(TI)公司于1996年开始推向市场的超低功耗微处理器,拥有5种低功耗模式,以适应不同的需要。CPU从低功耗模式被唤醒,这个过程最多只需要6μs。灵活的时钟使用方式也是MSP430的一大特点,除了片内集成一个晶体振荡器外,还可外接1~2个晶体振荡器。不同的内部功能模块可根据需要使用不同的晶体振荡器,在不需要时可以通过设置寄存器将其关闭,以减低功耗。MSP430采用了16位的RISC架构,具有125ns的指令周期,且内部具有丰富的功能模块,集成了多通道10~14位的A/D转换器、双路12位D/A转换器、比较器、电源电压检测、串行口USART(UART/SPI)、硬件乘法器、Flash存储器、看门狗定时器及多个16位、8位定时器等功能模块。这些结构使得MSP430微处理器可以应用到更多的场合,有更广泛的应用,也使得串口服务器的设计更为简单化。以太网控制芯片CS8900A[2]是CirrusLogic公司生产的低功耗、性能优越的16位以太网控制器。其突出特点是使用灵活,物理层接口、数据传输模式和工作模式等都能根据需要而动态调整,通过内部寄存器的设置来适应不同的应用环境。系统的硬件框图如图1所示。基于MSP430F149的串口服务器设计陈政石1,秦红波1,2,李铁鹰2(1.茂名学院计算机与电子信息学院,广东茂名525000;2.太原理工大学信息工程学院,山西太原030024)摘要:MSP430微处理器具有功耗低和功能模块丰富的特点。采用MSP430F149为主控制器和以太网控制芯片CS8900A设计串口服务器,并且嵌入精简后的TCP/IP协议。以过程控制设备为目标进行调试,实现RS-232串口和网络接口RJ45的转换。使串口设备联入以太网,实现远程网络控制。关键词:MSP430;串口服务器;以太网中图分类号:TP393.11文献标识码:ADesignofserialdeviceserverbasedonMSP430F149CHENZhengShi1,QINHongBo1,2,LITieYing2(1.CollegeofComputerandElectronicInformation,MaomingUniversity,Maoming525000,China;2.CollegeofInformationEngineering,TaiyuanUniversityofTechnology,Taiyuan030024,China)Abstract:MicroprocessorMSP430hasultralow-powerandincludesabundantfunctionmodules.ThechiefcontrollerMSP430F149andethernetchipCS8900Aareusedtodesignserialdeviceserver,inwhichsimpleTCP/IPisembedded.Itisde-buggedontheexperimentequipmentintheprocesscontrollabandrealizestheconversionbetweenRS-232andRJ45.Seriale-quipmentislinkedtoethernet,andremotenetworkcontrolisexecutable.Keywords:MSP430;serialdeviceserver;ethernet
*基金项目:广东省2005年自然科学基金资助项目,编号:5011905通信与网络CommunicationandNetwork95《电子技术应用》2009年第1期欢迎网上投稿www.chinaaet.com电源通过5V电源适配器,经LD1117芯片转化为3.3V稳压电源给主控制器MSP430、以太网芯片CS8900A及SP3223供电。MSP430接8MHz的晶振,同时外接一个JTAG口,通过JTAG口接MSP430仿真器用于系统与MSP430开发软件IAR之间的程序调试[3]。主控制器负责控制以太网接口完成网络数据包的发送和接收,以及相应的封装和解包工作,根据上位机的指令完成相应的数据采集和处理,并且检测串口通信模块是否有事件发生然后做出相应的反应;负责完成系统上电复位、初始化以及低电压检测等功能。CS8900A内部的802.3介质访问控制[4]负责处理有关以太网数据帧的发送和接收,包括:数据检测、帧头的产生和检测、CRC校验码的生成和验证。以太网模块用于完成TCP/IP协议栈中的链路层功能,在发送时把网络层数据包转换成以太网物理帧格式用于物理信道上的传输;在接收时将物理信道上接收到的信号转换成网络层数据包。2软件程序设计软件部分采用模块化的设计思想,把程序化繁为简,便于程序的设计、调试及维护。整个部分包括初始化模块、串口数据采集及处理模块、网络数据采集及处理模块和TCP/IP模块,另外还有定时器中断用于TCP的重发机制计时和数据采集计时、串口中断用于转发串口数据。程序工作流程如图2所示。2.1初始化模块初始化模块包括对主控制器MSP430F149和以太网控制器CS8900A的初始化;包括时钟振荡器的设置、I/O口初始化设置、定时器A的初始化和CS8900A片内寄存器的初始化[5]。初始化XT1上的8MHz晶振,并用作系统主时钟MCLK。staticvoidInitOsc(void){WDTCTL=WDTPW+WDTHOLD;//关闭看门狗BCSCTL1|=XTS;//XT1工作在高频模式__bic_SR_register(OSCOFF);//启动XT1晶振do{IFG1&=~OFIFG;//清除振荡器失效标志OFIFGDelayCycles(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的初始化程序如下:voidInit8900(void){unsignedinti;P3OUT=IOR|IOW;P3DIR=0xff;P5OUT=0;P5DIR=0xff;DelayCycles(40000);DelayCycles(40000);Write8900(ADD_PORT,PP_SelfCTL);Write8900(DATA_PORT,POWER_ON_RESET);doWrite8900(ADD_PORT,PP_SelfST);while(!(Read8900(DATA_PORT)&INIT_DONE));}2.2数据采集及处理这里包括网络数据和串口数据的采集和处理。程序设计中设置了全局变量DonetworkStuff函数来检查是否通信与网络CommunicationandNetwork96《电子技术应用》2009年第1期层名称功能例子应用层包含提供服务的不同HTTP,telnet,E-mail应用程序的协议(SMTP,POP)传输层在端点间通信传输控制协议TCP,用户数据报协议UDP互联网层Internet端点间数据IP,Internet控制报协议的交付和发送ICMP,地址解析协议ARP网络接口层数据传输的主机Ethernet(IEEE802.3),点对明确执行点协议(PPP),AX.25表1TCP/IP协议各层功能收到一个帧。当确定数据包是发给特定模块时,开始调用函数ProcessFrame()来对数据进行处理。2.3TCP/IP模块层次结构是描述协议栈普遍采用的方法,每一层都向上一层提供服务,同时使用来自下层提供的服务,低层的操作细节对上层来说是不透明的。根据嵌入式自身的特点和系统需求,对TCP/IP进行了精简,以更适合嵌入式系统的需要。TCP/IP的4层结构与OSI的7层参考模型对应关系如图3所示。TCP/IP协议中应用层、传输层、互联网层和网络接口层的基本功能如表1所述。
当有串口数据需要发送或者收到网络数据后,系统进入TCP/IP协议模块对数据进行处理,TCP/IP协议模块的初始化程序如下:voidTCPInit(void){BCSCTL1&=~DIVA0;//ACLK=XT1/4=2MHzBCSCTL1|=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的转换,既经济,又简单。在系统的实时性方面,MSP430F149单片机指令速度可达8MIPS,采用可以提高数据传输速度的DMA(DirectMemoryAccess),完全可以满足串口通信对实时性的要求。另外MSP430F149具有2KB的ROM,通过建立数据缓冲区,能有效解决串口和网口传输速率不匹配的矛盾,提高系统的实时性。参考文献[1]张晞,王德银,张晨.MSP430系列单片机实用C语言程序设计.北京:人民邮电出版社,2005:2-4.[2]张鹏,张爱民,李杰.基于以太网控制器CS8900A实现嵌入式系统的网络互联.电子工程师,2002(2):4-5.[3]张晓飞.基于MSP430单片机的嵌入式网络终端.合肥工业大学硕士论文,2006:7-8.[4]姚军,温阳东,谢毓广.基于MSP430F1611MCU的微机保护控制单元.电气时代,2005.[5]MSP430internetconnectivity.http://microcontroller.ti.com(收稿日期:2008-07-24)(上接第94页)列表中的地址继续发送扫描数据包,代理与管理站之间采用ATP协议进行通信,将数据报头考虑进来,告警消息约在5KB~6KB,告警消息的传输引起了瓶颈连接流量的骤然增长,至告警消息传输完毕,结点扫描被禁止后,瓶颈连接处的流量降至了正常业务水平。由图6可以看到应用移动代理的系统整体对网络负载的压力较小。需要指出的是,当网络流量较大时,告警消息的传输带来的流量影响是很小的。因此对于大型异构多应用的网络故障管理,应用移动代理系统的优势是明显的。基于移动代理的网络故障管理体系将移动代理技术引入到网络故障管理之中,它摒弃了传统网络故障管理体系中全网的故障都在网络管理中心进行管理的方式,利用代理的智能性和移动性,将故障管理放在更加靠近故障源的地方进行,减轻了网络负载。本文根据移动代理的特点,设计3层网管体系,并设计了各种代理以及代理之间的协同工作过程。在这种体系下,网管任务被细化,移动代理的特点得到了充分的体现。实验结果证明了系统的部分优越性。参考文献[1]张云勇,刘锦德.移动Agent技术.北京:清华大学出版社,2003.[2]DALMEIJERM,HAMMERDK.TMAERTSA.Mobilesoftwareagents.ComputersinIndustry,2000,(14):251-260.[3]SATOHI.Buildingreusablemobileagentsfornetworkmanagementsystems.ManandCybernetics,2003,33(3):350-357.[4]MILOJICICD.Agentsystemsandapplications.IEEECon-currency,2000,8(2):22-23.(收稿日期:2008-07-30)通信与网络CommunicationandNetwork
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
97