|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
摘要:首先简要介绍了异步串口板的通常设计方法,并且提出了这些方法的不足之处,重点阐述了基于 FPGA状态机和片上总线的新设计方案,以及该方案的技术优势,随后公布了基于该方案的异步串口板达到的性能指标;通过比较有关应答延迟的试验数据,提出了基于FPGA状态机和基于 DSP处理器的异步串口板卡存在明显的处理速度差异问题,并基于两种设计方案,解释了形成差异的原因;最后提出了FPGA状态机对外部总线存储器或端口的访问管理性能大幅超越了任何一款DSP处理器的观点,并对同行提出了类似研发项目的设计建议。5 q: V/ |4 b5 S- m
; r3 Q% a; P' t+ c某设备的测试平台必须达到 36 路通道、11种通讯协议、波特率 4/19.2/38.4/57.6/115.2(Kbps)、小于协议分析和数据处理时间小于1 μs、通讯模式可配置等技术要求,因此测试平台内异步串口板的设计方案要面向上述技术要求而制定。目前异步串口板通常采用嵌入式处理器或者基于 FPGA 的,非总线式的,异步串口收发和处理逻辑。前者易于管理总线,分析协议和处理数据,但处理速度过慢,后者处理速度快,但无法在线配置通讯模式,不能利用总线进行全局管理,故需要一种新的多路异步串口板设计方案,即能够实现管理总线,分析协议和处理数据,又具有强实时性能,以达到测试平台的技术要求。. v0 p# s( @! A" G
8 }& W# G6 B F9 l. y9 x4 ~
1、背景技术
' e. [" Y% J0 L: f1 z9 {) d目前异步串口板一般采用以下两类方法实现。& t% K1 |8 R; R' t3 M% w" `6 ?
采用独立的嵌入式处理器作为数据处理单元。异步串口单元要么使用嵌入式处理器自身的2到3个异步串口,要么使用连接到FPGA 片内总线的通用异步收发器或异步收发逻辑,从而建立起一主多从式总线结构。! M2 F7 z8 `5 K2 I2 }0 G! p$ _7 k
采用FPGA芯片集成了若干独立的异步串口通路,每个通路均有一对处理逻辑和收发逻辑,其中收发逻辑实现了一路串行数据的接受、发送和并串转换,处理逻辑实现了一路串行数据的读取、处理和存储。( x1 ~4 Y1 H. \, V, K
上述两类方法存在不足之处。传统的异步串口板,都是采用单片机或嵌入式处理器作为处理单元,通过访问通用异步收发器来读取或者发送数据,数据存储器为一片双口 SDRAM,通过信号灯控制协议,总线上位机和板卡处理单元轮换来访问数据,板卡处理单元直接接受和应答数据。通常情况下,串口应答有响应时间的要求,这使处理单元底层软件的开发难度加大,任何操作都需要处理单元的软件来控制。用嵌入式处理器读取、处理和存储数据,速度慢,特别是无法满足高速、多路、实时接收和应答的要求。高速嵌入式处理器从串口数据帧接收完毕开始,到串行数据帧开始发送为止,即处理延迟至少10 μs级。如果高波特率、多串口通道、独立通讯时,就可能出现串口应答滞后或数据帧不完整的问题。
# L8 b5 {' \1 n, q% w# ]使用FPGA芯片集成串口收发和处理逻辑的技术手段,解决了多通路、高通讯速率和高频率下通讯可靠性问题,可以保证各串行通路发送数据帧的完整。但依然存在不足,一是收发逻辑对处理逻辑是一一对应的,而不是基于片内总线实现一主对多从的模式,造成 FPGA 资源的浪费,异步串口板可扩展性差。二是在目前应用中,串口收发逻辑仅实现了串并转换,与通用异步串行收发器相比,功能不足,不具有通用性,如不支持总线的通讯模式设置、工作状态查询、通讯错误类型查询、处理器中断报警和波特率设置等,使得兼容通用异步串行收发器的异步串口板驱动程序不兼容 FPGA芯片集成串并转换电路的板卡。
9 s- ~8 J- E I8 a) v& d6 e
. [& s) [5 k! ?7 {) ?! \7 g$ ~2 设计方案 p2 C5 `3 x! n% {# b4 b
2.1 设计思路6 n! c! T! ?3 W
为便于性能比较,分别用 TMS320C6416 DSP处理器和FPGA状态机作处理单元,进行多路通用异步串口管理,协议分析和数据处理,最终实现两块功能相同的异步串口板 (两者系统结构、程序流程、通讯协议和软硬件接口均相同),以便性能比较。每块均有1个FPGA芯片 XC3S2000-4 FG456,1 个 PCI总线控制器 PCI9052,1 个双口 SDRAM IDT7132。只是前者采用通常的方法,在板卡上多了 TMS320C6416 DSP处理器,而后者没有DSP处理器,在 FPGA 芯片上多了WB总线处理逻辑。两者在 FPGA上均集成了WB片上总线,36 个通用异步串行收发器软核、1 个双口 SDRAM接口逻辑、地址译码器、配置状态寄存器区,以及串口接收滤波逻辑等。下文重点介绍 FPGA状态机作处理单元的实现方法,性能指标,并对两者的处理速度进行了比较和分析。
* b1 r4 }- a) V' Y! K+ S% Z0 e1 \; ~ U0 }
2.2 硬件板卡设计
- @- Z, Q3 l$ D9 X( k基于 FPGA状态机和 WISHBONE片上总线(下文简称为WB总线)的36通路异步串口板系统架构如图1所示。8 U! t) H: p( x) D
( k' m# @1 w" ^& O$ u
2.2.1 PCI9052总线控制器& [% v D; i8 n: f$ S
实现了总线到 9052 LOCAL 总线协议适配,LOCAL 总线配置为8位数据线,1个2K字节的RAM空间,1个IO空间,1个高电平有效的中断源。. P8 b( W+ F9 }; f, s4 _# x
2.2.2 双口 SDRAM
4 f3 G- V! k$ l& l采用IDT7132芯片作为数据缓冲区,容量2 k*8 bit,读写周期均为20 ns。为了避免上位机正在更新某数据区,而与该数据区对应的异步串口要求发送该数据区的情况,在设计中将双口 SDRAM的存储空间分为两部分,即上位机可写访问的一级缓冲区和 WB总线处理逻辑可写访问的二级缓冲区。对应36通路,一级和二级缓冲区均分成了72个子区,每路异步串口对应着一级缓冲区内的一对发送子区和接收子区,以及二级缓冲区内的一对发送子区和接收子区。上位机可读写一级发送子区,但只能读一级接收子区;WB 总线处理逻辑只能读一级发送子区,可读写一级接收子区和二级所有子区。7 V$ i9 X* ~6 L5 v( r
# a/ y: |3 @# g I) B
$ |0 a9 ~+ I! M+ A2 s% u2 ] |
|