《基于C语言的数据通信接口软件设计.docx》由会员分享,可在线阅读,更多相关《基于C语言的数据通信接口软件设计.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于C语言的数据通信接口软件设计 摘要:该文从C程序设计语言的特点动身,论述了自动测量系统中数据通信接口的软件开发方法,实现了GPIB接口的初始化,数据接收,数据处理,数据发送的功能。 关键词:GPIB;DLL调用;程控 中图分类号:TP311文献标识码:A文章编号:1019-3044(2022)02-0335-03 Software C-based Design for Data Communication Interface DU Fu-peng, RUAN Bin (92493 Army 89 Unit, Huludao 125000, China) Abstract: This art
2、icle from the C programming language characteristics, discusses the automatic measurement system, data communication interface of the software development methodology, to achieve a GPIB interface initialization, data reception, data processing, data transmis? sion functions. Key words: GPIB; DLL cal
3、ls; program-controled 依据GPIB总线的特点和GPIB接口在仪器仪表中的广泛应用,系统采纳D7310C和75160BN,75161BN实现了GPIB接口电路,接口电路实现了双向、异步、精确牢靠的数据通信任务。软件部分设计主要用到的是GPIB的WIN32API函数驱动库。通过DLL调用技术可以完成API函数库封装的对GPIB设备初始化、读取数据、写入数据或吩咐以及清除等各种限制操作。 1数据通信接口实现 依据GPIB接口特点,采纳D7310C和75160BN,75161BN芯片根据如下电路可以实现计算机与仪器与测量系统间的数据通信。 图1数据通信接口电路 2对GPIB接口的
4、初始化方法 void gpib_init()/gpib初始化 XBYTE0x0500=0x02;/芯片复位 XBYTE0x0500=0x2c;/置位外部计数发生器 XBYTE0x0500=0x8c;/设置为8bits数据传送 XBYTE0x0500=0xa8;/低电平中断 XBYTE0x0500=0xc0;/进入打算 XBYTE0x0101=0x03;/设输入输出产生中断 XBYTE0x0400=0x31;/设受命方式为1 XBYTE0x0600=0x20;/设程控地址 XBYTE0x0600=0xc0;/设程控地址为15 XBYTE0x0730=0x0a;/设结束字符为“0x0a” XBYT
5、E0x0500=0;/马上执行,产生本地消息 3数据接收函数 void rec488()/数据接收 char idata tem48,tem88; char idata i,j; tem48=XBYTE0x0101; if(tem48&0x08)=0x08)/产生器件清除中断 ;/不执行任何指令 else if(tem48&0x04)=0x04)/出错中断 XBYTE0x0101=0x08;/器件清除 return; else if(tem48&0x01)=0x01)/收到数据,将数据存到pdtem数组 i=0; for(j=0;j18;j+) pdtemj=0; tem88=XBYTE0x0
6、000; while(tem88!=0x0a)/遇到结束符0x0a则接收完毕 pdtemi=tem88; i+; tem48=XBYTE0x0101; while(tem48&0x01)!=0x01) tem48=XBYTE0x0101; tem88=XBYTE0x0000; strjudge();/接收完毕进入数据处理程序 4数据处理函数 void strjudge()/数据处理 if(strncmp(pdtem,data,4)=0)/推断接收到的指令(假如前四个字符为data0) /执行相应操作 send_data(pdtem);/将要返回的字符放到pdtem数组,发送到计算机接收 5数据
7、发送函数 void send_data(char temp64)/数据发送 uchar i; i=0; do tem88=XBYTE0x0101; while(tem88&0x02)!=0x02) tem88=XBYTE0x0101; XBYTE0x0000=pdtemi; i+; while(pdtemi-1!=0x0a);/遇到结束符0x0a则发送完毕 while(tem88=XBYTE0x0101)&0x02)=0x02); /防止输出中断未清除,这句可以不加 6结论 通过编程软件实现了接口的初始化,数据的接收,数据的处理和数据的发送基本功能,在软件平台下调用板卡厂商供应的DLL对操作系
8、统API函数的调用。API函数包含在附加名为DLL的动态连接库文件中,API函数可以做到许多的功能。因此,可以通过调用DLL的方法来调用各种API函数,来实现各种任务。 参考文献: 1李宗阳.时间频率计量M.北京:原子能出版社,2002:88-101. 2季海峰.基于虚拟仪器测试系统的PCI-GPIB限制器的设计和探讨M.南京:南京理工高校,2022:23-30.2 Lippman S B.C+Primer中文版M.李师贤,译.4版.北京:人民邮电出版社,2022. 3冯宏华.C+应用程序性能优化M.北京:电子工业出版社,2022. 4钱能.C+程序设计教程M.北京:清华高校出版社,11019. 第6页 共6页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页