通用异步串口扩展芯片GM8123

通用异步串口扩展芯片GM8123
通用异步串口扩展芯片GM8123

通用异步串口扩展芯片GM8123/25的原理和应用

摘要本文介绍了一种新器件GM8123/25串口扩展芯片,利用该系列芯片实现的串口扩展方案具有成本低、速度快、控制简单等优点,可广泛应用于数据采集、工业控制等需要串口通讯的场合。

关键词 GM8123 GM8125 串口扩展

一.同类方案比较

目前比较通用的串口扩展方案有两种,一是用硬件实现,使用多串口单片机或专用串口扩展芯片,可供选择的串口扩展芯片有TI等公司开发的16C554系列串口扩展芯片,该系列芯片实现的功能是通过并行口扩展串行口,功能比较强大、通讯速度高,但控制复杂,同时价格较高,主要的应用场合是PC机串口扩展产品。在仅使用单片机控制且不需要太高波特率通讯的系统中,使用16C554系列芯片不仅成本高而且还造成了资源的浪费。而多串口单片机也同样存在价格高的缺点。另一种串口扩展方案就是用软件实现,软件模拟串口存在的缺点有:一是采样次数低,一般只能做到2次/BIT,这样数据的正确性就难以保证;二是不能实现高波特率通讯,软件模拟串口一般不能实现高于4800 bps的波特率。

成都国腾微电子有限公司推出的GM8123/25系列串口扩展芯片全硬件实现串口扩展,保证了芯片工作的稳定性,设计的最高波特率完全能满足一般系统需求,同时占用系统资源少,使用方法简单,通讯格式可设置,与标准串口通讯格式兼容,利用该系列芯片实现串口扩展是性价比较高的串口扩展方案。

二.GM8123/25介绍

2.1 产品特点

·采用写控制字的方式对芯片进行控制

·两种工作模式,用户可根据自己的系统需求灵活选择

·各子串口波特率可调(统一调节)

·数据帧长10位或11位可选

·子串口数:3个(GM8123)或5个(GM8125)

·数据采样率 16次/BIT,确保数据采样的准确可靠

·单通道模式下,最高波特率支持20Mbps;多通道模式下,子串口最高波特率38400bps

·与标准串口通讯格式兼容

·输出波特率误差小于0.2%,输入波特率误差要求小于2.8%

·宽工作电压:2.3~6.7V

·工作温度范围:-40℃~85℃

·工作稳定,抗干扰能力强,符合工业级标准

2.2 功能描述

GM8123可扩展3个标准串口,GM8125可扩展5个标准串口,芯片可以通过软件设置工作波特率和数据帧长。芯片通过外部引脚选择串口扩展模式:单通道工作模式和多通道工作模式。单通道模式下,子串口最高波特率支持20Mbps;多通道模式下,子串口最高波特率支持38400bps。

单通道模式下,无需设置芯片的通讯格式,子串口和母串口以相同的波特率工作,一个时刻只允许一组子串口和母串口通讯,工作子串口由地址线选择。单通道工作模式适用于所有从机不需要同时通讯并且通讯过程完全由主机控制的系统。

多通道模式下,允许所有子串口同时与母串口通讯,母串口以子串口波特率的4倍(GM8123)/6倍(GM8125)工作,发送时由地址线选择发送数据的子串口,接收时子串口能主动响应从机发送的数据,由母串口发送给主机,同时由地址线返回接收到数据的子串口地址,主机在接收到子串口送来的数据后可以根据地址线的状态判断数据是从哪一个从机送来的。多通道模式使每个从机的发送要求都能被及时地响应,即使所有从机同时有发送要求,数据也不会丢失,基本实现了主控单元和外设通讯的实时性。多通道模式适用于从机向主机发送数据的时间不可控并且有实时性要求的多机通讯系统。(详细情况查看成都国腾微电子有限公司发布的GM8123/25数据手册)

2.3 系统结构

图1为GM8123/25的系统结构框图:

三.应用说明

以以下一个系统为例,用GM8125说明该系列芯片实现串口扩展的方法:一个系统中有5个从机需要与主机进行串行通讯,5个从机通讯波特率均为19200bps,主机首先向所有从机发送一个字节数据作为对从机的控制命令,从机收到数据并进行处理后立即向主机返回相关数据。根据系统要求看出,从机发送数据的时间根据其处理时间而定,不受主机控制,所以GM8125要工作在多通道模式下,即允许所有子串口同时工作。图2是单片机与GM8125的接口框图,该系统利用GM8125为主机89C51扩展出5个串口。

图2 GM8125与单片机的硬件接口框图

GM8125引脚说明:

RST:复位引脚,低电平有效。复位后默认子串口工作波特率为1200bps,数据长度为11位(带校验位);MS:模式选择引脚,控制芯片工作在多通道模式下还是单通道模式下。多通道模式下兼做读/写命令字选择引脚;SRADD0~2:接收子串口地址线;

STADD0~2:发送子串口地址线;

RXD0、TXD0:母串口收/发引脚;

RXD1~5、TXD1~5:子串口1~5收/发引脚;

下面给出主机发送和接收的控制程序,以C51为例:

#include

sbit MS=P3^6; //GM8125工作模式控制

sbit RESET=P3^7; //GM8125复位引脚控制

unsigned char SendBuff[5]={0xaa,0x45,0x67,0xbc,0xc9};

unsigned char ReceiveBuff0;

。。。。。。

unsigned char Contr_data;

unsigned char ADD;

unsigned char i=0;

。。。。。。

void main(void)

{

TMOD = 0x20; //指定定时器1工作在方式2

IE = 0x90; //开串行口中断

SCON=0xc0; //串行口工作在方式3

TH1 = 0xf8; //装入定时器1初值,设置主机工作波特率为7200bps

TL1 = 0xf8;

PCON=0x00;

。。。。。。

RESET=0; //对GM8125进行复位操作

Delay(); //延时子程序

RESET=1;

Delay();

Contr_data=0xfc; //装入命令字初值

TR1=1; //启动定时器1

MS=0; //GM8125工作在写命令字模式下

P0=0x00; //置GM8125命令字地址

SBUF=Contr_data; //设置GM8125子串口波特率为19200bps,母串口波特率为115200bps while(TI==0);

TI=0;

Delay();

(可读取命令字的内容验证写入结果是否正确)

TR1=0; //定时器1停止

TH1 = 0xff; //装入定时器1初值,设置主控MCU工作波特率为115200bps

TL1 = 0xff;

PCON=0x80;

TR1=1; //启动定时器1

/*主控MCU发送/接收程序*/

ADD=0x1f; //子通道1发送地址

P1=ADD; //选择GM8125子通道1发送

SBUF=SendBuff[i];

while(TI==0);

TI=0;

i++;

(以此方式分别向5个子串口发送数据)

REN = 1;

(等待接收处理)

}

void CommReceive(void) interrupt 4

{

if(RI)

{

switch(P1&0x07) //判断SRADD0~2的状态确定接收数据来自哪一个子串口 {

case 0:

{ReceiveBuff0=SBUF; //读命令字存入ReceiveBuff0

}

break;

case 1:

{ReceiveBuff1=SBUF; //子通道1接收的数据存入ReceiveBuff1

}

break;

。。。。。。

default:

break;

}

RI = 0;

}

}

该芯片的单通道模式适用于各从机不需要同时工作的系统,具体应用方法在此不做详述,请参考国腾微电子有限公司发布的《GM812X应用手册》。

四.结束语

利用GM8123/25进行串口扩展,有以下优点:

1、控制简单。该芯片利用软件设置工作方式,最大限度地减少控制线,不需要占用太多主机的系统资源,同时又保证使用的简便性。

2、应用灵活。该芯片具备两种工作模式、多种工作波特率、10位或11位数据帧长可选,用户可根据自己的系统需求灵活选择。

3、通用性强。该芯片设计时充分考虑各种用户的需求,保证了芯片的通用性,与标准串口通讯格式完全兼容,同时提供多种可选设置,适用于大多数串口通讯系统。

4、工作波特率高。该芯片子串口在单通道模式下波特率支持20Mbps,多通道模式下支持38400bps,此波特率完全能满足一般的串口通讯的需求。

5、性能稳定。硬件实现串口比软件实现串口更能保证串行通讯的稳定性,同时每bit采样16次,保证了数据的正确性。

6、波特率误差小。输出波特率误差小于0.2%,输入波特率误差要求小于2.8%。

该芯片不足之处在于:不满足超低功耗应用要求;多通道模式下,所有子串口工作波特率只能设置成统一值,不适用于各从机工作波特率不一致、又要求同时工作的系统。

USB转串口芯片介绍

pl2303原理应用 PL2303符合USB1.1标准,价格3RMB.

2 CP2102/CP2103简介 SiliconLaboratories公司推出的USB接口与RS232接口转换器CP2102/CP2103是一款高度集成的USB-UART桥接器,提供一个使用最小化元件和PCB空间来实现RS232转换USB的简便解决方案。如图1所示,CP2102/CP2103包含了一个USB功能控制器、USB收发器、振荡器和带有全部调制解调器控制信号的异步串行数据总线(UA RT), 采用5 mm×5 mm MLP-28的封装。 CP2102/CP2103作为USB/RS232双向转换器,一方面可以从丰机接收USB数据并将其转换为RS232信息流格式发送给外设;另一方面可从RS232外设接收数据转换为USB数据格式传送至主机,其中包括控制和握手信号。

2.1 USB功能控制器和收发器 2.2异步串行数据总线(UART)接口 CP2102/CP2103UART接口包括TX (发送)和RX(接收)数据信号以及RTS、CTS、DSR、DTR、DCD和RI控制信号。UART支持RTS/CTS、DSR/DTR和X-On /X-Off握手。 通过编程设置UART,支持各种数据格式和波特率。在PC机的COM端口编程设置UART的数据格式和波特率。表1 为其数据格式和波特率。 2.3 内部EEPROM CP2102/CP2103内部集成有1个EEPROM,用于存储由设备制造商定义的USB 供应商ID、产品ID、产品说明、电源参数、器件版本号和器件序列号等信息。USB配置数据的定义是可选的。如果EEPROM没有被OEM的数据占用,则采用表1所示的默认配置数据。注意,对于可能使用多个基于CP2102/CP2103连接到同一PC机的OEM应用来说,则需要专用的序列号。 内部EEPROM是通过USB编程设置的,允许OEM的USB配置数据和序列号可以在出厂和测试时直接写入系统板上的CP2102/CP2103。Cygnal提供了一个专门为C P2102/CP2103的内部EEP-ROM编程设置工具,同时还提供免费的驱动WindowsDLL格式的程序库。这个程序库可将。EEP-ROM编程步骤集成到OEM在制造中进行流水线式测试和序列号的管理的自定义软件中。EEP-ROM的写寿命的典型值为100000次,数据保持时间为100年。为了防止更改USB描述符,应将其锁定。 2.4其他功能 CP2103除上述功能外也可实现RS485接口与USB接口转换功能,CP2103支持4个可按照控制信息定义的GPIO引脚。 3 典型应用电路 3.1 硬件电路设计

串口协议

串口协议 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。 一、物理接口标准 1.串行通信接口的基本任务 (1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。 (2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。 (3)控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。 (4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。(5)进行TTL 与EIA电平转换:CPU 和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。 (6)提供EIA-RS-232C 接口标准所要求的信号线:远距离通信采用MODEM 时,需要9根信号线;近距离零MODEM 方式,只需要3 根信号线。这些信号线由接口电路提供,以便与MODEM 或终端进行联络与控制。 2、串行通信接口电路的组成 为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA 与TTL 电平转换器以及地址译码电路组成。其中,串行接口芯片,随着大规模继承电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,如下表所示。它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务的大部分工作,且都是可编程的。才用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单。

C++ 串口API 异步操作

C++ 串口API 异步操作50 有谁能说下串口API异步操作的例子,最好有代码的。 如果是BCB的更好,谢谢啦,有些函数直接看的不是很懂。一,我要同时向20个端口发送数据,句柄怎样才能控制好二,如果采用异步操作,怎样操作才最好,需要代码支持谢谢啦初始化: //串行设备句柄; HANDLE hComDev=0; //串口打开标志; BOOL bOpen=FALSE; //线程同步事件句柄; HANDLE hEvent=0; DCB dcb; COMMTIMEOUTS timeouts; //设备已打开 if(bOpen) return FALSE; //打开COM1

if((hComDev=CreateFile(“COM1”,GENERIC?READ|GENERIC?WRITE,0,N ULL,OPEN?EXISTING,FILE?ATTRIBUTE?NORMAL,NULL))==INVALID?HAN DLE?VALUE) return FALSE; //设置超时控制 SetCommTimeouts(hComDev,&timeouts); //设置接收缓冲区和输出缓冲区的大小 SetupComm(hComDev,1024,512); //获取缺省的DCB结构的值 GetCommState(hComDev,&dcb); //设定波特率为9600 bps dcb.BaudRate=CBR?9600; //设定无奇偶校验 dcb.fParity=NOPARITY; //设定数据位为8 dcb.ByteSize=8;

//设定一个停止位 dcb.StopBits=ONESTOPBIT; //监视串口的错误和接收到字符两种事件SetCommMask(hComDev,EV?ERR|EV?RXCHAR); //设置串行设备控制参数 SetCommState(hComDev,&dcb); //设备已打开 bOpen=TRUE; //创建人工重设、未发信号的事件 hEvent=CreateEvent(NULL,FALSE,FALSE, “WatchEvent”);

RS-232多串口扩展器件SP2538及其应用

RS-232多串口扩展器件SP2538及其应用摘要:SP2538是采用低功耗CMOS工艺生产的专用串行口(RS232)扩展芯片,它可将单片机或DSP等原有的单UART串口扩展至5个全双工UART口,从而解决了此类器件串口太少的问题。文中介绍了SP2538的性能特点,引脚功能及应用方法,并以单片机为例给出了多串口扩展的硬件电路及相应的通信程序。关键词:RS-232;串口扩展;单片机;SP25381概述SP2538是专用低功耗串行口扩展芯片,该芯片主要是为解决当前基于UART串口通信的外围智能模块及器件较多,而单片机或DSP原有的UART串口又过少的问题而推出的。利用该器件可将现有单片机或DSP的单串口扩展至5个全双工串口。与其它具有多串口的单片机或串口扩展方案相比,采用SP2538实现的多串口扩展方案,具有扩展串口数量多、对扩展单片机的软硬件资源占用少、使用方法简单、待扩展串口可实现较高的波特率、成本低廉、性价比高等优点。同时,它还具有如下特点:●可将单UART串口扩展为5个UART串口;●工作速率范围宽,5个子串口可产生2400bps~9600bps之间的任意波特率;●可全双工工作,母串口和所有子串口都支持全双工UART传输模式;●工作电源电压范围宽:3.3V~5.5V;●典型工作电流为4.6mA(子串口速率为9600bps、VCC为3.3V时); ●资源占用少,除占用上位机原有串行口中断外,不占用任何中断资源;●具有节电模式,进入节电模式后,其典型静态电流约8μA;●上位机发送数据可自动唤醒;●输出误差小,所有子串口的输出波特率误差均小于0.08%;●误码率低于10-9(所有串行口数据输入波特率误差小于等于±2%);●接收范围宽,波特率误差小于2.5%时,子串口即可完全正确接收;母串口的接收范围更宽,并可自适应56000bps和57600bps两种标准波特率(fosc—in为20.0MHz时);●可用上位机进行监控,并具有上电复位和看门狗监控输出,适用于没有看门狗或需要更多重监控的高可靠上位机程序监控系统。2引脚功能SP2538具有双列直插DIP及双列贴片SOIC两种封装形式。后缀为SP2538xxH的复位时输出高电平而后缀为SP2538xxL的复位时输出低电平,可分别适用高、低电平复位的单片机。图1给出了DIP封装高电平复位SP2538DPH的外形及引脚排列图,各引脚的功能说明列于表1。[!--empirenews.page--]表1 SP2538引脚说明引脚名称引脚编号引脚类型引脚描述TX5~TX01、3、5、7、9、14Output 串口5~串口0数据发送(连接上位机RX口)RX5~RX02、4、6、8、10、13Input串口5~串口0数据接收(连接上位机TX口)VCC111- - -电源1(逻辑电路电源)+RST12Output复位控制输出(适用于高电平复位的MCU)VCC215- - -电源2(时钟电路电源)GND16- - -电源地OSCI17Input时钟输入(用于波特率发生器等)OSCO18Output时钟输出ADRI0~ADRI219~21Input母串口(RX5)数据接收地址0~2ADRO0~ADRO222~24Output母串口(RX5)数据发送地址0~23应用说明3.1母串口收发数据过程与时序(1)上位机接收来自母串口的数据上位机从母串口接收到一个字节数据后,会立即读取SP2538的输出地址ADRO2~ADRO0(编码方式为:8-4-2-1码),然后根据输出地址的编码即可判断接收到的数据来自哪个子串口,上位机接收来自母串口的数据时序如图2所示。(2)上位机向母串口发送数据发送数据时,上位机首先通过串口写入欲发送数据的子串口号,即先由上位机的串口发送数据地址ADRI2~ADRI0(编码方式:8-4-2-1码),然后将欲发送的数据由上位机串口发出。需要注意的是:母串口的波特率是子串口的6倍,即上位机在连续向母串口发送6个字节的时间内,子串口才能发送完一个字节。上位机向母串口发送数据的时序如图3所示。表2列出了SP2538的操作时限要求。表2 SP2538操作时限时限内容说明最小值典型值最大值Tpwr-up上电复位延时150ms……Treset芯片指令复位时间……50μsTwdt-rst看门狗溢出复位脉冲宽度80ms……Taddr-in数据接收地址保持时间10ns……Twake-up芯片唤醒延时……9msTaddr-hold数据发送地址保持时间(2/fosc-in)ms……Twdt-over看门狗溢出周期800ms……3.2其它说明母串口和所有子串口内部均具

通信协议简介及区别(串行、并行、双工、RS232等)

基本的通讯方式有并行通讯和串行通讯两种。 并行通讯:一条信息的各位数据被同时传送的通讯方式称为并行通讯。 并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。 串行通讯:一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。 串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几千米。 根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。 而按照串行数据的时钟控制方式,串行通信又可分为同步通信和异步通信两种方式。 异步通信:接收器和发送器有各自的时钟; 同步通信:发送器和接收器由同一个时钟源控制。 1、异步串行方式的特点 所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。异步串行通信的特点可以概括为: ①以字符为单位传送信息。 ②相邻两字符间的间隔是任意长。 ③因为一个字符中的比特位长度有限,所以需要的接收时钟和发送时钟只要相近就可以,不需同步。 ④异步方式特点简单的说就是:字符间异步,字符内部各位同步。 2、异步串行方式的数据格式 异步串行通信的数据格式如图1所示,每个字符(每帧信息)由4个部分组成: ①1位起始位,规定为低电0; ②5~8位数据位,即要传送的有效信息; ③1位奇偶校验位; ④1~2位停止位,规定为高电平1。 3、同步串行方式的特点 所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。同步串行通信的特点可以概括为: ①以数据块为单位传送信息。 ②在一个数据块(信息帧)内,字符与字符间无间隔。 ③因为一次传输的数据块中包含的数据较多,所以接收时钟与发送进钟严格同步,通常要有同步时钟。 4、同步串行方式的数据格式 同步串行通信的数据格式如图2所示,每个数据块(信息帧)由3个部分组成: ①2个同步字符作为一个数据块(信息帧)的起始标志; ②n个连续传送的数据 ③2个字节循环冗余校验码(CRC) 图1 异步串行数据格式图2 同步串行数据格式

UART异步串口

MSP430程序库<二>UART异步串口 串行通信接口是处理器与其他设备进行数据通信最常用的方式之一。我的这个程序库是针对MSP430f14系列和MSP430f16系列的,我常用的单片机是这两款:msp430f149,ms p430f169。这两款单片机中均有两个增强型串行通信接口,都可以进行同步或是异步通信,甚至169的模块USART0还能进行进行I2C协议通信。在这里,我们只讨论异步串行通信。 硬件介绍: MSP单片机的USART模块可以配置成SPI(同步通信)模式或UART(异步通信)模式,这里只讨论UART方式。UART数据传输格式如下: 起始位,数据位由高到低7/8位,地址位0/1位,奇偶校验位奇偶或无,停止位1/2位。数据位位数、地址位、奇偶校验位、停止位均可由单片机内部寄存器控制;这两款单片机都有两个USART模块,有两套独立的寄存器组;以下寄存器命中出现x代表0或是1,0代表对应0模块的寄存器,1代表对应1模块的寄存器;其中,与串口模式设置相关的控制位都位于UxCTL寄存器,与接收相关的控制位都位于UxRCTL寄存器,与发送相关的控制位都位于UxTCTL寄存器;波特率设置用UxBR0、UxBR1、UxMCT L三个寄存器;接收与发送有独立的缓存UxRXBUF、UxTXBUF,并具有独立的移位寄存器和独立的中断;中断允许控制位位于IE1/2寄存器,中断标志位位于IFG1/2寄存器。 波特率设置:430的波特率设置用三个寄存器实现, UxBR0:波特率发生器分频系数低8位。 UxBR1:波特率发生器分频系数高8位。 UxMCTL:波特率发生器分频系数的小数部分实现。 设置波特率时,首先要选择合适的时钟源:USART模块可以设置的时钟源有UCLK引脚、ACLK、SMCLK;对于较低的波特率(9600以下),可选ACLK作为时钟源,这样,在LPM3(低功耗3)模式下,串口仍能正常发送接收数据;另外,由于串口接收过程有一个三取二判决逻辑,这至少需要三个时钟周期,因此分频系数必须大于3;波特率高于9600时,将不能使用ACLK作为时钟源,要调为频率较高的SMCLK作为时钟源;另外还可以外部输入UCLK时钟。分频系数计算公式如下:

串口扩展,uart扩展,串口扩展485接口

串口扩展方案 基于VK3366的串口扩展串口方案 二、技术领域 电子信息 通信工程 三、现有技术的技术方案 3.1 软件模拟法: 可根据串行通讯的传送格式,利用定时器和主机的I/O口来模拟串行通讯的时序,以达到扩展串口的目的。接收过程中需要检测起始位,这可以使用查询方式或者在端口具有中断功能的主机中也可以使用端口的中断进行处理。接收和发送过程中,对定时的处理既可以使用查询方式也可以使用定时器中断方式。为了确保数据的正确性,在接收过程中可以在检测异步传输的起始信号处加上一些防干扰处理,如果是无线传输系统,在接收每个位时可以采用多次采样。对于有线系统来说,1次采样就够了,软件模拟串口还是有它自身的一些不足,面临着采样速度比较慢,采样方式还是不如硬件采样方式准确,抗干扰能力也差很多。 3.2基于TL16C554的串行口扩展 TL16C554是TI公司生产的4通道异步收发器集成芯片。对TL16C554串行通道的控制,是通过对控制寄存器LCR、IER、DLL、DLM、MCR和FCR编程来实现的。这些控制字决定字符长度、停止位的个数、奇偶校验、波特率以及调制解调器接口。控制寄存器可以任意顺序写入,但是IER必须最后一个写入,因为它控制中断使能,如果后面还需要调整数据格式,波特率这些就比较困难,操作也不够灵活。串行通道内的波特率发生器(BRG)允许时钟除以1至65535之间的任意数,BRG根据其不同的三种通用频率中的一种来决定标准波特率。 3.3 基于GM8123/25系列芯片的串行口扩展 GM8123/25系列串口扩展芯片可以全硬件实现串口扩展,通讯格式可设置,并与标准串口通讯格式兼容。GM8125可扩展5个标准串口,通过外部引脚选

串口电平转换芯片数据手册SP3222_3232E

DESCRIPTION s Meets true EIA/TIA-232-F Standards from a +3.0V to +5.5V power supply s 235KBps Transmission Rate Under Load s 1μA Low-Power Shutdown with Receivers Active (SP3222E ) s Interoperable with RS-232 down to +2.7V power source s Enhanced ESD Specifications: ±15kV Human Body Model ±15kV IEC1000-4-2 Air Discharge ±8kV IEC1000-4-2 Contact Discharge The SP3222E/3232E series is an RS-232 transceiver solution intended for portable or hand-held applications such as notebook or palmtop computers. The SP3222E/3232E series has a high-efficiency, charge-pump power supply that requires only 0.1μF capacitors in 3.3V operation. This charge pump allows the SP3222E/3232E series to deliver true RS-232performance from a single power supply ranging from +3.3V to +5.0V. The SP3222E/3232E are 2-driver/2-receiver devices. This series is ideal for portable or hand-held applications such as notebook or palmtop computers. The ESD tolerance of the SP3222E/3232E devices are over ±15kV for both Human Body Model and IEC1000-4-2 Air discharge test methods. The SP3222E device has a low-power shutdown mode where the devices' driver outputs and charge pumps are disabled. During shutdown, the supply current falls to less than 1μA. SELECTION TABLE L E D O M s e i l p p u S r e w o P 232-S R s r D e v i r 232-S R s r e v i e c e R l a n r e t x E s t n e n o p m o C n w o d t u h S L T T a S -3e t t f o .o N s n i P 2223P S V 5.5+o t V 0.3+224s e Y s e Y 02,812 323P S V 5.5+o t V 0.3+2 2 4 o N o N 6 1

串口通信协议

串口通信协议 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。 什么是RS-232 RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS-232串口通信最远距离是50英尺。 DB-9针连接头 9针串口连接口顺序图 从计算机连出的线的截面。 RS-232针脚的功能: 数据: TXD(pin 3):串口数据输出(Transmit Data) RXD(pin 2):串口数据输入(Receive Data) 握手: RTS(pin 7):发送数据请求(Request to Send) CTS(pin 8):清除发送(Clear to Send) DSR(pin 6):数据发送就绪(Data Send Ready) DCD(pin 1):数据载波检测(Data Carrier Detect) DTR(pin 4):数据终端就绪(Data Terminal Ready) 地线: GND(pin 5):地线 其他 RI(pin 9):铃声指示 什么是RS-422 RS-422(EIA RS-422-AStandard)是Apple的Macintosh计算机的串口连接标准。RS-422使用差分信号,RS-232使用非平衡参考地的信号。差分传输使用两根线

Win32API 异步串口通讯

使用Win32API实现Windows下异步串口通讯 目录: 1.异步非阻塞串口通讯的优点 2.异步非阻塞串口通讯的基本原理 3.异步非阻塞串口通讯的基础知识 4.异步非阻塞串口通讯的实现步骤 一,异步非阻塞串口通讯的优点 读写串行口时,既可以同步执行,也可以重叠(异步)执行。 在同步执行时,函数直到操作完成后才返回。这意味着在同步执行时线程会被阻塞,从而导致效率下降。在重叠执行时,即使操作还未完成,调用的函数也会立即返回。费时的I/O操作在后台进行,这样线程就可以干别的事情。 例如,线程可以在不同的句柄上同时执行I/O操作,甚至可以在同一句柄上同时进行读写操作。"重叠"一词的含义就在于此。 二,异步非阻塞串口通讯的基本原理 首先,确定要打开的串口名、波特率、奇偶校验方式、数据位、停止位,传递给CreateFile()函数打开特定串口; 其次,为了保护系统对串口的初始设置,调用GetCommTimeouts()得到串口的原始超时设置; 然后,初始化DCB对象,调用SetCommState() 设置DCB,调用SetCommTimeouts()设置串口超时控制;再次,调用SetupComm()设置串口接收发送数据的缓冲区大小,串口的设置就基本完成,之后就可以启动读写线程了。 三,异步非阻塞串口通讯的基础知识 下面来介绍并举例说明一下编写异步非阻塞串口通讯的程序中将会使用到的几个关键函数 CreateFile() 功能:打开串口设备 函数原型 HANDLE CreateFile( LPCTSTR lpFileName, // 串口名称字符串;如:"COM1" 或"COM2" DWORD dwDesiredAccess, // 设置读写属性(访问模式);一般为GENERIC_READ|GENERIC_WRITE, DWORD dwShareMode, // 共享模式;"必须"为0, 即不能共享 LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 安全属性;一般为NULL DWORD dwCreationDistribution, // 创建方式,串口设置必须设置此值;在这里"必须"为OPEN_EXISTING DWORD dwFlagsAndAttributes, // 文件属性和标志;在这里我们设置成FILE_FLAG_OVERLAPPED ,实现异步I/O HANDLE hTemplateFile // 临时文件的句柄,通常为NULL ); 说明: 如果调用成功,那么该函数返回文件的句柄,如果调用失败,则函数返回INVALID_HANDLE_VALUE。Forexample: Handle m_hComm = CreateFile(com1,GENERIC_READ||GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERL APPED,0);

异步串行通信协议的设计与实现

10 | 电子制作 2018年10月 时传送;串行通信,即数据一位一位顺序传送。串行通信能够节省传输线,特别是数据位数很多和远距离数据传送时,这一优点更为突出。现在流行的高级语言一般都支持对串口的直接操作,常用的单片机也把串行通讯口作为一个标准接口集成在单片机内,串行通讯接口的开发具有开发周期短,开发简单等特点。目前异步串行通信已广泛用于微机之间的通信、工业控制系统中的数据采集与控制、远程数据的传送等方面。 1 串口通信的基本原理 串口在嵌入式系统当中是一类重要的数据通信接口,其本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送数据线,(3)接收数据线。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:波特率是一个衡量通信速度的参数,它表示每秒钟传送的bit的个数;数据位是衡量通信中实际数据位的参数,当计算机发送一个信息包,标准的值是5、7和8位。如何设置取决于你的需求;停止位用于表示单个包的最后一位,典型的值为1,1.5和2位,停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会;奇偶校验位是串口通信中一种简单的检错方式,有四种检错方式——偶、奇、高和低,也可以没有校验位。做出统一规定。 在控制系统中,单片机间通信一般采用异步串行通信,传统的异步串行通信协议一般采用如图1所示的命令格式,命令消息包括帧头(命令码)、数据帧、校验帧;响应消息为ACK信号(ACK取不同的值,例如:正确响应 ACK = 0x55;错误响应 ACK = 0xAA)。由于在串口通信中还存在很多不可靠的因素,例如由于电磁干扰造成的帧字节丢失、传输误码,以及因主从单片机处理繁忙而造成的响应延迟等。传统的通信协议难以克服由于单片机处理繁忙而造成的响应延迟现象。如图2所示,当主芯片发送[命令1]后,当超过响应等待时间而没有得到ACK时,主芯片发[命令2],而此时在下一个响应等待时间内收到两次[ACK],这时将导致主芯片做出错误判断,调用并非本意的程序执行,严重影响系统的正常运行。因此,本文在通信协议的设计中,采用响应消息加权的方法,提高了通信的可靠性,保证系统正常运行。 图1 通信命令格式 图2 通信时序 本响应消息加权式通信协议,实现方式如下:通信协议

实现异步串口

异步传输是一种典型的基于字节的输入输出,指数据按每次一个字节进行传输,其传输速度低。同步传输是把数据字节组合起来一起发送,这种组合称之为帧,其传输速度比异步传输快,同步串口的传送速率高,异步串口实现简单,这是异步串口与同步串口间最主要的区别。 一,异步非阻塞串口通讯的优点 读写串行口时,既可以同步执行,也可以重叠(异步)执行。 在同步执行时,函数直到操作完成后才返回。这意味着在同步执行时线程会被阻塞,从而导致效率下降。 在重叠执行时,即使操作还未完成,调用的函数也会立即返回。费时的I/O操作在后台进行,这样线程就可以干别的事情。 例如,线程可以在不同的句柄上同时执行I/O操作,甚至可以在同一句柄上同时进行读写操作。"重叠"一词的含义就在于此。 二,异步非阻塞串口通讯的基本原理 首先,确定要打开的串口名、波特率、奇偶校验方式、数据位、停止位,传递给CreateFile()函数打开特定串口; 其次,为了保护系统对串口的初始设置,调用 GetCommTimeouts()得到串口的原始超时设置; 然后,初始化DCB对象,调用SetCommState() 设置DCB,调用SetCommTimeouts()设置串口超时控制; 再次,调用SetupComm()设置串口接收发送数据的缓冲区大小,串口的设置就基本完成,之后就可以启动读写线程了。 三,异步非阻塞串口通讯的基础知识 VC串口通信技术网下面来介绍并举例说明一下编写异步非阻塞串口通讯的程序 中将会使用到的几个关键函数 CreateFile() 功能:打开串口设备 函数原型 1.HANDLE CreateFile( 2.LPCTSTR lpFileName, // 串口名称字符串;如: "COM1" 或 "COM2" 3.DWORD dwDesiredAccess, // 设置读写属性(访问模式);一般为 GENERIC_READ|GENERIC_WRITE, 4.DWORD dwShareMode, // 共享模式;"必须"为 0, 即不能共享 5.LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 安全属性;一般为 NULL 6.DWORD dwCreationDistribution, // 创建方式,串口设置必须设置此值; 在这里"必须"为 OPEN_EXISTING 7.DWORD dwFlagsAndAttributes, // 文件属性和标志;在这里我们设置成 FILE_FLAG_OVERLAPPED ,实现异步I/O 8.HANDLE hTemplateFile // 临时文件的句柄,通常为NULL

UART多串口扩展器SP2349及其应用_王鹏

东北电力学院学报 第24卷第6期 Journal Of Northeast China Vol.24,No.6 2004年12月Institute Of Electric Power Engineering Dec.,2004 文章编号:1005-2992(2004)06-0071-03 UART多串口扩展器SP2349及其应用 王 鹏,佟 科,李贻涛 (东北电力学院电力工程,吉林吉林132012) 摘 要:为了满足数字化及智能化要求,目前以单片机为核心的智能化测控系统及电子产品应当具 备网络通信功能,而普通单片机仅有单个U AR T,远不能满足联网后同时和外部器件用U ART通信的 要求。SP2349是一种新颖的串口扩展器件,可将8位、16位、32位单片机的一个高波特率的UA RT扩 展为3个U ART,解决了普通单片机UA RT串口太少的问题,以很低的成本扩展了系统的功能。给出 该器件的主要特性、引脚说明及应用说明,并以A T89C52单片机为例给出多串口扩展应用电路及相应 程序框图。 关 键 词:串口扩展;单片机 中图分类号:T N492 文献标识码:A 当前,以单片机为核心构成的智能化测控系统及电子产品不断涌现,为了满足数字化及智能化要求,许多外围电路功能模块、部件、器件及传感器也具备了UART串口通信功能。而现阶段的8位、16位、32位单片机却大部分仅提供一个UART串口,这样就很难满足系统中一方面要与具有UART功能的串口部件通信,另一方面又要与上位机通信的要求。利用SP2349多串口扩展器,可很好地解决此问题。 1 工作特性 SP2349是采用低功耗CMOS工艺设计的UART多串口扩展芯片。该器件可将一个高波特率的UA RT串口扩展为3个较高波特率的UART串口,从而为系统需要多个串口时提供了很好的解决方案。该器件的主要特性如下: (1)不必购买学习新的开发工具利用原有仿真器和编程器即可; (2)使用简单采用独创的所见即所得的设置方法设置芯片的所有工作模式; (3)占用资源少不占用宝贵的外部中断资源仅复用已有的串口中断资源; (4)接口简单仅占用单片机4条输入/输出控制线I/O; (5)睡眠功能降低系统功耗提高系统抗干扰性能; (6)子串口波特率最高可达115.2kbps; (7)可由软件设置子串口波特率三个子串口波特率可独立软件设置; (8)可由软件关闭一个子串口另外一个子串口波特率可加倍; (9)可由软件设置为10位或11位数据格式用于奇偶效验或多机通信; (10)看门狗输出取代上位机外挂的看门狗监控IC大幅降低生产成本; (11)宽工作速率75Bps~115.2kbps; (12)可节电模式进入节电模式后典型静态电流约0.5μA; 收稿日期:2004-10-14 作者简介:王 鹏(1954-),男,东北电力学院电力工程系,高级工程师.

异步串行UART协议详解 中文版

异步串行UART协议

7.1.1 串行口的结构
2个物理上独立的接收、发送缓冲器SBUF,占用同一地 个物理上独立的接收、发送缓冲器 个物理上独立的接收 , 址99H ;接收器是双缓冲结构 。

7.1.2 串行口的控制
1、串行口控制寄存器SCON (98H)
设定工作方式、接收 发送控制以及设置状态标志 设定工作方式、接收/发送控制以及设置状态标志 SCON (98H)
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
SM0、SM1:工作方式设置位 、 :

SM2,多机通信控制位。 ,多机通信控制位。
主要用于方式2和方式 。 主要用于方式 和方式3。对于接收机 和方式 SM2=0,收到 ,收到RB8(0或1)既可使收到的数据进入 ( 或 )既可使收到的数据进入SBUF, , 并激活RI。 并激活 。 SM2=1,收到的 信息丢弃, ,收到的RB8=0时,收到的信息丢弃,不激活 ; = 时 收到的信息丢弃 不激活RI 若收到的RB8=1时,收到的数据进入 数据进入SBUF,并激活 ,进而 若收到的 = 时 收到的数据进入 ,并激活RI, 读走。 在中断服务中将数据从 读走 在中断服务中将数据从SBUF读走。 方式0时 必须是0。 方式 时,SM2必须是 。 必须是 方式1时 才激活。 方式 时,SM2=1时,只有接收到有效停止位时,RI才激活。 时 只有接收到有效停止位时, 才激活
REN,允许串行接收位。 ,允许串行接收位。
置REN=1,启动串口接收过程 , 置REN=0,则禁止串口接收 ,

异步串行通信的工作方式

异步串行通信的工作方式,然后给出了VB MSComm控件下异步串行通信在电子衡器中的应用实例,包括硬件接口及软件设计。关键词:RS-232 异步串行通信Visual Basic 电子衡器控件计算机一般提供了2个25针或9针的RS-232标准串行口,简称为COM1和COM2。在某些应用中,我们还可以通过插通信卡来获得额外的RS-232标准串行口。利用这些串行口可以与其它数字设备进行一般的数据通信,计算机的串行接口主要用于远程通信和低速输入输出设备。由于串行数据通信传输线条数最少,而且有许多较便宜的专用芯片可实现它,发送和接受器也简单,因而对数据传输速度要求不高的计算机和数字设备间的近程通信,多采用串行通信实现。而目前各个厂家生产的电子衡器的称重仪表多配有与上位机通信的RS—232C串行接口,因而计算机与称重仪表之间的数据通信用串口很容易实现,只需要制作一条2芯或3芯的数据线编写相应的接口程序即可实现,不需要增加其他硬件设备。采用这种方式组成的微机电子衡器有许多优点:称重仪表经过多年的发展,在数据采集、抗干扰、可靠性等方面技术成熟,质量稳定;而计算机在存储容量、数据处理、查询、统计报表等数据管理方面有明显优势。正是两者的完美结合,才使计算机与称重仪表组成的在线式称重管理系统得到了广泛的应用。1串行通信的工作方式串行通信,可分为同步和异步两种方式。异步方式是指在约定的波特率下,传送和接受的数据不需要严格的保持同步,允许有相对的延迟,虽然速度较慢,但经济实用,所以异步串行通信现大量应用于计算机接口技术中。计算机与称重仪表就采用异步通信的方式传送数据。1.1异步串行通信的数据格式在这种通信方式中,一般以一个字符为一帧。一帧最少由三部分组成:起始位、数据位、停止位,开始是一位起始位以发送一个逻辑“0”表示,接着是表示这个数据的数据位,数据位可以是5位、6位、7位或8位,再加一位奇偶校验位,然后是一个、一个半或二个停止位,停止位以逻辑“1”表示。1.2波特率串行通信每秒传送的位数,传送时先低位后高位。常用的波特率有600、1200、2400、4800、9600等。1.3端口在计算机中,一般都配有两个标准串行口,用COM1和COM2表示。(通常采用2个9针D型阳性插头。)1.4信号线RS—232C标准规定有25根连线,使用21个信号线。在我们讨论的微机电子衡器中仅用到3根信号线,它们是:发送数据线TXD(输出信号),接受数据线RXD(输入信号线),信号地GND。其余信号线定义可参考相关书籍。2串行通信在电子衡器中的应用实例串行通信接口设计,包括硬件、软件设计两部分。在WINDOWS操作系统下,可选用VC++、VB等可视化开发工具。下面将以上海耀华称重系统公司的XK3190—A1+为例,以VB6.0编程语言,说明串行通信的软、硬件设计过程。 2.1称重仪表仪表选用上海耀华XK3190-A1+仪表,其串口通信格式如下:2.1.1连续方式发送:所传送的数据为仪表显示的当前称量(毛重或净重),每帧数据由12组数据组成。 第X组 内容及注释 1 02(XON)开始 2 +或- 符号位 3 称量数据高位 : 称量数据: : 称量数据: 8 称量数据低位 9

基于SPI的多串口扩展方案

基于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无铅封装

用多路复用器扩展MCU串口

用多路复用器扩展MCU串口 多微控制器(MCU)/微机组成的分布式、主从式系统是现代复杂通信、控制系统的典型解决方案。分布式环境下的多机协同,要求系统状态和控制信息在多机间进行快速传递,这通常借助简单有效的串行通信方式。现有的微控制器一般所带的串行接口非常适用于点对点通信的场合;但对于实时性要求高的多机通信场合,这类接口必须在串口数量和功能上进行扩展,才能满足对实时性要求较高的应用场合的需要。 ?本文讨论了一种适用于多机实时环境下的、新的可重配置串口扩展方案。图1为本方案框图。多路复用器是本方案的硬件核心。方案的要点是利用Mux动态地将MCU的串口在串行通道间切换,以达到串口扩展的目的。本文中MCU 以89C51为例,Mux 以MAX353为例。 ?MAX353 是Maxim公司推出的高性能多路复用器,实际可构成两对单刀单掷模拟开关,两对开关状态由一个引脚控制。MAX353基本参数为导通电阻小于35Ω;导通时间小于175ns,关断时间小于145ns。以上参数完全满足本方案的使用要求。 ?以下介绍本串口扩展方案的基本工作原理。 ?两串行通道和MAX353、89C51的连接两串行通道CH1,CH2通过多路复用器MAX353接到89C51的串口,多路复用器MAX353由89C51的一个I/O引脚控制。其中串行通道CH2的输出TXD2同时接到89C51的外部中断输入请 求INT0或INT1上。为了适应各种串口通信协议的需要,可在电路中加上电平转换器件,如图1所示。 ?中断源的使用和设置CH1仍旧使用串口中断,而CH2使用外部中断INT0或INT1(下面以INT0为例)。当CH2有信息来时,TXD2上将出现起始标志:

相关文档
最新文档