完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
前面已完成了各部分的硬件设计,从本篇开始着手各部分的软件设计。 六、控制部分软件设计 因为在硬件设计中,将电机驱动和逻辑控制分成了两个独立的模块,所以在软件设计时也将分别设计。 6.1 电机驱动模块软件设计 根据前面的硬件设计,电机驱动模块可以独立成为一个智能的功率驱动器使用,在硬件的设计中考虑了可以支持多种控制信号。但在目前的项目中,拟使用串口控制方式,以下的软件设计是基于这个前提的。 6.1.1 软件要实现的功能 1)接收并解析控制命令;在上述功能中,真正影响驱动器性能的是第二项(驱动特性)和第四项(控制策略)。虽然通常认为控制策略最重要,在自动控制中所着笔墨最多,但是在我们这个项目中,因为电机特性不是十分理想,驱动又是通过软件完成的,这两部分组成的执行机构如果没有良好的特性,那有再好的控制算法、策略也无法实现良好的电机驱动。 6.1.2 概要设计 根据要实现的功能,软件分为以下几个部分: 命令接收解析 —— 完成命令接收,命令内容解析;电机驱动实际上构成了一个典型的自动控制系统:
其中的“PID调节器”由软件的控制策略部分实现,驱动器硬件只提供了电流的开关、放大功能,而主要的驱动特性实现是由软件中电机PWM驱动完成。 这样设计使得系统的灵活性增强,同时便于学习者掌握控制的实质,领会其中的奥妙。 软件总体框架采用消息驱动方式,根据消息作相应的处理,消息多数由中断产生,如:接收到串口数据、码盘光电采样中断等,对于没有中断源的信号,由系统的时基产生的中断定时查询、处理。 电机驱动所需的PWM信号在中断服务程序中完成,因为需要比较准确的脉冲宽度和周期。 虽然硬件设计上考虑了许多扩充功能,但是在目前的寻迹小车项目中不是都需要,所以在此对于脉冲输入只处理一个主速度检测脉冲,主方向、跟踪测速脉冲、方向等功能留到有具体需求时再做考虑。 无线模块的控制也是留作日后有需求时再作考虑。 测速用码盘用CAD 软件绘制后打印在纸上,然后用双面胶贴在轮毂上,使用反射式光电采样器采样。我所设计码盘如下:
因为码盘的分辨率较低,所以采用测周期的方式来得到转速。如果按照正常的脉冲测量方式,采集一个跳变沿,那这个码盘一圈只能得到10个数据,为了提高性能,利用了STC12C54XX 单片机PCA模块的正、负跳变均能中断的特性,一周可获取20个数据。为了避免脉冲的占空比不等带来的问题,采用正跳对正跳、负跳对负跳的测量方式。 程序的流程如下:
6.1.3 详细设计 6.1.3.1 命令接收及解析 在硬件设计上虽然考虑了多种控制的可能,那是为了日后这个硬件可以满足不同的需要,而目前的设计使用串口控制。 考虑到这个小车要使用两个驱动电机,所有在串口的连接上采用并接方式,即将两个电机驱动器的接收端RXD、发送端TXD并联,RXD并联没有问题,而TXD端并联必须将口特性置为标准51口(有内部弱上拉电阻的准双向口),以保证口输出的正常,同时通过协议保证不同时发送。 并接后的串口相当于一个设备,接受逻辑控制部分的命令。 基于这样的设计,通讯协议设计如下: 帧格式:
|
|
相关推荐
6 个讨论
|
|
|
|
|
|
|
|
|
|
|
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
140 浏览 0 评论
483 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
815 浏览 0 评论
1346 浏览 2 评论
804 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16904 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 19:36 , Processed in 0.856831 second(s), Total 63, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3205