2、需要外加一个单片机来进行数据收发控制和设置通信芯片的。
3、如果通信芯片不需要设置,那么就可以直接将所需要收到的数据送到通信芯片的RXD脚即可。
一个发送,一个接收。
关于315M无线模块,一般是一个串行的DATA口,超再生接收模块也是这样一个DATA数悄凳迅据口,不过两者对通信数据(理解为通信波形)不是一致的,像直接使用串启此行口的话很难或者说基本不可能做到,数据的一致。
也就是串口设置不会让发送的数据解调出来。说白了,调制与解调不可能都用串口那种很死的通信码来实现。调制和解调不是一摸一样的规则。
扩展资料:
无线数传模块的发射功率不大,体积较小,与有线连接的串行通信相比有如下的3点不同。
参数匹配问题:有线连接的通信程序中数据帧帧格式、串口速率可设置灵活,连接线本身对这两个参数无太大限制。
而数传模块的串口帧格式、串口速率一般相对固定,如串口帧格式可设置从成(1,8,1)或(1,9,1),串口数据传输速率固定为4800bit/s或9600bit/s等,使用无线模块的通信程序在这两个参数上应与模块一致。
延时问题:如果是设备A发出数据,设备B接收数据。
有线连接时发端发出数据的时刻与收端收到数据的时刻一般认为是无时间间隔的;而无线模块在发送数据时要进行收发粗乱转移及时钟同步,无线通信时设备A发出数据的时刻与设备B收到数据的时刻有时间间隔,这个时间间隔就叫延时时间,记为T。
参考资料来源:百度百科——无线通信模块
BC35-G 是一款高性能、低功耗的多频段 NB-IoT 无线通中缓缓信模块,支持 B1/B3/B8/B5/B20/B28 频段,在设计和AT指令上与BC95兼容。
小熊派开发板右上角的开关拨到AT-PC一端,则模组直接与PC相连,方便调试。
指令:AT
功能:测试AT指令功能是否正常
示例:
指令:AT+CSQ
功能:返回从 UE 接收到的信号强度指示 <rssi> 和信道误码率 <ber>,其中第一个值rssi应当在0-31之间,如果为99则表示信号无法检测,第二个参数ber因为模组当前不支持,所以始终为99。
示例:
指令:AT+CEREG?
功能:查询当前 EPS 网络注册状态,该指令返回的第一个参数为0则表示禁止网络注册URC,第二个参数表示网络注册状态,1表示已注册本地网,5表示已注册漫游网络,其余值则表示注册失败。
示例:
指令:AT+CGATT?
功能:该命令用于查询当前是否将 UE 附着于 PS 域,返回值为1则表示已附着,即网络激活成功。
示例:
指令:AT+CGPADDR
功能:该命令用于查询模组当前的ip地址。
示例:
由于NB-IoT模组可以直接对接IoT平台,所以在单独测试使用UDP连接时,需要 在激活网络成功之后,在获取ip地址之前,关闭IoT平台注册功能 。
使用如下命令禁止该功能:
首先我们需要搭建一个UDP服务器,有两种方式:
因为 NB-IoT 模组直接注册的是公网ip地址,所以这里我们使用第一种方式,在Linux服务器上运行一个Python编写的UDP测试服务器:
这里的Python程序如下:
运行:
效果如下:
使用AT命令连接UDP服务器,首先需要创建一个 UDP 类型的 Socket,创建socket的指令如下:
其中第一个参数是socket类型,DGRAM表示UDP,STREAM表示UDP;第二个参数表示协议类型,UDP 为 17, UDP 为 6,最后一个参数指定socket使用的本地端口,如果为0则表示随机分配。
所以创建UDP socket的示例如下:
指令:
其中第一个参数是由 AT+NSOCR 返回的 Socket 编号,第二个参数是UDP服务器ip地址,也可以使用域名,第三个参数是UDP服务器开启监听的端口,第四个是发送数据的长度,最后一个是要发送的十六进制数据。
示例:
发送之后卖模,在服务器端也可以看到:
模组发送数据到服务器后,服务器会自动发送消息,模组会打印出收到信息的提示:
该信息表示编号为1的socket收到了18字节的数据。
可以使用如下命令查看收到的数据,第一个参数是socket编号,第二个参数是查询的数据长度:
查看刚刚收到的数据:
其中收到的数据为倒数第二个参数,是十六进制格式:
使用 在线工具 将数据转化为字符串即可:
通信完毕之后,可以哪睁使用下面的命令关闭最开始创建的socket:
示例:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)