首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的单片机外围接口电路设计(2)

基于FPGA的单片机外围接口电路设计(2)

2 系统模块实现
2.1 通用逻辑模块
FPGA可以设计成各种组合逻辑和时序逻辑电路,完成锁存、三态输出、多路选择、编译码、计数、寄存等功能。在实际应用中可以根据需要选择相应的功能模块组成符合设计要求的逻辑功能。
本系统中设计的为扩展存储器时用的地址锁存器(功能与带三态缓冲输出的8D锁存器
74LS373相似),其 VHDL描述为: process(oe,enable,d) begin if e='1' then
q<="ZZZZZZZZ";
else   if enable='1' then q<=d;   end if;
end if;
end procESS; 其中oe为三态门的使能信号,当 oe为低电平时三态门处于导通状态,允许q输出到外部,当 oe为高电平时三态门处于断开状态,输出处于浮空状态; enable为锁存控制信号,当做锁存器用时,应使oe为低电平,这时,当 enable为高电平时,锁存器输出状态与输入状态相同,当enable从高电平返回到低电平(即下降沿)时,输出不变,即输入端的数据锁入锁存器中。
2.2 键盘接口模块键盘是单片机应用系统中一个很重要的部件,它能实现向系统输入数据、传送命令等功 能,是人工干预系统工作的重要手段。本文所设计的键盘接口电路框图如图2所示,由分频电路、键盘扫描计数器电路、键盘按键检测电路、按键抖动消除电路和键盘编码电路等组成。

其中clock为时钟脉冲, col为键盘的列输入,row为键盘的行输出,scan_f为扫描频率, key_valid为按键确定信号,butt_code为按键值。首先,将外部时钟信号分频为适合键盘的扫描频率;计数器的计数值输出到按键检测电路,检测使用者是否按下键盘,同时输出到键盘编码电路对键盘数值编码;当使用者按下键盘时,按键检测电路的 key_pressed将为0,并输出到计数器使计数停止,同时抖动消除电路在确认使用者正确按键后,输出按键确定信号。
2.3 显示接口模块
显示功能是单片机应用系统中实现人机对话的基本功能之一,用户通过灵活的显示方式方便的了解系统的工作情况。在简单的应用系统中常用LED数码管或LCD显示器显示数据或工作状态。本文设计的为一个4位七段动态 LED数码管显示接口电路,电路框图如图3所示,它由BCD多路选择器、BCD对应七段显示器编码电路、计数译码电路和七段显示器扫描电路等组成。其中clk为同步时钟脉冲信号, flk_ena为扫描时钟脉冲信号, bcd_data为输入的BCD码,ledseg为七段显示器数值输出, ledcom为七段显示器输出使能。

2.4 串并行接口模块
虽然大多数单片机都带有通用的串行接口,但自行设计的接口意味着更大的使用灵活性,特别是FPGA的高速特性允许更高的数据传输速度,在实用中有重要意义。作为范例, 本文设计了基于RS232-C标准的异步串行通信接口,它主要由数据总线接口、控制逻辑、波特率发生器、发送和接收等部分组成,其功能主要包括微处理器接口,用于数据传输的缓冲器(Buffer)、帧产生、奇偶校验、并转串,用于数据接收的缓冲器、帧产生、奇偶校验、串转并等。
继承事业,薪火相传
返回列表