PC机与嵌入式系统的多线程串行通信实现

发布者:SereneSerenity最新更新时间:2011-09-27 关键字:PC机  多线程串行通信 手机看文章 扫描二维码
随时随地手机看文章

  1、引言

  目前,先进的嵌入式计算机以其优良的品质、高可靠性及模块化,广泛地应用于工业控制、航空航天、医疗、智能仪表、通信、数控、自动化生产设备、数据采集等领域。在实际应用中,有时需要借助微机强大的数据处理能力和丰富的软件资源,使得组成的系统功能更为强大。这样,为了提升系统的整体性能,必须实现PC机和嵌入式计算机之间的通信。在导航仪生产管理中,由于串行通信具有连接简单、使用灵活方便、数据传递可靠等优点,采用串行通信方式进行数据下载。但由于Windows 95/98对系统底层操作采取了屏蔽的策略,不允许用户对硬件I/O口进行直接操作,进行串行通信只能通过调用API函数来完成;同时Windows 9x通过消息队列驱动管理程序,DOS中断服务例程在其下面也很难实现,且实时性和可靠性都得不到保证;因此通过多线程编程解决这一问题,且能提高数据传输的吞吐量和应用程序的可靠性。

  2、系统功能简介及基本结构

  本文以导航仪生产管理系统为背景进行论述。现场的嵌入式计算机给PC机上传所存储的信息,并从PC机上下载最新的版本信息。而嵌入式计算机发送回来的数据可以通过PC机的人机界面生动实时地向用户显示。系统基本结构如图1所示。PC机与嵌入式计算机(从机)之间按照RS-485协议连接。

  3、多线程串行通信实现流程

  3.1 用API函数实现串行通信的基本流程

  如图2所示,首先CreatFile()函数打开通信资源,之后配置通信资源属性由以下API函数完成:SetupComm()设置串行通信端口的输入和输出缓冲区的大小;通过设备控制块DCB修改和设置串口工作状态的参数,如波特率、数据位、奇偶校验位等通信参数,SetCommState()将DCB结构中的内容写入串口设置;SetCommTimeouts()设置串口读写操作的溢出时间。设置工作完成后串行通信可用ReadFile( )对通信资源进行读操作,WriteFile()进行写操作。

  串行通信结束时调用函数CloseHandle()来关闭CreateFile()函数返回的串口句柄。

  3.2  PC机的程序实现流程

  多线程的串口I/O通信编程中,将对串口的读、写操作视为同一进程的两个不同任务,创建读线程和写线程分别完成对串口的读、写操作;由于异步串行通信事件的随机性和实时性,要求通信线程优先于主线程被处理,所以设置各线程的优先级别如下:

  读线程的优先级>写线程的优先级>主线程的优先级。

  在PC机端,创建辅助线程实时监视串口通信状态,并由串口通信监视线程根据通信状态向主线程发送相应的消息,由主线程分析处理。多线程串行通信法的最大优点是程序对接收数据具有自主觉察能力,一旦辅助的通信监视线程查询到数据已经发送到串行口上,辅助线程自动接收数据后,向主线程发送数据接收到的消息,应用程序可根据该消息来处理通信串口传送过来的数据,并且采用通信监视线程不占用CPU时间。

  程序实现建立辅线程:串口读线程,完成串口通信操作,用来监视和管理串口通信的输入。读线程一直等待,从通信串口读取数据并传输给主线程处理。主线程除完成串口通信资源的打开、参数配置以及关闭的工作外,还要完成读线程的创建及关闭、多线程的协调、数据的中间处理与前端的人机交互等工作。

  图3为PC机的串口通信流程图。左边为主线程,右边为子线程。实线框内为用户界面的视类函数,虚线框内为通信类函数。用户通过VC设计的界面上的控件打开串口,并且发送数据。当对串口的参数设置完毕,串口成功打开的同时,子线程即接收线程开始运行。用户发送数据的同时,接收线程的控制函数也同时运行,当控制函数接收到读串口事件时,调用读串口函数,读取串口接收到的数据。子线程一直运行,也不断的读取接收到的数据,并显示在用户的界面上。当用户关闭串口,主线程要终止,此时子线程也收到主线程发送的关闭串口事件,终止线程,关闭串口。

  在实际通信过程中,由于干扰等原因,数据传输可能发生错误,因此还要加上实时错误处理以保证数据正常传输。这里不再赘述。

  3.3  嵌入式从机的程序实现流程

  在嵌入式从机部分,通信实现采用的是单线程,初始化设备之后等待通信数据,如果数据到达,则调用接收函数接收PC机数据,并将数据解析,返回结果向PC机发送数据。如果没有数据则继续等待。程序流程图如图4所示

  4、 结束语

  本文分析了多线程技术在实现PC机与单片机串口通信程序中的作用。通过两个通信线程并发执行,加以同步管理,应用程序能够在发送数据的同时接收数据,实时响应性强,高效可靠,有效地避免了数据丢失、程序锁死等问题。在实际应用中结果令人满意。

  参考文献:

  [1] Mark Nelson. 串行通信开发指南.潇湘工作室译.M. 北京:中国水利水电出版社,2000.
  [2]求是科技 谭思亮等.Visual C++串口通信工程开发实例导航.M.北京:人民邮电出版社,2001
  [3]李朝青. PC机与单片机数据通信技术.C. 北京:北京航空航天大学出版社,2001.


关键字:PC机  多线程串行通信 引用地址:PC机与嵌入式系统的多线程串行通信实现

上一篇:基于嵌入式网络模块的HTTP数据采集方案
下一篇:简述PLC在提升机中的设计与应用

推荐阅读最新更新时间:2024-05-02 21:37

探讨PC机与多MCS-51单片机间的串行通信设计
简介:本文主要探讨PC机与多MCS-51单片机间的串行通信设计,本系统软硬件在IBM PC/XT机和DICE系列的MCS-51单片机上进行过调试,运行良好,验证了其在 仿真平台的控制,现已用于实际系统,且特别适用于从机实时性要求较高的中小型工控系统。 引言 在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。它们大多由IBM-PC微机和MCS-51单片机组成。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立
[单片机]
探讨<font color='red'>PC机</font>与多MCS-51单片机间的<font color='red'>串行通信</font>设计
联发科看淡ARM进入Windows PC机
  据美国媒体报道,尽管过去几年比较糟糕,但今年晚些时候 Windows PC将依靠 ARM 芯片回归,只是只有高通芯片。另一家重要的 ARM 芯片制造商联发科(MediaTek)并未争取将 ARM 芯片安装到 Windows PC的机会,因为该公司认为这种机会有限。下面就随嵌入式小编一起来了解一下相关内容吧。   联发科的芯片已经使用到Chromebook中,但ARM在 Windows 中的应用历史比较糟糕,这是该公司置身局外的另一个原因。ARM进入PC的情况如同英特尔试图打入智能手机市场一样--联发科的销售总经理分巴尔·莫伊尼翰(FinbarrMoynihan)表示,这是冒险的主张。PC主要运行英特尔和AMD的x86芯片,但
[嵌入式]
利用MSM7512B的PC机和单片机远程通信
MSM7512B是一款单片FSK调制解调器。他符合ITUT V.23标准,可以支持1200 b/s半双工或1 200 b/s收/75 b/s发全双工2种数据传输方式。MSM7512B用于控制或单向数据通信比较方便,这样的系统往往执行端由小巧的单片机组成,处理控制端由计算机组成。如通过网络的远程抄表,远程报警,远程检测和远程在系统编程。但如果需要经过模拟接入网的远程双向数据通信,问题就不简单了。这就引出了如何利用 MSM7512B进行PC机和单片机之间的远程通信问题。 1通信方案与模式 通信方案应由具体应用决定。当PC机和单片机要通过公共电话交换网进行通信时,由于MSM7512B没有附加其他功能电路,因此在发起连接端需要
[单片机]
利用MSM7512B的<font color='red'>PC机</font>和单片机远程通信
单片机与远程PC机间建立通信的方法
  引言   串口服务器是一种协议转换模块,它通过提供1、2、4、8 或16 口的RS-232 或RS-422/485 串口界面,以及1 个10/100M 的以太网接口,可以将RS-232 或RS-422/485 串行设备接入TCP/IP 网络中而不需要更改控制程序,主计算机使用TCP/IP 协议通过以太网访问被接入的终端设备。上位机采用Socket 编程。   1 系统总体设计   1.1 设计思路   将经过传感器或变压器转变的标准电压或电流信号,进行A/D 转换,变成数字化的数据,把这些数据通过单片机串口传送到串口服务器上, 串口服务器将单片机发出来的数据包转换为以太网数据报文格式,转发到Internet 上,从而实
[单片机]
单片机与远程<font color='red'>PC机</font>间建立通信的方法
PLC与上位PC机的高速通信的设计与实现
0、引言   工业控制领域中PLC作为一种高效、灵活、可靠的控制器,有着广泛的应用。以PLC控制器为核心,上位PC机为实时监控体的控制系统已成为工业自动化PLC控制系统的一个发展方向。实现PLC与PC的通信可以实现向上级提供诸如工艺流程图、动态数据画面、报表显示等多种窗口技术,使PLC控制系统具有良好的人机界面,通过上位机对PLC数据的读写监控实现现场数据的采集、传送以及生产过程调度的自动化和信息化,其应用前景十分广阔。常用的各种PLC网络有差异,但表现在 PLC 通信程序、系统联结和系统配置等方面,通信机理有统一性。目前市场上通信组态系统结构复杂,价格昂贵,应用繁琐,不适应用户使用。针对上述问题笔者以西门子公司的S7-200系
[工业控制]
TMS320C54XX系列DSP与PC机串行通信的实现
摘要:目前大多数数字信号处理器(DSP)芯片上未提代通用异步串行收发器(UART),只提供2~3个同步串行接口,其与微机及其它设备进行串行通信时,必须在DSP上扩展异步串行接口。以美国TI公司TMS320C54XX系列DSP为例,采用MAXIM公司的MAX3111异步串行收发器,研究了理想的接口扩展方案。论述了这种方案的软、硬件实现。该方案硬件连接简单,软件编程方便,可实现DSP与PC机间的串行通信,具有很高的工程应用价值。 关键词:异步串行收发器 多通道缓冲串行接口 DSP McBSP SPI UART DSP在电子工业领域得到了越来越广泛的应用。在DSP应用系统设计中,必不可少的是各种通信接口的设计。与并行接口相比,串行
[应用]
PC机与单片机多机实时通信的设计与实现
在多媒体语音教学系统中,主计算机与各学生机之间需要进行双向指令传送。由于串行通信具有高效、可靠、价格便宜等优点,故本系统采用了串行通信的方法。 Windows95是非实时操作系统,对此本系统设计了以单片机为核心的智能接口单元,负责完成与64台从机的实时通信。整个通信系统由一台PC机和一台负责通信及相关分组配对功能的智能接口单元和64台以单片机为核心的学生单元组成。本系统的单片机采用89C51。智能接口单元通过串行接口芯片8251 及电平转换器MAX202与主机通信,通过单片机自带串口用RS-485接口芯片MAX487与从单片机之间进行通信。智能接口单元与6台从单片机之间为总线式网络结构,采用RS-485接口标准。这是半双工的串
[单片机]
<font color='red'>PC机</font>与单片机多机实时通信的设计与实现
新节能PC机能耗仅8.5瓦 用闪存替代硬盘
  6月14日消息,据外电报道,尼日利亚Fantsuam基金会日前研发出一款超节能PC机原型,由于用闪存替代了传统的硬盘,该款PC机的能耗只有8.5瓦。   据英国媒体报道,该款PC机被命名为“Solo Computer”,与当前普通PC机300瓦的能耗相比,Solo Computer的能耗只有8.5瓦。   据悉,该款PC机采用了低能耗的ARM处理器,以1G(或更高)闪存取代了传统的HDD硬盘,配置了14.1英寸TFT LCD显示屏和1G RAM内存。   Fantsuam基金会的设计理念是,将来该款PC机可以利用太阳能来供电。目前,该款产品的定价是1200美元。   
[新品]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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