串口波特率转换的实现
武汉波仕电子有限公司 ___向媛
串口通信,就是RS-232/RS-485通信,要求通信的双方波特率等通信格式一样才可以通信成功。可是在许多情况下,两种不同格式比如不同波特率的串口也要相互通信,这就必须进行串口波特率等格式的转换。本文介绍了如何实现串口波特率的转换。
如果串口设备1与串口设备2之间需要通信,但是它们之间的通信波特率不一样。实现串口波特率的转换的原理就是利用波特率转换器的两个串口,称为串口A和串口B,分别设置为不同的波特率。串口A的波特率通过产品的J2、J1、J0来设置,串口B的波特率通过产品的K2、K1、K0来设置,见表格。其中串口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语言编写,核心功能就是先将两个串口UART1和UART2根据跳线设置的状态进行波特率等初始化设置,然后随时将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;
}
本文介绍的串口波特率转换的硬件方法和单片机代码,对不同波特率之间的串口通信具有一定的使用价值。波特率转换器的优点在于使用简单方便,不足之处在于只能够转换波特率而没有对数据位、停止位、校验位进行转换,而且对于不常见的波特率的转换还需要定做。如果要实现功能全面的波特率等各种格式的全面转换,还是要用计算机加上专门的波特率转换软件,通过对计算机的两个串口进行波特率等格式的设置,而两个串口在计算机内部进行数据透明传输。我们已经以另外文章《串口波特率转换的纯软件实现》予以了介绍。
详细参数请到www.查看。咨询订购电话:027-59708940/51518046 15102729700向小姐 QQ咨询订购:2360190989 MSN:bosicomcn@live.cn
词条
词条说明
串口多机通信,就是RS-232/RS-485多机通信,要求通信的下位机必须带地址。通信时由上位机先发送某个下位机的地址,位于同一个网络中的所有下位机都同时读取这个地址的值,然后与自己的地址进行比较,如果地址相同则接收后面的数据,如果地址不同则不读取后面的数据。某些情况下,下位机也可以主动向上位机发送数据,但是必须按照预先设置的格式在数据前面加上下位
波仕推出XP免驱的USB串口转换器 为了满足用户在Windows XP用户免驱的USB串口转换器的需求,武汉波仕电子特别**推出纪念版XP免
RS-485多主机通信的组网方式 ________ 武汉波仕电子有限公司 向媛 传统的RS-485组网方式只允许一个主机(上位机),但是在许多情况下要求有多台RS-485主机进行组网。本文以波仕电子的产品为例介绍两种RS-485多主机通信产品及其组网方式----采用RS-485共享器和采用RS-485交换机。采用
RS-485多从机竞争的解决方案
公司名: 武汉波仕卡科技有限公司
联系人: 向小姐
电 话: 18995634129
手 机: 15102729700
微 信: 15102729700
地 址: 湖北武汉洪山区洪山区关东科技园
邮 编: 430074
¥1350.00
¥1400.00
¥500.00
¥1.00
OHIO SEMITRONICS转换器D-481565X7868A
¥50000.00
¥360.00
¥2006.00