51兼容载波通信单片机PL3105的通信软件设计
,载波通信的距离与外围电路设计优劣、功率大小等密切相关。
3 接收和发送的软件设计
载波通信为总线方式通信,所以载波模块的常态必须设置为接收态、不同的载波模块必须分配不同的通信地址。模块接收到校验正确的命令后,只有地址相同的模块才允许按规约进行应答。由于载波通信速率相对主频低很多,为提高CPU效率,接收和发送一般均设计为外部中断方式处理;每次进入中断,完成对1位数据的接收或发送处理。
按图3所示流程对模块进行配置、选择速率为500bps后,内部自动选择为15位PN码。载波通信控制器即进入接收态,进行载波信号的捕获和同步。
接收时,捕获和同步过程由载波通信控制单元的硬件电路自动完成,不需要软件部分参与。由于电力线的哭声一直存在,所以有效数据前必须增加同步帧头,依据相关性标准选择为0x09、0xAF,后续为通信的有效数据体及校验字节。
图5为载波通信接收过程框图。载波通信控制单元解扩出1位数据后,产生一次中断。接收时,首先采用16位接收窗口、1位滑动方式来接收通信的同步帧头0x09、0xAF。帧头接收成功后,后续数据按每8位一个字节的方式进行截取,得到传送的有效数据。接收过程中,按有关的通信协议进行地址判别、长度接收、校验计算。地址相同的模块对符合通信协议的数据进行应答,转入发送态。
图6为载波通信发送过程框图。用于载波通信的主叫方发出命令或接收方的应答。置为载波发送态时,载波通信控制单元发送完1位的扩频数据,自动产生一次中断,允许下一次数据发送。根据捕获和同步过程需要,首先发送至少40位的全"1";然后按位发送同步帧头0x09、0xAF;之后根据用户的有关通信协议按位发送通信地址、数据长度、数据体、校验等字节。
数据全部发送完成后,载波模块即可转入接收态。但为确保待发送数据的最后一个位发送成功,必须在发送完最后一位数据后等到下一次发送中断到来后,才可以转换载波发送态到接收态。
载波发送未,将全部数据发送完成前,CPU必须及时向PLM_RST寄存器写入"A2H",使计数器复位,避免自动复位提前进入载波接收态。发送中断程序如下:
void PLM_int(void)interrupt 7//载波收发中断
{if(PLM_RS==1)zb_tx();//载波发送中断服务程序
else zb_rx();//载波接收程序服务程序,略
}
void zb_tx(void)//载波发送程序
{if(len8==0)s_byte=buf_send[zbs_count];//取待发送字节到位发送缓冲
ACC=s_byte;
P3.7=ACC^7;//位发送,最高位在前
s_byte=s_byte<<1; //左移
len8++; //移位计数计算
if(len8>7) //8位发送完毕
{zbs_count++; //下一字节
len8=0; //移位计数清零
}
PLM_RS=1; //载波发送允许
PLM_RST=0xA2; //载波发送复位寄存器清空
}
结语
由SoC芯片PL3105设计的具有载波通信功能的智能仪表,在智能电表行业中得到了应用和推广。其简单的接收、发射处理方式使应用程序设计十分方便。同时灵活的ISP编程方式,使产品升级换代和功能扩展灵活;达到了低成本、高性能的设计指标。
- LT3751如何使高压电容器充电变得简单(08-12)
- 电源监视器LTC4151对汽车应用的解决方案(08-10)
- 下一代路由器和交换机平台需要灵活的 DC/DC 控制器(06-02)
- JN5121芯片在基于WPAN的无线医疗监护技术中应用(08-03)
- 基于单片机的GPS信息处理系统(08-28)
- 数控灯光的短距离无线通信系统方案(10-17)