基于单片机和FPGA 的人机交互系统的设计

发布者:跳跃龙珠最新更新时间:2010-11-19 关键字:液晶显示器  T6963C  人机交互 手机看文章 扫描二维码
随时随地手机看文章

  在现代各类仪器的开发中,人机交互功能正起着无可替代的作用。人机交互界面友好的仪器将更容易操作和使用,从而提高工作效率。液晶显示器(LCD)具有功耗低、价格低、寿命长、接口控制方便等特点,在科研与设计领域正发挥着越来越大的作用。FPGA 作为单片机外设的接口芯片,可以大大简化接口电路,通过对FPGA 进行编程,可以实现常用的译码、地址选通等功能。

  本文以C8051F020 单片机与FPGA 互连系统为控制核心,以液晶显示控制器T6963C 为例,结合行扫描键盘,简述了一种人机交互功能的设计。

  1 系统设计方案:

  FPGA 可在很大程度上扩展单片机的资源,然而人机交互功能仍应尽量减少对单片机及FPGA 的资源消耗, 以便将更多的片内资源用于其他功能的扩展。采用FPGA 扫描键盘可以节省单片机的资源, 同时也能灵活地实现键盘的扩展。而考虑到液晶控制较复杂, 依然采用单片机控制LCD,使LCD 的各种功能得到最大程度的利用,其系统框图如图1 所示。


  2 硬件电路及FPGA 接口设计:

  2.1 总线接口设计:

  这里采用单片机C8051F020 与CycloneⅡ FPGA 互连的系统。C8051F020 器件是完全集成的混合信号系统级MCU芯片,具有64 个数字I/O 引脚,与8051 完全兼容,而且速度得到了极大提高,70%的指令执行时间为1 或2 个系统时钟周期,只有4 条指令的执行时间大于4 个系统时钟周期。此外,C8051F020 系列MCU 对CIP-51 内核和外设有几项关键性的改进,提高了整体性能,更易于在最终应用中使用。如提供22 个中断源、7 个复位源、可编程交叉开关、8 位A/D 转换器、12 位D/A 转换器等。

  CycloneⅡ系列FPGA 将低功耗FPGA 的密度规模扩展至68 416 个逻辑单元,并提供高达622 个可用的I/O 接口以及高达1.1 Mb 的片内存储单元[3]。CycloneⅡ系列成功实现了高效与低功耗的结合,可用于自动化、通信、视频播放等领域。为兼顾成本问题, 本系统采用性价比较高的EP2C8 型FPGA 作为接口器件。

  为使单片机的资源可以得到最大的开发,将单片机的高端口,即P4~P7 接入FPGA,并通过FPGA 对外部设备进行访问。在FPGA 中通过Verilog HDL 语言编程实现了3-8 译码器,从而实现了对单片机地址总线的扩展。该3-8 译码器对LCD 以及键盘的键值读取提供使能信号,如图2 所示。

  2.2 T6963C 及其接口设计:

  T6963C 液晶显示控制器多用于小规模的液晶显示器件,常被装配在图形液晶显示模块上,以内藏控制器型图形液晶显示模块的形式出现。

  单片机对T6963C 有2 种访问方式: 直接访问与间接访问。直接访问利用三总线以I/O 设备访问形式进行控制;间接访问则由单片机提供并行接口,以程序控制时序的方式进行控制。为简化程序,这里采用直接访问方式。

  该LCM 的FS1 引脚用于控制显示字符的字体。FS1 为高时,LCD 显示6×8 字符;FS1 为低时,LCD 显示8×8 字符。经实践,在显示英文与数字时,6×8 字符更为美观;在显示中文字符时,8×8 字符更为方便。一般系统采用将FS1 接地或接高的方式来固定字体,而本系统采用P2.1 对FS 进行控制,通过改变地址实现改变字体的功能,使得界面的显示更灵活。

  2.3 键盘电路设计:

  键盘是常用的单片机输入设备,分为编码键盘和非编码键盘。键盘上闭合键的识别由专用硬件译码器实现,并产生键编号或键值的称为编码键盘;靠软件识别的称为非编码键盘。在单片机组成的测控系统及智能化仪器中使用最多的是非编码键盘,本系统设计在FPGA 中编程实现3×6 键盘的行扫描。

  由于按键的机械特性,在闭合和断开的瞬间会伴随着一连串的抖动,键抖动会引起一次按键被误读多次,所以必须进行去抖处理,常用的方法为延时去抖动。FPGA 产生键值之后向单片机发送中断,并等待单片机读取键值。由于人脑反应时间相对较长, 键盘中断可以处于相对较低的优先级,因此本文将键盘中断接于外部中断7。

  3 软件设计:

  软件设计遵循结构化和层次化的设计原则。底层函数直接与硬件沟通,而上层函数直接通过调用底层函数来实现相应功能,从而使上层函数与硬件环境彻底分开。当硬件环境发生变化时,仅修改底层函数便能实现程序的移植。

  3.1 液晶驱动模块的编程设计:

  本模块的底层函数需要实现写控制字、写参数、查忙等功能。由于采用直接访问,写控制字与写参数的函数只需向控制口或数据口的地址送数即可。由于LCD 是慢速器件,因此在每次写控制字及写参数之前都需要进行查忙。T6963C的状态字共有7 位有效的状态位,如表1 所示。其中STA1~STA3 最为常用,一般情况下可以不需要对STA5~STA7 进行查忙的程序。


  3.1.1 液晶驱动模块的初始化:

  T6963C 的最大特点是具有独特的硬件初始值设置功能,显示驱动所需的参数如占空比系数。驱动传输的字节数/行及字符的字体选择等均由引脚电平设置, 这样T6963C 的初始化在上电时就已经基本设置完成,软件操作的重心就可以全部用于显示画面的设计上。因此,初始化时仅需根据实际情况设置文本区域和图形区域的首地址和宽度, 以及CGRAM 偏置地址、合成方式、光标形状等即可正常使用。

  液晶驱动模块的初始化函数如下:

  void LcdInitial(void)

  {

  LcdWriteDataD(0x00,0x00,0x40); //设置文本区域首地址为0000H

  LcdWriteDataD(0x20,0x00,0x41); //设置文本区域宽度为20H 字节

  LcdWriteDataD(0x00,0x04,0x42); //设置图形区域首地址为0400H

  LcdWriteDataD(0x20,0x00,0x43); //设置图形区域宽度为20H 字节

  LcdWriteDataD(0x03,0x00,0x22); //设置CGRAM 偏置地址,显示存储器的首地址为1800H

  LcdWriteDataN(0xa7); //光标形状设置为8×7

  LcdWriteDataN (0x80); //启用内部字符发生器,逻辑“或”合成

  LcdWriteDataN(0x9c); //开文本和图形显示,禁用光标

  LcdClear(3); //清屏

  }

  3.1.2 英文及汉字的文本显示:

  由于英文及数字等常用字符的字模已经固化在CGROM中,因此进行英文的显示时,只需指定显示的地址,再输入该字符对应的标号即可。汉字的显示与英文的显示类似。然而出于其复杂性,一个汉字需要使用4 组点阵才能完整显示。在初始化后将汉字的4 部分字模顺序输入CGRAM 中, 在使用时仅需计算好每一部分的显示地址即可对汉字进行完美显示。

  对于一串英文字符的输入, 可以利用字符串的特性进行操作。通过检测‘’字符来判断英文字符串的结尾,从而避免了在调用此显示函数时人工计算句子长度的工作。英文字符的ASCII码值与其在CGROM 中对应的标号恰相差0x20,因此仅需简单的减法即可实现标号的转换。此外,在进行英文的连续显示时,使用了T6963C 的数据自动写指令,从而提高了显示效率。

  对于一串中文的显示,则仅需通过循环调用单个中文的显示程序进行实现。注意由于C51 语言中字符串无法支持中文,因此必须人工计算中文字串的长度并将其作为函数传递给此显示函数。

  字符发生器CGRAM 中总共可存储32 个汉字,对于需显示较多汉字的应用, 可从需显示的汉字中选出16 个最常用的汉字,固定存放于CGRAM 中,其余汉字仅在需要使用时动态写入CGRAM。这样, 既提高了显示效率, 又解决了CGRAM 过小的问题。


  3.1.3 图形显示:

  除使用文本显示汉字外,还可采用图形显示的方式。具体方式是将字模以数组的方式保存于单片机的代码段,在需要显示时将数据送入图形区即可。此外,利用图形显示,还可以编写描点程序显示相应波形或者编写绘图程序绘制简易表格,使系统显示结果更加直观,便于分析。

  3.1.4 文本特效:

  T6963C 可以设置文本属性区,并对文本实现反白、正向闪烁、反向闪烁等特效。使用时仅需将图形显示设置为文本属性区即可。此时图形区的内容将无法显示,若图形区与文本属性区划分在CGRAM 的不同区域,则图形区的内容可以得到保存。利用文本特效,可通过反白或闪烁等效果指示可选选项以及当前选项,从而使界面更易于操作。

  3.2 人机交互界面设计:

  除基本的10 个数字键以外,还设定了上、下、左、右、确定、取消等按键。此外,按键位置的设计,更符合人们的按键习惯。在界面中采用分级的菜单, 在一级菜单中选定功能之后将进入下一级菜单对功能进行更详细的设定。在人机交互界面中可以使用方向键进行功能的选择,数字键仅用于数据的输入。

  界面充分利用了文本特效,对选项采用反向显示表示该选项已选定;对选项采用反向闪烁表示用户可通过方向键改变选项。在需要进行数字输入的界面中打开光标,即可向用户标示数字输入的地方。此外,必要的警告和出错界面的设计将为用户提供更多信息,使人机交互界面更为友好。

  4 结束语:

  本系统采用键盘+LCD 的输入输出设备, 并且可以通过FPGA 实现各种其他外设的接口电路的设计, 减少了对单片机资源的占用,使得设计灵活、方便。同时FPGA 还可以为单片机提供存储器和I/O 口等资源。本文设计的电路可扩展性强, 在此基础上可将其扩展成各种拥有友好界面的系统,如可控增益放大器、音频信号分析仪、集成运放分析仪等。经实践,该系统稳定易用,实用性强。

关键字:液晶显示器  T6963C  人机交互 引用地址:基于单片机和FPGA 的人机交互系统的设计

上一篇:基于单片机的太阳能发电量的检测与设计
下一篇:基于C8051F023单片机的OLED显示实现方案

推荐阅读最新更新时间:2024-03-16 12:31

“芯创杯”首届高校未来汽车人机交互设计大赛正式启动
北京,2019年5月21日 —— 今日,由汽车电子产业联盟(AEIA)主办,国内高校协办,中国计算机报社和 赛普拉斯 半导体公司承办的“芯创杯——首届高校未来汽车人机交互设计大赛”启动仪式在京顺利举行。本届大赛将于今年5月至11月举办,将面向全国高校学生征集设计作品,并在北京、上海、广州和重庆等四大汽车重镇举办校园宣讲活动。 大赛期望借助“产学研用”的紧密合作,促进汽车人机交互交叉学科的发展,培养和挖掘出更多的创新型人才,为未来汽车人机交互设计带来启发和指引,为智能时代汽车产业的创新发展做出贡献。 汽车电子产业联盟副秘书长李洪艳出席了大赛的启动仪式和发布会,对大赛筹备工作表示支持,也对大赛在助力技术创新和人才培养方面的重大意义
[汽车电子]
“芯创杯”首届高校未来汽车<font color='red'>人机交互</font>设计大赛正式启动
要保证自动驾驶汽车安全,这五件事必须做
保证自动驾驶的安全,现阶段,还需要人、车一起努力。     特斯拉自动驾驶致死事故出现之后,对于自动驾驶技术的安全应用引起了大范围的讨论。有分析认为谷歌之所以在自动驾驶技术开发中直接进入最高层级level 4的研发阶段(即车内无方向盘,完全无需驾驶员干预),就是因为在低层级自动驾驶技术中存在驾驶员的人工介入,而人又不能无时无刻保持专注进而导致风险增大。     为了提高自动驾驶技术应用的安全性,必须要采取一些措施。比如增加人与自动驾驶之间相互的了解,车辆可以明确知道人的状态,人也能够清楚知道自动驾驶的能力范围;比如在车辆本身的传感器之外,还需要依赖于其他通讯设备提供的数据辅助判断与决策等。只有这样,才能让自动驾
[汽车电子]
51单片机对LCD液晶显示器的控制
要想实现人机交互,显示装置是不可缺少的。这篇文章主要关于如何控制液晶显示,并在此基础上加上定时器的功能,把原来已用数码管显示的定时器搬到液晶屏上来。 这里用到的液晶为LCD1602,能够同时显示16x02即32个字符(16列2行)。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,直接向其写入ASCII码即可显示相应字符。1602共16个 管脚,管脚功能如下: 实际应用时,所用液晶模块与单片机的连接图如下: 其中7~14管脚为IO,与单片机的P0口相接,单片机可通过向P0口发送数据被液晶模块并行接收。 4管脚为数据命
[单片机]
51单片机对LCD<font color='red'>液晶显示器</font>的控制
P51XA单片机与图形液晶显示器的接口设计
P51XA是PHILIPS公司的一种16位单片机,可管理的存储器空间大,运行速度快,支持实时多任务系统的增强了实现高级语言的支持,可以运用在需要复杂、高速控制的场合,在体系结构上与MCS-5高度兼容,便于实现向高性能微控制器的快速、平滑转移。北京精电蓬远显示技术有限公司的MGLS240128T是一种240×128点阵的图形LCD(液晶显示器),可以显示图形、曲线,全屏可显示15×8个汉字,适宜用在需要有较多显示内容的场合,它内含T6963C控制器,能直接与INTEL系列的微处理器接口。 1 P51XAG37单片机和T6963C简介 P51XA单片机的内部结构和外部数据总线均为16位结构,支持扩展的外部存储器空间为1MB-16M
[单片机]
P51XA单片机与图形<font color='red'>液晶显示器</font>的接口设计
液晶显示器上显示字符和65 536色彩色图形的嵌入式设计方案
本文介绍了以高性能的8位单片机C8051F120作为核心处理器,接收和处理PC机键盘和触摸屏的操作信息,并将其转化成液晶显示器(TFT)可显示的点阵数据;用SRAM作为显存,FPGA接收单片机传送的显示数据,控制显存的读写操作,并产生液晶显示器的工作时序,最终完成在液晶显示器上显示字符和65 536色彩色图形的嵌入式设计方案。其中重点描述了核心处理单元C8051F120的软件设计。 嵌入式设备凭借其与使用者之间的亲和力、自然的人机交互界面,得到了迅速的发展,渗透到生活中的各个角落。本文介绍的设计方法是以高性能的8位单片机C8051F120作为核心处理器,SRAM作为系统的显存,FPGA实现时序转换,构建低温(-10℃)下嵌
[单片机]
<font color='red'>液晶显示器</font>上显示字符和65 536色彩色图形的嵌入式设计方案
从落后到先进 人机交互技术的发展与未来
还记得《阿凡达》吗?电影里,人类一按启动键,一幅全息立体的操作界面即呈现在眼前,随手一点,程序就打开了,随手一划,数据就按意愿移动……公众何时能够拥有这样的计算机?这一问题,也在日前在京举行的2010年中国人机交互研讨会上引发热议。中国科学院软件研究所戴国忠教授认为,2020年,人和计算机的生理界限将渐渐消除。     人机交互是什么?    人机交互,简单来说,就是人类与计算机交流互动。两者之间有这样一个传导链:通过人机接口技术,使人能够与计算机发生联系;而计算机则通过一种界面,使人能了解联系后的效果。    想必生于上世纪70年代的人还记得,为了使用计算机,学习DOS命令的辛苦阶段吧?没错,这就是人机交互的早期阶
[手机便携]
基于LPC2478 的网络型电能质量监测装置人机交互功能研发
摘要: 基于网络型电能质量监测装置的硬件结构和功能,给出了在RealViewMDK 开发环境下向LPC2478 微处理器移植μC/OS-Ⅱ嵌入式实时操作系统的过程,阐述了集成μC/GUI 图形接口的实现步骤。给出了LPC2478 微处理器针对液晶屏AT056TN52 的驱动程序及利用GPIO 中断实现键盘功能的方法。根据所提出的人机交互界面设计思路以及优先级的合理分配完成了具体程序的编写,最终实现了界面友好、功能强大的人机交互功能。 0 引言 非线性、非对称、非平稳电力设备的大量使用,给保证供电质量带来了严峻的挑战。电能质量问题已经越来越引起用户和供电部门的重视。采取技术措施来对电能质量进行改善,首先就要对电能质量进行及时准确的监
[电源管理]
基于LPC2478 的网络型电能质量监测装置<font color='red'>人机交互</font>功能研发
以C8051F020单片机为控制核心的人机交互系统设计
在现代各类仪器的开发中,人机交互功能正起着无可替代的作用。人机交互界面友好的仪器将更容易操作和使用,从而提高工作效率。液晶显示器(LCD)具有功耗低、价格低、寿命长、接口控制方便等特点,在科研与设计领域正发挥着越来越大的作用。FPGA 作为单片机外设的接口芯片,可以大大简化接口电路,通过对FPGA 进行编程,可以实现常用的译码、地址选通等功能。 本文以C8051F020 单片机与FPGA 互连系统为控制核心,以液晶显示控制器T6963C 为例,结合行扫描键盘,简述了一种人机交互功能的设计。 1 系统设计方案: FPGA 可在很大程度上扩展单片机的资源,然而人机交互功能仍应尽量减少对单片机及FPGA 的资源消耗, 以便将更多
[单片机]
以C8051F020单片机为控制核心的<font color='red'>人机交互</font>系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved