数控系统专用键盘设计.docx
- 文档编号:28445180
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:67
- 大小:921.39KB
数控系统专用键盘设计.docx
《数控系统专用键盘设计.docx》由会员分享,可在线阅读,更多相关《数控系统专用键盘设计.docx(67页珍藏版)》请在冰豆网上搜索。
数控系统专用键盘设计
摘要
随着计算机控制技术的发展,充分利用PC的软、硬件资源,已经成为各国数控设备生产厂发展数控系统十分重要的一种方法。
本次设计利用了计算机的PS/2键盘接口,为数控系统设计了一种专用键盘。
本设计考虑到系统设计成本,使用灵活性等因素,硬件部分采用AVR单片机Mega48模拟PS/2双向同步串行协议,与计算机通讯。
为了使用方便,键盘采用4X4矩阵结构,通过排线与单片机连接。
同时本设计采1602液晶屏显示接收到的主机命令以便调试。
键盘程序设计部分,本设计主要介绍了PC键盘和键盘接口的PS/2通信协议和如何用Mega48来模拟PS/2的这种双向串行协议,给出了软件设计流程图及部分源程序。
该专用键盘成功实现了与计算机的双向通信,并且可以通过专门的数字控制软件来控制数控系统的运转。
关键词:
数控,专用键盘,协议,接口
ABSTRACT
Withthedevelopmentofcomputercontroltechnology,andinordertomakefulluseofPCsoftwareandhardwareresources,NChasbecomeequipmentmanufacturersCNCsystemdevelopmentasaveryimportantway.ThedesignofthecomputeruseofPS/2keyboardinterface,NCsystemforthedesignofaspecialkeyboard.
Thedesignofthesystemdesigncosts,theuseoffactorssuchasflexibility,hardwareusedAVRMega48simulationPS/2two-waysynchronousserialagreementswithcomputercommunications.Touse,thekeyboardusingfourX4matrixstructure,througharrangementswiththelineconnectingSCM.Inaddition,the1602wasdesignedwithLCDscreenshowhostreceivedanordertodebug.
KeyboardDesign,ThemaindesignonthePCkeyboardandthekeyboardinterfaceofthePS/2communicationprotocolandhowtosimulatePS/2ofthistwo-wayserialprotocol,givestheflowchartdesignsoftwareandsomesource.Thespecialkeyboardwiththesuccessfulrealizationofthetwo-waycomputercommunications,andthroughspecialdigitalcontrolsoftwaretocontroltheoperationoftheCNCsystem.
Keywords:
Numericcontrol,Specialkeyboard,Protocol,Interface
第1章绪论1
1.1课题研究背景1
1.2课题研究的目的和意义2
1.3研究方法与预期结果2
第2章键盘接口及其通讯协议4
2.1连接器4
2.2简略描述5
2.2.1PS/2传输规范6
2.2.2数据格式6
2.3设备到主机的通讯6
2.4主机到设备的通讯8
2.5PS/2键盘接口11
2.5.1相关历史背景11
2.5.2IBM通讯协议13
2.5.3键盘扫描码13
2.5.4键盘的复位14
2.5.5通信命令字15
第3章总体方案设计19
3.1总体方案介绍19
3.2总体设计框图19
3.3专用键盘整机电路原理图19
第4章硬件电路设计20
4.1时钟和复位电路20
4.1.1时钟电路20
4.1.2复位电路21
4.2编程下载电路22
4.3PS/2接口电路23
4.4液晶显示电路23
第5章Mega48简介24
5.1通用I/O口24
5.2熔丝位设置26
第6章软件设计28
6.1主监控程序设计28
6.2中断服务例程29
6.3键盘扫描程序29
6.4发送与接收一个字节29
6.5显示接收到的命令29
结论32
致谢33
参考文献34
附录1设计原理图35
附录2第二套键盘扫描码36
附录3部分源程序清单37
附录4英文资料及翻译39
第1章绪论
1.1课题研究背景
从1952年第一台数控机床在美国问世,至今已有40多年的历史,计算机数控(CNC)从70年代中期出现,到现在也已有20多年了,数控技术日趋成熟。
特别是近几年来微型计算机、微电子工业及电力电子工业的迅速发展,微型计算机与CNC技术的紧密结合,使得开发和生产CNC系统的技术被越来越多的自动化装备生产厂所掌握。
因此,就当今全世界范围来说,CNC技术已经不再被少数几个国家的几个CNC系统生产厂所垄断。
到80年代末,几乎每个工业发达的国家都有了自己的数控设备生产厂,生产满足各自国家数控机床及其他机械装备所需要的数控系统。
甚至很多大型的数控机床生产厂都有自己的产品,并部分出售数控系统。
因此,CNC系统生产厂之间的竞争为激烈,数控技术的发展进入了新的阶段。
近年来被称为个人计算机(PC)的微型计算机发展很快,大规模集成电路制造技术的高速发速,使得PC的硬件结构做得很小。
主CPU的运行速度越来越高。
IPC386的主频是33MHz,IPC486、586的主频可达50~120MHz,新近Intel奔腾处理器(Pentium),主频已达450MHz。
存储器容量也很大,体积很小,由于是大批量生产,使成本下降,可靠性提高。
在软件方面,操作系统的发展,特别是Windows的应用,使得PC的操作更为简便直观。
CAD/CAM的软件大量地由小型机、工作站向PC移植,三维图显示及工艺数据库在PC上建立。
再加上PC的开放性,吸引大量技术人员投入了软件的开发,使得PC的软件资源极为丰富。
因此,更好地利用PC的软、硬件资源,就成为各国数控设备生产厂发展CNC系统十分重要的一种方法。
1992~1993年,首先是在美国及欧洲的一些小型的数控设备厂推出,例如美国的ANILAN公司推出的1100、1200、1400系列,意大利FIDIA公司的10/20/30系列,都采用了PC作为基板来开发自己的数控系统。
现在连日本FANUC、三菱公司,德国的SIEMENS公司这些以生产专用CNC设备著称的公司,也都把采用PC资源,作为其发展的一个重要方向。
他们都强调自己系统的“开放”。
日本FANUC公司把采用PC的CNC系统称之为开放型CNC系统,有150、160、180及210等系列,并正发展一种将FANUC智能终端(一种与IBMPC兼容的平板式计算机)通过高速光缆与CNC装置连接的模式。
我国中国珠峰数控公司“八五”攻关成果“中华Ⅰ型(CME988)”也采用PC作为主控板,使该系统能充分利用PC的资源,跟随PC的发展而升级。
另外一点就是随着微电子技术的发展,大规模集成电路的集成度越来越高,体积越来越小。
数控设备厂采用超大规模集成电路并采用表面安装工艺(SMT),实现了三维立体装配,将整个CNC装置做得很小,以适应机械制造业机电一体化的要求。
国内很多厂商利用微机的PS/2接口、USB接口等开始量产数控系统上用的专用键盘,键盘大都采用特殊金属结构且也较普通PC键盘小巧灵活。
在这种背景下,我们尝试做了一个小型的数控系统,为了使数控系统的整体结构得到统一,特此设计一个专用键盘来代替普通PC键盘,既方便又协调了数控系统的结构。
本文主要介绍该专用键盘的设计。
1.2课题研究的目的和意义
键盘作为人机接口电路的一个重要设备,我们研究它主要是基于以下考虑:
●键盘作为数控系统重要的输入设备,要求也很严格,比如要求不粘油、防腐、防爆、防水等,普通PC上的键盘没有必要做得那么严格,也用不着那101/104个所有的按键且PC上用到的通用键盘在某些时候也不是很方便的,所以有必要做一个专用键盘,既可以很方便地实现PC标准键盘的单键功能,也能实现某些组合键的功能。
●数控系统的广泛应用使得键盘作为一种非常重要的输入设备有了不同的意义:
实现的不止是输入字符,而且可以用单个按键实现组合键的功能。
●键盘履行的同步双向串行协议对延时要求十分严格,程序中要求实现精确延时,因此能够提高我编写程序的能力。
●PS/2协议对于所有连接到计算机上的PS/2设备都适用,只要实现了键盘功能,对于以后独立做PS/2设备也是一种基础。
而其它各种协议也都迎刃而解了,这对我的自学能力又是一种提升。
为了在CNC专用软件里更方便地控制我们设计制作的另一台小型数控雕刻机,需要用到键盘去控制,普通PC键盘一个按键通常不能完成组合件的功能,比如,我们要调用任务管理器,必须要按组合键,但是我们可以用嵌入式系统构建一个模拟键盘而只需要按下一个键即可。
从这一点来说,仿真一个专用键盘是有实际意义的。
1.3研究方法与预期结果
本专用键盘的设计有很多种方法,比如用CPLD模拟键盘接口时序,单片机模拟接口时序,FPGA模拟接口时序等。
第一种方法与第三种方法成本较高,又由于本人单片机基础较CPLD、FPGA好,因此我决定采用了单片机来模拟PS/2接口的键盘。
用单片机模拟键盘重要的是通信协议要严格遵守,首先需要设计的是接收一字节的子程序,然后让它在液晶屏上显示出来,以便下一步的握手(键盘需要对其作出某种反应)。
握手需要键盘首先能够发送单一字节程序,在此基础上,我再对键盘的扫描、监控、散转等程序调试、安排一下,然后试着按键调试。
使这个键盘能够正常工作后,我需要将它用在数控机床项目上去,连接上我们的数控小型机床,在MACH3这个专用CNC软件平台上,按下方向键,控制电机的轴向转动。
有可能的话用该专用键盘实现点动、急停等行为。
第2章键盘接口及其通讯协议
PS/2设备接口用于许多现代的鼠标和键盘它是由IBM开发并且最初出现在IBM技术参考手册里。
现在几乎很难找到原始手册了,但从网上搜索资料发现其实这个文件描述了用于PS/2鼠标、PS/2键盘及AT键盘的接口。
下面讲到的是物理和电气接口也包括协议[1]。
2.1连接器
物理上的PS/2端口是两类连接器中的一种:
5脚的DIN或6脚的mini-DIN。
这两种连接器(在电气特性上)是十分类似的,实际上两者只有一点不同那就是管脚的排列。
这就意味着这两类连接器可以很容易用一种简单的硬件连线的适配器来转换。
你可以根据任意两种连接器的对应管脚关系做你自己的适配器。
DIN标准是由德国标准化组织(DeutschesInstitutfuerNorm)建立的。
他们的网站在http:
//www.din.de/这个站点是德文的但他们的很多网页同样可用于英文。
PC键盘可以有6脚的mini-DIN或5脚的DIN连接器。
如果你的键盘是6脚的mini-DIN而你的计算机是5脚的DIN(或者相反),这两类连接器可以用上面提到的适配器来兼容。
具有6脚mini-DIN的键盘通常被叫做PS/2键盘而那些有5脚DIN叫做AT设备,XT键盘也使用5脚DIN,但它们非常古老并且多年前就不生产了。
所有现代的为PC制造的键盘不是PS/2、AT就是USB的。
当然还有一种类型的连接器你可以在键盘上碰到。
虽然多数键盘电缆都是固定连接到键盘的,但还有一些键盘电缆不是永久挂接的,而是作为一个单独的部件。
这种电缆在一端有一个DIN的连接器(这端连接到计算机)而连接到键盘的那一端是一个SDL(屏蔽的数据连接器连接器)。
SDL是由一个叫AMP的公司建立的。
这种连接器有点像电话连接器,它有金属丝和弹簧代替管脚,用一个卡子保持它在适当的位置上。
关于这种连接器的更多信息我们可以在AMP的网站找到它。
AMP的网站:
。
尽管可能AT键盘同样可以使用SDL,但很少看见过这种连接器。
不要把SDL连接器和USB连接器混淆起来,尽管下图所示的连接器中SDL与USB很类似,但它们实际上是非常不同的。
因为SDL有弹簧和活动部件而USB连接器没有。
每种连接器的引脚定义如下图2.1所示:
图2.1各种连接器示意图
2.2简略描述
在上面提到连接器上有四个有趣的管脚:
电源地、+5V、数据和时钟,主机(计算机)提供+5V,并且键盘/鼠标的地连接到主机的电源地上。
数据和时钟都是集电极开路的,这就意味着它们通常保持高电平而且很容易下拉到地(逻辑0)。
任何你连接到PS/2鼠标键盘或主机的设备在时钟和数据线上要有一个大的上拉电阻。
置“0”就把线拉低,置“1”就让线上浮成高电平。
参考图2.2中数据和时钟线的一般接口结构。
图2.2数据线和时钟线的集电极开路接口。
图2.2中,数据与时钟分别由微控制器A端口与B端口读入。
这两条线通常保持+5V,但可以往端口C和D写入“1”来拉到地,结果是数据是D的反相,时钟是C的反相。
2.2.1PS/2传输规范
PS/2鼠标和键盘履行一种双向同步串行协议,换句话说,每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。
键盘/鼠标可以发送数据到主机而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘/鼠标的通讯,只要把时钟拉低即可。
从键盘/鼠标发送到主机的数据在时钟信号的下降沿(当时钟从高变到低的时候)被读取,从主机发送到键盘/鼠标的数据在上升沿(当时钟从低变到高的时候)被读取。
不管通讯的方向怎样键盘/鼠标总是产生时钟信号。
如果主机要发送数据,它必须首先告诉设备开始产生时钟信号(见2.4节)。
最大的时钟频率是33kHz而且大多数设备工作在1020kHz。
2.2.2数据格式
在这种双向串行协议中,所有的数据安排在字节中,每个字节为一帧,包含了11或者12个位,这些位的含义如下表2.1所示:
表2.1数据帧格式
一个起始位,总是为“0”
八个数据位,低位在前
一个校验位,奇校验
一个停止位,总是为“1”
一个应答位(仅仅在主机对设备的通讯中)
如果数据位中包含偶数个1,校验位就会置1;如果数据位中包含奇数个1,校验位就会置0。
数据位中1的个数加上校验位总为奇数(这就是奇校验)。
这是用来错误检测。
2.3设备到主机的通讯
上面提到,数据和时钟线都是集电极开路结构(正常保持高电平)。
当键盘或鼠标等待发送数据时,它首先检查时钟以确认它是否是高电平。
如果不是,那么是主机抑制了通讯,设备必须缓冲任何要发送的数据直到重新获得总线的控制权(PC键盘有16字节的缓冲区而鼠标的缓冲区仅存储最后一个要发送的数据包)。
如果时钟线是高电平,设备就可以开始传送数据。
如上所提,键盘和鼠标使用一种每帧包含11位的串行协议,每位在时钟的下降沿被主机读入,如图2.3和2.4所示,当时钟为高数据线改变状态,在时钟信号的下降沿数据被锁存。
图2.3从设备到主机的通讯
注:
通道A是时钟信号通道B是数据信号
图2.4Q键的扫描码从键盘发送到计算机
时钟频率为10-16.7kHz时,从时钟脉冲的上升沿到一个数据转变的时间至少要有5微秒。
数据变化到时钟脉冲的下降沿的时间至少要有5微秒并且不大于25微秒。
这个定时非常重要——应该严格遵循它。
主机可以在第11个时钟脉冲停止位之前把线拉低,导致设备放弃发送当前字节(这是非常罕见的)。
在停止位发送后设备在发送下个包前至少应该等待50微秒。
这将给主机时间当它处理接收到的字节时抑制发送(主机在收到每个包时,通常自动做这个)。
在主机释放抑制后设备至少应该在发送任何数据前等50微秒。
如果要发送单个字节从仿真键盘/鼠标给主机,可按如下步骤做:
(1)等待Clock=high;
(2)延时50微秒;
(3)Clock仍旧为high?
No—到第1步。
(4)Data=high?
No—放弃(并且从主机读取字节)
(5)延迟20毫秒;
(6)输出起始位“0”;
(7)输出八位数据;
(8)输出校验位和停止位;
(9)延时50微秒。
在发送这些位的每一位之后,都要检测时钟线,如果确认主机把它拉低了,就说明主机要放弃此次发送。
可按如下步骤发送单个位:
(1)设置/复位数据;
(2)延迟20微秒;
(3)把时钟拉低;
(4)延迟40微秒;
(5)释放时钟;
(6)延迟20微秒。
2.4主机到设备的通讯
主机发给设备的数据包有点不同于上节讲到的设备到主机的通讯过程。
首先PS/2设备总是产生时钟信号,如果主机要发送数据,它必须首先把时钟和数据线设置为“请求发送”状态:
通过下拉时钟线至少100微秒来抑制通讯;通过下拉数据线来应用请求发送然后释放时钟。
设备应该在不超过10毫秒的间隔内就要检查这个状态。
当设备检测到这个状态,它将开始产生时钟信号并且时钟脉冲标记下输入八个数据位和一个停止位。
主机仅当时钟线为低的时候改变数据线,而数据在时钟脉冲的上升沿被锁存。
这与发生在设备到主机通讯的过程中正好相反。
在停止位发送后,设备要应答接收到的字节,就把数据线拉低并产生最后一个时钟脉冲。
如果主机在第11个时钟脉冲后不释放数据线,设备将继续产生时钟脉冲直到数据线被释放(然后设备将产生一个错误)。
主机可以在第11个时钟脉冲(应答位)前中止一次传送,只要下拉时钟线至少100微秒。
为了便于理解,下面是主机发送数据到设备的步骤:
(1)把时钟线拉低至少100微秒;
(2)把数据线拉低;
(3)释放数据线;
(4)等待设备把时钟线拉低;
(5)设置/复位数据线发送第一个数据位;
(6)等待设备把时钟拉高;
(7)等待设备把时钟拉低;
(8)重复5-7步发送剩下的7个数据位和校验位;
(9)释放数据线;
(10)等待设备把数据线拉低;
(11)等待设备把时钟线拉低;
(12)等待设备释放数据线和时钟线。
图2.5用图形表示,图2.6以单独的时序表示了由主机产生的信号及由PS/2设备产生的信号。
注意应答位时序的改变——数据改变发生在时钟线为高的时候(不同于其它11位是当它为低的时候)。
图2.5主机到设备的通讯
图2.6主机到设备通讯的详细过程
图2.6描述了两个重要的定时条件(a)和(b)。
(a)在主机最初把数据线拉低后设备开始产生时钟脉冲的时间必须不大于15ms;(b)数据包被发送的时间必须不大于2ms。
如果这两个条件不满足,主机将产生一个错误。
在包收到后,主机为了处理数据立刻把时钟线拉低来抑制通讯。
如果主机发送的命令要求有一个回应,这个回应必须在主机释放时钟线后20ms之内被收到。
如果没有收到,则主机产生一个错误。
在设备到主机通讯的情况中,时钟改变后的5微秒内不应该发生数据改变的情况。
如果要仿真一个键盘从主机读取一个字节数据,可以按如下步骤操作:
在你的主程序中,至少每隔10毫秒检测数据线是否为低。
如果数据线已被主机拉低,则从主机读取一个字节。
(1)等待时钟线为高;
(2)数据线仍然为低吗?
不,有错误发生则放弃发送
(3)读入八个数据位;
(4)读入校验位;
(5)读入停止位;
(6)数据线仍然为0吗?
是—保持时钟直到数据=1,然后产生一个错误。
(7)输出应答位;
(8)检查校验位;
如果校验位不正确,则产生一个错误
(9)延时45微秒(给主机时间以抑制下次的传送)。
在读入这些位的每一位之后,测试时钟线是否被主机拉低,若拉低则意味着主机要放弃这次发送。
按如下次序读取每位8个数据位检验位和停止位:
(1)延迟20微秒;
(2)把时钟拉低;
(3)延迟40微秒;
(4)释放时钟;
(5)延迟20微秒;
(6)读数据线。
按如下次序发送应答位:
(1)延迟15微秒;
(2)把数据线拉低;
(3)延迟5微秒;
(4)把时钟线拉低;
(5)延迟40微秒;
(6)释放时钟线;
(7)延迟5微秒;
(8)释放数据线。
2.5PS/2键盘接口
这一节试着囊括AT和PS/2键盘各方面的问题。
它包含了如低级别信号和协议、扫描码、命令集、初始化、兼容性问题和其他各种信息。
这里还包含了关于PC键盘控制器的信息,这是由于它们非常相关。
2.5.1相关历史背景
现今仍在使用中的绝大多数流行的键盘包括:
USB键盘——最后出现的键盘被所有新式的计算机支持Macintosh和IBM/及其兼容机它们有自己相关的复杂接口并且不包含在本章中;
IBM机器兼容键盘——也叫做AT键盘或PS/2键盘,所有现代的PC都支持这个设备它们是最容易使用的接口,也是本章的主题;
ADB键盘——连接到老式Macintosh系统的Apple桌面总线,不包含在本章中。
IBM引入了一种新型的键盘作为它每种主要桌面计算机型号的配备。
最早的IBMPC和后来的IBMXT使用的我们称之为XT键盘。
它们很古老并和现代的键盘一点都不相同;关于XT键盘没有在本文中论及。
后来出现了IBMAT系统,再后来出现IBMPS/2。
他们引进的键盘我们至今还在使用。
AT键盘和PS/2键盘时十分相似的设备,但是PS/2使用了更小的连接器并且支持少量附加的特征。
虽然如此,它仍保留了与AT系统向后兼容以及一些曾经流行的附加特征(因为软件总要保持向下兼容)。
表2.2是IBM三种主要键盘的概要。
PS/2最初是AT设备的扩展。
它支持少量附加的主机到键盘的命令并以小型连接器为特征,在这两种设备之间只有这两个区别。
但是计算机硬件决不会有象兼容性这样多的标准。
由于这种原因,我们今天买到的任何键盘都和PS/2和AT系统兼容但它可能不完全支持原始键盘的所有特征
今天AT键盘和PS/2键盘仅涉及它们的连接器大小,任何给定的键盘支持或不支持哪些设置及命令是每个人猜测。
很重要的一点就是你使用现代的键盘是兼容性而不是标准的。
如果你的系统依赖于某些非一般的特征,它可能在一些系统上工作而在另一些上却不能。
现代AT-PS/2兼容键盘的特征:
(1)任意数目的按键通常是101或104;
(2)5脚或6脚连接器通常包括了适配器;
(3)双向串行协议;
(4)只有第二套扫描码集是保证的;
(5)应答所有的命令但可能不是所有的都起作用。
表2.2IBM三种键盘概要
IBMPC/XT键盘(1981)
83键
5脚DIN连接
简单的单向串行协议
采用第一套扫描集
没有主机到键盘的命令
IBMAT
键盘(1984)
(不兼容XT)
84-101键
5脚DI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数控系统 专用 键盘 设计