KQ130系列电力载波数据收发模块.docx
《KQ130系列电力载波数据收发模块.docx》由会员分享,可在线阅读,更多相关《KQ130系列电力载波数据收发模块.docx(12页珍藏版)》请在冰豆网上搜索。
![KQ130系列电力载波数据收发模块.docx](https://file1.bdocx.com/fileroot1/2022-11/30/1d009f90-d32d-4aef-93be-f580ed683b41/1d009f90-d32d-4aef-93be-f580ed683b411.gif)
KQ130系列电力载波数据收发模块
KQ-130系列电力载波数据收发模块
KQ-130F是单列9针小体积高性能过零载波数据收发模块。
是专门为在220V交流上,强干扰,强衰减,远距离要求的环境下,可靠的传送数据而特别设计和开发的性价比很高的载波模块。
适用于抄表,路灯,智能家居,消防,楼宇控制以及需要电力线传送数据的其它应用领域。
KQ-130E/K也是单列9针小体积高性能载波数据收发模块。
在KQ-100E基础上增加了DSP处理进一步提高模块的抗干扰能力,专门为在0V-220V交直流,停电以及没有电源的环境下(如管道与大地,一根信号线与大地,两根信号线,12V交直流电源线等),可靠的传送数据而特别设计和开发的性价比很高的载波模块。
适用于工业控制,铁路,小区智能化,智能家居,楼宇控制以及需要载波传送数据的其它应用领域。
KQ-130F的载波速率是100BPS,KQ-130E的最高载波速率是400BPS,KQ-130K的最高载波速率是1200BPS。
一、KQ-130系列模块的性能:
1.集成了KQ-330模块及外围电路的载波板,毋需其他的耦合元件,直接连接220V的交流电使用。
外型尺寸为53×38×17毫米(L×D×H),单列排针引出(见下图)1、2脚接220V交流电源无方向(1脚,2脚间距2X0.1英寸),2脚,3脚间距1.1英寸,其余各脚之间间距0.1英寸。
2.工作频率120~135KHZ,接口波特率9600bps。
一个起始位,8个数据位,一个停止位
3.温度范围:
-25℃~+70℃湿度≤90%
4.一帧连续发送长度≥253个字节,字节长度从1到253由用户定义,模块不会发送多余的数据
5.接收灵敏度 ≤1mV
6.带外抑制能力 ≥60dB
7.带宽 ≤10KHZ
8.绝缘电阻 500V ≥500MΩ
9.供电电源:
DC+5V接收时:
≤12mA发送时:
≤300mA
二、规格及型号:
KQ-130F:
KQ-130后第一个字母定义为:
F:
过零传送型
E:
载波速率可到400BPS的全波载波模块
K:
载波速率可到2400BPS的全波载波模块
三、KQ-130引脚说明:
正面从左至右为1~9脚:
1P—AC:
220V交流电压的火线(或零线)
2P—AC:
220V交流电压的零线(或火线)
3P—+5V:
+5V发送电源(260mA),如果单收数据可以悬空降低功耗
4P—GND:
数字电路地线
5P—+5V:
+5V工作电源11mA
6P—RX:
TTL电平,载波数据入,接单片机的TXD
7P—TX:
TTL电平,载波数据出,接单片机的RXD
8P—MODE:
模式选择,悬空或接5V为高电平,接地为低电平
9P—NC/RST:
复位脚(低电平有效)只有在工作时频繁切换模式时使用。
毋需此功能,引脚应悬空
四、KQ-130系列模块编程注意事项
本模块接口波特率9600bps,用户与模块通讯请采用9600BPS异步方式,格式为1个起始位,8个数据位1个停止位格式。
本模块通过MODE脚控制模块使用透明工作方式(高电平),还是自定义工作模式(低电平)。
MODE高电平(悬空)时为透明工作模式,低电平(接地)时为自定义工作模式。
在透明工作模式时:
在编程时毋需对模块初始化,通讯时和普通RS-485方式类同。
但是,由于电力线上负载比较多,电器所产生的谐波也就无法避免地耦合到电力线上,本模块是高灵敏度的载波模块,在所有载波模块都处于接收状态时,电力线上就会全部被电器所产生的谐波所覆盖,这时,模块将解调出噪声数据从TX端输出。
所以发送和接收数据应该引入同步码以区分真正的传送数据。
注意:
在模块发送缓存器(253字节)满后不再接收新的数据。
也就是一帧发送字节小于253个字节。
用户的一帧数据请连续不间断的发送到模块,如果停顿时间超过模块已发送完所有的数据时间(缓存器空,最后一个字节已完全发送),接收方的模块可能会插入噪声数据。
如向RX端连续发送:
5A5A5A345678124567在其他接收模块就可能输出
FEFDEF5A5A5A34567812456785DEEF.加黑的字节是在所有模块都没发送数据时,接收模块接收到的噪波数据。
接收数据还是采用9600BPS异步方式,格式为1个起始位,8个数据位1个停止位格式,从TX送出,但是大约要每0.09秒左右发送一次。
在自定义工作模式时也等同。
在自定义工作模式时:
用户按照我公司的定义传送数据,一帧传送数据定义如下:
第一个字节:
要传送一帧的字节数0-250(不含第一个字节)
第二个字节到第n+1个字节:
用户需传送的字节数据
注意:
在模块还没发送完一帧数据时,不会接收下一帧数据。
接收数据和发送数据等同。
如向RX端发送:
02AE87在其他模块TX就输出02AE87
02是字节长度,这表示后面有2个字节的数据。
如向RX端发送:
09010203040506070809
在其他模块TX就输出09010203040506070809
09是字节长度,这表示后面有9个字节的数据。
最大的字节长度可到253.
如向RX端发送:
FD0102030405060708090A0B0C0D0E...FD
在其他模块TX就输出FD0102030405060708090A0B0C0D0E...FD
有效的数据可以到253个。
KQ-130系列模块的区别:
KQ-130F是专门针对交流220V/110V,50HZ/60HZ强干扰设计的基于交流零点传送方案的载波模块,在市电上面具有传送效果好,传送距离远等特点。
必须在有交流电源的情况下才能传送数据,载波速率是50HZ/100BPS,60HZ/120BPS我们通过优化9个BIT可以传送1个字节。
KQ-130E是全波载波模块,传送数据与零点无关。
在载波解调后做了数字滤波,提高其载波数据的抗干扰能力,速率越低效果越好。
KQ-130E可以在0V-220V交直流电压下进行载波通讯,如:
220V,110V,80V,48V,36V,24V,12V等交直流电压以及停电情况下的载波通讯。
KQ-130E最高速率是400BPS,可以选择100BPS通讯提高抗干扰能力,但是同样是100BPS,KQ-100E在交流电源上的通讯效果没有KQ-130F好,综合测试只有KQ-130F一半的通讯距离左右。
KQ-130K的通讯方式和KQ-130E相同,唯一的区别就是实际的载波速率最高可以做到1200BPS。
尾缀带+号的,KQ-130F+,KQ-130E+,KQ-130K+,可以支持发送功率电压在12V的情况下连续的长时间发送数据。
KQ-130系列模块的共同点:
所有KQ-130系列模块与单片机/微机的接口都是一样的,通讯方式也相同。
与单片机/微机的串行接口速率都是9600BPS,一个起始位,八个数据位和一个停止位。
相同的透明工作模式或自定义工作模式。
KQ-130系列电力载波数据收发模块图片:
KQ-130系列电力载波数据收发模块与单片机连接图:
KQ-130系列电力载波数据收发模块与微机9针RS232口连接图:
KQ-130系列电力载波数据收发模块经上图与微机9针RS232连接后用串口调试助手测试图:
MODE=1高电平时:
发送0102030405067889数据,最多可连续发送255个字节。
如果发送一帧超过255字节的数据,请发送250个字节后延迟20秒,再发送后面的数据。
另一台电脑接收到的:
0102030405067889在很多噪波之后。
但是是完全透明的传送,没有增加任何数据。
MODE=0低电平时:
发送080102030405067889
第一个字节是格式要求:
要发送的字节数,这里有8个,最多可达250个(0xf0)
另一台电脑接收到的:
没有噪波,但是必须按我们的格式通讯,并且会增加一些前导码。
附1:
有关我公司模块的文章参考:
/40081.shtml
("载波通信模块在远程抄表系统中的应用",引自2006年6月21日电子查询网有关KQ-100系列产品的用户使用经验)
/html/2011-8-18/92862_2.html
("基于GPS公交车电子站牌系统的设计",引自2011年8月18日王光学老师有关KQ-100系列产品的用户使用经验)
-.html
("KQ-100K模块在220V电力线载波通信系统中的应用"《电子元器件应用》2008年第9期)
("电力载波在农村电网控制系统中的应用" 《农业科学研究》2010年9月)
("基于FSK-KQ100模块的低压电力载波通讯电路设计" 《沈阳工程学院学报(自然科学版))》2006年1月)
("采用电力载波模块对控制与保护开关的远程控制方案" 《低压电器》 2010年23期)
附2:
KQ-130模块作为从设备,MODE接地。
返回微机通过串口调试助手发送数据的89C2051单片机C语言程序:
(中断接收发送方式)
HEX文件下载地址(下载后把尾缀.h修改成.hex)
C语言源文件下载地址:
/*
MODE=0时上位机发送0412345678
89C2051收到上位机后返回同样的数据。
使用11.0592M的晶振
我们已经测试通过。
*/
#include
#include
#include
#include
bitPTT;
unsignedchartrbuf[64];
main()
{
registerunsignedintDcn;
PCON=0X80;
TMOD=0X21;
TR0=1;
IP=0X10;
SCON=0X70;
TH1=0XFA;
TR1=1;
IE=0X90;
TR1=1;
PTT=1;
SCON=0x70;
PCON=0x80;
P1=0X0FF;
P3=0X0FF;
while
(1)
{
}
}
voidestr0()interrupt4using2{
staticunsignedcharlen=0,max=0,i;
unsignedcharj,k;
if(RI)
{
RI=0;
if(PTT)
{
k=SBUF;
trbuf[max]=k;
if(len==0)
{
max=0;
trbuf[0]=k;
len=k;
max++;}
elseif(max==len)
{SBUF=trbuf[0];
TI=0;
PTT=0;
max=1;
}
else
{max++;
}
}
}
if(TI)
{TI=0;
if(!
PTT)
{
SBUF=trbuf[max];
if(max==len)
{
PTT=1;
max=0;
len=0;
}
else
{
max++;
}
}
}
}