2.2 节点软件设计
单片机主要有两个任务:模拟PT2262波形对高频电路进行ASK调制,模拟I2C总线读写MXC6202 。要想让软件模拟一个硬件电路,必须掌握硬件电路的工作原理:PT2262是红外遥控编码器,PT2272是其接收解码器,两者常常配对使用。发射端PT2262共有12个地址端,发射的每一组数据都由12bit脉冲组成,顺序是从A0~A11,每个地址端有三种接法。常见的是用其中8bit(A0 ~A7)作为地址编码,其余4bit(D1 ~D3)作为数据编码,外加1bit同步码,每组至少发送4次。接收端PT2272舍弃第一组,当连续得到两组与本身地址一样的信号时,则解码。参考文献[1-2]分别介绍了单片机模仿PT2262的编码方法和PT2272的解码方法。由于需要传输X、Y两个轴各12bit加速度值,因此,每帧36bit数据,帧间加1bit同步码,传输4次。单片机编码方案如图3所示。必须注意的是,由于高频发射具有随机性,在不发射时表现为白噪声,因此解码时应舍弃第一帧数据,从第二帧开始解码。
图3 单片机编码方案
传输的数据位格式分为:高电平(11) 、低电平(00) 、高阻态(01)三种,0 、1由高低电平的占空比决定。软件中设200μs、600μs两个延时函数。单片机调用这两个延时函数,在RA1管脚上输出相应的高低电平就能够模拟出这三种状态数值,从而完成单位数据的ASK调制。
单片机在发射前首先读入预先设定的A0~A7 8bit三态地址,D1~D4 4bit节点网内ID,再加上加速度传感器X、Y轴的各12bit加速度值,共36bit数据,按图3的格式依次发送出去,就可以进行数据传输了。每帧数据传输4次,每帧之间由大约10ms的帧间码隔开,帧间码由一个200μs高电平与10ms的低电平组成,发送一次数据的时间约为200ms,这样1s内最多可传送5次数据,在大多数场合是可以满足要求的。为了节省能耗,可以根据需要选择发射速率,在不发射时,应使单片机、F05V、加速度传感器处于休眠状态。处于休眠状态的PIC单片机可以使用看门狗等方式唤醒。用超外差接收模块J05U接收,可以在300m的开阔地传输数据。当需要较高的数据传输速率时,应缩短宽窄脉冲时间长度。但需要注意的是,当脉冲宽度减少时,发射功率也同时减少。因距离与速度是矛盾的关系,当发射功率超过20Hz时,建议使用专用RF芯片。
MXC6202在使用中作为从器件,PIC单片机只要按照标准I2C时序控制MXC6202即可。参考文献[3]介绍了利用单片机的普通I/O口模拟I2C总线的方法。MXC6202的地址在出厂时已经确定了,共8种,在一路I2C总线上只能挂一个加速度传感器。当需要两个MXC6202测三轴加速度时,需要占两路独立的总线。为此,根据标准I2C时序,模拟了两路I2C总线,以两路循环采集。MXC6202示例驱动程序如下:
IICStart( );//器件初始化,每次从休眠模式唤醒重新初始化
IICSendByte(0x20);//写器件地址,MEMS传感器地址出厂时已固定
IICSendByte(0x00);//器件内部寄存器地址,只有一个可写寄存器0x00
IICSendByte(0xf0);//最低位写0,睡眠模式唤醒;写1,进入睡眠模式
Delay_75ms();//睡眠唤醒时,需要75ms的延时//下面是依次接收:X高、X低、Y高、Y低4位数值
IICStart( );
IICSendByte(0x20);//写MEMS传感器
IICSendByte(0x01);
IICStart( );
IICSendByte(0x21);//读MEMS传感器
for(ii=0;ii<3;ii++)
{
s[ii]=IICReceiveByte();
IICAck(0);
}
s[3]=IICReceiveByte();
IICAck(1);//最后一位不应答
IICStop( );
测斜度时,采用查表与计算相结合的方法(器件手册中给出了参考方法)。单片机模拟的波形如图4所示。图4(a)是单片机RA1口模拟PT2262发出的一串数列。图4(b)是从MXC6202器件中读出的一帧数据,为便于观察,将两组波形重叠在一起,高的为总线数据线信号,低的为总线时钟信号。
图4 单片机模拟的波形
关于我们 | 广告服务 | 会员服务 | 媒体报道 | 营销方案 | 成功案例 | 招聘服务 | 加入我们 | 网站地图 | 在线帮助 | 联系我们 |
京ICP证080169号京ICP备09003304号-2京公网安备11010502034458号电子公告服务专项备案
网络文化经营许可证 [2019] 5229-579号广播电视节目制作经营许可证 (京) 字第13229号出版物经营许可证新出发京批字第直200384号人力资源服务许可证1101052014340号
Copyright © 2022 Bjx.com.cn All Rights Reserved. 北京火山动力网络技术有限公司 版权所有