异步串行通信接口的IP核设计

2024-04-20

异步串行通信接口的IP核设计(精选6篇)

篇1:异步串行通信接口的IP核设计

异步串行通信接口的IP核设计

摘要:异步串行通信接口(SCI)因其结构简洁、使用方便,因而在各类MCU、DSP和MPU芯片设计中获得广泛的应用。本文给出一种以状态机为控制核心、以数据流为执行中心的异步串行通信接口IP核结构设计的通用方法。此方法已在笔者所设计的DSP芯片中得到验证。

关键词:SCI IP核设计 状态机 数据流

引言

目前,基于传统IC芯片的微电子应用系统设计技术正在转向基于知识产权(IP,Intellectual Property)核的片上系统(SoC,System on Chip)技术发展。另外,IC设计在国内的发展很快,各种规模的IC设计中心和公司不断出现。因此,IP核的设计已开始逐渐成为国内微电子系统设计的一项支撑技术。从应用功能角度划分IP核有两大类:微处理器IP核(如8位8051核、32位ARM核等)和各种接口IP核(如LCD控制器、各种串行总线接口IP核等)。本文以异步串行通信接口(SCI,Serial Communication Interface)接口IP核结构设计为例,说明SCI、UART、SPI、USB等接口IP核的设计方法。

SCI的通信方式采用标准NRZ格式来进行外设间的异步数字通信。因其结构简法,通常嵌入到DSP、MCU和MPU或外设控制芯片内部,作为芯片的一个接口功能模块。SCI通常由三个功能单元构成:波特率脉冲产生单元、发送单元和接收单元。其结构如图1所示。在SCI数据收发中,数据帧的数据格式要比地址帧的数据格式复杂得多。在不同的通信方式下,数据帧的格式是不同 的。为此在发送器和接收器中各引入了与数据帧格式相对应的状态机来实现数据流的控制。本文所介绍的就是基于这种设计思想的一种通用设计方法。

(本网网收集整理)

1 SCI数据发送单元

数据发送单元主要功能是完成数据的并/串转换及发送,同时产生发送标志位。其结构如图2所示,字符发送状态机如图3所示。下面简要介绍发送单元各功能模块及其状态转换。

(1)TXD时钟八分频器

对基于波特率时钟进行八分频,并输出两个基本脉冲―TXD_CLK_WORK(用于计数、移位等)和TXD_CLK_END(用于标志位的生成和数据流输出)。

(2)TXD状态寄存器

通过此状态寄存器设置通信控制寄存器2的两个控制位―TXEMPTY和TXRDY位,以表示数据写入SCI_TXBUF和启动发送过程。

(3)发送字符计数器

当字符状态机的输出状态为允许字符计数时,其开始对发送的字符计数。当计数器值等于编程的字符数时,输出TX_CHAP_REACH信号作为字符状态机激励,使之进入非字符输出状态。

(4)发送空闲线计数器

当字符状态机进入发送空闲线数据状态时,开始工作。当计数到一定值时,输出信号TX_IDLECOUT_REACH作为字符状态机激励,使之进入非空闲线数据计数状态。

(5)发送数据流的形成

在TXBUF2SHIFT的高电平脉冲作用下,在SCI_TXBUF中待发送数据,经过选择器选择指定位数的数据送入SCI_TXSHIFT低位,不足的高位清“0”。与此同时,TXWAKE数据也送到WUT寄存器,在地址位模式情况下,由ADDR_IDLE控制在WUT中形成地址位;并由SCI_TXSHIFT数据位、地址位和奇偶方式位三者逻辑或形成奇偶校验位。

(6)当前发送字符状态机

在启动、控制位、计数器溢出等激励作用下,实现发送字符状态的输出和转换。发送字符状态机的激励有:TXEMPTY(为“0”时启动TXD发送)、ADDR_IDLE(地址/空闲线模式选择位)、PARENA(奇偶校验使能位)、STOPBIT(选择1或2个停止位)、WUT(发送空闲位数据允许位)、TX_CHARCOUT_REACH(发送字符数目已够位)、TX_IDLECOUT_REACH(发送空闲数目已够位)。发送字符状态机(见图3)的状态有:1为帧停止位(1位),3为帧第1停止位(2位),5为帧第2停止位(2位),8位帧起始位

,9为待机状态,A为帧数据位,B为空闲线模式起始位,C为帧地址位,E为帧奇偶校验位,F为空闲线模式停止位,D为空闲线模式计数0~7。

2 SCI数据接收单元

数据接收单元的功能是完成串行数据接收及接收标志位的生成。其结构如图4所示,接收起始位检测和接收字符状态机如图5、图6所示。

接收单元各功能模块及状态转换说明如下。

(1)RXD时钟八分频器

对波特率时钟进行八分频,并保持其与所接收串行数据流的.字符同步。其输出两个时钟脉冲:RXD_CLK_WORK,用于计数、移位等;RXD_CLK_END,为数据流各种方式的停止位前一个字节时间段内提供脉冲。

图4 SCI数字接收单元

(2)起始位检测模块

是一种三位四状态机。其激励有两个:RXD_1_VALUE―接收的串行数据流激励;RXD_END_CHK―一次接收完毕的脉冲激励。其状态有如下几种(见图5):0(待机状态)、1(空状态)、2(空状态)、3(发现“1”到“0”的跳变状态)、4(输出时钟同步信号)、5(字符接收过程中输出RXD_CLK_AYN和RXD_START_DRV)。

(3)字符检测模块

主要功能是接收数据流。其在采样时钟驱动下数据流通过三个寄存器,随后在RXD_CLK_WORK脉冲作用下,三个寄存器的数据通过表决电路,把数据送到接收数据缓冲器RXD_VALUE中,为把数据送到移位寄存器RX_SHIFT做准备。

(4)当前接收字符状态机

用来标识当前所接收的数据是哪一种字符,以及在下一个RXD_CLK_WORK字符周期将转换到哪一种状态,并且根据当前接收字符的状态,驱动其它部件进行合适的操作。其激励有:RXD_START_DRV(RXD起始位有效激励)、RX_CHAR_REACH(RXD字符接收数目已够)、CCR3_ADDR_IDLE(地址/空闲线模式选择)、CCR5_PARENA(奇偶校验使能)。其状态(见图6)有:0(待机状态)、1(帧数据位)、2(帧起始位)、3(帧地址位)、4(帧奇偶校验位)、5(空状态)、6(帧停止位)。

(5)接收字符计数器

当接收字符状态机处于帧数据位阶段时,其开始计数;当与可编程的数据相同时,输出RX_CHAR_REACH给接收字符状态机。

(6)接收空闲线计数器

当处于待机状态时,开始计数器,当计数到一定时,输出一个脉冲,将RXSP1_RXWAKE置位为1;在下一个字符即将接收、读取SCI_RXBUF寄存器或SCI复位的情况下,RXST1_RXWAKE被复位为0。

(7)接收数据移位寄存器(SCI_RXSHIFT)

根据接收字符状态机的状态接收与检测的串行数据流,将所接收的正确数据送入SCI_RXBUF并置相应的标志,否则置出错标志。

(8)BRKDT间断检测计数器

当产生RXST4_FE帧错误时,开始工作。当RXD_VALUE为“1”时,其被复位;当RXD_VALUE为“0”时,表示没有数据接收,开始计数;当计到一定值时,输出计数满信号,此时间断检测标志RXST5_BRKDT被置位。

结语

综上所述,在各种串行接口IP核设计中,可将其内部单元结构划分为控制和执行两大部分。其中,控制逻辑的设计采用以单极或多级状态机为核心,并配合其各种激励单元的结构设计,可以做到结构清晰,并可实现较复杂的逻辑;执行机构的设计采用以控制逻辑输出的状态为中心,来设计数据选择器或数据分配器,可实现数据流的复杂流向(请见网络补充版:收集整理)。

篇2:异步串行通信接口的IP核设计

摘要:文章对多种协议串行通信进行了分析与讨论,给合Linear公司生产的多协议串口芯片,针对传统串口通信实现中的问题以及实际的广域网串行通信的需求,提出了一种多协议串行接口的设计实现方法。

关键词:多协议串口通信;通信协议; 收发器;连接器; 多协议串口芯片 LTC1546/LTC1544

随着通信网技术的进一步发展,越来越多的互连网设备(如路由器、开关、网关、存取装置)中的串行接口在广域网(Wide Area Network)中被设计成能够支持多种物理接口协议或标准。广域网串行口协议包括RS-232,RS-449,EIA-530,V.35 ,V.36以及X.21等。图1所示是一个简单的串行通信接口示意图。由图可知,实现多协议串口通信的关键是将连接器送来的不同传输方式?平衡、非平衡?和不同电气信号通过收发器转换为终端能够识别并处理的、具有TTL电平的信号。

1 传统多协议通信的特点和问题

1.1 “子板”方式

广域网串口应用中的通用实现方法是为所需的每一种物理协议提供一个独立的子板。一个支持EIA-232,EIA-449及V.35协议的系统,通常需要三个独立的子板以及三个不同的连接器。这种方法由于每种协议要求配置一块子板,因此系统需要对PCB子板、收发器芯片、连接器等进行管理,这样既浪费资源,又会使管理工作复杂化。

(本网网收集整理)

1.2 通用连接器方式

为解决“子板”方式的缺点,可使用一块母板及通用连接器。一个母板上有多种收发器芯片,可以满足多串口协议的要求,并可共用一些通用器件,同时可减少资源的浪费。在配置中,应注意因连接器的管脚较少而带来的问题,较好的办法是根据信号而不是根据协议来分配管脚,即给每一个信号分配一个通用管脚,而不管其物理协议如何定义。如对EIA-232,EIA-449,EIA-530,V.35和V.36来说,其TxD信号可连至连接器相同的管脚。即SD?a?信号连接到管脚2,SD?b?信号连接到管脚14。然后利用这对管脚来描述所有协议的发送信号TxD。

这种方法同样也会带来一个问题,即所有收发器的I/O线至通用连接器的管脚必须彼此共用。例如,一个V.28驱动器芯片中的发送数据信号线的接连接器DB-25的管脚2;同时,一个V.11驱动器芯片中的发送数据信号线要接至连接器的管脚2和14;而V.35驱动器芯片中发送数据信号线也会接至连接器的管脚2和14。这样,通用连接器的管脚2将同时接有三根信号线,管脚14接有两根信号线。这样,在这一配置中,所有的驱动器都必须具有三态特性,以禁止不必要的输出。若收发器没有三态特性,则需要使用一个多路复用器来选择相应的输出端。由此带来的另一个问题是收发器在禁止使用时会产生漏电电流。如果选择了V.28协议,其输出电压理论值为15V。此时对于V.11协议的驱动器会被禁用,而处于三态时,其输出漏电电压就必须足够低,才能使得连在同一连接器管脚的V.28协议的驱动器信号不受影响。如果在发送器与接收器之间有隔断开关,则开关也要考虑漏电情况。

1.3 串口的DTE/DCE模式切换

DTE/DCE的`切换可通过选择不同的连接器转换电缆来实现,这样,在实现DTE/DCE转换时可最大程度地减小收发器的复杂性,但缺点是需要更换电缆,尤其是设备放置位置不便或DTE/DCE需要频繁切换时这一点尤为突出。

如果保持传输电缆不变,则可将收发器配置为两套以分别支持DTE、DCE方式。而将DTE收发器的驱动器输出与DCE收发器的接收器输入相连,而将接收器输入端与DCE收发器的驱动器输出相连。为了控制DTE或DCE方式,驱动器或接收器的输出必须为三态。当选择为DTE方式时,DCE芯片禁止,其驱动器和接收器处于三态,反之亦然。

该方法虽然解决了对电缆的频繁更换问题,但由于多用了一套收发器而使得设计成本大为提高,且串口板的体积也大了很多。

2 多协议串口通信的实现原理

传统设计中,针对某种协议通常应选择相应的收发芯片,如对于RS-232协议,常用DS-1488/DS-1489、MAX232或SP208等收发器芯片;而对于RS-449协议,则常使用SN75179B、MAX488、MAX490等收发器芯片。当同时使用RS-232、RS-422和V.35协议时,就需要多个收发器芯片来支持不同的协议。

现在,一些收发器的生产厂商研制出了多协议收发器芯片。Sipex是第一家生产出RS-232/ RS-422软件可选择协议芯片SP301的公司。这种芯片可将RS-232和RS-422收发器的电气特性综合到一个芯片中实现。其中SP50X系列产品最多可支持8种协议标准。其它生产厂家如Linear公司生产的LTC154x系列、LTC284x系列芯片也具有以上功能。用户可根据自己的需要选择适当的芯片。

图2为采用分立的收发器芯片与采用一片多协议收发器芯片实现多协议串口通信的通信卡。从图可知,前者实现的复杂度要远远大于后者,具体的性能比较如表1所列。

表1 两种方法实现串口通信的性能比较

分立器件板综合器件板供电电压+5V,-5V,+12V,-12V+5V所需收发器芯片数121支持的物理层协议RS-232,RS-422,RS-449,EIA-530,V.35,V.36RS-232,RS-422,RS-449,RS-485,EIA-530,EIA-530A,V.35,V.36协议选择方式跳线或开关软件或硬件(通过内部译码)串口板大小除了15个收发器芯片外还需其它硬件支持非常小功耗大约1W大约100mW~250mW

除此之外,与分立收发器芯片相比,多协议收发器对驱动器使能控制和对输出漏电电流的处理要容易得多。当通过软件或硬件方法选择某一协议时,驱动器和接收器的电气参数将调整至适当的大小,电路内部将自动控制驱动器的输出电平、接收器的输入门限、驱动器和接收器的阻抗值以及每一物理层协议的常用模式范围。

另外,由于外部网络终端对V.35的需求,使得与V.35收发器的连接不能象其它协议那么简单。当使用分立收发器芯片时,常常通过采用昂贵的继电器开关电阻在选择其它协议接口时将V.35网络终端断开,或者要求用户每选择一个新的接口标准就改变一次终端模块,这样既浪费资源又会使接口电路变得复杂,因而不是一种理想的实现方法。而多协议串口芯片则自动提供适当的终端和片上开关来符合V.10、V.11、V.28和V.35电气协议,从而解决了电缆终端转换问题。

3 基于LTC1546/44的多协议通信

为了说明多协议串口芯片的工作原理,现以Linear公司的LTC1546/1544芯片为例进行分析。

3.1 LTC1546/LTC1544的性能

LTC1546芯片是一个3驱动器/3接收器的收发器,其主要特点如下:

● 带有软件可选的收发器可支持RS232、RS449、EIA530、EIA530A、V.35、V.36和X.21协议?

● 可提供片上电缆终端?

● 与LTC1543引脚兼容?

● 与LTC1544配合可完成完整的DTE或DCE?

● 工作在5V单电源?

● 占位面积小。

LTC1544芯片是一个4驱动器/4接收器的收发器,其主要特点有:

● 软件可选的收发器支持RS232、RS449、EIA530、EIA530A、V.35、V.36和X.21协议?

● 采用LTC1344A作为软件可选的电缆终端?

● 采用LTC1543、LTC1544A或LTC1546可实现完整的DTE或DCE端口?

● 与LTC1543同样工作于5V单电源。

这两种芯片均采用28引线SSOP表面贴封装,图3所示为其引脚排列。

由LTC1546/ LTC1544可组成一套完整的软件可选择DTE或DCE接口,以应用于数据网络、信息业务单元?CSU?和数据业务单元(DSU)或数据路由器中,它支持多种协议,电缆终端可在片上提供,因此不再需要单独的终端设计。其中,LTC1546每个端口的一半用来产生和适当终止时钟和数据信号。LTC1544则用来产生控制信号及本地环路返回信号(Local Loop-back,LL)。接口协议通过模式选择引脚M0、M1和M2来决定,具体选择方式见表2。

表2 通信协议的模式选择

LTC1546模式名称M2M1M0DCE/DTED1D2D3R1R2R3未用(缺省V.11)0000V.11V.11V.11V.11V.11 RS530A0010V.11V.11ZV.11V.11V.11RS5300100V.11V.11ZV.11V.11V.11X.210110V.11V.11ZV.11V.11V.11V.351000V.35V.35ZV.35V.35V.35RS449/V.361010V.11V.11ZV.11V.11V.11V.28/RS2321100V.28V.28ZV.28V.28V.28无电缆1110ZZZZZZ未用(缺省V.11)0001V.11V.11V.11ZV.11V.11RS530A0011V.11V.11V.11ZV.11V.11RS5300101V.11V.11V.11ZV.11V.11X.210111V.11V.11V.11ZV.11V.11B.351001V.35V.35V.35ZV.35V.35RS449/V.361011V.11V.11V.11ZV.11V.11V.28/RS2321101V.28V.28V.28ZV.28V.28无电缆1111ZZZZZZ

由表2可知,如果将端口设置为V.35模式,模式选择引脚应当为M2=1,M1=0,M0=0。此时,对于控制信号,驱动器和接收器将工作在V.28(RS232)模式;而对于时钟和数据信号,驱动器和接收器将工作在V.35模式。

模式选择可通过控制电路?或利用跳线将模式引脚接至地或Vcc?来实现对引脚M0、M1和M2的控制,也可通过适当的接口电缆插入到连接器上实现外部选择控制。若选用后者,则当移开电缆时,全部模式引脚均不连接,即M0=M1=M2=1,此时LTC1546/ LTC1544进入无电缆模式。在这种模式中,LTC1546/1544的供电电流将下降到500μA以下,并且LTC1546/ LTC1544驱动器输出将被强制进入高阻状态。同时,LTC1546的R2和R3接收器应当分别用103Ω端接,而LTC1546和LTC1544上的其它接收器则应通过30kΩ电阻接到地。

通过DCE/DTE引脚可使能LTC1546中的驱动器3/接收器1、LTC1544中的驱动器3/接收器1和驱动器4/接收器4;LTC1544中的INVERT信号对驱动器4/接收器4起使能作用。可以通过下面两种方法中的一种将LTC1546/LTC1544设置为DTE或DCE工作模式:一种是将专门配有适当极性的连接器接至DTE或DCE端;另一种是通过专用DTE电缆或专用DCE电缆发送信号给LTC1546/LTC1544,同时使用一个连接器构成一种既适合DTE又适合DCE的工作模式。

3.2 典型应用

图4为一个带有DB-25连接器端口并可被设置为DTE或DCE工作模式的多协议串口通信电路,图中LTC1546/LTC1544芯片一边与连接器相连,另一边接至HDLC芯片,M0、M1、M2及DCE/DTE引脚接至EPLD硬件控制电路以实现对通信协议和工作模式的选择。其中DTE或DCE工作模式需要连接对应的电缆以保证正确的信号发送。例如,在DTE模式中,TxD信号通过LTC1546的驱动器1发送到引脚2和14。在DCE模式中,驱动器则将RxD信号发送到引脚2和14。

图4中,LTC1546采用一个内部容性充电泵来满足VDD和VEE。其中,VDD为符合V.28的正电源电压端,该端应连接一只1F的电容到地;VEE为负电源电压端。一个电压倍增器在VDD上将产生大约8V电压,而电压反相器则将在VEE上产生大约-7.5V的电压。四只1μF电容均为表面贴装的钽或陶瓷电容,VEE端的电容最小应为3.3μF。所有电容耐压均应为16V,同时应尽可能放置在LTC1546的附近以减少EMI干扰。

图4 用LTC1546/LTC1544芯片实现多协议串口通信(DTE/DCE可选)

在V.35模式中,LTC1546中的开关S1和S2将导通,同时应连接一个T型网络阻抗,以将接收器的30kΩ输入阻抗与T网络终端并联起来,但不会显著影响总输入阻抗,因此对于用户来说,这种模式下的电路设计与其它模式下完全相同。

由于LTC1546是3驱动器/3接收器的收发器,LTC1546是4驱动器/4接收器的收发器,所以如果同时采用RL、LL和TM信号,则LTC1546/LTC1544就没有足够的驱动器和接收器。因此,可用LTC1545来替换LTC1544。LTC1545为5驱动器/5接收器的收发器,它能够处理多个可选的控制信号,如TM和RL。

所有LTC1546/LTC1544接收器在全部模式下都具有失效保护功能。如果接收器输入浮置或通过一个终端电阻短接在一起,那么,接收器的输出将永远被强制为一个逻辑高电平。

4 结束语

篇3:异步串行通信接口的IP核设计

传统下载程序的方法是先将应用程序编译成HEX文件,用它替代程序存储器的初始数据文件,使用QuartusII编译工具重新编译工程下载,应用程序即可运行。但是应用程序不可能一次就编写正确,每一次修改都需要重新编译工程下载,浪费了大量的时间。文中针对该问题,提出了使用串行通信接口下载HEX文件的方法。

1 MC8051结构

MCS-51单片机是美国Intel公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进、功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品[3,4]。由于MCS-51系列在指令集、操作系统、编译系统以及各种应用环境上得到了广泛的支持,在集成电路SoC设计领域,许多大公司为此开发了专用的IP核。

MC8051 IP核是由德国的Oregano Systems公司与维也纳理工大学CAD工作组合作开发的开源项目,遵循 LGPL(Lesser General Public License),2001年12月发布MC8051 v1.0版,2004年8月发布v1.4版。与众所周知的Intel8051处理器指令兼容,配合其完善的IC设计平台和验证平台,可根据实际应用的需要进行配置设置,同时其代码还具有可综合特性,因而非常适合SoC方面的应用设计。系统使用MC8051 v1.4版,它具有如下主要特性[5,6,7]:

(1) 采用完全同步设计;

(2) 指令集和标准8051微控制器完全兼容;

(3) 指令执行时间为1~4个时钟周期,执行性能优于标准8051微控制器8倍左右;

(4) 用户可选择定时器/计数器、串行接口单元的数量;

(5) 新增了特殊功能寄存器用于选择不同的定时器/计数器、串行接口单元;

(6) 可选择是否使用乘法器(乘法指令MUL);

(7) 可选择是否使用除法器(除法指令DIV);

(8) 可选择是否使用十进制调整功能(十进制调整指令DA);

(9) I/O 口不复用;

(10) 内部带256 B的RAM;

(11) 最多可扩展至64 kB的ROM和64 kB的RAM;

(12) 最多可扩展至64 kB的ROM和64 kB的RAM。

1.1 MC8051应用方法

MC8051虽然是使用VHDL设计实现,但是和51系列单片机具有相同的指令和执行方法,因此除了CPU外,需要其正常工作,就还需要有存储器。只读存储器(ROM)用作程序存储器,在CPU工作之前,已事先存入各种程序、常数、表格;读写存储器(RAM)又称随机存储器,它的存储单元的内容根据需要既可读出也可写入或改写,用作数据存储器,存放输入、输出数据和中间计算结果或与外存交换信息以及作为堆栈,在必要时可保存断点、保存现场。系统使用MegaWizard Plug-In Manager工具为MC8051定制需要的存储器。

MC8051中所需要的存储模块有,内部RAM、扩展RAM 和ROM。其中内部RAM 和ROM 是必要的,内部RAM 固定为128 B,ROM 最大可选64 kB,鉴于FPGA(选用EP2C20)片上RAM 资源有限(EP2C20 的片上RAM 约为29.25 kB),这里选择4 kB(可根据需要修改);扩展RAM 是可选,最大也可以达到64 kB,这里选择2 kB。

1.2 应用程序执行方法

使用keil C51工具编写应用程序之后,编译生成mcu_test.hex文件,将该文件替代ROM原始文件,重新编译Quartus工程,下载进开发板,程序即可执行。

但是程序代码是不可能一次就写正确的,总要出现一些或大或小的错误。反复烧制显然很麻烦。所以最好可以按照下列流程进行,即在PC机上编译应用程序,通过串行口将机器代码下载到程序存储器中去,然后再从程序存储器运行应用程序。

2 串行通信接口设计

UART(Universal Asynchronous Receiver Transmitter,通用异步收发器)是一种应用广泛的短距离串行传输接口,往往用于短距离、低速、低成本的微机与下位机的通信中。基本UART帧时序,如图1所示。UART发送部分的用途是将准备输出的并行数据,按照帧格式转换为TXD信号串行输出,串行化时的时钟信号只要使用对应要求的波特率的本地时钟即可。UART接收部分接收RXD串行信号,并将其转化为并行数据,需要用一个远远高于波特率的本地时钟信号对输入信号RXD不断采样,以不断地让接收器与发送器保持同步,因此需要一个波特率发生器模块。

2.1 发送器

由于串行数据帧和接收时钟是异步的,所以由逻辑1转为逻辑0可以被视为一个数据帧的起始位。然而,为了避免毛刺影响,能够得到正确的起始位信号,必须要求接收到的起始位在波特率时钟采样的过程中至少有一半属于逻辑0才可认定接收到的是起始位。由于内部采样时钟是发送或接收波特率时钟频率的16倍,所以起始位需要至少8个连续采样时钟周期的逻辑0被接收到,才认为起始位接收到;接着数据位和奇偶校验位将每隔16个采样周期被采样一次。如果起始位的确是16个采样周期长,那么接下来的数据将在每个位的中点处被采样。接收器的状态转换图,如图2所示。接口信号说明,如表1所示。仿真结果,如图3所示。

2.2 波特率发生器

波特率发生器实际上是一个简单的分频器。可以根据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分频因子。将已算出的波特率分频因子作为分频器的分频数。波特率发生器产生的分频时钟不是波特率时钟,而是波特率时钟频率的16倍,目的是为了在接收时进行精确采样,以提取异步的串行数据。接口信号说明,如表2所示,仿真结果,如图4所示。

2.3 串口与RAM接口

为了使程序存储器可写,系统使用双口RAM替代ROM作为程序存储器,使用串行通信接口接收PC机发送的数据,串口接收器接收数据准备好信号rxrdy作为RAM写地址增加信号,写地址初始为0,每次接收完一帧串口数据,写地址自动增一。完成将其按顺序烧写进RAM中的功能,其模块连接图,如图5所示。接口信号说明,如表3所示。仿真结果,如图6所示。

该方法大大节约了编译工程的时间,为调试应用程序提供了便利。需要向双口RAM下载数据时,首先将wren写使能信号置高,rden读使能信号置低,即可将串口数据依次写入RAM,完成在线编程功能。串口接收完数据,将wren信号置低,rden信号置高,同时该串口交出使用权,可以使应用程序中的串口发挥作用。

3 编程测试

系统设计两个应用程序:

(1) 流水灯程序;(2)按键显示程序。

测试步骤:

(1)在Keil C51编译环境编译流水灯程序生成的HEX文件做为程序存储器初始数据,在QuartusII下编译并下载进FPGA开发板中,可见指定的发光二极管轮流闪烁;

(2)在Keil C51编译环境编译按键显示程序生成的HEX文件通过串口助手发送到FPGA开发板,可见发光二极管不再闪烁,按相应按键则对应的发光二极管点亮。

实验证明,没有在QuartusII环境下对工程重新编译且在系统工作时,成功将另一程序写入程序存储器,实现了MC8051软核在线编程。

4 结束语

实验结果表明,MC8051软核的程序存储器可以通过串口模块与主机通信,使得通过串口下载程序成为可能,为系统调试节约了大量时间。

摘要:随着SoC概念的流行以及工艺水平的逐步提高,FPGA上集成的门数越来越多,在一块FPGA中放下一个单片机系统是完全有可能的。但是传统的单片机应用程序下载方法占用大量时间,使得调试不方便。文中提出了使用串行通信接口下载数据的方法,已通过硬件下载验证,实验结果表明可通过串行通信接口对MC8051软核进行在线编程。该方案使用灵活、节约时间、具有实际应用价值。

关键词:MC8051,串行通信接口,编程,FPGA

参考文献

[1]农英雄.基于FPGA的8051SOC设计[D].沈阳:东北大学,2006.

[2]向多春.51核SOC应用设计[D].成都:电子科技大学,2006.

[3]尚笠,葛元庆,周润德,等.80C51微处理器嵌入式内核的设计研究[J].微电子学,2000,30(1):28-30.

[4]胡忭利.串行通信接口的实用设计方法[J].电子科技,2004(10):58-60.

[5]孙璋,肖健梅.PC机与DSP之间串行通信的实现[J].电子科技,2008,21(4):32-34.

[6]刘文涛.单片机语言C51典型应用设计[M].北京:人民邮电出版社,2005

篇4:基于FPGA的异步串行总线设计

关键词:异步串口;FPGA器件;Verilog HDL

随着近代通信技术的迅猛发展,对总线传输速率的要求也越来越高。传统的并行总线在发展到一定速率后很难再有所突破,并且在实际应用中还存在着大量的弊端,比如:成本相对较高、抗电磁干扰能力低下、模块间的总线互联繁琐等等。这些都给串行总线的发展和应用提供了客观动力。串行总线按传输模式可分为同步串行总线和异步串行总线两类;同步串行总线在传输过程中需要携带同步时钟信号,因此在传输距离较长或传输速率较高时会出现由于时钟衰落而引起的误码现象,制约了串行总线的传输速率和作用距离。而异步串行总线恰恰规避了这些缺点。因此异步串行总线被大量的应用于高速串行通信系统中。异步串行总线的按实现方式大致可分为两种,一种是采用专用串行总线接口芯片实现,实现方便简单,但二次开发性差,不利于系统升级维护;另一种是基于FPGA等可编程逻辑芯片实现。后者设计灵活,二次开发型良好,参数配置便捷,利于系统升级维护。本文将详细描述一种基于FPGA芯片硬件设计,采用Verilog HDL硬件描述语言实现传输协议的高速异步串行总线设计。

1 硬件设计方案

本设计通过高速异步串行总线和上位机进行通信,通过解析消息内容完成对下位机的实时控制与监测,并且将监测数据及时准确的回传至上位机。本系统要求具备较高的实时控制性能,下位机响应上位机指令要求时间在3us以内,模块间通信稳定可靠、级联简洁,系统性能升级方便等。通过对系统要求研究分析,采用高速异步串行总线实现模块间通信比较符合要求。系统框图如图1所示。

高速异步串行总线硬件设计采用了以FPGA芯片为主,配以接口、时钟、电源变换等外围电路的设计思路。选用ALTERA公司的Cyclone系列FPGA作为核心器件。此芯片内部有丰富的逻辑资源和存储资源,有丰富的时钟网络和锁相环单元和I/O引脚,能够满足异步串行协议实现的硬件需求。多种电压单独使用,有效降低芯片功耗。为了提高FPGA工作稳定性和可靠性在硬件设计时专门在其外围配置了电源监测电路和复位电路,对FPGA的各种工作电压和电流进行监测,当任意一路电压值发生突变时,电源监测电路都会给出命令,立刻关掉其它电源,或者将FPGA的供电端短路至地端,使FPGA进入断电状态,确保芯片不会被损坏。当电压值恢复正常时,电源监测电路将打开供电电路使FPGA再次进入工作状态,通过复位信号启动FPGA的程序从起始状态开始工作,确保FPGA芯片的物理安全和运行安全,从而有效提高系统的可靠性。设计中还采用了LVDS(Low Voltage Differential Signaling)收发芯片来提高串行总线的驱动能力。单端串行总线从FPGA输出后经LVDS收发器转化为差分信号线对输出至模块端口,与其它模块进行物理连接。串行总线采用差分线的连接方式能够更有效的抵抗传输中的共模噪声,降低传输误码率,大幅提高通信质量。详细的设计框图如图2所示。

2 异步串行总线传输协议

根据系统对上下位机指令响应时间要求,自定义了异步串行总线的传输速率和传输协议。因为本协议为异步串行传输协议,所以在每包数据的前面增加了1.5bit的起始位,在每包数据的后面增加了1bit的数据停止位作为一包数据的开始标志和结束标志。为提高数据传输的准确性,在发送起始位之后和信息数据结束之前分别增加了8bit题头和题尾,用于数据接收方信息同步和数据识别;如果接收方收到的题头或者题尾任意一个有误,就判本包数据传输有误。并且在本包数据末端增加了CRC-8校验码,对发送的整个串行码流进行校验。具体传输协议如下:

(1)串行传输格式:

起始位→题头→命令字→信息→题尾→CRC8→停止位;

(2)传输速率:40MHz;

(3)起始位:0(1.5bit)

(4)题头:10100101;

(5)命令字:B7 B6 B5 B4 B3 B2 B1 B0:B0为读写控制位(0读,1写);B1为数据LSB和MSB传输标志位(0为LSB先出,1为MSB先出);B5 B4 B3B2为访问地址(0000自检状态寄存器,0001控制状态寄存器,1110错误重发请求标志寄存器,1111装置ID软件版本寄存器,其它根据实际需求任意扩展定义);B7 B6为传输数据长度(00为0个8bit数据长度,01为1个8bit数据长度,10为2个8bit数据长度,11为3个8bit数据长度)等。

(6)信息:长度为8bit的整数倍;

(7)题尾:01011010;

(8)CRC校验多项式:CRC8=X8+X7+X6+X4+X2+1;

(9)停止位:1(1bit);

(10)无数据时为高电平。读操作时后面的数据长度为0;不够8bit的,空位默认为“0”。

发送消息的过程相对简单,只需要按照传输格式将所要发送的消息进行打包、CRC-8编码。然后用时钟将打包好的数据串行打出即可;接收消息相对复杂一些,为了准确接收数据,防止因为时钟抖动及串行数据传输信号衰落而导致的误码,接收方要尽可能的靠近每比特数据位的中点进行采样,所以在设计程序时利用锁相环将采样时钟倍频到传输速率的4倍频进行同步采样,这样采样点更加接近数据中点,采到的数据更真实。串行数据接收状态机如图3所示。

3 功能模块设计

根据对协议的分析将整个串行总线传输协议从功能上划分为以下几个模块:发射模块、接收模块、解消息模块、CRC校验模块、自检模块、控制模块、ID版本存取模块和错误重发模块等。模块关系图如图4所示。

(1)发射模块:按照协议向上位机回传监测数据,发射错误重发请求数据等;

(2)接收模块:接收上位机下传的参数、命令等;完成起始位的检测和消息同步,题头、题尾的对错判断,同时将收到的数据进行串并转换以8bit为单位打入FIFO(First In First Out)中缓存,备译码模块进行命令字译码和对下位机控制的信息读取。

(3)CRC校验模块:CRC校验模块完成CRC-8编码功能和CRC-8译码功能。当发送消息时,将要发送的数据按8bit打入CRC校验模块,对其进行编码,求出校验码并且拼接到题尾后面将其发出;当接收消息时,接收模块将收到的串行码按8bit打入CRC校验模块,启动CRC译码算法,如果译码成功则启动解消息模块进行相应的后续工作。如果译码失败,终止本次接收,启动错误重发模块,要求对放发送上一包消息。

(4)解消息模块:CRC校验成功后将启动解消息模块进入工作状态,从FIFO中读取命令字数据,对命令字进行解码识别,根据解码信息启动其它相应模块开始工作。

(5)错误重发模块:当接收到串行数据流时,经过题头、题尾、CRC译码判断,任何一个环节出现错误都将终止本次接收流程,同时启动错误重发模块,发送错误重发请求,要求对方重新发送上一包数据。

根据图4所示流程及软件模块功能化分,本设计采用Verilog HDL硬件设计语言开发实现。设计灵活,串口速率、编码模式、传输方式等都可根据系统要求从上位机下发参数进行修改。图5是本串口总线在每秒七万次的通信频率状态下用Quartus软件中的SignalTAP logic Analyzer抓出的工作时序图。可以看出串口总线传输稳定可靠,完全满足系统通信的高速传输要求。

4 结束语

本文介绍了一种基于FPGA芯片的高速异步串行总线设计。总线协议利用Verilog HDL实现,设计灵活、可读性强、维护方便、升级移植性能优越、传输稳定可靠。随着通信系统信息吞吐量的日益增加,这种具备多重优点的串行总线设计将被大量使用。

参考文献

[1] 王诚,吴继华,范丽珍等.Altera FPGA/CPLD设计.第一版.北京:人民邮电出版社.2005

[2] 徐光辉,程东旭,黄如等.基于FPGA的嵌入式开发与应用.北京:电子工业出版社.102

[3] 王冰,勒学明.LVDS技术及其在多信道高速数据传输中的应用.电子技术应用.2003

篇5:异步串行通信接口的IP核设计

一、实验目的及要求

1、了解掌握RS-232接口标准以及 DB9的主要引脚功能;

2、了解掌握串口通信的基本原理;

3、学习掌握RS-232电缆的制作和测试方法;

4、学习掌握使用串口调试程序进行串口之间的通信实验。

二、实验原理

1、异步串行通信原理

在计算机系统中,每个字符一般使用一个 8 位二进制代码表示。在数据通信中,通常将 传送的每个字符的二进制代码按照由低位到高位的顺序依次发送的方式称为串行通信。图 2-1 是串行通信的示意图。由于串行通信只需在发送方和接收方之间建立一条通信信道,因 此可以减小通信系统的造价。在远程通信中,一般采用串行通信方式。

图 1-1 串行通信示意图

同步是数据通信中必须解决的一个重要问题。所谓同步就是要求通信的收发双方在时间基准上保持一致。在串行通信中,“异步”是同步收发双方通信的重要方式。在异步串行通信中,每个字符作为一个独立的整体进行发送,字符之间的时间间隔可以是任意的。为了实现同步,需要在每个字符的第一位前加 1 位起始符(逻辑 1),并在字符的最后一位后加 1位、1.5 位或 2 位停止位(逻辑 0)。异步串行传输的比特流结构如图 2-2所示。

图 1-2 异步串行传输的比特流结构

常用的串行通信接口标准包括RS-232、RS-449、V.24、V.35等。其中,RS-232是最常 用的串行通信标准之一。个人计算机及终端系统中配备的串行接口几乎都符合 RS-232 标准。

2、RS-232 接口标准

串行口是一种最基本的通信接口,基本上所有的个人计算机及通信终端设备都配有这种接口。RS-232 的主要内容就 是定义数据终端设备DTE(data terminal equipment)和数据通信设备DCE(data circuit equipment)之间的接口标准。RS-232 是美国电子工业协会 EIA 推荐使用的串行通信标准。其初衷是为了促进利用电话网进行数据通信应用的发展,现在也普遍应用于各类计算机或终端设备之间的短距离连接。

RS-232 使用的连接器包括 DB-

25、DB-15 和 DB-9 等几种类型,不同类型连接器使用的引脚定义也各不相同。

计算机 RS-232 串行通信的基本过程。图 1-4 异步串行通信实验总体结构示意图

三、实验过程与实验步骤

1、使用制作的 RS-232电缆将 2台计算机的可用 COM 口连接起来。

2、复制串口调试助手到硬盘上。

3、直接双击 “串口调试助手 3.0”运行软件。检查串口线是否连接到计算机和设备上。确定串口(本机为com1)。在串口调试助手中打开串口:com1。

4、使用字符串收发

5、使用文件传输功能

使用文件传输功能,在 2 台电脑上传输文件,这对于某些特定场合可以用到该功能。首先由接收一端在打开串口后,按下接收文件按钮。

之后会弹出一个对话框,等待对方发送文件。

发送一端在打开串口后,先选择发送文件(如下图)

选择文件后,按下发送按钮,文件开始传输中,这时 2 端都可以看到发送的进度条。发送完毕后,软件会提示!

四、实验结果与分析:串口(com1)

1、正常发送:

(1)A机:波特率相同(9600)、校验位相同(none)、数据位相同(8)、停止位相同(1)

B机:波特率相同(9600)、校验位相同(none)、数据位相同(8)、停止位相同(1)结果:A机发“你好”,B机收“你好”,(图1); B机发“哈哈”,A机收“哈哈”,(图2);

图1

图2(2)、A机:波特率相同(19200)、校验位相同(ODD)、数据位相同(8)、停止位相同(2)

B机:波特率相同(19200)、校验位相同(ODD)、数据位相同(8)、停止位相同(2)结果:A机发“我很好”,B机收“我很好”;图3); B机发“你呢”,A机收“你呢”;图4);

图3

图4

2、波特率不同

A机:波特率相同(4800)、校验位相同(ODD)、数据位相同(8)、停止位相同(1)B机:波特率相同(9600)、校验位相同(ODD)、数据位相同(8)、停止位相同(1)结果:A机发“01 02 03”,B机收“胉”;(图5); B机发“yjw”,A机收“?”;(图6); 分析: 图6

图5 波特率控制采样时间间隔,波特率不相同,收发双方在 相等时间内接收和发送数据 不一致。

3、数据位不同

A机:波特率相同(9600)、校验位相同(ODD)、数据位相同(6)、停止位相同(1)B机:波特率相同(9600)、校验位相同(ODD)、数据位相同(8)、停止位相同(1)结果:A机发“040506”,B机收“?”,(图7); B机发“lys”,A机收“,9>”,(图8); 分析:数据位不相同,收发双方在相等时间内接收和发送数据不一致,所以结果不相同

图7

图8

4、奇偶校检不同

(1)A机:波特率相同(9600)、校验位相同(EVE)、数据位相同(8)、停止位相同(1)

B机:波特率相同(9600)、校验位相同(ODD)、数据位相同(8)、停止位相同(1)结果:A机发“54 85 96 75”,B机收“54 85 96 75”;(图9)B机发“第五种”,A机收“第五种”;(图10)分析:因为校验位用于检验 接收和发送的数据的正确性的,在最终转换时会去除校验位,所以接收到的有效数据和发送的有效数据相同,发送与接收结果一样。

图9

图10(2)A机:波特率相同(9600)、校验位相同(NONE)、数据位相同(8)、停止位相同(1)

B机:波特率相同(9600)、校验位相同(ODD)、数据位相同(8)、停止位相同(1)结果:A机发“54 85 96 75”,B机收“

”;(图11)

B机发“第六种”,A机收“第六种”;(图12)

分析:由于A机无校验位,B机有校验位,所以B机在收到数据并校检,后会自动去除校检位以致发双方的有校数据不一致,结果不一样。

相反的。当A机为接收方时,虽然A机无检验位,但是因为A机已接收到8位数据故不接收B机发送的校检位。结果一样。

图11

图12

5、停止位不同

A机:波特率相同(9600)、校验位相同(ODD)、数据位相同(8)、停止位不同(1)B机:波特率相同(9600)、校验位相同(ODD)、数据位相同(8)、停止位不同(2)

图13

结果:A机发“B机收“B机发“

”,A机收“

”,”;(图13)”;(图14)

图14 分析:

5、发送文件

A机:波特率相同(9600)、校验位相同(NONE)、数据位相同(8)、停止位相同(2)B机:波特率相同(9600)、校验位相同(NONE)、数据位相同(8)、停止位相同(2)结果分析:

当有校检位时,不可以接收文件;波特率不同、校验位不同、数据位同或停止位不同时,文件无法接收;即唯有当波特率相同、数据位相同、停止位相同且无校检位时,方可以正确接收文件。

五、思考并回答以下问题:

(1)在本实验中,RS—232 串口电缆处于 OSI 参考模型的什么位置?它的作用是什么?

答:处于OSI 参考模型的物理层,其作用是作为传输介质,连接通信的网络节点,实现比特流的透明传输,为数据链路层提供数据传输服务。

(2)在本实验中,数据和信号分别体现在 OSI参考模型的什么位置?两者之间有何区别?

答:数据体现在数据链路层,信号体现在物理层。两者区别在:数据链路层:为网络层提供服务的,解决两个相邻结点之间的通信问题,传送的协议数据单元称为数据帧。物理层:OSI模型的最底层。它提出了网络的物理特性,比如连接的电缆类型。这里是二进制值0和1的世界,也就是数据以信号的电特性(高低电平)来表示。

(3)什么是波特率?为何两台 PC 的波特率不同就不能正常通信?

答:波特率又称调制速率、传码速率,记为Nbd,是指在数据通信系统中,每秒钟传输信号码元个数,单位是波特。

篇6:异步串行通信接口的IP核设计

数字卫星综合解码器也称为工程型数字卫星接收机,俗称数字卫星信号接收机。相对普通数字卫星信号接收机而言,综合解码器一般都具备ASI接口、支持CA模块、专业功能强、可靠性和扩展性高,在数字电视前端系统得到广泛应用,为数字电视系统提供免费或者加扰了的卫星电视/广播信号。其输入一般来自LNB的卫星信号,通过ASI接口输出基于DVB标准的TS码流。

1 ASI工作原理介绍

1.1 基于同轴电缆的ASI传输系统框图

ASI采用串行传输,只需一根同轴电缆线传输,连线简单、传输距离长。ASI传输流可以有不同数据速率,但传输速率恒定,为270 Mb/s,规定ASI传输的数据为采用字节同步的MPEG-2传送包,数据格式为8 B/10 B编码,因此ASI可以发送和接收不同速率的MPEG-2数据。ASI传输系统采用分层结构。最高层、第2层使用MPEG-2标准ISO/IEC 13818-1(SYSTEM),第0层和第1层是基于1SO/IEC CD 14165-1的FC(Fibre Channel)纤维信道。FC支持多种物理传输媒介,如同轴电缆传输等。图1是以同轴电缆传输为例的ASI传输系统。

1.2 工作原理简述

首先将包同步的MPEG-2 TS流的8比特码字转换成10比特码字,然后对这些10比特码字进行并/串转换。当要求输入一个新字而数据源还没有准备好时,应插入一个K28.5的同步字(接收时将略掉这些同步字),以达到串/并转换后输出比特率固定为270 Mb/s。所形成的串行比特流将通过放大/缓冲电路和耦合网络,送到同轴电缆连接器上。

同轴电缆的传输数据,经连接器和耦合网络耦合到放大缓冲器进行驱动,恢复时钟和数据,然后进行串/并变换;为了恢复字节同步,ASI解码器必须先搜寻到K28.5同步字,一旦搜索到该同步字,即为随后接收的数据标定了边界,从而建立了解码器输出字节的正确字节排列,最后将10比特码字转换成8比特码字,恢复出包同步的MPEG-2 TS码流数据。但是K28.5同步字不是有效数据,因此解码时必须删除。

2 XC95144芯片结构以及功能

XC95144芯片是Xilinx公司推出的一款高性能CPLD(复杂可编程逻辑器件)芯片,芯片内部结构如图2所示。XC95144提供先进的在系统编程功能,为一般的逻辑功能实现提供测试功能;内置8个功能模块,每个功能模块提供18个宏单元,总共提供144个宏单元;可用门多达3 200个,可以通过配置宏单元在标准模式或者低功耗模式来达到节电目的。

3 基于CPLD的异步串行接口设计

ASI信号输出是复用器、编码器、QAM调制器、数字卫星综合解码器等数字电视前端设备的重要功能之一。对于工程型数字卫星接收机来说,ASI接口用来输出经过QPSK解调后的TS码流,将接收到的数字电视节目码流传送给QAM调制器,再经有线电视传输网络输送到机顶盒用户;或者经另一台带ASI输入的解码器恢复MPEG-2传输流。下面介绍基于XC95144芯片的异步串行接口在工程型数字卫星接收机中的应用。

3.1 ASI接口示意图

采用XC95144芯片实现ASI接口的原理图如图3所示。

3.2 工作过程简述

在综合解码器中,FIFO缓冲存储器和逻辑控制用XC95144来实现,高速串行数据发送器采用CY7B923。解码器TUNER输出MPEG-2标准的TS码流(或经CI解密后的透明流)传送到XC95144内部FIFO缓冲存储器,FIFO接收到数据后,XC95144内置逻辑控制电路(ENA脚)发出一个控制信号使CY7B923工作在8B/10编码模式。TS码流数据经编码和并/串转换后变成串行码流,再经变压器(PE-65508,该变压器用来隔离传输上可能出现的高压,并有带通滤波功能)耦合和阻抗匹配,完成异步串行输出。同理,由另一ASI输出设备输出的异步串行信号,经变压器(PE-65508)耦合高速串行数据通信接收芯片CY7B933。经内置PLL同步时钟产生器恢复用于数据重构所需的位同步时钟,同时产生帧同步时钟。然后输入的位流数据在移位器中实现串/并转换,同时送到译码器中译码并检查传送错误。最后将译码后的字节数据在帧同步时钟控制下送到输出寄存器由并行输出脚输出。

3.3 ASI功能设置

对于采用CA模块功能的综合解码器来说,如何灵活地实现ASI接口信号的输出将极大地扩张综合解码器的功能和应用范围。一般ASI输出是综合解码器的标准配置,根据实际需要,还可以增加ASI输入端口。因此TS流的输出就有三种组合方式,一是高频头TS流直接通过ASI输出;二是高频头TS流经CI电路解扰后输出(CAM输出);三是ASI输入经本机CI接口电路解扰后再由ASI输出。这三种组合方式的切换由逻辑电路完成。综合解码器中的逻辑电路所起的作用就像电子开关一样,选择所需信号再流向下一环节。以上设计方案的输入和输出提供几种选择模式:

(1)ASI输出方式

(1)CAM输出:综合解码器可以输出已由CAM卡解扰后的透明TS流;

(2)高频头输出:综合解码器可以输出本机卫星信号输入端接收到的TS流;

(3)输出方式为ASI输入:综合解码器可以输出本机ASI输入端口接收到的TS流。

(2)CAM输入方式

(1)高频头输入:把本机高频头接收到的卫星信号TS流传输给CAM模块;

(2)ASI输入:把本机ASI输入端口输入的TS流(一般是透明的)传输给CAM模块;

(3)ASI输出格式:188 B/包和204 B/包,默认为188 B/包。当本机与其他接收机级联时,ASI输出格式设置为204。

4 基于FPGA的异步串行接口的设计

4.1 XC95144XL芯片的缺陷及FPGA技术优势

综合解码器采用单片数据传输模块XC95144XL-10完成信号的切换功能,但是芯片的控制和工作需要软件辅助实现。因此在检修ASI输入/输出部分故障时,如确定是因XC95144XL-10不良引起,则不能简单进行同型号更换,必需先将程序烧录至逻辑芯片,这样检修维护很麻烦。随着XC95144XL-10的停产,以及FPGA技术和产品的应用普及,综合解码器完全可以采用更先进的FPGA技术和产品来实现信号的切换功能。

FPGA包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个主要部分。FPGA最大的优点是可编程性,不投片也能开发自己的芯片,或者作为ASIC芯片的样片。FPGA是ASIC电路中设计周期短、开发费用低、风险小的器件之一,在嵌入式系统中广泛应用,特别是大批量数据传输中的应用。

4.2 FPGA技术实现ASI接口

FPGA数据传输模块硬件包括的器件有一片Xilinx XC3S50 FPGA和一片XCF01S为FPGA做配置。即信号切换部分由XC3S50完成,XC3S50工作所需的控制程序则存储在专用的配置芯片XCF01S,这样在开发或生产调试中出现ASI方面故障时只对XCF01S软件升级即可。XCF01S配置芯片本身支持JATEG调试接口,可通过JATEG调试接口更新其程序。

XC3S50拥有一系列产品,最高可达784个I/O引脚、74 880个逻辑单元,每个I/O引脚支持622 MB/s的数据传输率,集成MicroBlaze TM处理器,支持Xilinx的ISE开发系统;XCF01S芯片为FPGA配置提供在系统编程PROMs,内置低功率、先进(NOR)快闪记忆体,支持20 000次擦除周期。

FPGA中的引脚除了与配置芯片连接外,还与主芯片嵌入式处理器、Flash、网络芯片连接。FPGA有多种配置模式,本机采用串行PROM编程FPGA。图4为采用FPGA实现数据传输的硬件模块框图。图4中(1)粗线条表示TS信号,(2)细线条表示控制信号和数据信号。

(1)采集高频头或CI接口电路传输来的TS并行数据。

(2)采集ASI异步串行接口传输来的TS并行数据。根据需要还要送入CI接口电路进行解扰。

(3)输出TS并行数据到异步串行接口(ASI输出)。

XC3S50与XCF01S连接示意图如图5所示。

4.3 FPGA技术实现ASI接口工作流程

整机启动时,可编程器件XCF01S程序随FLASH程序一起加载至SDRAM运行,根据用户的需要,主芯片CPU通过总线设置XC3S50工作参数,即选择TS流的流向,使ASI输入/输出符合用户需求。高频头/CI接口电路输出的TS流和数据控制信号经XC3S50处理后,数据控制信号过滤掉,只保留TS流信号输出至高速串行数据发送器CY7B923,数据发送器工作时钟由外部27 MHz有源晶振提供,数据发送器进行8 B/10 B编码,同步字(FC逗号)插入,串并转换后输出异步串行TS流(ASI信号)。ASI输入的TS流经8 B/10 B解码、时钟恢复和串并转换等一系列处理后输出8位TS流及时钟信号(ASICKR)至XC3S50。由于综合解码器解复用模块和CI接口模块工作时仍需数据控制信号,所以这部分信号由XC3S50产生并提供。

5 应用

目前在综合解码器内部无法调整输出的ASI信号中音频声量大小,所以造成不同的卫星电视节目音量不一致。为了解决该问题,湖南有线电视网络(集团)股份有限公司在2008年9月建立了数字卫星电视节目重编码平台,确保各个卫星电视节目音量大致均衡,重编码平台采用了深圳市同洲电子股份有限公司生产的CD-VB5100CI综合解码器来接收、解码、输出卫星电视节目TS信号,具体应用如图6所示。卫星信号只需要连接第1台综合解码器,在第1台综合解码器中使用一块CAM大卡和一张可以解扰输出4套卫星电视节目的授权小卡。这样在同一个卫星下行频点中的4套电视节目全部在第一台解码器中解扰,后面级联的解码器只需处理、输出从上一级解码器传输过来的透明ASI信号即可。每台解码器的模拟输出端口设置输出一套电视节目,后续编码设备对模拟音视频电视信号重新编码,在编码设备上把不同的电视节目的音量调整到相同的状态。

就目前FPGA技术的普及以及性价比来说,在综合解码器中采用FPGA技术实现ASI接口是非常理想的方案,它可以缩短设计周期、降低开发费用、提高测试和维护效率,使得产品的开发、维护和应用风险最小。通过配置综合解码器的ASI信号不同的输入、输出方式,极大地扩展了综合解码器的功能和应用。

摘要:数字电视系统设备的MPEG-2视频码流传输接口主要有ASI和SPI。复用器、QAM调制器、数字卫星综合解码器等一般采用ASI接口输入/输出信号。本文分别采用CPLD和FPGA技术设计符合DVB标准的ASI接口电路。通过灵活配置解码器的ASI输入/输出接口,以扩展综合解码器的功能和应用。

关键词:异步串行接口,传输流,综合解码器,XC95144,CPLD,FPGA,XC3S50

参考文献

[1]Xilinx.XC95144In-System Programmable CPLD.pdf.http://www.xilinx.com/support/documentation/data_sheets/DS067.pdf[EOL],2006,3(4).

[2]Xilinx.XC3S50Errata(PDF).http://www.xilinx.com/support/documentation/spartan-3.htm.[EOL],2005,17(1).

[3]Xilinx.XCF01S.http://www.xilinx.com/support/documentation/customer_notices/advisory2003-07.pdf[EOL],2003,16(12).

[4]李坚.用CPLD产生视频同步控制信号[J].电视技术,2003(5).

上一篇:幼儿园小班第二学期评语下一篇:描写人生感悟的句子