《第六章基于PC机的智能仪器仪表接口设计》由会员分享,可在线阅读,更多相关《第六章基于PC机的智能仪器仪表接口设计(63页珍藏版)》请在金锄头文库上搜索。
1、第六章 基于PC机的智能仪器仪表接口设计z主要内容y6.1 IBM PC/AT概述y6.2 PC/AT系统总线的扩充 ()y6.3 GAL译码技术 ()y6.4 PC/AT总线驱动y6.5 PC机软件设计 y6.6 PC机串口技术 ()y6.7PC机并行打印口 ()y6.8 并行通讯接口(GPIB) PC机机接口技术(续)6.1 IBM PC/AT概述z主要内容y6.1.1 扩充槽 (图片)y6.1.2 存储器空间和I/O地址分配6.1.1 扩充槽 (图片)z PC1046.1.2 存储器空间和I/O地址分配z存储器空间分配;z系统硬件内存分配方法;zMEM接口的寻址方法;zI/O地址分配;z
2、I/O接口的寻址方法;z (详细)存储器空间分配存储器空间分配z 系统硬件内存分配方法系统硬件内存分配方法z若需预先保留0D0000H0DFFFFH区域的内存,方法如下:z1.使DOS不占用z在系统CONFIG.SYS文件中加入:zDevice=c:dosEMM386.EXEX=d000-dfffz2.使WINDOWS不占用z在WINDOWS的SYSTEM.INI文件中加入:(2K长为一个单元)z386EnhzEMMExclude=d000-d7ffzEMMExclude=d800-dfffMEMMEM接口的寻址方法接口的寻址方法z1.在DOS下,如需要对0E0001H单元进行操作,则对应地址
3、应写成:0XE0000001(E000:0001H)zTemp=(BYTEfar*)0XE0000001;z写:*Temp=data;读:data=*Temp;z2.用VC5.0编程z如需要对0D0000H单元进行操作,则对应操作地址为其自身。zpt=(unsignedshort*)0x000d0000;z写:*pt=data;读:data=*pt;z3.VB可以通过调用VC编写的DLL来读写MEM。zVB调用DLL有16/32位系统之分。I/OI/O地地址址分分配配I/OI/O接口的寻址方法接口的寻址方法z1.汇编语言:写:MOVAL,10000000BzMOVDX,3FBHzOUT DX,
4、ALz读:MOV DX,3FDHzINAL,DXz2.BASIC写:OUT(&H3FB,&H80)z读:A=INP(&H3FD)z3.C语音写:OUTPORTB(0X3FB,0X80)z读:A=INPORTB(0X3FD)6.2 PC/AT系统总线的扩充z主要内容y6.2.1 PC/AT I/O扩展插槽脚原理图;()y6.2.2 PC/AT总线引脚的功能定义;y6.2.3 I/O和MEM扩展的地址译码逻辑;()6.2.1 PC/AT I/O扩展插槽原理图6.2.3 I/O和MEM扩展的地址译码逻辑一、I/O地址译码zmoduleSDC96ztitleSui-daochedecodeofpczc
5、:sdsdc96.abl16April1997zsdc96deviceP16V8S;zSAEN,SA9,SA8,SA7,SA6pin1,2,3,4,5;zSA5,SA4,SRD,SWR,SA3pin6,7,8,9,11;zPCEN,PCS1pin12,13;zH,L,X=1,0,.X.;zA=SA9,SA8,SA7,SA6,SA5,SA4,SA3,X,X,X;zEQUATIONSz!PCEN=(!SRD#!SWR)&!SAEN&(A=H200)&(A=H200)&(A=HE0000)&(A=HE0000)&(A=HE0000)&(A=HE0000)&(A=HE0000)&(A=H200)&(A
6、=H200)&(A=H27F);z end SDC96 /和module构成完整模块ABEL语言符号定义z一逻辑运算符z!A取二进制反码A&B与A#B或zA$B异或A!$B同或z二算术预算符z-A取二进制补码A-B减法A+B加法zA*B乘法A/B无符号整除A%B取模zABA右移B位z三关系运算符zA=B等于A!=B不等于AB小于zAB大于A=B大于等于z四优先级z-!&*/%+-#$!$=!=6.3.4 6.3.4 写入设备写入设备z可利用编程器将编译好的程序写入GAL之中,编程器可用ALL03/07等,调入ABEL语言生成的*.JED文件.ALL07图片z 6.4 PC/AT总线驱动z地址和
7、控制总线驱动器z数据总线驱动器6.5 PC机软件设计z主要内容y6.5.1 VB和VC+的关系y6.5.2 动态链接库DLLy6.5.3 WIN32 APIy6.5.4 用VC编写WIN32S下的DLLy6.5.5 VB对DLL的调用 ()6.5.5 VB对DLL的调用 ()z对于DLL中的过程,Declare语句的完整语法如下:zPublic | PrivateDeclare Sub name Lib”libname”“Alias aliasname”(arglist)z对于DLL中的函数,Declare语句的完整语法如下:zPublic | PrivateDeclare Function
8、name Lib”libname”“Alias aliasname”(arglist)As typez例如:zDeclare Function inpt Lib c:vbio32debugvbio32.dll Alias VBINPORTBYTE32 (ByVal port As Integer) As BytezDeclare Sub outpt Lib c:vbio32debugvbio32.dll Alias VBOUTPORTBYTE32 (ByVal port As Integer, ByVal databyte As Byte)VB对DLL的调用 (续)zDeclare Funct
9、ion SETMPEG Lib c:jnvisualtrainmpegdll.dll Alias SETPICDLLMODE (ByVal ff As String, mode As picdllmode) As LongzType picdllmodez FileNum As Bytez FileAdd As Longz FrameSpeed As Longz SignalNum As Longz PlayStatus As Bytez realspeed As Longz limitspeed As Longz distance As Longz Realtime_hour As Long
10、z Realtime_minute As Longz Realtime_second As Longz StartStop As Bytez ForBack As BytezEnd TypeVB对DLL的调用 (续)z数据类型对照表:(自动获取WINAPI调用声明演示) 6.6 PC机串口技术()z主要内容y6.6.1 PC机串口的引脚定义信号线的定义y6.6.2 逻辑电平变换y6.6.3 8250串行接口芯片y6.6.4 利用VB的MSCOMM控件来控制PC机的串行通讯6.6.1 PC机串口的引脚定义信号线的定义z14881488、148914896.6.3 逻辑电平变换MAX232MAX2
11、32单单5V供电,供电,完成完成TTL和和EIA电平互换电平互换双路串行口双路串行口 4 4个电解电容个电解电容及其极性连接及其极性连接要正确要正确 逻辑电平变换(续)6.6.3 8250串行接口芯片(详细)z1. 通讯线控制寄存器(3FBH)zD1、D0:字符代码的长度 005位 016位 107位 118位zD2:停止位数目 01位 11.5位(字符长度为5位时)2位(字符长度为6、7、8位时)zD3:奇偶校验 0无 1有zD4:奇偶校验类型 0奇 1偶校验zD5:附着奇偶校验 0该位无效 1奇偶校验位恒为1(若D3=1、D4=0)z 奇偶校验位恒为0(若D3=1、D4=1)z 无奇偶校验
12、位 (若D3=0)zD6:间断位设置 0无效 1强迫连续输出空白状态(逻辑0电平)zD7:寻址位 0正常值 1寻址波特率除数寄存器2. 通讯线状态寄存器(3FDH)z相应位为1则存在该状态zD0:接收数据就绪(接收数据前查之,为“1”则表明接收到了新的数据)zD1:超越错zD2:奇偶错zD3:格式错zD4:间断检测zD5:发送保持寄存器空(发送前查之,为“1”则表明可以向3F8再次写入新的待发数据)zD6:发送移位寄存器空zD7:恒为0z3. 数据发送保持寄存器(同时也为接收数据保持寄存器)(3F8H)z其中D0位为发送数据的第一位,即低位在前发送。zz4. 接收数据保持寄存器(3F8H)z其
13、中D0位为接收的第一位。zz5. 除数锁存器(3F8H/3F9H)z除数=zzBAUDRATE3F9H3F8Hz3000180Hz12000060Hz24000030Hz48000018Hz9600000CHz6. 中断允许寄存器(3F9H)zD0:允许接收数据就绪中断zD1:允许发送保持寄存器空中断zD2:允许接收字符错中断zD3:允许改变MODEM状态中断zz7. MODEM控制寄存器(3FCH)zD0: 1DTR信号有效zD1: 1RTS信号有效二串行口二串行口8250初始化初始化 OUT (&H2FB), &H80 寻址波特率寄存器zOUT (&H2F8), &HC &h000CBTS
14、=9600zOUT (&H2F9), 0 zOUT (&H2FB), 3数据类型 8位 1个停止位 无奇偶校验zOUT (&H2FC), 3DTR和RTS有效信号zOUT (&H2F9), 0非中断模式三串行口查询发送数据三串行口查询发送数据zFSSJDD:k=INP(&H2FD)zk1=kAND&H20zIFk1=&H20THENzOUT(&H2F8),a(i)zELSEzGOTOFSSJDDzENDIF四串行口查询接收数据四串行口查询接收数据zJSSJDD:k=INP(&H2FD)zk2=kAND&H1zIFk2=&H1THENzb=INP(&H2F8)zELSEzGOTOJSSJDDzE
15、NDIF6.6.5 利用VB的MSCOMM控件来控制PC机的串行通讯 z一一MSCOMM 控件控件及其及其属性属性设计设计如图如图所示所示 二二发发送送软软件件的的编编写写PrivateSubtimComm_Timer()zyhz=out_Buffer(0)zFori=1To31zyhz=yhzXorout_Buffer(i)zNextizout_Buffer(32)=yhzzsurpluxonetotrigtheoverflowzout_Buffer(33)=&H66ztemp_Buffer=out_BufferzMSComm.InputLen=0Opentheport.zMSComm.Po
16、rtOpen=TrueSendtheattentioncommandtothemodem.zfrmComm.MSComm.Output=temp_BufferzfrmComm.MSComm.PortOpen=FalsezEndSubDimtemp_BufferAsVariant三利用三利用MSCOMM中断接收数据中断接收数据 zPrivateSubMSComm_OnComm()zSelectCaseMSComm.CommEventzCasecomEventRxOverReceivebufferoverflow.zIfCommVerify=FalseThen如果校验不对,则再次初始化串口zMSC
17、omm.PortOpen=FalsezMSComm.InputLen=0zMSComm.PortOpen=TruezElsez处理接收到的有效数据zEndIfzEndSelectzEndSub三利用三利用MSCOMM中断接收数据(续)中断接收数据(续)z接收校核程序zFunctionCommVerify()AsBooleanzDimtemp_BufferAsVariantzDimiAsInteger,ttAsBytezDimkkAsSingleztemp_Buffer=frmTest.MSComm.InputzCommBuffer=temp_Bufferztt=CommBuffer(0)zFo
18、ri=1To31ztt=ttXorCommBuffer(i)zNextizIfttCommBuffer(32)ThenzCommVerify=FalsezElseIfFirstComm=TrueThenzEndIfzEndFunction6.7 PC机并行打印口z主要内容y6.7.1 打印机接口“标准”y6.7.2 IBM PC打印机接口y6.7.3 IBMPC打印机接口编程和系统子程序调用y6.7.4 IBMPC并行接口I/O口的扩展6.7.2 IBM PC打印机接口每个打印接口的基本口地址z数据状态控制zLPT1:378H379H37AHzLPT2:278H279H27AHzLPT3:3B
19、CH3BDH3BEHz直接编程,和单片机打印接口编程相同zPC机系统软件DOS和BIOS为用户准备有打印机驱动子程序可调用z(自学)6.7.3 IBMPC打印机接口编程和系统子程序调用6.7.4 6.7.4 IBMPCIBMPC并行接口并行接口I/OI/O口的扩展口的扩展74LS157扩展输入口线48IBMIBMPCPC并并行行接接口口I/OI/O口口的的扩扩展展PIN17SLCTIN选择PRINT或其它不清楚仅不清楚仅为示意图为示意图6.8 6.8 并行通讯接口并行通讯接口(GPIBGPIB)z主要内容y6.8.1 IEEE488标准(GPIB标准)y6.8.2 基本接口功能要素y6.8.3
20、 消息及其编码y6.8.4 接口功能y6.8.5 总线结构y6.8.6 三线挂钩原理6.8.1 IEEE488标准(GPIB标准) 图6.13 总线引脚与信号线关系6.8.2 基本接口功能要素z控者,对系统进行控制的设备。发出各种命令、地址,及接收其它仪器发来的信息z讲者,产生和向总线发送仪器消息(即测量数据和状态信息)的设备。一个系统中可以有二个以上的讲者,但在每一时刻只能有一个讲者在工作z听者,是接收总线上传来的数据的设备6.8.3 消息及其编码z接口消息z仪器消息z单线消息z多线消息z远地消息z本地消息6.8.4 接口功能z讲者功能,简称为讲功能(T功能)z听者功能,简称为听功能(L功能
21、)z源挂钩功能,简称为SH功能z受者挂钩功能,简称为AH功能z控者功能,简称C功能接口功能(续)z服务请求功能,简称为SR功能z并行点名功能,简称为PP功能z远控/本控功能,简称R/L功能z仪器触发功能,简称为DT功能z仪器清除功能,简称DC功能6.8.5 总线结构z数据输入输出线(DIOlDI08)z挂钩线z接口管理线6.8.6 三线挂钩原理三线挂钩原理(续)z总线工作过程(详细)6.8.7 GPIB接口实现和GPIB集成电路zGPIB接口实现方法:z1.硬连接线逻辑法z2.软件法z3.LSI芯片法本章小结z本章内容大家以前可能接触较少,希望大家课下多参考相关的资料,进一步熟悉基于PC机的智能仪器仪表设计;z本章内容比较杂,主要包括:PC机总线扩展、PC机传并口的应用、GAL译码技术等。本章作业z课下阅读相关章节以及其他相关资料。