APC220 USB无线数传1000米传输距离
目录
1 概 述
2 性能描述
3 引脚定义
4 设备互联方式
5 教程
5.1 准备
5.2 模块配置
5.3 通信测试
6 疑难解答
概 述
这个模块是为了做ROBOT而选择的东东。当然,如果你有更好的想法,比如用于无线防盗报警器、远程遥控、数据交换、手持终端PDA、无线耳机、数字视频、无线鼠标、无线键盘以及其他短距离高速无线应用等,他也能够完全胜任。我们做ROBOT的想法是:把大部分功能集成化,从而解放主CPU。
APC220模块是高度集成半双工微功率无线数据传输模块,其嵌入高速单片机和高性能射频芯片。创新的采用高效的循环交织纠检错编码,抗干扰和灵敏度都大大提高,最大可以纠24bits连续突发错误,达到业内的领先水平。 APC220模块提供了多个频道的选择,能够透明传输任何大小的数据,而用户无须编写复杂的设置与传输程序,并提供UART/TTL接口。同时小体积,宽电压运行,较远传输距离,丰富便捷的软件编程设置功能,使APC220模块能够应用与非常广泛的领域。了解更多 APC220 介绍。
性能描述
电源 3.3 – 5.5V (±50mV 纹波)
发射电流 ≦35mA@10mW
接收电流 ≦30mA
休眠电流 ≦5uA
传输距离 1000米传输距离 (开阔地可视距离)
工作湿度 10%~90%(无冷凝)
工作温度 -20℃ - 70℃
尺寸 37mm x 17mm x 6.5mm
工作频率 420MHz to 450MHz (1KHz步进)
调制方式 GFSK
频率间隔 200KHz
发射功率 20mw (10级可调)
接收灵敏度 -117dBm@1200bps
空中传输速率 1200 - 19200bps
接口速率 1200 - 57600bps
接口效验方式 8E1/8N1/8O1
接口缓冲空间 512bytes
引脚定义
标号
定义
说明
1
GND
GND
2
VCC
3.3V-5V
3
EN
电源使能端,≥1.6V或悬空使能,≤0.5V休眠
4
RXD
URAT输入口,TTL电平
5
TXD
URAT输出口,TTL电平
6
AUX
URAT信号,接收为低,发送为高
7
SET
设置参数,低有效
设备互联方式
<img alt="" src="http://images.ncnynl.com/arduino/2016/498px-APC220_4.jpg" width="498" height="300" />
UART/TTL 电平
<img alt="" src="http://images.ncnynl.com/arduino/2016/500px-APC220_5.jpg" width="500" height="262" />
RS485/RS232 电平
<img alt="" src="http://images.ncnynl.com/arduino/2016/343px-APC220_6.jpg" width="343" height="300" />
USB/TTL 电平
<img alt="" src="http://images.ncnynl.com/arduino/2016/305px-APC220_7.jpg" width="305" height="300" />
USB/USB
教程
本教程将引导您学习 如何实现电脑和 Arduino 的无线通讯。在实验结束时,您可以在电脑上收到从 Arduino发送的“Hello!”。
准备
硬件
APC220 模块 x2
USB 转串口 x1
Arduino 控制板 x1
USB 线A-B for Arduino x1
软件
RF-magic 点击下载 RF-Magic.
Arduino IDE 1.0.6 点击下载 Arduino IDE
串口助手: 点击下载 Serial debugging assistant
注意:
本实验中我们的 Arduino 控制板用的是 Romeo(Leonardo)。在代码中它使用 Serial1 而不是 Serial。如果您使用其他类型的控制板,例如: Uno, Mega, Bluno 等等。请将 Serial1.println() 修改为 Serial.println(),否则您将无法下载代码。
Arduino IDE 1.6.* 由于软件问题,不能正常显示/收发数据。
模块配置
1 将天线旋紧在 APC220上,将其插在 USB转串口 上,最后再查到你的电脑上。
2 下载并安装 USB转串口 的驱动。前往 Silicon Labs 下载相应驱动
3 打开设备管理器,找到您的 USB转串口 的串口号,这里是 COM8。
4 用管理员身份双击打开应用 APC22X_V12A.exe (即:RF-magic ) Windows XP可以直接打开。 阅读:【英文】如何避免每次都需要管理员身份打开?
注意:打开软件后,软件将自动打开串口,并有提示。如果提示打开串口失败,请用 管理员身份打开 或者 从设备管理器中将默认的串口号改为较小的串口号,如:“COM1”。
5 按照下图中红色标注里的参数配置(默认值),点击 写入 Write W。
<img alt="" src="http://images.ncnynl.com/arduino/2016/APC220_parameter_setting10.png" width="412" height="371" />
Configuration
<img alt="" src="http://images.ncnynl.com/arduino/2016/APC220_parameter_setting20.png" width="412" height="371" />
Write and Read setting
设置
选项
默认参数
收发频率(RF frequency)
420MHz-450MHz(分辨率1KHz,精度±100Hz)
434MHz
空中速率(RF TRx Rate)
1200,2400,4800,9600,19200bps
9600bps
输出功率(RF Power)
0-9
9
串口速率(Series Rate)
1200,2400,4800,9600,19200,38400,57600bps
9600bps
网络地址码(NET ID)
0-65535(16位)
12345
节点地址码(NODE ID)
123456789012
串口效验(Series Patity)
Disable,Odd Patity,Even Patity
Disable
6 对另外一块 APC220进行相同的配置。
通信测试
1 将一块插在电脑上,另一块插到 Arduino上(如果没有 相应的接口,可以单独按照管脚说明接线)。
<img alt="" src="http://images.ncnynl.com/arduino/2016/350px-APC220assemble.jpg" width="350" height="263" />
One on computer to receive “Hello”
<img alt="" src="http://images.ncnynl.com/arduino/2016/350px-APC220assemble22.jpg" width="350" height="263" />
Another on computer to send “Hello”
2 上传程序。
注意:请将 Serial1修改为 Serial如果您的 Arduino控制板是 Uno, Bluno, Mega 或其他使用串口0的设备。
//The sketch is tested on: Romeo v2 (Leonardo)
void setup()
{
Serial1.begin(9600); //Set serial baud rate to 9600
}
void loop()
{
Serial1.println("Hello!"); //print out hello string
delay(1000); //1 second delay
}
3 用串口助手或 Arduino串口监视窗打开COM8,您将看到“Hello!” 每隔一秒打印在电脑的窗口上。 (注意:Arduino IDE 1.6.5 不能正常显示)
<img alt="" src="http://images.ncnynl.com/arduino/2016/274px-APC220checkHello1.png" width="274" height="360" />
Arduino serial monitor on COM8( IDE 1.0.6)
<img alt="" src="http://images.ncnynl.com/arduino/2016/450px-APC220checkHello2.png" width="450" height="350" />
Serial Assistant on COM8
疑难解答
Q 1. 设备之间不能正常通讯,是什么原因?
A:
1.两端的通讯协议不一致,如:波特率,校验不一致。
2.两端的频点,空中波特率不一致。
3.不是同一系列产品。
4.电源连接不正常。
5、模块已损坏。
6.模块EN脚设置错误
7.通讯距离超过范围,或天线接触不良。
Q 2. 传输距离很近,根本没有所谓的1km?
A:
1.电压超过范围。
2.电源纹波过大。
3.天线接触不良或天线类型不对。
4.天线过与靠近金属表面或模块接地面积太小。
5.接收环境恶劣,如建筑物密集,有强干扰源。
6.有同频干扰。
Q 3. 使用注意事项:
A:
考虑到空中传输的复杂性,无线数据传输方式固有的一些特点,应考虑以下几个问题。
1)无线通信中数据的延迟
由于无线通信发射端是从终端设备接收到一定数量的数据后,或等待一定的时间没有新的数据才开始发射,无线通信发射端到无线通信接收端存在着几十到几百毫秒延迟(具体延迟是由串口速率,空中速率以及数据包的大小决定),另外从无线通信接收端到终端设备也需要一定的时间,但同样的条件下延迟时间是固定的。
2)数据流量的控制
APC220模块虽然有512bytes大容量缓冲区,但若串口速率大于等于空中速率,则存在数据流量的问题,可能会出现数据溢出而导致的数据丢失的现象。在这种情况下,终端设备要保证串口平均速率不大于60%空中速率,如串口速率为9600bps,空中速率为4800bps, 终端设备每次向串口发送100字节,那么终端设备每次向串口发送的时间约104ms,(104ms/0.6)*(9600/4800)=347ms,所以终端设备每次向串口发送100字节每次间隔不小于347ms,以上问题则不会出现。
3)差错控制
APC220模块具有较强的抗干扰能力,在编码已经包含了强大的纠检错能力。但在极端恶劣的条件下或接收地的场强已处于APC220模块接收的临界状态,难免出现接收不到或丢包的状况。此时客户可增加对系统的链路层协议的开发,如增加类似TCP/IP中滑动窗口及丢包重发等功能,可大大提高无线网络的使用可靠性和灵活性。
4)天线的选择
天线是通信系统的重要组成部分,其性能的好坏直接影响通信系统的指标,用户在选择天线时必须首先注重其性能。一般有两个方面,第一选择天线类型;第二选择天线的电气性能。选择天线类型的意义是:所选天线的方向图是否符合系统设计中电波覆盖的要求;选择天线电气性能的要求是:选择天线的频率带宽、增益、额定功率等电气指标是否符合系统设计要求。因此,用户在选择天线时最好向厂家联系咨询,APC220 要求的天线阻抗为50欧姆。
5)电源方面
此模块电源以外的其它管脚的工作电平应保证:同模块的电源电压一致,否则会损坏模块。
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖!
DFRobot 商城购买链接