资源描述:
《基于vc_的红外相机串口通信软件设计new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、您的论文得到两院院士关注软件天地文章编号:1008-0570(2007)02-1-0289-02基于VC++的红外相机串口通信软件设计SerialPortCommunicationSoftwareDesignofInfraredCameraBasedonVC++(1.中国科学院长春光学精密机械与物理研究所2.北京中国科学院研究生院)曹西征1,2郭立红1CAOXIZHENGGUOLIHONG摘要:为了通过串口发送命令以控制红外相机,使其完成非均匀性校正、坏点替换以及积分时间、帧频的参数设置等各项任务,对控制软件的设计方法进行了研究。在VisualC++6.0平
2、台下,通过调用PComm函数完成对串口的初始化、打开、关闭等操作;通过构造命令处理函数库,完成对串口的数据读写和显示。设计的软件经实验装置调试、检验,可靠性强,可以满足设备实时控制的要求。关键词:串口;红外相机;VisualC++;PComm函数中图分类号:TP311.1文献标识码:BAbstract:Adesignmethodforthecontrolsoftwareforserialportcommunicationbetweenthepersonalcomputerandtheinfraredcam-eraispresented,inordertoma
3、ketheinfraredcameracompleteitsmissionofnonuniformitycorrection,badpixelreplacement,pa-rameterssettingsoftheintegrationtimeandtheframefrequencyandsoon.Theinitialization,openandcloseoftheserialportcan技becompletedbycallingthePCommfunction,andtheread-writeanddisplayofthedatafromtheseri
4、alportcanbecompletedbycallingthefunctionfromthecommandprocessingfunctionlibrarywhichhasbeencreatedwithVisualC++6.0.Thereliabilityofthe术softwaredesignedisgood,andthesoftwarecansatisfytherealtimecontrolrequirementsoftheequipmentbydebuggingandtesting.Keywords:Serialport,Infraredcamera
5、,VisualC++,PCommfunction创1引言新3命令处理函数模块的构建VC++由于功能强大和应用灵活,同时得到Microsoft系统的最好支持,具有图形界面友好、系统资源丰富、操作配置方3.1PComm提供的基本串口操作函数便、运行速度较快等特点。而串口通信具有实现简单,使用灵活a.打开串口:intWINAPIsio_open(intport);方便,数据传输可靠等优点,因而用VC++编制串口实时控制软b.关闭串口:intWINAPIsio_close(intport);件十分方便。c.串口参数设置:intWINAPIsio_ioctl(intp
6、ort,intbaud,int在红外、雷达数据处理系统中,多串口通讯被广泛应用。主mode);控计算机与各分系统间的信息交换一般采用多串口的方式进d.向串口发送数据:intWINAPIsio_write(intport,char行通讯,多串口包括RS232、RS422串口。红外相机作为一个分*buf,intlen);系统,肩负着获取红外图像的任务,由于红外焦平面探测器制e.从串口读取数据:intWINAPIsio_read(intport,char*buf,造工艺以及材料等影响,导致红外图像的非均匀性,另外还有intlen);一系列参数如积分时间、帧频等都需
7、要根据图像特征进行实时3.2函数模块的构建:调节,这些都可以通过串口来控制。对串口的操作可以利用库预定义:函数PComm提供的串口操作函数,并通过构造命令处理函数#defineCIRRUS_STX2//命令开始标志库,完成对串口的命令读写以及命令的显示,实现串口通信。#defineCIRRUS_ETX3//命令结束标志#defineADDITION5//基本命令以外的命令符长度2主机和红外相机通信协议#defineport4//定义端口通信端口参数:波特率:9600-57600;奇偶校验:None;数据位:在PComm.h中的预定义:8;停止位:1#defi
8、neSIO_OK0/*errorcode*/命令包的