首页 新闻 工控搜 论坛 厂商论坛 产品 方案 厂商 人才 文摘 下载 展览
中华工控网首页
  P L C | 变频器与传动 | 传感器 | 现场检测仪表 | 工控软件 | 人机界面 | 运动控制
  D C S | 工业以太网 | 现场总线 | 显示调节仪表 | 数据采集 | 数传测控 | 工业安全
  电 源 | 嵌入式系统 | PC based | 机柜箱体壳体 | 低压电器 | 机器视觉
不同波特率的串口相互通信解决方案
收藏本文     查看收藏
 
串口通信,就是RS-232/RS-485通信,要求通信的双方波特率等通信格式一样才可以通信成功。可是在许多情况下,两种不同格式比如不同波特率的串口也要相互通信,这就必须进行串口波特率等格式的转换。本文介绍了如何实现串口波特率的转换。
 
如果串口设备1与串口设备2之间需要通信,但是它们之间的通信波特率不一样。实现串口波特率的转换的原理就是利用波特率转换器的两个串口,称为串口A和串口B,分别设置为不同的波特率。串口A的波特率通过产品的J2J1J0来设置,串口B的波特率通过产品的K2K1K0来设置,见表格。其中串口A按照串口A设置的波特率接收串口设备1的数据并且立即从串口B按照串口B设置的波特率发送出去,同样串口B以串口B设置波特率收到串口哦设备2的数据立即从串口A以串口A设置的波特率向串口设备1发送出去。
 

 
     RS-232波特率转换器用于实现不同波特率的RS-232口的通信转换,纯硬件跳线设置,无需任何软件设置。还可以与RS-232/485转换器配合使用,可以实现RS-485的不同波特率之间的通信。串口波特率转换器的外形为DB-9/DB-9转接盒大小,如图的产品左边串口A为DB-9孔的RS-232口,右边串口B为DB-9针的RS-232口,上边为波特率设置的跳线,下面为5V电源接线端子。左边DB-9孔可以直接外插计算机的RS-232口,右边的DB-9针引脚分配同计算机的RS-232口,但是都只有RXD、TXD、GND三根线。
 
波特率转换器的两边的串口可以分别独立设置波特率,见下表。0-断开,1-短路。独有波仕零延时自动收发转换技术,确保适合所有格式的串口软件包括16进制!

串口A的波特率设置
 
串口B的波特率设置
J2
J1
J0
 波特率
K2
K1
 K0
 波特率
 0
 0
 0
 1200
 0
 0
 0
 1200
 0
 0
 1
 2400
 0
 0
 1
 2400
 0
 1
 0
 4800
 0
 1
 0
 4800
 0
 1
 1
 9600
 0
 1
 1
 9600
 1
 0
 0
19200
 1
 0
 0
19200
 1
 0
 1
38400
 1
 0
 1
38400
 1
 1
 0
57600
 1
 1
 0
57600
 1
 1
 1
115200
 1
 1
 1
115200

  
波特率转换器的内部有一个带双串口的单片机。单片机自动完成两个串口之间的数据交换。单片机程序用C语言编写,核心功能就是先将两个串口UART1UART2根据跳线设置的状态进行波特率等初始化设置,然后随时将UART1接收的数据立即送到UART2的发送区、以及将UART2接收的数据立即送到UART1的发送区。核心代码如下:
               //串口1发送字符数组函数
            void Uart1_Sendstr(uchar len,uchar stemp[])
           {          uchar i=0;
                for(i=0;i<len;i++)
                {       TI=0;
                       SBUF=stemp[i];
                        while(TI==0);
                       TI=0;       }      }
            //串口2发送字符数组函数
                void Uart2_Sendstr(uchar len,uchar s[])
            {    uchar i=0;
                while(len--)
              {    Uart2_Senddat(s[i]);
                      i++;    }     }
         //      ★★主函数★★★
void main()
{          uchar Uart1Set=0,Uart2Set=0;
 PortInit();   //按键端口初始化                 Uart1_Init();     //串口1初始化
 Uart2_Init();       //串口2初始化 
Uart1Set=J2;         Uart1Set=(Uart1Set<<1)|J1;
 Uart1Set=(Uart1Set<<1)|J0; //读取端口值              
 switch(Uart1Set)
 {       case 0x00:TH1=0xFF;TL1=0xFF;break;         //       115200
            case 0x01:TH1=0xFE;TL1=0xFE;break;        //       57600
            case 0x02:TH1=0xFD;TL1=0xFD;break;        //       38400
            case 0x03:TH1=0xFA;TL1=0xFA;break;         //       19200
            case 0x04:TH1=0xF4;TL1=0xF4;break; //       9600
            case 0x05:TH1=0xE8;TL1=0xE8;break; //       4800
            case 0x06:TH1=0xD0;TL1=0xD0;break;         //       2400
            case 0x07:TH1=0xA0;TL1=0xA0;break;         //       1200
            default:break;
 }
本文介绍的串口波特率转换的硬件方法和单片机代码,对不同波特率之间的串口通信具有一定的使用价值。波特率转换器的优点在于使用简单方便,不足之处在于只能够转换波特率而没有对数据位、停止位、校验位进行转换,而且对于不常见的波特率的转换还需要定做。如果要实现功能全面的波特率等各种格式的全面转换,还是要用计算机加上专门的波特率转换软件,通过对计算机的两个串口进行波特率等格式的设置,而两个串口在计算机内部进行数据透明传输。我们已经以另外文章《串口波特率转换的纯软件实现》予以了介绍。

 

状 态: 离线

公司简介
产品目录
供应信息

公司名称: 武汉波仕电子有限公司
联 系 人: 孙汉华
电  话: 027-87561487
传  真: 027-87561486
地  址: 关东科技工业园
邮  编: 430074
主  页:
 
该厂商相关解决方案:
用HUB实现CAN设备的环形网络通信
隔离RS-485转换器在“两会”投票器上的应用
CAN光纤转换器在宝马生产线上的应用
USB智能共享器无须设置
自带地址编码的RS-485通信
USB接口的光电隔离保护方案及其实现
485A2+应用案例-485多机组网中继转换一体化
波仕卡485A转换器的使用技巧
RS-485的手拉手连接
RS-232/485转换器的复用方案
波仕RS232转RS485串口远距离多机通信-煤矿业应用案例
如何选择USB串口转换器
更多方案...
立即发送询问信息在线联系该解决方案厂商:
用户名: 密码: 免费注册为中华工控网会员
请留下您的有效联系方式,以方便我们及时与您联络

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 不良信息举报
工控网客服热线:0755-86369299
版权所有 中华工控网 Copyright©2022 Gkong.com, All Rights Reserved