基于FPGA的多按键状态识别系统设计
状态位lbit,0表示按键闭合状态,1表示按键打开;数据6bits,即0X01~OX3C分别表示1~60个按键;lbit偶校验位。这样传输一次数据就可完成按键编号和状态的传输。
编码器采用连续和随机2种工作模式。连续工作模式每次扫描后对所有按键依次编码,并获取所有按键的当前状态;而随机工作模式在每次扫描后只对状态发生变化的按键编码。
3.3 控制模块
控制模块完成MCU与FPGA之间的功能控制,有2个作用:一是根据Scan信号选择编码模块的工作模式,二是产生FIFO RAM的读取操作时序。
对于模式控制,Scan上升沿触发控制模块,使编码模块进入连续工作模式,扫描完成一周,控制模块发送控制信号使编码模块进入随机工作模式。
对于读取数据,控制模块根据FIFO RAM的Data[7:0]是否有数据,置位Ready信号。有数据,Ready为低电平;无数据,Ready为高电平。RdClk为读取时钟,相当于确认信号,每读完一个数据,发送一个脉冲。
3.4 FIFORAM模块
与MCU通信的接口种类很多,可选择串口、I2C、并口等形式,应用中可根据MCU资源以及项目成本、进度等具体情况选择最合适的一种方式。该系统设计利用同步FIF0 RAM并口传输。FIF0 RAM模块采用EDA软件库中的标准模块。
4 仿真结果
采用Altera公司提供的Quartus II仿真工具,其集成有与硬件实时操作相吻合的硬件测试工具。综合仿真结果如图7所示,系统时钟SysClk为12 kHz,其仿真结果表明系统设计达到要求。
5 结论
提出基于FPGA器件,VHDL语言描述的特殊键盘设计方案解决远距离、分散、多键动作状态识别问题,极大节省PCB面积和MCU的I/0端口资源。模块中扫描延迟、扫描间隔等参数可根据系统需求灵活改变,FPGA器件使得电路功能的扩展方便,具有极高稳定性和灵活性。这一方案已在实际项目中应用,经现场验证性能稳定可靠。
- FPGA验证技术在航空电子领域的应用(09-13)
- MIMO 系统的快速原型设计与验证(04-28)
- ARM、DSP、FPGA的技术特点和区别(01-22)
- 3G移动通信中脉冲成形FIR滤波器的ASIC实现结构(01-24)
- 应用EDA仿真技术解决FPGA设计开发中故障的方法 (03-01)
- 基于FPGA的IRIG-B编码器实现(02-19)