智能电表红外通信协议的分析和验证

合集下载

智能电表协议

智能电表协议

智能电表协议智能电表是指具有自动采集、远程通信、远程控制等功能的电能表,它能够实现对电能使用情况的实时监测和管理。

智能电表协议则是智能电表与外部系统进行通信和数据交换的约定和规范,它对于智能电表的应用和推广具有重要意义。

智能电表协议的制定,首先需要考虑的是数据传输的安全性和稳定性。

在现代社会,电能使用情况的数据是非常敏感的信息,需要得到有效的保护。

因此,在制定智能电表协议时,需要考虑加密、认证、防篡改等安全机制,以确保数据传输的安全可靠。

其次,智能电表协议还需要考虑通信协议的标准化和统一。

不同厂家生产的智能电表可能采用不同的通信协议,这就给智能电表的应用和管理带来了困难。

因此,智能电表协议的制定需要考虑通信协议的标准化,以便不同厂家生产的智能电表能够实现互通互联,从而为智能电表的推广应用提供便利。

另外,智能电表协议还需要考虑与外部系统的对接和兼容性。

智能电表通常需要与用电管理系统、配电自动化系统等外部系统进行数据交换和互联,因此智能电表协议需要考虑与外部系统的对接和兼容性,以便实现智能电表与外部系统的无缝对接,从而实现对电能使用情况的全面监测和管理。

此外,智能电表协议的制定还需要考虑智能电表的功能扩展和升级。

随着科技的发展,智能电表的功能会不断地进行扩展和升级,因此智能电表协议需要具备一定的灵活性和可扩展性,以便适应智能电表功能的不断变化和升级。

综上所述,智能电表协议的制定需要考虑数据传输的安全性和稳定性、通信协议的标准化和统一、与外部系统的对接和兼容性,以及智能电表的功能扩展和升级等方面的因素。

只有充分考虑这些因素,制定出合理的智能电表协议,才能更好地推动智能电表的应用和推广,为电能管理和节能减排做出更大的贡献。

浅析智能电能表的现场快速校验方法

浅析智能电能表的现场快速校验方法

浅析智能电能表的现场快速校验方法摘要:智能电能表的快速校验是保证电能表测量准确性和稳定性的重要手段之一,本文将分析智能电能表的现场快速校验方法及其实现原理,并阐述其在电能计量领域中的应用和优势。

关键词:智能电能表,快速校验,准确性,稳定性,应用正文:智能电能表作为电能计量领域的重要组成部分,具有高精度、功能丰富等特点。

然而,由于使用场景复杂和环境变化等原因,智能电能表出现了一些误差和不稳定性,这对电力计量系统的完整性和准确性构成了一定的挑战。

因此,对智能电能表进行快速校验变得越来越重要。

当前,针对智能电能表的快速校验方法主要有以下几种:1.标准校验法:该方法需要在专业的实验室或校验中心进行,通过比对电能表读数与标准表的读数差异,来评估电能表的误差和准确性。

这种方法需要花费较长的时间和成本,并且不适合现场使用。

2.电子移相器法:该方法可以通过改变电流和电压的相位关系,使当前抽样周期的电能值与标准值相等,从而实现准确校验。

然而,该方法需要使用复杂的电子设备,而且对现场操作人员的技能要求较高。

3.载波通信法:该方法通过智能电能表自身的载波通信功能,与现场测试仪器进行数据通信和交互,来获取电能表的读数和误差等信息,实现准确快速校验。

这是目前应用最广泛的校验方法,具有准确度高、操作简便、测量成本低的特点,也是未来电能计量器校验的发展方向。

综上所述,智能电能表的快速校验是在现场环境中对电能表的测量结果进行检验和确认的重要方法。

针对不同的现场特点,选择合适的校验方法具有优化实施成本、提高测量精度的作用,有望对电力计量系统的正常运行起到积极的促进作用。

关键性能:1. 减少成本2. 改善稳定性3. 快速校验关键流程:1. 标准校验流程2. 电子移相器的流程3. 载波通信流程关键问题:1. 如何提高校验的准确性和稳定性?2. 智能电能表的哪些特点可以被利用来实现快速校验?3. 目前用于智能电能表快速校验的主要技术和方法是什么?智能电能表的快速校验是电能计量领域中必不可少的一个环节,因为在实际应用中,智能电能表使用场景复杂,受到环境和外界干扰,可能产生一定程度的误差或者不稳定性。

红外通信协议

红外通信协议

红外通信协议红外通信协议是一种无线通信技术,它利用红外线传输数据。

红外通信协议在遥控器、红外线传感器等设备中广泛应用。

红外通信协议遵循以下原则和规范。

首先,红外通信协议使用的是红外线,它是一种电磁辐射,具有较短的波长,不可见于人眼。

红外线可以在室内和室外环境中传输数据,但受到距离和障碍物影响较大。

其次,红外通信协议通过红外传感器接收和发送数据。

红外传感器可以将红外线转化为电信号,并通过通信协议进行解码和编码,实现数据的传输。

常用的红外传感器有红外接收头和红外发射头。

红外通信协议的数据传输基于脉冲宽度调制(PWM)或代表0和1的数字编码。

一般来说,红外通信协议将脉冲宽度调制波形分为多个时间窗口,每个时间窗口表示一个数字或一个数据包。

发送端通过改变每个时间窗口的脉冲宽度来传输数据。

接收端根据时间窗口的脉冲宽度解码数据。

为了保证数据传输的准确性和可靠性,红外通信协议通常使用校验和和重复传输等机制。

校验和用于检测和纠正传输中的错误。

发送端在数据包中添加校验和,接收端通过校验和计算来验证数据的准确性。

重复传输机制可以多次发送相同的数据包,以提高数据传输成功率。

红外通信协议还涉及到通信频率和通信协议的选择。

通信频率是指红外线传输数据所使用的频率。

有多种不同的通信频率可供选择,包括38kHz、56kHz等等。

通信协议是指控制红外通信的规范和约定。

常见的红外通信协议有红外遥控器使用的RC-5、RC-6等。

红外通信协议除了用于遥控器之外,还可以应用于智能家居、安防等领域。

例如,智能家居系统可以使用红外通信协议来控制家电设备,如电视、空调等。

安防系统可以使用红外通信协议来检测和传输红外线传感器的数据,如人体感应、温度感应等。

总的来说,红外通信协议是一种基于红外线的无线通信技术,它通过红外传感器实现数据的编码和解码。

红外通信协议遵循脉冲宽度调制和数字编码的原则,并使用校验和和重复传输等机制来确保数据传输的准确性和可靠性。

红外模块通信协议说明

红外模块通信协议说明

红外模块通信协议说明一、引言红外(Infrared)通信技术是一种近距离无线通信技术,通过红外线的辐射和接收来实现信息的传输。

红外模块作为红外通信的重要组成部分,其通信协议的制定对于实现稳定、高效的通信至关重要。

本文旨在对红外模块通信协议进行详细说明,包括红外模块通信原理、通信协议的格式和功能等。

二、红外模块通信原理红外模块通信是通过红外光源发射与接收器接收的红外光信号传输数据。

发射器将数据转换为红外光信号,接收器接收到红外光信号后将其转换为电信号进行解码。

红外模块通信的原理基于红外光的特性,利用不可见的红外光波进行通信,具有低功耗、稳定性高的优点。

三、红外模块通信协议格式红外通信协议是指红外模块通信时数据传输所遵循的规则和格式。

常见的红外模块通信协议格式主要包括以下几个部分:1. 起始码(Start Code):起始码是一段特定的红外光脉冲序列,用于标识数据传输的开始。

通常采用连续的高电平信号作为起始码。

2. 数据码(Data Code):数据码是指要传输的具体数据内容。

不同的通信协议有不同的数据码格式,可以是二进制码、十进制码或其他类型的码。

3. 校验码(Checksum):校验码是为了检验数据的完整性而添加的,用于验证数据在传输过程中是否发生错误。

通常校验码采用奇偶校验、CRC校验等方式实现。

4. 结束码(End Code):结束码用于标识数据传输的结束,通常采用连续的低电平信号作为结束码。

四、红外模块通信协议功能红外模块通信协议的功能主要包括以下几个方面:1. 数据传输:红外模块通信协议能够实现可靠、高效的数据传输。

通过合理设计的通信协议格式,确保数据在红外通信中的准确传输。

2. 遥控功能:红外通信协议广泛应用于遥控器等领域,能够实现对电视、空调、音响等设备的控制。

通过遥控器发送特定的红外信号,与接收器进行通信,实现对设备的开关、调节等功能。

3. 数据识别:通信协议中的起始码和结束码能够帮助接收器识别数据的开始和结束,从而准确获取要传输的数据。

智能电能表通信协议(TCP)及功能一致性测试(ETS)与协议标准的探讨

智能电能表通信协议(TCP)及功能一致性测试(ETS)与协议标准的探讨

智能电能表通信协议(TCP)及功能一致性测试(ETS)与协议标准的探讨摘要:开放式综合设备网络可以满足建筑节能、引进设备控制网络、连接现有的各种电气设备网络协议、通过扩展因特网的方式构建广域建筑设备控制网络等要求。

关键词:通信协议;标准规格;一次性测试;互操作性引言:随着人们对通信要求的增加和通信技术自身的发展,通信网的建构日益成为一个庞大的系统工程。

协议在通信网中占有绝对重要的地位,ISO开发的OSI七层协议参考模型为推动通信网的发展作出了很大贡献。

但仅仅制定了协议还不够,协议工程概念的提出使得协议的制定、验证实现与测试紧密结合在一起,保证了通信网得以正确有效的运行。

在整个协议工程过程中,协议的测试居于最后的阶段,测试的结果表明通信产品可否满足最初的协议要求,直接影响到产品能否投入使用。

因此,协议测试是协议工程的重要组成部分。

图1示出协议工程总体概览以及协议测试所处的地位。

正是鉴于协议测试的重要性,ISO和IEC共同制定了关于一致性测试方法学和框架的国际标准,这就是IS0/IEC9646系列标准。

所谓一致性测试,简言之就是测试协议实现与协议规范标准的符合程度。

1.一致性测试的意图、能力和类型一致性测试包括测试一个协议实现(protocol implementation)的能力和行为两个方面,同时检查是否有与相关国际标准或CCITT建议中的一致性要求以及实现者所声明的实现能力相违背的地方。

一致性测试的意图在于增加不同的OSI协议实现在相互联接时的成功率。

但是,从技术和经济上双重考虑,对协议实现进行穷尽测试是不现实的。

一个正确的协议实现应该具备协议要求的能力并且行为上与协议表现一致,一致性测试要做的仅在于提高这一可信度。

正如前面所言,一致性测试的目的在于判断协议实现是否与协议规范相一致。

根据对一致性不同的指示程度,可以将一致性测试分为四种:1.1 基本互联测试,这类测试目的在于检测严重的不一致情况是否存在,即IUT甚至不能与测试器相联或者没能实现协议的主要特征。

红外通信协议功能调试

红外通信协议功能调试

红外通信协议功能调试一背景最近在调试(红外)(通信)功能的时候遇到了很多问题,在此总结一下,希望能帮到未来对此有疑问的自己,如果有幸能帮到其他人也算是做了一件有意义的事情了。

二红外发射头与红外接收头2.1 发射头发射管也属于(二极管),只有两个脚,通过控制二极管的导通来发射(信号)2.2 接收头接收管一般有三个脚,一个VCC,一个GND,还有一个信号脚。

2.3 起始信号、逻辑0、逻辑1的定义通常在控制发射端时,以38KHz的频率来发送方波,此时发送端需要以高低电平来控制,接收头收到的是一个低电平,其他情况下为高电平。

2.3.1 起始信号参考红外遥控器中引导码-发送端波形9ms发送方波,4.5ms不发送方波-接收端波形9ms是低电平,4.5ms是高电平2.3.2 逻辑12.3.3 逻辑0三发送与接收处理3.1 延时A(PI)(rtthread)官方提供了一个微妙延时函数rt_hw_us_delay,在延时低于1000us时会有延时不准的问题,这里稍作一些修改,如果想要更准确的延时可能要用(定时器)的方式了。

void rt_hw_us_delay_2(rt_uint32_t us){ rt_uint32_t (ti)cks; rt_uint32_t told, tnow, tcnt = 0; rt_uint32_t relo(ad)= SysT(ic)k->LOAD; ticks = us * reload / (1000000UL / RT_TICK_PER_SECOND); told = SysTick->VAL; while (1){ tnow = SysTick->VAL; if (tnow != told) { if (tnow = ticks) { break;} } }}void rt_hw_us_delay(rt_uint32_t us){ if (us VAL; /* Number of ticks per millisecond */ const uint32_t tickPe(rMs)= SysTick->LOAD + 1; /* Number of ticks to count */ const uint32_t nbTicks = ((us -((us > 0) ? 1 : 0)) * tickPerMs) / 1000; /* Number of elapsed ticks */ uint32_t elapsedTicks = 0; __IO uint32_t oldTicks = currentTicks; do { currentTicks = SysTick->VAL; elapsedTicks += (oldTicks elapsedTicks); } else { rt_hw_us_delay_2(us); }} 3.2 时间相关的宏定义#define CONFIG_IR_FREQUENCY_HZ ((uint32_t)38000) #define CONFIG_IR_FREQUENCY_US ((uint32_t)(1000000UL*1/CONFIG_IR_FREQUENCY_HZ)) #define CONFIG_IR_DELAY_US(CONFIG_IR_FREQUENCY_US/2) #define ROUND_UP(M,N) (((M*10/N)+5)/10)#define CONFIG_IR_TIME_ERROR_PERCENT (30) #define TIME_GET_ERROR_MIN(T)(T-((T*CONFIG_IR_TIME_ERROR_PERCENT)/100))#defineTIME_GET_ERROR_MAX(T)(T+((T*CONFIG_IR_TIME_ERROR_PERCENT)/100))#defineCONFIG_IR_START_LOW_US((uint32_t)9000) #define CONFIG_IR_START_HIGH_US ((uint32_t)4500) #define CONFIG_IR_START_HIGH_US_MIN TIME_GET_ERROR_MIN(CONFIG_IR_START_HIGH_US)#define CONFIG_IR_START_HIGH_US_MAXTIME_GET_ERROR_MAX(CONFIG_IR_START_HIGH_US)#define CONFIG_IR_COMMON_LOW_US((uint32_t)500) #define CONFIG_IR_COMMON_LOW_US_MIN TIME_GET_ERROR_MIN(CONFIG_IR_COMMON_LOW_US)#define CONFIG_IR_COMMON_LOW_US_MAXTIME_GET_ERROR_MAX(CONFIG_IR_COMMON_LOW_US)#define CONFIG_IR_(LOGIC)_0_HIGH_US ((uint32_t)800) #define CONFIG_IR_LOGIC_0_HIGH_US_MIN TIME_GET_ERROR_MIN(CONFIG_IR_LOGIC_0_HIGH_US)#define CONFIG_IR_LOGIC_0_HIGH_US_MAXTIME_GET_ERROR_MAX(CONFIG_IR_LOGIC_0_HIGH_US)#define CONFIG_IR_LOGIC_1_HIGH_US((uint32_t)1500) #define CONFIG_IR_LOGIC_1_HIGH_US_MIN TIME_GET_ERROR_MIN(CONFIG_IR_LOGIC_1_HIGH_US)#defineCONFIG_IR_LOGIC_1_HIGH_US_MAXTIME_GET_ERROR_MAX(CONFIG_IR_LOGIC_1_HIGH_US) 3.3 信号发送API#define IR_H() {GPIOE->BSRR = GPIO_PIN_0;}#define IR_L() {GPIOE->BRR = GPIO_PIN_0;}void ir_send_signal(uint16_t wave_us,uint16_t high_us){ if (wave_us) { wave_us = ROUND_UP(wave_us,CONFIG_IR_FREQUENCY_US);while (wave_us--) { IR_H(); rt_hw_us_delay(CONFIG_IR_DELAY_US);IR_L();rt_hw_us_delay(CONFIG_IR_DELAY_US); } } if (high_us) { high_us = ROUND_UP(high_us,CONFIG_IR_FREQUENCY_US);while (high_us--) { rt_hw_us_delay(CONFIG_IR_FREQ UENCY_US); } }} 3.4 红外通信指令的定义3.4.1 指令组成起始信号+cmd+data+sum3.4.2 高位先发3.5 发送指令APIvoid ir_send_data(uint8_t set_type,uint8_t set_data){ unsigned char i; f(or)(i = 0; i 3.6 接收处理(stm32)可以使用定时器输入捕获的方式来获取上升沿的时间,从而得到当前的信号类型3.6.1基于红外遥控修改void ir_timer_init(void){ TIM_IC_InitTypeDef TIM3_Config; htim3.Instance=TIM3; htim3.Init.Prescaler=(72-1);//预分频器,1M的计数频率,1us加1. htim3.Init.Coun(te)rMode=TIM_COUNTERMODE_UP;htim3.Init.Period=10000;htim3.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;HAL_TIM_IC_Init( TIM3_Config.ICPolarity=TIM_ICPOLARITY_ RISING; //上升沿捕获TIM3_Config.ICSelection=TIM_ICSELECTION_DIRECTTI;TIM3_Config.ICPrescaler=TIM_ICPSC_DIV1;TIM3_Config.ICFilter=0x03;HAL_TIM_IC_ConfigChannel( HAL_TIM_IC_Start_IT( __HAL_TIM_ENABLE_IT( } void HAL_TIM_IC_MspInit(TIM_HandleTypeDef*htim){ GPIO_InitTypeDef GPIO_InitStruct = {0}; if (htim->Instance==TIM3) { __HAL_RCC_TIM3_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOA, HAL_NVIC_SetPriority(TIM3_IRQn,1,3); //设置中断优先级,抢占优先级1,子优先级 3 HAL_NVIC_EnableIRQ(TIM3_IRQn); //开启ITM4中断}}void TIM3_IRQHandler(void){ rt_interrupt_enter(); HAL_TIM_IRQHandler( rt_interrupt_leave(); } enum{ ST_NONE = 0, ST_START = 1, ST_LOGIC_0, ST_LOGIC_1, ST_ERROR,};typedef struct { uint8_t type:3;//0-2 uint8_t rising_capture_ok:1;//3 uint8_t start_capture_ok:1;//4-7 uint8_t reserve:3;//4-7}ir_signal_t;typedef struct { union { uint8_t byte;ir_signal_t ir_signal; }val;}status_val_t;volatile status_val_t ir_check = {0};void HAL_TIM_PeriodElapsedCallb(ac)k(TIM_HandleTypeDef *htim){ if(htim->Instance==TIM3) { static uint16_t count = 0; if (1 == ir_check.val.ir_signal.start_capture_ok) { ir_check.val.ir_signal.rising_captur e_ok = 0; if (count >=30) { count = 0; ir_check.val.ir_signal.start_capture_ok = 0; } else{ count++;} } } }vol atile uint8_t temp_byte = 0;volatile uint8_t byte_length = 0;volatile uint8_t bit_cnt = 0;volatile uint8_t ir_data_buf[3] = {0};void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { if (htim->Instance==TIM3) { if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_6)) { TIM_RESET_CAPTUREPOLARITY(TIM_SET_CAPTUREPOLARITY( __H AL_TIM_SET_COUNTER( ir_check.val.ir_signal.rising_capture_ok = 1; } else // { uint32_t rising_time = HAL_TIM_Re(adC)apturedValue( TI M_RESET_CAPTUREPOLARITY( TIM_ SET_CAPTUREPOLARITY( if (1 == ir_check.val.ir_signal.rising_capture_ok){ if (1 == ir_check.val.ir_signal.start_capture_ok){ if ((rising_time >=CONFIG_IR_LOGIC_0_HIGH_US_MIN) bit_cnt++; } else if ((rising_time >=CONFIG_IR_LOGIC_1_HIGH_US_MIN) temp_byte += 1; bit_cnt++; }}else if ((rising_time >=CONFIG_IR_START_HIGH_US_MIN) temp_byte = 0; byte_length = 0; bit_cnt = 0; }} if (8 == bit_cnt) { ir_data_buf[byte_leng th++] = temp_byte; temp_byte = 0; bit_cnt = 0; } ir_check.val.ir_signal.rising_capture_ok = 0; } }}int main(void){ while(1) { if (3 == byte_length) { uint8_t idx = 0; uint8_t check_sum = 0; for (idx = 0; idx 四测试将发射头的信号脚接到PE0,再将接收头的信号脚接到PA6进行测试,将发射头对准接收头发送指令,可以看到发送与接收的数据完全一致。

中电智能表通信协议表

中电智能表通信协议表

中电智能表通信协议表一、引言随着科技的不断发展,智能表通信协议在中电领域的应用越来越广泛。

为了更好地了解这一领域的发展,本文将对中电智能表通信协议进行详细解析,以期为从业者提供有益的参考。

二、中电智能表通信协议简介1.通信协议背景在我国,电力系统一直以来都是国家基础设施的重要组成部分。

随着电力系统的智能化发展,智能表通信协议应运而生。

中电智能表通信协议是在国家电网公司的大力支持下,依据电力系统特点和需求,结合现代通信技术研发的一种专用通信协议。

2.通信协议作用中电智能表通信协议主要用于实现电力系统中智能表计的数据采集、传输和控制。

通过这一协议,可以实现电力系统远程抄表、远程控制、实时监测等功能,为电力系统的智能化管理提供技术支持。

3.通信协议特点中电智能表通信协议具有以下特点:(1)高可靠性:在复杂的电力环境下,保证数据传输的稳定性和准确性。

(2)低功耗:适应智能表计的低功耗要求,延长设备使用寿命。

(3)抗干扰能力强:能有效抵抗电力系统中的电磁干扰、射频干扰等。

(4)安全性高:采用数据加密技术,确保数据传输的安全性。

三、中电智能表通信协议关键技术1.无线通信技术中电智能表通信协议采用无线通信技术,实现数据在空中传输。

目前,常用的无线通信技术包括蓝牙、Wi-Fi、LoRa等。

2.数据加密技术为保障数据传输的安全性,中电智能表通信协议采用了数据加密技术。

通过对数据进行加密和解密处理,有效防止数据泄露和篡改。

3.网络管理技术为保证通信网络的稳定运行,中电智能表通信协议采用了网络管理技术。

通过对网络进行监控、诊断和优化,确保网络资源的合理分配和高效利用。

四、中电智能表通信协议应用场景1.智能家居在智能家居领域,中电智能表通信协议可应用于智能电表、智能插座等设备,实现远程控制和监测。

2.智能建筑在智能建筑领域,中电智能表通信协议可应用于智能照明、智能空调等设备,实现能源的优化管理。

3.智能能源管理在智能能源管理领域,中电智能表通信协议可应用于电力系统的远程抄表、远程控制、实时监测等场景,提高能源管理水平。

红外抄表协议

红外抄表协议

红外抄表协议红外抄表协议是一种基于红外技术的抄表方式,它通过使用红外线传输数据,实现对电表、水表等各类计量设备的数据采集和抄表操作。

该协议在智能抄表系统中得到广泛应用,提高了抄表效率和准确性,减少了人力成本和抄表纠纷。

本文将从红外抄表协议的原理、优势和应用进行介绍。

红外抄表协议的原理是利用红外线传输数据。

在抄表设备和计量设备之间,通过发送和接收红外信号来实现数据的交换。

红外线具有较高的穿透力和较远的传输距离,能够稳定地传输数据,保证数据的完整性和准确性。

红外抄表协议采用了特定的数据格式和通信协议,确保了抄表设备和计量设备之间的数据通信的顺利进行。

红外抄表协议具有许多优势。

首先,它可以实现无线传输,不需要物理接触,避免了线路连接的麻烦和风险。

其次,红外抄表协议具有较高的抗干扰能力,可以在复杂的环境中稳定地传输数据。

再次,红外抄表协议具有较低的功耗,延长了设备的使用寿命。

此外,红外抄表协议还支持批量抄表和自动抄表,大大提高了抄表效率和准确性。

红外抄表协议在智能抄表系统中得到广泛应用。

智能抄表系统是一种利用先进的信息技术和通信技术,实现对计量设备的远程监控和抄表管理的系统。

红外抄表协议作为智能抄表系统的核心技术之一,可以与其他传感器和通信设备相结合,实现对计量设备的远程监控、故障预警和数据分析。

通过智能抄表系统,用户可以随时了解自己的能源消费情况,提高能源利用效率,实现节能减排的目标。

总结起来,红外抄表协议是一种基于红外技术的抄表方式,通过使用红外线传输数据,实现对计量设备的数据采集和抄表操作。

它具有无线传输、抗干扰能力强、功耗低等优势,在智能抄表系统中得到广泛应用。

红外抄表协议的出现极大地提高了抄表效率和准确性,减少了人力成本和抄表纠纷,对于推动能源管理和节能减排具有重要意义。

相信随着科技的不断进步,红外抄表协议将在智能抄表领域发挥更大的作用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于智能电表的红外通信协议的分析与验证林正红周晓彤杨沙李茂姝蒋璐(西南科技大学信息工程学院,四川绵阳)摘要:随着多功能智能仪表技术的逐步完善和单片机技术的发展,红外通信技术已经为电力系统自动抄表提供了一种可行的解决途径。

本文在介绍红外线通信的基本原理的基础上,根据电力行业标准《DL/T546-2007多功能电能表通信协议》的要求,具体分析和验证了在智能电表应用中的红外通信协议。

同时,设计合理的模块分别模拟真实电表和读表模块,采用软硬件相结合的方法验证智能电表红外通信协议的正确性。

关键字:智能电表;红外通信;协议Abstract: With multi-functional smart meter technology gradually improved and the development of microcontroller technology, infrared communication technology has provided a viable solution for the automatic meter reading of power system. This paper describes the basic principles of infrared communication, concretely analyses and verifies the infrared communication protocol of the smart meters’ application which is based on the power industry standard "DL/T546-2007 multifunctional energy meter communication protocol". The modules are also designed to simulate the real meter and meter reading module, using the method of combining software and hardware to verify smart meter infrared communication protocol is correct. Keywords: smart meters, infrared communication, protocol1、红外通信原理红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。

发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射红外信号。

接收端将接收到的光脉转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。

红外通信是基于调制的载波通信,其载波信号是按一定频率进行幅值调制的红外光。

调制频率有36kHz、38kHz、40kHz,其中38kHz应用最广泛。

红外通信的载波信号由红外发射二极管产生。

当传输数据“1”时,只需使发射管截止而不发射红外光即可。

当传输数据“0”时,就必须按照调制频率f(对应的周期为1/ t)的要求,控制发射管导通t/2时间然后截止t/2时间,并循环变化直至数据“0”传输结束。

简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进行传输;红外通信接口就是针对红外信道的调制解调器。

2、智能电表的红外通信模块2.1、红外通信协议的介绍红外通信的协议有很多种,比如IRDA标准、TinyTP、IrOBEX、IrCOMM等等。

但是,以下的红外通讯协议都是采用电力工业部《DL/T546-2007多功能电能表通信协议》,本协议为主从结构的半双工通讯方式。

红外抄表器为主站,多功能电度表为从站,每个多功能电表均有各自的地址编码。

通讯链路的建立和解除均由主站发出的信息帧来控制。

每帧由帧起始符、从站地址域、控制码、数据长度、数据域、帧信息、纵向校验码及帧结束符等7个域组成。

帧格式如表1所示。

每次通讯都是由主站向按信息帧地址域选择的从站发出请求命令帧开始,被请求的从站根据命令帧中控制码的要求做出响应。

在数据编码方面,为提高传输效率和可靠性,传输时发送方数据域按字节进行加33H处理,接收方的数据域按字节减33H处理。

表1 信息帧格式注:68H——帧起始标志;A0~A5——从站(此处为电表)的地址;C——控制码;L——数据长度;DATA——数据域;CS——校验码;16H——帧结束标志。

2.2、实际电表部分TP1-读表模块红外接收头的接收引脚TP2- 读表模块串口的发送引脚TP3-读表模块红外发射头的发送引脚TP4- 读表模块串口的接收引脚图 1 红外协议验证框图—实际电表2.2.1 发送数据的分析PC机通过USB转串口和读表模块的红外发送头,发送一条读电表的指令(即利用单相红外抄表的软件发送000000000038这个表号),并将TP3连接到串口调试助手上观察,得到发送的数据(即抄表头模拟主机发送的数据)如下:FE FE FE FE 68 38 00 00 00 00 00 68 11 04 33 33 34 33 EA 16对这段数据的分析如下:1.FE FE FE FE为主机(抄表头)唤醒从机(电表);2.68为起始域;3.38 00 00 00 00 00为电表号;4.11为控制码(含义为主站发送命令帧,从站正确应答,无后续数据帧,读数据)5.04为数据域字节数;6.33 33 34 33为数据域(包含数据标识,密码,操作者代码,数据,帧序列等,数据域的结构随着控制码的功能改变而改变),传输时,发送方加上33H,接收方减去33H.都减去33H以后,为00 01 00 00 (字节从高到低排列) 对应的是当前正向有功总电能。

如果电表收到这样一串信息,会回送这个数据标识,并在其后添加上总电能的具体值(总电能的具体值也要做减去33H的处理)。

7.EA为校验码,即(68 +38+ 00 +00+ 00 +00+ 00+ 68+ 11 +04 +33+ 33 +34 +33的值),但是不计超出256的值;8.16 为结束符。

以上分析与《DTL645-2007多功能电表通信协议》中的说明一致,说明该指令完全符合协议定义的发送数据的要求。

2.2.2 发送时序的验证通过示波器观察TP2和TP3点的信号,得到如图2所示的波形(通道1是TP2的数据,通道2是TP3的数据)。

图 2 发送信号相关性分析观察发现:TP2的数据是对TP3的数据取反之后,并填充38KHz的载波以后的数据。

对发送信号的同步性分析的波形如图3所示(通道1是TP2的数据,通道2是TP3的数据)。

图 3 发送信号同步性分析通过观察发现:TP2和TP3的数据传输是同步传输的。

2.2.3 接收部分数据的分析读表模块的接收头接收到模拟电表发送的数据之后,将该数据通过串口转USB发送给PC机。

同时将TP1连接到串口调试助手1,将TP4连接到串口调试助手2,观察两路信号是否相同。

得到的数据如下:TP1的数据(串口调试助手1中观察的结果)FE FE FE FE 68 38 00 00 00 00 00 68 11 04 33 33 34 33 EA 16FE FE FE 68 38 00 00 00 00 00 68 91 08 33 33 34 33 6B 33 33 33 72 16TP4的数据(串口调试助手2中观察的结果)FE FE FE 68 38 00 00 00 00 00 68 91 08 33 33 34 33 6B 33 33 33 72 16 现在对TP1的数据进行分析,其可以分成两部分:第一部分:FE FE FE FE 68 38 00 00 00 00 00 68 11 04 33 33 34 33 EA 16以上是读表模块发送的读表请求信号,与《DTL645-2007多功能电表通信协议》进行比对(具体的分析过程在发送部分的验证中已有详细说明,在此不再叙述),发现该指令确实符合协议定义的数据要求;第二部分:FE FE FE 68 38 00 00 00 00 00 68 91 08 33 33 34 33 6B 33 33 33 72 16 以上就是电表作为从机回送给主机(抄表头)的数据,以下是对这组数据的具体分析:1.FE FE FE表示电表已经被唤醒(但此处不是必须是4个FE,实验证明可以没有FE,或者在1至4个FE);2.68为帧起始符;3.38 00 00 00 00 00为电表的地址域,不够6个字节时,之前用0补齐,低字节在前,高字节在后;4.68为帧起始符。

5.91为控制码,这里表示无后续数据帧;6.08为数据域长度,即L.且L=04H+m(其中,m为数据长度);7.33 33 34 33 6B 33 33 33为数据域。

其中33 33 34 33为数据标识,6B 33 33 33为4个数据。

数据标识都减去33H以后,为00 01 00 00 (字节从高到低排列)对应的是当前正向有功总电能,而6B 33 33 33减去33H之后为38 00 00 00(同样为高字节在后,低字节在前),这四个数据的意义是电表给抄表头回复自己的正向有功总电能是0.38kWh。

这个数据就是上位机软件发出的需要查询的结果;8.1A为校验码;9.16为结束符。

以上分析也与《DTL645-2007多功能电表通信协议》中的说明一致,说明该数据也完全符合协议定义的从站应答信号的要求。

最后通过对TP1的数据和TP4的数据进行比对,发现TP4的数据是TP1数据的第二部分,即读表模块使用的是透明传输。

也就是说读表模块只是提取了有用数据(即电表的回送信号),然后直接上传到上位机,数据的解析是由上位机软件完成的。

2.3、模拟电表部分图 4 红外协议验证框图—模拟电表前面介绍了真实表和读表模块进行正确通信后的相关数据以及红外协议的分析及验证。

为了进一步验证我们自己设计的模拟电表是否与实际电表通信的结果一致,我们在自己搭建的模拟电表的平台上,也与读表模块之间做了相同的实验。

模拟电表部分的工作原理说明:在模拟电表正确接收读表模块发送的数据之后,使用ARM开发板产生PWM 输出,构成红外输出的38KHz的载波。

同时,使用ARM开发板上的串口发送需要发送的数据,并在模拟电表模块内,将上述两路信号进行调制后,通过红外发送头发送出去。

最终,模拟电表回送给电表实际电表回复的数据时,通过上位机软件,也能得到与实际电表相同的结果,所有的数据均与实验一种采用的方法相同,并且观察到的结果也相同。

相关文档
最新文档