异步串行接口
第九章可编程串行异步通信接口芯片8250

数据传送效率低.与并行通信比,这也这是显而易见的.这也是串行 通信的主要缺点.
如果一组数据的各数据位在多条线上同时被传输,这种传输方式 称为并行通信.并行通信时数据的各个位同时传送,可以字或字 节为单位并行进行. 其特点是:
间为高电平禁止外部收发器对系统 ❖ 接收移位寄存器
总线的驱动
❖ SIN:串行输入信号
❖ CSOUT:片选输出信号
❖ RCLK:接收时钟信号
❖ XTAL1、XTAL2:外部时钟端
❖ 波特率发生器
❖ BAUDOUT:波特率输出
2.内部结构
数
D0 ~ D7
据 总
线
缓
冲
器
内
部
CS0
数
CS1
据
CS2 O
总
A2 A1
0 TSRE THRE Байду номын сангаасI FE PE OE DR
1:接收数据就绪 1:溢出错 1:奇偶较验错 1:幀错误
1:正在传输中止符 1:发送缓冲器空 发送移位寄存器空
3、分频次数锁存器DLH和DLL 〔3F9H,3F8H 1.8432MHZ基准时钟,进行1 ~ 65535次分频后由BAUDOUT引脚输出的
三、8250的管脚与结构 1.管脚
D0
1
D1
2
D2
3
D3
4
D4
5
D5
6
D6
7
D7
8
R CLK
9
SIN
10
SO UT
11
C S0
12
C S1
13
ASI异步串行口,SDI、TS、ASI、DS3码流的区别

ASI异步串行口,SDI、TS、ASI、DS3码流的区别就是传输流数据信号的一种接口类型有三种:即同步并行接口(SPI) 改:SPI全称是"Serial Peripheral Interface",意为串行外围接口,不是什么同步并行接口,是串行的.、异步串行接口(ASI)和同步串行接口(SSI)。
其中,ASI和SPI接口较常用。
ASI接口的数据传输速率为270Mb/s,在进行码率调整之前,需要将ASI接口中的同步字节删除,进行串并转换,再进一步处理。
SPI接口传输数据率可变,帧与帧之间必须是连续的。
ASI接口卡的主要功能是将MPEG-2的传送流数据用DVB-ASI或SPI接口以恒定码率传送出去。
传送流数据可以是编码器、复用器或者别的传送流产生器产生并通过计算机的PCI总线按批传送至该传送卡。
传送卡先将数据缓存,然后根据用户所要求的输出码率将数据输出。
传送码率可在用户控制界面上预先设定,要求该码率与数据输入速率保持一致。
可应用于图像传输系统、数据传输系统、监控系统、电视会议系统、机顶盒前端等。
我们在使用编解码、复用、适配设备时常常会接触到TS流、SDI、ASI、SD3接口,它们的说明书也常常把ASI称作TS流,它们之间有什么不同呢?我们知道模拟信号(也叫连续信号)经过抽样、量化后变成在时间和幅度上都不连续的信号(也叫离散信号),这样的信号还不是数字信号,需要把离散信号转换成数字符号(如自然二进制码),这种码流是没有经过编码压缩的基带信号,码率较大,占用较大的传输带宽,这种码流的传输接口是SDI接口,也叫串行数字接口,码率是270 M,它属于信道码流,有些厂家的编码器除了复合视频输入端口还有SDI输入端口。
TS流是信源码流,最高码率为44.209 Mbit/s,它是经过信源编码后的压缩码流,为了使欲传输的信源信息在传输速率一定的条件下更快更多地传输,还要把数据进行压缩,也就是通过信源编码去掉信息中多余的部分,从而提高通信的有效性,信源编码包括霍夫曼编码、LZ编码等多种SDI 是Serial Digital Interface 的缩写,也就是串行数字接口串行接口是把数据字的各个比特以及相应的数据通过单一通道顺序传送的接口。
第4章 异步串行通信

第4章异步串行通信本章导读:目前几乎所有的台式电脑都带有9芯的异步串行通信口,简称串行口或COM 口.由于历史的原因,通常所说的串行通信就是指异步串行通信。
USB、以太网等也用串行方式通信,但与这里所说的异步串行通信物理机制不同。
有的台式电脑带有两个串行口: COM1 口和COM2 口,部分笔记本电脑也带有串行口。
随着 USB接口的普及,串行口的地位逐渐降低,但是作为设备间简便的通信方式,在相当长的时间内,串行口还不会消失,在市场上也可很容易购买到USB到串行口的转接器因为简单且常用的串行通信只需要三根线(发送线、接收线和地线),所以串行通信仍然是MCU与外界通信的简便方式之一。
实现异步串行通信功能的模块在一部分MCU中被称为通用异步收发器(Universal Asynch¬ronous Receiver/Transmitters, UART ),在另一些 MCU 中被称为串行通信接口( Serial Communication Interface, SCI)。
串行通信接口可以将终端或个人计算机连接到MCU,也可将几个分散的 MCU连接成通信网络,本章的主要知识点有①阐述了串口相关的基础知识;②描述了K60串口糢块的功能概要;③介绍了串口模块驱动构件编程时涉及的相关寄存器;④设计并封装了串行通信的驱动构件;⑤给出第一个中断例程的执行过程和设计流程。
本章介绍的K60UART模块的工作原理以及编程实例,这些编程实例都使用了基于构件的编程思想,读者在阅读时可以仔细体会,以求得对编程方法有更深刻的理解本章所出现的UART 字眼,在没有其他说明的情况下,都是特指K60的UART模块,本章串口驱动编程涉及的寄存器全部给出其详细介绍,目的是让读者对嵌入式底层驱动编程设计的寄存器有个直观的了解,以后各章节将不再给出相关寄存器的详细介绍。
4.1异步串行通信的基础知识本节简要概括了串行通信中常用的基本概念,为学习MCU的串行接口编程做准备。
串行接口基本功能和硬件支持

Tc=Td/K,K=16或64 若K=16,意味着在每一个时钟脉冲的上升沿采样RxD线,若发现低电平, 再连续采样8次(一个CLOCK采样一次),如果都是“0”,便确认起始位开始, 这样便从第9个CLOCK开始,每隔16个时钟周期采样一次数据线作为输入数 据位。接收部分在对奇偶校验位和停止位进行了处理后,便完成了一帧字符 信息的处理,有效字符数据被装入接收数据缓冲器,如图10.11所示。
1.2同步串行通信接口
同步串行通信接口的工作过程如下:发送时,CPU将数据信息经总 线接口送到发送FIFO,内部控制逻辑首先将内部的同步字符(1~2个)送 到输出移位寄存器,接着将发送FIFO内容分组并行送入输出移位寄存器, 在发送时钟的作用下,将串行数据信息逐位移出,送至串行数据输出线 上。与此同时,对所发送的数据信息进行CRC校验,并产生两组校验码 (CRC1、CRC2)。当数据信息发送完毕后,将得到两组校验码依次发送
3)控制部分:UART的控制部分用来直接控制内部的 工作,它接收CPU发来的控制信号,执行有关操作,并输 出UART
1.1异步串行通信接口
2. 数据在长距离传送过程中必然会发生各种错误,奇偶 校验是一种最常用的校验数据传送错误的方法。奇偶校验 分为奇校验和偶校验两种。UART的奇偶校验是通过发送 端的奇偶校验位添加电路和接收端的奇偶校验检测电路实 现的,如图10.12 UART在发送时,电路自动检测发送字符位中“1”的 个数,并在奇偶校验位上添加“1”或“0”,使得“1”的总 数(包括奇偶校验位)为偶数(奇校验时奇数),如图10.12(a)
UART通用异步串行接口

第6章 ARM应用系统硬件设计
ARM原理与应用
其实现过程如下图所示。
nRTS:请求对方发送 应用于MODEM设备。 nCTS:清除请求发送 注意:这种自动流控制应用于对方也是UART设备,不能
第6章 ARM应用系统硬件设计
ARM原理与应用 4)使用FIFO进行收发
主要是通过对FIFO状态寄存器UFSTATn的查询,确定进行收发。
第6章 ARM应用系统硬件设计
ARM原理与应用
数据接收(请求发送): (1)选择接收模式(中断或者DMA模式)
(2)请求发送。先要查询发送/接收状态寄存器 UTRSTATn[0]的接收缓冲器“数据就绪状态位”是否为1, 如果是1,需要先读取数据,然后再请求对方发送数据,方 法是对MODEM控制寄存器MCONn中的请求发送信号产生 位置1,使UARTn发出nRTS信号。
第6章 ARM应用系统硬件设计
ARM原理与应用
3)串行口的自动流控制功能
S3C2410的UART0和UART1使用 nRTS、nCTS 信 号支持自动流控制。UART0和UART1不仅有完整的握手信 号,而且有自动流控制功能,在寄存器UMCONn中设置实 现。自动流控制是利用信号nRTS、nCTS来实现的。在接 收数据时,只要接收FIFO中有两个空字节就会使nRTS有 效,使对方发送数据;在发送数据时,只要nCTS有效,就 会发送数据。
使用FIFO进行发送: 1)选择发送模式(中断或者DMA模式) 2)查询对方是否有请求发送要求,由MODEM状态寄存器 UMSTATn[0]给出,该位为1,则有请求,再查询FIFO状 态寄存器UFSTATn的数据满状态位是否为1,如果不是1, 可以向发送缓冲寄存器UTXHn写入发送的数据。上面二者 有一个或者两个都不满足,则不发送数据。
英飞凌tricore用户手册 第17章 异步串行口ASC

17异步/同步串行接口(ASC)本章描述TC1728两个异步/同步串行接口ASC0和ASC1,包括以下章节:•ASC内核功能描述,适用于ASC0和ASC1模块(见页17-1)•ASC内核寄存器描述,给出所有ASC内核寄存器(见页17-21)•TC1728中ASC模块的具体实现及ASC0/ASC1模块寄存器(见页17-32)注:章节17.2给出的ASC内核寄存器名在TC1728用户手册其它章节中引用时,需要分别添加模块名前缀“ASC0_”和“ASC1_”。
17.1ASC内核描述图17-1给出ASC接口概览。
图17-1ASC接口的基本框图ASC模块通过两条I/O线与外界通信。
RXD线是接收数据输入信号(同步模式下发送信号),TXD线是发送输出信号。
时钟控制、地址译码和中断服务请求控制都于ASC模块内核之外实现。
17.1.1概述ASC支持TC1728和其它微控制器、微处理器或外部外设进行串行通信。
ASC支持全双工异步通信和半双工同步通信。
同步模式下,数据的发送或接收与ASC 产生的移位时钟同步。
异步模式下,数据传送的宽度(8位或9位)、奇偶校验的产生、以及停止位的个数均可编程设定。
为了提高数据传送的可靠性,ASC模块提供了多种硬件错误检测功能,如奇偶校验错误、帧错误以及溢出错误检测。
数据发送/接收双缓存。
进行多处理器通信时,采用数据字节和地址字节区分机制。
可选择回环模式用于测试用途。
13位波特率发生器为ASC提供独立的串行时钟信号,该时钟信号可通过预分频器(用分数分频器实现)进行精确调整。
特性•全双工异步工作模式–8位或9位数据帧,LSB在先–奇偶校验位产生/检查–1个或2个停止位–波特率范围6.875Mbit/s-1.64bit/s(@110MHz模块时钟)–具有地址/数据字节自动检测功能的多处理器通信模式–回环功能•半双工8位同步工作模式–波特率范围13.75Mbit/s-1119bit/s(@110MHz模块时钟)•发送/接收双缓存•中断产生–在发送缓存为空的情况下–在发送一帧中的最后一位的情况下–在接收缓存已满的情况下–在产生错误的情况下(帧错误、奇偶校验错误、溢出错误)•实现特性–到DMA控制器的连接–用于波特率检测和LIN断开信号测量的GPTA(LTC)接收器输入的连接17.1.2一般操作ASC支持波特率高达MB/s的全双工异步通信和波特率高达MB/s的半双工同步通信(@MHz模块时钟)。
SPI和UART的区别

SPI:高速同步串行口。
3~4线接口,收发独立、可同步进行UART:通用异步串行口。
按照标准波特率完成双向通讯,速度慢I2C:一种串行传输方式,三线制,网上可找到其通信协议和用法的3根线实现数据双向传输串行外围接口 Serial peripheral interfaceUART:通用异步收发器UART是用于控制计算机与串行设备的芯片。
有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。
作为接口的一部分,UART还提供以下功能:将由计算机内部传送过来的并行数据转换为输出的串行数据流。
将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。
在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。
在输出数据流中加入启停标记,并从接收数据流中删除启停标记。
处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。
可以处理计算机与外部串行设备的同步管理问题。
有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART 是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART是8250。
现在如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。
I2C:能用于替代标准的并行总线,能连接的各种集成电路和功能模块。
I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。
总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。
多路微控制器能在同一个I2C总线上共存。
更详细的区别:第一个区别当然是名字:SPI(Serial Peripheral Interface:串行外设接口);I2C(INTER IC BUS:意为IC之间总线)UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)第二,区别在电气信号线上:SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。
UART接口

数据通信的几个术语:并行:数据各位同时进行传送串行:数据逐位顺序进行传送全双工:(串行通信)收/发可同时进行半双工:(串行通信)收/发不可同时进行异步串行通信:以字符为单位进行传送同步串行通信:以数据块为单位进行传送波特率(bps.):1.UARTUART(Universal Asynchronous Receiver and Transmitter)通用异步收发器(异步串行通信口),是一种通用的数据通信协议,它包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范,即UART 是异步串行通信口的总称。
而RS232、RS499、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容,这些东东都是物理层的概念。
通信协议,是属于通信网络中的数据链路层的概念。
1.2 UART通信协议UART使用的是异步,串行通信。
串行通信是指利用一条传输线将资料一位位地顺序传送。
特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。
异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。
数据传送速率用波特率来表示,即每秒钟传送的二进制位数。
例如数据传送速率为120字符/秒,而每一个字符为10位(1个起始位,7个数据位,1个校验位,1个结束位),则其传送的波特率为10×120=1200字符/秒=1200波特。
数据通信格式如下图:其中各位的意义如下:起始位:先发出一个逻辑”0”信号,表示传输字符的开始。
数据位:可以是5~8位逻辑”0”或”1”。
如ASCII码(7位),扩展BCD码(8位)。
小端传输校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验)停止位:它是一个字符数据的结束标志。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
异步串行接口
在目前的DVB-C广播电视系统的传输接口中,有两种MPEG-2视频传输接口标准:异步串行接口标准ASI和同步并行接口SPI。
SPI一共有11位有用信号,每位信号差分成两个信号用来提高传输抗干扰性,在物理链接上用DB25传输,因此连线多且复杂,传输距离短,容易出现故障。
但SPI是并行11位信号,处理简单且扩展性强,因此目前一般的MPEG-2视频编码器的输出和视频***的输入都是标准的并行1 1位信号。
ASI用串行传输,只需一根同轴电缆线传输,连线简单,传输距离长。
根据SPI和ASI的优缺点,需要传输信号的SPI和ASI的互相转换。
1 SPI信号结构
并行传输系统SPI包括一位时钟信号、8位数据信号、一位帧同步信号PSYNC 和一位数据有效信号DVALID。
帧同步信号对应TS包的同步字节047H,DVALID信号用来区分TS包的长度为188个字节或204个字节。
当TS包长为188字节时,D VALID信号一直为高,同时所有信号都与时钟信号保持同步。
2 ASI接口
ASI传输流可以有不同数据速率,但传输速率恒定,为270Mbps,因此ASI可以发送和接收不同速率的MPEG-2数据。
ASI传输系统为分层结构。
最高层、第2
层使用MPEG-2标准ISO/IEC 13818-(Systems),第0层和第1层是基于ISO/I EO CD 14165-1的FC纤维信道。
FC支持多种物理传输媒介。
首先将包同步的MPEG-2传送包的8-bit码字转换成10-bit码字;接着在并/串转换时,当要求输入一个新字、而数据源还没有准备好时,应插入一个K28.5的同步字,以达到ASI的固定270Mbps传输速率。
所形成的串行比特流将通过缓冲/驱动电路和耦合网络,送到同轴电缆连接器上。
插入同步码字可以有三种方法:传输码流的单个字节前后不能都是同步字;传输码流的单个字节前后必须都是同步字;或者是两者的组合。
到达同轴电缆的接收数据,首先要经过连接器和耦合网络耦合到恢复时钟和数据的电路上,然后进行串/并变换;为了恢复字节同步,ASI***必须先搜寻到K28.5同步字,一旦搜索到该同步字,即为随后接收的数据标定了边界,从而建立了***输出字节的正确字节排列;最后进行10/8-bit变换,恢复出包同步的MPEG-2 TS码流数据。
但是K28.5同步字不是有效数据,因此解码时必须删除。
3 ASI接口实现方案
在本方案中,MPEG-2 TS码流由单片MPEG-2编码器MB86390提供,它输出符合SPI标准的并行11位信号,TS包长度为188个字节。
在SPI/ASI转换方案中,
主要选用CYPRESS公司cyb923/cyb933芯片、异步FIFO和逻辑编程器CPLD实现。
cyb923主要实现码字的8/10bit转换、插入同步字K28.5和并/串变换。
ASI的传输速率恒定为270MHz,而输入MPEG-2 TS码率是不同的,所以要用FIFO实现速率匹配,需要对输入的SPI数据、FIFO和cyb923之间的通信进行逻辑控制。
综合性能、价格和程序复杂度的考虑,本方案采用xilinx公司的CPLD逻辑编程器XC9 5108;用VHDL编程实现对它们的逻辑控制。
ASI的解码也是相似的过程,cyb933主要实现10/8bit转换、去除同步字K28.5和串并变换。
3.1 ASI编码
在ASI的编码过程中,只需将MPEG-2 TS的八位数据和一位TS码率传输时钟输入到CPLD。
因为在本方案中,TS格式为188个字节,因此数据有效信号DVALI D一直为高,CPLD忽略这个信号,只管接收TS码流数据,而不用关心TS码流的同步头。
PSYNC帧同步信号也一样忽略。
CPLD将接收到的数据以TS码率时钟写入FIFO。
当FIFO半满时,CPLD接收到FIFO的半满信号,然后CPLD给cyb923发FIFO可读信号,cyb923以27Mbps读取FIFO中的数据;当CPLD计数到cyb92 3读取了一定数量的FIFO数据,CPLD则向cyb923发送FIFO不可读信号,防止FI FO读空。
MPEG-2传输码率的并行最大速度为27/8=3.375Mbps,而读FIFO速率为27Mbps,因此FIFO不会有溢出。
考虑到延时,本方案选用较小容量的FIFO720 2。
cyb923在FIFO不可读时,向ASI码流中填充K28.5以维持270Mbps的固定传输速率。
最后串行数据经过驱动就可用同轴电缆传送出去。
本方案中,同步字K28.5的插入采用传输码流的单个字节前后不能都是K28.5同步字的方式。
这种方案相对其它两种方案来说,判断和处理都相对简单。
3.2 ASI解码
在ASI的接收端,输入的ASI码流经过均衡后,输入到cyb933芯片。
它由内部的时钟锁相环首先锁定ASI码流时钟,检测同步字K28.5;找到后即确定了ASI 比特流顺序,然后进行串/并转换。
由此可知,检测到K28.5,即字节对齐是ASI解码的重要前提,由此cyb933定义了一套检测字节同步的方法。
考虑到传输误码等原因可能造成假K28.5,因此cyb93 3采用双字节确认方法。
即连续两个字节都是K28.5,才确认字节同步了,接着进入正常的单字节解码状态。
在解码状态,如果在64个解码字节中,CPLD计数到有16个字节是错误的,则CPLD必须向cyb933发送信息,要求cyb933重新进行字节同步。
字节同步后,因为K28.5是cyb923插入的同步字节,不能作为有效数据输出,cyb933自动略除这些同步字节。
当cyb933检测到有效数据时,cyb933将输出一位当前数据有效的指示,如果把这个信号当作FIFO的写有效,则FIFO中的数据一定都是有效数据了。
当FIFO半满时,CPLD接收FIFO的半满信号后,CPLD读取FI
FO中的数据,并根据读出的字节是否是047H来确定TS包的同步字节;如果找到T S包同步字,将恢复对应的帧同步信号,此时CPLD计数188恢复出完整的TS包,接下来的字节如果不是047H,说明输入数据有误,CPLD将丢弃这些数据直到找到0 47H同步字,在此期间CPLD输出TS空包。
重新包同步后,CPLD才又开始计数输出正确的188字节的MPEG-2 TS包,从而恢复出SPI正确的11位信号。
同样,当FIFO数据不可读时,CPLD也输出TS空包,以维持输出的MPEG-2码率恒定。
在SPI转ASI的设计中,直接对SPI数据进行ASI编码,而不考虑误码问题。
主要考虑SPI数据直接从MB390输出,没有经过远距离传输,因而降低了ASI编码逻辑控制的复杂度。
在ASI解码过程中,ASI数据经过远距离传输,要考虑误码的因素,所以增加了字节和包的重同步设计,以增加抗干扰能力。
本方案在实际应用中很好地实现了SPI/ASI的相互转换。