基于RT-Thread的工程机械数字仪表CAN-Monitor设计
199 浏览量
更新于2024-12-23
1
收藏 2.84MB ZIP 举报
资源摘要信息:"RT-Thread作品秀:CAN-Monitor电路方案"
本应用基于RT-Thread操作系统,围绕ART-Pi开发板,为工程机械行业设计开发了一款数字仪表。该数字仪表通过CAN总线采集发动机和控制器参数,并将发动机转速、冷却液温度、燃油液位等关键数据直观显示出来,旨在替代传统的机械仪表。
在开发环境方面,开发者使用了ART-Pi开发板搭配自制扩展板和屏幕。RT-Thread的版本为4.0.3,开发工具为RT-Thread Studio 1.1.5。整个程序基于ART-Pi开发板模板工程创建,BSP版本为1.0.1。
程序中使用了多个RT-Thread组件,包括UART设备驱动、CAN设备驱动、I2C设备驱动、PIN设备驱动、ADC设备驱动等。为了显示数据,还使用了touchgfx库和gt9147软件包,并根据硬件资源进行了适当的修改。硬件方面,包括GPIO、UART、I2C、SDRAM、LCD、FDCAN、ADC等。
硬件框架部分详细描述了核心板ART-Pi开发板及其硬件结构,核心板上搭载了SPI Flash、SDRAM和RGB888接口,后者与LCD显示屏连接以显示数据。LED指示系统运行状态,系统运行后,LED以2Hz频率闪烁。CAN模块通过扩展板与ART-Pi连接,并使用TJA1050 CAN收发器与其它CAN设备进行数据交互。ART-Pi接收CAN模块数据,并将发动机转速控制数据传输给LCD,同时根据当前档位发送转速控制数据。
软件框架部分说明了系统读取ADC数值,并根据该数值发送转速控制数据。外部CAN设备接收到转速控制数据后控制发动机转速,并将转速数据发出。系统接收外部CAN设备发送的转速、水温、油位等数据,与ADC档位一起传输到LCD数据传输模块,然后LCD数据传输模块将这些数据传输到LCD显示模块,以在屏幕上显示。
软件模块包括ADC模块、CAN处理模块和LCD数据处理模块。ADC模块中的adc_thread_entry进程负责间隔100ms采集电位计AD值。CAN处理模块分为接收模块和发送模块,can_rx_thread进程为CAN接收进程,接收发动机转速、燃油液位和水温数据;can_tx_thread进程为CAN发送进程,根据ADC模块采集的电位计AD值转换成的档位,向外发送控制转速。LCD数据处理模块使用信号队列向LCD发送档位、转速、水温、燃油液位数据,并作为ART-Pi硬件与LCD显示之间的桥梁。
LCD显示模块使用TouchGFX的MVP架构实现与硬件的双向交互。在Model模块中Model::tick函数接收消息队列数据,当仪表盘页面处于活动状态时,Model模块将数据变化传输到Presenter,再由Presenter将数据发送给View以显示数据。在仪表显示界面,Model模块中的数据更新确保页面上转速、水温、油位等数据的及时更新。
视频演示效果部分展现了如何通过CAN分析仪和串口转CAN上位机与ART-Pi进行数据交互,演示了仪表盘的更新和系统指示LED的运行状态。开发者对参与比赛的经验和RT-Thread系统的学习过程进行了分享,指出了RT-Thread系统易于上手、文档资源丰富、社区支持强大的特点。
总结了RT-Thread系统为开发者带来的便利,包括简化配置、丰富的软件包支持,以及活跃的社区论坛和官方讨论群。此外,还感谢了主办方、承办方和赞助商对比赛的支持。
598 浏览量
558 浏览量
412 浏览量
745 浏览量
549 浏览量
571 浏览量
1511 浏览量
1315 浏览量
134 浏览量
weixin_38691453
- 粉丝: 4
- 资源: 942
最新资源
- O2IXLB_oopJavaGyak:Java任务解决方案
- 拉格朗日插值:是-matlab开发
- MariaDB,mysql 数据库驱动下载
- 木质展示柜3d模型
- KainoAfricaApp:演示我们应用开发的移动应用
- 电信设备-一种具有无线通信功能的LED地埋灯.zip
- 主管会计岗位任务绩效考核指标
- Complete-ML-Coursework
- ema-john-server:heroku部署
- tibia-tools:一组用于胫骨的工具
- 现代家装3D设计
- Husky-开源
- 幅移键控:数字调制 ASK-matlab开发
- Unity 手机震动插件Vibration
- 职位说明书-项目助理DOC
- dotfiles:我的dotfiles