找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1|回复: 0
打印 上一主题 下一主题

[硬件] 电路设计漫谈之 - 总线设计

[复制链接]

551

主题

1470

帖子

3万

积分

EDA365管理团队

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

积分
39487
跳转到指定楼层
1#
发表于 2019-9-27 15:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
(来源:EETOP BBS,作者:sun_ic)# e# G  h1 m+ G- A2 e; u6 J" ~
$ q  Y$ E4 L  W2 r
这里的总线设计是针对网络设备尤其是大型的通信设备,交换机,或者其它大容量的插卡式电子设备。对于中小型的电子设备或者某些成本是主要考量的产品,以下讨论的一些内容可能不适合。
+ C! c& Z% g) N8 b
2 a% Q/ |/ S  k9 u% H( F8 [对于大型的电子设备,在设计中主要要实现以下几点
; `" e0 m0 d/ s1)高容量无阻塞的数据总线
: P* }3 W: d- D0 }% A0 x4 ~2)高速灵活的控制总线. t! q6 ]4 u$ ^7 m2 _5 `
3)可靠性的支持(redundancy,hotwap,reliability,etc)) u; T) X! j7 B3 W$ `9 e+ w

- Y5 M1 Q: F" U1 U+ D& ~' {: l一个总线系统一般是由系统的背板支持的。背板的设计决定了一个系统最基本的架构。一般的需求是设计一个可扩充的大容量总线系统,即满足目前的指标和功能,还要考虑到几年以后的扩充。因为使用者购买一个系统,开始只是装备一部分容量。随着他们的客户对容量的需求,未来再进行扩容。比如一个交换机,10年前一个卡上可能只支持10个百兆口。几年后客户需要一张卡支持10个千兆口。现在可能需要支持若干10G的口。客户显然希望保护自己的投资,系统厂家能在既有的系统架构上提供高容量的接口板。所以在一开始设计时,总线系统就要考虑未来的容量增长。
* X$ m' i5 p& |8 Q7 n
" V3 L" H# Y5 I" A一个总线板可以分为对以下几个平台的支持( m. A# p8 f  Y1 ^
1)数据总线
4 B- M, A* U' D# a2)控制总线(包括状态,冗余,对板卡的控制通信等); l7 k. {# S& v
3)电源系统" z% Q3 C6 q, [* N

; ]$ ^/ y$ A' ?: L2 V" a总线系统早期的采用TDM共享的方式多。一根总线连接所用的板卡。每个板卡在特定的时间间隙传送数据。这种方式由于容量低,信号完整性等问题,已经被无阻塞的点对点总线取代。比如每个板卡有若干条到交换板(或者TRUNK卡)的高速点对点双向串行总线。这样的好处是对大容量的支持,无阻塞,很好的SI特性。总线的速度一般2.5Gbit以上。以前是用专门的SERDES把并行数据转换为高速的串行接口。现在好多ASIC或者FPGA已经集成了高速的SERDES。对于数据交换机,这种SERDES比较简单。对于需要同步的SONET/SDH系统,一般还要有个buffer做timing domain的转换,或者phase delay的补偿等。
$ |3 ^" i3 B6 b  K; g; S1 @
8 H; S/ Y5 g* A4 [  a" i) \9 b控制总线分为高速和低速控制总线。高速控制总线现在一般都用点对点的数据总线,比如Ethernet。在中心控制板上有个多端口的交换芯片。整个系统内各板卡的控制器,控制板的总控制器,都连接在一个LAN上。还见有公司使用ATM协议的。除了LAN总线外,还要有用于调试和制造的一些低速数据总线。比如用RS232作为调试用,I2C或者SPI作为制造用。这些总线一般也是点对点。尤其注意I2C之类的低速总线,虽然它们理论上讲支持共享,但尽量别这么用。即使在一个板卡内,尽量用一个I2C的bridge或者switch来连接不同器件。一般一个系统高速总线反而不怎么出问题(因为一般这是重点,一开始就花了大量时间设计仿真等),那些不怎么注意的低速总线却总不断的出状况。本人设计过2个高速总线系统。每个都是最后的I2C闹出来点事来。
9 S, l  _) p' c  M8 E8 Y3 a" D; H5 F3 Q

- J! F( U1 Y- L, }, Y! Q4 r' [! u% v$ K; d+ K* Y- W8 n- X# F
控制总线还包括对冗余状态等的支持。一般每个子卡都有以下专门信号发给控制卡:hardware_ready, software_ready, card_healthiness, card_in,slot_ID等。接受来在主控卡的primary/secondary指示 (用于识别哪个控制卡是active的),switch_over控制(用于控制一个子卡是处于active还是standby)等。这些状态/控制信号也最好是点对点的。+ b! d* {1 @$ I
电源系统。采用48V/AC电源分配,还是采用5V等低压分配,各有利弊。一般如果容量大并且功耗高时应采用48V/AC(星型)分配。这样各个板卡的电源隔离(注意48V的电源是不接地的!)。一个板卡出了问题不至于影响其它的。电源可以用几个PCB平面,或者为了节省面积采用buss bar的方式。每个板卡的48V系统都要用hot swap的控制。即电流是逐渐加到板卡上(对板卡的电容充电)。否则电流的突变会引起大的冲击.4 u! X! D' R2 Y! `9 P! G+ l

: H* h4 q! r5 @# r  Y最后提几点需要注意的 1)SI  2)冗余  3)连接顺序(mating sequence)
; Z' P4 e6 e0 r  A( j5 q
8 y6 p2 g- V1 J  Z; z8 kSI的重要性自不必说。PCB的参数应该事先跟厂家拿到。连接器的spice model可以从连接器厂家得到,一般是S参数。实在拿不到自己测试一下建立个模型。其它的器件接口的模型也一般能得到。如果仿真步骤和model正确的话,实际测试的结果应该接近。如果差别较大,除了分析仿真和测试的各个步骤外,首先怀疑的就是模型的可靠性。曾经有一次本人反复检查后怀疑一个ASIC的接受端的model有问题。厂家给的是等效于2pF//50ohm。结果我用一个2pF的电容和50ohm的电阻取代厂家的ASIC,示波器测试的波形眼图跟仿真很接近。但换上ASIC后就差了很大。联系厂家后跟他们讨论要么model不准,要么ASIC制造有问题。最后厂家review后发现是packaing有问题,寄生电容增加了几个pF。后来他们换了foundry厂家。
5 I( f3 Q0 A# K4 [1 w. @- S6 ^% G) W5 M: A- I9 |
冗余是比较难支持的一个功能,尤其是database的synchronization。具体到在硬件的总线设计上,要把主备两套系统从总线上完全分开设计。各自一套,尽量不要有公用的信号。有时为了省事,主备两个卡同时驱动一条信号,往往后来会出问题,尤其在开关电和插拔板子的时候。听俺一句劝,尽量用独立的点对点的信号和控制/状态线。不管是高速的还是低速的I2C。) `, X; g. s8 T

" q0 ~0 R" T, ]最后是mating sequence。一个板卡的接插件要有几组长度不一的信号管脚。一般连接顺序从先到后是 1)地 2)电源 3)信号。有时再加上板卡的在位信号(最短)。就靠这点距离,板卡可以在系统的参考地面和电源供给都稳定了以后,再启动某些逻辑功能。这对实现无冲击切换(hitless switch),数据完整性保护等很有作用。这时细节决定成败,虽然俺好多情况下不赞成这句话。  
6 C" l4 b& \3 @: P) O1 O8 o) p; Y& i1 B# ^
(待续)$ f2 T1 ^4 c1 u9 v6 X6 f2 C

% ]1 z, [8 e, G" B. c3 B4 ^电路设计漫谈之1-17; v7 I7 Y8 a# ^7 G- G; i
http://bbs.eetop.cn/thread-296106-1-1.html
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-4-7 09:45 , Processed in 0.055662 second(s), 32 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表