基于SPI的多串口扩展方案
- 格式:doc
- 大小:253.50 KB
- 文档页数:7
基于AVR_SPI接口的MCP23S17扩展16位通用IO端口设计MCP23S17是一种基于SPI接口的16位扩展IO芯片,可以通过SPI协议与主控芯片(如AVR)进行通信,以扩展IO端口的数量。
本文将详细介绍基于AVR_SPI接口的MCP23S17扩展16位通用IO端口的设计。
一、MCP23S17简介MCP23S17是Microchip公司生产的一款16位通用IO扩展芯片,通过与主控芯片(如AVR)进行SPI通信,可以实现16位IO口的扩展。
MCP23S17可以通过SPI总线配置其工作模式,包括输入/输出模式、上拉电阻使能、中断使能等。
二、硬件设计1.主控芯片(如AVR):作为主控芯片,负责与MCP23S17芯片进行通信以及处理数据。
2.MCP23S17芯片:作为IO扩展芯片,通过SPI协议与主控芯片进行通信,并提供16位IO口的扩展功能。
3.外部设备:根据需求,可以连接各种外部设备,如按键、LED等。
硬件连线如下:- AVR的SPI MOSI引脚连接到MCP23S17的SI(Serial Input)引脚,用于传输数据。
- AVR的SPI MISO引脚连接到MCP23S17的SO(Serial Output)引脚,用于接收数据。
- AVR的SPI SCK引脚连接到MCP23S17的SCK(Serial Clock)引脚,用于时钟信号。
- AVR的SPI SS引脚连接到MCP23S17的CS(Chip Select)引脚,用于选择芯片。
三、软件设计1.初始化SPI模块:在主控芯片上初始化SPI模块,包括设置时钟分频、工作模式等。
2.初始化MCP23S17:通过SPI发送配置命令,初始化MCP23S17芯片的各种寄存器,包括IO口方向、上拉电阻使能、中断触发方式等。
3.读取IO口状态:通过SPI发送读取命令,读取MCP23S17芯片的输入口状态,并传输给主控芯片。
4.设置IO口状态:通过SPI发送写入命令,设置MCP23S17芯片的输出口状态,控制外部设备的状态。
SPI总线的UART扩展方法SPI(串行外围接口)总线是一种同步串行通信接口,常用于微控制器与外部设备之间的数据传输。
然而,SPI总线本身并不支持UART(通用异步接收和发送器)协议,因为UART是一种异步通信协议,而SPI是一种同步通信协议。
为了实现SPI总线的UART扩展,可以采用以下方法:1.使用软件模拟UART:这种方法利用总线的时钟信号来模拟UART通信协议的数据传输。
在发送端,根据UART协议的要求,将数据位、起始位、停止位及校验位转换成相应的SPI信号序列,并使用SPI总线的时钟信号进行同步传输。
在接收端,根据SPI信号序列的变化,识别出UART数据帧中的各个位,并还原成原始的UART数据。
2.使用硬件转换芯片:可以使用专门的硬件转换芯片来实现SPI总线和UART协议的转换。
这些转换芯片内部集成了SPI和UART的硬件控制逻辑,可以实现SPI总线与UART协议之间的快速转换。
用户只需要将UART数据接口连接到转换芯片的UART输入端口,将SPI总线接口连接到转换芯片的SPI输入/输出端口,然后通过转换芯片内部的控制寄存器设置相应的参数即可。
3.使用单片机或FPGA实现:通过编程配置,可以利用现代的单片机或FPGA来实现SPI总线与UART协议的转换。
在单片机或FPGA的内部,可以编写相应的软件或硬件逻辑来实现SPI总线协议和UART协议之间的转换。
这种方法的优点是可以根据具体应用的需求定制化开发,灵活性高,但需要一定的编程和硬件设计能力。
4.使用外部通信模块:还可以使用专门的外部通信模块来实现SPI总线和UART协议的转换。
这些通信模块通常具有多种通信接口,包括SPI总线接口和UART接口,可以通过配置使其同时支持SPI总线和UART协议。
用户只需要将需要转换的SPI总线连接到通信模块的SPI接口,将需要转换的UART设备连接到通信模块的UART接口,然后通过模块内部的配置参数进行设置。
∙随着信息时代的到来,各种信息的集成和交互越来越频繁。
运动控制系统中需要处理和存储的信息量也和日俱增,大部分运动控制系统的核心器件MCU 自身已集成较大容量的存储器(和以前MCU相比),但仅仅依靠MCU自身的存储器一般非常难满足系统对大容量存储的需求,因此必须找到高效的方法实现对系统存储容量的扩展。
SPI是个高效、数据位数可编程设置的高速输入/输出串行接口,几乎所有MCU生产厂商都提供对SPI接口的支持,目前高速SPI接口的时钟频率已达到60MHz甚至更高,SPI接口一般只用4根连接线即可完成所有的数据通讯和控制操作,因此不占用MCU的数据总线和地址总线,极大的节约了系统的硬件资源,是一种经济实用的扩展系统存储容量的方法。
本文利用32位DSP-TMS320F2812自身的增强型SPI接口,结合性价比高的串行接口Flash,高效地实现了对系统存储容量的扩展。
2 系统总体介绍Flash扩展实现的硬件系统是具有Ethernet接口的基于DSP和CPLD的运动控制板,系统总体结构如图1所示,核心器件是TI公司推出的32位定点DSP-TMS320F2812和Altera公司推出的MAXII系列CPLD-EPM1270G。
主要完成系统输入信号的检测、处理,各种控制算法及和各种接口(Ethernet接口和RS232接口)的通讯,运动控制系统的部分控制程式、大量的初始化数据和系统的设置信息都存在大容量的串行接口Flash M25P80中,通过DSP增强型SPI 接口实现和核心处理器DSP的高速通信。
∙3 Flash扩展的硬件设计3.1 TMS320F2812的增强型SPI接口特性(1)可编程的125种不同的波特率。
(2)可编程的1-16位有效数据长度。
(3)支持4种时钟模式,不带相位延时的下降沿模式、带相位延迟的下降沿模式、不带相位延时的上升沿模式和带相位延时的上升沿模式。
(4)可持续操作的特性:16级发送和接收FIFO;可编程的中断优先级和延时发送控制功能。
串口扩展方案简介串口是计算机与外部设备进行数据交互的一种通信方式。
在某些场景下,需要扩展额外的串口来满足设备连接的需求。
本文将介绍几种常用的串口扩展方案,包括硬件扩展和软件扩展两种。
硬件扩展方案硬件扩展是通过增加硬件模块来实现串口的扩展。
下面介绍两种常用的硬件扩展方案。
方案一:串口芯片扩展一个常见的硬件扩展方案是使用串口芯片进行扩展。
这种方案主要通过在主板上添加一个或多个串口芯片,以增加额外的串口。
一般而言,串口芯片具有较好的兼容性和稳定性,并且能够支持多种串口协议。
常用的串口芯片有常见的UART芯片,常用的型号包括PL2303、CP2102等。
这些芯片一般支持USB接口,可以轻松地与计算机连接,方便进行数据传输。
方案二:扩展板另一种硬件扩展方案是使用扩展板。
扩展板是一种外部设备,一般通过插入到计算机的扩展槽口或接口上来实现与计算机的连接。
常用的扩展板类型包括PCI扩展板、PCIe扩展板和USB扩展板等。
PCI扩展板和PCIe扩展板适用于台式机等有PCI或PCIe插槽的计算机,可以通过插槽接口连接到计算机主板上。
而USB扩展板则适用于各种类型的计算机,通过USB接口与计算机连接。
使用扩展板进行串口扩展的好处是可以同时添加多个串口,满足多设备连接的需求。
同时,扩展板还可能提供其他功能,如并行端口、网络接口等。
软件扩展方案除了硬件扩展之外,还可以使用软件扩展方案来实现串口的扩展。
下面介绍两种常用的软件扩展方案。
方案一:虚拟串口驱动虚拟串口驱动是一种通过软件模拟串口功能的方案。
它将虚拟串口映射到计算机的物理串口或其他设备上,使得计算机可以像操作真实串口一样操作虚拟串口。
虚拟串口驱动通常是由一些软件开发人员开发的,并且提供了应用程序编程接口(API),可以与设备驱动程序交互。
通过虚拟串口驱动,可以实现串口的创建、配置和通信等功能。
方案二:串口转以太网设备串口转以太网设备是一种通过网络连接实现串口扩展的方案。
串口扩展方案总结串行接口设备凭借其控制灵活、接口简单、占用系统资源少等优点,被广泛应用于工业控制、家庭安防、GPS卫星定位导航以及水、电、气表的抄表等领域。
在这些嵌入式系统中,可能会有很多从设备都通过串行接口与主机进行通信,如GPRS MODEM、红外发送和接收模块、RS485总线接口等。
这使得开发人员常常面临嵌入式系统中主机串行通信接口不足的问题,针对此问题,本文介绍了几种常见的解决方法。
软件模拟法软件模拟法可根据串行通讯的传送格式,利用定时器和主机的I/O口来模拟串行通讯的时序,以达到扩展串口的目的。
接收过程中需要检测起始位,这可以使用查询方式,或者,在端口具有中断功能的主机中也可以使用端口的中断进行处理。
接收和发送过程中,对定时的处理既可以使用查询方式也可以使用定时器中断方式。
为了确保数据的正确性,在接收过程中可以在检测异步传输的起始信号处加上一些防干扰处理,如果是无线传输系统,在接收每个位时可以采用多次采样。
对于有线系统来说,1次采样就够了,你看IIC,SPI等,谁去进行了多次采样。
如今软件模拟以其价格低廉,使用方便,已经成为一种潮流.但是不是所有的单片机都适合用来进行串口的软件模拟的.软件模拟的方法一般有两种,一种是读写I/O,另外一种是读写端口.很容易想到采用读写端口的方式模拟的方式,各串口的波特率必须保持一致.而且当各路数据的输入时间差只有那么几十微秒时,很容易造成数据丢失,虽然看上去这种方式也可以承受输入数据端短路的高数据量压力测试,但这种测试方法是刚好落在了该方案的最佳输入点上.所以真正的使用中是有几率出错的.而采用我们PDK80CXX系列在进行8路以下(4路全双工通讯)的串口模拟时,完全可以采用读写I/O口方式来完成,这样,我们可以非常轻松完成个子口的波特率不等的设置.而且可以达到非常高的速率,当外接8MHz的晶体时,3路子口的最高速度可以达到38400以上.我想就是38400的波特率一般的单片机也就足够了.俗话说,"打铁还需墩子硬",而我们PDK80CXX都是工业规格设计,超强的抗干扰性,超宽的高低温工作范围.不知道各位看官目前有没有用过可以在-40~+120摄氏度工作的单片机.所以采用PDK80CXX模拟串口扩展无疑是目前性价比最高的一种解决方案.利用并口转串口扩展串行口基于Intel8251的串行口扩展Intel8251是一种通用的同步/异步发送器(USART),它的工作方式可以通过编程设置,并具有独立的接收/发送器。
概述:CH9434 是一款SPI 转四串口转接芯片,提供四组全双工的9 线异步串口,用于单片机/嵌入式系统扩展异步串口。
CH9434 包含四个兼容16C550的异步串口,最高支持4Mbps 波特率通讯。
最多支持25 路GPIO,提供半双工收发自动切换引脚TNOW。
特点:●工作电压:3.3V。
●支持通讯波特率设置,波特率范围1200-4000000bps。
●串口每个方向独立FIFO 缓存,发送1536 字节,接收2048 字节。
●完全独立四个异步串口,兼容16C550并且有所增强。
●串口支持5/6/7/8个数据位以及1/2个停止位。
●串口支持奇、偶、无校验、空白0、标志1 等校验方式。
●支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。
●提供半双工RS485收发使能引脚。
●SPI 最高速率为16Mbit/s。
●支持低功耗睡眠模式,可通过SPI 接口唤醒。
●芯片内置时钟,可选外部晶振提供时钟。
●芯片提供可配置GPIO 功能。
●QFN48_5X5无铅封装,兼容RoHS。
SPI通信格式:A.发送数据格式第一个字节为操作地址,第二个字节为写入的数据或者读取的数据。
B.操作地址的最高位为操作位,操作位为1则为写入数据,为0则为读取数据。
C.当写入数据时,地址和数据两个字节间需要1uS延时,发送完数据后需要延时3uS才可以进行下一次操作。
D.当读取数据时,地址和数据需要延时3uS,即发送完地址后延时3uS进行数据读取。
例如:要设置“时钟电源寄存器”的值为0x4D,那么就需要先向CH9434发送一个0xC8(时钟电源寄存器的地址+最高位为1表示写入数据),接着再向CH9434发送数据0x4D。
软件控制:程序设计流程:初始化接口配置->初始化CH9434->初始化串口0到串口3->数据收发。
(1)初始化接口配置,初始化SPI :GPIO 的设置以及外设SPI 的配置。
复位CH9434的RST 引脚:每次单片机重启都进行一次CH9434的复位。
EXAR推出基于I2C和SPI的GPIO扩展芯片EXAR 公司近日发布了XRA120x I2C/SMBus GPIO (通用输入/输出)扩展芯片以及XRA140x SPI GPIO扩展芯片家族-共推出12款产品。
Exar的GPIO扩展芯片采用工业标准的I²C,SMBus,或者SPI接口,实现I/O口扩展需求。
XRA120x以及XRA140x系列芯片面向工业监控,手持电池供电设备、和手机、PDA、GPS消费类电子等诸多市场。
“出于顺应客户需求以及抓住市场机遇,作为其市场领先的接口产品线的一部分,EXAR推出GPIO桥扩展方案。
”Exar公司接口产品线副总裁Levent Ozcolak先生表示,“这些新产品拓展了EXAR的产品规模,也让我们可以服务更多的市场应用。
已经受益于EXAR UARTs以及串行收发器优势产品的系统架构师们,可以同样信赖采用我们的GPIO 扩展芯片”。
当微控制器或芯片组的I / O引脚数量不足,或在远距离通讯中使用更具优势的串行协议时,GPIO扩展功能能够提供更为强大的的控制和监测。
“覆盖8口和16口扩展需求,并且提供通用的接口,XRA120x和XRA140x系列为客户的设计提供即时的选择.“ EXAR接口产品线策略市场总监Rakesh Bhatia如是说。
XRA120x 和XRA140x的工作电压范围为1.65V至3.6V,管脚耐压为5V。
多个产品型号,可以满足8个或16个GPIO扩展需求。
当GPIO配置为输入状态时,每个GPIO口内部都有一个可选的上拉电阻。
其输入极性也可配置,且每个输入管脚内置滤波功能,过滤噪声和毛刺。
如有需要,输入过滤功能也可以禁用。
GPIO的中断方式可以设置为上升沿触发、下降沿触发或任意触发。
所有的GPIO都有独立的中断使能和中断状态指示,从而可以通过软件轻松确定中断产生来源。
VK3234多总线接口四通道通用异步收发器无铅封装1.产品概述VK3234是业界首款具备 UART/SPI TM接口的4通道UART器件。
可以通过模式选择使得该芯片工作于以上任何一种主接口模式下:当主接口为UART时,VK3234将一个标准3线异步串口(UART)扩展成为4个增强功能串口(UART)。
主接口UART在数据传输时可以选择需要转义字符和不需要转义字符两种模式。
此外,主接口的UART 可以通过引脚配置为红外通信模式。
当主接口为SPI接口时,VK3234实现SPI桥接/扩展4个增强功能串口(UART)的功能。
扩展的子通道的UART具备如下功能特点:每个子通道UART的波特率、字长、校验格式可以独立设置,最高可以提供1Mbps的通信速率。
每个子通道可以独立设置工作在IrDA红外通信、RS-485自动收发控制、9位网络地址自动识别、软件/硬件自动流量控制、广播接收等高级工作模式下。
每个子通道具备收/发独立的16 BYTE FIFO,FIFO的中断为4级可编程条件触发点。
VK3234采用SOP28绿色环保的无铅封装,可以工作在2.5~5.5V的宽工作电压范围,具备可配置自动休眠/唤醒功能。
[注]:SPI TM为MOTOLORA公司的注册商标。
2.基本特性2.1 总体特性精简的配置寄存器和控制字,操作简单可靠创新的可编程数据广播模式支持向任意子通道发送数据广播提供工业级和商业级产品流量控制:支持RTS、CTS的硬件自动流量控制支持XON/XOFF的软件自动流量控制,XON/XOFF可编程字符自动发送/识别RS-485功能:RTS控制的自动RS-485收发控制RS-485网络地址自动识别功能错误检测:支持奇偶校验错,数据帧错误及溢出错误检测支持起始位错误检测每个子串口可以软件设置为是否接收数据广播内置符合SIR标准的IrDA红外收发编解码器,传输速度可达115.2K bit/s 2.3 UART主接口特性主接口为标准的三线UART串口(RX,TX,GND),无需其它地址信号、控制信号线UART主接口可以通过引脚设置为红外模式UART主接口可以通过引脚选择是否采用转义字符模式2.4 SPI主接口特性最高速度5M bit/s5.原理框图图5.1 VK3234 原理框图7.寄存器描述7.1 寄存器列表VK3234的寄存器按地址编号为6位地址编号,地址000000~111111,分为全局寄存器和子串口寄存器。
WK系列通用异步串口UART产品产品介绍:WK提供目前业界收发缓存最大、接口最全、尺寸最小的高性价比UART 器件,芯片内置多种总线数据转换处理协议,为工业和便携设备等嵌入式系统提供先进的串口扩展器件。
产品特点:}接口最全:--WK系列UART产品主接口支持UART、I2C、SPI、8位并行总线可选--业内独创通过标准三线UART串口扩展UART技术。
}收发缓存最大:--每个扩展串口具备256级收发独立FIFO--支持超时中断和任意可设置FIFO触发点中断--防止串口通信数据溢出,减少CPU响应中断次数---有效提高基于嵌入式OS系统中串口通信的实时性和可靠性。
}封装最小:--系列产品采用SSOP16/20,QFP44,QFN24/32封装--WK2204采用4*4mm的QFN24封装,为业界最小的4通道低电压UART --WK2166为QFP44封装,为业界最小的工业级宽电压4通道UART}主接口特性:--UART接口:波特率自适应技术,最高速率2Mbps,支持16字节连续收发;--SPI接口:从模式,最高速率10Mbps,支持256字节连续收发;--IIC接口:从模式,最高速率1Mpbs,支持16字节连续收发--8位并口:标准8位总线模式,最高速率10MBps,仅占用2个地址空间}扩展串口特性:--系列产品支持2-4个扩展标准串口可选--每个扩展串口波特率、字长、校验格式可以独立设置,并可单独软件复位;--扩展串口最高通信速率可达2Mbps;--扩展串口可以支持RS485自动收发,自动485网络地址识别;--可设置为SIR标准的IrDA红外通信模式,速率可达115.2kbps。
}设计资源和支持:--Linux/Android 系统级串口驱动,参考源代码--8051,STM32 应用参考源代码--EVB开发评估板产品应用:l移动便携设备:行业PDA、行业平板、移动收款机、便携数据采集终端l工业控制:串口服务器、自动化现场控制、POS机、工业机器人,无人机l仪器仪表:智能仪表、AMR远传抄表设备、工业/医疗采集仪器l通信设备:工业网络通信设备、串行基站控制器、串行通信终端l汽车电子:车载导航系统、停车管理系统、汽车安全行驶记录仪(黑匣子)l智能硬件:智能家居控制设备、可穿戴采集设备、智能安防,智能家电产品选型:WK21系列宽电压产品系列,工作电压2.5-5.0V ,适合工业级应用。
基于SPI的多串口扩展方案(1扩8)
前言
随着电子技术的发展,以微处理器(MCU),PC机组成的主从分布式测控系统已成为当今复杂的测控系统的典型解决方案。
单片机以其独特的串口通信功能为主,从设备之间的数据传输提供了便利。
但是51系列单片机只提供了一个全双工的串行通信接口,这对于一个实时性要求较高,测控功能复杂的系统而言是一个美中不足之处。
在我们设计的智能密集测控系统中,就需要测控工具有多个实时全双工的串行通信接口。
我们现在只能是选择有多个串口的单片机或者是进行串口扩展,选择多串口的单片机肯定成本比较高,而且局限性比较大;那么最好的方案还是进行串口扩展。
根据本人的对多款串口扩展芯片在性能、价格上的比较,个人认为维肯电子的VK3266这款串口扩展芯片还是相当不错的,下面我们就也VK3266来对单片机的串口进行扩展。
以单片机的一个串口,扩展为4个全双工的串口。
1、系统原理框图
2、 硬件原理图
硬件原理框图介绍:本设计主要依赖的硬件是2块VK3224串口扩展芯片实现一个spi 接口扩展8个uart 接口,外部电路实现简单。
主要是晶振电路,复位电路,spi 接口电路。
3、VK3224芯片介绍
1.产品概述
VK3224是SPI TM接口的4通道UART器件。
VK3224实现SPI桥接/扩展4个串口(UART)的功能。
扩展的子通道的UART具备如下功能特点:
每个子通道UART的波特率、字长、校验格式可以独立设置,最高可以提供1Mbps的通信速率。
每个子通道可以独立设置工作在IrDA红外通信。
每个子通道具备收/发独立的16 BYTE FIFO,FIFO的中断为4级可编程条件触发点。
VK3224采用SOP20绿色环保的无铅封装,可以工作在2.5~5.5V的宽工作电压范围,具备可配置自动休眠/唤醒功能。
[注]:SPI TM为MOTOLORA公司的注册商标。
2.基本特性
2.1 总体特性
低功耗设计,可以配置自动休眠,自动唤醒模式
宽工作电压设计,工作电压为 2.5V~5.5V
精简的配置寄存器和控制字,操作简单可靠
提供工业级和商业级产品
高速CMOS工艺
采用符合绿色环保政策的SOP20无铅封装
2.2 扩展子通道UART特性
子通道串口独立配置,高速、灵活:
每个子串口为全双工,每个子串口可以通过软件开启/关闭
波特率可以独立设置,子串口最高可以达到1M bit/s (5V工作电压)
每个子串口字符格式包括数据长度、停止位数、奇偶校验模式可以独立设置
完善的子串口状态查询功能
FIFO功能:
每个子串口具备独立的16级9Bits发送FIFO,发送FIFO具备4级可编程触发点
每个子串口具备独立的16级9Bits接收FIFO,接收FIFO具备4级可编程触发点
软件FIFO使能和清空
FIFO状态和计数器输出
错误检测:
支持奇偶校验错,数据帧错误及溢出错误检测
支持起始位错误检测
内置符合SIR标准的IrDA红外收发编解码器,传输速度可达115.2K bit/s
2.3 SPI主接口特性
最高速度5M bit/s
仅支持SPI从模式
16位,SPI模式0
3.应用领域
多串口服务器/多串口卡
工业/自动化现场RS-485控制
无线数据传输
车载信息平台/车载GPS定位系统
远传自动抄表(AMR)系统
POS/税控POS/金融机具
DSP/嵌入式系统
4.原理框图
图4.1 VK3224 原理框图
5.封装引脚5.1封装图
OSCO
VCC
RX3
TX3
RX1
TX1
GND
RX2
TX2 5.2 引脚描述
表5.2 VK3224 引脚描述。