首页> 中国专利> 在操作系统中支持触摸板的计算机系统

在操作系统中支持触摸板的计算机系统

摘要

一个包含一个中央处理单元(CPU)的计算机系统,配置为接受来自一个触摸板或类似设备的坐标型数据。CPU有一个在上面运行的操作系统,后者具有对触摸板的接口的特殊支持。该操作系统有下列能力:(1)映射出触摸板的几何区域,并赋予区域特定的区域标识符作为对应用程序的响应;(2)确定一个被触区域的区域标识符并把该区域标识符传送给应用程序。还提供对用来定义区域的命令的单位的改变的支持。

著录项

  • 公开/公告号CN1139235A

    专利类型发明专利

  • 公开/公告日1997-01-01

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN95102040.4

  • 发明设计人 R·L·伯特兰姆;J·L·康斯;

    申请日1995-02-17

  • 分类号G06F3/02;G06F13/00;

  • 代理机构72001 中国专利代理(香港)有限公司;

  • 代理人杜有文;马铁良

  • 地址 美国纽约

  • 入库时间 2023-12-17 12:44:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-04-08

    专利权有效期届满 IPC(主分类):G06F3/02 授权公告日:20040107 期满终止日期:20150217 申请日:19950217

    专利权的终止

  • 2004-01-07

    授权

    授权

  • 1997-01-01

    公开

    公开

  • 1996-12-11

    实质审查请求的生效

    实质审查请求的生效

说明书

本发明总的来讲与和数字系统一起使用的坐标型指点设备有关,更具体地讲与一种在操作系统中具有对触摸板的支持的计算机系统有关。

视频图形计算机系统是众所周知的大受欢迎的消费产品。一个典型的系统包括一个数据处理单元,它与一台普通的电视机相连,用于显示一个游戏或其它应用程序的图象。数据处理单元从一块通常以盒式存储器的形式包装起来的只读存储器(ROM)接受控制软件。该卡可插入数据处理单元中,也可以拔出。至少有一种指点设备,例如鼠标器、游戏棒、触摸板、触摸屏、开关盘、或者光枪,也被连到数据处理单元,使用户可以输入供控制软件执行应用程序用的位置信息。

数据处理单元通常具有一个中央处理单元(CPU)和相联的易失性及非易失性的存储器(包括所有的随机存取存储器(RAM)和自举只读存储器(自举ROM)),一个电视(RF视频)信号发生器,和一个用来连接各种指点设备的输入/输出(I/O)处理器接口。这些设备是电路连通的。这些系统的一个与众不同的特点是使用一块母板或系统板把这些元件电联接在一起。

触摸板是坐标型指点设备,用于输入坐标型数据到计算机系统。触摸板一般是一个压力敏感的有界平面,能够检测它表面上的局部的压力。当用户用手指、铁笔或类似物体接触这个表面时,触摸板确定所触的位置并把该位置的坐标通过产生的某种类型的信号报告给所接的计算机系统。作为回应,计算机执行与所触位置相关的功能,如果有的话。

一般地,触摸板的一个或多个区域被赋予系统内或应用程序内的某种功能,例如输入数据或提供方向输入。按照常规,用户从一个模板得知哪个功能与哪个区域相关联。模板是一张有图形设计的纸,一般贴在触摸板表面上。图形设计一般绘出或映射出触摸板表面的区域的轮廓而且这些区域一般加以标注以提示用户哪种功能与所映射出的区域中的哪一个相关联。

在典型的触摸板系统中,应用程序从触摸板接受坐标位置数据信号。例如,当触摸板报告板面向上十五列向下十二行的地方被触,应用程序必须把坐标位置与映射到那个区域的功能联系起来。这就是说,应用程序必须对指示出哪一个图形图案中的区域被触的信号进行译码,进而决定哪种功能与所触位置相关联。

依赖于每个应用程序来决定哪个区域被触导致了许多问题。第一,应用程序变得依赖于硬件。一个特定的应用程序必须“知道”所使用的触摸板的分辨率(行和列的数目),总体尺寸,以及数据格式,因而导致应用程序也许不能使用多种类型的触摸板来执行。随着技术的进步提高了触摸板的分辨率,现有程序可能没有灵活性以调节。第二,这需要应用程序员在应用程序中写进位置译码的代码。这样,每个应用程序必须有自己的区域确定例程,于是导致了不必要的重复劳动和可能的不一致性以及甚至支持触摸板区域的方式中的错误。

根据本发明,提供一个在操作系统中对触摸板的支持的计算机系统。该操作系统有如下能力:(1)映射出触摸板的几何区域并且给这些区域赋予对应于应用程序的专有的区域标识符;(2)确定一个触摸板区域的区域标识符并把该区域标识符传给应用程序。

这些普通功能给与一个触摸板接口的任务提供了一致性和灵活性。

本发明的这些及其它优点将随着对本发明的详尽描述而变得更为明显。

在溶进并且组成了本说明的一部分的附图中,示出了本发明的实施例,这些与上文对本发明的一般描述,以及下文的详细描述,共同用于例述本发明的原理。

图1A和1B是显示本发明的系统总体布局的方框图;

图1C是显示用于本发明的系统中的视频数字到模拟转换器的细节的示意图;

图2A是本发明的输入设备的顶视平面图,示出了有缺省模板的触摸板,两个游戏棒,和一个模板覆盖;

图2B是本发明的输入设备的顶视平面图,其中一个模板覆盖被插入了模板覆盖夹持器中;

图2C是图2B所示的本发明的输入设备的一部分的一个放大的片段的平面图;

图2D是沿由图2C中的线2D-2D所标明的平面所截的一个剖面图;

图2E是沿由图2C中的线2E-2E所标明的平面所截的一个剖面图;

图2F是沿由图2A中的线2F-2F所标明的平面所截的一个剖面图;

图2G是图2A所示的本发明的输入设备的一个片段顶部平面图,其中为清晰起见而部分省略了;

图2H-2K是一个显示识别模式的模板覆盖的一个边缘的几个不同实施例的底部平面图;

图2L是本发明的输入设备的一个前部正视图;

图2M是沿由图2A中的线2M-2M所标明的平面所截的部分剖面图,它显示本发明的输入设备所用的游戏棒的细节;以及

图3是显示本发明的输入设备的电路的方框图。

图4显示了以本发明的支持触摸板的操作系统设计的一个触摸板的一个可能的配置图。

参考图1A和1B,显示了一个本发明的计算机系统10。据图1A所示,系统10包括一个数据处理单元12,有一个程序盒式存储器以可移去方式与之相连。同样连到数据处理单元12上的还有一台标准电视机(TV)16和一个输入设备18,后者有一个触摸板19和两个游戏棒20a,20b。输入设备18把由手指、铁笔21或者类似的东西在触摸板上所触的位置所对应的坐标型数据送至数据处理单元12。此外,输入设备18还向数据处理单元12发送由游戏棒20a和20b的运动所对应的方向型数据。虽然图1A中没有示出,但标准电视机16可由一对扬声器和一个接受复合视频信号的显示设备来代替。输入设备18通过一条串行数据链路22与数据处理单元12相联。电视机16通过一条RF视频线24与数据处理单元12相联。

盒式存储器14有一个边缘卡片连接器,后者用26指出,并与盒式存储器连接器28连接,因而把盒式存储器14中的设备与数据处理单元12中的设备进行电连通。

数据处理单元12由一个中央处理单元(CPU)30(它有一条与之相连的系统总线31),一个声频/视频(A/V)控制器/协处理器32,一个系统存储器33(它连到由A/V控制器/协处理器32从系统总线31产生的副系统总线34上),第一和第二译码器芯片(未示出),一个I/O协处理器36,两个盒式存储器连接器(一个由28指出,另一个未示出),需要用来产生声频和视频信号的附加电路38,以及一个扩展连接器39组成。这些设备是如图中数字所示以电路连通方式连接起来。附加电路38由图1B示出并将在伴随图1B的文字中做更为详尽的讨论。

CPU30产生多条总线:一个数据总线,一个地址总线,和一条控制总线,这是本技术中众所周知的。这三个总线的集合称为系统总线31。在较佳实施例中,CPU30是一块80376,由Intel公司(3065Bowers Ave.,Santa Clara,California,95051)生产。80376是著名的80386SX的一个变种,后者在本技术中众所周知并同样可从Intel公司得到。80376与80386SX的不同之处在于80376以32位模式启动,而不是16位模式。具体地说,CR0寄存器被强置为0011H(十六进制的0011)状态,其中位0被强置为逻辑1,实际上使376以32位模式工作。分页被启动以允许虚拟386操作。

A/V控制器/协处理器32从系统总线31产生三条附加的通用I/O译码线(GPIO1,GPIO2,GPIO3),每条线提供一个32位I/O地址范围。可以使用通用译码器来提供低电平有效使能信号到A/V控制器/协处理器32之外的设备中。在数据处理单元12里,使用通用译码器来把地址范围译码到I/O协处理器36(GPIO1),和两个盒式存储器连接器(GPIO2和GPIO3)。下文将讨论A/V控制器/协处理器的其余电路。

系统存储器33由屏幕RAM,系统RAM和自举ROM组成(全都未示出)。板上的屏幕RAM和系统RAM是一兆字节的32位DRAM。合适的DRAM是用一对由东芝生产的256干字节乘以16位的TCSl470BJ存储器芯片配置成32位存储器。CPU30的地址空间的一部分被译码到A/V控制器/协处理器32中的多个8位寄存器。所有的内部位置都是在偶数地址边界上;可以在适当的地方进行字宽I/O读写。在此特定实施例中,不允许在字宽寄存器上执行字节宽的写,而且不能使用I/O周期来访问奇数地址。

自举ROM总是16位宽。自举ROM由两块27C512可擦除可编程只读存储器组成,它可由许多厂家生产,因而共有128K自举ROM。紧跟一个复位,从F20000H到FFFFFFH的一个一兆字节窗口在16兆字节地址范围中被重复,该窗口包含了ROM和内部存储器。

系统存储器33由多个设备共享。A/V控制器/协处理器32是系统存储器33的仲裁器;因此,系统总线31被A/V控制器/协处理器32修改成一个副系统总线34(包括一个副数据总线,一个副地址总线和一个副控制总线,全部未示出)。这样,系统存储器33是通过副系统总线34被访问的。

I/O协处理器36把CPU30连接到多个输入设备,例如输入设备18和可选的设备如键盘(未示出),控制器(未示出),鼠标器(未示出),以及打印机(未示出)。在该较佳实施例中,I/O协处理器36是由摩托罗拉公司生产的预编程的MC68HC705C8(此后称为“68HC705”),它运行在2MHZ。68HC705 I/O协处理器36通过把68HC705配置成一个外部设备来与CPU 30连接:(1)PA0-PA7接到数据总线的D0-D7(2)PB7、PB1和PB2分别接到控制和地址总线的GPIO1(由A/V控制器/协处理器32译码的一个32位地址范围)、A1和A2;(3)PB3,PB4和PB5分别接到控制总线的ADS,READY,和W/R。I/O协处理器36被A/V控制器/协处理器译码为具有I/O空间中的四个16位地址(此处指称为AS0,AS2,AS4和AS6)。

68HC705中的程序以如下方式连接到CPU 30。68HC705设计为直接挂到处理器总线上,并表现为CPU 30的一个I/O接口。一对内部锁存器保持在各个处理器之间传送的数据直到另一个准备好接收。每个处理器的状态位指示出数据锁存器的状态。每个处理器都能通过检查状态位以得知前次数据是否已被读出以及是否有新数据待读。

I/O协处理器36尤其实现下述功能:(1)一个50毫秒定时器,(2)一个从输入设备接收通讯包的串行控制器链路,(3)一个盒式存储器/扩展传感器,用于确定在每一个盒式存储器连接器中是否有一个盒式存储器14,以及在扩展连接器中是否有一个扩展设备或者CD驱动器,(4)一个系统复位,和(5)一个I2C非易失性RAM(NVRAM)接口。I/O协处理器36还实现了一个可选的DSA密致盘控制串行链路以允许与可选的CD设备的通信。

50毫秒定时器是通过把68HC705 I/O协处理器36的监视定时器配置成每到50毫秒间隔就到时来实现的。每次监视定时器到时,I/O协处理器36就使用A/V控制器/协处理器32的模拟中断O采中断CPU30(响应I/O协处理把AI0拉至低电平,A/V控制器/协处理器通过IRQ线来中断CPU)。CPU通过把字节OFOH或者字节OOH写入I/O端口AS0来分别启动及禁止该50毫秒定时器。该定时器缺省状态是启动。

在CPU的中断确认周期中,A/V控制器/协处理器确定中断服务例程的地址。中断服务例程使CPU30从相应于I/O协处理器的16位I/O端口AS0读取一个或多个字节。在每一次读取I/O端口AS0时,A/V控制器/协处理器32选择I/O协处理器36,因而允许数据在CPU30和I/O协处理器之间传输。

响应50毫秒中断,I/O协处理器36总会有一个字节传输到CPU。该字节的低半字节包含了自上次中断确认周期以来的50毫秒到时的次数;高半字节包含要传送到CPU的I/O设备消息的数目。如果50毫秒定时器被禁止,该字节的低半字节将为0。如果收到的消息已超过15个,那么15被送到高半字节而余下的消息等下次传输时再发送。根据此第一字节的内容,CPU可能会从I/O协处理器36读取随后的字节,后者在多数情况下会是从输入设备来的数据包。一般地,输入设备仅会在其各自的状态改变时才会发消息,因而使消息传送频率非常低。

输入设备18和所有其它输入设备都通过串行数据链路22接到I/O协处理器36。各自的输入设备(比如输入设备18)把控制设备的运动转换成适于沿着串行链路22传输的格式。输入设备18把数据包沿着串行链路22发送到系统单元12。正如下文所述,数据包的结构随输入设备的类型而不同。坐标型设备(鼠标器,模拟游戏棒,触摸板等)的数据包结构与开关闭合型设备(键盘,数字游戏棒,开关盘等)的不同。

串行控制器链路22包含三条线:一条数据接收线,一条VCC(+5伏直流电)线,和一条地线。68HC705使用68HC705的PDO/RDI引脚来实现控制器串行链路的数据接收线。该引脚用众所周知的异步格式设计为与串行设备的接口。串行传输有如下格式:每秒4800位,无校验,8个数据位和一个停止位。一种时钟同步格式可用作替代。串行控制器链路22通过本技术中众所周知的一个六导线小引脚插头连接器(six-conductor mini-din plug connector)(未示出)接到外部设备。输入设备是菊花链式的,这样只有一个设备物理地接到数据处理单元12。例如,如果一个所谓鼠标指点设备被增加到系统10中,鼠标被接到输入设备18,后者又接到处理单元12。

盒式存储器传感与扩展传感是用来确定在每一个盒式存储器连接器中或扩展连接器中是否存在一个盒式存储器14的,它是通过令I/O协处理器36查询盒式存储器连接器28的一个引脚来实现的。该脚被系统板上的一个适当的上拉电阻(未示出)拉至逻辑1,一个正确连接的盒式存储器把该脚拉至逻辑0。这样,每个盒式存储器传感的一个1表明不存在一个盒式存储器14而一个0则表明存在一个盒式存储器14。类似地,扩展传感的一个1表明不存在一个扩展设备,例如一个可选的CD驱动器,而一个0表明存在一个扩展设备。

复位是这样实现的:赋予I/O协处理器对A/V控制器/协处理器的复位信号的控制,后者接着控制了CPU30的复位信号。CPU30可以通过命令I/O协处理器36复位A/V控制器/协处理器,接着后者又复位CPU 30这样来复位系统10。CPU通过把字节0FFH写入I/O端口AS0来使I/O协处理器产生一个系统复位。另外,I/O协处理器36监视可选的系统复位开关(未示出)并且当它检测到一次开关闭合时便使系统复位。

最后,I/O协处理器实现读、写以及检验512字节非易失性系统RAM的内容的一个I2C非易失性RAM(NVRAM)接口。NVRAM(未示出)由菲力普半导体公司生产的PCF8594构成,它通过I2C接口与I/O协处理器电路连通。可以级联多个PCF8594来提供更多的NVRAM能力。为了访问NVRAM,需要使用一个三字节序列。所有三个字节都通过I/O端口AS0来访问。由CPU写入I/O协处理器的第一字节表明传输是读还是写并且给I/O协处理器一个段地址。这一字节的低半字节表明传输类型:01H表明在NVRAM写入而02H表明从NVRAM读出。这一字节的高半字节是一个4位段号,对应于NVRAM的一个256字节段。对512字节的NVRAM,只使用底端两个段(0和1)。下一字节对于读和写是相同的—下一字节是CPU写入,是在段内被访问的字节的地址。最后一个字节或者由CPU写入I/O协处理器或者由CPU从I/O协处理器读出,它是从NVRAM读出或向它写入的数据字节。

作为替代,I/O协处理器可用其它方法实现。例如,一个三态可读移位寄存器可能适于从串行数据链路22接收信息。在这种情况下,CPU30周期性地读移位寄存器来访问从输入设备来的数据包。

第一译码芯片(未示出)与CPU30、A/V控制器/协处理器32以及两个盒式存储器连接器(另一个未示出)电路连通。第一译码芯片接纳系统总线31的高端两条地址线作为输入,把80376 CPU30的16兆字节地址空间译码成四个4兆字节区域,后者由三条芯片选择线代表:两条用于盒式存储器连接器28(另一个未示出),一条用于A/V控制器/协处理器32。高端四兆字节和低端四兆字节被译码到A/V控制器/协处理器芯片选择,其余两个四兆字节区域被译码到两个盒式存储器连接器芯片选择。

第二译码芯片(未示出)是用来实现扩展连接器39的芯片选择的,第二译码芯片沿副系统总线34与A/V控制器/协处理器和扩展连接器39电路连通。第二译码芯片允许A/V控制器/协处理器32来对从F20000H开始的128K的系统ROM块译码。从F40000H到FFFFFFH的范围由第二译码芯片译码,为扩展连接器39所用。由第二译码芯片译码的这一ROM块被用来通过扩展连接器39来为系统10增加ROM。

数据处理单元12还有一对盒式存储器连接器(一个由28表示,另一个未示出)用来放置一个盒式存储器14与CPU30和其它系统部件电路连通。盒式存储器14通过一个镀金62引脚(两排各31导线)边缘接插件26接到数据处理单元12的连接器28上。处理器单元12有两个盒式存储器连接器28来接纳边缘接插件26的边缘接插。盒式存储器14有镀金的边缘接插以对应于连接器28的导线,使盒式存储器14可插入地连接到处理器单元12。下列信号是通过连接器28(另一个未示出)与外部设备通信的:系统总线31信号,一条盒式存储器传感线,电源,地,模拟中断1或2(每个盒式存储器有唯一的中断),GPIO2或3(每个盒式存储器有唯一的片选),一条锁定线(它是80376和80386SX系统总线31的一个典型信号),以及由第一译码芯片产生的一个盒式存储器选择信号。作为替代,接到一个可选的CD驱动器所需的信号也可以通过盒式存储器连接器28接到外部设备。

另外,处理器单元12还有一个112脚(两排各56脚)边缘卡扩展连接器39。扩展连接器39允许为系统存储器33增加更多的存储器以及增加多种其它特点。连接到扩展连接器39上的设备有镀金的卡边缘以对应于扩展连接器,使得设备可插入地接到处理器单元12上。下列信号是通过扩展连接器39与外部设备通信的:副系统总线信号,一条扩展连接器39传感线,电源,地,CAS和RAS线,一个扩展连接器39选择信号(它是由第二译码芯片产生的)。

程序盒式存储器14由一个程序ROM40和一个译码器42组成。作为替代,译码器42可以设计在处理器单元12之内。程序ROM40包含只读存储器格式的适于在CPU30上运行的代码。作为替代,其它类型的存储器,例如有后备电池的RAM,也可以用作盒式存储器14中的存储设备。如图1A所示,程序ROM40与CPU30电路连通。

盒式存储器14内部的地址译码器42把全部宽度的地址总线译码到适用于程序ROM40的存储器范围,并产生ROM40所需的一个片选信号44,这在本技术中是众所周知的。地址译码器42是用一块16V8可编程阵列逻辑(PAL)来实现的,后者在本技术是众所周知的,并由许多厂家生产,例如AMD公司。如果译码器42是设计在处理器单元内部,那么选择44就通过连接器26与ROM40电路连通。

现在参考图1B,显示出图1A中的附加电路38接到A/V控制器/协处理器32。附加电路38由4个设备组成、一个视频数-模转换器(视频DAC)50,一个NTSC/PAL(“PAL”指的是著名的欧洲电视信号标准)编码器52,一个RF调制器56,一个声频数-模转换器/模-数转换器/压缩器/解压缩器54(ADC/DAC/CODEC)。每一个都如图所示地连接。

声频/视频控制器/协处理器(A/V控制器/协处理器)32的电子电路大部分包含在一块大规模定制逻辑芯片中,称为一个ASIC(应用专用集成电路)。一个满足此处描述的A/V控制器/协处理器32可以从MSU公司买到(270 Upper 4th Street,Witan Gate West,Gentral Milton Keynes,MK9 IDP England)。A/V控制器/协处理器32包含一个处理器接口60,一个处理器高速缓存62,一个内存接口/刷新64,一个视频控制器66,一个中断控制器68,一个视频阻击器(blitter)70,一个可选的CD块译码器,一个数字信号处理器(DSP)74,以及一个DSP存储器76。处理器接口60,内存接口/刷新64和视频控制器66被合称为视频/存储器控制器67。系统存储器33,中央处理单元30,以及其它设备都位于A/V控制器/协处理器32的外面。

A/V控制器/协处理器32从系统总线31产生副系统总线34,因而把CPU30与系统存储器33分隔开。这样,副系统总线34把各种设备电连接到系统存储器33。副系统总线34由六种可能的总线主控设备所共享(依优先级从高到低的顺序,分别是):存储器刷新64,视频控制器66,一个可选的CD块译码器(未示出),DSP74,阻击器(blitter)70,以及CPU30(通过处理器接口60)。在同一时间只能有一个总线主控设备可以控制副系统总线34。视频/存储器控制器内部的仲裁器控制此处所述设备的优先级的改变,并与A/V控制器/协处理器32内部的所有设备电路连通。例如,CPU30在所有总线主控设备中的优先级最低,直到一个中断发生为止。这样,仲裁器既与CPU接口60,也与中断控制器68电路连通。

在为CPU预取指令意义上高速缓存62并非是一个高速缓存。实际上,高速缓存62是位于F14000H到F143FFH的一块512X16位的静态RAM,它被CPU用于变量,堆栈,或者程序代码以加速程序的执行。

视频/存储器控制器67(处理器接口60,存储器接口/刷新64,和视频控制器66)控制副系统总线34,并为接到副系统总线34上的存储器设备提供存储器定时信号(例如CAS,RAS,写使能等),这在本技术中是众所周知的。它在视频线期间将总线主控设备操作挂起一小段时间以便取视频显示数据,以及刷新动态RAM(DRAM)。它还控制与CPU30的接口。

视频控制器66有一个灵活的视频定时发生器,它可以被编程以适合于不同的电视标准和最高640×480的VGA标准的监视器。准确的视频格式是由设置A/V控制器/协处理器内部的不同的寄存器来控制的:水平周期,水平同步、水平消隐结束,水平消隐开始,水平显示开始,水平显示结束,水平取开始,水平取结束,水平垂直同步,垂直周期,垂直同步,垂直消隐结束,垂直消隐开始,垂直显示开始,垂直显示结束,视频中断,以及光笔寄存器。视频控制器66有三种可用的色彩分辨率:每象素4位,每像素8位,和每象素16位。屏幕的内存映象并不受限于视频显示宽度,而是独立定义。

视频/存储器控制器67把16兆字节的80376 CPU30的地址范围译码到下述内存映象:1兆字节系统存储器RAM(000000H-0FFFFFH),第一盒式存储器ROM的4兆字节(400000-7FFFFFH),第二盒式存储器ROM的4兆字节(800000H-BFFFFFH),用于A/V控制器/协处理器的64千字节内部存储器(F10000H-F1FFFFH),以及一块128千字节的系统ROM(FE0000H-FFFFFFH)。64千字节的内部存储器包括调色板RAM,阻击器(blitter)的寄存器,以及DSP的寄存器和存储器。调色板地址范围如前所述。阻击器(Blitter)的寄存器的范围是F10400H-F107FFH。DSP存储器的范围是F10800H-F18000H。

如果可选的CD驱动器被增加到系统中,下述区域被增至内存映象:另外1兆字节的系统RAM(100000H-1FFFFFH)和用于CD驱动器的128千字节(FC0000H-FDFFFFH)。

中断控制器68把六种中断连到CPU30:视频中断(最高优先级),模拟中断0(AI0),模拟中断1(AI1),模拟中断2(AI2),CD块译码器中断,以及DSP中断(最低优先级)。当CPU30在执行中断应答周期时,中断控制器自动清除中断。每一个中断都拥有一个屏敝位。

阻击器(Blitter)70是一个用于快速屏幕刷新和动画的图形处理器,用来作为CPU30或DSP74的一个硬件图形例程。它执行CPU30和DSP74写入存储器的指令。它可以通过从系统存储器33读取新的命令集来执行任意长度的图形操作序列。它通过阻击器(blitter)程序操作变成总线主控设备,因而可以在相当多的周期内独占副系统总线34。但是,它对于CPU30的优先权并非绝对;在发生一个中断时,它可以被要求放弃副系统总线34给CPU30。CPU30在系统级是优先级最低的总线主控设备;但是它拥有对其它硬件的完全的控制,因而对于副系统总线34的使用是在CPU30的程序的完全控制之下的。

阻击器(Blitter)有一个多功能比较器以便进行智能的阻击(blitting)操作,还有一个逻辑功能单元(LFU)以便产生输出数据。逻辑功能单元可以多种有用的方式对各数据寄存器的内容进行组合以产生输出数据;比较器可以执行对数据的某种比较以便禁止写操作,并可选择地停止阻击器(blitter)操作。

逻辑功能单元产生输出数据,后者被写入系统存储器33中的目的位置。它可以对源和目的寄存器的象素进行任何种逻辑组合。“源数据象素”可以从源数据寄存器或数据模式数据寄存器中选择。LFU从来自数据寄存器的两组输入数据的四个布尔最小项(A&B,A&B,A&B,和A&B)中选择一个,并产生所选择的两个布尔最小项的逻辑或。这就允许输入数据的任何逻辑组合;于是存在16种可能的操作。

比较器可以对源、目的以及模式数据寄存器中的数据进行多种比较。如果比较条件满足,它便产生一个禁止信号。禁止信号是用来禁止一个写操作的,也可选择地可以停止阻击(blitting)操作。比较器还可以用来提供像素位面(pixes plane)效果,给出透明色彩,用于冲突检测和系统存储器33的查找操作,以及协助字符绘制。

DSP74是一个简单的非常高速的用于声音合成的处理器,工作在高达每秒33兆指令(MIPS)的速率。它通过一个DSP DMA控制器(未示出)访问副系统总线34,允许它将字或字节读出或写入系统存储器33。这些传输以短暂脉冲串方式进行,并在DSP程序的控制之下。DSP74实际上执行的是它自己的私有高速存储器76中的程序,并把数据存在那里。

DSP74声音协处理器是一个通用的算术协处理器,它有足够的能力来实现高性能的音乐合成。它提供同步串行输出,用于产生16位精度的立体声声音信号,达到通常密致盘技术所具有的声音质量。DSP74可由主机CPU30进行微编程,其指令集充分灵活,使得用户可以对设备编程以实现很多与“音乐合成器”大不相同的功能。这些应用可以包括算术语音生成,使用快速傅立叶变换进行音频分析,以及三维图形旋转。DSP74使用哈佛体系结构(Hanardarchitecture-分离的程序与数据总线)以达到最大的数据吞吐。DSP74有一个算术逻辑单元(ALU),其特点是具有16位乘以16位硬件乘/累加的硬件,以及加,减,和逻辑功能。还有一个分离的串行除法单元,它每个节拍产生一个商数位。

DSP74内部的ALU是一个16位算术逻辑部件,它与本技术众所周知的Texas Instrument的74181具有相同的功能。常见的算术操作被编码为指令;不常见的指令可用通用算术指令(GAI)直接设置ALU模式位来完成。

DSP74有一个DSP存储器76与之相联。DSP存储器76由程序RAM,数据RAM,一个寄存器/常数表,以及一个正弦ROM组成(全都未示出)。总体上说DSP存储器76既可以在DSP的内部地址空间也可以在系统存储器33的地址空间中访问。DSP程序RAM是512个18位字。这些位置只可以由CPU30写入,对于DSP74来说是程序只读的。程序RAM不出现在DSP的内部地址空间。当DSP74运行时程序RAM不能被主机访问,但在DSP空闲时可以访问。

DSP74还有一个串行声频数-模转换器(DAC)接口。串行DAC接口允许DSP74既可以驱动一个同步串行(I2S或者类似的)DAC,也可以从一个同步串行数据源例如CD驱动器输入数据。

A/V控制器/协处理器的视频控制器66接到外部视频DAC50,后者把来自视频控制器66的18位象素信息78(红、绿、蓝各6位)转换成一个RGB信号80,这在本技术中是众所周知的。视频DAC50的每一个色彩通道(R80a,G80b以及R80c)都是通过一个R2R电阻树和一个2N2222晶体管实现的,如图1C所示。图1C中的设备是如图所示地电路连通的。图1C中的电阻86a-86j全都是0.25瓦的电阻,其值如图所示,容差在5%之内。晶体管88是一个2N2222。

再次参考图1B,RGB信号80由一个NTSC/PAL编码器52转换成一个NTSC复合视频信号90。NTSC/PAL编码器52接受色彩时钟92,HSYNC和VSYNC信号94一它们是由A/V控制器/协处理器32的视频控制器66产生的,以及红色80a、绿色80b、蓝色80c视频输出—这些是由视频DAC50产生的,然后以著名的NTSC格式或基带视频格式产生一个复合视频信号90。作为替代,也可以产生著名的PAL(欧洲电视信号标准)格式。复合视频信号90通过一个凹型RCA型声音插座(未示出)接到外部设备,这在本技术中众所周知。在该较佳实施例中,NTSC/PAL编码器52是一个索尼公司产的CXA1145。作为替代,也可以使用摩托罗拉公司生产的MC1377。

声频ADC/DAC/CODEC54使用一条符合著名的菲力普I2S协议的串行链路96来链接到DSP74。ADC/DAC/CODEC54把模拟数据转换成数字数据,或者反过来,并且对数字数据压缩和解压缩。ADC/DAC/CODEC54把来自可选的麦克风的外部立体声模拟数据97a-97b送到A/V控制器/协处理器32。声频输入97a-97b使用一个标准立体声1/4″连接器接到外部设备。声频ADC/DAC/CODEC54还把来自A/V控制器/协处理器的数字数据通过产生左、右声频线输出信号98a-98b送到外部设备,例如可选的扬声器(未示出),它有两个凹型RCA插座,这在本技术中众所周知。如下所述,声频线信号98a-98b还被加进RF视频信号22中。

在该较佳实施例中,ADC/DAC/CODEC54是一个由CrystalSemiconductor生产的CS4216。这一部件包含带可编程增益的麦克风输入,以及带可编程衰减的输出。增益和衰减均由DSP74可编程地控制。

作为替代,ADC/DAC/CODEC54可由菲力普生产的TDA1311 DAC代替。如果使用这种芯片,就得不到ADC和CODEC功能。

RF调制器56把来自NTSC/PAL编码器52的复合视频信号90与来自声频ADC/DAC/CODEC54的左右声频线输出信号98a和98b合并到一个载波频率,以产生适合于直接输入到电视机16的RF视频信号22。为了产生不同的PAL(欧洲电视信号标准)和NTSC格式,必须使用一个不同的RF调制器和晶体。RF视频信号22使用一个凹形F同轴连接器接到外部设备,这在本技术中众所周知。

现在参考图2A-2M和图3,示出了本发明的输入设备18的一个实施例。如图所示,输入设备18由装在同一个壳100里的一个触摸板19和两只游戏棒20a和20b构成。壳100是用ABS-T(丙烯腈-丁二烯-苯乙烯三元共聚物,即ABS grade T,可从Wong ′sElectronics Co.Ltd.公司(Wong′s Industrial Centre,180 Wai YipStreet,Kwun Tong,Kowloon,Hong Kong)买到)做的。输入设备18接受模板覆盖102,每个模板覆盖都是由一个本体104,一个接头106,和位于底部的一条边上的一个识别模式108组成。模板覆盖102是由一种薄材料做成,例如铜板纸,涂层纸板,或者聚酯胶片。一种合适的聚酯胶片是杜邦公司(Du Pont)生产的很容易得到的“Mylar”牌商标的产品。本体104有一幅图形图像刻在里面或者上面;这就是说,图形图案被写,印,漆,雕刻,蚀刻,丝网印刷,或者以其它方法永久性的固定在覆盖体104的上面或里面。接头106从本体104伸出,用来扣住模板覆盖102。识别模式108将在下文结合图2G-2K来描述。

触摸板19有一块板面110,露在外面以便用手指、铁笔21或者类似的东西接触。板面里面或上面刻有一幅缺省模板图形图案;就是说,缺省模板图形图象被永久性地写、印、漆、雕刻、蚀刻、丝网印刷或以其它的方法固定在板面110上或里面。

如图2A所示,刻在板面110里或上面的缺省模板图形图案所支持的功能如下:“enter(进入)”,“exit(退出)”,“pause(暂停)”,“previous(上一个)”,“next(下一个)”,以及箭头键(上、下、左、右)。作为替代,可用“select(选择)”代替“enter(进)”,用“cancel(取消)”代替“exit”。作为另一种替代,可以绘出十个矩形区域-每一个表示为一个阿拉伯数字。作为又一种替代,也可将每个英文字母映射到触摸板的一个区域。作为又一种替代,可以把一个QWERTY键盘映射到板面110上。确实,实际上可以选择任何模式,或者模式与符号的组合。应该选择缺省模板图形图象使得它适用于大量的用在系统10上的应用程序。

输入设备18包含两种形式的夹持器以固定模板覆盖102贴紧板面110:(1)一个凸唇112,它由三个直唇部分112a-c组成,形成一个大体呈U型的槽,从三面固定模板覆盖102;(2)一对隆起116a和116b,它们在第四边固定模板覆盖102。凸唇112、槽114,和隆起116a,116b在图2C,2D,2E中详细示出,并在伴随这些图的文字中加以描述。

一个用于拿住输入设备18的手柄118和一个用来放置铁笔21的圆孔120也在图2A中示出。

现在参考图2B,显示了输入设备18有一个模板覆盖102紧贴在板面110上的一个顶视图。如图所示,覆盖102的本体104的三个边插在三个凸唇112a-112c的下面。固定覆盖102的本体104的第四条边的隆起116a和116b也显示在图中,在覆盖104的接头106的两边各有一个。覆盖102是这样被插入的:把覆盖102的本体104左手边及右手边插到凸唇部分112a和112c的下边,把覆盖102向下滑动,直到覆盖102的本体104的底边位于另一凸唇112b部分的下面。最后放开模板102,接头106被夹在隆起116a和116b之间,后者固定了覆盖的顶边。

图2C,2D和2E显示了隆起116a、116b和覆盖102的细节。图2D显示了接头106延伸到隆起116b的外边。图2E显示了覆盖102的本体104紧靠隆起116b。

覆盖102是这样移去的:用拇指和食指捏住接头106,抬起覆盖102的本体104到隆起116a,116b以上,这样使覆盖102可以从U形唇112之下越过隆起116a和116b而滑出。

图2F显示了从三面固定覆盖102的槽114。该图中还示出了触摸板传感器122,一个覆盖传感器124,一个用来放置多个模板覆盖102的空腔126,以及一个充分刚性的基座127,它用与壳100相同的材料制成,提供一个充分的阻力,使得对传感器122的接触能被检测到。

触摸板传感器122的位置紧贴所述板面110,它是这样配置的:使得手指、铁笔或类似物体对板面110上面或附近施加的压力能够让传感器122检测到所触的位置。

触摸板传感器102可以是许多类型中的一种,例如基于阻抗的传感器,声学传感器,和开关闭合型传感器。其实例包括薄膜开关矩阵,(例如授予Florella的美国专利第4,736,190号所公开的设备),和高分辨率开关,闭合型传感器(例如授予Ito等人的美国专利第4,529,959号所公开的设备)。一种合适的传感器102可以从Wong′sElectronics Co.LTD(Wang′s Industrial Centre,180 Wai Yip Street,Kwun Tong,Kowloon,Hong Kong)买到,即部件号PR39983。

传感器122至少产生一个电信号来响应铁笔21、手指或类似物体对板面110的接触或者对紧贴板面110的模板覆盖的接触。例如:开关闭合型传感器一般需要一定数量的驱动器来顺序地驱动一个轴上的许多条线以及一定数量的接收器以检测另一个轴上的许多条线中的哪一条正在传导由驱动器驱动的信号。知道了哪个接收器检测出了哪个驱动器产生的信号使得可以确定造成开关闭合的触摸的位置。

覆盖传感器124是一个相应覆盖102上的识别模式108而产生一个电信号的传感器。这样触摸板19的覆盖传感器124和覆盖模板102的识别模式108必须在位置上和设备技术上都相一致。一个合适的覆盖传感器124是一排六个光电发射器/接收器,每一个都有一个有一定角度的发射器和一个有一定角度的接收器,它们在本技术中众所周知,并可以从Wang′s Electronics Co.LTD买到,即部件号PR39990。    

如图2G所示,覆盖传感器124通过壳100上的六个孔128a-128f与识别模式108光学耦合。在每一个孔128下面是一个光电发射器/接收器对(未示出)。在另一个实施例中(未示出),覆盖传感器124的六个发射器/接收器对和六个孔128a-128f可以被分成两组,每组三个,每组分别放在触摸板传感器122的两边。这就是说,三个孔128a-128c(以及它们的相关的发射器/接收器对)可以位于一个凸唇部分112a的下边,而另外三个孔128d-128f(以及它们的相关的发射器/接收器对)可以位于另一个凸唇部分112c的下面。

图2H-2K显示了识别模式108的几个例子。识别模式108位于模板覆盖102的一条边上。有六个独立的记号—每个对应于一个覆盖传感器124的一个独立的发射器/接收器对。当覆盖102在位时,识别模式108与传感器124对齐。如果使用上面描述的、传感器有两组各三个孔的替代实施例,那么识别模式108必须同样地分成两组各三个,并把两组分别置于触摸板传感器122的两边。

使用光电发射器/接收器对作为传感器124使得可以在模板覆盖102里设计非常简单的识别模式108。如果制造覆盖的材料是白色的,那么在覆盖背面的涂有黑墨或颜料的区域可以用来作为识别模式的一种形式,而没有黑墨的区域可用作另一种形式。    

图2H-2K中显示了几种不同的识别模式的可能组合。图2H到2K显示的识别模式108分别对应于二进制模式0100012,0111102,0000002,1111112。这样,识别模式看起来是沿着模板覆盖102的边缘分布的一组明暗区域。模式0000002只是为了说明的目的而示出的。在实际应用中,所有的0000002的全白的模式都不可能被使用,因为这种模式对应于任何模板覆盖都不存在,在这种情况下会使用缺省的模板图案。

图2L是本发明的输入设备18的一个前部正视图,它示出了把游戏棒20a、20b分别置于触摸板19的两侧。如本图所示,游戏棒20a和20b各有一个瞬时按钮开关130a、103b分别固定在它们各自的端部。图2L还显示了开向空腔126的矩形孔132,空腔126是用来容纳多个模板覆盖的。

图2M是沿由图2A中的线2M-2M所标明的平面所截的部分剖面图,它示出了用于本发明的输入设备的游戏棒的细节。游戏棒20a和20b的细节在图2M中被重复示出。另外,图2M的细节是90°旋转对称的;这样,虽然许多结构中的两个显示在该图中,实际上在这一特定实施例中使用了四个同样的结构。游戏棒20a固定在一个棒134上,后者穿过一个孔136伸进壳100所定义的空间。棒134止于一个支点138,后者在开关底座140上转动。开关底座140是通过在几个固定器144a-144d的四个螺丝142a-142d固定在壳100上的,支座是物理地附在壳100上的。孔136是由一个环形封圈146封住的,封圈的环整齐地围住棒134,封圈的外缘通过普通的方法在孔内物理地附在壳100上。

游戏棒20a关于支点做14度的自由运动;就是说,棒134可以实际上向各个方向偏移垂直于由开关底座140定义的平面的方向七度。棒134有四条传动臂150a-150d物理地附在上面。传动臂148的位置紧贴四个橡皮圆顶瞬时开关按钮150a-150d,后者物理地附在开关底座140上。臂148和开关150是这样配置,使得当游戏棒偏离垂直位置时,一个或多个臂148产生与它们相连的开关的一次闭合事件。这样,游戏棒20a的运动就被开关150的闭合事件检测到了。作为替代,游戏棒20a,20b可以用其它结构实现,例如基于电位计的系统,这在本技术中众所周知。

现在参考图3,它示出了输入设备18内部电路的方框图。输入设备18包含触摸板传感器122,覆盖传感器124,游戏棒传感器200a,200b,坐标确定电路202,覆盖检测电路204,一个100毫秒定时器208,以及接口电路210,所有设备都如图3所示电路连通。

坐标传感器122和覆盖传感器124如上面结合图2的文字所描述。坐标确定电路202与坐标传感器122,接口电路210,和100毫秒定时器208电路连通。坐标确定电路202设置为接受来自坐标传感器122的电信号203并确定对应于手指、铁笔21或类似物体所触位置的X轴和Y轴的值。例如,如果坐标传感器122是一个开关型传感器,那么坐标确定电路202将包含驱动器和接收器来确定哪个开关闭合了,这在本技术中众所周知,并包含把那个开关的位置翻译成相对于板面110的一个有意义的值的逻辑。

覆盖检测电路204与覆盖传感器124和接口电路210电路连通。覆盖检测电路204接收来自覆盖传感器124的电信号205并产生一个相应于识别模式108的消息,或者相应于没有识别模式的消息,即如上所述检测到0000002。

方向确定电路206与游戏棒传感器200a,200b和接口电路210电路连通。游戏棒传感器200a,200b包含四个橡皮圆顶开关150a-150d和两个游戏棒开关130a,130b,如前所述。方向确定电路产生一个基于这些开关的闭合事件的消息。

100毫秒定时器208与坐标确定电路电路连通。定时器208反复确定100毫秒时间周期的到时并产生一个信号209来指示该时间周期的到时。坐标确定电路202使用该信号209来检测在由定时器116检测到的100毫秒到时信号之间,手指、铁笔21或类似物体所触位置的改变。

接口电路210与坐标确定电路202,覆盖检测电路204,数据处理单元12(通过串行数据链路22),以及(如果有的话)其它输入设备,通过串行数据链路扩展23电路连接。接口电路210接受由坐标确定电路202确定的坐标值,由覆盖检测电路204产生的覆盖消息,以及由方向确定电路206产生的消息,并把任何这样的消息通过串行数据链路22发送给数据处理单元12。

所有的输入设备都与处理单元12成菊花形链接。这样,接口电路必须传递来自其它输入设备的信息包到CPU30。下面将会详细解释,每一个接到处理单元12的输入设备都有一个唯一的设备号。离处理单元12最近的设备的设备号是0,一个设备离处理单元12越远,它的设备号就越高。但是,输入设备并不知道它们自己的或其它设备的设备号。这样,每个设备必须给来自同类型其它设备的数据包的设备号加1。在链中任何设备号大于15的设备都被忽略。

例如,假设有三个同样类型的输入设备α、β、γ,它们是这样接到处理单元12的:α接到处理单元12,β接到α,γ接到β。因此,α的设备号是0,β的设备号是1,γ的设备号是2。其它设备并不知道它们自己的或者其它设备的设备号。每个设备都用设备号0发送自己的数据包。

当α把一个数据包传送给处理单元12时,缺省设备号0是正确的,因为α是最接近处理单元12的。但是,β和γ同样用设备号0发送数据包。为了解决这个问题,每个设备给通过它传递的数据包的设备号加1。这样,当β把一个来自γ的数据包传给(α时,β给设备号加1,这样来自γ的包设备号就是1。同样,当α把来自γ的数据包传送给处理单元12时,α给其设备号加1,因而给了来自γ的包一个正确的设备号2。这样,链中的每一个设备给来自同类型的其它设备的每一个数据包的设备号加1,并把它传给下一个设备。

因此,除了传递从其它输入设备收到的数据包之外(如果有的话),接口电路210还给通过串行数据线扩展23收到的来自其它同类型设备的任何数据包的设备号加1。接口电路210把带有修改过和没修改过的设备号的数据包传递给数据处理单元12。

具有本发明的输入设备18的系统10非常易于使用。输入设备通过串行链路22发送数据包给数据处理单元12。如前面所提到的,输入设备通过I/O协处理器36与CPU30相连。每个输入设备与下一个输入设备成菊花形链接。I/O协处理器36以先入先出(FIFO)方式接受数据包并存储它们。

每50毫秒“滴答”I/O协处理器中断一次CPU30。作为响应,CPU访问协处理器36的I/O端口AS0的一个字节以决定自上次CPU访问以来“滴答”的次数以及需要传输的设备消息的数目,如前所述。设备信息的十种类型如下表所示。

设备类型  字节0  (计数)字节1(设备ID)字节2字节3字节4(位4-7)(位0-3)键盘(PS/2)    2    0    0扫描码不用不用鼠标器(PS/2)    4    1    0鼠标字节(按钮)鼠标字节(X数据)鼠标字节    3(Y数据)开关闭合  1-255  变量  链中  设备号    1按钮状态0:开;1:关按钮状态(可选)按钮状态(可选)游戏棒(数字)    2  链中  设备号    2开关关/开代码不用不用 坐标(相对)    4  链中  设备号    3按钮状态X增量Y增量 坐标(绝对)    4  链中  设备号    4按钮状态X坐标iY坐标触摸板覆盖消息    2  链中  设备号    5覆盖代码(0-63)不用不用动作消息  1-255  变量  链中  设备号    6动作按钮数据(可选)(可选)
系统穿过  1-255  变量  链中  设备号    14字节0字节1(可选)字节2(可选)初始化消息 Variable 1-255 变量  链中  设备号    15设备类型(ID)厂商代码字节0厂商代码字节1(可选)

从表中可以看出,消息结构长度不同并且其结构与所对应的设备类型密切相关。对于从各个I/O设备发往I/O协处理器的数据和由I/O协处理器发往CPU的数据来说,表中的设备消息是相同的。除了上表所示的结构之外,从I/O设备发往I/O协处理器的每一条消息都有一个校验和,以保证从输入设备18发往处理器单元12的数据正确无误。校验和是一个标准的模256校验和,其中校验值是把所有字节相加的和为0所需的值(相加时忽略进位)。I/O协处理器先去掉该校验和然后把数据发往CPU。因此,CPU读出的字节流实际上与I/O协处理器收到的字节流是相同的,只有下列例外:(1)CPU读出的第一个字节是一个特殊字节,包含滴答数及I/O消息的数目;(2)丢失了校验和。

PS/2鼠标器和键盘作为0型设备被支持。键盘的链号为0,鼠标器的链号为1。这些设备由I/O协处理器使用现有的PS/2协议通过串行数据链路来支持。

设备类型1是用于有多个按钮的设备的。最多到255个字节(每字节8个按钮)或者说2040个按钮可以用这种消息类型输入到系统中。开的按钮作为逻辑0发送而合的按钮作为逻辑1来发送。这是一个可变长度消息。

数字游戏棒,例如游戏棒20a和20b,作为2型设备被支持。每一个触摸板19有两个游戏棒与之相联。每一个游戏棒有一个唯一的链号。每个左游戏棒的链号是奇数(1,3,5,7,9等),而每个右游戏棒是偶数(0,2,4,6,8等)。每一个游戏棒独立地报告。该消息是一个定长消息。回忆一下数字游戏棒传感器包含一定数目的开关150a-150d。该消息是一个最多代表8个开关的字节,它包含了运动传感器开关150a-150d和数据输入开关,例如开关130a。这一类型的消息字节的各个位分别代表:向上开关(最高位),向下开关,向左开关,向右开关,开关#1,开关#2,开关#3,和开关#4(最低位)。触摸板19所带的游戏棒20a和20b只有一个按钮130,它对应于上述开关#1。其它三个按钮永远报告为0。

坐标型设备例如鼠标器和跟踪球作为3型设备报告。紧跟ID的第一字节报告设备的任何按钮信息。最多可报告8个按钮。下一字节是X增量值,再后是Y增量值。X和Y的增量值是基于上次报告的设备位置的。如果需要,应用程序必须把这些值转换为绝对坐标。最大运动为255。如果实际运动超过255,则将发送两个或更多的消息。这是一个定长消息。

触摸板19作为4型设备被支持。这一类型的其它设备包括模拟游戏棒。紧跟D的第一字节是用来报告按钮信息。而下一字节是用于报告绝对X位置的。依次而后的是绝对Y位置。绝对X值和Y值都是1个字节并且限制在0-255范围内。这是一个定长消息。

触摸板覆盖102是作为5型设备报告的。触摸板覆盖是使用触摸板上的6位传感器124检测的。当触摸板测到一个覆盖的改变时,便产生一个消息。所有的覆盖代码都依赖于应用程序,应用程序必须认识每个覆盖的代码。这是一个定长消息。

动作消息是用来定义预定义的独立于设备的功能的公用集合的。这些功能可以由多种类型设备以不同方式产生,但是由系统和应用程序以同样方式使用和翻译。动作消息作为6型设备使用一个变长消息来报告。在此特定实施例中,定义了三种独立于设备的功能,并分别与该字节的低三位相关联:START(开始—开始一个活动或进程)PAUSE(暂停—暂停一个活动或进程),SELECT(选择—选择多种事件或动作中的一个)。设置相应位以报告这些功能。所有的其它位都被保留以备将来之用,并且向CPU报告为0。

系统穿过消息类型是用来处理不适用于任何一个前面定义的设备类型的设备类型的。它使用消息类型14。这是一个变长消息。对其数据的定义是依赖于设备的,并且是应用程序专用的。每个应用程序必须把这一类型的消息翻译成所需的功能。

来自每一个设备的第一条消息是15型设备。它用来告诉系统一个设备将要发送输入消息了。该消息还定义了将被用来报告输入的未来的设备类型。这是一个变长消息。

在系统加电和50毫秒间隙时I/O协处理器察看盒式存储器和扩展传感线以确定配置,并提醒系统,还发送一个配置字节给CPU。这是在系统加电时CPU从I/O协处理器收到的第一个字节。当检测到发生一个变化时,I/O协处理器只产生一个模块配置中断,盒式存储器状态的一个变化造成一次系统复位,因而造成I/O协处理器向CPU发出另一个配置字节。设置所发送字节的适当的位来指示相关项的存在:位0对应于盒式存储器1,位1对对应于盒式存储器2,位2对应于可选的CD驱动器。其它位被置为0。

另外,CPU能通过把信息沿着串行链路22写入I/O协处理器36来发送数据给I/O设备。写入I/O端口AS0的数据字节中每个字节前面都有字节03H。I/O协处理器把这些字节写入I/O设备。这种功能是用于发送数据给例如一个打印机的(未示出)。

与这种具有两个游戏棒和一个带有刻上的缺省模板图形映象的触摸板的本发明的输入设备的连接也是很简单的。来自系统BIOS并在CPU30上执行的一个中断服务程序通过I/O协处理器36从输入设备接收数据。中断服务器仅把来自I/O协处理器36的传送数据放进存储器33中。运行在CPU上的应用程序周期性地通过一个软件中断来查询操作系统BIOS以确定是否收到了输入。如果是,它们就响应于软件中断通过操作系统与应用程序通信。

应用程序监视当前的模板。如果检测到缺省的模板图形映象(覆盖传感器124会检测所有的发送型识别模式108,即000000),那么应用程序相应于缺省模板操作。另一方面,如果检测到一个模板覆盖102,那么应用程序相应于该特定模板覆盖操作。

CPU30上运行一个对与触摸板的接口提供特殊支持的操作系统。操作系统或者从系统存储器33和ROM中装入,或者从盒式存储器ROM40中装入。该操作系统具有下列命令可以被执行在CPU30上的应用程序所调用:“define_a_region(定义一个区域)”,“set_mapping_units(设置映象单位)”,“clear_all_region(清除所有区域)”,以及“interpret_a_point(翻译一个点)”。

“define_a_region”命令允许应用程序定义触摸板的一个区域并把该区域与某一个区域标识符(″region_id″)相联系。该被接触的定义区域内的任何一点都用这个region_id标识。在一个实施例中,在初始化后,整个触摸板被定义为一个无效区域(null region),它具有一个无效区域标识符(″null_id″)。就是说,任何null_id位置被触都不会导致操作系统执行任何任务或功能,即没有参数传给应用程序。作为替代,触摸一个无效区域可以触发一个错误处理例程,后者可能比如让系统用发声或“蜂鸣”的方法指示用户触了一个无效区域。″define_a_region″命令把所选形状的区域赋予其它region_id的区域。

实际上任何形状或形状的组合都可以用″define_a_region″命令来定义:圆,矩形,三角形等。另外,多个形状可以合并形成一个复杂形状区域。例如,五个三角形可以和一个正五边形组合形成一个星形。另外,无效区域可以用″define_a_region″命令包括进来,这样允许定义空心形状,例如环。

″set_mapping_units″命令允许应用程序为″define_a_region″命令定义不同单位,因而允许操作系统支持不同分辨率的触摸板。例如,操作系统缺省为矩形设备分辨率单位,这是由行和列的分辨率(宽度和间距)确定的;通过使用″set_mapping_units″命令,应用程序可以使操作系统把单位改为比如毫米或百分之一英寸。另外,应用程序可以把单位设置为其它的值。例如,如果系统显示设备的分辨率为640象素×480象素,应用程序可以用″set_mapping_units″命令给触摸板单位赋予640×480相应于象素的单位。

″clear_all_regions″命令取消所有的以前用″define_a_region″命令定义的区域,实际上把整个触摸板定义为一个无效区域。当有一个新的模板覆盖放到触摸板面上时,应用程序调用该命令,于是清除了与前一个模板覆盖关联的所有定义区域(如果有的话)。在用″clear_all_region″命令清除了区域后,应用程序调用″define_a_region″命令定义新模板覆盖的区域。

″interpret_a_point″命令使得操作系统确定所触区域的region_id。如果是操作系统在监视触摸板的触摸,该命令由操作系统自己启动;如果是应用程序在监视触摸板的触摸,则该命令由应用程序启动。在一实施例中,应用程序查询操作系统看操作员是否触摸了一个触摸板区域。

每次触摸板被触,触摸板便发送设备专用坐标信息给CPU。″interpret_a_point″命令的一部分是由CPU确定所触区域。确定以后,操作系统向应用程序返回一个代码,后者或者是对应于所触区域的″region_id″,或者是指示没有区域被触的代码。

在操作系统中支持触摸板的计算机系统的使用十分简单。首先,一个应用程序定义触摸板区域并用″define_a_region″命令把区域与region_id相关联。每一个被定义的区域都必须用″define_a_region″命令定义;任何未定义的区域仍为具有null_id的无效区域。

随后对触摸板面的触摸或者由操作系统或者由应用程序检测,这取决于谁在监视触摸板。如果操作系统在监视触摸板,它检测触摸并自己启动″interpret_a_point″命令以确定所触区域的region_id。如果region_id是null_id,操作系统执行一个适当的动作,例如蜂鸣。在此情况下,它不会向应用程序传递任何参数。如果region_id不是null_id,操作系统把与所触区域关联的region_id传递给应用程序,由应用程序执行与所标识的region_id相关联的功能。如果应用程序在监视触摸板并检测触摸板的触摸,其过程是相同的,只有一点不同即应用程序导致操作系统启动″interpret_a_point″命令而不是操作系统自己启动之。

如果一个新的模板覆盖放在触摸板表面,应用程序便调用″clear_all_regions″命令,后者使操作系统再次清除所有定义区域并认定整个触摸板面为一个无效区域。应用程序再次调用″define_a_region″命令以使操作系统定义该模板的适当区域并在应用程序指导下给它们赋予region_id。

一个定义或映射所定义形状的区域的特定例子在图4描绘出来,它显示了一个被映射的触摸板。敏感区域的形状为(1)一个箭头,用196标出,(2)一个圆和一个环,由一个环形无效区域分开,总体用198标出。敏感区域各自由小的离散符号示出,下面将加以识别。在初始化后或执行″clear_all_regions″命令后,触摸板的所有敏感区域被赋予null_id,后者在图4中用符号“·”表示。这意味着如果一个“·”离所触位置最近,那个区域便被赋予null_id,操作系统如上文所述地响应。

为了创建被一个环形无效区域分开的圆和环,应用程序三次调用″define_a_region″命令。首先,应用程序调用命令″define_a_region″时参数为(circle,14,F,4,1)。“circle”指示要画的形状;“14,F”指示圆心坐标,“4”指示以当前单位表示的圆半径,这里的单位是矩形设备分辨率单位;“1”指示赋予此圆的region_id。这一命令创建了一个虚拟圆200,在图4中它围住了由圆200包围的52个敏感区。这52个敏感区的region_id都被赋予1,并在图4中用下列符号“⊙”、“·”和“○”指出。28个用“⊙”符号指出的敏感区的region_id仍被赋予1;其余的将被后面的“define_a_region”命令“重赋值”为其它的region_id。

其次,应用程序调用“define_a_region”命令时参数为(circle,14,F,3,0),其中“0”指示null_id作为region_id。它创建了一个虚拟圆202,它围住了由圆202包围的24个敏感区。这24个敏感区的region_id全都赋予0,并在图4中用下列符号指示:“·”和“○”。回忆一下这24个敏感区曾被前一个“define_a_region″命令赋予region_id为1。这样,这些region_id也可以认为是被“重赋值”为0。12个用“·”示出的敏感区的region_id将仍被赋予0;12个用“○”符号指出的敏感区将由第三个“define_a_region”命令“重赋值”为另一个region_id。12个用“·”符号指出的敏感区是无效区,如上所述。

最后,为完成这一用一环形无效区域分开的圆和环,最后一次调用命令“define_a_region”时参数为(circle,14,F,3,2)。该命令创建一个虚拟圆204,它围住了用“○”符号指示的12个点。这12个敏感区的region_id被赋予2。回忆一下这12个敏感区曾被第一个“define_a_region”命令赋予region_id为1,又曾被前一个“define_a_region”命令“重赋值”为null_id。这样,这些区的region_id也可以认为是被“重赋值”为2。

最终得到的复杂形状198是由一个环形无效区域210(region_id赋为0)分开的一个region_id赋予2的填充206和region_id赋为1的环208。填充圆206中的敏感区被用符号“○”表示。环208中的敏感区用符号“⊙”表示。环形无效区域210中的敏感区用符号“·”表示。

作为替代,“define_a_region”命令可以配置为直接支持一个环,这样复杂形状198可以用两个命令创建:一个圆和一个环。

创建箭头196需要两次调用“define_a_region”命令。第一次调用参数为(rectangle,6,C,9,I,3),其中“vectangle”指示形状,“6,C”指示矩形左下角,“9,I”指示矩形右上角,“3”指示region_id。这一命令创建一个虚拟矩形,它包围用符号“■”指示的敏感区。第二个“define_a_region”命令的参数为(triangle,1,F,6,A,6,K,3),其中“triangle”指示形状,“1,F”,“6,A”,“6,K”指示三个顶点,“3”指示region_id。这一命令创建一个虚拟的三角形,它围住用符号“▲”指示的敏感区。注意矩形212和三角形的region_id都赋予3;它们有相同的region_id。这样,这两个形状映射到同一功能并组成箭头196。正因如此,接触任何一个区域或两个区域都接触都使应用程序产生同样的反应。触摸板表面的其它敏感区,总体用215表示,其region_id仍被赋予null_id。这些敏感区用符号“·”指出。

显而易见,大量的复杂形状可以用这种方法形成。每一个形状有一个唯一的region_id或者一个或多个区域共享一个region_id。

在使用中,按压图4所示触摸板的映射区域会导致操作系统判断所触区的region_id。例如,如果按压了位置13,E(由216指出),所触位置的坐标通过串行链路22传给CPU,操作系统判断region_id 2被压,并把region_id 2传给应用程序,后者于是执行与region_id 2关联的功能。

另一方面,按压赋予null_id的区域不会造成操作系统把一个region_id传给应用程序。而是如上所述,操作系统或者什么也不做或者蜂鸣或者执行其它适当的动作。为了让应用程序检测接触一个“无效”区域,应用程序必须先调用“define_a_region”命令给整个触摸板表面赋予某一个region_id,并在制做空心区域时,给任何空心区域赋予那个region_id。

在上面的映射中术语“虚拟”被用来描述这些形状:圆200,圆202,圆204,矩形212,和三角形214。使用这个术语是因为敏感区域并不具有无限的分辨率。实际上,当使用由不同符号定义的术语“敏感区”时,该术语意思是表面上离那些符号最近的区;因此,任何定义的形状都将是映射出的敏感区的区域形状的近似。触摸板的分辨率越高,映射的敏感区就越接近于定义它们的虚拟形状。

虽然本发明是通过对它的实施例的描述加以说明的,虽然这些实施例被相当细致地描述,申请人的目的并不是要限制或以任何方式局限所附权利要求到如此的细节。其它的优点和修改对于这方面的技术人员来讲是显而易见的。因此,本发明在广义上并不局限于特定的细节,代表性设备和方法,以及所示和所述的说明例。因此,可以脱离这些细节而并不背离申请人的总体的创造性原理的精神或范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号