DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1084|回复: 0
打印 上一主题 下一主题

[安防] 基于89C51单片机的数字视频监控系统键盘及报警控制卡设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:48:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                      摘要:分析了PC键盘与主机之间的通信方式,给出了基于89C51单片机的数字视频监控系统键盘及报警控制卡的软硬件设计方法。
?
  关键词:键盘;单片机;串行通信
?
  键盘是数字视频监控录像系统中最重要的输入设备之一,是人机接口的重要组成部分。目前常用的工业控制计算机键盘除配置电子锁开关防止非法键盘输入外,与PC键盘并没有多大区别。这种键盘不仅键数多,操作不灵活,而且通常只能作为输入设备,主机无法通过键盘与外设进行通信。本文在分析PC机键盘通信方式的基础上,设计出以89C51单片机为核心的数字视频监控系统键盘及报警控制卡,该卡具有键盘通信和输入输出报警两种功能,采用标准PCI卡的结构,但不占用主机硬件资源。其中,报警部分有4路输入和4路输出,可以与标准的报警传感器相连;键盘部分有16个键,通信方式与PC机完全兼容。采用这种控制卡,不仅可以节省视频监控系统中常用的专用报警解码器,而且能够实现在不占用主机硬件资源的情况下实现与外设的双向通信,利用这个特性,可以及时发现系统的异常情况并加以解决,从而大大提高目前普遍采用的基于WINDOWS操作系统的数字视频监控录像系统的可靠性。
?
1 键盘与主机的通信方式
?
  主机通过键盘接口与键盘联络,主机与键盘的通信,实际上是键盘接口与键盘的通信。PC机键盘接口采用Intel8042芯片作为控制器,接收键盘扫描码以及向键盘发送命令。除了电源线和地线之外,键盘与主机之间还有两条双向通信线:时钟线和数据线。采用串行传送方式,在时钟脉冲作用下同步地收发数据,既可以向主机传送键盘响应或键盘扫描码,也可以接收来自主机的键盘命令。主机通过设置数据线和时钟线的状态,指导键盘收发数据:
(1)时钟线为低电平,禁止键盘传送数据;
(2)时钟线为高电平,数据线为低电平,通知键盘接收命令或参数;
(3)时钟线和数据线都为高电平,允许键盘传送数据;
?
1.1 键盘向主机发送数据
  由于键盘输入是异步的,且具有实时性,所以主机系统以中断方式支持键符的随机输入。每当键盘接口接收完从键盘送来的串行扫描码时,即向中断系统发出一个键盘中断,若CPU响应该中断,则由键盘中断程序读取此扫描码,经转换后成为系统扫描码,存到键盘缓冲区。键盘发送数据时,数据线和时钟线都由键盘控制。键盘发送一个字节的数据格式如图1所示。


?
图1?? 键盘串行数据格式
  键盘首先检测时钟线和数据线的状态,当两者皆为高电平时,开始传送数据。依次传送起始位、8位数据位(低位在前)、校验位和停止位。每传送一位,时钟线同步地产生一个脉冲。当主机收到该脉冲后,将时钟线置成低电平并保持一段时间,禁止键盘继续发码,以便于检验该数据的正确性,并产生中断、进行代码转换和执行相应的操作。如果检验出错,就向键盘传送重发命令0FEH,要求重送,键盘向主机发送数据采用奇校验方式。
?
1.2?? ?键盘接收主机命令和参数
  主机首先将时钟线置为低电平,随后将数据线置为低电平,延时大约200μs后,将时钟线置为高电平。当键盘检测到这一状态后,开始接收主机命令,接收数据格式与发送的一样。键盘依次接收1个起始位、8个数据位、1个校验位、1个停止位。特别值得注意的是,在接收键盘命令或参数时,虽然数据是由主机发向键盘的,但是时钟脉冲是由键盘产生的。主机在时钟线上每接收一个脉冲的下降沿,就在数据线上输出一位数据。如果接收正确,在时钟线和数据线都成为高电平后,键盘将向主机发一个应答信号(0FAH),否则向主机发一个0FEH信号,要求重发。主机收到0FEH信号后,把刚才输出过的数据重新发送一次。如果这一过程持续三次后,键盘仍然不能正确接收,主机就放弃传送这个数据,转去执行下面的程序或显示错误信息。主机命令和参数也采用奇校验方式。
?
?
2 系统硬件电路设计
?
  本系统采用89C51单片机与PC键盘接口相连,图2给出了系统硬件电路原理。其中P3.0和P3.1分别与主机键盘接口的时钟线CLK和数据线DATA相连,P2口与4×4键盘矩阵相连,P0口经过驱动后与输入输出报警设备相连接。为保证键盘可靠工作,系统配置了看门狗电路MAX813L,另外,系统还配置了蜂鸣器,每次按键均有声音提示。
?
?


图2? 系统硬件电路原理
?
3 系统软件设计
?
  系统软件主要有两部分组成。
?
3.1 键盘向主机发送键盘扫描码
  与PC标准键盘兼容,当检测到有效键闭合时,键盘向主机发送接通码,当检测到闭合键释放时,发送断开码,即在接通码前加0F0H,系统采用中断的方式每隔10ms扫描一次键盘,考虑到数字视频监控系统的实际情况,与标准PC机键盘不一样的是,每次按键无论时间长短,只发送一次接通码,且每次有效按键输入,均有声音提示。
?
3.2 键盘接收主机控制命令及应答
  主机的控制命令包括两部分,一部分是标准PC机发送给键盘的控制命令,主要是用于键盘的自检,另一部分是本系统增设的控制命令,主要是和外设进行双向通信以实现输入输出报警功能。主机开机时都要对键盘进行自检,主机对键盘的自检是通过键盘控制命令实现的,主机要求键盘每接收一个命令都要用0FAH作为应答,而且在发送键盘复位命令0FFH后,键盘要发送0FAH和0AAH作为键盘自检正确的响应。本系统增设的控制命令是在检测到动态报警信号及系统异常时通知外设以便发出声光报警信号。这些控制命令是通过对主机键盘接口状态寄存器(口地址064H)和数据寄存器(口地址060H)的读写操作实现的。图3给出了键盘处理中断服务子程序框图。


?
图3? 键盘处理中断服务子程序框图
4? 结束语
?
  本系统在不占用主机硬件资源的情况下,利用PC键盘接口实现了与外设的双向通信,所设计的数字视频监控系统键盘及报警控制卡具有键数少、操作简单和可靠性高的优点,已在实际的数字硬盘录像监控系统中得到了成功的应用,证明该设计方法是切实可行的,可广泛应用于工业监控系统中。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 07:16 , 耗时 0.084655 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表