单片机和FPGA 的人机交互系统的设计_第1页
单片机和FPGA 的人机交互系统的设计_第2页
单片机和FPGA 的人机交互系统的设计_第3页
单片机和FPGA 的人机交互系统的设计_第4页
单片机和FPGA 的人机交互系统的设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、【Word版本下载可任意编辑】 单片机和FPGA 的人机交互系统的设计 在仪器仪表电路中,人机交互界面是必不可少的环节。为了解决单纯采用单片机制作的系统功耗高、速度慢、电路构造繁琐的问题,同时为了发挥出单片机的灵活性和FPGA 的高速性,系统采用C8051F020 单片机和CycloneFPGA 作为系统, 设计实现了键盘、LCD 等人机交互功能, 同时预留了部分I/O 接口作为扩展接口使用。采用FPGA 扫描键盘可以极大程度地节省单片机的资源,利用单片机和FPGA 共同控制LCD 可以更好地表达出人机交互的特色。 在现代各类仪器的开发中,人机交互功能正起着无可替代的作用。人机交互界面友好的仪

2、器将更容易操作和使用,从而提高工作效率。液晶显示器(LCD)具有功耗低、价格低、寿命长、接口控制方便等特点,在科研与设计领域正发挥着越来越大的作用。FPGA 作为单片机外设的接口芯片,可以大大简化接口电路,通过对FPGA 开展编程,可以实现常用的译码、地址选通等功能。 本文以C8051F020 单片机与FPGA 互连系统为控制,以液晶显示控制器T6963C 为例,结合行扫描键盘,简述了一种人机交互功能的设计。 1 系统设计方案: FPGA 可在很大程度上扩展单片机的资源,然而人机交互功能仍应尽量减少对单片机及FPGA 的资源消耗, 以便将更多的片内资源用于其他功能的扩展。采用FPGA 扫描键盘

3、可以节省单片机的资源, 同时也能灵活地实现键盘的扩展。而考虑到液晶控制较复杂, 依然采用单片机控制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 内核和外设有几

4、项关键性的改良,提高了整体性能,更易于在终应用中使用。如提供22 个中断源、7 个复位源、可编程交叉开关、8 位A/D 转换器、12 位D/A 转换器等。 Cyclone系列FPGA 将低功耗FPGA 的密度规模扩展至68 416 个逻辑单元,并提供高达622 个可用的I/O 接口以及高达1.1 Mb 的片内存储单元。Cyclone系列成功实现了高效与低功耗的结合,可用于自动化、通信、视频播放等领域。为兼顾成本问题, 本系统采用性价比较高的EP2C8 型FPGA 作为接口器件。 为使单片机的资源可以得到的开发,将单片机的高端口,即P4P7 接入FPGA,并通过FPGA 对外部设备开展访问。在F

5、PGA 中通过Verilog HDL 语言编程实现了3-8 译码器,从而实现了对单片机地址总线的扩展。该3-8 译码器对LCD 以及键盘的键值读取提供使能信号,如图2 所示。 2.2 T6963C 及其接口设计: T6963C 液晶显示控制器多用于小规模的液晶显示器件,常被装配在图形液晶显示模块上,以内藏控制器型图形液晶显示模块的形式出现。 单片机对T6963C 有2 种访问方式: 直接访问与间接访问。直接访问利用三总线以I/O 设备访问形式开展控制;间接访问则由单片机提供并行接口,以程序控制时序的方式开展控制。为简化程序,这里采用直接访问方式。 该LCM 的FS1 引脚用于控制显示字符的字体

6、。FS1 为高时,LCD 显示68 字符;FS1 为低时,LCD 显示88 字符。经实践,在显示英文与数字时,68 字符更为美观;在显示中文字符时,88 字符更为方便。一般系统采用将FS1 接地或接高的方式来固定字体,而本系统采用P2.1 对FS 开展控制,通过改变地址实现改变字体的功能,使得界面的显示更灵活。 2.3 键盘电路设计: 键盘是常用的单片机输入设备,分为编码键盘和非编码键盘。键盘上闭合键的识别由专用硬件译码器实现,并产生键编号或键值的称为编码键盘;靠软件识别的称为非编码键盘。在单片机组成的测控系统及智能化仪器中使用多的是非编码键盘,本系统设计在FPGA 中编程实现36 键盘的行扫

7、描。 由于按键的机械特性,在闭合和断开的瞬间会伴随着一连串的抖动,键抖动会引起按键被误读多次,所以必须开展去抖处理,常用的方法为延时去抖动。FPGA 产生键值之后向单片机发送中断,并等待单片机读取键值。由于人脑反应时间相对较长, 键盘中断可以处于相对较低的优先级,因此本文将键盘中断接于外部中断7。 3 软件设计: 软件设计遵循构造化和层次化的设计原则。底层函数直接与硬件沟通,而上层函数直接通过调用底层函数来实现相应功能,从而使上层函数与硬件环境彻底分开。当硬件环境发生变化时,仅修改底层函数便能实现程序的移植。 3.1 液晶驱动模块的编程设计: 本模块的底层函数需要实现写控制字、写参数、查忙等功

8、能。由于采用直接访问,写控制字与写参数的函数只需向控制口或数据口的地址送数即可。由于LCD 是慢速器件,因此在每次写控制字及写参数之前都需要开展查忙。T6963C的状态字共有7 位有效的状态位,如下表1 所示。其中STA1STA3 为常用,一般情况下可以不需要对STA5STA7 开展查忙的程序。 3.1.1 液晶驱动模块的初始化: T6963C 的特点是具有独特的硬件初始值设置功能,显示驱动所需的参数如占空比系数。驱动传输的字节数/行及字符的字体选择等均由引脚电平设置, 这样T6963C 的初始化在上电时就已经基本设置完成,软件操作的重心就可以全部用于显示画面的设计上。因此,初始化时仅需根据实

9、际情况设置文本区域和图形区域的首地址和宽度, 以及CGRAM 偏置地址、合成方式、光标形状等即可正常使用。 液晶驱动模块的初始化函数如下: void LcdInitial(void) LcdWriteDataD(0 x00,0 x00,0 x40); /设置文本区域首地址为0000H LcdWriteDataD(0 x20,0 x00,0 x41); /设置文本区域宽度为20H 字节 LcdWriteDataD(0 x00,0 x04,0 x42); /设置图形区域首地址为0400H LcdWriteDataD(0 x20,0 x00,0 x43); /设置图形区域宽度为20H 字节 LcdW

10、riteDataD(0 x03,0 x00,0 x22); /设置CGRAM 偏置地址,显示存储器的首地址为1800H LcdWriteDataN(0 xa7); /光标形状设置为87 LcdWriteDataN (0 x80); /启用内部字符发生器,逻辑“或”合成 LcdWriteDataN(0 x9c); /开文本和图形显示,禁用光标 LcdClear(3); /清屏 3.1.2 英文及汉字的文本显示: 由于英文及数字等常用字符的字模已经固化在CGROM中,因此开展英文的显示时,只需指定显示的地址,再输入该字符对应的标号即可。汉字的显示与英文的显示类似。然而出于其复杂性,一个汉字需要使用

11、4 组点阵才能完整显示。在初始化后将汉字的4 部分字模顺序输入CGRAM 中, 在使用时仅需计算好每一部分的显示地址即可对汉字开展完美显示。 对于一串英文字符的输入, 可以利用字符串的特性开展操作。通过检测0字符来判断英文字符串的结尾,从而防止了在调用此显示函数时人工计算句子长度的工作。英文字符的ASCII码值与其在CGROM 中对应的标号恰相差0 x20,因此仅需简单的减法即可实现标号的转换。此外,在开展英文的连续显示时,使用了T6963C 的数据自动写指令,从而提高了显示效率。 对于一串中文的显示,则仅需通过循环调用单个中文的显示程序开展实现。注意由于C51 语言中字符串无法支持中文,因此

12、必须人工计算中文字串的长度并将其作为函数传递给此显示函数。 字符发生器CGRAM 中总共可存储32 个汉字,对于需显示较多汉字的应用, 可从需显示的汉字中选出16 个常用的汉字,固定存放于CGRAM 中,其余汉字仅在需要使用时动态写入CGRAM。这样, 既提高了显示效率, 又解决了CGRAM 过小的问题。 3.1.3 图形显示: 除使用文本显示汉字外,还可采用图形显示的方式。具体方式是将字模以数组的方式保存于单片机的代码段,在需要显示时将数据送入图形区即可。此外,利用图形显示,还可以编写描点程序显示相应波形或者编写绘图程序绘制简易表格,使系统显示结果更加直观,便于分析。 3.1.4 文本特效:

13、 T6963C 可以设置文本属性区,并对文本实现反白、正向闪烁、反向闪烁等特效。使用时仅需将图形显示设置为文本属性区即可。此时图形区的内容将无法显示,若图形区与文本属性区划分在CGRAM 的不同区域,则图形区的内容可以得到保存。利用文本特效,可通过反白或闪烁等效果指示可选选项以及当前选项,从而使界面更易于操作。 3.2 人机交互界面设计: 除基本的10 个数字键以外,还设定了上、下、左、右、确定、取消等按键。此外,按键位置的设计,更符合人们的按键习惯。在界面中采用分级的菜单, 在菜单中选定功能之后将进入下菜单对功能开展更详细的设定。在人机交互界面中可以使用方向键开展功能的选择,数字键仅用于数据的输入。 界面充分利用了文本特效,对选项采用反向显示表示该选项已选定;对选项采用反向闪烁表示用户可通过方向键改变选项。在需要开展数字输入的界面中打开光标,即可向用户标示数字输入的地方。此外,必要的警告和出错界面的设计将为

温馨提示

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

评论

0/150

提交评论