2。2。2 硬件电路开发工具
Altium Designer 是一个电子设计自动化软件包用于印刷电路板、FPGA 和嵌入 式软件设计,以及 PCB 生成自动化的电子设计软件[15]。本系统电路图设计采用 Altium Designer 10,它是 Altium Designer 软件的一个阶段性成熟版本。Altium Designer 软件及其功能的呈递、延续和革新,使其有用了一大批忠实用户。
1985 Altium 推出基于 DOS 的 PCB 设计工具称 为 Protel, 后来被命 名为 Autotrax。自 1986、987 开始加入了电路图编辑器 Altium Protel 原理图。在 1998 推出 Protel 98,它是包括 Protel PCB 和 Protel 原理图的一款更为先进的开发环境。 Altium Designer 10 版本不但可以帮助管理用户设计信息的方式,具备帮助用
户自动配置发布过程、输出 Output Job 编辑器、改善内电层分割速度、弹出式的多 边形铺铜管理器、支持 AtmelQTouch、可以自定制的笛卡尔和极坐标栅格、Aldec HDL 仿真功能,而且实现了比使用指针更多的 GUI 增强功能[15]。与此同时,软件 平摊的稳定性也得到了增强。在将设计从原理图转移到 PCB 时,Altium Designer 提供对期间类的网络类的创建功能的支持。
2。2 系统软件总体设计
本系统设计的软件部分采用模块化设计方案,主要包括定时器模块程序、PWM 模块程序、蓝牙接收模块程序以及主程序部分。
在主程序中,当系统正常连接后,系统自动进行初始化操作;同时蓝牙模块 也进行初始化操作;蓝牙模块进行实时扫描作用范围之内的可连接蓝牙设备并判 断连接状态;当系统检查到有新设备接入设备时,由系统进行判断蓝牙模块是否 接收到了 LED 灯开/关控制的指令;当接收到打开指令后,LED 灯模块点亮。在 LED 灯模块,我们可以通过手机终端发送调光指令,系统接收并解读指令随后发 送出相应的 PWM 调光信号调节 LED 灯亮度;最后我们可以发送关闭 LED 灯系统 控制指令来关闭 LED 灯系统;至此,整个程序运行结束。
2。2。1 蓝牙程序设计
在主程序里面,我们是通过判断是否接收"ON"或" OFF"字符串作为终端发送 的对 LED 进行开关控制功能的指令,来决定 LED 灯的点亮与熄灭,所以在控制程序中我们分别设置两个按键的发送的内容为" ON"和" OFF",由 STM32 单片机通 过蓝牙模块接收字符串,随后对字符串进行解码,从而完成实现 LED 灯的点亮与 熄灭控制功能。设置完成后,我们就可以通过控制终端发指令给 STM32 开发板进 行 LED 的点亮与写灭控制,在发送" ON"的指令后,LED 灯打开,这时还可以进 行亮度的调节工作。
本设计中需要对蓝牙模块程序进行初始化操作,在将蓝牙模块连接之后,通过 串口调试助手进行初始化设置。初始化设置包括蓝牙模块设备主从机状态、传输 波特率以及蓝牙模块连接密码。
2。2。2 PWM 调光设计
PWM 调光是指通过调节输入驱动模块 PWM 占空比,实现所驱动 LED 光源 发光强度的改变,该方法可以很好地与数字控制技术结合,在智能照明领域具有 很大的优势。在本文中为讨论方便,假定光源输出光通量与输入驱动模块 PWM 占 空比成正比例函数关系:
式中:D 为输入 LED 驱动模块的 PWM 信号占空比,YMax 为光源输出的最大光 通量, YM 为 PWM 占空比为 D 时的输出光通量。
STM32 拥有非常丰富的定时器资源,STM32 芯片中除了 TIM6 和 TIM7 以外的其他定时器都可以通过配置相关的寄存器来产生 PWM 波并且输出。其中定时器 TIM1 和 TIM8 最多可以同时产生 7 路的 PWM 输出,而通用定时器也能最多同时 产生 4 路的 PWM 输出。所以,STM32 最多可以同时产生 30 路 PWM 输出。本设 计中我仅仅使用了 TIM3 的 CH2 产生一路的 PWM 输出[20]。