嵌入式系统嵌入式系统/ARM技术中的技术中的PC机与嵌入式系统的多线程串行通机与嵌入式系统的多线程串行通
信实现信实现
摘要:叙述了PC机与嵌入式计算机系统的多线程串行通信的实现。介绍了多线程设计思想的必要性,给出了程
序设计流程。 1、引言 目前,先进的嵌入式计算机以其优良的品质、高可靠性及模块化,广泛地应用
于工业控 制、航空航天、医疗、智能仪表、通信、数控、自动化生产设备、数据采集等领域。在实际 应用中,
有时需要借助微机强大的数据处理能力和丰富的软件资源,使得组成的系统功能更 为强大。这样,为了提升系
统的整体性能,必须实现PC 机和嵌入式计算机之间的通信。在 导航仪生产管理中,由于串行通信具有连接简
单、使用灵活方便、数据传递可靠等优点,采 用串行通信方式进行数据下载。但由于Windows 95/9
摘要:叙述了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 通信编程中,将对串口的读、写操作视为同一进程的两个不同任务, 创建读线程和写线程分别完成对
串口的读、写操作;由于异步串行通信事件的随机性和实时 性,要求通信线程优先于主线程被处理,所以设置各线程的优先
评论0
最新资源