机械专业毕业论.doc_第1页
机械专业毕业论.doc_第2页
机械专业毕业论.doc_第3页
机械专业毕业论.doc_第4页
机械专业毕业论.doc_第5页
已阅读5页,还剩37页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本控制系统能达到的功能要求:(1)同时能压装四仪表指针;(2)每通道上限力值和下限力值可独立设定,独立显示;(3)既可对四通道统一进行启动压装和停止压装控制, 又可对每一通道进行单独控制。选择内部带EEPROM的AT89S8285作为人机子系统的核心,可以使参数在掉电时自动保存和上电时将参数自动取出作为默认值。SJA1000 是一个独立的CAN 控制器它在汽车和普通的工业应用上有先进的特征,它和PCA82C200 在硬件和软件都兼容;SJA1000 被设计为全面支持CAN 2.0B 协议。按键用于对四通道的上下限压力设置,具有输入09数字和设定四个功能键,因此设计了4X5的矩阵按键。液晶模块显示所输参数,具有四行显示功能。软件设计,由于C语言编程时软件相当简洁,尤其适用于较长的程序编写,更重要的是它具有良好的可移植性。因此优先选择C语言进行编程。关键词: AT89S825 SJA1000 矩阵按键 液晶模块摘要II东北石油大学高等教育自学考试毕业设计(论文)目录前言1第1章 汽车组合仪表指针压装控制器的设计要求21.1 功能与性能设计要求21.1.1功能设计要求21.1.2性能设计要求21.2界面设计要求3第2章 汽车组合仪表指针压装控制器的设计方案42.1控制器总体框架42.2人机子系统与控制子系统的通信方式5第3章 汽车组合仪表指针压装控制器的人机子系统设计73.1 SJA1000的硬件结构与特点73.1.1 SJA1000的特性73.1.2 SJA1000总体说明83.1.3 SJA1000内部结构方框图83.1.4 SJA1000芯片管脚排列93.1.5 SJA1000功能说明113.2人机子系统的硬件设计133.2.1 基于89S8285的微处理器模块设计133.2.2 CAN总线接口设计173.2.3 矩阵按键电路设计183.2.4 204字符点阵液晶模块及其接口模块设计213.2.5人机子系统电路图223.3 人机子系统软件设计223.3.1 人机子系统软件模块223.3.2 人机子系统CAN接口程序设计233.3.3 人机子系统的按键程序设计273.3.4 人机子系统的液晶模块接口程序设计283.3.5 人机子系统主程序设计29第4章 结论36致谢41参考资料37IV前言组合仪表是汽车的重要部件,对于汽车的安全运行至关重要。自从20世纪70年代末期电子显示仪表以来,人们对汽车性能要求越来越高。随着电子技术的进步,新型传感器、显示元器件、微处理器、智能执行机构、软件技术、多通道传输等的发展,汽车仪表板的电子化微机化已成为必然趋势。经过“六五”至“八五”三个五年计划的技术改造与引进,我国汽车仪表在仿制基础上得到了长足发展。电热式和电磁式仪表技术已经成熟,目前正向着全电子式仪表发展。但是我国进行的汽车仪表行业的产品开发,至今还没有摆脱仿制的樊篱,很少具备自主开发的能力,技术含量低、工艺装备差、创新能力低、效率不高。汽车仪表行业缺少配套同步的高、精、尖加工设备和检测设备,从而严重限制了国内汽车仪表行业的发展。组合仪表通常由以下几部分组成:车速表(车速显示采用指针型式:0125Hz脉冲信号输入,信号电压幅度0.2-8V,机芯有信号放大及整形输出功能。指示从0180Km/h,角度为229速比为:1:637)、里程表、(包括单次行程)、转速表、水温表、油量表、照明系统、报警指示系统等。目前除里程表(包括单次行程)采用数码或液晶显示外,车速表、转速表(转速表采用指针形式,对应发动机转速08000转/分钟,角度为155.5。)、水温表、油量表等大多还是采用传统的指针式指示方式,其原因是人的习惯问题。国内组合仪表生产厂对于仪表指针的压装基本上还是以手工压装为主。 此次设计的汽车组合仪表指针压装系统就是一种符合当前的生产需要及要求的汽车仪表指针压装压装系统。其由控制子系统和人机子系统两部分构成。控制子系统主要执行输入和输出,人机子系统主要负责参数的按键设定和信息显示。两者之间通过CAN工业总线进行通信。因此研究开发此类具有自动检测和自动压装的组合仪表压装系统,具有重要的现实意义。第一章 汽车组合仪表指针压装控制器的设计要求设计是建立在对课题有了一定了解之上的,通过该次毕业设计初期资料的搜集和比较,了解到汽车组合仪表指针压装系统包括控制器和气压传动机械系统两大部件,其运行环境为典型的工业环境。由于此次毕业设计只涉及到控制方面,所以气动传动机械系统在这里就不作介绍了,下面主要围绕控制器的设计问题进行讨论。对其功能、性能和操作界面的设计要求如下所述。1.1 功能与性能设计要求1.1.1功能设计要求根据当前大多数汽车的仪表结构,考虑到生产过程中的效率及工人在操作时的简便性,故将控制器功能设计如下:(1)同时能压装四仪表指针。适合目前大多数组合仪表为四仪表系统的情况,简称“四通道”。每通道均能独立检测压装过程中的压力值,并根据设定的上限和下限力值实施控制和欠力或过力提示,以便重压和人工复检。(2)每通道上限力值和下限力值可独立设定,独立显示。(3)既可对四通道统一进行启动压装和停止压装控制,又可对每一通道进行单独控制。(4)从启动到完成的工作周期,宜控制在2S左右,以提高生产效率。1.1.2性能设计要求查阅目前大多数汽车生产商的生产要求,我们将控制器性能设计如下:(1)能适应工矿企业的生产环境和8小时两班制的运行。(2)操作简便直观。(3)成本低。1.2界面设计要求为了符合先前制定的对功能和性能上的要求,我们设计的控制器的界面方案如下所述:(1)采用按键直接进行每通道的参数设定。(2)各通道显示信息包括: B1:XXXX XXXX XXXX Y B2:XXXX XXXX XXXX Y B3:XXXX XXXX XXXX Y B4:XXXX XXXX XXXX Y其中,Bx表示通道号,XXXX XXXX XXXX依次表示为下限力、上限力和实测力(单位:10克);Y表示压装结束后压装情况;0:表示正常;1:表示超力;2:表示欠力。(3)压装过程和压装完成与否等信息的必要提示(LED作为指示灯,蜂鸣器作声音提示和告警)。第二章 汽车组合仪表指针压装控制器的设计方案鉴于上一章中对功能和性能上的设计要求,在该次毕业设计初期,我们提出了两套方案,即采用单一的CPU进行控制以及两个子系统各自使用一个CPU。所以在设计汽车组合仪表指针压装控制器首要考虑的问题是:(1)集中控制(单CPU方案)还是主从控制(双CPU方案)。如果采用单CPU方案,如何保证控制的实时性和程序的结构化风格成为了主要问题;如过采用双CPU方案,则如何实现两CPU之间信息的可靠传递和快速传递是问题的主要所在。(2)信息显示的介质问题,即采用数码管显示、字符液晶模块还是点阵图形模块等。2.1控制器总体框架我们通过对市面上现有产品的比较,以及资料的查询,从提高控制的实时能力和降低系统的设计难度两个主要方面考虑,压装控制器采用了双CPU方案,对应为两个子系统,即控制子系统和以下章节中所述的人机子系统。结构简图如图2-1。89C52 89S8285204字符液晶模块45矩阵键盘4路行程输入4路电磁阀控制2路启动按钮 1路停止按钮系统的结构组成如图2-1。控制子系统主要执行输入和输出。其中4路行程开关量输入作为四个仪表压装结束的标志信号,控制了每一通道的工作周期;4路电磁阀控制用来按设计要求对各路压装臂实施压下和回升控制,通过对电磁阀的得电和失电控制实现;2路启动按钮具有互锁特性,安装在面板的左右两侧,其目的是确保只有2路同时有效时,压装臂才能下压,避免人身伤害;1路停止按钮控制压装臂的回升。而人机子系统主要负责参数的按键设定和信息显示。2.2人机子系统与控制子系统的通信方式通信最讲究的就是其实时性,而且我们采用的是双CPU方案,两子系统之间的通信是双向的,所以此次设计中人机子系统和控制子系统的信息传递应具有以下特点:(1)实时性。在压装过程中的力值信息必须能及时显示和处理。(2)互动性。信息传递是双向的,人机系统向控制子系统传递的主要是设定参数和通道选择信息;控制系统向人机系统传递的是力值数据等。(3)流量小。每次传送的信息都不多,即字节数不大。考虑到运行环境等其他因素,选择CAN工业总线作为两个子系统之间的信息通信介质,主要理由有:(1)CAN本身是一种汽车工业标准总线,具有很高的环境适应能力。(2)CAN总线是一种多主总线,通信部分主从;而且采用非破坏性仲裁技术,不会出现瘫痪问题,较之RS-485总线等更可靠。(3)CAN总线的速率高,最高可达1Mbps(此时对应通信距离为40m)(4)与微处理器接口简单。CAN总线具有2.0A 和2.0B 两种协议,对应两种工作模式:BasicCAN 模式和PeliCAN模式。该次设计的控制器采用后者,理由将在CAN总线接口设计这一小节中给出。由于CAN总线的每个报文最多只能发送8字节数据,因此通信协议的制定是非常关键的一个问题。这里采用数据区首字节作为信息代码字节,传递发送数据的性质。简单的说分为三种情况(出现的数据均为十六进制数):(1)如果是人机子系统向控制子系统发送数据,则首字节为01、02、03、04,分别对应四个通道的设定参数。(2)如果是控制子系统向人机子系统发送数据,则首字节为A1、A2、A3、A4,分别对应四个通道的力值数据。(3)任何一方收到数据后,必须校验和回送。校验时根据计算机计算得到的累加和字节与接收得到的累加和字节两者比较来实现的,相一致说明收发正确,否则不正确,丢弃本次数据。校验正确后必须回送数据,为避免回送死循环,回送报文是将接收到的报文的数据首字节改为AA后形成的。以上是我们对CAN工业总线的一些肤浅的了解,鉴于CAN工业总线在设计与生产中的重要地位,同时CAN工业总线在该次设计中是两子系统之间进行信息传递的关键所在,所以我在下面有关信息传输的模块设计中将穿插介绍CAN工业总线。第三章 汽车组合仪表指针压装控制器的人机子系统设计我们设计电路时借助搜集来的资料,决定选用SJA1000作为CAN总线控制器,由于此前从未接触过有关的设计,下面先针对SJA1000芯片做简单介绍。3.1 SJA1000的硬件结构与特点3.1.1 SJA1000的特性 和PCA82C200 独立CAN 控制器引脚兼容 和PCA82C200 独立CAN 控制器电气兼容 PCA82C200 模式即默认的BasicCAN 模式 扩展的接收缓冲器64 字节先进先出FIFO 和CAN2.0B 协议兼容PCA82C200 兼容模式中的无源扩展帧 同时支持11 位和29 位识别码 位速率可达1Mbits/s PeliCAN 模式扩展功能-可读/写访问的错误计数器-可编程的错误报警限制-最近一次错误代码寄存器-对每一个CAN 总线错误的中断-具体控制位控制的仲裁丢失中断-单次发送无重发-只听模式无确认无活动的出错标志-支持热插拔软件位速率检测-验收滤波器扩展4 字节代码4 字节屏蔽-自身信息接收自接收请求 24MHz 时钟频率 对不同微处理器的接口 可编程的CAN 输出驱动器配置 增强的温度适应-40-+1253.1.2 SJA1000总体说明SJA1000 是一种独立控制器用于移动目标和一般工业环境中的区域网络控制CAN 它是PHILIPS半导体PCA82C200 CAN 控制器BasicCAN 的替代产品而且它增加了一种新的工作模式PeliCAN ,这种模式支持具有很多新特性的CAN 2.0B 协议。3.1.3 SJA1000内部结构方框图SJA1000芯片方框图如下:图3-1 SJA1000内部结构方框图3.1.4 SJA1000芯片管脚排列SJA1000的管脚及管脚排列如表3-2和图3-1所示:符号引脚说明AD7-AD02, 1, 28-23多路地址/数据总线ALE/AS3ALE输入信号(Intel),模式AS输入信号(Motorola模式)/CS4片选输入低电平,允许访问SJA1000(/RD) /E5微控制器的/RD信号(Intel),模式或E使能信号(Motorola模式)/WR6微控制器的/WR信号(Intel)模式或RD/( /WR )信号(Motorola模式)CLKOUT7SJA1000产生的提供给微控制器的时钟输出信号;时钟信号来源于内部振荡器且通过编程驱动时钟控制寄存器的时钟关闭位可禁止该引脚VSS18接地XTAL19输入到振荡器放大电路;外部振荡信号由此输入;注1XTAL210振荡放大电路输出;使用外部振荡信号时左开路输出;注1MODE11模式选择输入1=Intel模式0=Motorola模式VDD312输出驱动的5V电压源TX013从CAN输出驱动器0输出到物理线路上TX114从CAN输出驱动器1输出到物理线路上VSS315输出驱动器接地/INT16中断输出,用于中断微控制器;/INT在内部中断寄存器各位都被置位时低电平有效/INT是开漏输出,且与系统中的其它/INT是线或的;此引脚上的低电平可以把IC从睡眠模式中激活/RST17复位输入,用于复位CAN接口(低电平有效);把/RST引脚通过电容连到VSS, 通过电阻连到VDD可自动上电复位VDD218输入比较器的5V电压源RX0 RX119,20从物理的CAN总线输入到SJA1000的输入比较器;支配(控制)电平将会唤醒SJA1000的睡眠模式;如果RX1比RX0的电平高,就读支配(控制)电平,反之读弱势电平;如果时钟分频寄存器的CBP位被置位,就旁路CAN输入比较器以减少内部延时(此时连有外部收发电路);这种情况下只有RX0是激活的;弱势电平被认为是高而支配电平被认为是低VSS221输入比较器的接地端VDD122 逻辑电路的5V电压源表3-2 SJA1000管脚注解图3-1 SJA1000管脚排列图3.1.5 SJA1000功能说明1.CAN 控制模块的说明1) 接口管理逻辑(IML)接口管理逻辑解释来自CPU 的命令,控制CAN 寄存器的寻址,向主控制器提供中断信息和状态信息。2) 发送缓冲器(TXB)发送缓冲器是CPU 和BSP 位流处理器之间的接口,能够存储发送到CAN 网络上的完整信息。缓冲器长13 个字节,由CPU 写入BSP 读出。3) 接收缓冲器(RXB ,RXFIFO)接收缓冲器是验收滤波器和CPU 之间的接口,用来储存从CAN 总线上接收和接收的信息。接收缓冲器(RXB 13 个字节)作为接收FIFO( RXFIFO 长64 字节)的一个窗口,可被CPU 访问。CPU 在此FIFO 的支持下,可以在处理信息的时候接收其它信息。4) 验收滤波器(ACF)验收滤波器把它其中的数据和接收的识别码的内容相比较,以决定是否接收信息。在纯粹的接收测试中,所有的信息都保存在RXFIFO 中。5) 位流处理器(BSP)位流处理器是一个在发送缓冲器(RXFIFO )和CAN 总线之间控制数据流的程序装置。它还在CAN 总线上执行错误检测、仲裁、填充和错误处理。6) 位时序逻辑(BTL)位时序逻辑监视串口的CAN 总线和处理与总线有关的位时序。它在信息开头“弱势-支配”的总线传输时同步CAN 总线位流(硬同步),接收信息时再次同步下一次传送(软同步)。BTL 还提供了可编程的时间段来补偿传播延迟时间、相位转换(例如由于振荡漂移)和定义采样点和一位时间内的采样次数。7) 错误管理逻辑(EML)EML 负责传送层模块的错误管制。它接收BSP 的出错报告通知BSP 和IML 进行错误统计。2.CAN 控制器的详细说明SJA1000 在软件和引脚上都是与它的前一款PCA82C200 独立控制器兼容的,在此基础上它增加了很多新的功能.为了实现软件兼容SJA1000 增加修改了两种模式: BasicCAN 模式与PCA82C200 兼容 PeliCAN 模式扩展特性工作模式通过时钟分频寄存器中的CAN 模式位来选择复位。默认模式是Basic CAN 模式。1) CAN 2.0BSJA1000 被设计为全面支持CAN 2.0B 协议这就意味着在处理扩展帧信息的同时扩展振荡器的误差被修正了在Basic CAN 模式下只可以发送和接收标准帧信息11 字节长的识别码如果此时检测到CAN 总线上有扩展帧的信息如果信息正确也会被允许且给出一个确认信号但没有接收中断产生。2) Basic CAN 和Peli CAN 模式的区别在Peli CAN 模式下SJA1000 有一个含很多新功能的重组寄存器SJA1000 包含了设计在PCA82C200中的所有位及一些新功能位Peli CAN 模式支持CAN 2.0B 协议规定的所有功能29 字节的识别码3) SJA1000 的主要新功能 标准帧和扩展帧信息的接收和传送 接收FIFO 64 字节 在标准和扩展格式中都有单/双验收滤波器含屏蔽和代码寄存器 读/写访问的错误计数器 可编程的错误限制报警 最近一次的误码寄存器 对每一个CAN 总线错误的错误中断 仲裁丢失中断以及详细的位位置 一次性发送当错误或仲裁丢失时不重发 只听模式CAN 总线监听无应答无错误标志 支持热插无干扰软件驱动位速检测 硬件禁止CLKOUT 输出3.2人机子系统的硬件设计通过第二章中得出的控制器总体框架及其功能和性能上的要求,所以人机子系统的硬件设计主要是围绕以下模块展开的:(1)微处理器及其辅助模块。包括微处理器选型、复位电路系统、声光提示电力等。(2)CAN总线接口模块。包括CAN总线控制器模块、总线驱动电路。(3)45矩阵键盘模块。包括行列信号的选择、按键的分配与功定义。(4)204字符液晶模块。3.2.1 基于89S8285的微处理器模块设计考虑到当前设定参数必须能在掉电时自动保存和上电时自动取出作为默认值,选用内部带EPROM的微处理器89S8285作为人机子系统的核心。相应微处理器及其辅助模块的设计如图3-2所示。其详细电路图请参见所附电路图纸 单片机复位电路图 锁存器74HC273 3-2 人机子系统微处理器模块及锁存器电路图在图中,微处理器的复位信号由MAX813L 产生,由于其为高电平有效,与CAN总线控制器SJA1000的复位电平要求正好相反,为简化和节省成本,系统中使用Q1(9012)PNP三极管进行反相处理,其中R2为下拉电阻。由于系统中使用了较多的声光提示,共7路,如果直接采用微处理器端口,则出现资源无法满足要求的问题。因此,本系统采用扩展并行端口的方法,即使用U6(74HC273)8位锁存器作为微处理器的存储接口芯片,数据/地址总线扩展了8位并行输出口,直接使用写指令进行I/O操作,以满足7路声光提示的需要。7路输出定义为:(1)LED1-LED4:4通道选压指示灯,由对应的通道选压“乒乓”键切换。(2)WLED:表示设定参数有效并正确发送,系统可以压装工作指示灯。此灯亮起,则按启动键后可以压装操作。(3)YLED:表示压装过程中出现一通道以上过压或欠压状况,该指示灯在压装周期结束后自动点亮。(4)BEEP:蜂鸣器声音提示和告警。此输出经Q2(9012)驱动蜂鸣器,由于蜂鸣器的驱动电流远大于发光二极管,故电阻R12必须选择为1K左右,否则蜂鸣器音量过小。3.2.2 CAN总线接口设计CAN工业总线是我们该次设计中两子系统之间进行通信的介质,在第二章中我只是简明的道出了选择理由,鉴于其作为通信中的重要环节,下面再对其作下介绍。CAN总线是重要的现场总线之一,全称为“Controller Area Network”,即控制器局域网,是一种全数字化双向和多主的现场总线,其在设计方面具有高性能高可靠性,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。 同时CAN工业总线遵从OSI 模型,分为7层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN的规范定义了模型的最下面两层:数据链路层和物理层。而CAN工业总线主要工作在数据链路层和物理层。一个由CAN 总线构成的单一网络中,理论上可以连接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用Philips P82C250作为CAN收发器时,同一网络中允许挂接110个节点。CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。CAN能够使用多种物理介质,例如双绞线、光纤等。最常用的就是双绞线。多样的传输介质选择,加上低成本 、极高的总线利用率、 很远的数据传输距离(长达10Km) 、高速的数据传输速率(高达1Mbit/s) 、可根据报文的ID决定接收或屏蔽该报文 、可靠的错误处理和检错机制、 发送的信息遭到破坏后,可自动重发 、节点在错误严重的情况下具有自动退出总线的功能 、报文不包含源地址或目标地址(仅用标志符来指示功能信息、优先级信息)等优点,使得CAN工业总线成为了本次设计中人机字系统与控制子系统两者之间进行通信的接口模块的首选。 有关CAN工业总线的一些控制器说明在3.1节SJA1000芯片介绍时也穿插的说明了,这里就不再赘述了。CAN总线接口包括总线控制和总线驱动两个部分,前者选用PHILIPS半导体公司的新产品SJA1000,后者选用82C250。关于SJA1000的有关结构及特性在3.1节中进行了说明,这里也不再赘述了。SJA1000与微处理器的接口非常简单,AD0-AD7直接与89S8285的低8位数据/地址复用口,MODE接+5设置SJA1000控制器为INTEL模式,中断输出信号与微处理器的连,使CAN通信可以采用中断或查询两种方式。两子系统的时钟晶振统一采用12MHZ,频率调整电容C3、C4一般取15-30pF,设计和调试中使用20pF,完全能正常工作。R19、R20为限流保护电阻,为避免当驱动器失效时出现过流导致驱动器损坏,可取为200-500,设计中取为390。R4为终端电阻,取为120.82C250的RS脚为工作模式选择位,接地则该芯片工作于高速模式,接高电平则该芯片工作于待机模式。本系统通过电阻R3将芯片设定于斜率控制模式,电阻值通常为16-140K,这里取为20-33K,这时CAN总线应工作于低速模式,可提高CAN总线抵抗射频干扰的能力。在这种情况下,可直接使用非屏蔽双绞线或平行线作为总线,而不必采用屏蔽电缆。电路排列如图4-3所示。详细电路布置请参见论文所附CAN接口模块电路图纸。 图3-3 CAN接口模块电路图3.2.3 矩阵按键电路设计为了方便之后的设计,在此先就键盘简单介绍。键盘是一组按键的组合,它是最常用的单片机输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机通信。按键是一种常开型按钮开关,常态时,按键的两个触点处于断开状态,按下键时它们才短路,。键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专门的硬件译码器实现,并产生键编号或键值的称为编码键盘;靠软件来识别的称为非编码键盘。按键稳定闭合时间的长短是由操作人员的动作来完成的,不可避免的会出现抖动。键抖动会引起一次按键的被误读多次。为了确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键状态,并且必须判别到键释放稳定后再作处理。按键的抖动,可以用硬件或软件两种方法消除。通常,按键比较少时,可以用硬件方法去处抖动。按键比较多时,常用软件方法去处抖动,即检测出键闭合后执行一个延时程序,产生5-10MS的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认真正有键按下。当检测到按键释放后,也要给出5-10MS的延时,待后沿抖动消失后才能转入该键的处理程序。键盘可以分为独立连接式和行列式两类,每一类按其译码方法又都可以分为编码和非编码式两种类型。为了减少键盘与单片机接口时所占用的I/O线数目,在键数目较多时,通常都将键盘排列成行列矩阵式。每一水平线与垂直线的交叉处不通,而是通过一个按键来相连通。利用这种行列矩阵结构只需N条行线和M条列线,即可组成具有NM个按键的键盘。当确认有按键按下后,下一步就要识别哪一个按键被按下。对键的识别通常有两种方法:一是常用的逐行的扫描查询法;另一种是具有较快速度的线反转法。下面介绍其矩阵键盘工作原理。首先判别键盘中有无键按下,由单片机I/O口向键盘输出全扫描字,然后读入行线状态来判断。方法是:向列线输出全扫描字,把全部列线置为低电平,然后将行线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平,从而使行输入不全为1。判断键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行输入状态实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不再此列列如果不全为1 ,则所按下的键必在此列,而且是在于零电平行线相交的交点上的那个键。键盘上的每一个键都有一个键值。键值赋值的最直接办法是将行、列线按二进制顺序排列,当某一键按下时,键盘扫描程序执行到给该列置0电平,若读出各行状态为非全1,这时的行、列数据组合成键值。单片机对非编码键盘扫描的控制方式编码键盘需要复杂的硬件编码器或单独由一片单片机芯片控制产生ASCII码,如APPLE II,IBM-PC/XT机的ACSII码键盘都由单片机控制。在单片机系统中,为了节省硬件,通常采用行列矩阵式非编码键盘,单片机对它的控制有以下三种方式:(1)程序控制扫描方式。即查询方式。(2)定时扫描方式,利用单片机内部的定时器产生中断(例如10MS),CPU相应中断,对键盘进行扫描一次。定时扫描方式的硬件电路与程序扫描方式相同。(3)中断扫描方式,引起外部中断(INT0非和INT1 非)后,CPU相应中断,对键盘进行扫描。要根据应用系统中的CPU“忙”、“闲”状态以及所需案件数目的多少来进行工作方式的选择。为简化系统,同时满足系统的设计要求,我们采用45矩阵键盘作为人机子系统参数设定的界面。该矩阵键盘没有使用通用并行接口芯片或专用键盘接口芯片,而是直接采用微处理器的P1并口和P3.2作为扫描所需要的4条行线和5条列线,由软件模拟行线输出和列线输入,如图所示。按键的功能定义将在软件设计的有关部分予以阐述。矩阵键盘如图3-4所示。详细电路布置请参见所附电路图纸。图3-4 矩阵键盘3.2.4 204字符点阵液晶模块及其接口模块设计液晶显示模块主要是负责显示所输参数,即接收到的控制子系统的信息显示。字符液晶模块一般与基于HD44780的液晶模块兼容,硬件接口信号也相同。接口图如图3-5所示。具体的电路布置请参见所附电路图纸。下面说明三点:(1)本系统中该模块的片选信号LCDIN接2.7,采用线选法。(2)A0、A1信号即为地址总线的低2位,在本系统中可以使用地址总线的A8、A9来替换,这样做的好处是,可以省掉图中的U5(74HC373)。(3)204液晶模块价格相当低廉,一般小字符带LED背光类型的,市场零售价格大约为70元左右,大字符类型的价格高不少。本系统采用小字符类型的,型号为HS2004,模块大小为116mm37mm,字符大小为5.553.2mm。图3-5 液晶显示模块电路图3.2.5人机子系统电路图详细人机子系统电路原理图请参见所附图纸。3.3 人机子系统软件设计3.3.1 人机子系统软件模块软件的设计基于硬件,所以该次设计中人机子系统的软件设计部分主要包括主程序、按键处理、CAN接口及液晶显示等四个主要模块,在设计过程中我们发现设计的重点在按键处理部分,难点在CAN接口部分。各模块的功能及其相互关系描述如下:(1)CAN接口模块:负责与控制子系统的通信,将按键模块设定的上限力、下限力等参数发送到控制子系统;同时接收控制子系统传送的各通道力值,并送显示模块显示。(2)按键处理模块:用于按键的识别与管理,通过按键模块得到参数值,这些信息一方面送控制子系统;另一方面,送存微处理器内部的EPROM。(3)液晶显示模块:是按键设定过程的人机界面。在设定完成后,接收控制子系统的信息并按要求显示。(4)主程序模块:负责协调和管理所有模块。3.3.2 人机子系统CAN接口程序设计CAN接口程序的设计必须严格按照SJA1000控制器的有关规范。关于SJA1000的编程主要包括以下几个方面:初始化、接收与发送、总线上主要错误分析与处理。1)初始化CAN控制器的初始化要点是:(1)工作模式为PeliCAN模式,帧格式采用扩展帧;(2)通信波特率为50Kbps;(3)采用双滤波验收,即4字节的接收代码寄存器ACR0-ACR3分为前后两组,前组为接收节点(目标节点)的ID,后组为发送节点的ID,这样报文由谁发送、发送给谁都直接明了。(4)在初始化有关寄存器前,必须使SJA1000由工作模式进入复位模式,否则无法完成初始化操作。SJA1000初始化流程图如下。具体的程序请见程序清单。初始化开始关闭主控制器CAN中断源进复位模式判是否开始复位设置时钟分配:1.PeliCAN或BasicCAN模式2.CAN输入比较器3.CLK OUT 频率4.TX1频率设置接收标志位设置总线定时器设置输出控制进工作模式请求复位CAN中断启用,主控制器CAN中断源启用配置完成YNNY图3-6 SJA1000初始化流程图2)发送报文由于发送是可控的,因此通常采用查询法。一个报文要被正常发送,必须经过以下两个步骤:步骤1:将待发送信息按SJA1000的要求送入系统发送缓冲区(不是CAN控制器发送缓冲区),由于本系统采用PeliCAN模式和扩展帧,因此缓冲区总共为13字节。包括帧信息(1字节)、ID码(4字节)及8字节数据。步骤2:按照流程图的要求进行报文的发送。需要注意的是,在将此系统发送缓冲区数据移至CAN控制器发送缓冲区前,必须判断缓冲区是否被锁定。如果缓冲区被锁定,则不能写入数据。读总线状态判是否在接收判上次发送是否成功判发送缓冲区是否被锁定将系统发送缓冲区信息送入CAN控制器发送缓冲区 启动发送YNNNYY图3-7 报文发送程序流程图对于步骤1,其程序请见程序清单。3)接收报文为提高报文接收的实时性,接收报文采用了中断法。即当CAN总线控制器收到一帧有效报文(通过滤波验收),其INT引脚跳变为低电平触发微处理器的外中断1,通过中断子程序将报文读入微处理器。其程序流程如图所示。读CAN总线状态总线关闭否清除中断位数据溢出否接收缓冲区有数据吗清中断,恢复总线清溢出标志并释放接收缓冲区从接收缓冲区读入数据是否要回送清回送标志设置回送标志释放接收缓冲区设置成功接收报文标志释放错误捕捉寄存器中断返回释放仲裁丢失寄存器YNYNNYNY图3-8 中断接收程序流程图中断接收程序请参见程序清单。3.3.3 人机子系统的按键程序设计人机子系统45矩阵键盘的分配如下:(1)0-9共10个数字键。(2)4个设置键,分别用于选择对应的4个仪表是否需要压装,均为“乒乓”键,其状态由相应的LED指示。(3)4参数设定功能键,即功能键、确认键、清除键和参数键。按键部分程序设计按键程序设计一般包括两个方面:按键的捕捉与识别和按键的功能实现。两者相辅相成,前者是基础,后者是关键。在正确识别按键的基础上,如何正确进行处理以实现案件的功能是每个智能系统的关键所在,不同的系统有不同的按键功能,同一按键在不同状态下也可以有不同的作用(即“一键多用”,又称之为“软键” )。关于按键的扫描识别,原理及主要思想是:行扫描线逐行输出低电平,通过列输入是否存在低电平得到是否按键的信息(即按键捕捉);如果捕捉到按键,则延时几十毫秒以去除按键的抖动;再次判断按键信息,如果再次捕捉到按键,则说明该键按下了。进行按键处理程序设计前,首先要做的是必须正确合理的定义按键的功能,在此基础上确定按键处理的算法。此次系统的按键功能定义及其处理算法用语言描述如下:(1)按“功能键”开始参数设置或更改,参数的设置或更改采用10个“数字键”,每项参数设置完成或要切换参数项,则必须使用“确认键” ;在设置或更改过程中,如果要清除,可用“清除键”将整个参数项清除;要结束参数设置或更改状态,则必须再次按“功能键” 。(2)开机或复位后,如不需要进行参数的设置或更改,则使用EPROM的默认值,但必须按“参数键”进行确认,并将默认值传送到控制子系统,否则无法正常工作。该程序的流程图如下:功能键或参数键是否按下是参数键吗第一次功能键吗进入参数编辑状态第二次功能键吗等待按键并散转数字键处理光标下移参数项下移当前参数项清除通道压装状态求反设置第2次按键标志发送参数返回YYNNNYYN图3-9 按键模块设计流程图此模块程序请参见所附程序清单。3.3.4 人机子系统的液晶模块接口程序设计单片机应用系统中使用的显示器主要有发光二极管显示器,简称LED(LIGHT EMITTING DIODE);液晶显示器,简称LCD(LIQUID CRYSTAL DISPLAY);近年也有配置CRT显示器的。前者价格低廉,配置灵活,与单片机接口方便;后者可进行图形显示,但接口比较复杂,成本也比较高。此次设计中采用前者,发光二极管显示器LED。液晶模块的接口程序分为两个层次:(1)低层接口:包括对模块的初始化、判断模块的忙状态等;(2)应用接口:包括设置光标位置、读取模块显示RAM的显示信息等。功能代码设置为38H:4行8位总线。液晶模块接口程序请见程序清单。3.3.5 人机子系统主程序设计主程序是整个软件的核心。人机子系统的软件设计算法描述如下:(1)系统初始化后,首先从EPROM中调出上次设定的参数,送显示缓冲区显示(非编辑状态)。(2)等待按键,按“参数键”,则该参数作为默认值传送到控制子系统,并点亮READY指示灯表示可以工作;按“功能键” ,则开始设置新参数直至完成,后按“参数键”参数被传送到控制子系统并显示。(3)进入工作状态后,接收控制子系统发送的各通道力值数据并实时显示。(4)所有告警(除过压和欠压告警外),均表示为死机,可通过不同的告警声区分。(5)一个工作循环结束后,待命进行下次工作循环。从上述描述可知,存在两种数据通信形式,因此报文的通信协议分别设计如下:(1)向控制子系统发送报文,规约如下:帧格式字节,验收代码字节1,验收代码字节2,验收代码字节3,验收代码字节4,信息代码字节,下限力值压缩BCD码字节,下限力值压缩BCD码字节2,上限力值压缩BCD码字节,上限力值压缩BCD码字节2,该通道是否压装代码字节,从信息代码字节开始的6字节累加和,保留字节(未用)。信息代码字节分别为:01-04,对应1-4 通道。(2)接收控制子系统报文,规约如下:帧格式字节,验收代码字节1,验收代码字节2,验收代码字节3,验收代码字节4,信息代码字节,压力数据高字节,压力数据低字节(均为十六进制数),0X00,0X00,0X00,6字节累加和字节,保留字节(未用)。其中信息代码字节分别为:A1:表示第1仪表;A2:表示第2仪表;A3:表示第3仪表;A4:表示第4仪表;A5:表示一个工作周期结束。工作周期结束的数据报文的帧格式定义为:信息代码字节,第1仪表超压或欠压情况字节,第2仪表超压或

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论