基于USB口的智能遥控信号发射装置的设计
0 引 言。
目前在市场上已经拥有一种智能开关即可以用一个遥控器来控制连接在这个开关上的电器的通断。其工作原理是根据传统的通用协议将接收终端用单片机来模拟PT2272进行软件解码,但是存在的不足是发送端控制的终端数目太少,一个遥控器最多只能控制4个终端,为了弥补该产品在这方面的不足,因此设计了这种装置。
设计思想是按照PT2262/2272传输协议用单片机模拟进行模拟原遥控器上的PT2262芯片编码,再通过USB口使得系统和电脑连接通信,由此通过电脑对接收端进行直接控制,控制数量大大增加。并且更加实用,功能更强大。
1 硬件设计
1.1 系统整体设计
系统主要由USB转串口模块,单片机主控模块和无线信号发射模块组成。系统框图如图1所示。系统的工作流程是由计算机发送数据通过USB串口送入单片机,单片机对接收到的数据进行数据返回以便校验数据是否发送正确,若接收到数据和原来发送的数据有误,则重新发送,若接收无误,则单片机对接收到的数据进行编码处理后传输到无线发射模块,由该模块将信号发射出去。在信号发射过程中用一个LED灯来指示信号的发射是否完成。
图1 系统
1.2 各模块设计
1.2.1 USB转串口模块设计
该模块的电路如图2所示。该模块采用经典电路设计,转换芯片采用的是PL2303HX.同时为了实现该装置的产品化,缩小其体积,因此在设计时在保持性能可靠的前提下尽量减少了元器件的使用。图2为最精简的电路设计图。
图2 USB转串口模块电路。
1.2.2 单片机控制模块设计
单片机控制模块的硬件设计:将USB串口模块的RXD和TXD线分别连接单片机的TXD和RXD线,以实现单片机主控模块和电脑的信息传输和交换。同时在P1口选择两个端口,一个连接LED指示灯,用来指示工作状态,另一个作为数据输出口与无线发射模块相连,用于单片机模块与无线发射模块的信息传输。
1.2.3 无线发射模块设计
该模块主要负责将从单片机主控模块传输过来的编码依次的发射出去。该模块电路产用常见的315无线收发电路图,电路图如图3所示。它是由声表谐振器和高频三极管组成的三点式振荡电路。数据由单片机输入,通过三极管Q2控制高频振荡器,实现数据的OOK调制发射。
2 软件设计
软件的设计按前面的工作流程来,分为各个模块化来分别设计,主要包含的程序模块有:串口初始化、PC和单片机的串口通信,单片机对PC传输过来的数据进行解读和数据的编码设计、以及数据的无线发射这几个子程序块。
图3 无线发射模块电路
2.1 编码规则的确定
手动遥控器中使用的是PT2262芯片,虽然可以查到PT2262/PT2272编码规则,但是为了慎重起见必须重新用示波器测量其编码规则。当按下遥控器上的一个按钮后用示波器测量其发射波形,绘制出波形图。通过比对和计算,确定了手动遥控器的编码规则为:同步码+八位地址码+四位数据码。其中每一位码都有高阻、高电平和低电平3种状态,每种状态的波形图如图4所示。同步码长度为128a其中前4a个时间内为窄脉冲。
图4 PT2262的位脉冲波形
2.2 延时的设定
在程序设计中主要的延时有以下几个:a、4a、12a和124a的精确设定,通过测量手动遥控器中对应的最小延时单位a为120μs,由此编写精确的单片机延时程序。同时在编程设定延时的时候,要考虑全面,值得注意的是在该系统中才用的单片机芯片的指令运算速度是传统51系列单片机的6倍,这4个基准延时的设定要尽量减少偏差,为了提高精度,要把执行每条指令消耗的时间算进去。
同时对于4a和12a的延时编程不能简单的用将a的延时重复执行若干次来完成,否则会有较大的误差,不能被正确解码。延时的设定要通过反复计算和测量看是否精确,不精确则进行修改。
2.3 模拟脉冲编码
根据PT2262/PT2272协议,同时通过对手动遥控器的发射波形进行测量知道,单片机的模拟编码应该分为3部分,即同步码、地址码和数据码。
地址码和数据码本来各有3种状态,即高电平、低电平和高阻状态。手动遥控器中地址码在焊接电路时已经被固定,测量的编码为高阻状态,4位数据码分别由4个按钮控制,所以都只有高电平和低电平2种状态,在遥控的时候只能按一个按钮,所以一个手动遥控器只有4种不同的编码,因此一个手动遥控器最多只能控制4个不同的终端。但是在单片机进行编码的时候可以不受控制灵活多变,如果用1和0来表示高低电平这两种状态来编码的话,那么最多可以控制212个不同的终端,如果用00、01、10来表示这3种状态的话,那么最多可以控制312个不同的终端。在普通的工作环境中仅用1和0两种状态来编码就已经能够满足一般设计需求。
在用单片机进行模拟脉冲编码的时候
- 基于DSP的USB口数据采集分析系统设计(09-22)
- 如何从USB取电?USB口供电稳压电源电路图(12-12)
- 用插排的USB口充电伤手机吗?(12-12)
- STM32F407高速USB口速度测试(11-23)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)