CN106951381A - 一种uart扩展芯片及实现方法 - Google Patents
一种uart扩展芯片及实现方法 Download PDFInfo
- Publication number
- CN106951381A CN106951381A CN201710167965.3A CN201710167965A CN106951381A CN 106951381 A CN106951381 A CN 106951381A CN 201710167965 A CN201710167965 A CN 201710167965A CN 106951381 A CN106951381 A CN 106951381A
- Authority
- CN
- China
- Prior art keywords
- register
- substring
- mouthful
- fifo
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Abstract
一种UART扩展芯片及实现方法,包括总线接口、主接口控制器、数据转换器、内部总线、模式控制接口、GPIO控制逻辑、时钟发生器、寄存器管理器、子串口收发器、子串口控制器和中断控制器,其特征在于:所述主接口转换逻辑包括SPI控制逻辑、I2C控制逻辑、串口收发逻辑和并口总线控制逻辑,所述子串口收发器包括发送FIFO、接收FIFO、串口发送逻辑、串口接收逻辑和波特率发生器,所述子串口控制器包括子串口控制逻辑、子串口FIFO控制逻辑、485控制逻辑、流量控制逻辑、子串口控制逻辑。所述总线接口通常连接到嵌入式微处理器的SPI总线接口、I2C总线接口、串口、并口总线,在模式接口的控制下,把上述4中接口转换为1到4个串口,同时在非并口总线模式下,也能转换为8位GPIO。转换后的串口称为子串口,每个子串口都有大容量的FIFO,每个子串口都能实现流量控制,485控制等。
Description
技术领域
本发明涉及一种UART扩展芯片及实现方法,特别是一种将SPI、I2C、UART和8位并口扩展为多路高速UART的芯片。
背景技术
随着嵌入式微处理器技术的发展和嵌入式平台功能的复杂化,嵌入式平台需要搭载的外设越来越多,且绝大多数外设都是通过串口和嵌入式平台相连接。由于嵌入式平台本身的串口个数有限(通常一个嵌入式处理器本身具有2到3串口),如果外设众多,那么我们需要把其他总线转换为串口。
目前串口扩展的方式大体上有软件模拟、选择多串口CPU、或者是选择总线转换的专用串口扩展芯片。
软件模拟的串口由于没有硬件缓存,通常只能用于低速串口,且软件模拟也会占用大量的系统资源;目前多串口CPU型号有限,这类型的CPU并不能满足所有嵌入式设备平台,限制太大;总线转换的专用串口扩展芯片不受平台限制,只要平台总线匹配即可,且专用芯片有大容量FIFO和专用逻辑处理单元,扩展串口更加方便。
发明内容
本发明要解决的技术问题是提供了一种UART扩展芯片及实现方法,实现嵌入式微处理器搭载众多高速外设的需求。
本发明的技术方案如下:
一种UART扩展芯片及实现方法,包括:
总线接口、主接口控制器、数据转换器、内部总线、模式控制接口、GPIO控制逻辑、时钟发生器、寄存器管理器、子串口收发器、子串口控制器和中断控制器;所述主接口控制器包括SPI控制逻辑、I2C控制逻辑、串口收发逻辑和并口总线控制逻辑,所述子串口收发器包括发送FIFO、接收FIFO、串口发送逻辑、串口接收逻辑和波特率发生器,所述子串口控制器包括子串口控制逻辑、子串口FIFO控制逻辑、485控制逻辑、流量控制逻辑、子串口控制逻辑。所述总线接口通常连接到嵌入式微处理器的SPI总线接口、I2C总线接口、串口、并口总线,在模式接口的控制下,把上述4中接口转换为1到4个串口,同时在非并口总线模式下,也能转换为多位GPIO。
所述总线接口一端连接到主接口控制器,另外一端通常连接到嵌入式微处理器的相应总线上。
所述主接口控制器包括SPI控制逻辑、I2C控制逻辑、串口收发逻辑和并口总线控制逻辑,在模式控制接口的控制下,完成芯片和嵌入式微处理器信息交换。
所述数据转换器连接到主接口控制器和内部总线。把主接口控制器收到的数据转换为特殊的格式,并存入相应的芯片寄存器,实现相应的操作。
所述内部总线为芯片内部数据交换的一个通道。
所述GPIO控制逻辑在非并口模式下有效,通过相应寄存器来控制多个GPIO。
所述时钟发生器为芯片提供统一的时钟信号。
所述子串口收发器包括发送FIFO、接收FIFO、串口发送逻辑、串口接收逻辑和波特率发生器;且每个子串口都有独立的子串口收发器。
所述子串口控制器包括子串口控制逻辑、子串口FIFO控制逻辑、485控制逻辑、流量控制逻辑、子串口控制逻辑,且每个子串口都有独立的子串口控制器。
所述中断控制器控制芯片的中断触发与产生中断信号及中断信号的检测。
所述寄存器管理器,管理芯片所有的内部寄存器,芯片内部寄存器分为全局寄存器、页寄存器、子串口寄存器;其中页寄存器和子串口寄存器为每个子串口独立所有。
所述全局寄存器包括全局子串口使能寄存器GENA、全局子串口复位寄存器GRST、全局主串口控制寄存器GMUT、全局中断寄存器GIER、全局中断标志寄存器GIFR、全局GPIO中断标志寄存器GPINT、全局GPIO中断使能寄存器GPIEN、全局GPIO方向寄存器GPDIR、全局GPIO中断模式寄存器高字节GPIM1、全局GPIO中断模式寄存器低字节GPIM0、全局GPIO数据寄存器GPDAT。全局寄存器的地址为6位,分别依次为000000、000001、000010、010000、010001、010010、100000、100001、100010、110000、110001;
所述页寄存器包括子串口页控制寄存器SPAGE,子串口页寄存器的地址为XX0011,其中XX为00、01、10、11中的一个,表示不同的子串口;子串口页控制寄存器SPAGE的值只能是0或者1;0表示在第0页,1表示在第一页;
所述子串口寄存器分布在不同的页上,通过子串口页控制寄存器SPAGE来控制,其中在第0页上的寄存器包括子串口使能寄存器SCR、子串口配置寄存器LCR、子串口FIFO控制寄存器FCR、子串口中断使能寄存器SIER、子串口中断标志寄存器SIFR、子串口发送FIFO计数寄存器TFCNT、子串口接收FIFO计数寄存器RFCNT、子串口FIFO状态寄存器FSR、子串口接收状态寄存器LSR、子串口FIFO数据寄存器FDAT、子串口流量控制寄存器FWCR、子串口RS485控制寄存器RS485,这些寄存器的地址为XX0000到XX1111,其中XX为00、01、10、11表示不同的子串口;在第1页上的寄存器包括子串口波特率配置寄存器高字节BAUD1、子串口波特率配置寄存器低字节BAUD0、子串口波特率配置寄存器小数部分PRES、子串口接收FIFO中断触发点配置寄存器RFTL、子串口发送FIFO中断触发点配置寄存器TFTL、子串口FIFO流控触发点配置寄存器高字节FWTH、子串口FIFO流控触发点配置寄存器低字节FWTL、子串口XON1寄存器XON1、子串口XOFF1寄存器XOFF1、RS485地址寄存器SADR、RS485地址使能寄存器SAEN、RS485RTS控制寄存器RTSDLY,这些寄存器的地址为XX0000到XX1111,其中XX为00、01、10、11表示不同的子串口;
与现有技术相比,本发明具有以下优点:
1、支持多种总线接口,如我们常用的SPI总线、I2C总线、并口总线、串口等总线接口;芯片内置总线控制逻辑和数据转换器,可以实现不同总线之间的转换。
2、每个子串口都有独立的大容量接收FIFO和发送FIFO,大容量的缓存空间有利于高速串口的扩展。
3、支持子串口单独控制,每个子串口都有独立的寄存器组用于控制子串口的时钟、FIFO、中断系统、通信模式等。
4、支持主UART的波特率自适应和子串口波特率的任意设置。当主接口为UART的时候,在芯片复位以后,CPU通过发送0x55给总线转换芯片的主UART,总线转换芯片的主UART通过接收0x55,并计算出此时0x55传输时的波特率,并把主UART锁定到相同的波特率,以后按照锁定的波特率通信。
5、支持485功能,包括支持带网络地址的485模式和不带网络地址的485模式。
6、支持SPI、UART、I2C、并口多种总线传输协议。
7、支持读写FIFO协议,读写FIFO协议是用于读写子串口收发缓存的专用传输协议,该协议在主接口是SPI、UART、I2C是时有效。该传输协议大大加快了子串口和CPU之间的数据交换。
8、支持独立子串口中断结构,包括:数据错误中断、FIFO触点中断、超时中断。
9、支持GPIO扩展和GPIO中断扩展。
附图说明
图1是本发明提供一种UART扩展芯片及实现方法的原理框图;
图2是本发明提供一种UART扩展芯片及实现方法在SPI总线模式下的连接框图;
图3是本发明提供一种UART扩展芯片及实现方法在SPI总线模式下写寄存器时序图;
图4是本发明提供一种UART扩展芯片及实现方法在SPI总线模式下读寄存器时序图;
图5是本发明提供一种UART扩展芯片及实现方法在SPI总线模式下写FIFO时序图;
图6是本发明提供一种UART扩展芯片及实现方法在SPI总线模式下读FIFO时序图;
图7是本发明提供一种UART扩展芯片及实现方法在UART模式下的连接框图;
图8是本发明提供一种UART扩展芯片及实现方法在UART模式下写寄存器时序图;
图9是本发明提供一种UART扩展芯片及实现方法在UART模式下写FIFO时序图;
图10是本发明提供一种UART扩展芯片及实现方法在UART模式下读寄存器时序图;
图11是本发明提供一种UART扩展芯片及实现方法在UART模式下读FIFO时序图;
图12是本发明提供一种UART扩展芯片及实现方法在I2C总线模式下连接框图;
图13是本发明提供一种UART扩展芯片及实现方法在I2C总线模式下写寄存器时序图;
图14是本发明提供一种UART扩展芯片及实现方法在I2C总线模式下读寄存器时序图;
图15是本发明提供一种UART扩展芯片及实现方法在I2C总线模式下写FIFO时序图;
图16是本发明提供一种UART扩展芯片及实现方法在I2C总线模式下读FIFO时序图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
实施例1
一种UART扩展芯片及实现方法,包括:
总线接口、主接口控制器、数据转换器、内部总线、模式控制接口、GPIO控制逻辑、时钟发生器、寄存器管理器、子串口收发器、子串口控制器和中断控制器;所述主接口控制器包括SPI控制逻辑、I2C控制逻辑、串口收发逻辑和并口总线控制逻辑,所述子串口收发器包括发送FIFO、接收FIFO、串口发送逻辑、串口接收逻辑和波特率发生器,所述子串口控制器包括子串口控制逻辑、子串口FIFO控制逻辑、485控制逻辑、流量控制逻辑、子串口控制逻辑。所述总线接口通常连接到嵌入式微处理器的SPI总线接口、I2C总线接口、串口、并口总线,在模式接口的控制下,把上述4中接口转换为1到4个串口,同时在非并口总线模式下,也能转换为多位GPIO。
所述总线接口一端连接到主接口控制器,另外一端通常连接到嵌入式微处理器的相应总线上。
所述主接口控制器包括SPI控制逻辑、I2C控制逻辑、串口收发逻辑和并口总线控制逻辑,在模式控制接口的控制下,完成芯片和嵌入式微处理器信息交换。
所述数据转换器连接到主接口控制器和内部总线。把主接口控制器收到的数据转换为特殊的格式,并存入相应的芯片寄存器,实现相应的操作。
所述内部总线为芯片内部数据交换的一个通道。
所述GPIO控制逻辑在非并口模式下有效,通过相应寄存器来控制8个GPIO。
所述时钟发生器为芯片提供统一的时钟信号。
所述子串口收发器包括发送FIFO、接收FIFO、串口发送逻辑、串口接收逻辑和波特率发生器;且每个子串口都有独立的子串口收发器。
所述子串口控制器包括子串口控制逻辑、子串口FIFO控制逻辑、485控制逻辑、流量控制逻辑、子串口控制逻辑,且每个子串口都有独立的子串口控制器。
所述中断控制器控制芯片的中断触发与产生中断信号及中断信号的检测。
所述寄存器管理器,管理芯片所有的内部寄存器,芯片内部寄存器分为全局寄存器、页寄存器、子串口寄存器;其中页寄存器和子串口寄存器为每个子串口独立所有。
实施例2
一种UART扩展芯片及实现方法,所述寄存器管理器,管理芯片所有的内部寄存器,芯片内部寄存器分为全局寄存器、页寄存器、子串口寄存器三类;其中页寄存器和子串口寄存器为每个子串口独立所有。
所述全局寄存器包括全局子串口使能寄存器GENA、全局子串口复位寄存器GRST、全局主串口控制寄存器GMUT、全局中断寄存器GIER、全局中断标志寄存器GIFR、全局GPIO中断标志寄存器GPINT、全局GPIO中断使能寄存器GPIEN、全局GPIO方向寄存器GPDIR、全局GPIO中断模式寄存器高字节GPIM1、全局GPIO中断模式寄存器低字节GPIM0、全局GPIO数据寄存器GPDAT。全局寄存器的地址为6位,分别依次为000000、000001、000010、010000、010001、010010、100000、100001、100010、110000、110001。
具体见下表
GENA全局控制寄存器:(000000)
GRST全局子串口复位寄存器:(000001)
GMUT全局主串口控制寄存器:(000010)
GIER 全局中断寄存器:(010000)
GIFR 全局中断标志寄存器:(010001)
GPINT 全局GPIO中断标志寄存器:(010010)
GPIEN 全局GPIO中断使能寄存器:(100000)
GPDIR 全局GPIO方向寄存器:(100001)
注意:仅当作为输入引脚功能的时候,中断才有效
GPIM1 全局GPIO中断模式寄存器高字节:(100010)
GPIM0 全局GPIO中断模式寄存器低字节:(110000)
GPDAT 全局GPIO数据寄存器:(110001)
位 | 复位值 | 功能描述 | 类型 |
Bit7 -- 0 | xxxxxxxx | 只有当主接口位UART/SPI/IIC时,可通过该寄存器访问GPIO7--- GPIO0引脚 | W/R |
所述页寄存器包括子串口页控制寄存器SPAGE,子串口页寄存器的地址为XX0011,其中XX为00、01、10、11中的一个,表示不同的子串口;子串口页控制寄存器SPAGE的值只能是0或者1;0表示在第0页,1表示在第一页;
SPAGE 子串口页控制寄存器:(0011)
所述子串口寄存器分布在不同的页上,通过子串口页控制寄存器SPAGE来控制,其中在第0页上的寄存器包括子串口使能寄存器SCR、子串口配置寄存器LCR、子串口FIFO控制寄存器FCR、子串口中断使能寄存器SIER、子串口中断标志寄存器SIFR、子串口发送FIFO计数寄存器TFCNT、子串口接收FIFO计数寄存器RFCNT、子串口FIFO状态寄存器FSR、子串口接收状态寄存器LSR、子串口FIFO数据寄存器FDAT、子串口流量控制寄存器FWCR、子串口RS485控制寄存器RS485,这些寄存器的地址为XX0000到XX1111,其中XX为00、01、10、11表示不同的子串口;在第1页上的寄存器包括子串口波特率配置寄存器高字节BAUD1、子串口波特率配置寄存器低字节BAUD0、子串口波特率配置寄存器小数部分PRES、子串口接收FIFO中断触发点配置寄存器RFTL、子串口发送FIFO中断触发点配置寄存器TFTL、子串口FIFO流控触发点配置寄存器高字节FWTH、子串口FIFO流控触发点配置寄存器低字节FWTL、子串口XON1寄存器XON1、子串口XOFF1寄存器XOFF1、RS485地址寄存器SADR、RS485地址使能寄存器SAEN、RS485RTS控制寄存器RTSDLY,这些寄存器的地址为XX0000到XX1111,其中XX为00、01、10、11表示不同的子串口;
具体见下表
SCR 子串口控制寄存器:(PAGE0:XX0100)
LCR 子串口配置寄存器:(PAGE0:XX0101)
FCR 子串口FIFO控制寄存器:(PAGE0:XX0110)
SIER 子串口中断使能寄存器:(PAGE0:XX0111)
SIFR 子串口中断标志寄存器:(PAGE0:XX1000)
TFCNT子串口发送FIFO计数寄存器:(PAGE0:XX1001)
位 | 复位值 | 功能描述 | 类型 |
Bit7 -- 0 | 00000000 | 子串口发送FIFO中的数据个数 | R |
RFCNT子串口接收FIFO计数寄存器:(PAGE0:XX1010)
位 | 复位值 | 功能描述 | 类型 |
Bit7 -- 0 | 00000000 | 子串口接收FIFO中的数据个数 | R |
FSR 子串口FIFO状态寄存器:(PAGE0:XX0111)
LSR 子串口接收状态寄存器:(PAGE0:XX0111)
FDAT 子串口FIFO数据寄存器:(PAGE0:XX 1001)
FWCR 子串口流量控制寄存器:(PAGE0:XX1110)
RS485 子串口485控制寄存器:(PAGE0:XX1111)
BAUD1子串口波特率配置寄存器高字节:(PAGE1:XX0100)
位 | 复位值 | 功能描述 | 类型 |
Bit7 --- 0 | 00000000 | BAUD[15:8] 子串口波特率配置寄存器高字节 | W/R |
BAUD0子串口波特率配置寄存器高字节:(PAGE1:XX0101)
位 | 复位值 | 功能描述 | 类型 |
Bit7 --- 0 | 00000000 | BAUD[7:0] 子串口波特率配置寄存器高字节 | W/R |
PRES子串口波特率配置寄存器小数部分:(PAGE1:XX0110)
位 | 复位值 | 功能描述 | 类型 |
Bit7 --- 4 | 0000 | RSV | R |
Bit3 --- 0 | 0000 | PRES[3:0] | W/R |
RFTL子串口接收FIFO触发中断寄存器:(PAGE1:XX0111)
位 | 复位值 | 功能描述 | 类型 |
Bit7 --- 0 | 00000000 | 接收FIFO触点控制 | W/R |
TFTL子串口发送FIFO触发中断寄存器:(PAGE1:XX1000)
位 | 复位值 | 功能描述 | 类型 |
Bit7 --- 0 | 00000000 | 发送FIFO触点控制 | W/R |
FWTH子串口FIFO流量触发寄存器高字节:(PAGE1:XX1001)
位 | 复位值 | 功能描述 | 类型 |
Bit7 --- 0 | 00000000 | 流量控制触点设置高字节 | W/R |
FWTL子串口FIFO流量触发寄存器低字节:(PAGE1:XX1010)
位 | 复位值 | 功能描述 | 类型 |
Bit7 --- 0 | 00000000 | 流量控制触点设置低字节 | W/R |
XON1子串口XON1寄存器:(PAGE1:XX1011)
位 | 复位值 | 功能描述 | 类型 |
Bit7 --- 0 | 00000000 | XON特殊字符寄存器 | W/R |
XOFF1子串口XOFF1寄存器:(PAGE1:XX1100)
位 | 复位值 | 功能描述 | 类型 |
Bit7 --- 0 | 00000000 | XOFF特殊字符寄存器 | W/R |
SADR RS485地址寄存器:(PAGE1:XX1101)
位 | 复位值 | 功能描述 | 类型 |
Bit7 --- 0 | 00000000 | RS485地址 | W/R |
SAEN RS485地址使能寄存器:(PAGE1:XX1110)
位 | 复位值 | 功能描述 | 类型 |
Bit7 --- 0 | 00000000 | RS485地址使能。(RS485网络地址为SADR&SAEN) | W/R |
RTSDLY RS485 RTS控制寄存器:(PAGE1:XX1111)
位 | 复位值 | 功能描述 | 类型 |
Bit7 --- 0 | 00000000 | RTS输出延时控制(N个字节输出的时间,N为该寄存器的值) | W/R |
实施案例3
本发明中的芯片支持GPIO扩展和GPIO中断控制。主接口在非并口模式下,可以实现扩展8个GPIO或者8个GPIO中断接口。扩展出来的8个GPIO可以通过寄存器GPDIR来控制GPIO的输入输出,其次可以通过寄存器GPDAT来控制8个GPIO。扩展出来的8个GPIO中断可以通过寄存器GPINT、GPIEN、GPINM1、GPIM0来设置或者控制。
实施案例4
本发明中的芯片支持每个子串口独立自动休眠和自动唤醒模式。当子串口SCR.SLEEPEN=1 、接收FIFO和发送FIFO要为空、RX上没有数据接收和TX上没有数据发、子串口没有任何中断,当满足上诉条件,并保持以上状态4个Byte的时间后,子串口进入休眠模式,子串口时钟自动关闭,以降低功耗。此时通过读取GRST来判断子串口是否进入sleep状态。
当子串口处于休眠状态后,如果RX上开始有数据接收、向子串口发送FIFO写数据、CTS引脚电平变化都会唤醒处于休眠中的子串口。
当子串口在休眠状态的时候,如果发生下列事件:RX上开始接收数据 、向子串口发送FIFO写数据、CTS引脚电平变化,子串口被唤醒,进入正常状态。
实施案例5
本发明中支持单独对子串口的控制,通过寄存器GENA可以控制子串口的时钟,从而控制子串口的工作状态。其次每个子串口都有独立的寄存器组,用于控制子串口工作模式、子串口速率、中断设置、数据读写等。
实施案例6
在本发明所述的芯片中,所述主接口包括SPI控制逻辑、串口收发逻辑、并口总线控制逻辑、I2C控制逻辑、数据转换器;所述四种总线接口的工作原理和流程如下所述。
1、SPI接口模式工作原理
SPI与主机的连接如图2所示。
所示SPI接口包括如下四个信号:
MOSI:SPI数据输入
MISO:SPI数据输出
SCLK:SPI串行时钟
SSEL:SPI片选(从属选择)
SPI接口的操作时序
本设计的SPI接口工作在从机模式下,支持SPI模式0标准。为实现主机和本设计兼容,在主机端需要设置CPOL=0,CPHA=0.
SPI接口写寄存器的操作时序如图3所示
SPI接口读寄存器的操作时序如图4所示
SPI接口写FIFO的操作时序如图5所示
SPI接口读FIFO的操作时序如图6所示
为实现SPI总线扩展串口操作,本设计的SPI主机采用如下协议
SPI写寄存器协议:
SPI读寄存器协议:
SPI写FIFO:
SPI读FIFO:
说明:
C1 C0:子串口通道号 00~11分别对应子串口1到子串口4
A3-A0:子串口寄存器地址
D7t…D0t:8位数据字节
2、UART接口操作模式工作原理
UART接口与主机的连接如图7所示.
当本设计的主接口位UART时,仅需要RX,TX连接主机,IRQ引脚为中断输出引脚。采用标准的UART协议进行通信。该设计带有波特率自适应功能,上电后复位后,主机只需要向主接口发送0x55用来确定主机的波特率,然后实现双方通信。
写操作分为两种,一种是写寄存器,具体操作方式是:先写一个命令字节然后再发送一个数据,具体时序图如图7所示;第二种是写FIFO,具体操作方式是:先写一个控制字节,然后再写多个数据。具体时序如图8所示。
读操作也分为两种,第一种是读寄存器,具体操作方式是:先写一个命令字节然后再接收一个数据字节,具体时序如图9所示;第二种是读FIFO,具体操作方式是:先写一个控制字节,然后再接收多个数据。如图10所示。
主UART通信的传输协议描述如下表示:
写寄存器:
写FIFO:(多字节写入)
读寄存器:
读FIFO:(多字节读取)
说明:
C1,C0:子串口通道号, 00~11分别对应子串口1到子串口4。
A3,A2,A1,A0:子串口寄存器地址;
N3,N2,N1,N0:写入/读取FIFO的数据字节个数;当其为0000时,表明后接1个数据字节;当其为1111时,表明后接16个数据字节;
向子串口读/写数据有两种方法:
读/写寄存器方式,对子串口FIFO寄存器FDAT(1111)进行读/写操作,一次只能读/写一个字节;
读/写FIFO方式,对接收/发送FIFO直接进行读/写操作,一次最多可以读写16个连续数据
3、并行8位总线接口模式工作原理图
本设计方案支持8位并行总线与主机连接,在8位总线模式下的传输协议如下:
并行8位总线传输协议描述:
写寄存器:
读寄存器:
说明:
C1,C0:子串口通道号,00~11分别对应子串口1到子串口4
A3,A2,A1,A0:子串口寄存器地址
4、I2C接口操作模式工作原理
I2C接口与主机的连接如图12所示.
I2C接口写寄存器的操作时序如图13所示
I2C接口读寄存器的操作时序如图14所示
I2C接口写FIFO的操作时序如图15所示
I2C接口读FIFO的操作时序如图16所示
I2C接口模块的操作协议如下:
当主机与芯片通信的时候,必须在紧跟地址字节后发送寄存器地址。这个寄存器地址是主机想在一个字节读写或者多字节读写的操作的内部地址字。这个寄存器地址字是8比特字节。与其它设备不同它没有方向位,与普通的数据字节相同,它必须跟一个应答位。一个写寄存器的操作如下图所示。起始位后面紧跟从机地址和一个读写的方向位,一个寄存器地址字节,一系列的数据字节和一个停止位。寄存器地址指示主机想操作的寄存器。紧跟着的数据会被写入指定的寄存器。一个寄存器的读操作与写操作类似。主机发送从机地址和读的方向信号,紧跟寄存器地址,芯片就会发送数据给主机。
I2C写寄存器协议:
I2C读寄存器协议:
I2C写FIFO协议:
I2C读FIFO协议:
说明:
C1,CO:子串口通道号,00~11分别对应子串口1到子串口4
A3,A2,A1,A0:子串口寄存器地址
P1,P0:为器件地址,这个由芯片引脚控制
S:起始位 P:停止位 A:应答位。
Claims (9)
1.一种多总线转换芯片,包括:
总线接口、主接口控制器、数据转换器、内部总线、模式控制接口、GPIO控制逻辑、时钟发生器、子串口收发器、子串口控制器和中断控制器;其特征在于:所述主接口转换逻辑包括SPI控制逻辑、I2C控制逻辑、串口收发逻辑和并口总线控制逻辑,所述子串口收发器包括256Byte发送FIFO、256Byte接收FIFO、串口发送逻辑、串口接收逻辑和波特率发生器,所述子串口控制器包括子串口控制逻辑、子串口FIFO控制逻辑、485控制逻辑、流量控制逻辑、子串口控制逻辑;所述总线接口通常连接到嵌入式微处理器的SPI总线接口、I2C总线接口、串口、并口总线,在模式接口的控制下,把上述4中接口转换为1到4个串口,同时在非并口总线模式下,也能转换为8位GPIO。
2.根据权利要求1所述,一种多总线转换芯片其特征在于所述寄存器管理器,管理芯片所有的内部寄存器,芯片内部寄存器分为全局寄存器、页寄存器、子串口寄存器;其中页寄存器和子串口寄存器为每个子串口独立所有。
3.根据权利要求2所述,一种多总线转换芯片其特征在于所述全局寄存器包括全局子串口使能寄存器GENA、全局子串口复位寄存器GRST、全局主串口控制寄存器GMUT、全局中断寄存器GIER、全局中断标志寄存器GIFR、全局GPIO中断标志寄存器GPINT、全局GPIO中断使能寄存器GPIEN、全局GPIO方向寄存器GPDIR、全局GPIO中断模式寄存器高字节GPIM1、全局GPIO中断模式寄存器低字节GPIM0、全局GPIO数据寄存器GPDAT;全局寄存器的地址为6位,分别依次为000000、000001、000010、010000、010001、010010、100000、100001、100010、110000、110001。
4.根据权利要求2所述,一种多总线转换芯片其特征在于所述页寄存器包括子串口页控制寄存器SPAGE,子串口页寄存器的地址为XX0011,其中XX为00、01、10、11中的一个,表示不同的子串口;子串口页控制寄存器SPAGE的值只能是0或者1;0表示在第0页,1表示在第一页。
5.根据权利要求2所述,一种多总线转换芯片其特征在于所述子串口寄存器分布在不同的页上,通过子串口页控制寄存器SPAGE来控制,其中在第0页上的寄存器包括子串口使能寄存器SCR、子串口配置寄存器LCR、子串口FIFO控制寄存器FCR、子串口中断使能寄存器SIER、子串口中断标志寄存器SIFR、子串口发送FIFO计数寄存器TFCNT、子串口接收FIFO计数寄存器RFCNT、子串口FIFO状态寄存器FSR、子串口接收状态寄存器LSR、子串口FIFO数据寄存器FDAT、子串口流量控制寄存器FWCR、子串口RS485控制寄存器RS485,这些寄存器的地址为XX0000到XX1111,其中XX为00、01、10、11表示不同的子串口;在第1页上的寄存器包括子串口波特率配置寄存器高字节BAUD1、子串口波特率配置寄存器低字节BAUD0、子串口波特率配置寄存器小数部分PRES、子串口接收FIFO中断触发点配置寄存器RFTL、子串口发送FIFO中断触发点配置寄存器TFTL、子串口FIFO流控触发点配置寄存器高字节FWTH、子串口FIFO流控触发点配置寄存器低字节FWTL、子串口XON1寄存器XON1、子串口XOFF1寄存器XOFF1、RS485地址寄存器SADR、RS485地址使能寄存器SAEN、RS485 RTS控制寄存器RTSDLY,这些寄存器的地址为XX0000到XX1111,其中XX为00、01、10、11表示不同的子串口。
6.根据权利要求1所述主接口控制器中的串口收发逻辑的波特率设置采用的是波特率自适应技术。
7.根据权利要求1所述数据转换器主要用来解析主接口的数据也就是对主接口的传输协议进行规范;包括在主接口SPI接口下的读寄存器时序、写寄存器时序、读FIFO时序和写FIFO时序,在主接口串口接口模式下的读读寄存器时序、写寄存器时序、读FIFO时序和写FIFO时序,在主接口I2C接口模式下的读寄存器时序、写寄存器时序、读FIFO时序和写FIFO时序,在主接口并口模式下的读寄存器时序、写寄存器时序。
8.根据权利要求1所述,中断控制器包括子串口数据错误中断、子串口触点中断、子串口超时中断和GPIO中断。
9.根据权利要求1所述,GPIO控制逻辑在主接口为非并口模式下有效,把8位并口扩展为8个通用GPIO,并控制8个GPIO的输入输出和数据收发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710167965.3A CN106951381A (zh) | 2017-03-21 | 2017-03-21 | 一种uart扩展芯片及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710167965.3A CN106951381A (zh) | 2017-03-21 | 2017-03-21 | 一种uart扩展芯片及实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106951381A true CN106951381A (zh) | 2017-07-14 |
Family
ID=59472153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710167965.3A Pending CN106951381A (zh) | 2017-03-21 | 2017-03-21 | 一种uart扩展芯片及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951381A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304285A (zh) * | 2018-01-15 | 2018-07-20 | 航天科工防御技术研究试验中心 | 一种多端口通用异步收发器测试方法 |
CN110362524A (zh) * | 2018-04-11 | 2019-10-22 | 杭州海康威视数字技术股份有限公司 | 时序信号生成方法、装置、逻辑电路板及存储介质 |
CN111209234A (zh) * | 2019-12-24 | 2020-05-29 | 中国船舶重工集团公司第七一七研究所 | 一种基于Avalon-MM总线接口的多串口IP核 |
CN111723033A (zh) * | 2019-03-18 | 2020-09-29 | 华大半导体有限公司 | 一种多功能串行通信接口设备及其方法 |
CN109831434B (zh) * | 2019-01-31 | 2021-03-02 | 西安微电子技术研究所 | 一种基于自定义交换策略的多协议通信交换控制器 |
CN113448898A (zh) * | 2021-08-30 | 2021-09-28 | 成都万创科技股份有限公司 | 一种使用uart实现多功能低速io的设备和方法 |
CN115033520A (zh) * | 2022-07-11 | 2022-09-09 | 深圳市金科泰通信设备有限公司 | Iic数据传输方法、装置、单片机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1292362C (zh) * | 2004-08-13 | 2006-12-27 | 成都国腾微电子有限公司 | 串口扩展芯片 |
CN101127023A (zh) * | 2006-08-17 | 2008-02-20 | 四川维肯电子有限公司 | 一种多总线接口的通用异步串口扩展芯片 |
-
2017
- 2017-03-21 CN CN201710167965.3A patent/CN106951381A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1292362C (zh) * | 2004-08-13 | 2006-12-27 | 成都国腾微电子有限公司 | 串口扩展芯片 |
CN101127023A (zh) * | 2006-08-17 | 2008-02-20 | 四川维肯电子有限公司 | 一种多总线接口的通用异步串口扩展芯片 |
Non-Patent Citations (2)
Title |
---|
VIKEN: "VK3368数据手册 Ver0.12", 《VIKEN》 * |
WKMIC: "WK2204数据手册 Ver1.01", 《为开微电子》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304285A (zh) * | 2018-01-15 | 2018-07-20 | 航天科工防御技术研究试验中心 | 一种多端口通用异步收发器测试方法 |
CN110362524A (zh) * | 2018-04-11 | 2019-10-22 | 杭州海康威视数字技术股份有限公司 | 时序信号生成方法、装置、逻辑电路板及存储介质 |
CN110362524B (zh) * | 2018-04-11 | 2021-04-09 | 杭州海康威视数字技术股份有限公司 | 时序信号生成方法、装置、逻辑电路板及存储介质 |
CN109831434B (zh) * | 2019-01-31 | 2021-03-02 | 西安微电子技术研究所 | 一种基于自定义交换策略的多协议通信交换控制器 |
CN111723033A (zh) * | 2019-03-18 | 2020-09-29 | 华大半导体有限公司 | 一种多功能串行通信接口设备及其方法 |
CN111209234A (zh) * | 2019-12-24 | 2020-05-29 | 中国船舶重工集团公司第七一七研究所 | 一种基于Avalon-MM总线接口的多串口IP核 |
CN113448898A (zh) * | 2021-08-30 | 2021-09-28 | 成都万创科技股份有限公司 | 一种使用uart实现多功能低速io的设备和方法 |
CN115033520A (zh) * | 2022-07-11 | 2022-09-09 | 深圳市金科泰通信设备有限公司 | Iic数据传输方法、装置、单片机设备及存储介质 |
CN115033520B (zh) * | 2022-07-11 | 2023-08-08 | 深圳市金科泰通信设备有限公司 | Iic数据传输方法、装置、单片机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951381A (zh) | 一种uart扩展芯片及实现方法 | |
CN101901200B (zh) | 一种基于双AHB Master接口的片上DMA控制器实现方法 | |
CN104794088B (zh) | 一种多接口总线转换扩展芯片设计 | |
US9575552B2 (en) | Device, method and system for operation of a low power PHY with a PCIe protocol stack | |
CN104915303B (zh) | 基于PXIe总线的高速数字I/O系统 | |
CN109828941A (zh) | Axi2wb总线桥实现方法、装置、设备及存储介质 | |
CN101087235A (zh) | 一种基于fpga的多功能通信接口转换设备和方法 | |
CN204423111U (zh) | 一种应用于智能电网集中器中的片上系统 | |
CN102023956A (zh) | 集成电路芯片中串行外设从器件接口结构及数据读写方法 | |
CN101901202B (zh) | 一种ahb总线设备跨时钟域访问apb总线设备的电路 | |
CN104714907B (zh) | 一种pci总线转换为isa和apb总线设计方法 | |
CN101162448A (zh) | 一种usb高速数据隧道的硬件传输方法 | |
CN104599227A (zh) | 用于高速ccd数据存储的ddr3仲裁控制器及方法 | |
CN101436171B (zh) | 模块化通信控制系统 | |
CN203191885U (zh) | 一种基于双路龙芯3b cpu的服务器主板 | |
CN100395696C (zh) | 静态存储器接口装置及其数据传输方法 | |
CN105786741B (zh) | 一种soc高速低功耗总线及转换方法 | |
CN113489594B (zh) | 基于fpga模块的pcie实时网卡 | |
CN105281433A (zh) | 一种配电终端通信系统 | |
CN103377170A (zh) | 异构处理器间spi高速双向对等数据通信系统 | |
CN102750254B (zh) | 高速高带宽ahb总线到低速低带宽ahb总线的双向转换桥 | |
CN202583967U (zh) | 一种基于mpc5200b处理器的lbe总线单板计算机 | |
CN1879096A (zh) | 从AMBAAHB总线协议到i960-like总线协议的总线接口转换装置 | |
EP1222516B1 (en) | Power management method for a computer system having a hub interface architecture | |
CN103226531A (zh) | 一种双端口外设配置接口电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170714 |
|
WD01 | Invention patent application deemed withdrawn after publication |