基于ADSP_BF533和EPM7160实现的多路UART接口电路设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ElectronicComponent&DeviceApplications
Vol.10No.4Apr.2008
第10卷第4期
2008年4月2008.4www.ecda.cn
0引言
目前,在数字信号处理技术中,DSP+CPLD
是控制接口设计中比较常用的方式。然而,AD-
SP-BF533虽有异步串口,但该芯片只有一个异步
串口,当一个系统中出现多个UART接口时,
ADSP-BF533就显得无能为力了。为此,本文采
用CPLD来实现多路UART接口的设计,以满足
ADSP-BF533与多路UART接口的通信。
1ADSP-BF533简介
ADSP-BF533处理器是Blackfin系列产品中的
一员。其最大工作频率可达600MHz。Blackfin处理器内核包含有2个16位乘法器、2个40位累加器、2个40位ALU、4个视频ALU和1个40位移位器,可处理来自寄存器组的8位、16位或32位数据。
该处理器包含有丰富的外设,可通过不同的高速宽带总线与内核相连。该系统不但配置灵活,而且有极好的性能。通用外设包括UART、带有PWM(脉冲宽度调制)和脉冲测量能力的定时器、通用I/O标志引脚、实时时钟和看门狗定时器等。
该处理器有多个独立的DMA控制器,能够以最小的处理器内核开销自动完成数据传输。
DMA传输可以发生在ADSP-BF533处理器的内部
存储器和任一有DMA能力的外设之间。此外,
DMA传输也可以在任一有DMA能力的外设和已
连接到外部存储器接口的外部设备之间完成(包括SDRAM控制器、异步存储器控制器)。有DMA传输能力的外设包括SPORTs、SPI端口、UART和PPI端口。每个独立的、有DMA能力的外设至少应有一个专用DMA通道。
ADSP-BF533处理器有16个双向通用可编程I/O引脚(PF15-0)。每一个可编程引脚对标志控制
寄存器、标志状态寄存器和标志中断寄存器的编程均可独立控制。标志方向控制寄存器可规定每个独立的PFx引脚的方向,并可用作输入或输出。
ADSP-BF533该处理器提供有1个全双工的通
用异步接收/发送(UART)端口,并与PC标准的
UART完全兼容。UART端口可为其它外设或主机
提供一个简化的UART接口,并可支持全双工、有DMA能力的异步串行数据传输。UART端口可支持5~8个数据位、1或2个停止位以及无校验、奇校验、偶校验位。UART端口的波特率、串行数据格式、错误代码的产生和状态、中断等均可编程设置。
2ModelSim仿真工具
ModelSim为HDL仿真工具,利用该软件可对
所设计的VHDL或Verilog程序进行仿真。Model-
收稿日期:2007-11-29
基于ADSP-BF533和EPM7160实现的
多路UART接口电路设计
程小震,李鹏,唐宏
(西安电子科技大学信息对抗研究所,陕西
西安
710071)
摘
要:在介绍了ADSP-BF533处理器的基础上,给出了基于ADSP-BF533和CPLD设计具有
多路UART接口的系统设计方法,该方法克服了一个系统中的ADSP-BF533不能满足多个
UART接口的缺点。文章最后还给出了基于ModelSim的仿真波形。
关键词:异步串口;分频;ModelSim;多路UART接口
26
Vol.10No.4Apr.2008
第10卷第4期
2008年4月
www.ecda.cn
2008.4
Sim支持IEEE常见的各种硬件描述语言标准。
Modelsim仿真工具是Model公司开发的。它
可以支持Verilog、VHDL以及它们的混合仿真,也可以将整个程序分步执行,使设计者直接看到自己程序的下一步要执行的语句,而且在程序执行的任何步骤、任何时刻,都可以查看任意变量的当前值,也可以在Dataflow窗口查看某一单元或模块输入输出的连续变化等情况,因而比quar-
tus自带的仿真器功能强大的多,是目前业界最通
用的仿真器之一。
3异步串口原理
UART(UniversalAsynchronousReceiver/Trans-
mitter)通用异步收发器是用于控制计算机与串行
设备的芯片。它提供有RS-232C数据终端设备接口,因此,可以通过计算机和调制解调器或其它使用RS-232C接口的串行设备进行通信。UART内部结构原理如图1所示。图2所示是其系统总体结构框图。图2中的总线控制逻辑主要用于完成数据总线的方向控制。
UART发送模块中16位并行数据的高4位用来
控制是发向第几路的数据,低八位则是要发给该
路异步串口的数据。发送模块中还有一部分用来把并行低8位数据转化成串行8位数据,然后再根据并行数据的高4位判断发往哪一个异步串口。
UART接收模块中,把接收到的8位串行数据
转化成并行数据送到总线控制逻辑,然后通过中断通知DSP来读取。
这样就实现了通过DSP的并行数据总线来控制10路异步串口的收发数据。
4
波形仿真
4.1
发送模块的仿真波形
本设计中的EPM7128采用24.576MHz的晶振
输入,使用时应根据外部的串口波特率在内部通过编程对此输入时钟进行相应的分频处理。其发送模块的仿真波形图如图3所示。图中,data_in是DSP输入的并行16位数据,reset可用来复位,高电平有效;
write_strobe是DSP的写信号;
s1_out~s10_out分别是异步串口1~10的输出。为
了验证本设计的灵活性,可以控制不同的串口让其输出不同的数据,也就是由串口1~10分别输出
1~10的数据。
在发送模块中,通过检测write_strobe的下降沿可以把并行数据存储到CPLD中,再使能发送时钟,并给数据加上起始位0、校验位、停止位
1,然后按照发送时钟的节拍把数据一位一位的
发送出去。
4.2接收模块的仿真波形
在EPM7128中编程检测输入串口数据的下降
沿,并使能接收时钟,然后即可开始接收数据。接收数据时,要把接到的第一位数据去掉,然后取第2~9位数据,这样就把起始位去掉了,从而得到八位数据。接收模块的仿真波形如图4所示。
serial1_in~serial10_in是第一路到第十路串口
的接收端口,它们的输入数据依次是1~10;clock是系统时钟;reset是系统复位,高电平有效;
read_strobe是DSP的读信号;flag是通道选择,用1~10分别对应开通第1路到第10路串口通道,图5
是第10路串口所接收的信号局部波形放大图;
data_o是并行数据输出;received8位串行数据接
收完毕后,通过高电平向DSP发出的中断请求信
图1
UART内部原理结构图
图2
系统总体结构框图
新特器件应用
27