第八章 数字io

合集下载

第8章IO设备习题参考解答-汇编语言与计算机组成原理 答案

第8章IO设备习题参考解答-汇编语言与计算机组成原理 答案

第8章思考题与习题参考答案1.按功能分类,可以将外部设备分为哪几类?答:按功能分类,可以将外部设备分为输入设备、输出设备、外存、终端设备和其他外部设备。

2.输入和输出设备通常通过什么与主机相连?答:输入和输出设备通常通过输入输出接口与主机相连。

3.解释下列名词:调用界面、设备驱动程序、设备控制程序。

答:调用界面一般由操作系统提供。

操作系统屏蔽了各类外设的控制细节,提供了统一且方便的操作界面,便于用户编写I/O程序。

例如,早期的DOS系统设置了一组系统功能调用。

目前使用的Windows系统则提供了一组API(Application Programming Interface,即应用程序接口——Windows系统提供给用户进行系统编程和外设控制的强大的函数库)。

设备驱动程序是管理某个外围设备的一段代码,它负责传送数据、控制特定类型的物理设备的操作,包括开始和完成IO操作,处理中断和执行设备要求的任何错误处理。

设备控制程序就是驱动程序中的具体的对设备进行控制的程序。

设备控制程序通过接口控制逻辑电路,发出控制命令字。

4.键盘上的按键起一个开关的作用,所以又称为键开关。

键开关分为哪几类?答:键开关分为接触式和非接触式两大类。

5.以图8.2为例,描述非编码键盘的工作过程。

答:PC/XT非编码键盘接口的工作过程如下:①初始化:主机发出复位信号,禁止键盘送出键码,同时复位键盘接口中的移位寄存器和中断请求触发器,为接收键码做准备。

②键盘进行行列扫描:键盘中的8048单片机执行行列扫描程序,获取按键的扫描键码。

8048中有一个20字节的缓冲区,可以暂存20个扫描键码,以免高速按键时主机来不及处理。

8048的扫描程序还具有重键处理、去抖动、延时自动连发等功能。

③送出键码,发中断请求:主机撤消复位信号后,8048单片机送出键码。

键码由一个标志位和8个数据位组成,在键盘时钟信号控制下串行输出。

接口收到键码后发出中断请求信号。

这是一份很全很全的IO基础知识与概念

这是一份很全很全的IO基础知识与概念

这是一份很全很全的IO基础知识与概念什么是 IO在计算机操作系统中,所谓的I/O就是输入(Input)和输出(Output),也可以理解为读(Read)和写(Write),针对不同的对象,I/O模式可以划分为磁盘IO模型和网络IO模型。

IO操作会涉及到用户空间和内核空间的转换,先来理解以下规则:•内存空间分为用户空间和内核空间,也称为用户缓冲区和内核缓冲区;•用户的应用程序不能直接操作内核空间,需要将数据从内核空间拷贝到用户空间才能使用;•无论是read操作,还是write操作,都只能在内核空间里执行;•磁盘IO和网络IO请求加载到内存的数据都是先放在内核空间的;再来看看所谓的读(Read)和写(Write)操作:•读操作:操作系统检查内核缓冲区有没有需要的数据,如果内核缓冲区已经有需要的数据了,那么就直接把内核空间的数据copy到用户空间,供用户的应用程序使用。

如果内核缓冲区没有需要的数据,对于磁盘IO,直接从磁盘中读取到内核缓冲区(这个过程可以不需要cpu参与)。

而对于网络IO,应用程序需要等待客户端发送数据,如果客户端还没有发送数据,对应的应用程序将会被阻塞,直到客户端发送了数据,该应用程序才会被唤醒,从Socket协议找中读取客户端发送的数据到内核空间,然后把内核空间的数据copy到用户空间,供应用程序使用。

•写操作:用户的应用程序将数据从用户空间copy到内核空间的缓冲区中(如果用户空间没有相应的数据,则需要从磁盘—>内核缓冲区—>用户缓冲区依次读取),这时对用户程序来说写操作就已经完成,至于什么时候再写到磁盘或通过网络发送出去,由操作系统决定。

除非应用程序显示地调用了sync 命令,立即把数据写入磁盘,或执行flush()方法,通过网络把数据发送出去。

•绝大多数磁盘IO和网络IO的读写操作都是上述过程,除了后面要讲到的零拷贝IO。

用户空间&内核空间野生程序员对于这个概念可能比较陌生,这其实是Linux 操作系统中的概念。

io知识点总结

io知识点总结

io知识点总结什么是IO?IO(Input/Output)是指计算机与外部设备(如磁盘、网络等)之间的数据传输。

在计算机科学中,IO是指任何将数据从一个地方移动到另一个地方的过程。

输入是指从外部设备到计算机,输出是指从计算机到外部设备。

IO是处理器与外部世界交互的方式。

输入可以是用户输入、文件、网络数据等,输出可以是显示到屏幕上、保存到文件中、发送到网络等。

常见的IO设备有磁盘、键盘、鼠标、打印机、显示器、网络接口等。

在计算机编程中,IO是一个重要的概念。

程序需要从外部设备读取数据,处理数据,然后将结果输出到外部设备。

因此,理解IO的原理和使用方法对编程非常重要。

IO的分类IO可分为同步IO和异步IO两种模式。

同步IO是指程序在进行IO操作时会阻塞,直到操作完成才会继续进行下一步操作,而异步IO是指程序进行IO操作时不会阻塞,可以继续进行其他操作。

同步IO的优点是简单易用,适合于简单的IO操作,但缺点是效率不高。

异步IO的优点是效率高,适合于大量的IO操作,但缺点是复杂度高,使用起来较为困难。

IO通常又可以分为文件IO和网络IO两种类型。

文件IO是指程序与文件进行数据交换,包括读取文件、写入文件、修改文件等操作。

网络IO是指程序与网络进行数据交换,包括发送数据、接收数据、建立连接、断开连接等操作。

文件IO和网络IO在使用上有一些不同,但原理都是类似的。

在进行IO操作时,程序需要打开文件或建立网络连接,然后读取或写入数据,最后关闭文件或断开连接。

IO的基本操作在进行IO操作时,通常需要进行如下几个基本步骤:1. 打开文件或建立连接:首先需要使用适当的函数或方法打开文件或建立连接。

在文件IO 中,通常使用open()函数,而在网络IO中,通常使用socket库来创建套接字并连接到网络。

2. 读取数据或写入数据:一旦打开文件或建立连接,就可以进行数据的读取或写入操作。

在文件IO中,可以使用read()函数读取数据,write()函数写入数据;而在网络IO中,可以使用recv()函数接收数据,send()函数发送数据。

第八章 数模、模数转换器

第八章 数模、模数转换器

上一页 下一页 返回
A/D转换器 8.2 A/D转换器
用二进制代码来表示各个量化电平的过程叫做编码。 用二进制代码来表示各个量化电平的过程叫做编码。 由于数字量的位数有限,一个n位的二进制数只能表示2 由于数字量的位数有限,一个n位的二进制数只能表示2n 个值,因而任何一个采样-保持信号的幅值, 个值,因而任何一个采样-保持信号的幅值,只能近似地逼近 某一个离散的数字量。 某一个离散的数字量。因此在量化过程中不可避免的会产生 误差,通常把这种误差称为量化误差。显然,在量化过程中, 误差,通常把这种误差称为量化误差。显然,在量化过程中, 量化级分得越多,量化误差就越小。 量化级分得越多,量化误差就越小。
上一页 下一页 返回
A/D转换器 8.2 A/D转换器
3.逐次逼近型模-数转换器 逐次逼近型模逐次逼近型模-数转换器一般由顺序脉冲发生器、 逐次逼近型模-数转换器一般由顺序脉冲发生器、逐次逼 近寄存器、 数转换器和电压比较器等几部分组成, 近寄存器、模-数转换器和电压比较器等几部分组成,其原理 框图如图 12所示 所示。 框图如图8-12所示。 一次转换过程如表 一次转换过程如表8-3和图8-15所示。 15所示。 所示
上一页 下一页 返回
D/A转换器 8.1 D/A转换器
8.1.3 T形电阻网络D/A转换器 T形电阻网络D/A转换器 形电阻网络D/A
为了克服权电阻网络D/A转换器中电阻阻值相差过大的缺 为了克服权电阻网络D/A转换器中电阻阻值相差过大的缺 D/A 点,又研制出了如图8-3所示的T形电阻网络D/A转换器,由R 又研制出了如图 所示的T形电阻网络D/A转换器, D/A转换器 和2R两种阻值的电阻组成T形电阻网络(或称梯形电阻网络) 2R两种阻值的电阻组成T形电阻网络(或称梯形电阻网络) 两种阻值的电阻组成 为集成电路的设计和制作带来了很大方便。网络的输出端接 为集成电路的设计和制作带来了很大方便。 到运算放大器的反相输入端。 到运算放大器的反相输入端。 提高转换速度和减小尖峰脉冲的有效方法是将图 提高转换速度和减小尖峰脉冲的有效方法是将图8-4电路 改成倒T形电阻网络D/A转换电路, D/A转换电路 所示。 改成倒T形电阻网络D/A转换电路,如图8-6所示。

第8章 数字量IO

第8章 数字量IO

退出
DSP芯片图
数字量I/0模块概述
数字量I/0端口寄存器
MCRA
退出
2、 数据和方向控制寄存器
PxDATDIR(x为A~F)共有6个,只有当I/O端口被设置为通用 I/O功能时,数据和方向控制寄存器才起作用。
6个寄存器的格式基本相同,其高8位表示对应的低8位的数 据输入输出方向,低8位表示相应的I/O口的有效逻辑电平。 (1)A组端口PADATDIR
15 A7DIR 7 IOPA7 14 A6DIR 6 IOPA6 13 A5DIR 5 IOPA5 12 A4DIR 4 IOPA4 11 A3DIR 3 IOPA3 10 A2DIR 2 IOPA2 9 A1DIR 1 IOPA1 8 A0DIR 0 IOPA0
1、I/O端口复用控制寄存器
3个I/O端口复用控制寄存器,MCRA(7090h)、MCRB(7092h)、 MCRC(7094h) 1) MCRA复用控制寄存器(控制8个A组、8个B组端口的使用)
位 15 14 13 12 11 名 MACR.15 MACR.14 MACR.13 MACR.12 MACR.11 位 7 6 名 MACR.7 MACR.6 5 MACR.5 4 MACR.4 3 MACR.3 10 MACR.10 9 8 MACR.9 MACR.8 0 MACR.0
CLR CLK
U1 PWM3/IOPB0 PWM4/IOPB1 PWM5/IOPB2 PWM6/IOPB3 T1PWM/T1CMP/IOPB4 T2PWM/T2CMP/IOPB5 TDIRA/IOPB6 TCLKINA/IOPB7 RESET T3PWM/IOPF2 R9 4.7Ka欧
R1~R8 300A欧
当AxDIR=1时,IOPAx位对应的引脚为输出方式;当AxDIR= 0时,IOPAx位对应的引脚为输入方式。 位IOPAx的值表示输入或输出的状态,0表示低电平,1表示 高电平。 退出

数字电子技术第8章存储器与可编程逻辑器件习题及答案

数字电子技术第8章存储器与可编程逻辑器件习题及答案

第8章存储器与可编程逻辑器件8.1存储器概述自测练习1.存储器中可以保存的最小数据单位是()。

(a)位(b)字节(c)字2.指出下列存储器各有多少个基本存储单元?多少存储单元?多少字?字长多少?(a)2K×8位()()()()(b)256×2位()()()()(c)1M×4位()()()()3.ROM是()存储器。

(a)非易失性(b)易失性(c)读/写(d)以字节组织的4.数据通过()存储在存储器中。

(a)读操作(b)启动操作(c)写操作(d)寻址操作5.RAM给定地址中存储的数据在()情况下会丢失。

(a)电源关闭(b)数据从该地址读出(c)在该地址写入数据(d)答案(a)和(c)6.具有256个地址的存储器有()地址线。

(a)256条(b)6条(c)8条(d)16条7.可以存储256字节数据的存储容量是()。

(a)256×1位(b)256×8位(c)1K×4位(d)2K×1位答案:1. a2.(a)2048×8;2048;2048;8(b)512;256;256;2(c)1024×1024×4;1024×1024;1024×1024;43.a4.c5.d6.c7.b8.2随机存取存储器(RAM)自测练习1.动态存储器(DRAM)存储单元是利用()存储信息的,静态存储器(SRAM)存储单元是利用()存储信息的。

2.为了不丢失信息,DRAM必须定期进行()操作。

3.半导体存储器按读、写功能可分成()和()两大类。

4.RAM电路通常由()、()和()三部分组成。

5.6116RAM有()根地址线,()根数据线,其存储容量为()位。

答案:1.栅极电容,触发器2.刷新3.只读存储器,读/写存储器4.地址译码,存储矩阵,读/写控制电路5.11,8,2K×8位8.3 只读存储器(ROM)自测练习1.ROM可分为()、()、()和()几种类型。

第8章(382)

第8章(382)
20
第8章 输入输出 21
第8章 输入输出
2. 缓存数据 例8-2中的文件读写是逐字节进行的,这种方式在读写 大量数据时非常慢。一种改进的方式是将数据积累到一个大 的数据块后再成批地读入或写出,通过减少系统资源的读写 次数来提高程序执行的效率。能够实现这一功能的I/O类包 括BufferedInputStream BufferedOutputStream以及 BufferedReader BufferedWriter。BufferedOutputStream和 BufferedWriter只在缓冲区满或调用flush()方法时才写数据。 缓存流是过滤流,其前端(构造方法参数)必须是一个其他流, 在构造缓存流时,还可以指定缓冲区的大小。
第8章 输入输出 36
第8章 输入输出
一个类只有实现了Serializable接口,其对象才能被串行 化。因此,如果想要串行化某个类的对象,这个类就必须实 现Serializable接口。实际上,Serializable是一个空接口:
public interface Serializable { };
28
第8章 输入输出 29
第8章 输入输出
8.4 RandomAccessFile
流式的输入输出为用户提供一种对数据的顺序访问方式, 容易看到,流中的数据必须按照顺序进行读写。当不需要按 照顺序(随机地) RandomAccessFile 类,以实现对文件的随机读写操作。 RandomAccessFile适用于由大小已知的记录组成的文件,使 用这个类,可以在文件内部向前和向后移动,程序员可以通 过seek()方法指向文件的某处,然后读取或修改记录,文件 中记录的大小可以不同,只要能够确定记录的大小及位置即 可正确读取。

io控制逻辑

io控制逻辑

io控制逻辑IO控制逻辑引言:在计算机系统中,IO(Input/Output)控制逻辑是指负责处理输入和输出操作的模块或组件。

它是计算机系统中非常重要的一部分,负责将计算机与外部设备进行数据交互。

本文将从IO控制逻辑的定义、功能、实现方式以及应用等方面展开阐述。

一、IO控制逻辑的定义IO控制逻辑是指计算机系统中负责控制输入和输出设备的模块或组件。

它通过与外部设备进行通信,实现数据的输入和输出操作。

IO 控制逻辑通常包括输入控制逻辑和输出控制逻辑两部分。

二、IO控制逻辑的功能1. 输入控制逻辑的功能:输入控制逻辑负责接收外部设备传来的数据,并将数据传输到计算机内部。

它需要实时监测外部设备的状态,根据设备的请求进行数据的接收和处理。

输入控制逻辑还需要负责处理数据的格式转换和校验等工作,以确保数据的准确性和完整性。

2. 输出控制逻辑的功能:输出控制逻辑负责将计算机内部的数据传输到外部设备。

它需要根据计算机内部的指令和数据,控制外部设备的工作状态,并将数据按照设备要求进行传输。

输出控制逻辑还需要处理数据的格式转换和缓冲等工作,以适应外部设备的要求。

三、IO控制逻辑的实现方式1. 程序控制方式:程序控制方式是指通过程序对IO控制逻辑进行控制。

在程序中通过特定的指令和参数来实现对IO控制逻辑的操作。

这种方式需要编写专门的驱动程序,以实现与IO控制逻辑的交互。

2. 中断方式:中断方式是指通过中断信号来触发IO控制逻辑的操作。

当外部设备需要进行数据的输入或输出时,会发送中断信号给IO控制逻辑,通知它进行相应的操作。

这种方式能够实现设备与计算机的异步通信,提高系统的并发性能。

3. DMA方式:DMA(Direct Memory Access)方式是指通过DMA控制器来实现对IO控制逻辑的控制。

DMA控制器可以直接访问内存,将数据从外部设备传输到内存或从内存传输到外部设备,减轻了CPU的负担,提高了数据传输的效率。

使用计数器和数字IO:逐步讲解

使用计数器和数字IO:逐步讲解

使用计数器和数字I/O:逐步讲解下面的步骤将计算NI ELVIS(NI Educational Laboratory Virtual Instrumentation Suite) II 设备的计数器引脚所接收的数字脉冲的个数;然后再以二进制格式将数字值输出至设备的数字端口。

此程序需要单刀双掷(SPDT)开关,还有8组330Ω电阻器与8组LED灯。

注意:若是以跳线连接计数器输入引脚,且又连接在DGND之间,则+5 V通道所得的结果将与SPDT开关相同。

1. 将USB DAQ设备连接至电脑1. 可在上搜寻您的设备,即可了解DAQ设备的引脚配置。

2. 用书手册与规格说明也提供此表格。

3. 或在NI Measurement & Automation Explorer (MAX)配置软件中,对该设备按下鼠标右键并选择Device Pinouts。

2. 设定SPDT开关以输出5V脉冲1. 将开关的一端连接至设备的+5V接线端2. 将开关的第二端连接至设备的DGND 接线端3. 将输出极连接至设备的PFI8 (ctr0 SOURCE)3. 再连接电阻器与LED指示灯网络(建议使用面包板,但非必要)1. 分别将8组LED与330Ω电阻器串联起来(电阻器可稳定穿过LED的电流,避免过热)2. 将LED的另一接线端,连接至设备的一个port0/line0接线端3. 电阻器的另一接线端,连接至设备的DGND。

4. 可参阅下图以正确设定LED。

5. 对port0的剩下的lines 1-7与LED,均重复上述步骤。

注意: LED为二极管,因此电流仅能单向流动。

若使用5V电压而并未亮点LED,则可能是因为LED倒装而已,只要反转LED的方向极性即可。

若LED仍然无法发亮,则可能是发生故障或损坏。

4. 在LabVIEW中新建VI1. 打开LabVIEW并选择File»New VI5. 将计数器采集 DAQ Assistant置于程序框图上。

第8章IOServer数据采集系统

第8章IOServer数据采集系统

第八章 IOServer数据采集系统8.1概述KingSCADA的采集系统是指负责和现场设备进行通讯,并采集现场数据和控制现场数据的模块,称之为采集器,也叫IOServer应用。

IOServer应用有设备、变量、链路、网络配置、采集模型、非线性表、存储配置七部分组成。

IOServer依赖于IOServer驱动,通过驱动与IO设备进行通讯。

通讯链路:通讯链路是指计算机通过什么途径和设备进行连接。

链路类别:串口、以太网、OPC。

设备:是通过串口、接口板等方式与KingSCADA的数据采集系统进行数据信息交换的外部数字设备,包括可编程逻辑控制器(PLC)、分布式控制系统(DCS)、回路控制器、远程终端单元(RTU)、智能仪表、板卡、变频器等等。

IOServer运行的时候,可以与OPC服务器、DDE服务器通讯,采集服务器上的数据。

采集系统由服务器、组、数据项组成。

服务器:服务器对象(Server)拥有服务器的所有信息,同时也是组对象(Group)的容器。

组对象(Group)拥有本组的所有信息,同时包容并逻辑组织OPC数据项(Item)。

OPC组:OPC组对象(Group)提供了客户组织数据的一种方法。

客户可对之进行读写,还可设置客户端的数据更新速率。

当服务器缓冲区内数据发生改变时,OPC将向客户发出通知,客户得到通知后再进行必要的处理,而无需浪费大量的时间进行查询。

OPC规范定义了两种组对象:公共组和局部组(私有组)。

公共组由多个客户共有,局部组只隶属于一个OPC客户。

一般说来,客户和服务器的一对连接只需定义一个组对象。

数据项:在每个组对象中,客户可以加入多个OPC数据项(Item)。

8.2新建IOServer应用“新建”是为工程建立一个硬盘中不存在的“IOServer应用”。

在工程设计器的主界面,选择“文件”菜单的“新建工程”选项或工具栏的“新建”按钮,弹出如下图8-1所示的“新建应用”的界面,“新建应用”对话框的详细介绍请参考本手册第二章的2.2.1 新建工程/新建应用中的介绍。

DSP-8章数字IO

DSP-8章数字IO

MCRA0—7定义A口, MCRA8—15定义B口 1:引脚定义为基本功能 0:引脚定义为I/O
I/O口复用控制寄存器A(MCRA)配置 位 0
1 2 3
位的名称
MCRA. 0 MCRA. 1 MCRA. 2 MCRA. 3
基本功能(MCRA.n=1) SCITXD SCIRXD XINT1 CAP1/QEP1
IOSFT_REG .usect .include .def .text CALL LDP LACL AND SACL LACL AND SACL LACL OR SACL LDP SPLK “.data0”,1 “F2407REGS.H” _c_int0
_c_int0 SYSINIT #DP_PF2 MCRA #000FFH MCRA MCRC #0FBFFH MCRC PBDATDIR #0FF00H PBDATDIR #5H #01,IOSFT_REG
引脚
与数字I/O有关的寄存器共有9个,这些寄存器被映射到存储器空间, 地址从7090H到709FH其中保留位是无效的,读时为0,写对它无影响。 数字I/O控制寄存器


存储寄存器
MCRA MCRB MCRC PADATDIR PBDATDIR PCDATDIR PDDATDIR PEDATDIR PFDATDIR
C7 DIR IOPC 7 C6 DIR IOPC 6 C5 DIR IOPC 5 C4 DIR IOPC 4 C3 DIR IOPC 3 C2 DIR IOPC 2 C1 DIR IOPC 1 C0 DIR IOPC 0
7. 端口D数据和方向控制寄存器(PDDATDIR)---地址709Eh
保留位 保留位
A7 DIR IOPA 7 A6 DIR IOPA 6 A5 DIR IOPA 5 A4 DIR IOPA 4 A3 DIR IOPA 3 A2 DIR IOPA 2 A1 DIR IOPA 1 A0 DIR IOPA 0

LABVIEW 数字IO

LABVIEW 数字IO

掌握虚拟仪器数字IO和计数器概念,了解数字IO和计数器子程序的用法。

知识点●立即型 DI/O●定时型DI/O●计数器 VI重点和难点●数字IO子程序的用法●计数器子程序的用法一般数据采集卡上都有DI/O功能,用来实现数据采集的触发、控制及计数等功能。

DI/O 按TTL逻辑电平设计,其逻辑低电平在0到0.7V之间,高电平在3.4到5.0V之间。

数据采集卡上多路(Line)数字 I/O 组成一组后被称为端口(Port)。

一个端口由多少路数字 I/O 组成是依据其采集卡而定的,在大多数情况下4或8路数字 I/O 组成一个端口。

当读写端口时,你可以在同一时刻设置或获取多路DI/O 的状态。

MIO E 系列板卡有8路数字 I/O组成了一个端口,实际使用时这8路可以部分是输入,部分是输出。

第1节数字量输入输出数字量输入输出的应用分为以下两类:立即型(非锁存型)和定时型(锁存型)。

在立即型情况下,当你调用数字 I/O函数后立即更新或读取数字量某一路或端口的状态。

在定时型情况下,你可以使用外部信号来控制数字量数据的传输。

LabVIEW 中关于DI/O的VI也分为低、中、高三个等级。

在以下几个不同的子模板中:Data Acquisition / Digital I/O顶层:用于较简单应用中的Easy I/O VI。

Data Acquisition / Digital I/O底层:是一些属于中级水平应用的VI,主要用于需要时间或握手线方面的数字信号应用。

这些VI可用于单字节数据的传输。

如图9-1 所示的是Data Acquisition /Digital I/O 子模板。

图9-1 DI/O 子模板Data Acquisition / Digital I/O/ Advanced Digital I/O高级水平DI/O VI:可用于作为创建其他数字VI的基本模块。

这些高级数字量VI可用于立即型DI/O和定时型DI/O 。

数字IO实例应用

数字IO实例应用

5.5 数字I/O应用实例5.5.1 使用数字I/O查询输入信号通常可以配置数字I/O位输入或输出,以便于外设进行信息交换。

本实例为使用I/O端口进行查询外界信号输入情况,硬件接口如图5-2所示。

外界输入信号需要加光耦隔离,以便可以获得符合TMS320LF2407A 要求的信号,并且可以提高系统的抗干扰性。

在此使用了PWM3/IOPB0、PWM4/IOPB1、PWM5/IOPB2、和PWM6/IOPB3。

图5-2 光耦隔离输入信号接口在I/O初始化时,需要设置引脚为I/O功能,而且还需要选择信号方向,下面为读取输入信号的实例程序。

;= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = == = * 文件名:INPUT.asm *.include "240xA.h" ;变量和寄存器定义.include vector.h ;向量表定义,请参考2.2节和附录1;---------------------------------------------------------------------------------------------------------------;B2块的变量定义;---------------------------------------------------------------------------------------------------------------.bss INDATA,1 ;I/O输入值判断变量.bss GPR0,1 ;通用目标寄存器; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ==;主代码; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ==.textNOPSTART:SPLK #000Eh,IMR ;屏蔽除INT2,INT3和INT4以外的其他中断LACC IFR ;读中断标志SACL IFR ;清楚中断标志CLRC CNF ;配置块B0到数据存储空间LDP #00E0h ;数据页指向7000H-707FhSPLK #06Fh,WDCR ;如果VCCP=5V,则禁止看门狗LDP #SCSR1>>7SPLK #0000,SCSR1LDP #00E1h ;数据页指向7080h-70FFhSPLK #0F00h,MCRA ;配置I/O,选择IOPB0、IOPB1、IOPB2、IOPB3 SPLK #0000h,PBDA TDIR ;配置为输入模式LDP #0SPLK #0h,GPR0 ;为程序空间设置等待状态发生器,0~7个等待状态OUT GPR0,WSGRKICK_DOG ;复位看门狗CLRC INTM ;使能DSP中断ST_LOOP1LDP #00E1hLACC PBDATDIRLDP #INDATASACL INDA TABIT INDA TA,BIT0 ;判断IOPB0是否有输入信号,如有则跳到ST_LOOP2 BCND ST_LOOP2, TCB ST_LOOP1ST_LOOP2LDP #00E1hLACC PBDATDIRLDP #INDATASACL INDA TABIT INDA TA,BIT1 ;判断IOPB1是否有输入信号,如有则跳到ST_LOOP3 BCND ST_LOOP3, TCB ST_LOOP2ST_LOOP3LDP #00E1hLACC PBDATDIRLDP #INDATASACL INDA TABIT INDA TA,BIT2 ;判断IOPB2是否有输入信号,如有则跳到ST_LOOP3 BCND ST_LOOP4, TCB ST_LOOP3ST_LOOP4LDP #00E1hLACC PBDATDIRLDP #INDATASACL INDA TABIT INDA TA,BIT3 ;判断IOPB3是否有输入信号,如有则跳到MAINBCND MAIN, TCB ST_LOOP4MAIN:NOPB MAIN.end5.5.2 使用数字I/O输出信号本实例为使用I/O端口输出4个信号,这4个信号分别连接到4个LED,硬件接口如图5-3所示,输出引脚和LED之间需要使用一片触发器SN74HCT273,以实现对LED的驱动。

吉林大学操作系统课件第八章设备与IO管理.ppt

吉林大学操作系统课件第八章设备与IO管理.ppt

柱面号i 盘面号j 扇区号k
(三维地址)
块号b(一维地址)
编址方法:使相邻块物理上最近 例子:l=2; m=3; n=3 柱面号:0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 盘面号:0 0 0 1 1 1 2 2 2 0 0 0 1 1 1 2 2 2 扇区号:0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 块 号:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
共享型设备的分配与去配
– 用户使用共享型设备活动
– 使用,使用,…,使用
– 特征
– 来自文件系统; – 每次读(写)一块; – 通常经过缓冲; – 排队优化。 – 使用 – 分配通道;IO操作;释放通道
8.5 设备驱动
通道程序
CCW指令序列 静态编制或动态生成
设备启动
通道启动
中断处理
→53
当N很大时,接近SCAN算法 当N=1时,蜕化为FCFS算法
磁盘引臂调度(disk head scheduling)
FSCAN(Freezing SCAN,冻结扫描)
将磁盘请求分为两个子队列,
服务队列 请求队列
用SCAN算法扫描服务队列,并为请求服务,服务 期间新到达的请求入请求队列
… Wi
... CCWn
数据区
CPU
... 形成通道程序
... 地址CAW
... 启动通道
... 中断处理
...
中断
8.5 设备驱动
通道
设备
CAW CCW CDW CSW
启动 内存
CCW1 CCW2
… CCWi
... CCWn

008通用IO接口2-戴敏

008通用IO接口2-戴敏

void porte_isr(void); void init_gpio(void); void delay(void); int main (void) { SIM_SCGC5 |=(1<<9)|(1<<13); DisableInterrupts; /* disable interrupts */ enable_irq(91); //GPIOE . IRQ# is 91 init_gpio(); // Initialize GPIO EnableInterrupts; ; /* enable interrupts */ while(1) { //add your code } return 0; }
例: NVIC模块中对应的中断控制寄存器初始化
void enable_irq (int irq) //使能中断请求 { switch (irq/32) {case 0x0: NVICICPR0 |= 1 << (irq%32); NVICISER0 |= 1 << (irq%32); break; case 0x1: NVICICPR1 |= 1 << (irq%32); NVICISER1 |= 1 << (irq%32); break; case 0x2: NVICICPR2 |= 1 << (irq%32); NVICISER2 |= 1 << (irq%32); break; } }
功能
FAULTMASK
CPSID I CPSIE I
;PRIMASK=1 ;关中断; asm(“CPSID I ”); ;PRIMASK=0 ;开中断; asm(“CPSIE I ”);
2.开启外设模块并使能该外设模块中断
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第七章数字I/O7.1 DI/O的基本知识一般数据采集卡上都有DI/O功能,用来实现数据采集的触发、控制及计数等功能。

DI/O 按TTL逻辑电平设计,其逻辑低电平在0到0.7V之间,高电平在3.4到5.0V之间。

数采板上多路(Line)数字I/O 组成一组后被称为端口(Port)。

一个端口由多少路数字I/O 组成是依据其数采板而定的,在大多数情况下4或8路数字I/O 组成一个端口。

当读写端口时,你可以在同一时刻设置或获取多路DI/O的状态。

MIO E 系列板卡有8路数字I/O组成了一个端口,实际使用时这8路可以部分是输入,部分是输出。

数字量输入输出的应用分为以下两类:立即型(非锁存型)和定时型(锁存型)。

在立即型情况下,当你调用数字I/O函数后立即更新或读取数字量某一路或端口的状态。

在定时型情况下,你可以使用外部信号来控制数字量数据的传输。

LabVIEW 中关于DI/O的VI也分为低、中、高三个等级。

在以下几个不同的子模板中:Data Acquisition » Digital I/O, 顶层—用于较简单应用中的Easy I/O VI。

第二部分将讨论如何使用这些VI。

LabVIEW基础教程中也将会详细讲述这些VI。

Data Acquisition » Digital I/O,底层—是一些属于中级水平应用的VI,主要用于需要时间或握手线方面的数字信号应用。

这些VI可用于单字节数据的传输。

第三部分将详细讨论关于这方面数字量信号的操作。

图5-2 显示的是Data Acquisition » Digital I/O 子模板。

Data Acquisition » Digital I/O » Advanced Digital I/O —高级水平DI/O VI 可用于作为创建其他数字VI的基本模块。

这些高级数字量VI可用于立即型DI/O和定时型DI/O 。

图5-3显示的是Data Acquisition » Digital I/O » Advanced Digital I/O 子模板。

图5-2. Data Acquisition » DI/O 子模板图5-3. Data Acquisition » Digital I/O » Advanced Digital I/O 子模板立即型DI/O立即型DI/O 是最简单而且也是较经常使用的关于数字量方面的应用。

它也叫非锁存型的DI/O,所有带有DI/O 接口的数采板都支持这种DI/O 模式。

在这种模式下,当LabVIEW 调用函数后即可立即设置或获取某路DI/O的状态。

当某路DI/O被设定为某一状态后,那么该路DI/O 将一直保持这种状态直到其状态被重新设定为止。

你可以通过软件改变某路DI/O 是输入或是输出方式。

下面将讨论LabVIEW DAQ VI中的立即型DI/O。

Easy I/O VI使用Easy I/O digital VI 你可以立刻输入或输出某一路(某一端口)的数字量。

当你设置DI/O VI iteration端为缺省参数时,每当你调用一次DI/O 函数时系统将会按需要自动设置一次数采板。

当你在一个循环中重复调用某个DI/O 函数时,为了避免系统重复设置数采板,你可以设置DI/O VI iteration 端为正数。

这些VI 可用于所有带有数字量输入输出的NI数采板。

Write to Digital Line 设置某一端口中某一路DI/O为逻辑高或者逻辑低状态Device 是数采板的设备号(device number);Port number 是该路DI/O 所在的端口号;Line 准备要写的该路DI/O 的通道号;Line state 是指准备要写的该路DI/O 的状态:高(true) 或低(false)。

图5-4. Write to Digital LineRead from Digital Line 读取某路DI/O 的状态。

Device 是数采板的设备号(device number);Port number 是该路DI/O 所在的端口号;Line 准备要读取的该路DI/O 的通道号;Line state 返回要读取的该路DI/O 的状态:高(true) 或低(false)。

图5-5. Read From Digital LineWrite to Digital Port 向某一指定的端口写一数字量,从而同时设定某一端口所有路DI/O通道的状态。

Device 是数采板的设备号(device number);Port number 是准备要写的端口号;Pattern 是该端口要写的二进制或等同的十进制数字量。

图5-6. Write to Digital PortRead from Digital Port 读取某一指定端口所有路的DI/O 通道的状态。

Device 是数采板的设备号(device number);Port number 是准备要读取的端口号;Pattern 是返回从该端口读取的数字量(十进制形式)。

图5-7. Read From Digital Port如果在调用Easy I/O digital VI 时发生错误,系统将会弹出一对话框显示出错代码,这时你可以终止或继续执行VI。

注意:当你只调用一个Easy I/O digital VI实例读或写某个通道或端口时,程序是不会出错的。

但是当再次调用函数时会通过改变移位寄存器的状态来重新改变DI/O的设置,故你不能调用多个VI实例来控制多个端口。

在这种情况下你可以通过使用下面将讨论的高级VI来达到该目的。

高级VI (Advanced Vis)使用高级DI/O VI 也可以执行立即型DI/O。

(实际上,Easy I/O VI 是由多个高级VI所组成的)。

使用高级VI你可以更高效的执行数字I/O的读写工作,因为当你调用高级VI 时,它不会象使用Easy I/O VI 那样每次运行时都需要去改变数采板的设置。

高级VI允许你使用通道屏蔽技术更新某一端口中数个DI/O通道,而无须更新整个端口。

根据高级VI提供的错误信息你可以用来开发出自己错误处理程序。

这些高级VI 可用于所有带有数字量输入输出的NI 数采板。

DIO Port Config 设置某个端口为写或读状态。

Device 和port number设置板卡的设备号与端口号;Line direction map 设置端口为输入或输出状态;除了TIO-10 与MIO E 系列板卡外,其余板卡同一端口中所有各路DI/O必须是同向的,即:同是输入或者同是输出。

task ID out 的输出将用于下一VI函数做为创建了一任务的唯一标识。

图5-8. DIO Port Config VDIO Port Write根据已创建任务的标识taskID立即更新端口的DI/O通道状态。

pattern 输入的是一十进制数,当其换算为二进制时代表的是要更新的各路DI/O通道的状态。

举个例子来说:若设pattern为1(二进制0001)那么将仅只设通道0为高电位,若设pattern为15(二进制1111)那将设通道0,1,2,3为高电位。

图5-9. DIO Port Write VI使用line mask 输入, 你可以仅只改变你指定的D /IO通道状态。

line mask 输入的是一十进制数字,该数字的值决定了那一个DI/O通道的状态被更新。

举个例子来说:若line mask设为1(二进制0001)那么只有通道0被更新,若line mask设为15(二进制1111)那么通道0,1,2,3状态将被更新。

未被包含在line mask中的通道其状态将不会被改变。

图5-10 显示的两个例子就是使用line mask来控制端口中那路DI/O通道状态会被更新。

你可以使用Scale By Power of 2 函数来选择单路通道或输入一十进制数直接选择多路通道。

在图5-10a中,pattern 值设为8(二进制1000)时,通道3将会被更新。

在图5-10b中,pattern值设为6(二进制0110)时,通道1,2将会被更新。

假如你已设定该端口为输入状态,那么error out 将会返回一个错误代码。

图5-10. 利用通道屏蔽技术来更新一个或多个通道的状态DIO Port Read 根据已创建任务的标识taskID来获得端口的DI/O通道状态。

pattern 返回的是一十进制数,当其换算为二进制时代表的是各路DI/O通道的状态。

使用通道屏蔽技术你可以返回指定的通道状态,未被包含在line mask中的通道其状态将在pattern的返回值中被设为逻辑低(也就是0)。

图5-11. DIO Port Read VI立即型DI/O 的应用立即型DI/O主要应用于:控制或监测继电器,作为计数器Gate口的输入或者用于其他TTL设备。

例如可用立即型DI/O控制National Instruments SC-2062, SCXI-1160和SCXI-1161继电器开关。

例1—监测开关状态本例演示如何使用Easy I/O VI Read from Digital Line 来监测一外部开关的状态,关闭该开关后即初始化LabVIEW测试程序。

其硬件配置如图5-12所示。

图5-12. 使用DI/O监测开关的状态在如图5-13所示的程序框图中,Read from Digital Line连续不停的读取端口0的第0路通道的状态直到该通道状态为TTL逻辑低(当开关关闭时),该VI退出While循环,然后运行下一测试子VI。

Read from Digital Line设置端口为输入状态。

图5-13. 监测开关状态程序框图例2—继电器控制阀门假如你想通过调节阀门来控制流入某个罐子中水的流量:当罐中液位低于某个位置时,你想要打开阀门让水流入;当罐中液位高于某个位置时,你想要关闭阀门。

通常情况下阀门是关闭的,所以你必须通过提供外部电力(如:120V AC)来打开阀门。

图5-14显示了如何使用SCXI-1161继电器模块来控制这样一个系统。

SCXI-1161有8个继电器(图5-14仅显示了一个),每个继电器有一COM位置,一NC位置和一NO位置。

当通电完成后或处于歇息状态时,SCXI-1161即从COM位置连接到NC位置。

图5-14. SCXI-1161控制阀门在本例中,数采板上的某路数字量I/O被设为输出模式后与继电器0相连。

当向该路DI/O 写1时,与之相连的继电器会切换到NO位置即连通电路从而打开阀门。

下面图5-15所示的LabVIEW程序框图就是用高级DI/O VI来控制该系统的。

相关文档
最新文档