打印

电力通信模块的实现

[复制链接]
2146|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电力通信的关键是如何保证在电力线上长距离的可靠通信。在电力线上通信存在以下问题:电力线间歇性噪声较大,信号衰减快,线路阴抗波动等。这些问题使电力线通信非常困难,电力线载波通信的关键是功能强大的电力线载波专门电路。
Intellon公司为适应这一形势发展的需要,设计出了基于电力线载波技术和各种网络接品控制器,例如SSCP300(具体参考手册)
SSCP300单片机的连接如图,用到的主要器件为单片机和SSCP300,单片机通过P0口的低四位口线与SSCP300相连接。

程序如下*******************************************************************************
应用 SSCP300 的难点在于对 SSCP300 内部寄存器的读写操作 ,因而在合理设计硬件电路的基础上 ,要充分了解 SSCP300 的数据读写控制逻辑 ,尤其是 SSCP300 本身所属网络的系统属性及自身配置信息 ,这里给出对 SSCP300 进行上电后初始化过程的代码。
*******************************************************************************
#include <reg51.h>        // 引用标准库的头文件
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SCK = P0^0;     // SPI时钟
sbit SI= P0^1;     // SPI从器件数据输入
sbit SO = P0^2;     // SPI从器件数据输出
sbit RST= P0^3;     // 复位控制端
sbit CS = P0^4;     // 片选端
sbit INT= P0^5;     // SSCP300中断信号

uchar tbuf[7]={0,0,0,0,0,0,0,0};       // 写入配置代码存储缓冲区
uchar rbuf[7]={0,0,0,0,0,0,0,0};       // 读取配置代码存储缓冲区

#include<eg51.h>
#include<lic.h>
#define  uchar  unsigned char   
#define  uint  unsigned int
uchar  data  
*******************************************************************************
51单片机通过SPI总线对SSCP300发送命令、数据读写程序
*******************************************************************************
void  main()
{
P0=0xff;
CS=0;
delay(20);                       //延时20ms,SSCP300上电稳定复位
send(code=0x04)                 读取sscp300接口状态
while(INT=0)
SCK=1;
state=read();
while(INT=0)
SCK=1;
if((state&01)=0x01)               //中断标志位0
    {
        ……
        ……
}
if((state&02)=0x02)               //中断标志位1
    {
        ……
        ……
}
if((state&04)=0x04)               //中断标志位2              
    {
        ……
        ……
}
  if((state&08)=0x08)               //中断标志位3
    {
        ……
        ……
}
if((state&10)=0x10)               //中断标志位4
    {
        ……
        ……
}
if((state&20)=0x20)               //中断标志位5
    {
        ……
        ……
}
if((state&40)=0x40)               //中断标志位6
    {
        ……
        ……
}
if((state&80)=0x80)               //中断标志位7
    {
        ……
        ……
}
}
  //单片机开始对SSCP300配置
send(code=0x03)               //发送命令03H
while(INT=0);                 //等待响应
for(i=0;i<7;i++)
    {
send(code=tbuf[i++]);       //连续发送7个字节
while(INT=0);
}
send(code=0x02)              //发送命令02H
while(INT=0)                //等待响应
for(i=0;i<7;i++)
    {
rbuf[i++]=read();      //连续接收7个字节
while(INT=0);
}
for(i=0;i<7;i++)
    {
if(rbuf=tbuf)        //比较发送和接收到的数据
    {
i++;               //相等的话进行下一个数据的比较
}
      return;
}
rst()                    //不相等,复位
}
//51单片机作为主机作为SPI主机接收一个字节数据
void  read(void)
{
  uchar  temp
  CS=0;
  SCK=1;               //时钟上升沿
  for(i=0;i<8;i++)
     {
      SCK=0;
      SCK=1;               //时钟上升沿
      if(SO=1)
{
temp=(temp︱0x01);     //保存1
temp=(temp<<0x01);
}
      else
      {
temp=(temp︱0x00);      //保存0
temp=(temp<<0x01);
}
     }
   return temp;
}
//51单片机作为主机发送,SSCP300接收一个字节数据
void  send(uchar data)
{
  uchar  temp
  temp=data;
     CS=0;                        //片选控制
  for(i=0;i<8;i++)
     {
      SCK=0;
if((data0&&0x80)!=0)           //判断待发送数据位
{
SI=1;                         //发送‘1’
}
      else
      {
SI=0;                         //发送‘0’
}
      delay(10)                     //延时稳定数据               
SCK=1;                      //时钟上升沿
}
}
//SSCP300复位子程序
void rst()
{
send(code=0x01)          //复位命令:01H
while(INT=0)
delay(20)                //延时20ms,SSCP300稳定复位
SCK=1;
}

相关帖子

沙发
tianli1980| | 2012-4-8 12:08 | 只看该作者
电力线载波通信具有良好的前景和巨大的市场潜力。顶一下

使用特权

评论回复
板凳
shenmulzb1985| | 2012-4-8 16:12 | 只看该作者
电力载波方面,我学校的黄新波老师是专家的,这方面是非常有市场滴。。。

使用特权

评论回复
地板
ddllxxrr| | 2012-4-8 16:13 | 只看该作者
顶一下

使用特权

评论回复
5
liqaz| | 2012-4-8 17:48 | 只看该作者
电力载波,
啊 在如今的市场前景下,
国家智能电网改造

使用特权

评论回复
6
jxmzzr| | 2012-4-10 09:04 | 只看该作者
电力线载波通信不仅提供了实用的新兴通信手段,而且具有现有物理链路,易维护,易推广,易使用,低成本等优点。顶是必须的。

使用特权

评论回复
7
lolp| | 2012-4-12 20:46 | 只看该作者
好长啊  优点很明显

使用特权

评论回复
8
lolp| | 2012-4-12 20:46 | 只看该作者
:)

使用特权

评论回复
9
huangfeng33| | 2012-4-13 09:26 | 只看该作者
非常实用的东西,谢谢楼主的分享。
这个实现要用到很强的抗干扰能力的芯片。楼主多推荐几款。谢谢了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:好好学习,天天向上!

519

主题

4195

帖子

31

粉丝