GM8125串口扩展芯片
- 格式:pdf
- 大小:337.14 KB
- 文档页数:14
基于嵌入式技术的多串口数据传输系统研究摘要:串口数据传输技术已经成为工业测控领域的设备范围内有效性最高的一种数据传输形式,然而其本身仍具有一定的局限性,从而限制了数据传输系统的实行速率。
使用lpc2210型号的32位微型控制处理器、gm8125型号的串口通信扩展芯片与μc/os-ii移植性的实时操作系统,把嵌入式技术作为串行终端通信设备和以太网两个部分之间实现数据双向传输的基础条件,设计一种综合程度较高的多串口数据传输系统。
关键词:嵌入式系统以太网多串口数据传输中图分类号:tn 文献标识码:a 文章编号:1007-0745(2013)06-0268-021引言由于串行通信的数据传输速度慢、间隔小与可靠性弱等方面的不足,串行通信设备和控制主机之间存在着数据通信传输与操作管理问题,从而会对自动化执行与工业控制等方面的上升发展产生阻碍作用。
以性价比与实践角度作为实际考虑点,构建了以32位微型控制处理器lpc2210和实时操作系统μc/os-ii为基础的嵌入式技术多串口数据传输系统。
这系统能够充分地解决三个方面的问题。
其一为经过gm8125串口通信扩展芯片改善单串口模式数据传输系统的限制影响,可以达到多串口数据传输的目标功能;其二为rtl8019as型号网卡控制芯片和微型处理器lpc2210的功能性结合,有利于优化微型处理器的资源消耗率;其三为能够有效地提升数据传输效率,达到硬件通信设备的联网实现。
2系统的功能架构嵌入式系统是连接串行数据通信终端设备和以太网两部分而实现数据传输的基础条件,由串口能够接收到从串行数据通信终端设备传来的数据,而且可以对数据实现tcp/ip协议的转变功能,最后进入到intenet中传送至相应的上位机软件。
在实际数据传输系统的执行过程当中,不但需要进行串行通信终端设备的数据采集功能,而且可以实现数据通信的自由控制。
数据通信的转换和传输技术作为系统的关键环节,进行串行通信终端设备数据和通信网络数据格式的判断与转变操作,实现数据双向传输的直接目的。
一转多串口芯片GM8125的初始化程序2009-02-22 09:38由于新产品的需求,原先mega64l的两个串口不够用了,需要在产品里加入一个扩展串口芯片,选择了GM8125(成都一家公司产的,用到现在感觉还行),但开始和这位同志的沟通上出现了不少问题,现在终于是和他熟悉了,把我做的GM8125初始化程序写在这里,希望能对大家有点用,不完善之处请指出,我会很感激的。
//用PB口控制GM8125的各个控制引脚#define CHOOSE_MODE PB0 //8125通道模式选择#define STADD0 PB2 //8125 STADD0#define STADD1 PB3 //8125 STADD1#define STADD2 PB4 //8125 STADD2#define SRADD0 PB5 //8125 SRADD0#define SRADD1 PB6 //8125 SRADD1#define SRADD2 PB7 //8125 SRADD2//将某引脚置1void setb_port(uint8_t i0,uint8_t i1){switch(i0){case 1:PORTA|=(1<<i1);break;case 2:PORTB|=(1<<i1);break;case 3:PORTC|=(1<<i1);break;case 4:PORTD|=(1<<i1);break;case 5:PORTE|=(1<<i1);break;case 6:PORTF|=(1<<i1);break;case 7:PORTG|=(1<<i1);break;default:break;}}//将某1引脚清0void clr_port(uint8_t i0,uint8_t i1) {switch(i0){case 1:PORTA&=~(1<<i1);break;case 2:PORTB&=~(1<<i1);break;case 3:PORTC&=~(1<<i1);break;case 4:PORTD&=~(1<<i1);break;case 5:PORTE&=~(1<<i1);break;case 6:PORTF&=~(1<<i1);break;case 7:PORTG&=~(1<<i1);break;default:break;}}//延时函数---1msvoid delay_ms2( uint16_t iysh){uint16_t iy;for(iy=0;iy<iysh;iy++){_delay_loop_2(1842);}}//接收中断1SIGNAL(SIG_UART1_RECV){unsigned char c00=UDR1;uint8_t rdpinb=0;rdpinb=PINB;switch((rdpinb&0xe0)>>4){case 0:scon_order[0]=c00;break;....//program codedefault:break;}}//发送中断1INTERRUPT(SIG_UART1_TRANS) //INTERRUPT{return;}//把GM8125初始化为多通道工作模式void uwart_init(void){uint8_t result=0;UCSR1B=0xdc; //8125复位后贞格式为11bit,与8125同步while(result!=0xf3){wd_tmer=0;delay_ms2(30);clr_port(7,PG4); //芯片复位 rst8125-PG4delay_ms2(50);setb_port(7,PG4);delay_ms2(700);clr_port(2,PB0); //多通道 MS=1时工作在单通道模式,=0工作在多通道模式PORTB&=0xe3; //111 0,00 11 PB2、PB3、PB4置0,进行8125设置此模式下MS=1读命令字,=0写命令字delay_ms2(30);//4800:UBRR1L=191; //7200:UBRR1L=127; //9600:UBRR1L=95;//19200:UBRR1L=47; //57600:UBRR1L=15; //115200:UBRR1L=7;//14400:UBRR1L=63; //28800:UBRR1L=31; //UBRR1L=127; //7200--`120--133 60--67delay_ms2(2);UDR1=0xf3; //波特率设定9600delay_ms2(25);setb_port(2,PB0); //读设定delay_ms2(300);result = scon_order[0];}clr_port(2,PB0);UBRR1L=15; //母串口波特率要为自串口波特率的6倍 57600delay_ms2(1);PORTB|=0x1c;delay_ms2(3);UCSR1B=0xd8;delay_ms2(1000); //初始化完要等一段时间才能对其接发数据}//通过串口1经8125向各个模块发送数据(多通道模式)void send1_obt(uint8_t pot,uint8_t cs){uint8_t ss;ss=PORTB&0xe3; //111 0,00 11 STAD0~2 置0附给ssswitch(pot){case 0:PORTB=ss; //111 0,00 11 PB2,PB3,PB4置0,进行8125工作方式的设置break;case 1:PORTB=ss|0x04; //000 0,01 00 选择子串口1发送break;case 2:PORTB=ss|0x08; //000 0,10 00 选择子串口2发送break;case 3:PORTB=ss|0x0c; //000 0,11 00 选择子串口3发送break;case 4:PORTB=ss|0x10; //000 1,00 00 选择子串口4发送break;case 5:PORTB=ss|0x14; //000 1,01 00 选择子串口5发送break;default:break;}//把GM8125初始化成单通道工作模式void uwart_init(void){clr_port(7,PG4); //芯片复位 rst8125-PG4delay_ms2(50);setb_port(7,PG4);delay_ms2(700);setb_port(2,PB0); //MS=1,工作在单通道工作模式下delay_ms2(30);PORTB=0x91; //选择串口4作为输出输入通道delay_ms2(30);UBRR1L=7; //63---对应波特率为14400,47----对应19200 对应115200---7delay_ms2(2);UCSR1B=0xd8;delay_ms2(1000);}//在单通道工作模式下通过串口1发送数据void send1_obt(uint8_t cs){UDR1 = cs;delay_ms2(5);}以上就是GM8125的单多通道初始化过程,注意的是在多通道工作模式下切换到单通道工作模式要等各串口数据发送完毕,否则可能出现丢数据的现象。
1 概述GM812X系列串口扩展芯片可为用户提供最简单和高性能的通用串口扩展方案,该系列芯片子串口最高波特率达38400bps。
该芯片提供两种工作模式,用户可根据需要灵活选择。
该芯片母串口和子串口的工作波特率可由软件调节,而不需要修改外部电路和晶振频率。
GM812X系列芯片的外部控制少,应用灵活,编程使用简单,适合于大多数需要多串口扩展的应用场合。
2 应用说明2.1 硬件接口GM812X系列的典型应用如图1所示:图1 典型硬件接口电路图1中选用89C51作为系统的主机,通过GM8125扩展了5个子串口,5个子串口可以与5个从机相接。
如果用户只需要扩展3个串口,则可采用GM8123,硬件连接方法和GM8125相同。
2.2 程序示例2.2.1 单通道工作模式程序示例此程序应用的环境是5个从机分别以1200、2400、4800、9600、19200bps的波特率工作,并且主机与5个从机的数据通讯采用分时的方式,即每次只对一个从机发送和接收数据。
程序以C51为例:/**************************************************************//*CPU:AT89C51 *//*晶体频率:22.1184MHz *//*机器周期:0.54uS *//*语言:C51 *//**************************************************************/#include <reg51.h>#define DELAY_TIME 60000 //Delay time/**********************I/O定义***********************/sbit MS=P3^6; //GM8125工作模式控制sbit RESET=P3^7; //GM8125复位引脚控制/******************数据变量定义*****************/unsigned char SendBuff[5]={0xaa,0x45,0x67,0xbc,0xc9};unsigned char ReceiveBuff[5]={0x00,0x00,0x00,0x00,0x00};unsigned char i=0 ,j=0 ,k=1,c=0;/*********************************************//*函数名称:delay.C *//*函数功能:延时程序*//*********************************************/void delay(unsigned int m){unsigned int n;n=0;while(n < m){n++;}return;}/******************************************************//*函数名称:MAIN.C *//*函数功能:主机主程序*//*********************************************/void main(void){TMOD = 0x20; //指定定时器1工作在方式2IE = 0x90; //开串行口中断SCON=0xc0; //串行口工作在方式3for(c=0;c<5;c++) //选择5个子串口以5种不同波特率工作{switch(c){case 0:{TH1=0xd0; //装入定时器1初值,设置工作波特率为1200bps TL1=0xd0;PCON=0x00;P1=0x11; //选择8125子通道1工作break;}case 1:{TH1 = 0xe8; //装入定时器1初值,设置工作波特率为2400bpsTL1 = 0xe8;PCON=0x00;P1=0x22; //选择8125子通道2工作break;}case 2:{TH1 = 0xf4; //装入定时器1初值,设置工作波特率为4800bpsTL1 = 0xf4;PCON=0x00;P1=0x33; //选择8125子通道3工作break;}case 3:{TH1 = 0xfa; //装入定时器1初值,设置工作波特率为9600bpsTL1 = 0xfa;PCON=0x00;P1=0x44; //选择8125子通道4工作break;}case 4:{TH1 = 0xfd; //装入定时器1初值,设置工作波特率为19200bpsTL1 = 0xfd;PCON=0x00;P1=0x55; //选择8125子通道5工作break;}default:break;}TR1=1; //启动定时器1MS=1; //GM8125工作在单通道工作模式下/*主控MCU发送/接收程序*/SBUF=SendBuff[i];while(TI==0);TI=0;i++;REN = 1;while(j!= k); //等待接收完成REN = 0; //停止接收k++;TR1=0; //T1停止}}void CommReceive(void) interrupt 4{if(RI){SBUF;ReceiveBuff[j]=RI = 0;j++;}}2.2.2 多通道工作模式程序示例此程序应用的环境是5个从机均以19200bps的波特率工作,要求主机对5个从机分别发送完数据后要等待从机向主机返回一个数据。
基于云台的单片机控制系统设计Zdh 1911摘要:本文提出了用一主单片机AT89C52通过C语言编程实现PC机与多个从单片机的串口通信,控制多台步进电机的一种方法。
主单片机通过GM 8125实现在单通道模式下的串口通信端口扩展。
PC机采用MAX 1487 芯片实现RS-485通信标准下的电平转换。
此法适用于Windows 平台,并具有很好的实时性,能够实现对云台的快速实时控制。
关键词:串口通信 MAX1487 GM8125 AT89C52 步进电机引言:在基于图像的自动跟踪系统中,首先云台控制子系统根据图像识别处理子系统得到的目标图像与监视器中心位置的误差,控制云台运动方向,实现对运动目标的实时跟踪。
从实际应用情况可以知道,目标图像在监视器显示平面中作二维运动,因此要求云台能在水平和俯仰两个向做独立运动,这就要求云台的引用两台相互独立的控制运动控制系统。
如图1所示图 1 云台系统1云台控制系统的硬件设计本文通过主单片机做数据中转实现PC机与从单片机之间的通信,PC机采用ADAM-4520、MAX1487实现PC机与单片机在RS-485通信协议下电平的转换。
主单片机通过GM8125实现PC机、从单片机片的通信端口地址扩展。
如图 21.1 PC机的RS-485串行接口RS-485采用平衡发送、差分接收数据,是一种抗干扰能力强、能够有效延伸数据传输距离、便于实现多机通信的半双工串行通信方式,其接口标准是一种多发送器的,它扩展了RS422A的性能,允许双导线上一个发送器驱动32个负载设备,通讯距离可答1200米。
采用RS-485串行通信时,在PC机与单片机之间必须有相同的通信协议,由于AT89C52单片机采用TTL逻辑电平,在PC机侧的RS-485串行口采用+12V和-12V,为使两者相连接,在与PC机相联接的ADAM-4520侧用MAX1487进行电平转换。
如图 2中电平转换部分。
其中ADAM-4520用于RS-232到RS-485之间的转换;MAX1487 用于RS-485到TTL电平的转换。
基于机车北斗卫星、GPS双模的CIR卫星定位单元设计李庆【摘要】机车综合无线通信设备( CIR)用于实现机车和调度台之间的通信,卫星定位单元是CIR的重要组成之一,通过双模卫星定位单元的系统架构完成硬件和软件设计。
现场试验结果表明,设计的双模卫星定位单元具有北斗卫星、GPS卫星双套定位导航系统定位能力,具有更高的可靠性、稳定性、精确性,满足CIR的通信要求。
%The cab integrated radio communication device ( CIR) is designed to fulfill the communication between the train and the dispatching station. The satellite positioning unit is one of the important parts of CIR. The design of the hardware and software of the unit is conducted with a dual mode positioning unit system architecture. Field experiment results show that the designed dual mode positioning unit has the combined functions in navigation system positioning of both CNSS and GPS satellite. It has higher reliability, stability, accuracy, and satisfies the requirements of CIR communication.【期刊名称】《铁道标准设计》【年(卷),期】2015(000)011【总页数】4页(P114-116,117)【关键词】卫星定位单元;机车综合无线通信设备;北斗卫星导航系统;全球卫星定位系统【作者】李庆【作者单位】中铁第一勘察设计院集团有限公司,西安 710043【正文语种】中文【中图分类】U285.21+1;TN925+.1GPS是世界上第一个成熟、可供全民使用的全球卫星定位导航系统。
串口扩展芯片GM8125在多功能车载移动终端中的应用曹忠成【摘要】当前,基于微处理器的嵌入式系统得到了广泛的应用,许多外围电路功能模块也具备了UART串口通讯功能,而现阶段的微处理器芯片通常只有1~2个串口,很少带有3个或3个以上的串口,很难满足多串口通讯的需要.基于此,介绍了一种1转5的串口扩展芯片GM8125,并分析了其功能特性.该方案已经成功应用到多功能车载移动终端中,并取得了满意的效果.【期刊名称】《现代电子技术》【年(卷),期】2006(029)013【总页数】3页(P132-133,136)【关键词】单片机;串口扩展;GM8125;车载终端【作者】曹忠成【作者单位】胜利油田,钻井工艺研究院,山东,东营,257017【正文语种】中文【中图分类】TN406多功能车载移动终端,主要由单片机及全球定位系统GPS模块、通用无线分组业务GPRS模块、指纹识别、汽车黑匣子等模块组成。
单片机与这些模块之间进行串行通讯,直接利用单片机的功能特点,无法满足这一需要,利用一片串口扩展芯片GM8125则可以很好地解决这个问题。
1 GM8125介绍GM8125具有将1个全双工串口扩展为5个全双工串口的功能,其封装形式有单电源和多电源之分。
多电源封装的GM8125 多用在航空等工程应用中,实际中采用的是单电源封装的GM8125 ,图1是其引脚图。
图1 GM8125引脚排列图5个子串口的波特率可调,最高可达38 400 b/s,通信协议的帧长度可调,分为10位1帧或者11位1帧两种模式。
GM8125共有6个串口,1个母串口,5个子串口,允许同时接收或者发送数据。
5个子串口分别与5个外围设备相连,母串口与单片机的串口相连,由此实现了只有1个串口的单片机与5个设备的连接。
GM8125 有3根发送地址线和3根接收地址线,用来确定数据的接收或者发送操作是发生在哪个子串口。
GM8125 扩展后,单片机向串口设备发送信息的过程如下:(1) 单片机先向地址STADD2~0 置入希望发送数据的子串口地址,再通过单片机的TXD口向母串口发送希望传输的数据。