ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:29.94KB ,
资源ID:22878817      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22878817.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(串口扩展uart扩展串口扩展485接口.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

串口扩展uart扩展串口扩展485接口.docx

1、串口扩展uart扩展串口扩展485接口 串口扩展方案基于VK3366的串口扩展串口方案二、技术领域电子信息通信工程三、 现有技术的技术方案3.1 软件模拟法:可根据串行通讯的传送格式,利用定时器和主机的I/O口来模拟串行通讯的时序,以达到扩展串口的目的。接收过程中需要检测起始位,这可以使用查询方 式或者在端口具有中断功能的主机中也可以使用端口的中断进行处理。接收和发送过程中,对定时的处理既可以使用查询方式也可以使用定时器中断方式。为了 确保数据的正确性,在接收过程中可以在检测异步传输的起始信号处加上一些防干扰处理,如果是无线传输系统,在接收每个位时可以采用多次采样。对于有线系统 来说,1次采样

2、就够了,软件模拟串口还是有它自身的一些不足,面临着采样速度比较慢,采样方式还是不如硬件采样方式准确,抗干扰能力也差很多。3.2 基于TL16C554的串行口扩展TL16C554是TI公司生产的4通道异步收发器集成芯片。对TL16C554串行通道的控制,是通过对控制寄存器LCR、IER、DLL、DLM、 MCR和FCR编程来实现的。这些控制字决定字符长度、停止位的个数、奇偶校验、波特率以及调制解调器接口。控制寄存器可以任意顺序写入,但是IER必须 最后一个写入,因为它控制中断使能,如果后面还需要调整数据格式,波特率这些就比较困难,操作也不够灵活。串行通道内的波特率发生器(BRG)允许时钟除以1至

3、65535之间的任意数,BRG根据其不同的三种通用频率中的一 种来决定标准波特率。3.3 基于GM8123/25系列芯片的串行口扩展GM8123/25系列串口扩展芯片可以全硬件实现串口扩展,通讯格式可设置,并与标准串口通讯格式兼容。GM8125可扩展5个标准串口,通过外部引脚选择串口扩展模式:单通道工作模式和多通道工作模式。单通道模式下,无需设置芯片的通讯格式,子串口和母串口以相同的波特率工作,同一时刻只允许一组子串口和母串口通讯,工作子串口由地址线选择。单通道工作模式适用于所有从机不需要同时通讯,并且通讯过程完 全由主机控制的系统。多通道模式下,各子串口波特率相同,允许所有子串口同时与母串口

4、通讯,母串口以子串口波特率的6倍工作。发送时由地址线选择用来发送 数据的子串口;接收时子串口能主动响应从机发送的数据,再由母串口发送给主机,同时由地址线返回接收到数据的子串口地址,主机在接收到子串口送来的数据 后,可以根据地址线的状态判断数据是由哪一个从机发送的。多通道工作模式下,在进行数据通讯前要对芯片进行工作方式设置,包括串口帧格式设置和通讯波特率设置。通过串行口和控制引脚相互配合可对芯片进行工作方式设置,引脚MS为0、且STADD2STADD0为000时写命令字,引脚MS为1、 STADD2STADD0为000时读命令字。进行工作方式设置时,芯片的帧格式和母串口工作波特率与上一次进行数据

5、通讯时一致;而复位后的帧格式为 11bit,母串口波特率为7200bps。显然这款芯片还是有其不足的地方:首先是需要发送和接收数据时的地址控制线,占用了较多的系统资源,对于资源比较紧张的控制器来说,这点是比较难也解决的;其次是发送数据和接收数据都必须去操作控制线,这样操作起来比较复杂,而且实时性也比较差些;再次是数据格式,波特率这些修改起来比较麻烦。 3.4 基于SP2338的串行口扩展SP2338是采用低功耗CMOS 工艺设计的通用异步串行口扩展芯片,它可轻松将主机原有的1个串行口扩展成3 个全新的全双工串行口。SP2338适用于1个起始位、8个数据位、1个停止位的多串口系统,也就是说其帧格

6、式是不可编程的。主机通过改变ADRI1、ADRI0地址线状态的 方式选择3个子串口中的任意一个,3个子串口的地址分别为00、01、10。地址11用于执行SP2338 芯片本身的复位指令0x35 或0xB5、睡 眠指令0x55或0xD5、延时指令0x00。向RX0RX3中的任意一个接收端口写任意数据即可将SP2338唤醒,但由于SP2338的唤醒时间需 要25ms左右,故用于芯片唤醒的数据将不会被主机接收。因此,可以先发送一个字节数据用于唤醒芯片,延时25ms后即可进行正常的数据传输。未使用的输入端口,如RX0、RX1、RX2等必须连接到VCC;未使用的输出端口,如TX0、TX1、TX2等必须悬

7、空;未使用的ADRI0、ADRI1必须连接到GND。主机收发数据时序为:主机TX3接收到一个字节后应立即读取SP2338的输出地址ADRO0、ADRO1的状态,判断接收到的数据来自哪个子串口;主机发送数据时,首先通过ADRI0、ADRI1选择某一个子串口,再向TX3写将发送的数据。 从对SP2338的操作来看,通过这款芯片来扩展串口,也有些不足的地方,首先,收发数据的时候,需要地址控制线,占用较多的系统资源;其次,数据格式比较单一,只支持一种数据格式。最后,对电路设计要求比较高,系统抗干扰能力比较差。四、现有技术的缺点及本申请提案要解决的技术问题4.1 基于GM8125的串口扩展方案 图1 G

8、M8125与主机的连接图基于GM8125的串口扩展串口方案,与本方案比较接近,从GM8125的使用中,我们不难看出在该方案中存在如下一些不足的地方:1、 需要占用的系资源较多,除了基本uart接口,还需要发送和接收地址控制线。2、 操作复杂,在发送和接收数据的时候除了要操作uart,还需要操作不同的地址控制线。3、 扩展后的功能单一。仅仅只能当作最基本的uart,数据格式单一,通信速率可调性差,主串口和子串口只能以固定的速率进行通信。4.2基于vk3366的串口扩展原理框图 图2 VK3366与主机的连接图1、 占用系统资源较少,最少只需要接收(MRX)和发送(MTX)端口。解决了单片机系统资

9、源紧张的问题。2、 操作简单,只需要通过uart发送数据,就可以控制芯片的数据发送和接收,不需要其他地址线和控制线,只需要操作相关寄存器,就能完成数据收发。还有可靠的中断系统,通信的实时性比较好。3、 仅仅只需要一个标准3线串口就可以扩展出4个多功能串口,除了能实现基本的串口通信的同时,还能实现485自动数据收发和网络地址自动识别,流量控制.而且还扩展出了8个通用GPIO和MODEM控制接口等诸多扩展功能。五、本申请提案的技术方案的详细阐述5.1基于VK3366串口扩展的原理框图 图3 VK3366串口扩展的原理框图5.2基于VK3366串口扩展的原理图图4 vk3366扩展的原理图5.3硬件

10、原图结构分析 从原理图我们可以看出,主要分为两个功能部分,一是主机部分,其二是vk3366及相关的扩展部分 主机电路主要包括:电源接口电路,复位电路,晶振电路5.3.2 VK3366串口扩展模块5.3.2 .1 VK3366的原理框图 图5 VK3366的原理框图5.3.2 .2 VK3366在串口扩展时的特点 当主接口为UART时,VK3366将一个标准3线异步串口(UART)扩展成为4个增强功能串口(UART)。主接口UART在数据传输时可以选择需要转义字符和不需要转义字符两种模式。此外,主接口的UART可以通过引脚配置为红外通信模式。每个子通道UART的波特率、字长、校验格式可以独立设置

11、,最高可以提供1Mbps的通信速率。每个子通道可以独立设置工作在IrDA红外通信、RS-485自动收发控制、9位网络地址自动识别、软件/硬件自动流量控制、广播接收等高级工作模式下。每个子通道具备收/发独立的16 BYTE FIFO,FIFO的中断为4级可编程条件触发点。提供一个子通道的调制解调器(MODEM)控制信号。5.3.2 .3 VK3366 使用说明 当主接口是采用串口方式的时候。对芯片的操作方式采用读写寄存器的方式,首先通过主串口发送一个控制字节,然后再发送或者接收一个操作数据字节。地址字节包含的信息为寄存器地址和读写控制位。操作数据字节一般为通信数据或者对寄存器的配置数据。 寄存器

12、列表表 1 全局寄存器列表寄存器地址3:0寄存器名称类型寄存器功能描述(00) 0000RSV无保留(00) 0001GCRR/W全局控制寄存器(00) 0010GMUCRR/W全局主串口控制寄存器(00) 0011GIRR/W全局中断寄存器(01) 0001GXOFFR/W全局XOFF字符寄存器(01) 0010GXONR/W全局XON字符寄存器(01) 0011GPIOR/W全局GPIO寄存器子串口寄存器11个,其排列为C1C0 REG3:0 ,高两位为子串口通道号,低4位为寄存器地址,按低4位的寄存器地址具体排列见表2:表2 子串口寄存器列表寄存器地址3:0寄存器名称类型寄存器功能描述(

13、C1,C0) 0101SADENR/W子串口网络地址使能寄存器(C1,C0) 0110SCTLRR/W子串口控制寄存器(C1,C0) 0111SCONRR/W子串口配置寄存器(C1,C0) 1000SFWCRR/W子串口流量控制寄存器(C1,C0) 1001SFOCRR/W子串口FIFO控制寄存器(C1,C0) 1010SADRR/W子串口自动识别地址寄存器(C1,C0) 1011SIERR/W子串口中断使能寄存器(C1,C0) 1100SIFRR子串口中断标志寄存器(C1,C0) 1101SSRR子串口状态寄存器(C1,C0) 1110SFSRRW子串口FIFO状态寄存器(C1,C0) 11

14、11SFDRRW子串口FIFO数据寄存器 操作时序写操作时,先向VK3366的RX写入一个命令字节(Command Byte),随后写入相应的数据字节,其操作时序(无校验,禁止转义和红外模式)如图6所示:图6 UART主接口写操作时序读操作时,先向VK3366的RX写入命令字节,相应的数据字节从TX读取,其操作时序(无校验,禁止转义和红外模式)如图7所示图7 UART主接口读操作时序 主UART通信传输协议描述: 写寄存器:分类控制字节 CMD1个数据字节 DB(下行)BIT7654321076543210TX10C1C0A3A2A1A0D7D6D5D4D3D2D1D0RX写FIFO:(多字节

15、写入)分类控制字节 CMDN3 N2 N1 N0个数据字节 DB(下行)BIT7654321076543210TX11C1C0N3N2N1N0D7D6D5D4D3D2D1D0RX 读寄存器:分类控制字节 CMD1个数据字节 DB(上行)BIT7654321076543210TX00 C1C0A3A2A1A0RXD7D6D5D4D3D2D1D0读FIFO:(多字节读取)分类控制字节 CMDN3 N2 N1 N0个数据字节 DB(上行)BIT7654321076543210TX01C1C0N3N2N1N0RXD7D6D5D4D3D2D1D0说明:C1,C0:子串口通道号, 0011分别对应子串口1

16、到子串口4。A3,A2,A1,A0:子串口寄存器地址;N3,N2,N1,N0:写入/读取FIFO的数据字节个数;当其为0000时,表明后接1个数据字节;当其为1111时,表明后接16个数据字节;5.4软件设计5.4.1 芯片初始话5.4.2 基于51系统操作vk3366的典型函数:/*/Function:通过串口发送1个字节的数据/输入:dat为发送的数据 /输出: 无/日期:/*void uart_sendByte(unsigned char dat) SBUF=dat; while(!TI); /waite for data to transmit completely SCON &= 0

17、xFD; /*/Function:串口接收1个字节的数据/输入:无/返回:rec 函数返回读取到的数据/日期:/*unsigned char uart_recByte(void) unsigned char rec=0; while(!RI); /waite to recieve data in SBUF0 rec=SBUF; SCON &= 0xFE; return rec;/*/Function:读取寄存器值/输入:port为子串口的路数,reg为寄存器的地址/输出: 返回值是读取的寄存器的值/日期:/*unsigned char read_reg(unsigned char port,u

18、nsigned char reg) uart_sendByte(port-1)4)+reg); /写寄存器地址 return uart_recByte();/接收返回数据/*/Function:往寄存器里面写数据/输入:port为子串口的路数,reg为寄存器的地址 ,dat 为写入寄存器的值/返回: 无/日期:/*void write_reg(unsigned char port,unsigned char reg,unsigned char dat) uart_sendByte(0x80+(port-1)4)+reg); /写寄存器地址 uart_sendByte(dat);/写数据/Fun

19、ction:VK3366初始化函数/输入:port为子串口的路数,reg为寄存器的地址 ,dat 为写入寄存器的值/返回: 无/日期:/*void config_vkxx() write_reg(1,SCTLR,0X38);/使能子串口,设置子串口的波特率(默认值),具体参看数据手册中,子串口波特率设置 write_reg(2,SCTLR,0X38); write_reg(3,SCTLR,0X38); write_reg(4,SCTLR,0X38);/* write_reg(1,SFOCR,0XFF);/FIFO设置,清空发送接收FIFO中的数据, write_reg(2,SFOCR,0XFF

20、); write_reg(3,SFOCR,0XFF); write_reg(4,SFOCR,0XFF); write_reg(1,SFOCR,0XFC); /使能发送接收FIFO write_reg(2,SFOCR,0XFC); write_reg(3,SFOCR,0XFC); write_reg(4,SFOCR,0XFC);/* while(read_reg(1,SFSR) read_reg(1,SFDR); while(read_reg(2,SFSR) read_reg(2,SFDR); while(read_reg(3,SFSR) read_reg(3,SFDR); while(read

21、_reg(4,SFSR) read_reg(4,SFDR);/查看发送接收FIFO中是否有数据,如果有则把FIFO中的数据读出来,/使发送接收FIFO中的数据清空/*5.5 各种功能模块的实现:5.5.1 基本串口的实现 向4个子串口发送数据write_reg(1,SFDR,m); write_reg(2,SFDR,m); write_reg(3,SFDR,m); write_reg(4,SFDR,m);从4个子串口接收数据dat1=read_reg(1,SFDR);dat2=read_reg(2,SFDR);dat3=read_reg(3,SFDR);dat4=read_reg(4,SFDR

22、);UART硬件流量控制示意图:图8 硬件流量控制示意图在硬件自动流量控制模式下,一旦数据接收端接收FIFO中数据的个数达到设定的触发点时,为防止接收FIFO溢出,接收端将自动拉高RTS,数据发送端的相应的CTS变高,数据接收端检测到CTS变高后,将发送完当前字节后即暂停数据发送。发送端暂停数据发送后,接收端的主机接口读取接收FIFO中的数据以释放接收FIFO空间,当接收FIFO中数据的个数减少到继续发送触发点时,接收端的CTS自动变为低电平,发送端相应的RTS变为低电平,发送端检测到RTS为低后,将恢复数据发送。下图显示了硬件流量控制下的时序操作(硬件流量控制下RTS和CTS的操作与MODE

23、M模式下的RTS和CTS操作一样): 图9 硬件流量操作时序图5.5.3 扩展485接口 图10 RS485连接图操作说明:在RS485模式下,流量控制将被禁止。RTS信号用于控制RS485收发器的自动收发控制。只有在发送数据时,RTS才为高,其它情况下,RTS都保持低。具体操作步骤:A、 我们设置子串口工作在普通的232模式例:write_reg(1,SCTLR,0X38); /在8位数据485模式时 ,应使用普通的232模式B、 我们配置RTS信号为手动硬件流模式例:write_reg(1,SFWCR,0X0E);/ 设置为硬件手动控制模式 ,为手动设置RTS信号做准备C、 发送数据之前先

24、拉高RTS信号;例:write_reg(1,SIFR,0X08);/手动设置RTS信号,使RTS保持高电平,控制sp485转换芯片的RE和DE控制。为数据发送做准备。 write_reg(1,SFDR,0x11);/拉高RTS信号后,发送数据0x11D、 数据发送完毕后,要及时拉低RTS信号,是芯片处于接收状态例:write_reg(1,SIFR,0X00); /数据发送完后,拉低RTS引脚电平经过上面的几步就完成了数据的收发。 在主接口为串口UART模式时,可以实现8位GPIO的扩展。其操作方式很简单,通过读写GPIO寄存器就可以实现8位io口的操作了。具体的操作见下 write_reg(3

25、,GPIO,0X38);/写操作 data=read_reg(1,GPIO);/读操作5.5.5 MODEM扩展接口 MODEM控制信号由DCD,DTR,DSR,RI,RTS和CTS组成。在这些信号中,DTR和RTS为输出信号,其它的信号均为输入信号。RTS和CTS的操作和硬件流量控制模式下操作一样。因此,在MODEM控制中,需要将子串口设置为RS232模式,然后选择适当的流量控制模式。DCD,DTR,DSR和RI由相应的寄存器控制。MODEM控制信号同时也可以作为GPIO使用,输入信号发生改变时(从高到低或从低到高),将产生相应的中断。六、本申请提案的关键点和欲保护点1、串口扩展串口方式占用

26、系统资源少,仅仅只需要标准的串口2、扩展成了增强功能的串口,增强的功能包括:每个子通道UART的波特率、字长、校验格式可以独立设置,最高可以提供1Mbps的通信速率。可以独立设置工作在IrDA红外通信、RS-485自动收发控制、9位网络地址自动识别、软件/硬件自动流量控制、广播接收等高级工作模式下。3、操作灵活、简单,完全采用读写寄存器的方式对芯片进行操作。七、与第三条中最接近的现有技术相比,本申请提案有何技术优点1、占用主机系统资源小,只需要标准3线串口,就能实现增强功能串口扩展,不需要地址控制线和读写控制线,大大节省了系统资源。2、通过标准串口扩展出来的资源丰富,除了增强功能的串口外,还有MODEM和GPIO.在一定程度上缓解了系统资源紧张的问题。3、操作简单,灵活。不再需要操作地址控制线,只需要通过串口发送相应的控制字节即可。八、其他有助于理解本申请提案的技术资料 VK3366数据手册

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1