基于MSP430F149的串口服务器设计
- 格式:pdf
- 大小:241.47 KB
- 文档页数:3
随着计算机网络技术的发展,各种工业设备、试验设备以及家电等正在走向网络化,“让全世界的设备连入网络”已成为全球共识,所以把具有串口通信接口的设备连入网络,进行远程数据交换和网络控制,显得尤为重要。
本文采用了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架构,具有125ns的指令周期,且内部具有丰富的功能模块,集成了多通道10~14位的A/D转换器、双路12位D/A转换器、比较器、电源电压检测、串行口USART(UART/SPI)、硬件乘法器、Flash存储器、看门狗定时器及多个16位、8位定时器等功能模块。这些结构使得MSP430微处理器可以应用到更多的场合,有更广泛的应用,也使得串口服务器的设计更为简单化。
以太网控制芯片CS8900A[2]是Cirrus Logic公司生产的低功耗、性能优越的16位以太网控制器。其突出特点是使用灵活,物理层接口、数据传输模式和工作模式等都能根据需要而动态调整,通过内部寄存器的设置来适应不同的应用环境。
系统的硬件框图如图1所示。
基于MSP430F149的串口服务器设计
陈政石1,秦红波1,2,李铁鹰2
(1.茂名学院计算机与电子信息学院,广东茂名525000;
2.太原理工大学信息工程学院,山西太原030024)
摘要:MSP430微处理器具有功耗低和功能模块丰富的特点。采用MSP430F149为主控制器和以太网控制芯片CS8900A设计串口服务器,并且嵌入精简后的TCP/IP协议。以过程控制设备为目标进行调试,实现RS-232串口和网络接口RJ45的转换。使串口设备联入以太网,实现远程网络控制。
关键词:MSP430;串口服务器;以太网
中图分类号:TP393.11文献标识码:A
Design of serial device server based on MSP430F149
CHEN Zheng Shi1,QIN Hong Bo1,2,LI Tie Ying2
(1.College of Computer and Electronic Information,Maoming University,Maoming525000,China;
2.College of Information Engineering,Taiyuan University of Technology,Taiyuan030024,China)
Abstract:Microprocessor MSP430has ultralow-power and includes abundant function modules.The chief controller MSP430F149and ethernet chip CS8900A are used to design serial device server,in which simple TCP/IP is embedded.It is de-bugged on the experiment equipment in the process control lab and realizes the conversion between RS-232and RJ45.Serial e-quipment is linked to ethernet,and remote network control is executable.
Key words:MSP430;serial device server;ethernet
*基金项目:广东省2005年自然科学基金资助项目,编号:5011905
95
《电子技术应用》2009年第1期
电源通过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。
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函数来检查是否
96
《电子技术应用》2009年第1期欢迎网上投稿