||
3.1 基于GM8123/25系列芯片的串行口扩展
GM8123/25系列串口扩展芯片可以全硬件实现串口扩展如下图1所示,通讯格式可设置,并与标准串口通讯格式兼容。GM8125可扩展5个标准串口,通过外部引脚选择串口扩展模式:单通道工作模式和多通道工作模式。
图1 GM8125与主机的连接图
通过串行口和控制引脚相互配合可对芯片进行工作方式设置,引脚MS为0、且STADD2~STADD0为000时写命令字,引脚MS为1、 STADD2~STADD0为000时读命令字。进行工作方式设置时,芯片的帧格式和母串口工作波特率与上一次进行数据通讯时一致;而复位后的帧格式为 11bit,母串口波特率为7200bps。
3.2 基于SP2338的串行口扩展
图2 SP2338与主机的连接图
SP2338是采用低功耗CMOS 工艺设计的通用异步串行口扩展芯片,它可轻松将主机原有的1个串行口扩展成3 个全新的全双工串行口。
SP2338适用于1个起始位、8个数据位、1个停止位的多串口系统,也就是说其帧格式是不可编程的。主机通过改变ADRI1、ADRI0地址线状态的 方式选择3个子串口中的任意一个。地址11用于执行SP2338 芯片本身的复位指令。未使用的输入端口,如RX0、RX1、RX2等必须连接到VCC;未使用的输出端口,如TX0、TX1、TX2等必须悬空;未使用的ADRI0、ADRI1必须连接到GND。
主机收发数据时序为:主机TX3接收到一个字节后应立即读取SP2338的输出地址ADRO0、ADRO1的状态,判断接收到的数据来自哪个子串口;主机发送数据时,首先通过ADRI0、ADRI1选择某一个子串口,再向TX3写将发送的数据。
4.1 现有技术方案的缺点
基于GM8125和SP2328的串口扩展串口方案,与本方案比较接近,从GM8125和SP2328的使用中,我们不难看出在该方案中存在如下一些不足的地方:
1、 通过上面几种方案的对比,我们可以很清楚的知道,从电路上来看基于GM8125和SP2328的串口扩展串口方案都是通过地址控制线来确定子串口的,这样的话,扩展的串口越多,那么地址控制总线也必须增加,可能会导致系统资源的严重不足。
2、 操作复杂,在发送和接收数据的时候除了要操作uart,还需要操作不同的地址控制线。
3、 扩展后的功能单一。仅仅只能当作最基本的uart,数据格式单一,通信波特率可调性差,主串口和子串口只能以固定的波特率进行通信。
4.2 本申请提案需要解决的技术问题
1、不再使用地址控制线,尽量减少对系统IO资源的占用.
2、简化操作,只需要通过uart发送数据,就可以控制芯片的数据发送和接收,不需要其他地址线和控制线,只需要操作相关寄存器,就能完成数据收发。还有可靠的中断系统,通信的实时性比较好。
3、仅仅只需要一个标准3线串口就可以扩展出4个多功能串口,除了能实现基本的串口通信的同时,还能实现485自动数据收发和网络地址自动识别,流量控制.而且还扩展出了8个通用GPIO和MODEM控制接口等诸多扩展功能。
5.1基于VK3xxx串口扩展的原理图
图3 vk3XXX串口扩展图
从图3中我们可以看见本设计的电路主要分为2个部分,其一是MCU和VK3xxx的连接电路,其三为VK3xxx的外围电路。
图4 MCU和VK3xxx的连接电路
从图4可以看出,MCU和VK3xxx的连接电路是比较简单的,实际就是MCU的普通串口的TX,RX分别连接到VK3xxx的MRX,MTX上,最后是VK3xxx的中断信号引脚IRQ连接到MCU的外部中断引脚INT0上。
5.1.2 VK3xxx的外围电路
图5 VK3xxx的外围电路
从图4可以看出VK3xxx的外围电路主要是其扩展出来的功能接口,主要包括4个增强功能的uart,8位普通GPIO和modem接口。其中4个增强功能的的uart可以实现流量控制,458总线扩展,422总线扩展。
a、 M1,M0为模式选择为,当我们选用uart的时候,M1,M0都应为低电平。
b、 4引脚MRX和6引脚MTX为vk3366的主接口。其中MRX引脚应接到单片机串口的TX引脚,MTX引脚应接到单片机串口的RX引脚,实现单片与vk3366之间的通信。
c、 7到14引脚为8位并口引脚,既可以作为主接口8位并行总线使用,也可作为8个普通的GPIO使用,在本方案中,作为8位普通GPIO。
d、 TX1,RX1,RTS1,CTS1到TX4,RX4,RTS4,CTS4为扩展出来的4个增强功能的串口。每个子串口都能实现普通串口,485自动收发和带流量控制的串口。本方案当中子串口1实现的是带硬件流量控制的串口,外部连接的MAX232,实现电平的转化。子串口2到子串口4为普通的串口,通过MAX232电平转换以后,可以和RS232设备实现通信。子串口3实现的是485电路。外接RS485实现电平转化,用RTS3控制485的收发。
e、 DCD,DSR,RI,DTR为MODEM接口。
5.4 方案实施过程
5.4.1 基本配置
5.4.1.1 模式配置
具体配置图如下
图 6 模式配置图
Vk3xxx是一款多功能串口扩展芯片,如果要实现串口扩展串口,首先必须把芯片配置到串口扩展模式下,M0,M1是主接口选择引脚,当M0,M1=11时, 主接口为UART. 在主接口为UART时,IR为主口红外通信功能选择引脚,当IR=1时为红外通信模式,当IR=0时为普通UART通信模式;TR为转义字符传输功能引脚,当TR=1时选择有转义字符的串口扩展工作模式,当TR=0时选择没有转义字符的串口扩展工作模式;所以在该功能下IR=0,TR=0.
5.4.1.2 波特率配置
UART接口设备之间通信,要求通信的双方必须保持统一的通信速率,即通信双方必须保持波特率一致。Vk3xxx的波特率是由我们选择的外部时钟决定的,具体请看串口波特率设置表,复位以后芯片的默认波特率。本方案选择的3.6864M的晶振,默认波特率为9600bps,所以控制器串口的波特率也必
为9600.
5.4.2 发送数据过程
本方案数据传输方式不同于传统的串口扩展方式,本方案不再采用通过地址控制线的方式来决定数据传输的子串口通道。采用的是写寄存器的方式,即先写一个8位的控制字节,然后再写我们需要传输的数据字节。通常我们的控制字节包含的控制信息为读写信息,子串口选择信息,寄存器地址信息。这个控制字节的功能就相当于传统串口扩展芯片的地址控制线。
5.4.2.1 发送数据操作时序
写操作时,先向VK3xxx的MRX写入一个命令字节(Command Byte),随后写入相应的数据字节,其操作时序(无校验,禁止转义和红外模式)如图7所示:
图7 VK3xxx主接口写操作时序
5.4.2.2 数据传输过程
图8 数据发送过程示意图
当通过我们芯片发送数据时,都是先发送一个命令字节,然后根据具体命令的内容,控制寄存器会对后面的数据进行处理。如果第二个字节是一般的数据,那么控制寄存器会根据控制命令的内容把传输数据通过子串口发送出去,如果第二个字节是相关的操作字节,那么控制寄存器会进行相关的设置。
5.4.3 接收数据过程
5.4.3.1 接收数据操作时序
读操作时,先向VK3xxx的MRX写入命令字节,相应的数据字节从MTX读取,其操作时序(无校验,禁止转义和红外模式)如图7所示
5.4.3.1接收数据操作时序
5.4.3.3 数据传输过程示意图
图10 接收数据的过程示意图