新闻中心

EEPW首页 > 模拟技术 > 设计应用 > C/S模型在WinCE串口编程中的应用

C/S模型在WinCE串口编程中的应用

作者:时间:2012-08-21来源:网络收藏

引言
与传统的Windows技术相比较,中不具备串口复用的功能,这给在系统中实现对串口的复杂操作增加了技术难度。本文介绍一种使用在信息平台软件中常用的C/S技术,模拟串口复用的动作来实现操作系统串口复用的问题。
本方法实现所使用的函数大部分都是嵌入式开发中最常使用的C/C++函数,所有的函数都具有一定的通用性,稍加改动即可应用到其他嵌入式操作系统中;并且该方法实现的思路对于解决其他嵌入式编程中资源复用的难题具有一定参考价值。

1 软件结构及工作原理
1.1 软件结构及特点
为了使WincE操作系统的串口操作支持复用,在本方法中,采用了一种类式信息平台开发经常使用的C/S结构,利用此结构来模拟实现类似于Windows串口的复用功能,即在数据与串口硬件实际控制之间增加了一个C/S结构的中间层。系统整个结构主要包括控制协议、客户端程序和服务器端程序三部分。客户端和服务器端的程序复杂程度与串口操作的复杂程度成正比,在直观上也与控制协议的复杂程度成正比。软件结构图如图1所示。

本文引用地址:http://www.amcfsurvey.com/article/185889.htm

a.JPG


1.2 控制协议
控制协议的实现属于基础部分,复杂程度与串口的操作复杂程度有关,本文中提到的编程方法只是解决串口的复用部分,即同时对串口发生读写时在编程上的实现。因此在本方法中,实现串口复用的控制协议只需要两部分——串口+数据。串口指的是发生读写动作的串口(co m1,com2,…,comn),数据指的是需要用串口通信的数据。
1.3 服务器端程序流程及工作原理
服务器端程序流程图如图2所示。

b.JPG


从图2中可以看出,整个服务器端程序是由两个线程组成。一个线程用来处理由客户端发起的发送数据请求,符合控制协议的数据先存入预先定义好的发送缓冲区,同时判断对应串口的使用情况。当该串口被占用(串口正在处理上一个发送数据请求或者是正在接收数据)时,此次请求将被挂起一直到串口恢复到空闲状态;串口恢复到空闲状态后该线程将处理最先挂起的请求,将最先存入发送缓冲区的数据通过串口发走。
同时,服务器端程序还要用一个线程来实时监视该串口,将由该串口接收到的符合控制协议的数据存入预先定义好的接收缓冲区,同时通知数据处理线程。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭