一种基于SoC支持RS232和RS485接口标准组设备的装置的制作方法

文档序号:14040429阅读:212来源:国知局
一种基于SoC支持RS232和RS485接口标准组设备的装置的制作方法

本发明属于通信技术领域,尤其涉及一种基于SoC支持RS232和RS485接口标准组设备的装置。



背景技术:

全可编程SoC(AP SoC)集成了现场可编程门阵列(PL,Programmable Logic)的硬件可编程性和ARM处理器(PS,Processing System)的软件可编程性,不仅可实现硬件加速和软件控制,并可在单个芯片上高度集成DSP、CPU、ASSP,实现功能创新型的PS+PL架构,并具备巨大的OS、中间件、协议栈、加速器和IP生态环境和多级别的软硬件安全。SoC内部PS和PL之间通信方式有AXI(Advanced extensible Interface)和EMIO(Extendable multiplexed I/O)两种通信方式。

AXI(Advanced extensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持Outstanding传输访问和乱序访问,并更加容易进行时序收敛。AXI是AMBA中一个新的高性能协议。AXI技术丰富了现有的AMBA标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。全可编程SoC中的AXI主要由读写地址总线(RW_ADDR)、读数据总线(RD_DATA)、写数据总线(WR_DATA)、握手信号组成(Handshake)。

UART(Universal Asynchronous Receiver/Transmitter)是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。

RS-232C是美国电子工业协会(EIA)和国际电报电话咨询委员会(CCITT)为串行通信设备制定的一种标准。该标准规定:RS-232C采用负逻辑规定逻辑电平,-3V—-15V为逻辑“1”电平,+3V—+15V为“0”电平。这种信号电平与通常并行接口中使用的LVTTL/LVCMOS电平不同,由LVTTL/LVCMOS与RS-232C的转换可以借助MAX232芯片。

电子工业协会(EIA)于1983年制订并发布RS-485标准,并经通讯工业协会(TIA)修订后命名为TIA/EIA-485-A,习惯地称之为RS-485标准。RS-485标准是为弥补RS-232通信距离短、速率低等缺点而产生的。RS-485标准只规定了平衡发送器和接收器的电特性,而没有规定接插件、传输电缆和应用层通信协议。RS-485标准与RS-232不一样,数据信号采用差分传输方式(Differential Driver Mode),也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。通常情况下,发送发送器A、B之间的正电平在+2~+6V,是一个逻辑状态;负电平在-2~-6V,是另一个逻辑状态。另有一个信号地C。在RS-485器件中,一般还有一个“使能”控制信号。“使能”信号用于控制发送发送器与传输线的切断与连接,当“使能”端起作用时,发送发送器处于高阻状态,称作“第三态”,它是有别于逻辑“1”与“0”的第三种状态。对于接收发送器,也做出与发送发送器相对的规定,收、发端通过平衡双绞线将A-A与B-B对应相连。当在接收端A-B之间有大于+200mV的电平时,输出为正逻辑电平;小于-200mV时,输出为负逻辑电平。在接收发送器的接收平衡线上,电平范围通常在200mV至6V之间。

MDAS(Multiservice Distributed Access System Solution)是一种多业务分布系统,可支持多家运营商,多制式,多载波,并集成WLAN系统,一步解决语音及数据业务需求,与传统模拟分布系统相比,同时具备混合组网、时延补偿、自动载波跟踪、上行底噪低等特点。

MDAS由接入单元(MAU)、扩展单元(MEU)和远端单元(MRU)组成。MDAS中的数字化系统细分有CDMA系统、GSM/DCS/WCDMA双制式系统、GSM/DCS/TD-SDMA双制式系统,在提供2G、3G移动通信服务的同时,集成WLAN系统,满足用户的高速率无线数据传输需求。

MDAS的系统组网能力,1台MAU可带4台MEU,1台MEU可带8台MRU,1台MAU可带4*8*8=256台MRU。MAU,MEU和MRU之前通过光模块和光纤连接。



技术实现要素:

针对现有技术存在的问题,本发明的目的是解决基于SoC作为系统控制和算法处理芯片的电路单板中UART控制器不足的问题。本发明利用SoC中PS自带的一个UART控制器和SoC内部的PL模块解决系统需要控制2个RS485接口设备和1个RS232接口设备的需求。

为了实现上述发明目的,本发明采用的技术方案为:一种基于SoC支持RS232和RS485接口标准组设备的装置,其特征在于,它包括:

SoC内部PS单元的处理器模块,以及PS单元自带的一个UART控制器;

SoC内部的PL单元;

SoC内部PS单元和PL单元之间通过AXI总线接口相连;

SoC内部PS单元和PL单元之间的EMIO数据接口,EMIO数据接口上定义PS_UART_TX,PS_UART_RX,PS_UART_RTSN信号;

在PL单元内部新设计了两个模块,一个是AXI协议解析模块,一个是UART总线控制模块;

所述UART总线控制模块通过LVCOMS/RS485电平转换芯片与RS485接口设备相连;

所述UART总线控制模块通过LVCOMS/RS232电平转换芯片与RS232接口设备相连。

上述的基于SoC支持RS232和RS485接口标准组设备的装置,其进一步特征在于:

AXI总线的读写地址总线(RW_ADDR)的数据位宽是32bit;读数据总线(RD_DATA)的数据位宽是32bit、写数据总线(WR_DATA)的数据位宽是32bit。

在AXI协议解析模块中给UART总线控制模块定义一个控制寄存器UART_SEL,这个寄存器地址是0x00000090,数据位宽是3bit(UART_SEL[2:0]),UART_SEL控制UART总线控制模块的通道选择。

所述AXI协议解析模块:

等待PS通过AXI总线发送过来的握手信号(Handshake);

判断地址总线的数据是否是0x00000090;

如果地址总线的数据是0x00000090,则继续根据握手信号判断当前是写操作还是读操作;

如果是写操作且RW_ADDR地址总线的数据是0x00000090,把WR_DATA的低3bit数据赋值给UART_SEL;

如果是读操作且RW_ADDR地址总线的数据是0x00000090,把UART_SEL赋值给RD_DATA的低3bit,高29bit数据赋值为0。

所述UART总线控制模块根据PS单元通过AXI总线控制模块的UART_SEL信号决定PS单元和PL单元之间的UART总线连接到2个RS485总线设备和1个RS232总线设备中的一个。

PS单元的控制软件根据系统工作需求,决定当前PS单元的UART控制器与3个外部设备中的一个进行通信;

PS单元通过AXI总线和AXI协议解析模块控制UART_SEL寄存器的具体数值;

UART总线控制模块根据UART_SEL控制信号的数值,把UART控制器的数据总线与对应的外部设备数据总线连接;

UART控制器和外部设备之间需要通过LVCOMS/RS232和LVCOMS/RS485电平转换芯片进行电平转换。

所述UART总线控制器模块:当PS单元的UART控制器作为主控制器需要操作外部设备时,UART_SEL控制信号决定PS的UART控制器和外部3个外部设备中的一个进行通信。

有益效果:本发明的基于SoC支持RS232和RS485接口标准组设备的装置具有3个优点,1:本发明利用SoC中PS自带的一个UART控制器和SoC内部的PL模块多余的逻辑资源解决系统需要控制2个RS485接口设备和1个RS232接口设备的需求。如果没有本发明,在电路中就至少需要3个UART控制芯片才能满足系统设计需求,利用本发明可以节省了硬件采购成本。

2:因为本发明的全部设计在SoC内部完成,简化了电路板上SoC外部的UART控制器外围电路,可以减少电路板的PCB层数,进一步降低生产成本。

3:因为SoC在电路板上的外围电路进一步简化,所以可以减少电路板的调试时间,提升研发效率。

附图说明

图1是本发明基于SoC支持RS232和RS485接口标准组设备的装置框图。

图2是本发明实施例的AXI协议解析模块的工作流程图。

具体实施方式

为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明。

SoC内部的PS支持两个独立的通用异步收发控制器(UART,Universal Asynchronous Receiver/Transmitter),这两个UART控制器支持全双工通信的工作模式,并支持串口通信速率的软件可编程控制。UART控制器主要提供以下功能:将由PS内部传送过来的并行数据转换为输出的串行数据流,将从外部接收来的串行数据转换为字节,供PS内部并行数据的器件使用;在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验;在输出数据流中加入启停标记,并从接收数据流中删除启停标记。

本发明主要用到SoC内部PS UART控制器的以下3个信号:

1:PS_UART_TX是UART控制器的数据信号发送接口;

2:PS_UART_RX是UART控制器的数据信号接收接口;

3:PS_UART_RTSN是RS485总线数据流方向的控制信号输出接口。

PS内部UART控制器的串口总线有两个种方式和SoC外部支持UART接口标准组设备连接:

1:UART控制器的串口总线通过SoC的MIO接口和外部设备的串口总线接口连接;

2:UART控制器的串口总线先通过PS和PL的EMIO接口连接到PL内部可编程逻辑,然后再通过PL内部的可编程逻辑连接到FPGA的普通IO口,最后在FPGA的普通IO口和外部设备的串口控制总线接口连接。

在一个以全可编程SoC为系统控制和算法处理的电路单板中,因为PS的一个UART的控制器需要独立的留给设备作为调试和系统启动使用,所以只有一个UART控制器给SoC的外围设备使用。

例如在MADS系统的MRU电路单板设计上需要有2个RS485接口和1个RS232接口设备。现在有的基于SoC的硬件平台不能满足这个设备需求,因此本发明利用SoC内部PS自带的UART控制器和PL模块实现一种支持RS232和RS485接口标准组设备的装置。

实施例

本实施例利用全可编程SoC内部PS自带的UART控制器和PL模块实现一种支持RS232和RS485接口标准组设备的装置。

本实施例主要利用以下5个模块实现:

1:SoC内部PS单元的处理器模块,以及PS单元自带的一个UART控制器;

2:SoC内部的PL单元;

3:SoC内部PS和PL之间的AXI总线接口;

4:SoC内部PS和PL之间的EMIO数据接口,EMIO接口上定义PS_UART_TX,PS_UART_RX,PS_UART_RTSN信号;

5:在PL内部新设计了两个模块,一个是AXI协议解析模块,一个是UART总线控制模块。

本实施例的装置框图如图1所示。

AXI总线的读写地址总线(RW_ADDR)的数据位宽是32bit;读数据总线(RD_DATA)的数据位宽是32bit、写数据总线(WR_DATA)的数据位宽是32bit。

在AXI解析模块中给UART总线控制模块定义一个控制寄存器UART_SEL,这个寄存器地址是0x00000090,数据位宽是3bit(UART_SEL[2:0]),UART_SEL控制UART总线的通道选择。AXI协议解析模块的实现方式如下:

1:等待PS通过AXI总线发送过来的握手信号(Handshake);

2:判断地址总线的数据是否是0x00000090;

3:如果地址总线的数据是0x00000090,则继续根据握手信号判断当前是写操作还是读操作;

4:如果是写操作且RW_ADDR地址总线的数据是0x00000090,把WR_DATA的低3bit数据赋值给UART_SEL;

5:如果是读操作且RW_ADDR地址总线的数据是0x00000090,把UART_SEL赋值给RD_DATA的低3bit,高29bit数据赋值为0。

AXI协议解析模块的工作流程如图2所示。

UART总线控制模块根据PS通过AXI总线控制的UART_SEL信号决定PS和PL之间的UART总线连接到2个RS485总线设备和1个RS232设备中的一个。

本装置与方法整个系统工作实现方式如下:

1:PS的控制软件根据系统工作需求,决定当前PS的UART控制器与3个外部设备中的一个进行通信;

2:PS通过AXI总线和AXI协议解析模块控制UART_SEL寄存器的具体数值;

3:UART总线控制模块根据UART_SEL控制信号的数值,把UART控制器的数据总线与对应的外部设备数据总线连接;

4:UART控制器和外部设备之间需要通过LVCOMS/RS232和LVCOMS/RS485电平转换芯片进行电平转换。

UART总线控制器模块的工作流程实现方式如下:

1:当PS的UART控制器作为主控制器需要操作外部设备时,UART_SEL控制信号决定PS的UART控制器和外部3个外部设备中的一个进行通信。

2:在UART总线控制模块定义4组串口总线,

第一组总线:PS_UART_TX_0,PS_UART_TX_0,PS_UART_RTSN_0,

这组总线与RS485接口设备0连接的电平转换芯片通信;

第二组总线:PS_UART_TX_1,PS_UART_TX_1,PS_UART_RTSN_1,

这组总线与RS485接口设备1连接的电平转换芯片通信;

第三组总线:PS_UART_TX_2,PS_UART_TX_2,

这组总线与RS323接口设备连接的电平转换芯片通信;

第四组总线:PS_UART_TX,PS_UART_TX,PS_UART_RTSN,这组总线是UART控制器和UART总线控制模块之间的UART数据通信总线。

3:UART总线控制器的总线信号设计实现方式如下:

下面是UART控制器控制RS485半双工通信的数据流方向的控制信号的设计方式:

PS_UART_RTSN和UART_SEL[0]这两个信号数值取或赋值给PS_UART_RTSN_0;

PS_UART_RTSN和UART_SEL[1]这两个信号数值取或赋值给PS_UART_RTSN_1。

下面是UART控制器输出到外部设备数据信号的设计方式:

PS_UART_TX和UART_SEL[0]这两个信号数值取或赋值给PS_UART_TX_0;

PS_UART_TX和UART_SEL[1]这两个信号数值取或赋值给PS_UART_TX_1;

PS_UART_TX和UART_SEL[2]这两个信号数值取或赋值给PS_UART_TX_2。

下面是外部设备输出到UART控制器数据信号的设计方式,并设计三个中间变量信号:RX_0,RX_1,RX_2;

PS_UART_RX_0和UART_SEL[0]这两个信号数值取或赋值给RX_0;

PS_UART_RX_1和UART_SEL[1]这两个信号数值取或赋值给RX_1;

PS_UART_RX_2和UART_SEL[2]这两个信号数值取或赋值给RX_2;

RX_0,RX_1和RX_2这三个信号数值取与赋值给PS_UART_RX。

以上的实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。本发明未涉及的技术均可通过现有的技术加以实现。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1