电子产业一站式赋能平台

PCB联盟网

搜索
查看: 64|回复: 0
收起左侧

搞定通讯接口的三板斧!

[复制链接]

854

主题

854

帖子

8398

积分

高级会员

Rank: 5Rank: 5

积分
8398
发表于 2025-3-18 07:30:00 | 显示全部楼层 |阅读模式
今天这篇文章我们来聊一聊通讯接口相关的内容。芯片之间需要“交流”,要能识别到对方的信号,通讯芯片之间必须遵守相同的规则。因此,无论是UART,I2C,还是SPI,CAN等各种接口,也都有他们适用的场合。面对这么多的接口和协议规范,有没有什么好的方法将他们全部包含进去呢?% U! p. L3 R; F# S
答案是肯定的,借鉴前辈们的总结和归纳,众多的接口通讯其实只要抓住三个核心点就能分清:时钟同步和异步,信号的传输方向,时钟的来源。也就是文章标题所说的通讯接口三板斧。1 n+ X9 m* E5 [) r  P
1. 第一板斧——时钟同步和异步: c( o" z: B9 t6 f3 y! b( W
接口之间的交互方式存在多种形式,如果按照是否有公共时钟CLK的参与,可以分为同步传输和异步传输。
5 u# U9 y; Y( l! s同步:两个或两个以上随时间变化的量在变化过程中保持着一定的相对关系。异步:双方不需要共同的时钟,接收方不知道发送方什么时候发送。以特定的信号来提示对方开始接收信息。
/ w& }0 ?$ g$ X同步和异步都是针对时钟来说的,同步意味着信号需要参考时钟信号,而异步信号不需要参考CLK信号。8 i* ?" ~6 j8 e6 A+ E3 Z
(1) 异步传输. D1 |, ^) h" f; L" j0 z1 R
异步传输是指将比特串划分为一个个小组发送,这些小组可以在任何时间发送。异步传输也叫做起止式通信。8 x0 H) i* q1 Q6 O: ^

kxpcu52kliw640437341.png

kxpcu52kliw640437341.png
5 a) E9 A5 v2 w
异步传输最大的特点就是在传输每帧数据时,每个字符代码前后的都有起始位和停止位标识字符的开始和结束。以常见的UART异步通信数据格式为例。
( f1 {6 y' U) F6 ]; P% O  k

wav2qol4ioq640437441.png

wav2qol4ioq640437441.png

  `2 ]  M1 K7 X" m: O4 Y2 _在数据开始发送时,有严格起始信号,停止信号。在某些场合还会增加标志位,奇偶校验位。因此,异步通讯的特点:通信方式简单,效率低,速率低;常见的应用场合:UART  CAN总线,误码率高及对数据速率要求低的线路。, L) u% y% }; t5 N

vlw1imu3bfp640437541.png

vlw1imu3bfp640437541.png

# [" V5 S, F, O( l! s2 n  t0 _8 w(2) 同步传输
" S$ w* `4 ~9 e4 k5 [2 t同步传输是指每一个数据位都是用相同的时间间隔发送,而接收时也必须以发送时的相同时间间隔接收每一位信息。
4 ~  \* o3 R: I- e) f6 p不论是否传输数据,接收单元与发送单元都必须在每一个二进制位上保持同步。发送方和接收方的时钟是相同的,一般在同步字符后,传送大量数据。
4 D5 s1 ~& P9 b: _+ _! v5 a/ E1 E

kie1yskl0qg640437641.png

kie1yskl0qg640437641.png

( @1 Y4 b. x, d2 b8 U+ J同步信号在发送和接收数据时,需要严格参考时钟信号。因此,在同步信号传输中,如果时钟信号存在错乱,传输的数据也将受到干扰。但是这种传输方式因为省去了固定的字节消耗,效率高,速度快,速度取决于时钟频率。在工程中应用较多的是I2C,SPI都属于同步传输的方式。, V2 M) D$ `% u/ W
(3) 同步和异步的差异( T# m. @/ Q  j) o8 k! r
差异点5 s/ |, Q8 S1 x6 e- A, Y
异步传输, P# O- J. h# r
同步传输
6 ?2 R8 x0 B/ `0 k' b' N4 i
公共时钟
0 |: L$ K7 R/ |
不需要
6 B9 R9 d! d! l/ Q+ `6 o9 A
需要! U2 M/ r# w+ @/ X; v( P8 e
传输方式1 T' d. W- f5 l9 {( m3 |
字符
$ G- A: w5 T6 X. w+ ]7 L4 H
比特
' @( m; \! w; p* C3 b2 u+ ]! K
传输单位# p  y: [6 J; t: q
字符
# k5 s+ P( S" k5 E

) g+ P9 o) t( T3 @3 f0 c
传输速度
( K$ r2 Q  a+ X
/ h2 L' X* B- S8 X8 ?$ \
7 a3 D/ T/ Q9 R; j6 l( D! ^
传输效率
/ v/ \5 |: _& O9 A9 q. p  ]

& N7 N' s0 B& B- _

$ o0 g) s! E0 p9 M! t
时序要求
+ f' a! \: X, q

* Z/ P; d- J) {2 j$ Y+ L7 e. v4 O& q
, t9 i/ B" E, z5 I" M1 L( J9 m! d5 x
应用场合6 ?! U; C6 Z4 R
低速接口* K  W2 c3 R0 E" q  t; G) z; {
高速接口. w0 q# e' y% L9 S% y. O7 r
典型接口
; {& o2 F; a5 f. Z  l. f
UART/RS2329 w6 W' z% L9 s& c# E# B5 h
I2C/SPI1 J) y" S( m; Y' ?

! i! t2 G6 ~) ]2. 第二板斧——信号传输方向- w8 r1 m0 B/ \2 S
前面根据数据传输是否需要时钟将接口的传输分为同步和异步。如果按照在传输的时候,是单方向的传输还是双向的传输,又可以分为单工,全双工,半双工。( {- i) }) o  T$ O* [
(1)单工
3 F1 I% b. X5 [

23adyuy3cku640437741.png

23adyuy3cku640437741.png
' S& l% X. X, Q
单工通信说明接口之间的信息只能单向的传递,比如,电视,广播,功放。在UART通信中,单独针对RXD来说,信号只能通过RXD信号从发送设备向接收设备发送数据。接收设备不能通过RXD管脚做其他功能使用。, F) O) G+ H) t2 V; q
(2)半双工- ]5 M( J2 M" n( g$ K8 k* V

zgj4shpef00640437841.png

zgj4shpef00640437841.png
4 [, C9 l+ m8 p( L) h7 \" \
半双工说明接口之间的信息通道支持双向的传输,但是在某一个固定的时刻,信号只能从一方传递到另一方,不能同时传递信号。比如对讲机,智能音响。在单板中经常使用的RS485两线式的接口就是半双工的通信方式。
* w: u* A  I. o( N6 d0 l(3)全双工
" W. \7 O7 N& |( k( l& R5 Z

gcvf4nmkdae640437941.png

gcvf4nmkdae640437941.png
4 @3 S# o6 z. r8 [+ G# ^; R" h
全双工说明信息能在某个时刻双向传输,不需要像半双工那样存在切换,全双工的通道一直支持信息双向的传递。比如有线电话,手机,都是双向通讯。在单板上,使用较广泛的UART(RXD/TXD),SPI(SDI/SDO)都是全双工接口。+ K( a: W3 X! F8 ^, d: P
3. 第三板斧——时钟的来源5 p, y4 Q; p0 M+ H- z( Y
在有时钟参与的接口通讯中,依据时钟的差异,IC之间的通讯又可以分为系统同步,源同步,自同步三种类型的通讯方式。- ]) P4 K5 m2 v9 p0 @0 C
(1) 系统同步: C6 z- G& @7 @! W
系统同步也称为公共同步,即在IC之间通信中,外部公共时钟应用于两个IC之间,并用于数据发送以及接收。% [/ ^1 x" ]+ s- Q

ywm5uahi1jq640438041.png

ywm5uahi1jq640438041.png

$ P1 o1 f) s' V5 G系统同步的接口要求接收端的数据要比时钟先到达,这样才能在时钟到达的时候正确采样。系统同步一般用在低于200MHz~300MHz的场合。这种通讯方式在笔者平时单板开发中见得很少,仅仅在SOC和以太网PHY芯片之间曾见过,50MHz的晶振同时给SOC和PHY作为时钟,但是产品中未曾使用。9 ]6 H9 _0 ~4 Q/ q+ j& `' m# P

apbkriyfgny640438141.png

apbkriyfgny640438141.png
' s/ @8 P& c. @4 Z0 f, x6 {$ u
(2) 源同步9 C# a5 k' q/ g' }
源同步是指两个通讯的IC,发送端在发送数据的时候,会伴随着时钟一起发送,接收端依据此时钟进行数据的接收。- o& h, s# z* G3 N

jvaozch4fz0640438241.png

jvaozch4fz0640438241.png

, e" t! {8 l1 Y: z7 C  q3 p/ I- q2 ~, h源同步在视频领域使用比较多,传感器输出信号格式为:数据+时钟+行场同步信号,接收端SOC在接收到图像Sensor传输的数据后,根据时钟的时序,来接收每个像素点。
  f1 F8 X2 d8 \; I! P( K

svttf1iwutg640438341.png

svttf1iwutg640438341.png
6 H  A8 ^& ~: b, f; Z5 ?
源同步的时钟和数据都是从发送端发出,这里需要注意采样时序的问题,接收端的SOC接收到的时钟采样需要在数据的中间,因此,数据先发送,再是时钟,这样在接收端时钟和数据错开的相位刚好能保证时钟采样到的信号在数据中间。源同步使用较多的应用场合接口速率在200MHz~800MHz,如DDR,QDR等。
% U( T- |" Q: V* @# W(3) 自同步
6 U5 n6 a8 K3 [, S自同步的意思就是不需要单独的时钟线,但是器件能在数据流中准确得到数据和时钟。通讯模型如下:" u3 n, q6 `2 T5 n

m3q54anrjse640438441.png

m3q54anrjse640438441.png
& P/ L* O1 g4 x" S
自同步电路主要模块分为并串转换,串并转换和时钟数据恢复。自同步在高速接口中使用比较多,如FPGA的GTP接口,内部包含的高速SerDes就是自同步。
3 U# p! k2 F' T4 F" ~SerDes串行解串器在发送端将多路低速并行信号被转换成高速串行信号(含数据和时钟),在接收端通过CDR恢复出数据和时钟。2 Q- x+ i; x7 _! z( \6 v% H- p

cscos14jeav640438542.png

cscos14jeav640438542.png

4 s8 {9 G$ u; h$ u3 d, X自同步常用于速率小于10GHz的单板中,PCIE,SATA这些高速接口都是自同步的方式。还有一些自定义的接口协议,为了节约传输线,通常将时钟信号放在数据信号中一起传输,在接收端分离出时钟信号。
% h3 ^- {" o; @% i不同的使用场合需要使用不同的芯片,不同的芯片之间的接口也存在巨大的差异,在变化中也存在一些共性的问题,只要记住上面的三板斧,在遇到新的通讯接口时,就会更快看到差异和本质。
7 j* v* J! h+ |* }4 ~8 S* X) j* X8 W2 Y& U; D: m" w
声明:& z6 Q4 x# {0 b" |% ?1 S+ e
本文转载自大话硬件公众号,如涉及作品内容、版权和其它问题,请联系工作人员微(13237418207),我们将在第一时间和您对接删除处理!投稿/招聘/广告/课程合作/资源置换请加微信:13237418207
1 A$ k, b) X) s

mafhcl4iw2r640438642.png

mafhcl4iw2r640438642.png

; A4 v6 k) D+ v' A/ C: l6 X5 S

mbz1ec10tsr640438742.jpg

mbz1ec10tsr640438742.jpg
8 a+ i* H- b' L/ O3 L5 v7 O
双带线的串扰问题
; t  G( L1 V9 a7 l$ ^& I1 Z4 Q

h4mdht5f14m640438842.jpg

h4mdht5f14m640438842.jpg

0 Q7 r, ]' v$ J3 v" L: I& g1 |' _如何理解虚无缥缈的ESD) O! H. C; q6 x0 ~4 Z" I9 \1 @/ V, Y

ajuh4idmrri640438942.png

ajuh4idmrri640438942.png
. q( Y7 m! U9 G' _6 g
扫码添加客服微信,备注“入群”拉您进凡亿教育官方专属技术微信群,与众位电子技术大神一起交流技术问题及心得~% e; X4 C6 F7 }3 k
分享 点赞 在看?? “三连”支持!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表