切换到宽版
爱科技/爱创意/爱折腾/爱极致;技术知识分享平台,点击进入新版数码之家网站
  • 21635阅读
  • 53回复

[无线]SmartEXP--无线收发模块(DXP原理图+PCB+51单片机+SI4463+源代码) [复制链接]

上一主题 下一主题
离线都忘掉了
 

发帖
484
M币
7231
专家
19
粉丝
82
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2015-12-13

经过1个多月的奋斗,白天在老板那里打工,晚上在家里继续打工,终于在上周把无线通信模块给搞定了。也算是给我的SmartEXP计划中添加了一个逗号。
为了让通信距离达到足够的远(暂不考虑GSM通信),模块采用SI4463无线通信IC,这样通信距离轻松就达到了500米(空旷地带),若是硬件上面再进一步优化,应该可以达到2K米。
为了开发起来简单快速,单片机采用的是STC家的STC12LE5A60S2,虽然贵了点,但以前写过相关的驱动程序,觉得时间上有优势,也就是时间的收益远远大于成本控制效益。
整个开发分为3个阶段,第一阶段电路硬件设计:方案选择、原理图设计、元器件选型、PCB绘制、硬件焊接、硬件调试;第二阶段软件底层设计:软件环境搭建、底层驱动代码编写;第三阶段功能软件设计:无线通信协议编写、功能软件编写
好了,废话一大堆,现在大体上图简释

图一:电路设计原理图,帖子底部可以下载原理图+PCB+源代码

图二PCB截图

图三:PCB3D截图


图四:PCB3D截图

图五:实物图背面

图六:实物图正面

图七:工作的照片


图八:工作的照片


图九:串口监视截图

软件部分的代码截图,模块编程化,代码更易阅读,移植,升级,维护等

代码注释很详细,方便阅读,代码层次分明
下面是软件项目的记事本,包含通信协议的解释(KEIL里面阅读更方便)
  1. /*******************************************************************************
  2.   * @项目名称:    Wireless
  3.   * @作者:        XXX
  4.   * [url=u.php?uid=1521734]@版本[/url]  :        
  5.   * @日期:        2015.11.05
  6.   * @简介:        XXXXXXXXXXXXX
  7.   ******************************************************************************
  8.   * @说明:
  9.   *    
  10.   *****************************************************************************/
  11.   更新记录:
  12.     2015.11.05    V0.1.01    XXX        1.根据bearoomcontorler修改
  13.                                     2.根据网上的51驱动si4463源码修改
  14.                                     3.成功读取SPI,其他未测试
  15.     2015.11.08    V0.1.02    XXX        1.添加发送测试代码
  16.                                     2.BUG,无法获取发送之后的中断申请
  17.     2015.11.09    V0.1.03    XXX        1.移植已经调试好的代码
  18.                                     2.解决之前发现的BUG
  19.                                     3.尝试增加通信协议代码
  20.     2015.11.30    V0.1.04    XXX        1.完善通信协议代码
  21.     2015.12.01    V0.1.04    XXX        1.完善通信协议代码
  22.         `                            2.存在rf_addr自动改变的BUG
  23.     2015.12.02    V0.1.05    XXX        1.解决rf_addr自动改变的BUG
  24. 通信数据:10字节数据;
  25.         0:地址(主机FF,中继FE,子机00~0F);
  26.         1:命令(详见列表)
  27.         2~8:数据
  28.         9:CRC,将前面的9字节数据相加,得出的8进制溢出数。
  29. 通信方式:默认全部都为从机,主机具有查询优先权,中继被呼叫需要被动向子机发出查询命令;子机具有主动向中继提交状态报告,中继收到命令后被动向主机发出报告。
  30. 群体数量:主机只有一个,中继站可以大量扩展,目前只有一个,子机数量最多6个,实际上可以继续扩展
  31. 通信协议:
  32. 。。    主机发出的(主机地址FF)    主机发出的的数据                    主机收到的数据                                用途
  33.         0xF0    中继握手命令        无有效数据                            无有效数据                                主机启动的时候联网获取数据
  34.         0xF1    查询子机列表        无有效数据                            6字节数据,分别对应子机地址                获取网络内子机数量与地址
  35.         0xF2    查询所有电量        无有效数据                            6字节子机电量,第7字节中继电量(1-9)        电量监控,需提前获取网络内列表
  36.         0xF3    查询所有状态        无有效数据                            6字节数据,分别对应子机状态                主动获取状态,需提前获取网络列表
  37.         
  38. 。。    中继发从机(中继地址FE)    中继发出的的数据                    中继收到的数据
  39.         0xE0    子机握手命令        无有效数据                            无有效数据                                获取主机的查询列表命令后,开始扫描地址0-F,进行网络更新
  40.         0xE1    查询子机电量        无有效数据                            1字节数据,子机电量(1-9)                获取主机的查询电量命令后,开始扫描地址0-F,进行电量更新
  41.         
  42. 。。    中继发主机(中继地址FE)    中继发出的的数据                    中继收到的数据
  43.         0xEF    上报状态变化        6字节数据,分别对应子机状态            无有效数据                                因为子机有状态变化,需要同步到主机
  44.         0xEE    网络注册变化        6字节数据,分别对应子机地址            无有效数据                                因为子机有网络注册,需要同步到主机
  45.         0xED    上传电量变化        6字节子机电量,第7字节中继电量(1-9)    无有效数据                                因为子机有电量变化,需要同步到主机,0代表关机或无子机
  46.         
  47. 。。    从机发中继                从机发出的的数据                    从机收到的数据
  48.         0x01    上报状态变化        1字节数据                            无有效数据                                因为有状态变化,需要及时报告到中继
  49.         0x02    网络注册            无有效数据                            1字节数据(01成功,00地址被占用)            子机开机的时候都需要进行网络注册,确保网络通畅和地址可用
  50.         0x03    上传电量            1字节数据(1低电警告,0关机)            无有效数据                                在电量为1时需要上报低电量报警,电量为0时需要上报关机
  51.                                     
  52. RAM分布
  53.     STC12c5a60s2内部一共有1280字节RAM空间,可分为“内部RAM”、“内部扩展RAM”,另外STC12c5a60s2还可以外部扩展64kRAM
  54. 内部RAM分布(256字节)
  55.     低128字节RAM(与传统8051兼容),可以直接寻址(data)也可以间接寻址(idata)
  56.     高128字节RAM(intel)只能间接寻址(idata)
  57. 内部扩展RAM(1024字节)
  58.     访问内部扩展RAM的方法和传统8051访问访问外部扩展RAM方法相同,但是不影响外部IO口。
  59.     全部1024字节RAM(与传统8051外部扩展RAM类似),可以以外部数据访问(xdata)
  60.     内部扩展RAM是否可以访问受辅助寄存器AUXR中的EXTRAM控制:(系统复位默认EXTRAM=0)
  61.             EXTRAM=0允许
  62.             EXTRAM=1不允许

觉得不错的可以打赏MB

[ 此帖被都忘掉了在2015-12-13 00:44重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共14条打赏M币+42
12
离线都忘掉了

发帖
484
M币
7231
专家
19
粉丝
82
只看该作者 1楼 发表于: 2015-12-13
请登录后查看
[ 此帖被都忘掉了在2015-12-13 00:41重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
离线jjkai2008

发帖
1920
M币
1344
专家
3
粉丝
74
只看该作者 2楼 发表于: 2015-12-13
离线都忘掉了

发帖
484
M币
7231
专家
19
粉丝
82
只看该作者 3楼 发表于: 2015-12-13
回 jjkai2008 的帖子
请登录后查看
离线qq7284

发帖
146
M币
1954
专家
2
粉丝
19
只看该作者 4楼 发表于: 2015-12-13
请登录后查看
离线xianamo

发帖
1271
M币
1783
专家
0
粉丝
22
只看该作者 5楼 发表于: 2015-12-13
请登录后查看
离线都忘掉了

发帖
484
M币
7231
专家
19
粉丝
82
只看该作者 6楼 发表于: 2015-12-13
请登录后查看
离线尕老汉

发帖
88
M币
4495
专家
13
粉丝
22
只看该作者 7楼 发表于: 2015-12-17
请登录后查看
离线都忘掉了

发帖
484
M币
7231
专家
19
粉丝
82
只看该作者 8楼 发表于: 2015-12-17
请登录后查看
离线floor5858

发帖
1
M币
-494
专家
0
粉丝
0
只看该作者 9楼 发表于: 2015-12-17
请登录后查看
快速回复
限80 字节
温馨提示:所有技术区严禁灌水,“沙发”“顶”字样;禁止广告贴;以免被删除
 
上一个 下一个