用户中心
· 企业空间 首页 | 资讯 | 技术 | 产品 | 企业 | 直播 | 专题 | 智能制造 | 论坛| 在线研讨会
武汉波仕电子有限公司
企业空间 > 案例应用 > 正文
  • 串口波特率转换的实现
  • 发布时间:2012/3/12 14:44:44   修改时间:2012/3/12 14:44:44 浏览次数:2447
  • 串口波特率转换的实现

                        武汉波仕电子有限公司 孙汉华 027-51518044

     

    串口通信,就是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转接盒大小,如图的产品左边串口ADB-9孔的RS-232口,右边串口BDB-9针的RS-232口,上边为波特率设置的跳线,下面为5V电源接线端子。左边DB-9孔可以直接外插计算机的RS-232口,右边的DB-9针引脚分配同计算机的RS-232口,但是都只有RXDTXDGND三根线。

    波特率转换器的两边的串口可以分别独立设置波特率,见下表。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;

      }

    本文介绍的串口波特率转换的硬件方法和单片机代码,对不同波特率之间的串口通信具有一定的使用价值。波特率转换器的优点在于使用简单方便,不足之处在于只能够转换波特率而没有对数据位、停止位、校验位进行转换,而且对于不常见的波特率的转换还需要定做。如果要实现功能全面的波特率等各种格式的全面转换,还是要用计算机加上专门的波特率转换软件,通过对计算机的两个串口进行波特率等格式的设置,而两个串口在计算机内部进行数据透明传输。我们已经以另外文章《串口波特率转换的纯软件实现》予以了介绍。

  • 企业介绍
波士电子1993年创立于北京。波士电子致力于RS232/RS485产品的开发。 波士电子创造了许多种世界上第一的RS232/RS485产品,拥有数10项专利。 2007年:世界上第一个以太网-串口光纤转换器:(OPET232L1) 2007年:世界上第一个USB-串口光纤转换器:…  更多>>
  • 联系方式

武汉波仕电子有限公司

联系人:孙汉华

地址:关东科技工业园

邮编:430074

电话:027-87561487

传真:027-87561486

公司网址:http://www.bosika.com

  • 该空间手机版

扫描此二维码即可访问该空间手机版

  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件:
您还没有登录,请登陆,
如果您还没有注册,点击这里注册.
  • 网友反馈
  • 孙红杰 在2024/7/4 8:54:00留言
  • 留言类型:我想得到贵公司产品详细资料,我想得到贵公司产品的价格信息,我让贵公司产品销售人员联系我,我让贵公司技术支持人员联系我,
  • 详细留言:需要USB转串口的转换器,能够支持的最高速度是921600bps,稳定可靠,长时间不存在数据丢失和错误等问题。
  • 李孝浪 在2022/8/5 10:22:00留言
  • 留言类型:我想得到贵公司产品详细资料,
  • 详细留言:有没有921600转115200的波特率转换器
  • Mike Ma 在2020/1/30 14:06:00留言
  • 留言类型:得到贵公司产品的价格信息,贵公司产品销售人员联系我,
  • 详细留言:我要买20个无源CAN隔离器,可以给我报价吗? 我公司是OSC Automation Engineering Blk 178 Edgefield Plains 09-224 Singapore 820178
  • 王力 在2014/12/15 18:05:00留言
  • 留言类型:贵公司产品销售人员联系我,
  • 详细留言:我已经购买了贵公司的ARK-2120无风扇嵌入式工控机,除了你家我还看了: E+H:http://www.endress-h.com pilz:http://www.pilz-zh.com 邦纳:http://www.banner-cn.com 穆格:http://www.moog-cn.com 穆格伺服阀:http://www.moog-cn.com 哈威:http://www.hawe-zh.com 力士乐:http://www.rexroth-zh.com 请问这些是正规的吗?可以开发票吗?
  • 汤庆 在2014/11/7 15:57:00留言
  • 留言类型:我想得到贵公司产品详细资料,我让贵公司产品销售人员联系我,我让贵公司技术支持人员联系我,
  • 详细留言:能否将电话的音频信号转换成485信号传输?有没有这样的设备?
更多请进入空间管理中心查看
关于我们 | 网站地图 | 联系我们
© 2003-2018    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688
我要反馈