找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

551

主题

1470

帖子

3万

积分

EDA365管理团队

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

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

EDA365欢迎您!

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

x
(来源:EETOP BBS,作者:sun_ic)9 g# d& E' \# ~* B3 j2 _
0 U3 d1 a2 ~7 ]
这里的总线设计是针对网络设备尤其是大型的通信设备,交换机,或者其它大容量的插卡式电子设备。对于中小型的电子设备或者某些成本是主要考量的产品,以下讨论的一些内容可能不适合。
+ {" h7 f3 H1 c8 S0 J, m& o: f0 V& Z9 }* R! l
对于大型的电子设备,在设计中主要要实现以下几点0 j3 E. Q/ F3 o' R4 X2 s' L6 Z  c# c% ?
1)高容量无阻塞的数据总线+ Q* M7 H, i" l: u- k! D
2)高速灵活的控制总线
! W2 j: g% }) M3)可靠性的支持(redundancy,hotwap,reliability,etc)
1 r* u) B: w: I( R
% ]( Z2 {" o2 {7 F! M9 E一个总线系统一般是由系统的背板支持的。背板的设计决定了一个系统最基本的架构。一般的需求是设计一个可扩充的大容量总线系统,即满足目前的指标和功能,还要考虑到几年以后的扩充。因为使用者购买一个系统,开始只是装备一部分容量。随着他们的客户对容量的需求,未来再进行扩容。比如一个交换机,10年前一个卡上可能只支持10个百兆口。几年后客户需要一张卡支持10个千兆口。现在可能需要支持若干10G的口。客户显然希望保护自己的投资,系统厂家能在既有的系统架构上提供高容量的接口板。所以在一开始设计时,总线系统就要考虑未来的容量增长。
$ ?( c* g" R! z7 v( s, H
, A9 a: I, [9 E一个总线板可以分为对以下几个平台的支持! u; N# t8 z3 L3 [" H
1)数据总线8 {! p5 f5 h( e/ S$ M' \, G, {
2)控制总线(包括状态,冗余,对板卡的控制通信等). |5 H' j' V) H) d6 Q2 S+ S: T
3)电源系统7 L! X1 _( G5 ?. X( A+ R" ^& Y! d

- x2 G3 u0 g2 F; [4 n, {$ s  E总线系统早期的采用TDM共享的方式多。一根总线连接所用的板卡。每个板卡在特定的时间间隙传送数据。这种方式由于容量低,信号完整性等问题,已经被无阻塞的点对点总线取代。比如每个板卡有若干条到交换板(或者TRUNK卡)的高速点对点双向串行总线。这样的好处是对大容量的支持,无阻塞,很好的SI特性。总线的速度一般2.5Gbit以上。以前是用专门的SERDES把并行数据转换为高速的串行接口。现在好多ASIC或者FPGA已经集成了高速的SERDES。对于数据交换机,这种SERDES比较简单。对于需要同步的SONET/SDH系统,一般还要有个buffer做timing domain的转换,或者phase delay的补偿等。
( ~# @: q0 |1 b' D6 H; x" a3 U! v& |8 ]$ s
控制总线分为高速和低速控制总线。高速控制总线现在一般都用点对点的数据总线,比如Ethernet。在中心控制板上有个多端口的交换芯片。整个系统内各板卡的控制器,控制板的总控制器,都连接在一个LAN上。还见有公司使用ATM协议的。除了LAN总线外,还要有用于调试和制造的一些低速数据总线。比如用RS232作为调试用,I2C或者SPI作为制造用。这些总线一般也是点对点。尤其注意I2C之类的低速总线,虽然它们理论上讲支持共享,但尽量别这么用。即使在一个板卡内,尽量用一个I2C的bridge或者switch来连接不同器件。一般一个系统高速总线反而不怎么出问题(因为一般这是重点,一开始就花了大量时间设计仿真等),那些不怎么注意的低速总线却总不断的出状况。本人设计过2个高速总线系统。每个都是最后的I2C闹出来点事来。
  q9 T8 Q& J3 w9 V+ x3 n# k# K( W4 N- ~( V' W, m5 A+ ~) c
% f# r1 l) `4 s

2 U( U$ J# x, P3 s  i% j控制总线还包括对冗余状态等的支持。一般每个子卡都有以下专门信号发给控制卡:hardware_ready, software_ready, card_healthiness, card_in,slot_ID等。接受来在主控卡的primary/secondary指示 (用于识别哪个控制卡是active的),switch_over控制(用于控制一个子卡是处于active还是standby)等。这些状态/控制信号也最好是点对点的。
: A- Q3 q9 ]/ d  t$ E7 e+ i电源系统。采用48V/AC电源分配,还是采用5V等低压分配,各有利弊。一般如果容量大并且功耗高时应采用48V/AC(星型)分配。这样各个板卡的电源隔离(注意48V的电源是不接地的!)。一个板卡出了问题不至于影响其它的。电源可以用几个PCB平面,或者为了节省面积采用buss bar的方式。每个板卡的48V系统都要用hot swap的控制。即电流是逐渐加到板卡上(对板卡的电容充电)。否则电流的突变会引起大的冲击.
& S, x. @. S$ S5 u
3 q5 M4 j& x7 k最后提几点需要注意的 1)SI  2)冗余  3)连接顺序(mating sequence)
! I# V+ U/ B8 K) q6 X, Y1 b1 ]9 p2 M% c: E* j1 H6 i
SI的重要性自不必说。PCB的参数应该事先跟厂家拿到。连接器的spice model可以从连接器厂家得到,一般是S参数。实在拿不到自己测试一下建立个模型。其它的器件接口的模型也一般能得到。如果仿真步骤和model正确的话,实际测试的结果应该接近。如果差别较大,除了分析仿真和测试的各个步骤外,首先怀疑的就是模型的可靠性。曾经有一次本人反复检查后怀疑一个ASIC的接受端的model有问题。厂家给的是等效于2pF//50ohm。结果我用一个2pF的电容和50ohm的电阻取代厂家的ASIC,示波器测试的波形眼图跟仿真很接近。但换上ASIC后就差了很大。联系厂家后跟他们讨论要么model不准,要么ASIC制造有问题。最后厂家review后发现是packaing有问题,寄生电容增加了几个pF。后来他们换了foundry厂家。
' I7 ~3 q6 `/ f% K6 `- y
8 }; D. I6 V: y) M5 X0 C2 m' n# b冗余是比较难支持的一个功能,尤其是database的synchronization。具体到在硬件的总线设计上,要把主备两套系统从总线上完全分开设计。各自一套,尽量不要有公用的信号。有时为了省事,主备两个卡同时驱动一条信号,往往后来会出问题,尤其在开关电和插拔板子的时候。听俺一句劝,尽量用独立的点对点的信号和控制/状态线。不管是高速的还是低速的I2C。
9 b1 |& A7 i3 |6 B' ?
& C1 D/ p: F' h最后是mating sequence。一个板卡的接插件要有几组长度不一的信号管脚。一般连接顺序从先到后是 1)地 2)电源 3)信号。有时再加上板卡的在位信号(最短)。就靠这点距离,板卡可以在系统的参考地面和电源供给都稳定了以后,再启动某些逻辑功能。这对实现无冲击切换(hitless switch),数据完整性保护等很有作用。这时细节决定成败,虽然俺好多情况下不赞成这句话。  
$ p3 `" d0 m; ^1 V$ e
( V$ ?4 S: O& N( [(待续)
* w6 x. ^1 E6 R$ p3 `( _& s$ S5 w2 ~: K% y$ c5 o
电路设计漫谈之1-17
* Z- a* }  l" xhttp://bbs.eetop.cn/thread-296106-1-1.html
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-4-9 20:34 , Processed in 0.054946 second(s), 32 queries , Gzip On.

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

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

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