1.1 STCl2C2052单片机
控制部分和手持部分微处理器采用STCl2C2052单片机。STCl2C2052除了具有运算器、控制器、RAM、FLASH、定时器、串行接口等功能部件外,还具有以下特点:SOP-20封装,体积小;3.5~5.5 V宽工作电压,具有ESD保护,高抗静电干扰,抗4 kV快速脉冲干扰;-40~+80℃工作温度范围,低功耗的空闲和掉电工作模式,2 KB芯片内E2PROM,ISP系统在线可编程,硬件看门狗(WDT)等特点,适用于野外环境。
1.2 信号发送电路
手持部分的信号发送电路将开锁、闭锁信号和钥匙密码信号通过电源线发送到控制部分。信号发送电路由三极管Q1、二极管D1、电阻R1和线圈L1构成,如图2所示。当单片机的P3.1输出高电平时,Q1截止,输出低电平时,Q1导通,电源正极通过D1、限流电阻R1和Q1接地。此时,会在电源线上产生一个瞬时的低脉冲,表明有信号发送,低脉冲信号的不同频率代表发送的是“O”,还是“1”。
1.3 信号接收电路
控制部分信号接收电路通过电源线接收开锁、闭锁控制信号和钥匙密码信号。接收电路包括电容C1,三极管Q2和一个反向器。电源通过线圈L2给控制部分提供电源,如图3所示。手持部分通过电源线发送信号,产生瞬时的低电平脉冲,低脉冲信号通过C1加载到Q2的基极,使得Q2处于截止状态。此时,反向器输出低电平信号。无脉冲信号时,Q2处于饱和导通状态。此时,反向器输出高电平信号。根据信号频率可以判断发送来的是“0”,还是“1”。1.4 直流电机倒向驱动电路
系统采用带有变速器的3 V直流电机,通过电机的顺时针、逆时针旋转完成开锁、闭锁操作。倒向驱动电路由三极管Q4,Q6,Q8,Q10,Q5,Q7,Q9,Q11组成,单片机的P1.O,P1.1,P1.2,P1.3分别经反相器后接Q4,Q6,Q8,Q10的基极。电路如图4所示。
当单片机的P1.O,P1.1,P1.2,P1.3为低电平时,Q4,Q6,Q8,Q10截止,V1和V2处于浮空状态,电机静止;当开锁时,单片机的P1.0,P1.3为高电平,P1.1,P1.2为低电平,Q4,Q5,Q10,Q11导通,Q6,Q7,Q8,Q9截止,V1为正,V2为负,电机正转开锁;当闭锁时,单片机的P1.0,P1.3为低电平,P1.1,P1.2为高电平,Q4,Q5,Q10,Q11截止,Q6,Q7,Q8,Q9导通,V1为负,V2为正,电机反转闭锁。
在程序实现时,必须注意严禁P1.0,P1.1,P1.2,P1.3同时为高电平,即Q4,Q6,Q8,Q10同时处于导通状态。
1.5 电机保护电路
直流变速电机执行开锁、闭锁操作一定时间后,外部机械装置会迫使电机停止转动,如果不采取措施,会产生较大电流,损坏直流电机,所以保护电路是必不可少的。
保护电路由TLV2252运算放大器、电阻R4,R5,R6组成,电路如图5所示。TLV2252的1IN+(引脚3)接R5,R6构成分压电路;11N-(引脚2)接电阻R4,电阻R4串联到电机倒向驱动电路的公共输出端。当电机正常工作时,通过R4的电流较小,TLV2252的输出(引脚1)经两个反向驱动后送给单片机的P3.3,此时为“1”,进行正常的开关操作。当外部机械装置迫使电机停止转动时,由于直流电机负载过大,通过R4的电流较大,这时放大器TLV2522输出经两个反向驱动后送给单片机的P3.3,此时为“O”,利用此信号产生中断信号,停止开锁、闭锁操作,以此起到对电机的保护作用。
2 软件系统设计
系统软件由控制部分主程序、数据接收程序、电机驱动程序、手持部分主程序、数据发送程序组成。控制部分与手持部分传送开门、关门信号和钥匙密码信号,其中钥匙密码信号用1l位二进制数,具有较好的安全性。
2.1 数据“0”,“1”传送方法
采用异步FSK通讯方式,使用信号的不同频率来区分“0”和“1”,如图6所示。
当信号频率为20 kHz时,代表传输为“O”;当信号频率为10 kHz时,代表传输为“1”。当晶振为12 MHz时,机器周期大约为1μs。在接收部分,定时器/计数器1用来记录机器周期的个数。当记录的机器周期个数在30~70之间时,可以确定接收到的是“O”(O的标准个数为50个);当记录的机器周期个数在80~120之间时,确定接收到的是“1”(1的标准个数为100个),其他情况按错误处理。
2.2 通信协议设计
在传送的信息中,一部分是开锁、闭锁控制命令信号,另一部分是钥匙密码信息。控制部分接收到钥匙密码信息,经验证与本机的密码一致后可以执行开锁、闭锁操作。采用异步通信方式,定义协议格式为起始位、钥匙密码信息位、开/关位、校验位。其中,起始位为1位;钥匙密码信息为11位;开/关位为1位;校验位为4位。当起始位为“0"时,表示一帧数据的开始,加上此后连续的16位为一帧数据。钥匙信息共有2048种组合,开/关位为“1”,代表开锁操作;开/关位为“0”,代表闭锁操作;校验位由11钥匙信息位和1为开/关位共12位(由高到低4位为1组)经2次异或操作得到。
2.3 程序设计
手持部分主程序完成系统初始化、读取按键,形成数帧,启动发送等任务。使用定时中断T1,完成数据的发送过程。当为数据“0”时,定时器初值为65 535-50=65 485=FFCO(H);当为数据“1”时,定时器初值为65535-100=FF9B(H),逐次发送各位,直到将一帧数据发送结束。手持部分主程序和T1中断程序流程如图7和图8所示。
控制部分采用定时器T0和外部中断O实现,初始化设置定时器为内部计数方式,计数初值为0。当手持部分信号到达控制部分时,单片机的外部中断O产生中断,在中断程序中读取计数器的计数值t。当30≤t≤70时,接收到的位为“0”;当80≤t≤120时,接收到的位为“1”。将接收的各位组合起来恢复发送的一帧数据,经检验处理正确无误后进行开锁或闭锁操作。
3 结语
电子锁系统的数据线和电源线采用一线制连接,使用方便;钥匙密码以加密的方式写入存储器中,具有很高的安全性;不需要现场提供电源,解决了传统电子锁需要现场提供电源的问题。电子锁系统已在胜利油田孤岛采油厂、东辛采油厂注水井的安全保护和东营移动通信公司通信线路地井的防盗装置上得到了应用,具有较好的实用推广价值。