基于PIC单片机的无线遥控开关系统的设计

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

基于PIC单片机的无线遥控开关系统的设计
作者:钱凯王旭东王爱家
来源:《电子技术与软件工程》2016年第02期
摘要
基于DSPIC4011单片机和SPI总线,提出了一种实用的无线遥控开关系统的设计,包含系统的整体架构,核心硬件设计和软件设计。

创新性地提出强弱电隔离的必要性以及UCOS-II 操作系统在DSPIC4011单片机上的移植。

最后,通过实验验证了电路设计的可行性,从而实现一套通用性较强的无线遥控开关系统。

【关键词】PIC单片机 SPI总线无线遥控 UCOS-II
无线遥控开关在工业控制,机器人,电机驱动等领域有着较为广泛的应用。

开关系统的灵敏性和模块电路的安全性至关重要。

本文基于Microchip公司高性能的16位单片机
DSPIC30F4011芯片和挪威NORDIC公司的RF905模块,兼容SPI总线通信,控制距离可达200m。

兼顾电磁兼容设计,电路保护以及系统软件的稳定性,设计了多按键控制四路开关通断,便于扩展和移植到不同的场合中加以应用。

1 系统架构设计
如图1所示系统框图,通过单片机I/O口控制继电器的通断可以实现外围被控制电路的通断和状态切换,而单片机I/O口的电平可以通过外接无线模块RF905远程遥控实现。

单片机和继电器之间添加了光耦隔离模块实现了强弱电的隔离。

2 核心硬件设计
针对前文所述的系统框图,详细介绍系统硬件设计
2.1 无线收发模块
如图2,RF905无线模块通过SPI总线接口图,其中MSOI,MOSI,SCK分别连接
PIC4011的3个IO口,分别代表SPI总线数据输入输出线以及时钟线。

利用PIC4011单片机的I/O口模拟SPI总线的时序来驱动RF905无线数据的传输。

DSPIC30F系列单片机内部自带存储容量大RAM最高可达64KB,功能强大。

在RF905模块和单片机连接时需注意以下几点:(1)VCC脚接电压范围为3.3V~3.6V 之间,不能在这个区间之外,超过3.6V将会烧毁模块。

推荐电压3.3V左右。

(2)MOSI,MISO输出端需要端接100欧左右的匹配电阻,否则无线通信不能成功。

2.2 按键接口电路
如图3所示的按键接口电路,K1-K4分别连接单片机的4个I/O口,当有按键按下时,将该I/O口的电平拉低。

单片机检测到不同的按键按下后,通过无线模块发送不同的指令给接收控制端,接收控制端加以解析,从而控制不同的继电器通断实现多状态开关。

2.3 接收端隔离控制电路设计
如图4所示,I1和com分别和接收端单片机的一个I/O口和(GND)地端相连接,当接收端单片机收到无线数据指令要求打开Y1控制的电路时,程序控制I1处的输出电平被拉高,从而PC817光电耦合器导通,智能开关芯片BTS443内部的MOSFET导通,OUT-A端对应的Y1处的电压值跳变到接近VCC,VCC的电压值应该和选用的继电器吸合时线圈的额定电压一致。

Y1可以控制外部电路的开关,可实际应用根据需要接继电器,电磁阀等器件。

其中
PC817光耦实现了强弱电的隔离,体积小,功耗低。

BTS443是智能开关芯片,驱动电压为5-36V范围,驱动电流可达最高可达65A。

3 系统软件设计
3.1 软件设计流程
如图5所示为系统软件流程图,在PIC单片机MAPLAB集成开发环境下按照该流图编写C语言驱动程序。

发送端按键对应接收端不同的继电器通断,从而实现按键无线远程遥控电路的开关。

3.2 嵌入式实时操作系统的移植
为了方便系统软件的任务调度,本驱动电路内部的驱动程序是基于优先级抢占式多任务实时内核,将它移植到单片机中,可以实现多任务调度。

UCOS实时性较强,可以将按键的解析,无线信号的发送,接收分割成若干个任务并分配优先级,UCOS-II的任务调度机制使得这些任务并行,监控程序的运行,减少软件异常。

发送端任务分配示例代码如下:
OSTaskCreate(MainTask,(void *)0,&MainTaskStk[0],5);//定义主任务
OSTaskCreate(WirelessSend,(void *)0,&WirelessSendStk[0],7);//无线发送
OSTaskCreate(Keytest,(void *)0,&KeytestStk[0],6);//按键解析
其中任务MainTask负责整个系统的初始化以及各个子任务的创建,任务Keytest负责解析按键信息,任务WirelessSend负责根据解析的按键信息发送无线数据指令到接收端控制接收端电路的开关。

任务调度成功是UCOS-II移植成功的标志,有一个关键的点:在任务级的调度中,任务切换时PC指针需要压栈,但目前大部分处理器没有现成的汇编指令将PC指针压栈。

因此,可设法引发一次中断,将中断向量指向汇编函数OSCtxSw()(中断服务子程序),利用系统在跳转到中断服务子程序时会自动把断点指针压栈的功能,将PC压栈,利用中断返回指令IRET能把断点指针推入PC,恢复被中断的任务。

PIC4011在在宏OS_TASK_SW()中封装软中断指令:#define OS_TASK_SW() {_asm_volatile(“call_OSCtxSw”);}来模拟中断。

4 结语
本文介绍了一种无线遥控基于PIC单片机的无线遥控开关系统的设计思路,着重阐述了核心硬件电路的设计,创新性地提出了强弱电隔离保护电路设计思路并加以实现。

同时将微内核UCOS-II移植到DSPIC30F4011芯片,提高了系统软件的实时性。

此外,电路设计易于扩展,可广泛应用于继电器驱动,电磁阀驱动以及电机驱动等领域中。

参考文献
[1]RF905无线收发模块开发指南[EB/OL].2015-11-20.
[2]Microchip Technology Inc.DSPIC30F系列参考手册[EB/OL].2015-11-20.
[3]于争.信号完整性揭秘-于博士SI设计手记[M].北京:机械工业出版社,2013.09.
[4]LABROSSE Jean J.MicroC/OS-II the real-time kernel[M].2nd ed.[S.J.]:CMP Books,2002.
[5]任哲,樊生文.嵌入式操作系统基础(第二版)[M].北京:北京航空航天大学出版社,2011.8.
作者单位
中国海洋大学信息科学与工程学院山东省青岛市 266100。

相关文档
最新文档