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层进行定制。
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所示。
[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所示。
数据格式中的地址位表示与PC机通讯的单片机地址。操作命令则表示此次通讯要完成的操作。在单片机发送上位机接收的时候,此时数据包中的数据长度、数据内容、和检验3个域便填充实际发送数据的个数、数据及和校验;操作命令域在PC机发送单片机接收的时候也有相似的协议规定。
5 TCP/IP数据通信
TCP/IP数据通信模块用于完成WinCE嵌入式与PC机服务器之间的通信,其主要功能包括,接收下位机发来的信息、发送控制命令,控制程序的运行状态,为多机串口通信提供方便。数据通信模块采用基于WinCE的TCP/IP协议,能够保证在传输过程中数据的准确性和可靠性;嵌入式系统硬件抗干扰能力强,能够保证系统长期稳定运行。客户进程建立连接及通信的程序流程如图4所示。
在基于Wince的TCP/IP协议中,其通信实现流程为:TCP服务器首先调用socket()函数建立流式套接字,然后调用bind()绑定本地地址,调用listen()函数进行客户终端连接,一旦与客户终端连接后,服务器就调用accept()函数接收终端的连接请求,并建立连接,同时服务器端启动一个新线程,建立单独的套接字实例与客户终端进行通讯。
TCP客户端通信实现流程为:调用socket()函数建立流式套接字,然后调用connect()函数,请求与WinCE服务器建立TCP连接,成功建立连接后,同服务器进行数据传输。
服务进程和客户进程通过调用send()和recv()来交换数据,服务器可向客户端传送所收集的数据。客户端则向服务器反馈控制信息和参数调整信息:服务进程或客户进程可通过调用close()来撤消套接字并中断连接。
6 结论
串口通讯方式在计算机控制系统中有着广泛的应用,通过WinCE嵌入式与多台MSP430单片机串口通信研究开发,运用嵌入式、单片机及网络通信技术实现了多机串口通信。本文设计的通讯协议经实践证明稳定可靠,保证了单片机与PC之间数据传输的准确率。本文所采用的技术在远程控制,工业控制等领域具有重要的实用价值和广泛的应用前景。
上一篇:MSP430单片机的热敏电阻温度测量
下一篇:VHDL语言在FPGA/CPLD开发中的应用
推荐阅读最新更新时间:2024-03-16 12:44
设计资源 培训 开发板 精华推荐
- 首都医科大学王长明:针对癫痫的数字疗法已进入使用阶段
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度
- 英飞凌推出简化电机控制开发的ModusToolbox™电机套件
- 意法半导体IO-Link执行器电路板为工业监控和设备厂商带来一站式参考设计
- Melexis采用无磁芯技术缩小电流感测装置尺寸
- 千丘智能侍淳博:用数字疗法,点亮“孤独症”儿童的光
- 数药智能冯尚:ADHD数字疗法正为儿童“多动症”提供更有效便捷服务
- Vicor高性能电源模块助力低空航空电子设备和 EVTOL的发展