串口的空中延展

1. 串口空中延展的意义

串口作为一个老资格的通讯端口,在大多数的设备中是作为日志的打印口或调试窗口;对于速度要求不高的情况下,也作为数据交互通道。
串口优点在于简单易用,仅需芯片自身的底层驱动支持即可完成功能;其次两个设备的串口之间交互极其简单,无走线要求,可随时断开或连接端口,设备的原有功能不受任何影响。因此,串口会被频繁使用,但由于串口的打印是实时的,在设备系统没有完全启动之前,串口日志或数据是无法被缓存到设备的存储介质,一旦中途重启或掉电,在缓存区的数据也会丢失。故当前的办法,就是上位机(PC电脑)保持串口线连接,即时保存日志在上位机侧,这样就导致几个问题:1)设备必须放置在上位机旁,距离范围取决于串口线的长度;2)有多个设备时,不好管理,串口的连接开始杂乱;3)若设备必须放置在密封的盒子,就无法获取串口数据。以上这些因素,也是实现串口空中延展的意义所在。
 另外,由于串口的易用性,空中延展的串口使用上与普通串口并无区别,用于数据的无线透传更是省事。

2. 成品的结构和功能测试

成品的示意图,命名为“AirUart”

1)2.4G无线通讯模块。最大支持速率到2Mbps
2)指示灯。无线模块配对连接后,指示灯亮;数据收发时,指示灯闪烁
3)UART串口。用于连接目标设备或PC上位机等。
        管脚依次为:电源+5V  串口发送TX  串口接收RX  电源地
    注:TX/RX管脚对应于所连接串口的发与收 

连接示意图

 AirUart应用实测
 

串口COM1是本地操控端,波特率115200 bps,操作交互窗口见右侧置顶界面;
串口COM4是远程设备端,波特率57600 bps,设备串口窗口见左侧背景界面;

信号范围测试

在空旷环境下,信号范围最大延伸可达50米远;稳定通讯的最大距离约为20米


传输速率测试

信号良好的无干扰环境下,串口使用默认波特率:115200 bps,发送的字节经由PC的串口 --> AirUart --> AirUart --> 再到达PC端,这个过程实测的最大传输速率约为5.6 kB/s。

 3. AirUart的功能详情

AirUart采用点对点的无线通讯方式,即收发双方都是唯一的。无线通讯的地址和频道,默认是通过自动协商机制获得一组随机值,也可以在“AT”模式下人为设定固定值。
AirUart小板上电后,默认进入自动配对模式。当指示灯点亮时,表示两块小板配对成功;否则表示小板为未匹配状态,无法与远端串口交互。
串口默认波特率是115200 bps,当AirUart处于未匹配状态时,往串口输入“ATM”字符进入AT模式,可配置小板的参数;参数的命令说明可按界面提示去输入“? + 回车键”来获得。由于部分串口工具无法支持中文,为了避免乱码,串口界面内容都是英文描述,如下所示。

Enter "AT" mode ('?' to help)

>:
>: ?
Commands list:
AT+BAUD=<baudrate>
         Option: 9600 14400 19200 28800 38400 57600 115200
AT+CHN=<channel>
         Option: 1 ~ 125 (0x7D)
AT+ADDR=<dev_addr>
         Option: 1 ~ 65535 (0xFFFF)
AT+INFO
         Print current setting
AT+SAVE
         Activate your changes and quit "AT" mode
AT+RESET
         Reset setting to enable auto-probe

>:

 各个配置命令,详情如下:

AT+BAUD=<波特率>默认值115200。可选:9600,14400,19200,2880,38400,57600,115200
AT+CHN=<无线频道>默认由协商机制随机决定。可选:1 ~ 125
若有多组小板,为了避免相互干扰,各组所设值要求间隔一个频道,比如1和3 ,或,2和4。
AT+ADDR=<无线地址>默认由协商机制随机决定。可选:1 ~ 65535
AT+INFO显示当前所有参数的值
AT+SAVE保存当前的参数,并退出AT模式。只有退出AT模式,才能让参数生效。AT模式期间,自动协商机制不会运行。
AT+RESET将所有参数重置为默认值


4. 数据交互的注意事项

在无线传输时,虽然有ACK握手机制和丢失重传机制来保证数据分包的传递,但无法保证整包的完整性,特别是周围有干扰源的情况下,可能会引起分包丢失;同时,串口本身不属于可靠传输,不会识别异常数据,需要上层代码负责可靠性检查。
AirUart可支持最大512字节的数据发送包,建议每发送512字节就等待接收方确认完成后,再继续发送。若一次性发送的数据包过大,会造成AirUart缓存区溢出,字符会被自动丢弃,直到缓存重新腾出空间为止。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值