下载此文档

基于VC++ 6.0的高速串口通信数据采集系统.docx


文档分类:通信/电子 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
基于VC++
1引言
串行通讯是计算机与其他设备进行数据交换时经常使用的方法之一,他具有实现简单,使用灵活方便,数据传输可靠等优点,因而在工业监控、数据采集和实时监控系统中得到广泛应用.
高速串口数据采基于VC++
1引言
串行通讯是计算机与其他设备进行数据交换时经常使用的方法之一,他具有实现简单,使用灵活方便,数据传输可靠等优点,因而在工业监控、数据采集和实时监控系统中得到广泛应用.
高速串口数据采集软件的设计不同于普通串口通信,其要求在接收数据采集设备发送大量数据的同时完成对已接受到数据的实时存储,如果处理不好二者之间的关系,,使得应用程序能够同时执行多个任务,,,看上去多个线程在同时运行•对于通讯这种需要花费大量时间来测试I/O操作,同时又要保持响应用户其它操作的应用程序来说,创建多线程是最佳选择.
2系统结构
系统的组成结构如图1所示•中央控制PC机是系统的核心,要求数据采集软件具有良好的稳定性和兼容性•所以独立设计了一套基于VisualC++,它与前端的扫描仪串口通信是典型的主从式,在硬件上通过MOXA公司的串口卡实现500K波特的采集速率.
图1数据采集系统结构
3用MSComm控件实现高速串口数据采集的问题
MSComm控件在串口编程时非常方便,程序员不必花时间去了解较为复杂的API函数,只需要在串口通信资源的属性(Properties)—项中配置串口,串口通信的波特率、数据位数、停止位数、奇偶校验、发送缓冲区大小、,进行数据读写.
对于一般数据交换及串口通信来说,MSComm控件完全能够满足要求•但由于控件本身对于接收缓冲区大小设置的限定,,当缓冲区内数据达到消息响应值并响应存储命令时,而新采集的数据传输速度大于已接收到数据的存储速度,就会造成接收缓冲区的溢出,.
在程序设计时也尝试当缓冲区达到阈值响应消息时,在消息响应中启动一个新的线程,先将缓冲区中接收到的数据取出到新开辟的内存单元中,,但出现了新的问题,,还是由于控件本身对于接收缓冲区大小设置的限定.
4程序设计创新
4.1多线程程序设计思想
在32位Windows系统中,术语多任务是指系统可以同时运行多个进程,,每个进程都有一个主线程,但可以建立另外的线程•进程中的线程是并行执行的,每个线程占用CPU的时间由系统来划分.
可以把线程看作是操作系统分配CPU时间的基本实体,系统不停的在各个线程之间切换,它对线程的中断是汇编语言级的•系统为每一个线程分配一个CPU时间

基于VC++ 6.0的高速串口通信数据采集系统 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息