欢迎进入深圳市熹微网络科技有限责任公司网站
全国服务热线
020-66**9888
PCB抄板
利用FPGA技术实现的一个计算机外围I/O设备和一个简单的微控制器
时间: 2023-09-07 11:17 浏览次数:
利用FPGA技术实现的一个计算机外围I/O设备和一个简单的微控制器本文所设计的系统实现了一个可简易汇编指令的微控制器MCU和一个计算机组成中的外围串行通信I/O设备。通过实现的一
本文所设计的系统实现了一个可简易汇编指令的微控制器MCU和一个计算机组成中的外围串行通信I/O设备。通过实现的一部分I/O输入/输出指令和条件跳转指令可实现与外设的通信控制。系统功能模块划分如图1所示。

2.1串行通信外设的设计与实现
在计算机系统组成中,串行通信占据重要地位,它的使用范围包括计算机与外部设备之间,计算机与计算机之间、甚至在进行前期CPU设计时都会用到。传统的设计方法是应用Intel公司的8250/8251或者美国半导体的16550等芯片,但因设计复杂,占用电路体积大,而且出现问题不容易跟踪定位,所以本文采用FPGA实现。将串行通信的关键器件UART集成到FPGA内部,增加系统的可靠性,缩小PCB板体积,使得系统更加紧致,且能根据需要进行适当的设计、扩充和裁剪。实现的该I/O设备功能划分如图2所示。

2.1.1UART模块的设计与实现
UART串行数据格式如图3所示,串行数据包括5~8位数据(可更改设置)、1位起始位、1~2位停止位、1位校验位。该模块主要由发送模块和接收模块两部分构成。在各自模块中分别由接收缓冲器、接收控制电路、发送缓冲区、发送控制电路、数据总线缓冲器、读写控制电路组成,逻辑框图如图4所示。

UART模块的发送模块和接收模块公用复位信号、时钟信号和并行数据线,并且有各自的输入/输出模块和控制电路单元。
(1)发送模块的设计。发送模块将从微控制器MCU送来的8位并行数据转换成图3所示的数据帧格式的串行数据发送出去。该模块分为3种工作模式:空闲模式、载入数据模式、移位模式输出模式。当并行的8位数据从微控制器MCU通过数据线写入发送FIFO(在以下2.1.2节实现)中时,发送模块自动将并行数据装入锁存器THR中,首先发送起始位0,然后根据LCR定义的数据格式将数据移位,并通过状态机和节拍器实现完整的发送序列,并以相应的波特率从TX发送出去。发送模块的状态机FSM如图5所示。
(2)接收模块的设计。接收模块接收串行输入的数据(见图3),然后将其转换为并行数据送给微控制器MCU。与发送模块相同,也分为3种工作模式:空闲模式,检测起始位模式、移位输入模式。首先接收模块在接收时钟的控制下,不断地在RX端口检测输入数据的起始位,当检测到起始位后,接收模块由空闲模式转变为移位输入模式。此时通过RX端口进来的串行数据可能存在着些许抖动,因此需要添加消抖电路进行处理。消抖处理一般有两种办法,一种是在前端添加非门的R8触发器来完成,一种是类似软件的方式控制采集输入端的数据,并将前后采集的数据值进行比较,相同则保持,否则继续采集比较,这里采用的是后者。当接收完数据,更新接收缓冲区状态,以提供微控制器MCU查询,方便读取数据。接收模块的状态机FSME如图6所示。

Copyright © 深圳市熹微网络科技有限责任公司 版权所有 粤ICP备2023073323号