多年来,微机接口技术课程的实验一直使用专用实验箱,但存在几个方面的问题:
(1) 实验箱系统中的硬件结构基本固定,器件的品种、数量扩展困难,因此以验证型的实验为主,学生的设计难以突破实验箱的限制;
(2) 实验方法与前期课程脱节,与技术的发展脱节;
(3) 由于实验箱中需学生插接的连线很多,只要一个接触不良就会影响实验的完成。因此有必要改革微机接口课程的实验模式。EDA技术的出现,革新了传统的手工设计过程。微机接口设计作为一个典型的复杂数字系统设计,其设计方法发生了根本性的变革,因此应用EDA技术是微机接口课程实验改革的方向。
1 EDA技术简介
EDA技术是指以计算机为工作平台,以EDA软件工具为开发环境,以硬件描述语言为设计语言,以可编程器件为实验载体,以专用集成电路、片上系统芯片为目标器件,以电子系统设计为应用方向的电子产品自动化设计过程,是一种基于芯片的现代电子系统设计方法。EDA技术主要包括4个方面的内容:
大规模可编程逻辑器件;硬件描述语言;开发软件工具;实验开发系统。
其中,大规模可编程逻辑器件是利用EDA技术进行电子系统设计的载体硬件,描述语言是利用EDA技术进行电子系统设计的主要表达手段,开发软件工具是利用EDA技术进行电子系统设计的智能化的自动化设计工具,实验开发系统则是提供芯片下载电路及EDA实验/开发的外围资源,供硬件验证用。在实验教学中,实验硬件使用了我们开发研制的CPLD开发系统,其中的CPLD器件为Xilinx公司XC95系列的XC95144PQ160,实验使用VHDL为设计语言,选用了XilinxISE7.1i作为实验软件。
2 设计实例——键盘接口设计
下面以键盘接口设计为例,说明EDA技术在微机接口技术实验教学中的应用。
2.1 硬件设计
硬件实现框图如图1所示。
本设计采用16.384 MHz时钟,缓冲后除了为其他芯片提供工作时钟外,还可采用计数的方法进行分频,以得到125 Hz的参考时钟。这个时钟,就用来作几个与键盘处理息息相关的进程敏感事件。按键采用通用的扫描方式,4组行扫描线是在每一个分频时钟的下降沿,利用1个预先设计的4位状态机产生,在每一个扫描线送出的同时,读取列值(COL),即按键码。按键行扫描时序图如图2所示。2.2 按键扫描
2.3 按键的识别
如果本次扫描没有键按下,按键码赋值为00H。如果扫描到键码不为0(即有键按下),将该键码对应的键值送至存储器指定地址data key暂存。然后再触发中断,接受处理器的访问。本设计中CPLD将键码转换为标准键盘按键的ASCII码,可以直接送至数据线由处理器做读取、判断处理,而无需再做转换。
2.4 按键长按、去抖及相关问题的解决
本设计中,如果长时间(超过2个扫描周期)按同一按键视为单次按键,处理方法如下:每次扫描到的键码与暂存在data_key的键码相比,如果相等则说明按键未释放,不作处理;如果不等说明有新的按键按下,则触发中断。这样设计解决了长按键的问题,但产生了新的问题:如果下次(间隔了若干个扫描周期)还是同一键按下,那么会扫描到同一键码,按照上述处理机制,这个键码是不送数据线的,这是不正确的。
我们注意到,同一按键按下间隔的时钟周期理论上为4个周期(按本设计4行扫描线计算),在本设计中,采用16.384 MHz时钟,采用计数的方法进行分频,得到125 Hz的参考时钟,故需要32 ms。在实际应用中,任何操作人员也达不到这个速度。所以,这里可以采用一个小技巧:
设计一个计数器,每扫描到一次为0键码(无键按下),计数器加1。如果有键按下,即扫描到的键码不为0,则计数器清零;如果计数到某一数值(即时间大于一个扫描周期),则保持当前计数不变。这样通过综合分析,得出触发中断、要求得到响应的条件为:
(1) 扫描到的键码不为0;
(2) 本次扫描到的键码和寄存器data key中的暂存码不同;
(3) 计数器当前计数值大于3;
这样就解决了不同按键的响应问题,或者:
(1) 扫描到的键码不为0;
(2) 计数器当前计数值大于等于5。
这样就解决了在以上功能实现前提下同一按键连续按下的响应问题。
大量实践经验证明,按键抖动时间一般为10 ms(保守估计),本设计中扫描时钟为8 ms,在满足快速响应按键的同时,在较大程度上也实现了键盘去抖的功能。
2.5 VHDL程序设计
限于篇幅,这里只给出一组扫描线情况(ROW=“1110”)下按键识别的设计实现方法:
3 结 语
与以往传统的实验方法相比,学生在实验过程中可以节省大量的接线时间,把重点放在微机接口的设计和仿真、验证上,使本实践环节更好地达到教学目的。软件设计调试阶段完成后的硬件下载和测试,又使学生能够学习硬件环境下的调试方法。实验教学的实践表明,新的实验模式激发了学生学习的积极性,加深了对本课程的掌握程度,同时还能够学到先进的设计技术,学生普遍欢迎这种改革新的实验模式,有效地锻炼了学生的设计能力和实践能力,为学生提供了充分的创造空间,收到了传统实验方法难以获得的效果。