三大总线

来源:互联网 发布:库里20142015数据 编辑:程序博客网 时间:2024/05/16 17:44

发现三大总线是最常用的。所以全面了解下。A:RS-232。B:ISP。C:I2C

A:RS-232
一,电气约定
1,RXD,TXD为数据信号  
  +3~+15V代表逻辑0, -3~-15V代表逻辑1。
2,CTS,RTS,DSR,DTR,DCD为控制信号
  +3~+15V代表信号有效(接通,ON状态), -3~-15V代表信号无效(断开,OFF状态)。

如何EIA-RS232是用正负电压来表示逻辑状态的。与TTL以高低电压表示逻辑状态不同。

二,机械约定
先说明一下DTE是指data terminal equipment(数据终端设备),DCE是date communication equipment(数据通信设备)
DB引脚
3------发送数据------TXD   DTE->DCE,DTE发送数据
2------接收数据------RXD   DTE<-DCE, DTE接收数据
7------请求发送------RTS   DTE->DCE,DTE请求DCE切换到发送方式
8------允许发送------CTS   DTE<-DCE,DCE告诉DTE线路已经接通,可以发送数据
6------数据设备准备好------DSR   DTE<-DCE  DCE准备好了
5------信号地------GND
1------载波检测------DCD   DTE<-DCE,表示DCE接收到远程载波
4------数据终端准备好------DTR   DTE->DCE  DTE准备好了
9------振铃指示------RI    DDTE<-DCE,表示DCE与线路接通,出现振铃

硬件控制流相关
RTS/CTS用于半双工时的数据切换。其实看到这里,我突然有点不明白了。半双工是指虽然有2条线路,但是在同一时刻

只能使用1条线路,不是发送就是接收,但是我现在看到的RTS、CTS就是控制发送的。那么怎么没有控制信号控制接收

呢?难道我理解半双工理解错了,还是RTS和CTS也可以请求接收?
于是又查了查资料,缺省时是DCE向DTE发送数据,当DTE决定向DCE发数据时,先有效RTS,表示DTE希望向DCE发送。等

发送结束后,又自动转变为接收。

了解一下半双工的传送过程。只有当DSR和DTR都处于有效状态时,才能在DTE和DCE之间进行传送操作。如果DTE要发送

数据,先让DTR有效,然后等CTS上收到有效状态后,才能在TXD上发送数据。

无控制流
我们常用的都是全双工通信,能同时接收和发送数据。只要三根线就可以完成了。

软件控制流
传输完成后传输一个数值表示传输完成。类似于设定标记。

三,通信协议
1,开始位为1位,逻辑为0。
2,结束位为1、1.5、2位,逻辑为1。
3,数据位可以为5,6,7,8,9位。
4,奇偶效验位为1位,也可以没有。

注:1,解释一下结束位为1.5代表的是一个位的时间间隔。
    2,解释一下奇偶效验的概念。如果是奇效验。数据为逻辑为1的位的个数加上奇偶效验位的逻辑为1的位数应该是

奇数。即所有传输的位为1的个数总和为奇数。偶效验相反。

异步通信:可以使用不同的时钟信号,字符与字符间异步,每个字符中的位是同步的。

传送开始前,发收双方把所采用的起止式格式(包括字符的数据位长度,停止位位数,有无校验位以及是奇校验还是偶

校验等)和数据传输速率作统一规定。传送开始后,接收设备不断地检测传输线,看是否有起始位到来。当收到一系列

的“1”(停止位或空闲位)之后,检测到一个下跳沿,说明起始位出现,起始位经确认后,就开始接收所规定的数据

位和奇偶校验位以及停止位。经过处理将停止位去掉,把数据位拼装成一个并行字节,并且经校验后,无奇偶错才算正

确的接收一个字符。一个字符接收完毕,接收设备有继续测试传输线,监视“0”电平的到来和下一个字符的开始,直

到全部数据传送完毕。

异步串行通信是按字符传输的,每传送一个字符,就用起始位通知对方,以此来重新核对收发双方同步所以,异步通信

的可靠性高。但由于要在每个字符的前后加上起始位和停止位这样一些附加位,使得传输效率变低了,只有约80%,因

此一般用在数据速率较慢的场合(小于19.2Kb/s),在高速传送时,一般要采用同步协议。

同步通信:使用同一时钟信号
在同步传输过程中,一个字符可以对应5~8 位。没有开始位和停止位。 一般在串口通信中是不用的。

B:spi总线总结
1,简单的spi协议理解
   spi是四先MOSI(主输出从输入),MISO(主输入从输出),SCLK(SPI时钟),CS(设备片选)
   spi接口就是2个双向移位寄存器进行数据交换。
   spi接口是双沿传输。CPHA是用来控制相位的,时钟的前沿采样,后沿输出。(在spi接口中移位寄存器

,数据接收寄存器,数据发送寄存器,所谓的前沿和后沿是指一个clk的上升沿及下降沿。对于主机的MOSI

这条通路我解释一下,就是在前沿从发送寄存器采样到移位寄存器,然后在后沿从移位寄存器把数据输出

到MOSI线。同时对于主机的MISO这条通路,就是在前沿,移位寄存器对MISO线数据采样,后沿是移位寄存

器数据输出到数据接收寄存器。)
   CPOL是确定时钟有效信号的,CPOL为0,说明低电平是SPI设备空闲。为1,说明高电平时SPI设备空闲。

C:i2c总线总结
一,i2c协议
1,一个起始位。SCK为高电平时,SDA从高到底。
2,8bit数据位,但是也有10bit的(暂时不研究)。从高位到低位传输。
3,一个应答位。从机接收到数据后,返回1个应答信号,此时主机释放SDA线。
               此位可以为ACK(应答),则主机继续传输数据。
               此位可以为NOACK(无应答),则主机停止传送数据。并发出结束位。
4,一个结束位。SCK为高电平时,SDA从低到高。

二,i2c接口连线问题
1,地址与地址连线的电平有关。
2,一般要在SCK和SDA上各自连接一个电阻到VCC,另外还要连接一个电容。具体电阻电容的取值问题,我暂时就不研究了。

三,i2c传输模式
1,标准:100kbit/s
2,快速:400kbit/s
3,高速:3.4M/s
但是这些速度问题,我之前都没关心过。

四,其他
i2c还有什么同步,仲裁,握手。

0 0
原创粉丝点击