挂式空调器用控制板的自动测试系统技术
时间:01-21
来源:互联网
点击:
遥控模拟
现代空调控制板都具有遥控器功能,这是必不可少的,测试仪要测试空调控制板就必须给它发送模拟遥控器指令,以让它执行开机、关机、制热、制冷等动作。各种遥控器指令实际上是一串串按照一定协议被编码的脉冲。一般这种协议是遥控器给空调控制板发送数据的专用协议。这种脉冲指令可由测试仪按照编程者的意愿依靠单片机里的定时器产生,其产生的信号具有波形整洁、规则、无毛刺的优点,非常适合模拟一些专用的低频通信信号。
当由单片机的定时器模拟遥控器所发送的信号时,要求定时时间必须精确,其产生的脉冲宽度和协议所要求的误差最好不要超过1ms,否则会导致信号模拟失效,从而让电脑板接收不到正确的遥控指令,这种错误是非常隐秘且难以捕捉的,有时侯开发者可能会怀疑自己的程序有问题,寻觅半天,却最终发现是由于自己的定时精度达不到设计的要求。
硬件实现
如图6所示,模拟的遥控信号从与三极管Q2基极相连的电阻R8进入,从Q2集电极输出,再直接连接到空调控制板遥控接收端即可。在这里,三极管Q2起到加强驱动能力的作用。
软件编程
测试仪按照遥控协议发送出来的数据,本质上无非是一些用来表示二进制的 0和1 的周期恒定不变的脉冲信号。只不过这种信号具有人工预先约定好的固定的格式,从而使其具有了传送二进制数据的能力。。
通信的双方一旦 (本遥控发送实质上是一种单工通信) 获知了通信协议的内容和二进制数据0和1 的固定格式的波形表示方法,即可通过软件编程实现双方的通信了。下面是一段按照以上格式的波形所写的如何产生二进制数据1的C代码,该代码在51开发软件WAVE环境下编写:
#include
#define MS2 2000
#define MS9 9000
sbit RemoteSend = P1 ^ 0;
void InitTimer0(void);
void main(void)
{
InitTimer0();//调用初始化定时器函数
while (1);
}
void InitTimer0(void)
{
TH0 = (65536 - MS2) / 256;//初
始化为2MS
TL0 = (65536 - MS2) % 256;
RemoteSend = 1;//先输出2ms高
TMOD = 0X01;//TC0 初始化为
16位定时器
ET0 = 1; //TC0 溢出中断使能
EA = 1; //全局中断使能
TF0 = 0; //TC0 中断标志清0
TR0 = 1; //TC0 启动
}
void Timer0Service(void) interrupt
1 using 0 //中断服务程序
{
TH0 = (65536 - MS9) / 256;//初
始化为2MS
TL0 = (65536 - MS9) % 256;
RemoteSend = 0;//输出变低
}
结语
开发的功能自动测试议已经应用在了控制板的生产过程中,提高了检测的效率,并实现了不同功能缺陷的分类汇总,为提高和改进控制板的产品质量提供了基础。
现代空调控制板都具有遥控器功能,这是必不可少的,测试仪要测试空调控制板就必须给它发送模拟遥控器指令,以让它执行开机、关机、制热、制冷等动作。各种遥控器指令实际上是一串串按照一定协议被编码的脉冲。一般这种协议是遥控器给空调控制板发送数据的专用协议。这种脉冲指令可由测试仪按照编程者的意愿依靠单片机里的定时器产生,其产生的信号具有波形整洁、规则、无毛刺的优点,非常适合模拟一些专用的低频通信信号。
当由单片机的定时器模拟遥控器所发送的信号时,要求定时时间必须精确,其产生的脉冲宽度和协议所要求的误差最好不要超过1ms,否则会导致信号模拟失效,从而让电脑板接收不到正确的遥控指令,这种错误是非常隐秘且难以捕捉的,有时侯开发者可能会怀疑自己的程序有问题,寻觅半天,却最终发现是由于自己的定时精度达不到设计的要求。
硬件实现
如图6所示,模拟的遥控信号从与三极管Q2基极相连的电阻R8进入,从Q2集电极输出,再直接连接到空调控制板遥控接收端即可。在这里,三极管Q2起到加强驱动能力的作用。
软件编程
测试仪按照遥控协议发送出来的数据,本质上无非是一些用来表示二进制的 0和1 的周期恒定不变的脉冲信号。只不过这种信号具有人工预先约定好的固定的格式,从而使其具有了传送二进制数据的能力。。
通信的双方一旦 (本遥控发送实质上是一种单工通信) 获知了通信协议的内容和二进制数据0和1 的固定格式的波形表示方法,即可通过软件编程实现双方的通信了。下面是一段按照以上格式的波形所写的如何产生二进制数据1的C代码,该代码在51开发软件WAVE环境下编写:
#include
#define MS2 2000
#define MS9 9000
sbit RemoteSend = P1 ^ 0;
void InitTimer0(void);
void main(void)
{
InitTimer0();//调用初始化定时器函数
while (1);
}
void InitTimer0(void)
{
TH0 = (65536 - MS2) / 256;//初
始化为2MS
TL0 = (65536 - MS2) % 256;
RemoteSend = 1;//先输出2ms高
TMOD = 0X01;//TC0 初始化为
16位定时器
ET0 = 1; //TC0 溢出中断使能
EA = 1; //全局中断使能
TF0 = 0; //TC0 中断标志清0
TR0 = 1; //TC0 启动
}
void Timer0Service(void) interrupt
1 using 0 //中断服务程序
{
TH0 = (65536 - MS9) / 256;//初
始化为2MS
TL0 = (65536 - MS9) % 256;
RemoteSend = 0;//输出变低
}
结语
开发的功能自动测试议已经应用在了控制板的生产过程中,提高了检测的效率,并实现了不同功能缺陷的分类汇总,为提高和改进控制板的产品质量提供了基础。
自动化 电压 电阻 单片机 三极管 二极管 示波器 步进电机 相关文章:
- 科技改变iPhone 实现家庭自动化控制(06-16)
- 基于CPLD的空调控制系统(10-23)
- 面对小米难题针对智能家居的三种解法(08-03)
- 是时候重新考虑DisplayPort了吗(05-10)
- 飞思卡尔触摸传感器实现新的应用(08-17)
- RF技术取代红外遥控的梦想正在变为现实(08-05)