当前位置:首页 > 新闻中心 >  行业新闻  > 蓝牙串口-多机通信的实现
蓝牙串口-多机通信的实现
发布时间:2012.08.09  浏览次数:

蓝牙/串口转换器可以将计算机、平板电脑或者智能手机的蓝牙信号转换出RS-232或RS-485串口。波仕电子的型号为BLU232的蓝牙串口转换器自带RS-485和RS-232口,是特别为工业RS-485通信而设计的。蓝牙串口转换器是目前最方便地实现智能手机以及平板电脑扩展出RS-232/RS-485串口的方案。蓝牙串口目前受到2个限制:1、距离的限制。蓝牙的距离一般为10米,有号称100米的实际达不到。正因为距离的限制所以从机不会太多。2、主机程序编写的困难。平板电脑或智能手机一般为Android或者iOS,这对于适应了计算机Windows程序的工业通信开发者比较困难。
传统的RS-485多机通信中,由RS-485主机向总线上所有RS-485从机发送需要通信的某个从机的地址通信,每个从机都将此地址与自己的地址进行比较,如果相同则与主机继续通信,如果地址不同则不再通信。在这种方案中,有3个特点:1、主机发送的信息必须先带有从机的地址,2、从机必须带地址并且本身有地址识别功能,3、主机如何对地址编码以及从机如何解码都必须预先设计一致才能配合好。这些特点对于Windows下的主机程序开发者来讲可能比较容易,因为已经有大量成熟的应用程序甚至专门的组态软件。
本文介绍的蓝牙串口多机通信的简单实现方案就是不修改Android主机的程序而实现RS-485的多机通信。本文介绍的方案是将从机设定或者转换为不同的波特率,主机每次设定为某一种波特率,这样每次就只能与一个从机通信,从而实现蓝牙串口多机通信。
 
1、蓝牙串口转换器简介
 
 
波仕BLU232蓝牙串口转换器将计算机或者智能手机的蓝牙信号转换出RS-232和RS-485串口。产品广泛应用于各种场合的短距离无线通信、工业控制领域。产品本身可用“蓝牙串口”等程序进行通信速率、格式等的设定。BLU232可以作为蓝牙信号扩展出的虚拟串口,无需修改已有的串口软件。
BLU232的硬件安装非常简单:接上5V电源即可。BLU232可以连接到计算机或者智能手机的蓝牙信号,此时BLU232就相当于是计算机扩展出来的一个无线RS-232/485口。串口默认为波特率为9600,配对密码:1234,默认名称:BOLUTEK。注意BLU232有DB-9孔和DB-9针的RS-232口,它们实质上是同一个口,仅仅是为了方便用户的使用。
  
 
2、 为智能设备蓝牙扩展无线串口
BLU232可以为带蓝牙的平板电脑或智能手机扩展出一个无线串口。1、将BLU232接上电源,LED灯亮。 2、蓝牙——“添加蓝牙设备”,无线扫描找到蓝牙BOLUTEK,输入配对密码:1234。 3、BLU232默认为从机状态、波特率等格式为(9600,n,8,1)。在ANDROID下可以使用“蓝牙串口.apk”等软件进行智能手机的串口通信。
 
3、BLU232的波特率设置指令
 BLU232可以使用“蓝牙串口”等软件进行波特率等参数的设置。在发送栏键入指令,每一个指令都必须以Enter结尾,就是必须在指令的最后再多敲一个回车键。5、默认波特率为9600,如果更改了波特率,那么以后发送指令的波特率必须是新设置的波特率,所以每次修改一定要记住。当然也有查询波特率的指令6、指令不区分大写和小写,效果一样。7、设置完毕后就可以发送和接收这个波特率的从机数据了!
以下为一些常用的修改波特率的AT指令,注意最后要加回车换行,不分大小写。
 AT+BAUD1  设置波特率为1200;AT+BAUD2  设置波特率为2400;
AT+BAUD3  设置波特率为4800;AT+BAUD4  设置波特率为9600(默认);
AT+BAUD5  设置波特率为19200;AT+BAUD6  设置波特率为38400;
AT+BAUD7  设置波特率为57600;AT+BAUD8  设置波特率为115200;
AT+DEFAULT  恢复默认设置;    AT+RESET  软件复位/重新启动;
如果设置后忘记了波特率,那么就只能在各种波特率下发送AT+BAUD4(加回车)或者AT+DEFAULT(加回车),直到设置波特率为默认的9600成功后就会在“蓝牙串口”的接收框显示+BAUD=4 OK
 
4、从机实现串口波特率转换
为了解决在蓝牙串口多机通信的问题,波仕电子在世界上首次提出了一种多波特率的多机通信方式。本来是相同波特率的RS-485从机设备,我们人为地将从机进行串口波特率的转换。当多个从机都转换为不同的波特率后,由于每个RS-485从机发送信号的波特率不同,而主机同一时间只能够收到某一种波特率的信号,这样就简单地实现了蓝牙串口多机通信。本节介绍如何实现串口波特率的转换。
串口波特率转换器用于实现不同波特率的RS-485/RS-232口的通信转换,纯硬件跳线设置,无需任何软件设置。串口波特率转换器的外形为DB-9/DB-9转接盒大小。串口波特率转换器的内部有一个带双串口的单片机。单片机自动完成两个串口之间的数据交换。单片机程序用C语言编写,核心功能就是先将两个串口UART1和UART2根据跳线设置的状态进行波特率等初始化设置,然后随时将UART1接收的数据立即送到UART2的发送区、以及将UART2接收的数据立即送到UART1的发送区。
       
上位机串口A的波特率通过产品的J2、J1、J0来设置,下位机串口B的波特率通过产品的K2、K1、K0来设置。波特率转换器的两边的串口可以分别独立设置8种波特率:1200,2400,4800,9600,19200,38400,57600,115200。
由于每次主机蓝牙串口只能够设置为某一种波特率,所以也就每次只能给与某一个从机进行通信,其它从机即使同时发送信号但由于波特率不一样所以也不会对主机产生影响,这样就实现了多机通信。这种方案的优点之一在于完全无需修改主机和从机的程序,缺点是最多8个下位机,因为这种串口波特率转换器只能够提供8种不同的波特率。这种方案的优点之二在于如果用户自己可以修改从机的波特率,那么可以实现零成本的解决方案。