计算机主机有gpib接口吗,PC104模块与通用并行接口(GPIB)通讯的实现
摘要: 本文介绍了基于Windows CE 的PC104模块与基于MCS51单片机的GPIB接口构成自动测试仪器的实现方法,其中GPIB接口与单片机间的数据传输和PC104模块与单片机之间的串行通信是系统实现的关键。本文详细介绍了整个系统的软件与硬件设计。
关键词:GPIB接口;PC104;Windows CE;串行通信;多线程
1 引言
目前,先进的嵌入式工业计算机PC104,以其优良的品质、高可靠性及模块化。广泛应用于工业控制、航空航天、智能仪器仪表、通信数控、自动化生产设备、数据采集、便携式计算机等领域。在PC104模块上一般运行实时操作系统(RTOS),Windows CE是一紧凑、高效和可扩展的操作系统,它是面向32位移动智能设备的模块化抢先式多任务实时嵌入式操作系统。基于Windows CE的PC104模块能够方便快速构建新一代内存少体积小的智能设备。而GPIB总线又称IEEE-488总线标准,是组建自动测试系统的通用国际标准接口。作为一种用途广、功能强的8位数据通道并行接口标准,特别适用于实时控制与快速数据采集等场合。随着通用并行接口的发展与测量自动化上的广泛应用,为了使仪器能够与装配有GPIB接口的仪器构成自动测试系统,GPIB接口是必不可少的。本文首先介绍如何将GPIB接口与PC104模块进行硬件连接,然后讲述了单片机中进行数据转换的软件编程思路和Windows CE下的串行口软件编程方法。
2 硬件实现
用MCS-51单片机对来自PC104模块的串口信号和来自通用接口电路上的数据进行转发是本系统的关键。通用接口电路由GPIB接口芯片和信号驱动芯片构成,常用的GPIB接口转换芯片有几种,如MC68488,intel 8291、8292、8293及PD7210等,本文以intel 8291为例介绍数据转换的方法。
利用单片机的串口,将接收到的由PC104计算机发出的来自串行接口芯片的GPIB命令,按IEEE488的规则,通过GPIB接口芯片发送到GPIB总线,并将从总线上接收到的数据从接口芯片中取回,经由串行接口芯片发送到PC104模块上的RS-232C串口。其硬件框图如图1所示:
图1 :GPIB接口转RS232接口硬件框图
3 软件设计
3.1 MCS-51单片机的GPIB接口通信编程
这部分的软件编程主要是实现将RS-232接口收到的命令转化为IEEE488接口的命令,即按IEEE488的规则将命令送出,同时将从IEEE488接口传来的数据转发至串口。
① 设备初始化
为了接口芯片的正常工作,需要正确地初始化GPIB接口芯片。a.系统复位,发送本地芯片复位命令;b.设置设备地址;c.设置系统时钟;d.设置中断条件;e.设置数据接收发送条件;f.设置数据接收应答模式;e.发出立即执行命令。还要设置串口通信方式如下,1位起始位,8位数据位,1位停止位,无奇偶校验,波特率38400bit/s。传输数据采用ASCII模式。指令形式的格式为“SYN****@”,其中‘SYN’和 ‘@’ 分别表明该指令的起始和结束,‘****’为指令内容。
② 基本功能的实现
下面讲述了将GPIB接口信号转发到串口的方法,从串口到GPIB接口数据的传输可以用类似的方法实现。对来自GPIB总线上的信号接收采用中断方式,并在收到停止位时置位结束标志,以通知主程序进行串口数据发送。中断接收子程序的软件流程如图2所示
图2 GPIB接收中断子程序
当主程序根据结束标志检测到有新的来自GPIB总线上的数据时,通过串行口将数据发送到RS232总线上由PC104接收。在没有检测到结束标志时主程序处于等待状态。其软件流程图如图3所示:
图3:主程序流程图
3.2 Windows CE 下PC104模块的串口通信编程
Windows CE打开与关闭串口设备与打开与关闭文件的操作相同,所以串口编程使用与文件I/O操作完全相同的函数,即使用文件I/O函数CreateFile、ReadFile、WriteFile、CloseHandle访问串口。用CreateFile打开串口,一旦串口被打开和配置后就可以用WriteFile向串口发送数据,也可以用ReadFile从串口读出数据。由于Windows CE 下只支持同步文件访问,不支持重叠I/O。使用多线程管理串口通信可以充分利用资源,提高数据处理速度。创建线程监听串口并使用消息传递机制通知串口处理函数读取接收缓冲区的数据。
PC104串口通信的基本步骤如下:
使用SetupComm函数设置参数设备参数,读写缓冲区大小。SetCommMask函数设定监视事件EV_RXCHAR,该事件表示接受到任何字符并放进接受缓冲区。SetCommTimeouts函数设置时间超时间隔与总超时时间,将时间超时间隔设为最大,把总超时设为0,导致ReadFile立即返回并完成操作。通过设置超时时间,将需要等待的读写操作阻塞在驱动程序内部的事件对象中,节省了在串行发送和接收操作中的CPU资源。用SetCommState函数将DCB结构重新配置于串口设备。
③ 如果成功设置串口,启动监视器串口线程,线程函数为CommProc,并将当前指针This作为参数传给CommProc,启动线程的方法如下:
4 结论
PC104上的串口通信程序在上位机中使用Embeded Visual C++3.0编写,并下载到安装有Windows CE的目标机PC104中,按图1将系统连接好,并将GPIB接口连到装有GPIB板卡的主控计算机。运行串口通信程序,并在主控计算机中运行控制程序,PC104模块与主控计算机间通过GPIB总线进行正常通信。采用这种硬件和软件设计方式构成的测控系统能够应用于各种仪器和装置中,并且具有设计简单、操作方便、通信可靠等优点,非常适合各种自动测试系统。
计算机主机有gpib接口吗,PC104模块与通用并行接口(GPIB)通讯的实现相关推荐
- 计算机主机有gpib接口吗,什么是gpib_gpib接口
描述 Hewlett Packard在60年代末发明了通用接口总线,或简称为GPIB,使得在电脑和仪器之间的通信得以轻松实现.总线并不是简单的指在电脑和仪器间传输数据,GPIB提供了一种非常必要的规范 ...
- 龙邱 MPU9250 模块接口 | 基于ESP32模块
简 介: 制作了MPU9250的转接接口,并利用舵机带动起旋转测量了模块测量角度功能. 关键词: MPU9250,ESP32 #mermaid-svg-dGY7dbxoXuc3EI5H {font-f ...
- 【VC++技术杂谈005】如何与程控仪器通过GPIB接口进行通信
在工控测试系统中,经常需要使用到各类程控仪器,这些程控仪器通常具有GPIB.LAN.USB等硬件接口,计算机通过这些接口能够与其通信,从而实现自动测量.数据采集.数据分析和数据处理等操作.本文主要介绍 ...
- Python接口自动化-requests模块之post请求
------·今天距2021年262天·------ 这是ITester软件测试小栈第111次推文 在上一篇Python接口自动化测试系列文章:Python接口自动化-requests模块之get请求 ...
- 【Esp32】Esp32+sx1268 Spi接口驱动SX1268模块
[Esp32]Spi接口驱动SX1268模块 0. 实验结果 1.原理解析 2.硬件接线 3. SX1268 模块的 SPI 时序分析 4. 基于 ESP32 实现函数封装 4.1 读寄存器 4.2 ...
- 股票交易接口的编程模块
股票交易接口的编程模块:可同时实现多个实盘账户对交易子账户的正向.反向和多重编程效果.API参数模块:单个交易员可以设置不同的API保证金和交易服务费.风控管理模块:每个交易员可以进行不同的风控设置, ...
- 什么是GPIB接口?
GPIB是一种有点古老的接口,现在基本只能在一些电子测试仪表上还能见到,主要用来连接电子仪器仪表.GPIB的全称是General Purpose Interface Bus,它是一种总线接口. 百度百 ...
- 如何与程控仪器通过GPIB接口进行通信
在工控测试系统中,经常需要使用到各类程控仪器,这些程控仪器通常具有GPIB.LAN.USB等硬件接口,计算机通过这些接口能够与其通信,从而实现自动测量.数据采集.数据分析和数据处理等操作.本文主要介绍 ...
- agilent仪表的GPIB接口
1.GPIB标准 GPIB(General-Purpose Interface Bus)--通用接口总线,有两种标准:IEEE488和IEC625.GPIB标准包括接口与总线两部分:接口部分是由各种逻 ...
- 5G元年,让老旧款式电脑用上5G之无线网卡mininpcie接口转5G模块
5G元年,让老旧款式电脑用上5G之无线网卡mininpcie接口转接5G模块 -----仕和技术(tb) 主板上用于安装无线网卡的mininpcie接口,是有PCIE1x和usb2.0线路的.而m2- ...
最新文章
- 怎么开启JavaScript ?
- 中国联轴器行业发展态势分析及十四五规划建议报告2021-2027年
- 各种编码范围总结以及linux下面的编码批量转化
- FinalTest 基于web的登录口令修改设计
- 电脑公司win11旗舰版32位镜像v2021.07
- C语言中定义整形可以连等吗,关于一道分解整数为N个连数整数的编程题
- linux-shell-变量参数
- 5 Java NIO Scatter 与Gather-翻译
- 几款用于电能质量测量的芯片
- centos6查看运行服务器,centos如何查看端口是否开放_网站服务器运行维护,centos,端口...
- Rust、D、Go三者的Pk1
- 《炒股的智慧》第8节文摘
- db2 修改表空间自增长_db2自动调整表空间的大小 - 木子日京的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- 手电筒安卓_安利一款演唱会必备APP——随手电筒
- 什么?你还没女伴?教你如何借助Python俘获女孩子芳心
- 领导“驭人9术”,厚黑但实用,掌握了,不管什么下属都能摆平
- 天线辐射电磁波的原理
- 深度学习中图像标注工具整理
- 蚂蚁金服上市,还想撬动杭州和北京房价?
- 计算机文档教案范文,优秀计算机教案模板.doc
热门文章
- 纠删码:定义及常见类型
- 在线预览PDF(pdfobject)
- C语言 55555图形 找车牌问题
- SpringBoot邮箱注册验证
- 化工材料企业中英双语网站搭建模板
- 惠普局域网共享打印机设置_打印机共享怎么设置 惠普打印机共享设置步骤介绍【详解】...
- #(最新最全)PDB(Protein Data Bank)数据格式详解
- 电商营销方式抢购,秒杀Redis原子减decr方法作为剩余库存判断条件的实现方式(1)
- 机器学习识别电子数字-制作字体文件
- 前皮克斯动画大神卡洛斯·巴埃纳独家创作经验分享(V客学院知识分享)