当前位置:文档之家› 9_同步串行接口(SSI)(免费下载)

9_同步串行接口(SSI)(免费下载)

9_同步串行接口(SSI)(免费下载)
9_同步串行接口(SSI)(免费下载)

目录

Stellaris外设驱动库——SSI (1)

1.1 SSI总体特性 (1)

1.2 SSI通信协议 (1)

1.2.1 Texas Instruments同步串行帧格式 (1)

1.2.2 Freescale SPI帧格式 (2)

1.2.3 MICROWIRE帧格式 (6)

1.3 SSI功能概述 (8)

1.3.1 位速率和帧格式 (8)

1.3.2 FIFO操作 (8)

1.3.3 SSI中断 (9)

1.4 SSI库函数参考 (9)

1.4.1 配置与控制 (9)

1.4.2 数据收发 (11)

1.4.3 中断控制 (12)

Stellaris外设驱动库——SSI

1.1 SSI总体特性

Stellaris系列ARM的SSI(Synchronous Serial Interface,同步串行接口)是与具有Freescale SPI(飞思卡尔半导体)、MicroWire(美国国家半导体)、Texas Instruments(德州仪器,TI)同步串行接口的外设器件进行同步串行通信的主机或从机接口。SSI接口是Stellaris系列ARM都支持的标准外设,也是流行的外部串行总线之一。SSI具有以下主要特性:z主机或从机操作

z时钟位速率和预分频可编程

z独立的发送和接收FIFO,16位宽,8个单元深

z接口操作可编程,以实现Freescale SPI、MicroWire或TI的串行接口

z数据帧大小可编程,范围4~16位

z内部回环测试模式,可进行诊断/调试测试

1.2 SSI通信协议

对于Freescale SPI、MICROWIRE、Texas Instruments3种帧格式,当SSI空闲时串行时钟(SSICLK)都保持不活动状态,只有当数据发送或接收时处于活动状态,SSICLK才在设置好的频率下工作。利用SSICLK的空闲状态可提供接收超时指示。如果一个超时周期之后接收FIFO仍含有数据,则产生超时指示。

对于Freescale SPI和MICROWIRE这两种帧格式,串行帧(SSIFss)管脚为低电平有效,并在整个帧的传输过程中保持有效(被下拉)。

而对于Texas Instruments同步串行帧格式,在发送每帧之前,每遇到SSICLK的上升沿开始的串行时钟周期时,SSIFss管脚就跳动一次。在这种帧格式中,SSI和片外从器件在SSICLK的上升沿驱动各自的输出数据,并在下降沿锁存来自另一个器件的数据。

不同于其它两种全双工传输的帧格式,在半双工下工作的MICROWIRE格式使用特殊的主-从消息技术。在该模式中,帧开始时向片外从机发送8位控制消息。在发送过程中,SSI没有接收到输入的数据。在消息已发送之后,片外从机对消息进行译码,并在8位控制消息的最后一位也已发送出去之后等待一个串行时钟,之后以请求的数据来响应。返回的数据在长度上可以是4~16位,使得在任何地方整个帧长度为13~25位。

1.2.1Texas Instruments同步串行帧格式

图1 TI同步串行帧格式(单次传输)

图1显示了一次传输的Texas Instruments同步串行帧格式。

在该模式中,任何时候当SSI空闲时,SSICLK和SSIFss被强制为低电平,发送数据线SSITx为三态。一旦发送FIFO的底部入口包含数据,SSIFss变为高电平并持续一个SSICLK 周期。即将发送的值也从发送FIFO传输到发送逻辑的串行移位寄存器中。在SSICLK的下一个上升沿,4~16位数据帧的MSB从SSITx管脚移出。同样地,接收数据的MSB也通过片外串行从器件移到SSIRx管脚上。

然后,SSI和片外串行从器件都提供时钟,供每个数据位在每个SSICLK的下降沿进入各自的串行移位器中。在已锁存LSB之后的第一个SSICLK上升沿上,接收数据从串行移位器传输到接收FIFO。

图2 TI同步串行帧格式(连续传输)

图2显示了背对背(back-to-back)传输时的Texas Instruments同步串行帧格式。

1.2.2Freescale SPI帧格式

Freescale SPI(Motorala SPI)接口是一个4线接口,其中SSIFss信号用作从机选择。Freescale SPI格式的主要特性为:SSICLK信号的不活动状态和相位可以通过SSISCR0控制寄存器中的SPO和SPH位来设置。

z SPO时钟极性位

当SPO时钟极性控制位为0时,在没有数据传输时SSICLK管脚上将产生稳定的低电平。如果SPO位为1,则在没有进行数据传输时在SSICLK管脚上产生稳定的高电平。

z SPH相位控制位

SPH相位控制位选择捕获数据以及允许数据改变状态的时钟边沿。通过在第一个数据捕获边沿之前允许或不允许时钟转换,从而在第一个被传输的位上产生极大的影响。当SPH 相位控制位为0时,在第一个时钟边沿转换时捕获数据。如果SPH位为1,则在第二个时钟边沿转换时捕获数据。

1.SPO=0和SPH=0时的Freescale SPI帧格式

SPO=0和SPH=0时,Freescale SPI帧格式的单次和连续传输信号序列如图3和图4所示。

图3 SPO=0和SPH=0时的Freescale SPI 帧格式(单次传输)

图4 SPO=0和SPH=0时的Freescale SPI 帧格式(连续传输)

在上述配置中,SSI 处于空闲周期时:

(1)SSICLK 强制为低电平

(2)SSIFss 强制为高电平

(3)发送数据线SSITx 强制为低电平

(4)当SSI 配置为主机时,使能SSICLK 端口

(5)当SSI 配置为从机时,禁止SSICLK 端口

如果SSI 使能并且在发送FIFO 中含有有效的数据,则通过将SSIFss 主机信号驱动为低电平表示发送操作开始。这使得从机数据能够放在主机的SSIRx 输入线上,主机SSITx 输出端口使能。在半个SSICLK 周期之后,有效的主机数据传输到SSITx 管脚。既然主机和从机数据都已设置好,则在下面的半个SSICLK 周期之后,SSICLK 主机时钟管脚变为高电平。在SSICLK 的上升沿捕获数据,该操作延续到SSICLK 信号的下降沿。

如果是传输一个字,则在数据字的所有位都已传输完之后,在捕获到最后一个位之后的一个SSICLK 周期后,SSIFss 线返回到其空闲的高电平状态。

在连续的背对背传输中,数据字的每次传输之间SSIFss 信号必须变为高电平。这是因为如果SPH 位为逻辑0,则从机选择管脚将其串行外设寄存器中的数据固定,不允许修改。因此,主器件必须在每次数据传输之间将从器件的SSIFss 管脚拉高,来使能串行外设的数据写操作。当连续传输完成时,在捕获到最后一个位之后的一个SSICLK 周期后,

SSIFss 管脚返回到其空闲状态。

2. SPO=0和SPH=1时的Freescale SPI 帧格式

SPO=0和SPH=1时,Freescale SPI 帧格式的传输信号序列如图5所示,该图涵盖了单次和连续传输这两种情况。

S S IC lk

S S IFs s

S S IR x S S ITx 图5 SPO=0和SPH=1时的Freescale SPI 帧格式

在该配置中,SSI 处于空闲周期时:

(1)SSICLK 强制为低电平

(2)SSIFss 强制为高电平

(3)发送数据线SSITx 强制为低电平

(4)当SSI 配置为主机时,使能SSICLK 端口

(5)当SSI 配置为从机时,禁止SSICLK 端口

如果SSI 使能并且在发送FIFO 中含有有效的数据,则通过将SSIFss 主机信号驱动为低电平表示发送操作开始。主机SSITx 输出使能。在下面的半个SSICLK 周期之后,主机和从机有效数据能够放在各自的传输线上。同时,利用一个上升沿转换来使能SSICLK 。然后,在SSICLK 的下降沿捕获数据,该操作一直延续到SSICLK 信号的上升沿。

如果是传输一个字,则在所有位传输完之后,在捕获到最后一个位之后的一个SSICLK 周期,SSIFss 线返回到其空闲的高电平状态。

如果是背对背(back-to-back )传输,则在两次连续的数据字传输之间SSIFss 管脚保持低电平,连续传输的结束情况与单个字传输相同。

3. SPO=1和SPH=0时的Freescale SPI 帧格式

SPO=1和SPH=0

时,Freescale SPI 帧格式的单次和连续传输信号序列如图6和图7所示。

图6 SPO=1和SPH=0时的Freescale SPI 帧格式(单次传输)

图7 SPO=1和SPH=0时的Freescale SPI 帧格式(连续传输)

在该配置中,SSI 处于空闲周期时:

(1)SSICLK 强制为高电平

(2)SSIFss 强制为高电平

(3)发送数据线SSITx 强制为低电平

(4)SSI 配置为主机时,使能SSICLK 引脚

(5)SSI 配置为从机时,禁止SSICLK 引脚

如果SSI 使能并且在发送FIFO 中含有有效的数据,则通过将SSIFss 主机信号驱动为低电平表示传输操作开始,这可使从机数据立即传输到主机的SSIRx 线上。主机SSITx 输出引脚使能。半个周期之后,有效的主机数据传输到SSITx 线上。既然主机和从机的有效数据都已设置好,则在下面的半个SSICLK 周期之后,SSICLK 主机时钟管脚变为低电平。这表示数据在下降沿被捕获并且该操作延续到SSICLK 信号的上升沿。

如果是单个字传输,则在数据字的所有位传输完之后,在最后一个位传输完之后的一个SSICLK 周期,SSIFss 线返回到其空闲的高电平状态。

而在连续的背对背(back-to-back )传输中,每次数据字传输之间SSIFss 信号必须变为高电平。这是因为如果SPH 位为逻辑0,则从机选择管脚使其串行外设寄存器中的数据固定,不允许修改。因此,每次数据传输之间,主器件必须将从器件的SSIFss 管脚拉为高电平来使能串行外设的数据写操作。在连续传输完成时,最后一个位被捕获之后的一个SSICLK 周期,SSIFss 管脚返回其空闲状态。

4. SPO=1和SPH=1时的Freescale SPI 帧格式

SPO=1和SPH=1时,Freescale SPI 帧格式的传输信号序列如图8所示。该图涵盖了单次和连续传输两种情况。

S S IC lk

S S IFs s

S S IR

x S S ITx 图8 SPO=1和SPH=1时的Freescale SPI 帧格式

(注:图中的Q 表示未定义)

在该配置中,SSI 处于空闲周期时:

(1)SSICLK 强制为高电平

(2)SSIFss 强制为高电平

(3)发送数据线SSIFss 强制为低电平

(4)当SSI 配置为主机时,使能SSICLK 引脚

(5)当SSI 配置为从机时,禁止SSICLK 引脚

如果SSI 使能并且在发送FIFO 中含有有效的数据,则通过将SSIFss 主机信号驱动为低电平表示发送操作开始。主机SSITx 输出引脚使能。在下面的半个SSICLK 周期之后,主机和从机数据都能够放在各自的传输线上。同时,利用SSICLK 的下降沿转换来使能SSICLK 。然后在上升沿捕获数据,并且该操作延续到SSICLK 信号的下降沿。

在所有位传输完之后,如果是单个字传输,则在最后一个位捕获完之后的一个SSICLK 周期中,SSIFss 线返回到其空闲的高电平状态。

而对于连续的背对背(back-to-back)传输,SSIF SS 管脚保持其有效的低电平状态,直至最后一个字的最后一位捕获完,再返回其上述的空闲状态。

而对于连续的背对背(back-to-back)传输,在两次连续的数据字传输之间SSIFss 管脚保持低电平,连续传输的结束情况与单个字传输相同。

1.2.3 MICROWIRE 帧格式

图9显示了单次传输的MICROWIRE 帧格式,而图10为该格式的背对背(back-to-back )传输情况。

SSIClk

SSITx

图9 MICROWIRE 帧格式(单次传输)

MICROWIRE 格式与SPI 格式非常类似,只是MICROWIRE 为半双工而不是全双工,使用主-从消息传递技术。每次串行传输都由SSI 向片外从器件发送8位控制字开始。在此传输过程中,SSI 没有接收到输入的数据。在消息已发送完之后,片外从机对消息进行译码,SSI 在将8位控制消息的最后一位发送完之后等待一个串行时钟,之后以请求的数据来响应。返回的数据在长度上为4~16位,使得任何地方总的帧长度为13~25位。

在该配置中,SSI 处于空闲状态时:

(1)SSICLK 强制为低电平

(2)

SSIFss 强制为高电平

(3)数据线SSITx 强制为低电平。

通过向发送FIFO 写入一个控制字节来触发一次传输。SSIFss 的下降沿使得包含在发送FIFO 底部入口的值能够传输到发送逻辑的串行移位寄存器中,并且8位控制帧的MSB 移出

到SSITx 管脚上。在该控制帧传输期间SSIFss 保持低电平,SSIRx 管脚保持三态。

片外串行从器件在SSICLK 的上升沿时将每个控制位锁存到其串行移位器中。在将最后一位锁存之后,从器件在一个时钟的等待状态中对控制字节进行译码,并且从机通过将数据发送回SSI 来响应。数据的每个位在SSICLK 的下降沿时驱动到SSIRx 线上。SSI 在SSICLK 的上升沿依次将每个位锁存。在帧传输结束时,对于单次传输,在最后一位已锁存到接收串行移位器之后的一个时钟周期,SSIFss 信号被拉为高电平。这使得数据传输到接收FIFO 中。 注:在接收移位器已将LSB 锁存之后的SSICLK 的下降沿上或在SSIFss 管脚变为高电平时,片外从器件能够将接收线置为三态。

对于连续传输,数据传输的开始与结束与单次传输相同。但SSIFss 线持续有效(保持低电平)并且数据传输以背对背(back-to-back)方式产生。在接收到当前帧的接收数据的LSB 之后,立即跟随下一帧的控制字节。在当前帧的LSB 已锁存到SSI 之后,接收数据的每个位在SSICLK 的下降沿从接收移位器中进行传输。

图10 MICROWIRE 帧格式(连续传输)

在MICROWIRE 模式中,SSIFss 变为低电平之后的SSICLK 上升沿上,SSI 从机对接收数据的第一个位进行采样。驱动自由运行SSICLK 的主机必须确保SSIFss 信号相对于SSICLK 的上升沿具有足够的建立时间和保持时间裕量(setup and hold margins )。 图11阐明了建立和保持时间要求。相对于SSICLK 的上升沿(在该上升沿上,SSI 从机将对接收数据的第一个位进行采样)

,SSIFss 的建立时间至少必须是SSI 进行操作的SSICLK 周期的两倍。相对于该边沿之前的SSICLK 上升沿,SSIFss 至少必须具有一个SSICLK 周期的保持时间。

SSI 从机采样

图11 MICROWIRE 帧格式,SSIFss 输入建立和保持时间要求

1.3 SSI功能概述

SSI对从外设器件接收到的数据执行串行到并行转换。CPU可以访问SSI数据寄存器来发送和获得数据。发送和接收路径利用内部FIFO存储单元进行缓冲,以允许最多8个16位的值在发送和接收模式中独立地存储。

1.3.1位速率和帧格式

SSI包含一个可编程的位速率时钟分频器和预分频器来生成串行输出时钟。尽管最大位速率由外设器件决定,但1.5MHz及更高的位速率仍是支持的。

串行位速率是通过对输入的系统时钟进行分频来获得。虽然理论上SSICLK发送时钟可达到25MHz,但模块可能不能在该速率下工作。发送操作时,系统时钟速率至少必须时SSICLK的两倍。接收操作时,系统时钟速率指导必须时SSICLK的12倍。

SSI通信的帧格式有3种:Texas Instruments同步串行数据帧、Freescal SPI数据帧、MICROWIRE串行数据帧。

根据已设置的数据大小,每个数据帧长度在4~16位之间,并采用MSB在前的方式发送。

1.3.2FIFO操作

对FIFO的访问是通过SSI数据寄存器(SSIDR)中写入与读出数据来实现的,SSIDR 为16为宽的数据寄存器,可以对它进行读写操作,SSIDR实际对应两个不同的物理地址,以分别完成对发送FIFO和接收FIFO的操作。

SSIDR的读操作即是对接收FIFO的入口(由当前FIFO读指针来指向)进行访问。当SSI接收逻辑将数据从输入的数据帧中转移出来后,将它们放入接收FIFO的入口(由当前FIFO写指针来指向)。

SSIDR的写操作即是将数据写入发送FIFO的入口(由写指针来指向)。每次,发送逻辑将发送FIFO中的数值转移出来一个,装入发送串行移位器,然后在设置的位速率下串行溢出到SSITx管脚。

当所选的数据长度小于16位时,用户必须正确调整写入发送FIFO的数据,发送逻辑忽略高位未使用的位。小于16位的结合搜数据在记诶手传冲去中自动调整。

当SSI设置为MICROWIRE帧格式时,发送数据的默认大小为8为(最高有效字节忽略),接收数据的大小由程序员控制。即使当SSICR1寄存器的SSE位设置为0时(禁止SSI 端口),也可以不将发送FIFO和接收FIFO清零。这样可在使能SSI之前使用软件来填充发送FIFO。

z发送FIFO

通用发送FIFO是16位宽、8单元深、先进先出的存储缓冲区。CPU通过写SSI数据寄存器SSIDR来将数据写入发送FIFO,数据在由发送逻辑读出之前一直保存在发送FIFO 中。

当SSI配置为主机或从机时,并行数据先写入发送FIFO,再转换成串行数据并通过SSITx管脚分别发送到相关的从机或主机。

z接收FIFO

通用接收FIFO 是一个16位宽、8单元深、先进先出的存储缓冲区。从串行接口接收到的数据在由CPU 读出之前一直保存在缓冲区中,CPU 通过读SSIDR 寄存器来访问读FIFO 。 当SSI 配置位主机或从机时,通过SSIRx 管脚接收到的串行数据转换成并行数据后装载到相关的从机或主机接收FIFO 。

1.3.3 SSI 中断

SSI 在满足以下条件时能够产生中断:

z 发送FIFO 服务

z 接收FIFO 服务

z 接收FIFO 超时

z 接收FIFO 溢出

所有中断事件在发送到嵌套中断向量控制器之前先要执行“或”操作,因此,在任何给定的时刻SSI 只能向中断控制器产生一个中断请求。通过对SSI 中断屏蔽寄存器(SSIIM )中的对应位进行设置,你可以屏蔽4个单独屏蔽的中断里的任一个,将适当的屏蔽位置1可使能中断。

SSI 提供单独的输出和组合的中断输出,这样可允许全局中断服务程序或组合的逻辑驱动程序来处理中断。发送或接收动态数据流的中断已与状态中断分开,这样,根据FIFO 出发点(trigger level )可以对数据执行读和写操作。各个中断源的状态可从SSI 原始中断状态(SSIRIS )和SSI 屏蔽后的中断状态寄存器(SSIMIS )中读出。

1.4 SSI 库函数参考

1.4.1 配置与控制

1. SSIConfigSetExpClk( )

表1 函数SSIConfigSetExpClk( ) 功能

SSI 配置(需要提供明确的时钟速度)

原型 void SSIConfigSetExpClk(unsigned long ulBase ,

unsigned long ulSSIClk ,

unsigned long ulProtocol ,

unsigned long ulMode ,

unsigned long ulBitRate ,

unsigned long ulDataWidth)

参数 ulBase :SSI 模块的基址,应当取下列值之一:

SSI_BASE // SSI 模块的基址(用于仅含有1个SSI 模块的芯片) SSI0_BASE // SSI0模块的基址(等同于SSI_BASE )

SSI1_BASE // SSI1模块的基址

ulSSIClk :提供给SSI 模块的时钟速度

ulProtocol :数据传输的协议,应当取下列值之一:

SSI_FRF_MOTO_MODE_0 // Freescale (飞思卡尔半导体)格式,极性0,相位0 SSI_FRF_MOTO_MODE_1 // Freescale (飞思卡尔半导体)格式,极性0,相位1 SSI_FRF_MOTO_MODE_2 // Freescale (飞思卡尔半导体)格式,极性1,相位0 SSI_FRF_MOTO_MODE_3 // Freescale (飞思卡尔半导体)格式,极性1,相位1

SSI_FRF_TI // TI(德州仪器)格式

//

National(美国国家半导体)MicroWire格式 SSI_FRF_NMW

ulMode:SSI模块的工作模式,应当取下列值之一:

SSI主模式

SSI_MODE_MASTER //

SSI从模式

//

SSI_MODE_SLAVE

SSI从模式(输出禁止)

SSI_MODE_SLAVE_OD

//

ulBitRate:SSI的位速率,这个位速率必须满足下面的时钟比率标准:

ulBitRate

≤ FSSI/2(主模式)

≤ FSSI/12(从模式)

ulBitRate

其中FSSI是提供给SSI模块的时钟速率

ulDataWidth:数据宽度,取值4~16

返回无

2.SSIConfig( )

这是个宏函数,为了实际编程的方便,常常用来代替函数SSIConfigSetExpClk( )。

表2 宏函数SSIConfig( )

功能SSI配置

原型#define SSIConfig(a , b , c , d , e) SSIConfigSetExpClk(a , SysCtlClockGet( ) , b , c , d , e) 参数详见函数SSIConfigSetExpClk( )的描述

返回无

3.SSIEnable( )

表3 函数SSIEnable( )

功能使能SSI发送和接收

原型void SSIEnable(unsigned long ulBase)

参数ulBase:SSI模块的基址,取值SSI_BASE、SSI0_BASE或SSI1_BASE

返回无

4.SSIDisable( )

表4 函数SSIDisable( )

功能禁止SSI发送和接收

原型void SSIDisable(unsigned long ulBase)

参数ulBase:SSI模块的基址,取值SSI_BASE、SSI0_BASE或SSI1_BASE

返回无

1.4.2 数据收发

1. SSIDataPutNonBlocking( )

表5 函数SSIDataPutNonBlocking( ) 功能

将一个数据单元放入SSI 的发送FIFO 里(不等待) 原型

long SSIDataPutNonBlocking(unsigned long ulBase , unsigned long ulData) 参数

ulBase :SSI 模块的基址,取值SSI_BASE 、SSI0_BASE 或SSI1_BASE ulData :要发送的数据单元(4~16个有效位) 返回 返回写入发送FIFO 的数据单元数量(如果发送FIFO 里没有可用的空间则返回0)

2. SSIDataGetNonBlocking( )

表6 函数SSIDataGetNonBlocking( )

功能

从SSI 的接收FIFO 里读取一个数据单元(不等待) 原型

long SSIDataGetNonBlocking(unsigned long ulBase , unsigned long *pulData) 参数

ulBase :SSI 模块的基址,取值SSI_BASE 、SSI0_BASE 或SSI1_BASE pulData :指针,指向保存读取到的数据单元地址 返回 返回从接收FIFO 里读取到的数据单元数量(如果接收FIFO 为空,则返回0)

3. SSIDataNonBlockingPut( )

表7 宏函数SSIDataNonBlockingPut( )

功能

将一个数据单元放入SSI 的发送FIFO 里(不等待) 原型

#define SSIDataNonBlockingPut(a , b) SSIDataPutNonBlocking(a , b) 参数

参见函数SSIDataPutNonBlocking( )的描述 返回 参见函数SSIDataPutNonBlocking( )的描述

4. SSIDataNonBlockingGet( )

表8 宏函数SSIDataNonBlockingGet( )

功能

从SSI 的接收FIFO 里读取一个数据单元(不等待) 原型

#define SSIDataNonBlockingGet(a , b) SSIDataGetNonBlocking(a , b) 参数

参见函数SSIDataGetNonBlocking( )的描述 返回 参见函数SSIDataGetNonBlocking( )的描述

5. SSIDataPut( )

表9 函数SSIDataPut( )

功能 将一个数据单元放入SSI 的发送FIFO 里

原型

void SSIDataPut(unsigned long ulBase , unsigned long ulData) 参数

ulBase :SSI 模块的基址,取值SSI_BASE 、SSI0_BASE 或SSI1_BASE ucData :要发送数据单元(4~16个有效位) 返回 无

6. SSIDataGet( )

表10 函数SSIDataGet( ) 功能

从SSI 的接收FIFO 里读取一个数据单元 原型

void SSIDataGet(unsigned long ulBase , unsigned long *pulData) 参数

ulBase :SSI 模块的基址,取值SSI_BASE 、SSI0_BASE 或SSI1_BASE pulData :指针,指向保存读取到的数据单元地址 返回 无

1.4.3 中断控制

1. SSIIntEnable( )

表11 函数SSIIntEnable( ) 功能

使能单独的(一个或多个)SSI 中断源 原型 void SSIIntEnable(unsigned long ulBase , unsigned long ulIntFlags)

参数 ulBase :SSI 模块的基址,取值SSI_BASE 、SSI0_BASE 或SSI1_BASE

ulIntFlags :指定的中断源,应当取下列值之一或者它们之间的任意“或运算”组合形式: SSI_TXFF // 发送FIFO 半空或不足半空

SSI_RXFF // 接收FIFO 半满或超过半满

SSI_RXTO // 接收超时(接收FIFO 已有数据但未半满,而后续数据长时间不来) SSI_RXOR // 接收FIFO 溢出

返回 无

2. SSIIntDisable( )

表12 函数

SSIIntDisable( )

功能

禁止单独的(一个或多个)SSI 中断源 原型

void SSIIntDisable(unsigned long ulBase , unsigned long ulIntFlags) 参数

参见函数SSIIntEnable( )的描述 返回 无

3. SSIIntStatus( )

表13 函数SSIIntStatus( )

功能 获取SSI 当前的中断状态

原型unsigned long SSIIntStatus(unsigned long ulBase , tBoolean bMasked)

参数ulBase:SSI模块的基址,取值SSI_BASE、SSI0_BASE或SSI1_BASE bMasked:如果需要获取原始的中断状态,则取值false

如果需要获取屏蔽的中断状态,则取值true

返回当前中断的状态,参见函数SSIIntEnable( )里参数ulIntFlags的描述4.SSIIntClear( )

表14 函数SSIIntClear( )

功能清除SSI的中断

原型void SSIIntClear(unsigned long ulBase , unsigned long ulIntFlags) 参数参见函数SSIIntEnable( )的描述

返回无

5.SSIIntRegister( )

表15 函数SSIIntRegister( )

功能注册一个SSI中断服务函数

原型void SSIIntRegister(unsigned long ulBase , void (*pfnHandler)(void))

参数ulBase:SSI模块的基址,取值SSI_BASE、SSI0_BASE或SSI1_BASE pfnHandler:指针,指向SSI中断出现时被调用的函数

返回无

6.SSIIntUnregister( )

表16 函数SSIIntUnregister( )

功能注销SSI的中断服务函数

原型void SSIIntUnregister(unsigned long ulBase)

参数ulBase:SSI模块的基址,取值SSI_BASE、SSI0_BASE或SSI1_BASE 返回无

串口和并口的区别

并口、串口、COM口区别 并行接口,简称并口。并口采用的是25针D形接头。所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错,目前,并行接口主要作为打印机端口等。 并口的工作模式: 1:SPP(Standard Parallel Port)称为标准并口,它是最早出现的并口工作模式,几乎所有使用并口 的外设都支持该模式。 2:EPP(Enhanced Parallel Port)称为增强型高速并口,它是在SPP 的基础上发展起来的新型工作模式,也是现在应用最多的并口工作模式,目前市面上的大多数打印机、扫描仪都支持EPP 模式。 3:ECP(ExtendedCapability Port)即扩充功能并口,它是目前比较先进的并口工作模式,但兼容性问题也比较多,除非您的外设支持ECP 模式,否则不要选择该模式。 串口叫做串行接口,也称串行通信接口,即COM口。按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。 RS-232-C:也称标准串口,是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。传统的RS-232-C接口标准有22根线,采用标准25芯D型插头座。后来的PC上使用简化了的9芯D型插座。现在应用中25芯插头座已很少采用。现在的电脑一般有两个串行口:COM1和COM2,你到计算机后面能看到9针D形接口就是了。现在有很多手机数据线或者物流接收器都采用COM口与计算机相连。

18F66K80串行口中文详解

SPEN=1 TRISx=1 异步模式、同步模式主动 每个增强型USART模块的操作 通过三个控制寄存器: ?发送状态和控制(TXSTAx) ?接收状态和控制(RCSTAx) ?波特率控制(BAUDCONx) TXSTAx: 第7位CSRC:时钟源选择位 异步模式:随意设置。 同步模式:1 =主模式(时钟来自内部BRG)0=从模式(从外部时钟源) 第6位TX9:9位发送使能位 1 =选择9位发送0 =选择8位传输 第5位TXEN:发送使能位(1)1 =使能发送0=发送被禁用 第4位SYNC同步:EUSART模式选择位 1 =同步模式0 =异步模式 第3位 SENDB:发送间隔字符位 异步模式: 1 =在下一次发送时发送同步间隔(完成后由硬件清零)0 =同步间隔发送完成同步模式:CSRC 第2位BRGH:高波特率选择位异步模式: 1 =高转速0=低转速 同步模式:未使用的这种模式。 位1 TRMT:发送移位寄存器状态位 1 = TSR为空0 = TSR是满 位0 TX9D:发送数据的第9位可以是地址/数据位或奇偶校验位。 RCSTAx: 第7位SPEN位置:串行端口使能位 1 =使能串口(配置RXx /的DTX及TXXX / CKx为串口引脚引脚) 0 =串行端口被禁用(在复位状态) 第6位RX9位置:9位接收使能位 1 =选择9位接收0 =选择8位接收 第5位SREN:单接收使能位 异步模式:无需设置。 同步模式—主动模式: 1 =使能接收单0 =禁止接收单此位接收完成后清零。 同步模式—从动模式:无需设置。 第4位CREN:连续接收使能位 异步模式: 1 =使能接收器0 =禁止接收器 同步模式: 1 =使能连续接收,直到使能位CREN位被清零 0 =禁止连续接收 第3位ADDEN:地址检测使能位 异步模式9位(RX9位置= 1): 1 =使能地址检测,允许中断并装载接收缓冲器当RSR <8>设置 0 =禁止地址检测,所有字节接收和第九位,可作为奇偶校验位 异步模式9位(RX9位置= 0):无需设置。 第2位FERR:帧错误位 1 =帧错误(可以通过阅读RCREGx清理登记和接收下一个有效字节) 0 =无帧错误

高速伺服总线及接口

高速伺服总线及接口在数控行业的发展概况 ——机自14班2110101092 牛善涛在计算机系统中,总线接口对整个系统的性能和功能都有直接影响,有关专家预测,在下一世纪里,串行总线将逐渐取代并行总线。 在数控系统中,个人计算机技术与数控技术越来越紧密地结合,由此而产生的具有开放性的PCNC数控系统,正在取代传统形式的数控系统,并成为市场的主流产品。计算机总线结构的变革,必将影响数控系统的体系结构,串行总线的应用将极大地改变现有的传统数控系统的结构形式。 串行总线的优点: 同并行总线相比,串行总线具有许多优点。串行总线连接引脚数量少,连接简单,成本较低,系统可靠性高。串行总线对系统体系结构具有重大的影响,它的应用有助于数据流计算机体系结构的实现。 对于高速计算机系统,串行总线比并行总线更容易使用。在并行总线中,传输数据的各个位必须处于一个时钟周期内的相同位置,频率越高,对器件的传输性能和电路结构要求越严格,系统设计难度加大,致使系统成本提高,可靠性降低。相比之下,使用串行总线时,数据的各个位是串行传输的。在串行总线设计时,既可以嵌入时钟信号作为同步信号,也可以采用锁相环的时钟恢复方式;同并行总线相比,串行总线的传输线效应比较容易处理,从而降低设计难度和系统成本。 另外,以串行信息包为基础的系统,不需要编写驱动程序。当断开任何一根互连线,对全部信息包进行解码时,串行总线将这些信息包移入存储器并中断处理器,这是一种局部的中断或事件。随后微处理器将查看这些信息包,而不需要用驱动程序进行上述工作。系统将成为一种信息传递系统,而不是事件驱动系统。 外围串行总线方式,如IEEE-1394/火线和USB(通用串行总线),已能成功应用。某些供应商准备采用某种串行总线方式替代PCI(外围器件互连)系统总线。

第九章并行接口与串行接口习题选解

9.4写出下列两种情况下8,}55A的工作方式控制字(包括I/O方式控制字和必要的按位置位/复位控制字)。 (1) 8255A用做键盘和终端地址接口,如图9 ..4所示。. (2)8255A用做基本软盘接日,如图9.5所示。 解:(1)由图9.4可知:A口工作在方式1输人,采用中断读键盘,C口的PC4 , PC5为A口方式1输人提供固定的握手联络信号,而PC6,PC7用于输出“LT忙”和“测试LT",所以C口高4位工作在方式。输出,B口用于输人终端地址,所以B口应工作在方式。输人。由此分析可知,8255A的初始化包括设置工作方式和开中断操作,其控制字为: 工作方式控制字:1011001 x B 按位置位/复位控制字(开放中断INTEA=1,即PC4置位):00001001B (2) A口工作在方式2中断方式输人/输出,B口和C口低4位工作在方式0输出,所以8255A的初始化也包括设置工作方式和开中断操作,其控制字为: 工作方式控制字:11 x x x 000B 开放输人中断按位置位/复位控制字,即PC4置位:0000l001B 开放输出中断按位置位/复位控制字,即PC6置位:00001101B 9.5设8255A的端口A,B,C和控制寄存器的地址为F4H,F5H,F6H,F7H,要使A口工作于方式0输出,B口工作于方式1输人.C口上半部输人,下半部输出,且要求初始化时使PC6=0.试设计82SSA与PC系列机的接A电路,并编写初始化程序。 解:82SSA与FC系列机的接口电路如图9.5所示。初始化程序如下:· MO V A L , 10001110F3 ;方式字 OUT 0F7H, AL MOV AL,00000110B ;PC6=0 OUT 0F7H, AL MOV AL,00000101 ;开中断 OUT 0F7H,AL 9.6在PC系列微机系统中,用8255A做某快速启停电容式纸带机接口的硬件连接如图9.7

串行通信接口典型应用举例

串行通信接口典型应用举例 SCI_FLAG .usect ".data0",1 ;SCI标志寄存器 TXD_PTR .usect ".data0",8 ;发送的数据存放区 RXD_PTR .usect ".data0",8 ;接收到的数据存放区 .include "F2407REGS.H" ;引用头部文件 .def _c_int0 ;(1)建立中断向量表 .sect ".vectors" ;定义主向量段 RSVECT B _c_int0 ;PM 0 复位向量 1 INT1 B GISR1 ;PM 2 中断优先级1 4 INT2 B PHANTOM ;PM 4 中断优先级2 5 INT3 B PHANTOM ;PM 6 中断优先级3 6 INT4 B PHANTOM ;PM 8 中断优先级4 7 INT5 B PHANTOM ;PM A中断优先级5 8 INT6 B PHANTOM ;PM C 中断优先级6 9 RESERVED B PHANTOM ;PM E (保留位) 10 SW_INT8 B PHANTOM ;PM 10 用户定义软件中断— … SW_INT31 B PHANTOM ;PM 3E 用户定义软件中断— ;中断子向量入口定义pvecs .sect ".pvecs" ;定义子向量段 PVECTORS B PHANTOM ;保留向量地址偏移量0000h B PHANTOM ;保留向量地址偏移量0001h … B PHANTOM ;保留向量地址偏移量0005h B SCI_RX_ISR ;保留向量地址偏移量0006h SCI接收中断 B PHANTOM ;保留向量地址偏移量0007h … B PHANTOM ;保留向量地址偏移量0041h ;(2)主程序: .text _c_int0 SETC INTM CLRC SXM CLRC OV M CLRC CNF 214

串行并行接口差别

串口与并口的区别 传输方式 串口形容一下就是一条车道,而并口就是有8个车道同一时刻能传送8位(一个位元组)数据。但是并不是并口快,由于8位通道之间的互相干扰。传输时速度就受到了限制。而且当传输出错时,要同时重新传8个位的数据。串口没有干扰,传输出错后重发一位就可以了。所以要比并口快。串口硬盘就是这样被人们重视的。从原理上讲,串行传输是按位传输方式,只利用一条信号线进行传输,例如:要传送一个字节(8位)数据,是按照该字节中从最高位逐位传输,直至最低位。 而并行传输是一次将所有一字节中8位信号一并传送出去。自然最少需要8根信号线。 如果按每次传送的数据流量来看,并行传输要远快于串口,在电脑发展初期,由于数据传输速率不是很高,并行传输还是很快的。 发展趋势 并口传输的发展主要存在以下两个问题: 1、干扰问题。 干扰产生的根本原因是由于传输速率太快,一般达到100M以上,信号线上传递的频率将超过100MHz。想想看,调频收音机的频率也不过 88~108MHz,也就是说,若用并行传输的话,是8根天线放在一起来传输信号,不发生干扰才怪。但如果加强屏蔽,减小信号线间的耦合电容,是可以继续增大传输速率的,不过这将变得不现实,因为这必然导致信号线将耗用更多金属,截面积更大。但这并不是不能解决的问题。 2、同步问题(最主要问题) 并行传输时,发送器是同时将8位信号电平加在信号线上,电信号虽然是以光速传输的,但仍有延迟,因此8位信号不是严格同时到达接受端,速率小时,由于每一字节在信号线上的持续时间较长,这种到达时间上的不同步并不严重,随着传输速率的增加,与8位信号到达时间的差异相比,每一字节的持续时间显得越来越短,最终导致前一字节的某几位与后一字节的几位同时到达接受端,这就造成了传输失败,而且随着信号线的加长这种现象还会越发严重,直至无法使用。——这是并口传输的致命缺点。 串行传输由于只有一位信号在信号线上,没有位同步问题,因此传送频率可以继续提高,当前传输速率已经达到1Gb/s(1000Mb)以上,而且还在提高,而并行传输在100Mb/s左右就停滞不前了,可以预见,串行传输

串行通信的同步传输与异步传输

------分隔线---------------------------- 这里所讲的同步传输和异步传输不同于VC 串口编程时的同步和异步,这里只讲串口硬件层传输的两种模式,有关VC 串口编程的同步模式和异步模式我将另外写一篇文章。 这里所讲的同步和异步是从硬件层级来讲的。首先要知道什么串行传输,串行传输是指数据的二进制代码在一条物理信道上以位为单位按时间顺序逐位传输的方式。串行传输时,发送端逐位发送,接收端逐位接受,同时,还要对所接受的字符进行确认,所以收发双方要采取同步措施(即判断什么时候有数据,数据是什么,什么时候结束传输)。 同步措施有两种,一种在传输的每个(帧)数据前(数据可能是5~8位)加一个起始位,后面加一位校验位及一位或两位的停止位组成一帧数据,这各方式称为异步传输;另一种是在一次传输(可能是多个字节)前加同步字节,可能不止一个字节,最后加校验字节或代表结束标志的字节,这种方式称为同步传输方式。 异步传输 异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它

们会在什么时候到达。一个常见的例子是计算机键盘与主机的通信。按下一个字母键、数字键或特殊字符键,就发送一个8比特位的ASCII 代码。键盘可以在任何时刻发送代码,这取决于用户的输入速度,内部的硬件必须能够在任何时刻接收一个键入的字符。 异步传输存在一个潜在的问题,即接收方并不知道数据会在什么时候到达。在它检测到数据并做出响应之前,第一个比特已经过去了。这就像有人出乎意料地从后面走上来跟你说话,而你没来得及反应过来,漏掉了最前面的几个词。因此,每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息的终止。按照惯例,空闲(没有传送数据)的线路实际携带着一个代表二进制1的信号,异步传输的开始位使信号变成0,其他的比特位使信号随传输的数据信息而变化。最后,停止位使信号重新变回1,该信号一直保持到下一个开始位到达。例如在键盘上数字“1”,按照8比特位的扩展ASCII编码,将发送“00110001”,同时需要在8比特位的前面加一个起始位,后面一个停止位。 异步传输的实现比较容易,由于每个信息都加上了“同步”信息,因此计时的漂移不会产生大的积累,但却产生了较多的开销。在上面的例子,每8个比特要多传送两个比特,总的传输负载就增加25%。对于数据传输量很小的低速设备来说问题不大,但对于那些数据传输量很大的高速设备来说,25%的负载增值就相当严重了。因此,异步传输常用于低速设备。

通信协议简介及区别(串行、并行、双工、RS232等)

基本的通讯方式有并行通讯和串行通讯两种。 并行通讯:一条信息的各位数据被同时传送的通讯方式称为并行通讯。 并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。 串行通讯:一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。 串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几千米。 根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。 而按照串行数据的时钟控制方式,串行通信又可分为同步通信和异步通信两种方式。 异步通信:接收器和发送器有各自的时钟; 同步通信:发送器和接收器由同一个时钟源控制。 1、异步串行方式的特点 所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。异步串行通信的特点可以概括为: ①以字符为单位传送信息。 ②相邻两字符间的间隔是任意长。 ③因为一个字符中的比特位长度有限,所以需要的接收时钟和发送时钟只要相近就可以,不需同步。 ④异步方式特点简单的说就是:字符间异步,字符内部各位同步。 2、异步串行方式的数据格式 异步串行通信的数据格式如图1所示,每个字符(每帧信息)由4个部分组成: ①1位起始位,规定为低电0; ②5~8位数据位,即要传送的有效信息; ③1位奇偶校验位; ④1~2位停止位,规定为高电平1。 3、同步串行方式的特点 所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。同步串行通信的特点可以概括为: ①以数据块为单位传送信息。 ②在一个数据块(信息帧)内,字符与字符间无间隔。 ③因为一次传输的数据块中包含的数据较多,所以接收时钟与发送进钟严格同步,通常要有同步时钟。 4、同步串行方式的数据格式 同步串行通信的数据格式如图2所示,每个数据块(信息帧)由3个部分组成: ①2个同步字符作为一个数据块(信息帧)的起始标志; ②n个连续传送的数据 ③2个字节循环冗余校验码(CRC) 图1 异步串行数据格式图2 同步串行数据格式

SPI同步串行总线原理

三、SPI是英文Serial Peripheral Interface的缩写,中文意思是串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。 SPI概述 SPI:高速同步串行口。3~4线接口,收发独立、可同步进行. SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200. SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI 和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。 (1)SDO –主设备数据输出,从设备数据输入 (2)SDI –主设备数据输入,从设备数据输出 (3)SCLK –时钟信号,由主设备产生 (4)CS –从设备使能信号,由主设备控制 其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。 接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过SDO 线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。 要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。 在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。 最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。 AT91RM9200的SPI接口主要由4个引脚构成:SPICLK、MOSI、MISO及/SS,其中SPICLK是整个SPI总线的公用时钟,MOSI、MISO作为主机,从机的输入输出的标志,MOSI是主机的输出,从机的输入,MISO 是主机的输入,从机的输出。/SS是从机的标志管脚,在互相通信的两个SPI总线的器件,/SS管脚的电平低的是从机,相反/SS管脚的电平高的是主机。在一个SPI通信系统中,必须有主机。SPI总线可以配置成单主单从,单主多从,互为主从。 SPI的片选可以扩充选择16个外设,这时PCS输出=NPCS,说NPCS0~3接4-16译码器,这个译码器是需要外接4-16译码器,译码器的输入为NPCS0~3,输出用于16个外设的选择。 [编辑本段] SPI协议举例

串口和并口及引脚定义(精)

串口和并口的区别悬赏分:0 - 解决时间:2006-10-19 10:01 电脑25针和9针的口哪个是串口哪个是并口有什么区别啊提问者: gr_honey - 三级最佳答案RS-232串行接口定义计算机侧为25针公插: 设备侧为25针母插: 引脚定义 Pin Name ITU-T Dir Description 1 GND 101 Shield Ground 2 TXD 103 Transmit Data 3 RXD 104 Receive Data 4 RTS 105 Request to Send 5 CTS 106 Clear to Send 6 DSR 107 Data Set Ready 7 GND 102 System Ground 8 CD 109 Carrier Detect 9 - - RESERVED 10 - - RESERVED 11 STF 126 Select Transmit Channel 12 S.CD ? Secondary Carrier Detect 13 S.CTS ? Secondary Clear to Send 14 S.TXD ? Secondary Transmit Data 15 TCK 114 Transmission Signal Element Timing 16 S.RXD ? Secondary Receive Data 17 RCK 115 Receiver Signal Element Timing 18 LL 141 Local Loop Control 19 S.RTS ? Secondary Request to Send 20 DTR 108 Data Terminal Ready 21 RL 140 Remote Loop Control 22 RI 125 Ring Indicator 23 DSR 111 Data Signal Rate Selector 24 XCK 113 Transmit Signal Element Timing 25 TI 142 Test Indicator PC/AT 机上的串行口是 9 针公插座,引脚定义为: Pin Name Dir Description 1 CD Carrier Detect 2 RXD Receive Data 3 TXD Transmit Data 4 DTR Data Terminal Ready 5 GND System Ground 6 DSR Data Set Ready 7 RTS Request to Send 8 CTS Clear to Send 9 RI Ring Indicator PC/XT 机上的串行口是 25 针公插座,引脚定义为: Pin Name Dir Description 1 SHIELD - Shield Ground 2 TXD Transmit Data 3 RXD Receive Data 4 RTS Request to Send 5 CTS Clear to Send 6 DSR Data Set Ready 7 GND - System Ground 8 CD Carrier Detect 9 n/c - 10 n/c - 11 n/c - 12 n/c - 13 n/c - 14 n/c - 15 n/c - 16 n/c - 17 n/c - 18 n/c - 19 n/c - 20 DTR Data Terminal Ready 21 n/c - 22 RI Ring Indicator 23 n/c - 24 n/c - 25 n/c - PC 并行接口定义 PC 并行接口外观是 25 针母插座: Pin Name Dir Description 1 /STROBE Strobe 2 D0 Data Bit 0 3 D1 Data Bit 1 4 D2 Data Bit 2 5 D3 Data Bit 3 6 D4 Data Bit 4 7 D5 Data Bit 5 8 D6 Data Bit 6 9 D7 Data Bit 7 10 /ACK Acknowledge 11 BUSY Busy 12 PE Paper End 13 SEL Select 14 /AUTOFD Autofeed 15 /ERROR Error 16 /INIT Initialize 17 /SELIN Select In 18 GND Signal Ground 19 GND Signal Ground 20 GND Signal Ground 21 GND Signal Ground 22 GND Signal Ground 23 GND Signal

STM32 USART同步异步串行通讯

慢慢的看一下,应该容易理解. 在网络通信过程中,通信双方要交换数据,需要高度的协同工作。为了正确的解释信号,接收方必须确切地知道信号应当何时接收和处理,因此定时是至关重要的。在计算机网络中,定时的因素称为位同步。同步是要接收方按照发送方发送的每个位的起止时刻和速率来接收 数据,否则会产生误差。通常可以采用同步或异步的传输方式对位进行同步处理。 1. 异步传输(Asynchronous Transmission):异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它们会在什么时候到达。一个常见的例子是计算机键盘与主机的通信。按下一个字母键、数字键或特殊字符键,就发送一个8比特位的ASCII代码。键盘可以在 任何时刻发送代码,这取决于用户的输入速度,内部的硬件必须能够在任何时刻接收一个键入的字符。 异步传输存在一个潜在的问题,即接收方并不知道数据会在什么时候到达。在它检测到数据并做出响应之前,第一个比特已经过去了。这就像有人出乎意料地从后面走上来跟你说话,而你没来得及反应过来,漏掉了最前面的几个词。因此,每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息

的终止。按照惯例,空闲(没有传送数据)的线路实际携带着一个代表二进制1的信号,异步传输的开始位使信号变成0,其他的比特位使信号随传输的数据信息而变化。最后,停止位使信号重新变回1,该信号一直保持到下一个开始位到达。例如在键盘上数字“1”,按照8比特位的扩展ASCII编码,将发送“00110001”,同时需要在8比特位的前面加一个起始位,后面一个停止位。 异步传输的实现比较容易,由于每个信息都加上了“同步”信息,因此计时的漂移不会产生大的积累,但却产生了较多的开销。在上面的例子,每8个比特要多传送两个比特,总的传输负载就增加25%。对于数据传输量很小的低速设备来说问题不大,但对于那些数据传输量很大的高速设备来说,25%的负载增值就相当严重了。因此,异步传输常用于低速设备。 2. 同步传输(Synchronous Transmission):同步传输的比特分组要大得多。它不是独立地发送每个字符,每个字符都有自己的开始位和停止位,而是把它们组合起来一起发送。我们将这些组合称为数据帧,或简称为帧。 数据帧的第一部分包含一组同步字符,它是一个独特的比特组合,类似于前面提到的起始位,用于通知接收方一个帧已经到达,但它同时还能确保接收方的采样速度和比特的到达速度保持一致,使收发双方

习题11-串行接口

习题十一串行接口 11.1 为什么串行接口部件中的4个寄存器可以只用1位地址来进行区分? 【答】复位后第一次用奇地址端口写入的值送模式寄存器;然后写入同步字符;然后写控制字。 读奇地址则读状态寄存器。所以奇地址对应模式、控制、状态寄存器,通过读写信号和时序来区分。偶地址对应数据输入、输出缓冲器,通过读写信号来区分。 11.2在数据通信系统中,什么情况下可以采用全双工方式,什么情况下可用半双工方式?【答】如果一个数据通信系统中,有两个信道可以采用全双工方式,只有一个信道只能采用半双工方式。 11.3 什么叫同步通信方式?什么叫异步通信方式?它们各有什么优缺点? 【答】串行通信以同步信息封装的帧为单位传输。 同步通信,一帧可包含多个字符,要求收发双方传输速率严格一致,帧之间填充同步信息以保证发收双方随时同步,通信效率高。 异步通信,一帧只包含一个字符,帧之间为空闲位,每一帧都同步一次,由于帧小,发收双方传输速率允许有一定误差,但通信效率低。 11.4 什么叫波特率因子?什么叫波特率?设波特率因子为64,波特率为1200,那么时钟频率为 多少? 【答】波特率指码元(波形)传输速率——单位时间内传输的码元个数,单位是Baud。 波特率因子是发送/接收时钟频率与波特率的比值。 时钟频率=64×1200=76800Hz 11.5 标准波特率系列指什么? 【答】标准波特率系列为110,300,600,1200,1800,2400,9600,19200 11.6 设异步传输时,每个字符对应1个超始位、7个信息位、1个奇/偶校验位和1个停止位, 如果波特率为9600,刚每秒能传输的最大字符数为多少个? 【答】即9600/10=960个 11.7 在RS-232-C标准中,信号电平与TTL电平不兼容,问RS-232-C标准的1和0分别对应什 么电平?RS-232-C的电平和TTL电平之间通常用什么器件进行转换? 【答】 RS-232-C将-5V—-15V规定为“1”,将+5V—+15V规定为“0”。将TTL电平转换成RS-232-C电平时,中间要用到MC1488器件,反过来,用MC1489器件,将RS232-C电平转换成TTL电平。 11.8 从8251A的编程结构中,可以看到8251A有几个寄存器和外部电路有关?一共要几个端口 地址?为什么 【答】数据发送寄存器、数据接收寄存器,状态寄存器和命令寄存器。一共2个端口地址。数据发送寄存器(只写)和接收寄存器(只读)共用一个端口地址。命令寄存器(只写)和状态寄存器(只读)共用一个端口地址。 11.9 8251A内部有哪些功能模块?其中读/写控制逻辑电路的主要功能是什么? 【答】8251A有一个数据输入缓冲寄存器和一个数据输出缓冲寄存器,一个发送移位寄存器和一个接收移位寄存器,一个控制寄存器和一个状态寄存器,一个模式寄存器和两个同步字符寄存器等功能模块。读/写控制逻辑电路用来配合数据总线缓冲器工作。其主要功能有:1)接收写信号WR,并将来自数据总线的数据和控制字写入8251A;2)接收读信号RD,并将数据或状态字从8251A送往数据总线;3)接收控制/数据信号C/D,将此信号和读/写信号合起来通知8251A,当前读/写的是数据还是控制字、状态字;4)接收时钟信号CLK,完成8251A的内部定时;5)接收复位信号RESET,使8251A处于空闲状态。 11.10 什么叫异步工作方式?画出异步工作方式时8251A的TxD和RxD线上的数据格式。【答】串行工作方式分为两种类型,一种叫同步方式,另一种叫异步方式。异步工作方式时,两个字符之间的传输间隔是任意的,所以,每个字符的前后都要用一些数位来作同步。在

一种新型基于高速串行通信的多通道同步采样技术

DOI:10.3969/j .issn.1000-1026.2012.09.015一种新型基于高速串行通信的多通道同步采样技术 姜 雷,周华良,郑玉平,夏 雨,姚吉文,吴通华 (国网电力科学研究院/南京南瑞集团公司,江苏省南京市210003 )摘要:微机型高压继电保护装置需要实时采样和处理多通道交流电气量数据,多通道采样数据的 同步性和数据处理的实时性是影响保护性能的2个重要因素。文中针对以往同步采样及数据接口方式进行了改进,提出了一种基于高速串行通信的多通道同步采样技术,硬件上进一步保证数据采 样同步性, 同时提高采样数据传输、存储的快速性和并发性。该技术具有很好的扩展性和高可靠性,可以满足不同微机型高压继电保护装置,尤其是模拟采样回路通道数需求较多的场合,目前已经在某系列微机型高压继电保护装置上得到验证并取得实际工程应用。关键词:继电保护;同步采样;高速串行;多通道 收稿日期:2011-05-24;修回日期:2011-12- 21。0 引言 现代高压继电保护装置的交流信号分析理论和 保护算法大多建立在交流同步采样基础上[ 1- 4]。因此,同步采样的质量及采样数据处理的实时性对于 实现保护逻辑至关重要,是影响高压继电保护装置保护性能的2个重要因素。不考虑微处理器运算速度,对采样系统来讲采样频率越高、转换速度越快、采样精度越高,越有利于提高保护响应的准确性和快速性。在不增加硬件成本的前提下,采用交流同 步采样技术可提高交流采样的同步性[5- 6]。然而,如 何改进硬件电路也是必须考虑的问题。继电保护装 置的多通道同步采样往往采用多路选择器和模拟/ 数字(A/D)转换器组合的方式实现[7] ,并且多使用并行数字接口方式向数字信号处理器(DSP) 传输数据。这种方法固然能够实现同步采样, 但是在模拟采样回路通道数比较多的场合,多路选择器对采样同步性的影响会更加明显,同时A/D转换器与DSP的数据接口通常使用并行总线方式实现,此种接口 在A/D转换器数量较多时数据传输效率也会降低。因此,研究如何进一步提高采样的同步性以及高效、可靠地获取并传输采样数据对于提高保护性能具有重要意义。针对这一现实技术需求,本文提出了一种新型的基于高速串行通信的多通道同步采样技术,并详细论述了该技术在微机型高压继电保护装置中的设计与实现。实践证明,该技术方法能够保证采样数据的同步性和数据传输的可靠性,提高保护在交流采样方面的处理性能。 1 基于高速串行通信的多通道同步采样系统总体技术方案 继电保护装置对交流采样设计的基本要求是具有同步性、实时性、多通道和高精度。为了实现这一设计目标,采用现场可编程门阵列(FPGA) 和若干片16位高精度同步A/D转换器构成高速串行多通道同步采样系统, 原理框图如图1所示。图1 基于高速串行通信的多通道同步采样系统 Fig.1 Multi-channel synchronous sampling  systembased on high-sp eed serial communication此方案中采用的A/D转换器为ADI公司的 16位、8通道同步采样器件AD7606。此器件内置模拟输入钳位保护、二阶抗混叠滤波器、跟踪保持放 大器、16位电荷再分配逐次逼近型A/D转换器,以及灵活的数字滤波器和2.5V基准电压源、 基准电压缓冲等。AD7606采用5V单电源供电,可以处理±10V和±5V真双极性输入信号,同时所有通道均能以高达每秒20万个采样点的吞吐速率采样。其中,输入钳位保护电路可以耐受最高达±16.5V 的电压。此A/D转换器的抗混叠滤波器的3dB截 — 28—第36卷 第9期2012年5月10日Vol.36 No.9 May  10,2012

串行和并行通信的区别

串行通信和并行通信图文解释: 并行通信传输中有多个数据位,同时在两个设备之间传输。发送设备将这些数据位通过 对应的数据线传送给接收设备,还可附加一位数据校验位。接收设备可同时接收到这些数据,不需要做任何变换就可直接使用。并行方式主要用于近距离通信。计算 机内的总线结构就是并行通信的例子。这种方法的优点是传输速度快,处理简单。 串行数据传输时,数据是一位一位地在通信线上传输的,先由具有几位总线的计算机内的发送设备,将几位并行数据经并--串转换硬件转换成串行方式,再逐位经 传输线到达接收站的设备中,并在接收端将数据从串行方式重新转换成并行方式,以供接收方使用。串行数据传输的速度要比并行传输慢得多,但对于覆盖面极其广 阔的公用电话系统来说具有更大的现实意义。 串行数据通信的方向性结构有三种,即单工、半双工和全双工。

串行传输和并行传输的区别: 从技术发展的情况来看,串行传输方式大有彻底取代并行传输方式的势头,USB 取代IEEE 1284,SATA取代PATA,PCI Express取代PCI……从原理来看,并行传输方式其实优于串行传输方式。通俗地讲,并行传输的通路犹如一条多车道的宽阔大道,而串行传输则是仅能允 许一辆汽车通过的乡间公路。以古老而又典型的标准并行口(Standard Parallel Port)和串行口(俗称COM口)为例,并行接口有8根数据线,数据传输率高;而串行接口只有1根数据线,数据传输速度低。在串行口传送1位的时间内, 并行口可以传送一个字节。当并行口完成单词“advanced”的传送任务时,串行口中仅传送了这个单词的首字母“a”。 根据组成字符的各个二进制位是否同时传输,字符编码在信源/信宿之间的传输分为并行传输和串行传输两种方式。 1、并行传输: 字符编码的各位(比特)同时传输。 特点: (1)传输速度快:一位(比特)时间内可传输一个字符; (2)通信成本高:每位传输要求一个单独的信道支持;因此如果一个字符包含8个二进制位,则并行传输要求8个独立的信道的支持; (3)不支持长距离传输:由于信道之间的电容感应,远距离传输时,可靠性较低。 2、串行传输: 将组成字符的各位串行地发往线路。 特点: (1)传输速度较低,一次一位; (2)通信成本也较低,只需一个信道。 (3)支持长距离传输,目前计算机网络中所用的传输方式均为串行传输。 方式: 串行传输有两种传输方式: 1、同步传输 2、异步传输 硬盘接口模式的区别,SATA的优点 PATA(IDE), SATA接口的区别以及SATA的优势

FPGA高速串行通信

FPGA高速串行通信 1 引言 在许多实际运用的场合中,数字信号传输具有数据量大,传输速度高,采用串行传输等特点。这就要求数据收发双方采用合理的编解码方式及高速器件。数字信号传输一般分并行传输、串行传输两种。并行传输具有数据源和数据目的地物理连接方便,误码率低,传输速率高。但是并行传输方式要求各条线路同步,因此需要传输定时和控制信号,而其各路信号在经过转发与放大处理后,将引起不同的延迟与畸变,难以实现并行同步。若采用更复杂的技术、设备与线路,其成本会显著上升。而高速远程数据传输一般采用串行同步传输。传统建立准确的时钟信号的方法是采用锁相环技术。但锁相环有若干个明显缺陷,一是其同步建立时间及调整精度即使采用变阶的方法也很难兼顾;二是锁相环需要一个高精度高频率的本地时钟。本文所讨论的两种串行同步传输方法,无需高频率时钟信号,就可完全数字化。采用Altera公司的ACEXlK系列器件完成电路设计,且外围电路简单,成本低,效果好。 2主要器件介绍 编码和解码采用ACEXlK系列器件EPlK100QC208-2。ACEXlK器件是Altera 公司针对通信、音频处理及类似场合应用而设计的。该系列器件具有如下特性: 高性能。采用查找表(LUT)和嵌入式阵列块(EAB)相结合的结构,适用于实现复杂逻辑功能和存储器功能,例如通信中应用的DSP、多通道数据处理、数据传递和微控制等; 高密度。典型门数为1万到10万门,有多达49 152位的RAM(每个EAB有4 096位RAM)。 系统性能。器件内核采用2.5 V电压,功耗低,其多电压引脚驱动2.5 V、3.3 V、5.0 V的器件,也可被这些电压所驱动,双向I/O引脚执行速度可达250 MHz; 灵活的内部互联。具有快速连续式延时可预测的快速通道互连。

串行通信技术SERDES正成为高速接口的主流

串行通信技术SERDES正成为高速接口的主流 串行通信技术SERDES正成为高速接口的主流 2009-08-21 13:44随着对信息流量需求的不断增长,传统并行接口技术成为进一步提高数据传输速率的瓶颈。过去主要用于光纤通信的串行通信技术——SERDES正在取代传统并行总线而成为高速接口技术的主流。本文阐述了介绍SERDES 收发机的组成和设计,并展望了这种高速串行通信技术的广阔应用前景。 ? SERDES是英文SERializer(串行器)/DESerializer(解串器)的简称。它是一种时分多路复用(TDM)、点对点的通信技术,即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。这种点对点的串行通信技术充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,从而大大降低通信成本。 ? SERDES技术最早应用于广域网(WAN)通信。国际上存在两种广域网标准:一种是SONET,主要通行于北美;另一种是SDH,主要通行于欧洲。这两种广域网标准制订了不同层次的传输速率。目前万兆(OC-192)广域网已在欧美开始实行,

中国大陆已升级到2.5千兆(OC-48)水平。SERDES技术支持的广域网构成了国际互联网络的骨干网。 ? SERDES技术同样应用于局域网(LAN)通信。因为SERDES 技术主要用来实现ISO模型的物理层,SERDES通常被称之为物理层(PHY)器件。以太网是世界上最流行的局域网,其数据传输速率不断演变。IEEE在2002年通过的万兆以太网标准,把局域网传输速率提高到了广域网的水平,并特意制订了提供局域网和广域网无缝联接的串行WAN PHY。与此同时,SERDES技术也广泛应用于不断升级的存储区域网(SAN),例如光纤信道。 ? 随着半导体技术的迅速发展,计算机的性能和应用取得了长足进步。可是,传统并行总线技术——PCI却跟不上处理器和存储器的进步而成为提高数据传输速率的瓶颈。新一代PCI标准PCI Express正是为解决计算机IO瓶颈而提出的(见表1)。PCI Express是一种基于SERDES的串行双向通信技术,数据传输速率为2.5G/通道,可多达32通道,支持芯片与芯片和背板与背板之间的通信。国际互联网络和信息技术的兴起促成了计算机和通信技术的交汇,而SERDES串行通信技术逐步取代传统并行总线正是这一交汇的具体体现。

相关主题
文本预览
相关文档 最新文档