基于嵌入式WinCE与MSP430单片机多串口通信设计

发布者:SparklingBeauty最新更新时间:2011-10-24 关键字:WinCE  MSP430  TCPIP  串口通信协议 手机看文章 扫描二维码
随时随地手机看文章
    目前WinCE嵌入式与MSP430单片机在仪器仪表、工业控制、移动设备等有着广泛的应用。在很多复杂的应用场合比如多点温度采集、多点转速采集,一个单片机不能满足要求,需要多台单片机协同工作,此时,多台单片机通信是实现的关键。以基于WinCE嵌入式设备为核心,取代传统意义上的PC机,采用TCP/IP通信机制搭建的串口通信系统,结合嵌入式设备和网络技术的优点,将各独立系统复杂的通信协议、数据格式进行统一的转化,特别适用于远程、多机串口通信,具有重要的使用价值和应用前景。

1 硬件平台
    1)WinCE嵌入式采用友善之臂mini2440开发板作为硬件平台,mini2440开发板主要的硬件资源包括:SamsungS3C2440A,主频400MHz,最高533 MHz;1个100 M以太网RJ-45接口(采用DM9000网络芯片),1个通用异步串行口(UART);2个USB数据接口;1个LCD控制器;1个64MSDRA-M;1个SD卡接口;以及键盘接口和IDE接口等,利用上述的核心硬件资源,根据需要定制相关的内核,在EVC集成开发环境中编写应用程序。
    2)MSP430F149单片机是TI公司芯片,它具有集成度高、外围设备丰富、超低功耗、1.8~3.6 V的低电压供电范围,5种可选的低功耗模式,低于6μs的唤醒时间等优点,是设计电池供电系统的极佳选择。由于具有16位RISC结构,16位寄存器和常数寄存器,MSP430达到了最大的代码效率。数字控制的振荡器提供快速从所有低功耗模式苏醒到活动模式的能力,时间少于6ms。MSP430F149带有2个16位定时器(带看门狗功能)、速度极快的8通道12位A/D转换器(ADC)(带内部参考电压、采样保持和自动扫描功能)、1个内部比较器和2个通用同步/异步发射接收器,硬件乘法器提高了单片机的性能并使单片机在编码和硬件上可兼容,所以在很多领域得到了广泛的应用。
    3)PC机与WinCE嵌入式通过100 M/S以太网接口连接,WinCE嵌入式与MSP430F149通过RS232进行通信,串口通信总体框图如下图1所示。

a.jpg



2 WinCE嵌入式平台定制
    WinCE嵌入式操作系统是一个紧凑、高效、可扩展开放的、可裁减的、32位的实时嵌入式窗口操作系统,其最大的特点是使用了分层结构技术,使系统具有更好的可扩展性和定制性,使应用程序和操作系统独立于具体硬件,以适应各种特殊的应用环境。操作系统从逻辑上可以分为硬件层、OEM层、操作系统层、应用程序层。基于嵌入式WinCE开发平台的定制主要是对操作系统层和OEM层进行定制。

    微软提供了PB(Platform Builder)作为定制WinCE操作系统的集成开发环境。PB环境支持多种功能模块和硬件接口,可以根据目标设备的具体硬件配置进行WinCE的裁剪和定制,定制WinCE平台的流程如图2所示。首先,通过安装和创建设备驱动程序对网卡、串口、显示驱动、USB和电源驱动等硬件进行定制;然后,定制系统组件和服务,包括TCP/IP、FTP、MFC、Telnet等,并根据硬件配置和操作系统的应用特性修改配置文件;最后,生成操作系统映像文件,通过网口或串口将其下载到目标设备中运行。定制完成后,导出应用程序开发工具包SDK。

b.jpg



3 串口UART模块
3.1 WinCE操作系统串口
    在WinCE下运行的程序,一般是在Windows环境下开发的,然后下载到嵌入式设备中。系统中是在Windows环境下用EVC去开发应用软件,然后下载到设备中去。串口在WinCE中属于流接口设备,可以像对文件一样对串口进行打开、关闭、读写等操作。WinCE下的串口函数和Win-dows下的串口函数基本相同,但在一些方面有所不同:1)WinCE只支持Unicode;2)WinCE中有一些自己特有的控件,可以方便编程;3)EVC不支持重叠I/O操作。
3.2 在WinCE下开发串口通信步骤
    1)打开端口并进行初始化  在EVC中把设备当做文件来处理,故使用CreateFile来打开端口。如果打开成功,则会返回打开串口的句柄。成功打开一个端口之后,需要对端口进行初始化。调用串口通信函数SetupComm,设置COM的发送和接收缓冲区的大小。分配好缓冲区以后,调用CetCommTimeouts函数对读写串口进行超时设置。然后调用GetCommState函数获取当前串口的默认参数并返回一个DCB结构体地址,通过给这个DCB结构体各成员赋值来重新设定串口状态。最后调用PurgeComm函数清空串口的发送接收缓冲区。
    2)对串口进行读写操作  成功配置好串口参数后即可调用函数ReadFile和WriteFile对串口进行读写操作。在通信的过程中可能出现通信错误导致程序无法继续进行,一般需要调用ClearCommError清除这些错误。
    3)关闭串口  使用完串口后必须关闭串口。串口不能像文件一样被共享,不释放别的应用程序不能使用。关闭串口只需使用CloseHandle即可。WinCE串口流程图如图3所示。

c.jpg

[page]

3.3 MSP430F149单片机UART模块特点
    MSP430单片机的UART模块具有比普通51单片机更完善的特性,如可选择奇偶校验方式、波特率小数部分可编程、提供差错控制及错误状态位、串口中断唤醒CPU等。将这些特点应用于串口通信中可以增强通信的可靠性,比如:UART硬件模块可以被设置为若奇偶校验出错则不接收当前数据,通过设定波特率调制值可使波特率更准确,通过休眠模式的应用可提高CPU工作的效率并降低系统的功耗。对于多机通信,MSP-430单片机内置了空闲式(idle-line)和地址位式(address-bit)两种多机通信模式,为提供可靠高效的多机通信提供了保证。两种模式主要在如何确定地址帧方面存在差别:1)空闲模式:两个数据块之间的传输空闲时间大于或等于10 bit,也即用传输线上大于或等于10 bit空闲之后的第一个数据表示地址。2)地址位模式:通过字节帧中的地址位(1或0)指示该帧是地址帧还是数据帧。一由于空闲模式要求两个数据块之间一定要有大于或等于10 bit的时间间隔,所以在连续传输的场合传输速率会比地址位模式慢,但是编程简单。

4 串口通信协议设计
    在WinCE嵌入式和多台MSP430单片机的通讯中,确定一个明确而合理的通讯协议是关键,包括对数据格式、通讯方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定。为了区别不同的分机,必须为每个分机分配一个唯一的地址,此地址唯一区别各单片机。数据格式采用数据包的形式,一次传输一组数据。数据包格式如表1所示。

d.jpg


    数据格式中的地址位表示与PC机通讯的单片机地址。操作命令则表示此次通讯要完成的操作。在单片机发送上位机接收的时候,此时数据包中的数据长度、数据内容、和检验3个域便填充实际发送数据的个数、数据及和校验;操作命令域在PC机发送单片机接收的时候也有相似的协议规定。

5 TCP/IP数据通信
    TCP/IP数据通信模块用于完成WinCE嵌入式与PC机服务器之间的通信,其主要功能包括,接收下位机发来的信息、发送控制命令,控制程序的运行状态,为多机串口通信提供方便。数据通信模块采用基于WinCE的TCP/IP协议,能够保证在传输过程中数据的准确性和可靠性;嵌入式系统硬件抗干扰能力强,能够保证系统长期稳定运行。客户进程建立连接及通信的程序流程如图4所示。

e.jpg


    在基于Wince的TCP/IP协议中,其通信实现流程为:TCP服务器首先调用socket()函数建立流式套接字,然后调用bind()绑定本地地址,调用listen()函数进行客户终端连接,一旦与客户终端连接后,服务器就调用accept()函数接收终端的连接请求,并建立连接,同时服务器端启动一个新线程,建立单独的套接字实例与客户终端进行通讯。
    TCP客户端通信实现流程为:调用socket()函数建立流式套接字,然后调用connect()函数,请求与WinCE服务器建立TCP连接,成功建立连接后,同服务器进行数据传输。
    服务进程和客户进程通过调用send()和recv()来交换数据,服务器可向客户端传送所收集的数据。客户端则向服务器反馈控制信息和参数调整信息:服务进程或客户进程可通过调用close()来撤消套接字并中断连接。

6 结论
    串口通讯方式在计算机控制系统中有着广泛的应用,通过WinCE嵌入式与多台MSP430单片机串口通信研究开发,运用嵌入式、单片机及网络通信技术实现了多机串口通信。本文设计的通讯协议经实践证明稳定可靠,保证了单片机与PC之间数据传输的准确率。本文所采用的技术在远程控制,工业控制等领域具有重要的实用价值和广泛的应用前景。

 

 

关键字:WinCE  MSP430  TCPIP  串口通信协议 引用地址:基于嵌入式WinCE与MSP430单片机多串口通信设计

上一篇:MSP430单片机的热敏电阻温度测量
下一篇:VHDL语言在FPGA/CPLD开发中的应用

推荐阅读最新更新时间:2024-03-16 12:44

MSP430入门:硬件初步
值得注意的几点: 1.复位信号是MCU工作的起点,430的复位信号有两种:上电复位信号POR和上电清除信号PUC。POR信号只在上电和RST/NMI复位管脚被设置为复位功能,且低电平时系统复位。而PUC信号是POR信号产生,以及其他如看门狗定时溢出、安全键值出现错误是产生。但是,无论那种信号触发的复位,都会使msp430在地址0xffff处读取复位中断向量,然后程序从中断向量所指的地址开始执行。 2.系统时钟是一个程序运行的指挥官,时序和中断也是整个程序的核心和中轴线。430最多有三个振荡器,DCO内部振荡器;LFXT1外接低频振荡器,常见的32768HZ,不用外接负载电容;也可接高频450KHZ- 8M,需接负载电容;XT2接高
[单片机]
MSP430实现微波成像的扫描控制与数据采集
引言   ----在无源微波遥感中,微波辐射计是一种获取场景微波特征的重要手段。微波辐射计通常是一部超外差接收机,通过接收被测场景在一定频带内的电磁辐射,转换为输出的低频信号,来表征被测场景的地物信息。利用微波辐射计来探测、接收被测目标、背景在微波波段的电磁辐射,并把接收到的辐射信号按比例用伪彩色图像直观地显现出来的系统称为微波辐射成像系统。   ----微波辐射成像系统要求在恶劣的环境和天气下长期稳定地进行天线扫描成像,所以要求系统设备用于天线扫描控制及数据采集的电路尽量简单、稳定。基于以上的要求,采用了TI公司所生产的MSP430F149型超低功耗FLASH单片机作为这套系统的从机部分,该单片机有60KB的FLASH存储器
[安防电子]
用<font color='red'>MSP430</font>实现微波成像的扫描控制与数据采集
MSP430单片机的PWM操作
//******************************************************************************* // 描述:MSP430实现PWM。反映在LED灯上,可以看到LED灯的亮度不断变化 // // ACLK= n/a, MCLK= SMCLK= default DCO ~ 800k // // MSP430F13x // ------------------- // /|\| XIN|- // | | | 32kHz // --|RST XOUT|- // | | // | P1.2|-- LED // // // 硬件电路:MSP430F135核心实验板-I型 //
[单片机]
MSP430F249数码管显示
/****************************************************************** ** ** File : Display.c | Display led segment | ** Version : 1.0 ** Description: led 7 segment display ** Author : LightWu ** Date : 2013-4-9
[单片机]
MSP430:中断简介
(5)、中断应用程序举例(外部中断): void interrupt_initial() { P1DIR&=~BIT7; //P1.7为输入 P1IE|=0x80; //P1.7中断允许 P1IES|=0x00; //P1.7上升沿触发 P1IFG=0; //P1.7中断标志清除,对于多源中断必须先清中断标志再打开中断 _EINT(); //总中断允许 } #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) { P1IFG&=~BIT7; //P1.7中断标志清除 /*在此写中断服务子程序*/ } • #pragma vector
[单片机]
基于MSP430的车体自动调平系统
随着国防技术的发展,根据任务需求,越来越多的军用武器需要随时变更工作地点。为了保证这些军用武器的机动性能,往往以载车为运输载体,如火箭炮这样的大型武器就被安装在载车上。载车到达目的地后,借助平台快速将武器架设调至水平而后工作,工作完成后平台能够快速地撤收、转移。既保证了武器的工作性能,又提高了机动性。 传统上,主要依靠人工手动完成平台的水平度调节,这需要一部分人员手动调节千斤顶,另外一部分人员观察水平仪的水泡位置。这种调平方式费时费力,且精度低、抗倾覆能力差。随着调平时间和调平精度要求的提高,过去的调平方式已远远不能满足实际情况的需要,所需时间短、精度高、抗倾覆能力强的自动调平控制技术应运而生。 在军用方面,自动调平控制系统
[单片机]
基于<font color='red'>MSP430</font>的车体自动调平系统
WinCE下BootLoader的启动流程和开发经验
Windows CE最大程度继承了桌面版Windows的丰富功能,但是Windows CE并不是一个通用的安装版操作系统。在形形色色的嵌入式设备世界里,一款CE系统通常只能针对某一种硬件平台生成。   一般来说,Windows CE的开发过程可以分为:0AL(OEM Abstraction Layer)、驱动、应用程序开发三个步骤。其中,0AL开发最基本的一步是板级支持包(BSP),而BootLoader设计则在BSP开发中具有极为关键的地位。   1. 什么是BootLoader   嵌入式系统的启动代码一般由两部分构成:引导代码和操作系统执行环境的初始化代码。其中引导代码一般也由两部分构成:第一部分是板级、片级初始化代码
[模拟电子]
基于WinCE操作系统的通用USB数控键盘设计
引言 随着网络时代的到来,机械制造行业也面临着如何适应网络化制造的问题。于是将计算机技术、网络技术和传统的控制技术相结合,以嵌入式系统为主的数控系统正日益成为机械制造领域的热点。对于一个具体的数控系统,在通过键盘作为人机交互工具时,按键的数目与功能上与其他的数控系统是不同的,实时性和高速率是工业现场所重视的,USB数控键盘相对于传统的PS/2键盘具有高速率、支持热插拔、可灵活配置等特点,所以要为嵌入式数控设备研发出通用的数控键盘,来满足现代化数控系统的需求。具体设计方案如图1所示。 系统硬件电路设计 系统(图1)有四个模块组成:键盘模块、USB接口模块、USB和MCU通信模块。USB数控键盘不需要显示模块,在实验中为了
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved