EDN China > 设计实例 > 微处理器与DSP > CPU/GPU > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

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

单片机与嵌入式系统 蒋柱葱 谢云?? 2011年08月10日 ?? 收藏0

  目前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所示。

串口通信总体框图

  2 WinCE嵌入式平台定制

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

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

定制WinCE平台的流程

  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所示。

WinCE串口流程图


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

WinCE? MSP430? 串口通信? UART?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈